{ "name": "StaticSizeContract", "structs": {}, "methods": [ { "name": "test_array", "args": [ { "type": "uint64", "name": "x1" }, { "type": "uint64", "name": "y1" }, { "type": "uint64", "name": "x2" }, { "type": "uint64", "name": "y2" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_extend_from_tuple", "args": [ { "type": "((uint64,uint64),(uint64,uint64))", "name": "some_more" } ], "returns": { "type": "(uint64,uint64)[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_extend_from_arc4_tuple", "args": [ { "type": "((uint64,uint64),(uint64,uint64))", "name": "some_more" } ], "returns": { "type": "(uint64,uint64)[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_bool_array", "args": [ { "type": "uint64", "name": "length" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_arc4_conversion", "args": [ { "type": "uint64", "name": "length" } ], "returns": { "type": "uint64[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "sum_array", "args": [ { "type": "uint64[]", "name": "arc4_arr" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_arc4_bool", "args": [], "returns": { "type": "bool[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 1, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "count": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "Y291bnQ=" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 1170, 1187, 1197 ], "errorMessage": "check self.count exists" }, { "pc": [ 1018 ], "errorMessage": "expected 3 bytes" }, { "pc": [ 750, 761, 850, 1011, 1099 ], "errorMessage": "expected correct length" }, { "pc": [ 1038, 1112 ], "errorMessage": "expected correct value at 0" }, { "pc": [ 1058, 1125 ], "errorMessage": "expected correct value at 1" }, { "pc": [ 1138 ], "errorMessage": "expected correct value at 2" }, { "pc": [ 1150 ], "errorMessage": "expected correct value at 3" }, { "pc": [ 403, 476, 511, 633, 661, 780, 867, 1101, 1114, 1127, 1139 ], "errorMessage": "index access is out of bounds" }, { "pc": [ 1020, 1041 ], "errorMessage": "index out of bounds" }, { "pc": [ 649, 910, 1003 ], "errorMessage": "invalid array length header" }, { "pc": [ 920 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 607, 681 ], "errorMessage": "invalid number of bytes for arc4.tuple" }, { "pc": [ 228, 236, 245, 253, 703, 810 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 733, 753, 832, 984, 1082 ], "errorMessage": "max array length exceeded" }, { "pc": [ 286, 345, 380 ], "errorMessage": "overflow" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAwIDEgOCAxNiAxNDQKICAgIGJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAiY291bnQiIDB4MDAgMHggMHgwMDAwCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTozOQogICAgLy8gc2VsZi5jb3VudCA9IFVJbnQ2NCgwKQogICAgYnl0ZWNfMSAvLyAiY291bnQiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MzcKICAgIC8vIGNsYXNzIFN0YXRpY1NpemVDb250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAxNgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4MjhkN2MxYjggMHhmYTljYjk3MyAweDYwMzlhMjQwIDB4ZjhmZDY4YTcgMHgxZjAyOGRiMSAweDA5NmIzYTU5IDB4OGQ2ZTNhMjUgLy8gbWV0aG9kICJ0ZXN0X2FycmF5KHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiLCBtZXRob2QgInRlc3RfZXh0ZW5kX2Zyb21fdHVwbGUoKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpKSh1aW50NjQsdWludDY0KVtdIiwgbWV0aG9kICJ0ZXN0X2V4dGVuZF9mcm9tX2FyYzRfdHVwbGUoKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpKSh1aW50NjQsdWludDY0KVtdIiwgbWV0aG9kICJ0ZXN0X2Jvb2xfYXJyYXkodWludDY0KXVpbnQ2NCIsIG1ldGhvZCAidGVzdF9hcmM0X2NvbnZlcnNpb24odWludDY0KXVpbnQ2NFtdIiwgbWV0aG9kICJzdW1fYXJyYXkodWludDY0W10pdWludDY0IiwgbWV0aG9kICJ0ZXN0X2FyYzRfYm9vbCgpYm9vbFtdIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggdGVzdF9hcnJheSB0ZXN0X2V4dGVuZF9mcm9tX3R1cGxlIHRlc3RfZXh0ZW5kX2Zyb21fYXJjNF90dXBsZSB0ZXN0X2Jvb2xfYXJyYXkgdGVzdF9hcmM0X2NvbnZlcnNpb24gc3VtX2FycmF5IHRlc3RfYXJjNF9ib29sCiAgICBlcnIKCm1haW5fX19hbGdvcHlfZGVmYXVsdF9jcmVhdGVAMTY6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgJiYKICAgIHJldHVybgoKCi8vIF9wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2JpdHMoYXJyYXk6IGJ5dGVzLCBuZXdfaXRlbXNfYnl0ZXM6IGJ5dGVzLCBuZXdfaXRlbXNfY291bnQ6IHVpbnQ2NCwgcmVhZF9zdGVwOiB1aW50NjQpIC0+IGJ5dGVzOgpkeW5hbWljX2FycmF5X2NvbmNhdF9iaXRzOgogICAgcHJvdG8gNCAxCiAgICBmcmFtZV9kaWcgLTQKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwbiAyCiAgICBmcmFtZV9kaWcgLTIKICAgICsKICAgIGR1cAogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2RpZyAtNAogICAgc3dhcAogICAgcmVwbGFjZTIgMAogICAgY292ZXIgMgogICAgc3dhcAogICAgcHVzaGludCA3CiAgICArCiAgICBpbnRjXzIgLy8gOAogICAgLwogICAgZHVwCiAgICBjb3ZlciA0CiAgICBzd2FwCiAgICBwdXNoaW50IDcKICAgICsKICAgIGludGNfMiAvLyA4CiAgICAvCiAgICBkdXAKICAgIGNvdmVyIDQKICAgIDwKICAgIGJ6IGR5bmFtaWNfYXJyYXlfY29uY2F0X2JpdHNfYWZ0ZXJfaWZfZWxzZUAyCiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIDAKICAgIC0KICAgIGJ6ZXJvCiAgICBjb25jYXQKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2JpdHNfYWZ0ZXJfaWZfZWxzZUAyOgogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMgogICAgaW50Y18zIC8vIDE2CiAgICArCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGZyYW1lX2RpZyAtMgogICAgKwoKZHluYW1pY19hcnJheV9jb25jYXRfYml0c193aGlsZV90b3BAMzoKICAgIGRpZyAyCiAgICBkaWcgMQogICAgPAogICAgYnogZHluYW1pY19hcnJheV9jb25jYXRfYml0c19hZnRlcl93aGlsZUA1CiAgICBmcmFtZV9kaWcgLTMKICAgIHVuY292ZXIgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBnZXRiaXQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBjb3ZlciAzCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgY292ZXIgMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBzd2FwCiAgICBiIGR5bmFtaWNfYXJyYXlfY29uY2F0X2JpdHNfd2hpbGVfdG9wQDMKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2JpdHNfYWZ0ZXJfd2hpbGVANToKICAgIHBvcG4gMwogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnN0YXRpY19zaXplLlN0YXRpY1NpemVDb250cmFjdC50ZXN0X2FycmF5W3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdF9hcnJheToKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjQxCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6NDMKICAgIC8vIHNlbGYuY291bnQgPSBVSW50NjQoMCkKICAgIGJ5dGVjXzEgLy8gImNvdW50IgogICAgaW50Y18wIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo0NgogICAgLy8gUG9pbnQoeD1hcmM0LlVJbnQ2NCgpLCB5PVVJbnQ2NCgpLCBvdGhlcj1zZWxmLnh0cmEoKSksCiAgICBjYWxsc3ViIHh0cmEKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjQ3CiAgICAvLyBQb2ludCh4PXgxLCB5PXkxLCBvdGhlcj1zZWxmLnh0cmEoKSksCiAgICBjYWxsc3ViIHh0cmEKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjQ4CiAgICAvLyBQb2ludCh4PXgyLCB5PXkyLCBvdGhlcj1zZWxmLnh0cmEoKSksCiAgICBjYWxsc3ViIHh0cmEKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjQ0LTUwCiAgICAvLyBwYXRoID0gUmVmZXJlbmNlQXJyYXkoCiAgICAvLyAgICAgKAogICAgLy8gICAgICAgICBQb2ludCh4PWFyYzQuVUludDY0KCksIHk9VUludDY0KCksIG90aGVyPXNlbGYueHRyYSgpKSwKICAgIC8vICAgICAgICAgUG9pbnQoeD14MSwgeT15MSwgb3RoZXI9c2VsZi54dHJhKCkpLAogICAgLy8gICAgICAgICBQb2ludCh4PXgyLCB5PXkyLCBvdGhlcj1zZWxmLnh0cmEoKSksCiAgICAvLyAgICAgKQogICAgLy8gKQogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgY29uY2F0CiAgICB1bmNvdmVyIDEzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMTIKICAgIGNvbmNhdAogICAgZGlnIDExCiAgICBsZW4KICAgIHB1c2hpbnQgNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNjQKICAgIGJ6ZXJvCiAgICB1bmNvdmVyIDEyCiAgICBkaWcgMQogICAgYnwKICAgIHVuY292ZXIgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgc3dhcAogICAgY29uY2F0CiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICB1bmNvdmVyIDE1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMTIKICAgIGl0b2IKICAgIHVuY292ZXIgMTIKICAgIGl0b2IKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEwCiAgICBjb25jYXQKICAgIGRpZyA5CiAgICBsZW4KICAgIHB1c2hpbnQgNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHVuY292ZXIgOQogICAgZGlnIDQKICAgIGJ8CiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICB1bmNvdmVyIDcKICAgIGl0b2IKICAgIHVuY292ZXIgOAogICAgc3dhcAogICAgY29uY2F0CiAgICB1bmNvdmVyIDcKICAgIGl0b2IKICAgIHVuY292ZXIgNwogICAgaXRvYgogICAgY29uY2F0CiAgICB1bmNvdmVyIDYKICAgIGNvbmNhdAogICAgdW5jb3ZlciA1CiAgICBjb25jYXQKICAgIGRpZyA0CiAgICBsZW4KICAgIHB1c2hpbnQgNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICBifAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6NTEKICAgIC8vIGZvciBpIGluIHVyYW5nZSgzKToKICAgIGludGNfMCAvLyAwCgp0ZXN0X2FycmF5X2Zvcl9oZWFkZXJAMjoKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjUxCiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoMyk6CiAgICBkdXAKICAgIHB1c2hpbnQgMwogICAgPAogICAgYnogdGVzdF9hcnJheV9hZnRlcl9mb3JANQogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6NTIKICAgIC8vIGFzc2VydCBwYXRoW2ldLm90aGVyLmIgPT0gaSArIDEKICAgIGR1cDIKICAgIGludGMgNCAvLyAxNDQKICAgICoKICAgIGludGMgNCAvLyAxNDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZXh0cmFjdCAxNiAxMjgKICAgIGR1cAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBkaWcgMgogICAgaW50Y18xIC8vIDEKICAgICsKICAgIHN3YXAKICAgIGRpZyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo1MwogICAgLy8gYXNzZXJ0IHBhdGhbaV0ub3RoZXIuZC5mb28gPT0gaSArIDIKICAgIHN3YXAKICAgIGV4dHJhY3QgNDggMTYKICAgIGR1cAogICAgZXh0cmFjdCAwIDgKICAgIHVuY292ZXIgMwogICAgcHVzaGludCAyCiAgICArCiAgICBpdG9iCiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6NTQKICAgIC8vIGFzc2VydCBwYXRoW2ldLm90aGVyLmQuYmFyID09IChpICsgMSkgKiAoaSArIDEpCiAgICBleHRyYWN0IDggOAogICAgZGlnIDEKICAgIGRpZyAyCiAgICAqCiAgICBpdG9iCiAgICBiPT0KICAgIGFzc2VydAogICAgYiB0ZXN0X2FycmF5X2Zvcl9oZWFkZXJAMgoKdGVzdF9hcnJheV9hZnRlcl9mb3JANToKICAgIHBvcAogICAgZHVwbiAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo1NgogICAgLy8gQm94KEltbXV0YWJsZUFycmF5W1BvaW50XSwga2V5PSJhIikudmFsdWUgPSBwYXRoLmZyZWV6ZSgpCiAgICBsZW4KICAgIGludGMgNCAvLyAxNDQKICAgIC8KICAgIGR1cAogICAgY292ZXIgMwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGRpZyAxCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAiYSIKICAgIGJveF9kZWwKICAgIHBvcAogICAgcHVzaGJ5dGVzICJhIgogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTY5CiAgICAvLyBsYXN0X3BvaW50ID0gcGF0aFswXQogICAgZXh0cmFjdCAwIDE0NCAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgY292ZXIgMgogICAgZHVwCiAgICBleHRyYWN0IDAgOAogICAgY292ZXIgMwogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNzAKICAgIC8vIGxlbmd0aCA9IFVJbnQ2NCgpCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTcxCiAgICAvLyBmb3IgcG9pbnRfaWR4IGluIHVyYW5nZSgxLCBwYXRoLmxlbmd0aCk6CiAgICBpbnRjXzEgLy8gMQogICAgc3dhcAoKdGVzdF9hcnJheV9mb3JfaGVhZGVyQDc6CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNzEKICAgIC8vIGZvciBwb2ludF9pZHggaW4gdXJhbmdlKDEsIHBhdGgubGVuZ3RoKToKICAgIGRpZyAxCiAgICBkaWcgNwogICAgPAogICAgYnogdGVzdF9hcnJheV9hZnRlcl9mb3JAMTUKICAgIGR1cAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTcyCiAgICAvLyBwb2ludCA9IHBhdGhbcG9pbnRfaWR4XQogICAgZGlnIDIKICAgIGludGMgNCAvLyAxNDQKICAgICoKICAgIGludGMgNCAvLyAxNDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGV4dHJhY3QgMCA4CiAgICBzd2FwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIHN3YXAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE3MwogICAgLy8gaWYgcG9pbnQueCA8IGxhc3RfcG9pbnQueDoKICAgIGRpZyA4CiAgICBiPAogICAgYnogdGVzdF9hcnJheV9lbHNlX2JvZHlAMTAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE3NAogICAgLy8gZHggPSBsYXN0X3BvaW50LnguYXNfdWludDY0KCkgLSBwb2ludC54LmFzX3VpbnQ2NCgpCiAgICBkaWcgNgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTY5CiAgICAvLyBsYXN0X3BvaW50ID0gcGF0aFswXQogICAgaW50Y18wIC8vIDAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE3NAogICAgLy8gZHggPSBsYXN0X3BvaW50LnguYXNfdWludDY0KCkgLSBwb2ludC54LmFzX3VpbnQ2NCgpCiAgICBleHRyYWN0X3VpbnQ2NAogICAgdW5jb3ZlciAzCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNzIKICAgIC8vIHBvaW50ID0gcGF0aFtwb2ludF9pZHhdCiAgICBpbnRjXzAgLy8gMAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTc0CiAgICAvLyBkeCA9IGxhc3RfcG9pbnQueC5hc191aW50NjQoKSAtIHBvaW50LnguYXNfdWludDY0KCkKICAgIGV4dHJhY3RfdWludDY0CiAgICAtCgp0ZXN0X2FycmF5X2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNzcKICAgIC8vIGlmIHBvaW50LnkgPCBsYXN0X3BvaW50Lnk6CiAgICBkaWcgMQogICAgZGlnIDYKICAgIDwKICAgIGJ6IHRlc3RfYXJyYXlfZWxzZV9ib2R5QDEzCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNzgKICAgIC8vIGR5ID0gbGFzdF9wb2ludC55IC0gcG9pbnQueQogICAgZGlnIDUKICAgIHVuY292ZXIgMgogICAgLQoKdGVzdF9hcnJheV9hZnRlcl9pZl9lbHNlQDE0OgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTgxCiAgICAvLyBsZW5ndGggKz0gb3Auc3FydChkeCAqIGR4ICsgZHkgKiBkeSkKICAgIHN3YXAKICAgIGR1cAogICAgKgogICAgc3dhcAogICAgZHVwCiAgICAqCiAgICArCiAgICBzcXJ0CiAgICB1bmNvdmVyIDMKICAgICsKICAgIGNvdmVyIDIKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE3MQogICAgLy8gZm9yIHBvaW50X2lkeCBpbiB1cmFuZ2UoMSwgcGF0aC5sZW5ndGgpOgogICAgc3dhcAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIHN3YXAKICAgIGIgdGVzdF9hcnJheV9mb3JfaGVhZGVyQDcKCnRlc3RfYXJyYXlfZWxzZV9ib2R5QDEzOgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTgwCiAgICAvLyBkeSA9IHBvaW50LnkgLSBsYXN0X3BvaW50LnkKICAgIHN3YXAKICAgIGRpZyA1CiAgICAtCiAgICBiIHRlc3RfYXJyYXlfYWZ0ZXJfaWZfZWxzZUAxNAoKdGVzdF9hcnJheV9lbHNlX2JvZHlAMTA6CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNzYKICAgIC8vIGR4ID0gcG9pbnQueC5hc191aW50NjQoKSAtIGxhc3RfcG9pbnQueC5hc191aW50NjQoKQogICAgdW5jb3ZlciAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNzIKICAgIC8vIHBvaW50ID0gcGF0aFtwb2ludF9pZHhdCiAgICBpbnRjXzAgLy8gMAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTc2CiAgICAvLyBkeCA9IHBvaW50LnguYXNfdWludDY0KCkgLSBsYXN0X3BvaW50LnguYXNfdWludDY0KCkKICAgIGV4dHJhY3RfdWludDY0CiAgICBkaWcgNgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTY5CiAgICAvLyBsYXN0X3BvaW50ID0gcGF0aFswXQogICAgaW50Y18wIC8vIDAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE3NgogICAgLy8gZHggPSBwb2ludC54LmFzX3VpbnQ2NCgpIC0gbGFzdF9wb2ludC54LmFzX3VpbnQ2NCgpCiAgICBleHRyYWN0X3VpbnQ2NAogICAgLQogICAgYiB0ZXN0X2FycmF5X2FmdGVyX2lmX2Vsc2VAMTEKCnRlc3RfYXJyYXlfYWZ0ZXJfZm9yQDE1OgogICAgcG9wbiAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo0MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnN0YXRpY19zaXplLlN0YXRpY1NpemVDb250cmFjdC50ZXN0X2V4dGVuZF9mcm9tX3R1cGxlW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdF9leHRlbmRfZnJvbV90dXBsZToKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjU5CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudHVwbGU8dGVzdF9jYXNlcy5hcnJheS5zdGF0aWNfc2l6ZS5Nb3JlLHRlc3RfY2FzZXMuYXJyYXkuc3RhdGljX3NpemUuTW9yZT4KICAgIGR1cAogICAgZXh0cmFjdCAwIDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDE2IDE2CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo2MgogICAgLy8gYXJyLmV4dGVuZChzb21lX21vcmUpCiAgICBzd2FwCiAgICBkaWcgMQogICAgY29uY2F0CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo2MwogICAgLy8gbGFzdCA9IGFyclstMV0KICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gMTYKICAgIC8KICAgIGR1cAogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGludGNfMyAvLyAxNgogICAgKgogICAgZGlnIDIKICAgIHN3YXAKICAgIGludGNfMyAvLyAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo2NAogICAgLy8gYXNzZXJ0IGxhc3QgPT0gc29tZV9tb3JlWzFdCiAgICBkdXAKICAgIHVuY292ZXIgNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6NjUKICAgIC8vIHJlc3VsdCA9IGFyci5mcmVlemUoKQogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo2NgogICAgLy8gYXNzZXJ0IHJlc3VsdFstMV0gPT0gbGFzdAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGRpZyAxCiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgaW50Y18zIC8vIDE2CiAgICAqCiAgICBpbnRjXzMgLy8gMTYKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo1OQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnN0YXRpY19zaXplLlN0YXRpY1NpemVDb250cmFjdC50ZXN0X2V4dGVuZF9mcm9tX2FyYzRfdHVwbGVbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2V4dGVuZF9mcm9tX2FyYzRfdHVwbGU6CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo2OQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBkdXAKICAgIHB1c2hpbnQgMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudHVwbGU8dGVzdF9jYXNlcy5hcnJheS5zdGF0aWNfc2l6ZS5Nb3JlLHRlc3RfY2FzZXMuYXJyYXkuc3RhdGljX3NpemUuTW9yZT4KICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5Ojc1CiAgICAvLyByZXR1cm4gYXJyLmZyZWV6ZSgpCiAgICBpbnRjXzMgLy8gMTYKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjY5CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkuc3RhdGljX3NpemUuU3RhdGljU2l6ZUNvbnRyYWN0LnRlc3RfYm9vbF9hcnJheVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfYm9vbF9hcnJheToKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5Ojc3CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgZHVwCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo3OQogICAgLy8gYXJyID0gUmVmZXJlbmNlQXJyYXlbYm9vbF0oKQogICAgYnl0ZWNfMyAvLyAweAogICAgc3dhcAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6ODIKICAgIC8vIGZvciBpIGluIHVyYW5nZSgxLCBsZW5ndGggKyAxKToKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBjb3ZlciAyCiAgICBpbnRjXzEgLy8gMQoKdGVzdF9ib29sX2FycmF5X2Zvcl9oZWFkZXJAMjoKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjgyCiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoMSwgbGVuZ3RoICsgMSk6CiAgICBkdXAKICAgIGRpZyA0CiAgICA8CiAgICBieiB0ZXN0X2Jvb2xfYXJyYXlfYWZ0ZXJfZm9yQDUKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjgzCiAgICAvLyBhcnIuYXBwZW5kKGkgJSAyID09IDApCiAgICBkdXAKICAgIHB1c2hpbnQgMgogICAgJQogICAgIQogICAgdW5jb3ZlciAyCiAgICBzd2FwCiAgICBieXRlY18yIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo4MgogICAgLy8gZm9yIGkgaW4gdXJhbmdlKDEsIGxlbmd0aCArIDEpOgogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGIgdGVzdF9ib29sX2FycmF5X2Zvcl9oZWFkZXJAMgoKdGVzdF9ib29sX2FycmF5X2FmdGVyX2ZvckA1OgogICAgcG9wCiAgICBkdXBuIDMKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5Ojg0CiAgICAvLyBhc3NlcnQgYXJyLmxlbmd0aCA9PSBsZW5ndGgsICJleHBlY3RlZCBjb3JyZWN0IGxlbmd0aCIKICAgIGxlbgogICAgdW5jb3ZlciA0CiAgICBkdXAKICAgIGNvdmVyIDQKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCBsZW5ndGgKICAgIGRpZyAxCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo4NwogICAgLy8gYXJyMi5leHRlbmQoYXJyKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo4OAogICAgLy8gYXNzZXJ0IGFycjIubGVuZ3RoID09IGxlbmd0aCAqIDIsICJleHBlY3RlZCBjb3JyZWN0IGxlbmd0aCIKICAgIGxlbgogICAgdW5jb3ZlciAyCiAgICBwdXNoaW50IDIKICAgICoKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCBsZW5ndGgKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjkwCiAgICAvLyBjb3VudCA9IFVJbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjkxCiAgICAvLyBmb3IgdmFsIGluIGFycjoKICAgIGxlbgogICAgY292ZXIgMgogICAgaW50Y18wIC8vIDAKCnRlc3RfYm9vbF9hcnJheV9mb3JfaGVhZGVyQDY6CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo5MQogICAgLy8gZm9yIHZhbCBpbiBhcnI6CiAgICBkdXAKICAgIGRpZyA0CiAgICA8CiAgICBieiB0ZXN0X2Jvb2xfYXJyYXlfYWZ0ZXJfZm9yQDExCiAgICBkaWcgMgogICAgZGlnIDEKICAgIGludGNfMSAvLyAxCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjkyCiAgICAvLyBpZiB2YWw6CiAgICBieiB0ZXN0X2Jvb2xfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA5CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo5MwogICAgLy8gY291bnQgKz0gMQogICAgc3dhcAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIHN3YXAKCnRlc3RfYm9vbF9hcnJheV9hZnRlcl9pZl9lbHNlQDk6CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYiB0ZXN0X2Jvb2xfYXJyYXlfZm9yX2hlYWRlckA2Cgp0ZXN0X2Jvb2xfYXJyYXlfYWZ0ZXJfZm9yQDExOgogICAgcG9wCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weTo3NwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnN0YXRpY19zaXplLlN0YXRpY1NpemVDb250cmFjdC50ZXN0X2FyYzRfY29udmVyc2lvbltyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfYXJjNF9jb252ZXJzaW9uOgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6OTYKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICBkdXAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5Ojk4CiAgICAvLyBhcnIgPSBSZWZlcmVuY2VBcnJheVthcmM0LlVJbnQ2NF0oKQogICAgYnl0ZWNfMyAvLyAweAogICAgc3dhcAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTAxCiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoMSwgbGVuZ3RoICsgMSk6CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDEKCnRlc3RfYXJjNF9jb252ZXJzaW9uX2Zvcl9oZWFkZXJAMjoKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEwMQogICAgLy8gZm9yIGkgaW4gdXJhbmdlKDEsIGxlbmd0aCArIDEpOgogICAgZHVwCiAgICBkaWcgNAogICAgPAogICAgYnogdGVzdF9hcmM0X2NvbnZlcnNpb25fYWZ0ZXJfZm9yQDUKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEwMgogICAgLy8gYXJyLmFwcGVuZChhcmM0LlVJbnQ2NChpKSkKICAgIGR1cAogICAgaXRvYgogICAgdW5jb3ZlciAyCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEwMQogICAgLy8gZm9yIGkgaW4gdXJhbmdlKDEsIGxlbmd0aCArIDEpOgogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGIgdGVzdF9hcmM0X2NvbnZlcnNpb25fZm9yX2hlYWRlckAyCgp0ZXN0X2FyYzRfY29udmVyc2lvbl9hZnRlcl9mb3JANToKICAgIHBvcAogICAgZHVwCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxMDMKICAgIC8vIGFzc2VydCBhcnIubGVuZ3RoID09IGxlbmd0aCwgImV4cGVjdGVkIGNvcnJlY3QgbGVuZ3RoIgogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgLwogICAgZHVwCiAgICBjb3ZlciAyCiAgICB1bmNvdmVyIDMKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCBsZW5ndGgKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEwNAogICAgLy8gY291bnQgPSBVSW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICBkdXAKCnRlc3RfYXJjNF9jb252ZXJzaW9uX2Zvcl9oZWFkZXJANjoKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEwNQogICAgLy8gZm9yIHZhbCBpbiBhcnI6CiAgICBkdXAKICAgIGRpZyA0CiAgICA8CiAgICBieiB0ZXN0X2FyYzRfY29udmVyc2lvbl9hZnRlcl9mb3JAMTEKICAgIGRpZyAyCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEwNgogICAgLy8gaWYgdmFsOgogICAgYnl0ZWNfMyAvLyAweAogICAgYiE9CiAgICBieiB0ZXN0X2FyYzRfY29udmVyc2lvbl9hZnRlcl9pZl9lbHNlQDkKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEwNwogICAgLy8gY291bnQgKz0gMQogICAgc3dhcAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIHN3YXAKCnRlc3RfYXJjNF9jb252ZXJzaW9uX2FmdGVyX2lmX2Vsc2VAOToKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBiIHRlc3RfYXJjNF9jb252ZXJzaW9uX2Zvcl9oZWFkZXJANgoKdGVzdF9hcmM0X2NvbnZlcnNpb25fYWZ0ZXJfZm9yQDExOgogICAgcG9wbiAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxMTAKICAgIC8vIGFyYzRfYXJyLmV4dGVuZChhcnIpCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAwCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxMDkKICAgIC8vIGFyYzRfYXJyID0gYXJjNC5EeW5hbWljQXJyYXlbYXJjNC5VSW50NjRdKCkKICAgIGJ5dGVjIDQgLy8gMHgwMDAwCiAgICBzd2FwCiAgICByZXBsYWNlMiAwCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5Ojk2CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkuc3RhdGljX3NpemUuU3RhdGljU2l6ZUNvbnRyYWN0LnN1bV9hcnJheVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnN1bV9hcnJheToKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjExNAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBwdXNoaW50IDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ2ND4KICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjExNwogICAgLy8gYXJyLmV4dGVuZChhcmM0X2FycikKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjExOQogICAgLy8gdG90YWwgPSBVSW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxMjAKICAgIC8vIGZvciBpdGVtIGluIGFycjoKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgIC8KICAgIGludGNfMCAvLyAwCgpzdW1fYXJyYXlfZm9yX2hlYWRlckAyOgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTIwCiAgICAvLyBmb3IgaXRlbSBpbiBhcnI6CiAgICBkdXAKICAgIGRpZyAyCiAgICA8CiAgICBieiBzdW1fYXJyYXlfYWZ0ZXJfZm9yQDUKICAgIGRpZyAzCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDgKICAgICoKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEyMQogICAgLy8gdG90YWwgKz0gaXRlbS5hc191aW50NjQoKQogICAgZXh0cmFjdF91aW50NjQKICAgIHVuY292ZXIgMwogICAgKwogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGIgc3VtX2FycmF5X2Zvcl9oZWFkZXJAMgoKc3VtX2FycmF5X2FmdGVyX2ZvckA1OgogICAgcG9wbiAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxMTQKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5hcnJheS5zdGF0aWNfc2l6ZS5TdGF0aWNTaXplQ29udHJhY3QudGVzdF9hcmM0X2Jvb2xbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2FyYzRfYm9vbDoKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE0MwogICAgLy8gYXJyLmFwcGVuZChhcmM0LkJvb2woVHhuLnNlbmRlciA9PSBUeG4ucmVjZWl2ZXIpKQogICAgdHhuIFNlbmRlcgogICAgdHhuIFJlY2VpdmVyCiAgICA9PQogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE0NAogICAgLy8gYXJyLmFwcGVuZChhcmM0LkJvb2woVHhuLnNlbmRlciAhPSBUeG4ucmVjZWl2ZXIpKQogICAgdHhuIFNlbmRlcgogICAgdHhuIFJlY2VpdmVyCiAgICAhPQogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgZHVwbiAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNDcKICAgIC8vIGR5bl9hcnIuZXh0ZW5kKGFycikKICAgIGxlbgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTQ2CiAgICAvLyBkeW5fYXJyID0gYXJjNC5EeW5hbWljQXJyYXlbYXJjNC5Cb29sXSgpCiAgICBieXRlYyA0IC8vIDB4MDAwMAogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTQ3CiAgICAvLyBkeW5fYXJyLmV4dGVuZChhcnIpCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBpbnRjXzIgLy8gOAogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X2NvbmNhdF9iaXRzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE0OAogICAgLy8gYXNzZXJ0IGR5bl9hcnIubGVuZ3RoID09IDIsICJleHBlY3RlZCBjb3JyZWN0IGxlbmd0aCIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGR1cAogICAgY292ZXIgMwogICAgZHVwCiAgICBwdXNoaW50IDIKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCBsZW5ndGgKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE0OQogICAgLy8gYXNzZXJ0IGR5bl9hcnIuYnl0ZXMubGVuZ3RoID09IDMsICJleHBlY3RlZCAzIGJ5dGVzIgogICAgZGlnIDEKICAgIGxlbgogICAgcHVzaGludCAzCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIDMgYnl0ZXMKICAgIGR1cAogICAgYXNzZXJ0IC8vIGluZGV4IG91dCBvZiBib3VuZHMKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE1MAogICAgLy8gYXNzZXJ0IGR5bl9hcnJbMF0gPT0gKFR4bi5zZW5kZXIgPT0gVHhuLnJlY2VpdmVyKSwgImV4cGVjdGVkIGNvcnJlY3QgdmFsdWUgYXQgMCIKICAgIGRpZyAxCiAgICBpbnRjXzMgLy8gMTYKICAgIGdldGJpdAogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4biBTZW5kZXIKICAgIHR4biBSZWNlaXZlcgogICAgPT0KICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCB2YWx1ZSBhdCAwCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNTEKICAgIC8vIGFzc2VydCBkeW5fYXJyWzFdID09IChUeG4uc2VuZGVyICE9IFR4bi5yZWNlaXZlciksICJleHBlY3RlZCBjb3JyZWN0IHZhbHVlIGF0IDEiCiAgICBpbnRjXzEgLy8gMQogICAgPgogICAgYXNzZXJ0IC8vIGluZGV4IG91dCBvZiBib3VuZHMKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE1MQogICAgLy8gYXNzZXJ0IGR5bl9hcnJbMV0gPT0gKFR4bi5zZW5kZXIgIT0gVHhuLnJlY2VpdmVyKSwgImV4cGVjdGVkIGNvcnJlY3QgdmFsdWUgYXQgMSIKICAgIHB1c2hpbnQgMTcKICAgIGdldGJpdAogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4biBTZW5kZXIKICAgIHR4biBSZWNlaXZlcgogICAgIT0KICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCB2YWx1ZSBhdCAxCiAgICBpbnRjXzAgLy8gMAoKdGVzdF9hcmM0X2Jvb2xfZm9yX2hlYWRlckAyOgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTU0LTE1NgogICAgLy8gIyBub3RlOiBub3Qgc3VwcG9ydGVkIGN1cnJlbnRseQogICAgLy8gIyBhcnIyLmV4dGVuZChkeW5fYXJyYXkpCiAgICAvLyBmb3IgYiBpbiBkeW5fYXJyOgogICAgZHVwCiAgICBkaWcgMwogICAgPAogICAgYnogdGVzdF9hcmM0X2Jvb2xfYWZ0ZXJfZm9yQDUKICAgIGR1cAogICAgaW50Y18zIC8vIDE2CiAgICArCiAgICBkaWcgNAogICAgc3dhcAogICAgZ2V0Yml0CiAgICBieXRlY18yIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgdW5jb3ZlciAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNTcKICAgIC8vIGFycjIuYXBwZW5kKGIpCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBiIHRlc3RfYXJjNF9ib29sX2Zvcl9oZWFkZXJAMgoKdGVzdF9hcmM0X2Jvb2xfYWZ0ZXJfZm9yQDU6CiAgICBwb3AKICAgIGJ1cnkgMQogICAgYnVyeSAxCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNTgKICAgIC8vIGFzc2VydCBhcnIyLmxlbmd0aCA9PSA0LCAiZXhwZWN0ZWQgY29ycmVjdCBsZW5ndGgiCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCA0CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGNvcnJlY3QgbGVuZ3RoCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNTkKICAgIC8vIGFzc2VydCBhcnIyWzBdID09IChUeG4uc2VuZGVyID09IFR4bi5yZWNlaXZlciksICJleHBlY3RlZCBjb3JyZWN0IHZhbHVlIGF0IDAiCiAgICBkdXAKICAgIGV4dHJhY3QgMCAxIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuIFNlbmRlcgogICAgdHhuIFJlY2VpdmVyCiAgICA9PQogICAgPT0KICAgIGFzc2VydCAvLyBleHBlY3RlZCBjb3JyZWN0IHZhbHVlIGF0IDAKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjE2MAogICAgLy8gYXNzZXJ0IGFycjJbMV0gPT0gKFR4bi5zZW5kZXIgIT0gVHhuLnJlY2VpdmVyKSwgImV4cGVjdGVkIGNvcnJlY3QgdmFsdWUgYXQgMSIKICAgIGR1cAogICAgZXh0cmFjdCAxIDEgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICB0eG4gU2VuZGVyCiAgICB0eG4gUmVjZWl2ZXIKICAgICE9CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGNvcnJlY3QgdmFsdWUgYXQgMQogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTYxCiAgICAvLyBhc3NlcnQgYXJyMlsyXSA9PSAoVHhuLnNlbmRlciA9PSBUeG4ucmVjZWl2ZXIpLCAiZXhwZWN0ZWQgY29ycmVjdCB2YWx1ZSBhdCAyIgogICAgZHVwCiAgICBleHRyYWN0IDIgMSAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4biBTZW5kZXIKICAgIHR4biBSZWNlaXZlcgogICAgPT0KICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCB2YWx1ZSBhdCAyCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNjIKICAgIC8vIGFzc2VydCBhcnIyWzNdID09IChUeG4uc2VuZGVyICE9IFR4bi5yZWNlaXZlciksICJleHBlY3RlZCBjb3JyZWN0IHZhbHVlIGF0IDMiCiAgICBleHRyYWN0IDMgMSAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4biBTZW5kZXIKICAgIHR4biBSZWNlaXZlcgogICAgIT0KICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY29ycmVjdCB2YWx1ZSBhdCAzCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxNjQKICAgIC8vIHJldHVybiBhcnIuZnJlZXplKCkKICAgIGR1cAogICAgbGVuCiAgICBieXRlYyA0IC8vIDB4MDAwMAogICAgY292ZXIgMgogICAgaW50Y18yIC8vIDgKICAgIGNhbGxzdWIgZHluYW1pY19hcnJheV9jb25jYXRfYml0cwogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTQwCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkuc3RhdGljX3NpemUuU3RhdGljU2l6ZUNvbnRyYWN0Lnh0cmEoKSAtPiB1aW50NjQsIHVpbnQ2NCwgYnl0ZXMsIGJ5dGVzLCBieXRlczoKeHRyYToKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEyNwogICAgLy8gc2VsZi5jb3VudCArPSAxCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAiY291bnQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuY291bnQgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnl0ZWNfMSAvLyAiY291bnQiCiAgICBkaWcgMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEyOQogICAgLy8gYT1UeG4ubnVtX2FwcF9hcmdzLAogICAgdHhuIE51bUFwcEFyZ3MKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEzMQogICAgLy8gYz1UeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gYXJyYXkvc3RhdGljX3NpemUucHk6MTMyCiAgICAvLyBkPXNlbGYubW9yZSgpLAogICAgY2FsbHN1YiBtb3JlCiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxMzMKICAgIC8vIGU9QmlnVUludChzZWxmLmNvdW50KSwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICJjb3VudCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5jb3VudCBleGlzdHMKICAgIGl0b2IKICAgIC8vIGFycmF5L3N0YXRpY19zaXplLnB5OjEyOC0xMzQKICAgIC8vIHJldHVybiBYdHJhKAogICAgLy8gICAgIGE9VHhuLm51bV9hcHBfYXJncywKICAgIC8vICAgICBiPXNlbGYuY291bnQsCiAgICAvLyAgICAgYz1UeG4uc2VuZGVyLAogICAgLy8gICAgIGQ9c2VsZi5tb3JlKCksCiAgICAvLyAgICAgZT1CaWdVSW50KHNlbGYuY291bnQpLAogICAgLy8gKQogICAgdW5jb3ZlciAzCiAgICBjb3ZlciA0CiAgICByZXRzdWIKCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnN0YXRpY19zaXplLlN0YXRpY1NpemVDb250cmFjdC5tb3JlKCkgLT4gYnl0ZXM6Cm1vcmU6CiAgICAvLyBhcnJheS9zdGF0aWNfc2l6ZS5weToxMzgKICAgIC8vIHJldHVybiBNb3JlKGZvbz1hcmM0LlVJbnQ2NChzZWxmLmNvdW50ICsgMSksIGJhcj1hcmM0LlVJbnQ2NChzZWxmLmNvdW50ICogc2VsZi5jb3VudCkpCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAiY291bnQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuY291bnQgZXhpc3RzCiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBkaWcgMQogICAgdW5jb3ZlciAyCiAgICAqCiAgICBpdG9iCiAgICBjb25jYXQKICAgIHJldHN1Ygo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAFAAEIEJABJgUEFR98dQVjb3VudAEAAAIAADEYQAADKSJnMRtBAEAxGRREMRhEggcEKNfBuAT6nLlzBGA5okAE+P1opwQfAo2xBAlrOlkEjW46JTYaAI4HAHUB7wI4AlACuwMhA1wAMRkUMRgUEEOKBAGL/CJZRwKL/ghJFlcGAIv8TFwATgJMgQcIJApJTgRMgQcIJApJTgQMQQAHiwGLAAmvUCJPAiUISU4Ci/4ISwJLAQxBAB+L/U8CSU4CU08ETwRJTgNPAlROAyMITgKL/whMQv/ZRgOMAIk2GgFJFSQSRDYaAkkVJBJEFzYaA0kVJBJENhoESRUkEkQXKSJniAOKiAOHiAOETw4WTw4WUE8NUE8MUEsLFYFADkSBQK9PDEsBq08CTFCAEAAAAAAAAAAAAAAAAAAAAABMUE8OFk8PTFBPDBZPDBZQTwtQTwpQSwkVgUAORE8JSwSrUFBQTwcWTwhMUE8HFk8HFlBPBlBPBVBLBBWBQA5ETwRPBKtQUFAiSYEDDEEANEohBAshBFhXEIBJJFtLAiMITEsBEkRMVzAQSVcACE8DgQIIFqhEVwgISwFLAgsWqERC/8VIRwIVIQQKSU4DFlcGAksBUIABYbxIgAFhTL9XAJBJTgJJVwAITgMkW0wiTCNMSwFLBwxBAFdJSwIhBAshBFhJTgJJVwAITCRbTEsIpEEAMUsGIltPAyJbCUsBSwYMQQAZSwVPAglMSQtMSQsIkk8DCE4CTCMITEL/tExLBQlC/+VPAiJbSwYiWwlC/8xGAhYoTFCwI0M2GgFJFYEgEkRJVwAQTFcQEExLAVBJFSUKSSMJJQtLAkwlWElPBBJETBZXBgJPAlBJIlkjCUsBVwIATCULJVhPAhJEKExQsCNDNhoBSRVJgSASRCUKFlcGAkxQKExQsCNDNhoBSRUkEkQXSStMIwhOAiNJSwQMQQAUSYECGBRPAkwqIk8CVFBMIwhC/+VIRwMVTwRJTgQSREsBUBVPAoECCxJEIkwVTgIiSUsEDEEAFEsCSwEjWCJTQQAETCMITCMIQv/lSBYoTFCwI0M2GgFJFSQSRBdJK0wjCE4CI0lLBAxBAAxJFk8CTFBMIwhC/+1ISRUkCklOAk8DEkQiSUlLBAxBABZLAksBJAskWCupQQAETCMITCMIQv/jRgJJFSQKFlcGACcETFwATFAoTFCwI0M2GgFJIlkkC4ECCEsBFRJEVwIASSJMFSQKIklLAgxBABFLA0sBJAtbTwMITgIjCEL/6EYCFihMULAjQzEAMQcSKiJPAlQxADEHEyoiTwJUUEcCFScESwJPAiSI/ItJTgJJIllJTgNJgQISREsBFYEDEkRJREsBJVMqIk8CVCJTMQAxBxISRCMNRIERUyoiTwJUIlMxADEHExJEIklLAwxBABZJJQhLBExTKiJPAlRPAkxQTCMIQv/jSEUBRQFJFYEEEkRJVwABIlMxADEHEhJESVcBASJTMQAxBxMSRElXAgEiUzEAMQcSEkRXAwEiUzEAMQcTEkRJFScETgIkiPvoKExQsCNDIillRCMIKUsBZzEbMQCIAAoiKWVEFk8DTgSJIillREkjCBZLAU8CCxZQiQ==", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }