{ "name": "DynamicOffsetFirst", "structs": { "Child": [ { "name": "foo", "type": "uint64" }, { "name": "arr", "type": "uint64[]" }, { "name": "bar", "type": "uint64" } ], "DynamicOffsets": [ { "name": "nested", "type": "Parent" }, { "name": "pad1", "type": "byte[4096][]" }, { "name": "pad2", "type": "byte[4096][]" } ], "Parent": [ { "name": "baz", "type": "uint64" }, { "name": "nested", "type": "Child" }, { "name": "buz", "type": "uint64" } ] }, "methods": [ { "name": "bootstrap", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "concat", "args": [ { "type": "uint64[]", "name": "array" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "append", "args": [ { "type": "uint64", "name": "value" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "pop", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "verify", "args": [ { "type": "uint64[]", "name": "expected" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get", "args": [ { "type": "uint64", "name": "idx" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "set", "args": [ { "type": "uint64", "name": "idx" }, { "type": "uint64", "name": "value" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": { "box": { "keyType": "AVMString", "valueType": "DynamicOffsets", "key": "Ym94" } } }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 386 ], "errorMessage": "cannot pop from empty array" }, { "pc": [ 641 ], "errorMessage": "expected box length >4096" }, { "pc": [ 391, 400, 495, 504, 536, 547, 557, 566, 575, 585 ], "errorMessage": "index out of bounds" }, { "pc": [ 301, 462 ], "errorMessage": "invalid array length header" }, { "pc": [ 312, 471 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 352, 485, 518, 527 ], "errorMessage": "invalid number of bytes for arc4.uint64" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayA4IDIgMSA0MiA0MDk2CiAgICBieXRlY2Jsb2NrICJib3giIDB4MTUxZjdjNzUKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjI4CiAgICAvLyBjbGFzcyBEeW5hbWljT2Zmc2V0Rmlyc3QoQVJDNENvbnRyYWN0KToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDE2CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQKICAgIHB1c2hieXRlc3MgMHhiZWM3NmQ4NyAweDU5NDljZTVkIDB4MzQyOGZmZWEgMHhiODI1YTE0MiAweDMxN2EzZTAzIDB4YjQzNjljMzYgMHhjZWQxYmRjNiAvLyBtZXRob2QgImJvb3RzdHJhcCgpdm9pZCIsIG1ldGhvZCAiY29uY2F0KHVpbnQ2NFtdKXZvaWQiLCBtZXRob2QgImFwcGVuZCh1aW50NjQpdm9pZCIsIG1ldGhvZCAicG9wKCl1aW50NjQiLCBtZXRob2QgInZlcmlmeSh1aW50NjRbXSl2b2lkIiwgbWV0aG9kICJnZXQodWludDY0KXVpbnQ2NCIsIG1ldGhvZCAic2V0KHVpbnQ2NCx1aW50NjQpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIGJvb3RzdHJhcCBjb25jYXQgYXBwZW5kIHBvcCB2ZXJpZnkgZ2V0IHNldAogICAgZXJyCgptYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDE2OgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgICYmCiAgICByZXR1cm4KCgovLyBfcHV5YV9saWIuYm94X2FyYzQuYm94X2R5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkKGJveF9rZXk6IGJ5dGVzLCBhcnJheV9vZmZzZXQ6IHVpbnQ2NCwgbmV3X2l0ZW1zX2J5dGVzOiBieXRlcywgbmV3X2l0ZW1zX2NvdW50OiB1aW50NjQsIGZpeGVkX2VsZW1lbnRfc2l6ZTogdWludDY0KSAtPiB2b2lkOgpib3hfZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWQ6CiAgICBwcm90byA1IDAKICAgIGZyYW1lX2RpZyAtNQogICAgZnJhbWVfZGlnIC00CiAgICBpbnRjXzEgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtNQogICAgYm94X2xlbgogICAgcG9wCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgKgogICAgKwogICAgZnJhbWVfZGlnIC01CiAgICBzd2FwCiAgICBib3hfcmVzaXplCiAgICBkdXAKICAgIGZyYW1lX2RpZyAtMgogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtNQogICAgZnJhbWVfZGlnIC00CiAgICB1bmNvdmVyIDIKICAgIGJveF9yZXBsYWNlCiAgICBmcmFtZV9kaWcgLTQKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBzd2FwCiAgICBmcmFtZV9kaWcgLTEKICAgICoKICAgICsKICAgIGZyYW1lX2RpZyAtNQogICAgc3dhcAogICAgcHVzaGludCAwCiAgICBmcmFtZV9kaWcgLTMKICAgIGJveF9zcGxpY2UKICAgIHJldHN1YgoKCi8vIF9wdXlhX2xpYi5ib3hfYXJjNC5ib3hfdXBkYXRlX29mZnNldF9kZWMoYm94X2tleTogYnl0ZXMsIG9mZnNldDogdWludDY0LCB2YWx1ZTogdWludDY0KSAtPiB2b2lkOgpib3hfdXBkYXRlX29mZnNldF9kZWM6CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMQogICAgLQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICB1bmNvdmVyIDIKICAgIGJveF9yZXBsYWNlCiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIuYm94X2FyYzQuYm94X3VwZGF0ZV9vZmZzZXRfaW5jKGJveF9rZXk6IGJ5dGVzLCBvZmZzZXQ6IHVpbnQ2NCwgdmFsdWU6IHVpbnQ2NCkgLT4gdm9pZDoKYm94X3VwZGF0ZV9vZmZzZXRfaW5jOgogICAgcHJvdG8gMyAwCiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18xIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAtMgogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5keW5hbWljX29mZnNldF9maXJzdC5EeW5hbWljT2Zmc2V0Rmlyc3QuYm9vdHN0cmFwW3JvdXRpbmddKCkgLT4gdm9pZDoKYm9vdHN0cmFwOgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6MzQKICAgIC8vIHNlbGYuYm94LnZhbHVlID0gRHluYW1pY09mZnNldHMoCiAgICBieXRlY18wIC8vICJib3giCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTozNC00NgogICAgLy8gc2VsZi5ib3gudmFsdWUgPSBEeW5hbWljT2Zmc2V0cygKICAgIC8vICAgICBuZXN0ZWQ9UGFyZW50KAogICAgLy8gICAgICAgICBiYXo9VUludDY0KDEpLAogICAgLy8gICAgICAgICBuZXN0ZWQ9Q2hpbGQoCiAgICAvLyAgICAgICAgICAgICBmb289VUludDY0KDIpLAogICAgLy8gICAgICAgICAgICAgYXJyPUFycmF5VTY0KCksCiAgICAvLyAgICAgICAgICAgICBiYXI9VUludDY0KDMpLAogICAgLy8gICAgICAgICApLAogICAgLy8gICAgICAgICBidXo9VUludDY0KDQpLAogICAgLy8gICAgICksCiAgICAvLyAgICAgcGFkMT1MYXJnZUJ5dGVzKCksCiAgICAvLyAgICAgcGFkMj1MYXJnZUJ5dGVzKCksCiAgICAvLyApCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjM0CiAgICAvLyBzZWxmLmJveC52YWx1ZSA9IER5bmFtaWNPZmZzZXRzKAogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6MzQtNDYKICAgIC8vIHNlbGYuYm94LnZhbHVlID0gRHluYW1pY09mZnNldHMoCiAgICAvLyAgICAgbmVzdGVkPVBhcmVudCgKICAgIC8vICAgICAgICAgYmF6PVVJbnQ2NCgxKSwKICAgIC8vICAgICAgICAgbmVzdGVkPUNoaWxkKAogICAgLy8gICAgICAgICAgICAgZm9vPVVJbnQ2NCgyKSwKICAgIC8vICAgICAgICAgICAgIGFycj1BcnJheVU2NCgpLAogICAgLy8gICAgICAgICAgICAgYmFyPVVJbnQ2NCgzKSwKICAgIC8vICAgICAgICAgKSwKICAgIC8vICAgICAgICAgYnV6PVVJbnQ2NCg0KSwKICAgIC8vICAgICApLAogICAgLy8gICAgIHBhZDE9TGFyZ2VCeXRlcygpLAogICAgLy8gICAgIHBhZDI9TGFyZ2VCeXRlcygpLAogICAgLy8gKQogICAgcHVzaGJ5dGVzIDB4MDAwNjAwMmMwMDJlMDAwMDAwMDAwMDAwMDAwMTAwMTIwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMjAwMTIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwCiAgICBib3hfcHV0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo0NwogICAgLy8gc2VsZi5ib3gudmFsdWUucGFkMS5hcHBlbmQoQnl0ZXM0MDk2KCkpCiAgICBpbnRjIDQgLy8gNDA5NgogICAgYnplcm8KICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMSAvLyAyCiAgICBkdXAKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDQKICAgIGludGMgNCAvLyA0MDk2CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBpbnRjXzIgLy8gMQogICAgaW50YyA0IC8vIDQwOTYKICAgIGNhbGxzdWIgYm94X2R5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTozOQogICAgLy8gYXJyPUFycmF5VTY0KCksCiAgICBwdXNoYnl0ZXMgMHgwMDAwCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo0OAogICAgLy8gc2VsZi52ZXJpZnkoQXJyYXlVNjQoKSkKICAgIGNhbGxzdWIgdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5keW5hbWljX29mZnNldF9maXJzdC5EeW5hbWljT2Zmc2V0Rmlyc3QudmVyaWZ5CiAgICBwb3AKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjMyCiAgICAvLyBAcHVibGljCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5keW5hbWljX29mZnNldF9maXJzdC5EeW5hbWljT2Zmc2V0Rmlyc3QuY29uY2F0W3JvdXRpbmddKCkgLT4gdm9pZDoKY29uY2F0OgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NTAKICAgIC8vIEBwdWJsaWMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgcHVzaGludCAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBkdXAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMwogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8dWludDY0PgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NTIKICAgIC8vIHNlbGYuYm94LnZhbHVlLm5lc3RlZC5uZXN0ZWQuYXJyLmV4dGVuZChhcnJheSkKICAgIHVuY292ZXIgMgogICAgZXh0cmFjdCAyIDAKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMSAvLyAyCiAgICBkaWcgMwogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgNAogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDQyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMwogICAgaW50Y18wIC8vIDgKICAgIGNhbGxzdWIgYm94X2R5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo1MAogICAgLy8gQHB1YmxpYwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuZHluYW1pY19vZmZzZXRfZmlyc3QuRHluYW1pY09mZnNldEZpcnN0LmFwcGVuZFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFwcGVuZDoKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjU0CiAgICAvLyBAcHVibGljCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo1NgogICAgLy8gc2VsZi5ib3gudmFsdWUubmVzdGVkLm5lc3RlZC5hcnIuYXBwZW5kKHZhbHVlKQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMyAvLyA0MgogICAgdW5jb3ZlciAyCiAgICBpbnRjXzIgLy8gMQogICAgaW50Y18wIC8vIDgKICAgIGNhbGxzdWIgYm94X2R5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo1NAogICAgLy8gQHB1YmxpYwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuZHluYW1pY19vZmZzZXRfZmlyc3QuRHluYW1pY09mZnNldEZpcnN0LnBvcFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnBvcDoKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjYwCiAgICAvLyByZXR1cm4gc2VsZi5ib3gudmFsdWUubmVzdGVkLm5lc3RlZC5hcnIucG9wKCkKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMyAvLyA0MgogICAgaW50Y18xIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBkdXAKICAgIGludGNfMiAvLyAxCiAgICAtIC8vIG9uIGVycm9yOiBjYW5ub3QgcG9wIGZyb20gZW1wdHkgYXJyYXkKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA8CiAgICBhc3NlcnQgLy8gaW5kZXggb3V0IG9mIGJvdW5kcwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIHB1c2hpbnQgNDQKICAgICsKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIGludGNfMCAvLyA4CiAgICBib3hfZXh0cmFjdCAvLyBvbiBlcnJvcjogaW5kZXggb3V0IG9mIGJvdW5kcwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2RlYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9kZWMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMyAvLyA0MgogICAgaW50Y18xIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgLQogICAgZHVwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NjAKICAgIC8vIHJldHVybiBzZWxmLmJveC52YWx1ZS5uZXN0ZWQubmVzdGVkLmFyci5wb3AoKQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDQyCiAgICB1bmNvdmVyIDIKICAgIGJveF9yZXBsYWNlCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo2MAogICAgLy8gcmV0dXJuIHNlbGYuYm94LnZhbHVlLm5lc3RlZC5uZXN0ZWQuYXJyLnBvcCgpCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgcHVzaGludCA0NAogICAgKwogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NjAKICAgIC8vIHJldHVybiBzZWxmLmJveC52YWx1ZS5uZXN0ZWQubmVzdGVkLmFyci5wb3AoKQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NjAKICAgIC8vIHJldHVybiBzZWxmLmJveC52YWx1ZS5uZXN0ZWQubmVzdGVkLmFyci5wb3AoKQogICAgaW50Y18wIC8vIDgKICAgIHB1c2hieXRlcyAweAogICAgYm94X3NwbGljZQogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NjAKICAgIC8vIHJldHVybiBzZWxmLmJveC52YWx1ZS5uZXN0ZWQubmVzdGVkLmFyci5wb3AoKQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgYm94X2xlbgogICAgcG9wCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo2MAogICAgLy8gcmV0dXJuIHNlbGYuYm94LnZhbHVlLm5lc3RlZC5uZXN0ZWQuYXJyLnBvcCgpCiAgICBpbnRjXzAgLy8gOAogICAgLQogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NjAKICAgIC8vIHJldHVybiBzZWxmLmJveC52YWx1ZS5uZXN0ZWQubmVzdGVkLmFyci5wb3AoKQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgYm94X3Jlc2l6ZQogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NTgKICAgIC8vIEBwdWJsaWMKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLmR5bmFtaWNfb2Zmc2V0X2ZpcnN0LkR5bmFtaWNPZmZzZXRGaXJzdC52ZXJpZnlbcm91dGluZ10oKSAtPiB2b2lkOgp2ZXJpZnk6CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo2MgogICAgLy8gQHB1YmxpYwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBwdXNoaW50IDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PHVpbnQ2ND4KICAgIGNhbGxzdWIgdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5keW5hbWljX29mZnNldF9maXJzdC5EeW5hbWljT2Zmc2V0Rmlyc3QudmVyaWZ5CiAgICBwb3AKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLmR5bmFtaWNfb2Zmc2V0X2ZpcnN0LkR5bmFtaWNPZmZzZXRGaXJzdC5nZXRbcm91dGluZ10oKSAtPiB2b2lkOgpnZXQ6CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo3MwogICAgLy8gQHB1YmxpYwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NzUKICAgIC8vIHJldHVybiBzZWxmLmJveC52YWx1ZS5uZXN0ZWQubmVzdGVkLmFycltpZHhdCiAgICBieXRlY18wIC8vICJib3giCiAgICBpbnRjXzMgLy8gNDIKICAgIGludGNfMSAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZGlnIDEKICAgID4KICAgIGFzc2VydCAvLyBpbmRleCBvdXQgb2YgYm91bmRzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgcHVzaGludCA0NAogICAgKwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgaW50Y18wIC8vIDgKICAgIGJveF9leHRyYWN0IC8vIG9uIGVycm9yOiBpbmRleCBvdXQgb2YgYm91bmRzCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo3MwogICAgLy8gQHB1YmxpYwogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuZHluYW1pY19vZmZzZXRfZmlyc3QuRHluYW1pY09mZnNldEZpcnN0LnNldFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnNldDoKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5Ojc3CiAgICAvLyBAcHVibGljCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo3OQogICAgLy8gc2VsZi5ib3gudmFsdWUubmVzdGVkLm5lc3RlZC5hcnJbaWR4XSA9IHZhbHVlCiAgICBieXRlY18wIC8vICJib3giCiAgICBpbnRjXzMgLy8gNDIKICAgIGludGNfMSAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZGlnIDIKICAgID4KICAgIGFzc2VydCAvLyBpbmRleCBvdXQgb2YgYm91bmRzCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgcHVzaGludCA0NAogICAgKwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZSAvLyBvbiBlcnJvcjogaW5kZXggb3V0IG9mIGJvdW5kcwogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NzcKICAgIC8vIEBwdWJsaWMKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLmR5bmFtaWNfb2Zmc2V0X2ZpcnN0LkR5bmFtaWNPZmZzZXRGaXJzdC52ZXJpZnkoZXhwZWN0ZWQ6IGJ5dGVzKSAtPiBieXRlczoKdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5keW5hbWljX29mZnNldF9maXJzdC5EeW5hbWljT2Zmc2V0Rmlyc3QudmVyaWZ5OgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NjItNjMKICAgIC8vIEBwdWJsaWMKICAgIC8vIGRlZiB2ZXJpZnkoc2VsZiwgZXhwZWN0ZWQ6IEFycmF5VTY0KSAtPiBOb25lOgogICAgcHJvdG8gMSAxCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo2NAogICAgLy8gYXNzZXJ0IHNlbGYuYm94LnZhbHVlLm5lc3RlZC5iYXogPT0gMQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCA2CiAgICBpbnRjXzAgLy8gOAogICAgYm94X2V4dHJhY3QgLy8gb24gZXJyb3I6IGluZGV4IG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo2NQogICAgLy8gYXNzZXJ0IHNlbGYuYm94LnZhbHVlLm5lc3RlZC5uZXN0ZWQuZm9vID09IDIKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjQKICAgIGludGNfMCAvLyA4CiAgICBib3hfZXh0cmFjdCAvLyBvbiBlcnJvcjogaW5kZXggb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18xIC8vIDIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjY2CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUubmVzdGVkLm5lc3RlZC5iYXIgPT0gMwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAzNAogICAgaW50Y18wIC8vIDgKICAgIGJveF9leHRyYWN0IC8vIG9uIGVycm9yOiBpbmRleCBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjY3CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUubmVzdGVkLmJ1eiA9PSA0CiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDE2CiAgICBpbnRjXzAgLy8gOAogICAgYm94X2V4dHJhY3QgLy8gb24gZXJyb3I6IGluZGV4IG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvZHluYW1pY19vZmZzZXRfZmlyc3QucHk6NjgKICAgIC8vIGFzc2VydCBzZWxmLmJveC52YWx1ZS5uZXN0ZWQubmVzdGVkLmFyciA9PSBleHBlY3RlZAogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDQyCiAgICBpbnRjXzEgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDQyCiAgICB1bmNvdmVyIDIKICAgIGJveF9leHRyYWN0CiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjY5CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUucGFkMS5sZW5ndGggPT0gMQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18xIC8vIDIKICAgIGR1cAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIGludGNfMSAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL2R5bmFtaWNfb2Zmc2V0X2ZpcnN0LnB5OjcwCiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUucGFkMi5sZW5ndGggPT0gMAogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCA0CiAgICBpbnRjXzEgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIGludGNfMSAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgIQogICAgYXNzZXJ0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9keW5hbWljX29mZnNldF9maXJzdC5weTo3MQogICAgLy8gYXNzZXJ0IHNlbGYuYm94Lmxlbmd0aCA+IDQwOTYsICJleHBlY3RlZCBib3ggbGVuZ3RoID40MDk2IgogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgYm94X2xlbgogICAgcG9wCiAgICBpbnRjIDQgLy8gNDA5NgogICAgPgogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGJveCBsZW5ndGggPjQwOTYKICAgIGZyYW1lX2RpZyAtMQogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAFCAIBKoAgJgIDYm94BBUffHUxG0EAQDEZFEQxGESCBwS+x22HBFlJzl0ENCj/6gS4JaFCBDF6PgMEtDacNgTO0b3GNhoAjgcAdADPAQEBIwFwAYYBpwAxGRQxGBQQQ4oFAIv7i/wjuheL+71Ii/6L/wsIi/tM00mL/ggWVwYCi/uL/E8Cu4v8IwhMi/8LCIv7TIEAi/3SiYoDAIv9i/4juheL/wkWVwYCi/2L/k8Cu4mKAwCL/Yv+I7oXi/8IFlcGAov9i/5PAruJKLxIKIAwAAYALAAuAAAAAAAAAAEAEgAAAAAAAAAEAAAAAAAAAAIAEgAAAAAAAAADAAAAAAAAvyEErygjSboXKIEEIQSI/6AoTE8CJCEEiP9EgAIAAIgBAkgkQzYaAUmBAFlJIgtJIwhLAxUSRE8CVwIAKCNLA4j/biiBBE8DiP9mKCVPAk8DIoj/CiRDNhoBSRUiEkQXFigjIoj/SiiBBCKI/0MoJU8CJCKI/ugkQyglI7oXSSQJSU8CDEQiC4EsCChMIrooIyKI/wMogQQiiP78KCUjuhckCUkWVwYCKCVPArsiC4EsCChMIoAA0ii9SCIJKEzTKUxQsCRDNhoBSYEAWSILIwhLARUSRIgAS0gkQzYaAUkVIhJEFyglI7oXSwENRCILgSwIKEwiuilMULAkQzYaAUkVIhJEFzYaAkkVIhJEKCUjuhdLAg1ETCILgSwIKExPArskQ4oBASiBBiK6FyQSRCiBGCK6FyMSRCiBIiK6F4EDEkQogRAiuheBBBJEKCUjuhciCyMIKCVPArqL/xJEKCNJuhcoTCO6FyQSRCiBBCO6FyhMI7oXFEQovUghBA1Ei/+J", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }