{ "name": "ItxnDemoContract", "structs": {}, "methods": [ { "name": "test1", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test2", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test3", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test4", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test5", "args": [ { "type": "uint64", "name": "appId" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 1 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "name": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "bmFtZQ==" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 1232 ], "errorMessage": "Bytes has valid prefix" }, { "pc": [ 324 ], "errorMessage": "app is created" }, { "pc": [ 1158 ], "errorMessage": "application exists" }, { "pc": [ 1056 ], "errorMessage": "approval pages = 2" }, { "pc": [ 1278 ], "errorMessage": "assert target is match for conditions" }, { "pc": [ 265, 272 ], "errorMessage": "asset exists" }, { "pc": [ 257 ], "errorMessage": "asset1_txn is correct" }, { "pc": [ 261 ], "errorMessage": "asset2_txn is correct" }, { "pc": [ 328 ], "errorMessage": "asset3_txn is correct" }, { "pc": [ 1135 ], "errorMessage": "clear state pages = 1" }, { "pc": [ 448 ], "errorMessage": "correct args used 1" }, { "pc": [ 455, 491 ], "errorMessage": "correct args used 2" }, { "pc": [ 269 ], "errorMessage": "created asset 1 is correct" }, { "pc": [ 275 ], "errorMessage": "created asset 2 is correct" }, { "pc": [ 1116 ], "errorMessage": "expected approval page 0" }, { "pc": [ 1131 ], "errorMessage": "expected approval page 1" }, { "pc": [ 1141 ], "errorMessage": "expected clear state page" }, { "pc": [ 1051 ], "errorMessage": "extra pages = 3" }, { "pc": [ 1153 ], "errorMessage": "invalid number of bytes for arc4.uint64" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDUgMyAxMDAwCiAgICBieXRlY2Jsb2NrIDB4MDk4MTAxIDB4MDkzNjFhMDBiMDgxMDEgIjEiICJBU1QyIiAidW5pdCIgIjIiICJBU1QxIiAiQVNUMyIgIjMiICI1IiAibmFtZSIgIjNyZCIgIndpdGggYXJncyBwYXJhbSBzZXQiICI0MiIgIjEwIiAiMTEiICIxMiIgIjEzIiAiMTQiICIxNSIgIjE2IgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMQogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBieXRlYyAxMCAvLyAibmFtZSIKICAgIHB1c2hieXRlcyAweAogICAgYXBwX2dsb2JhbF9wdXQKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTQKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydAogICAgcHVzaGJ5dGVzcyAweDIwMjU0ZjkxIDB4ZjE5MDg1MjQgMHhkZjkyMGYzNyAweDNkNDYzNDVjIDB4ZDRjNmE4ZjUgLy8gbWV0aG9kICJ0ZXN0MSgpdm9pZCIsIG1ldGhvZCAidGVzdDIoKXZvaWQiLCBtZXRob2QgInRlc3QzKCl2b2lkIiwgbWV0aG9kICJ0ZXN0NCgpdm9pZCIsIG1ldGhvZCAidGVzdDUodWludDY0KXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCB0ZXN0MSB0ZXN0MiB0ZXN0MyB0ZXN0NCB0ZXN0NQogICAgZXJyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBJdHhuRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgICYmCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QxW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjMxCiAgICAvLyBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjMyCiAgICAvLyByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMQogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBieXRlYyAxMCAvLyAibmFtZSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzUKICAgIC8vIHRoaXMubmFtZS52YWx1ZSA9IEJ5dGVzKCdBU1QyJykKICAgIGJ5dGVjXzMgLy8gIkFTVDIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNgogICAgLy8gY29uc3QgYXNzZXQxX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICBkdXAKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBkaWcgMQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzAKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyOQogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjQKICAgIC8vIHRoaXMubmFtZS52YWx1ZSA9IEJ5dGVzKCdBU1QxJykKICAgIGJ5dGVjIDYgLy8gIkFTVDEiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyNwogICAgLy8gdG90YWw6IDEwMDAsCiAgICBpbnRjIDQgLy8gMTAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI2LTMzCiAgICAvLyBjb25zdCBhc3NldFBhcmFtcyA9IGl0eG4uYXNzZXRDb25maWcoewogICAgLy8gICB0b3RhbDogMTAwMCwKICAgIC8vICAgYXNzZXROYW1lOiB0aGlzLm5hbWUudmFsdWUsCiAgICAvLyAgIHVuaXROYW1lOiAndW5pdCcsCiAgICAvLyAgIGRlY2ltYWxzOiAzLAogICAgLy8gICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNgogICAgLy8gY29uc3QgYXNzZXQxX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDAKICAgIC8vIGNvbnN0IGFzc2V0Ml90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgZGlnIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBkaWcgMwogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzAKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyOQogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzUKICAgIC8vIHRoaXMubmFtZS52YWx1ZSA9IEJ5dGVzKCdBU1QyJykKICAgIGJ5dGVjXzMgLy8gIkFTVDIiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyNwogICAgLy8gdG90YWw6IDEwMDAsCiAgICBpbnRjIDQgLy8gMTAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI2LTMzCiAgICAvLyBjb25zdCBhc3NldFBhcmFtcyA9IGl0eG4uYXNzZXRDb25maWcoewogICAgLy8gICB0b3RhbDogMTAwMCwKICAgIC8vICAgYXNzZXROYW1lOiB0aGlzLm5hbWUudmFsdWUsCiAgICAvLyAgIHVuaXROYW1lOiAndW5pdCcsCiAgICAvLyAgIGRlY2ltYWxzOiAzLAogICAgLy8gICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0MAogICAgLy8gY29uc3QgYXNzZXQyX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDIKICAgIC8vIGFzc2VydChhc3NldDFfdHhuLmFzc2V0TmFtZSA9PT0gQnl0ZXMoJ0FTVDEnKSwgJ2Fzc2V0MV90eG4gaXMgY29ycmVjdCcpCiAgICB1bmNvdmVyIDMKICAgIGJ5dGVjIDYgLy8gIkFTVDEiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0MV90eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0MwogICAgLy8gYXNzZXJ0KGFzc2V0Ml90eG4uYXNzZXROYW1lID09PSBCeXRlcygnQVNUMicpLCAnYXNzZXQyX3R4biBpcyBjb3JyZWN0JykKICAgIHN3YXAKICAgIGJ5dGVjXzMgLy8gIkFTVDIiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0Ml90eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0NAogICAgLy8gYXNzZXJ0KGFzc2V0MV90eG4uY3JlYXRlZEFzc2V0Lm5hbWUgPT09IEJ5dGVzKCdBU1QxJyksICdjcmVhdGVkIGFzc2V0IDEgaXMgY29ycmVjdCcpCiAgICBzd2FwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TmFtZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgYnl0ZWMgNiAvLyAiQVNUMSIKICAgID09CiAgICBhc3NlcnQgLy8gY3JlYXRlZCBhc3NldCAxIGlzIGNvcnJlY3QKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDUKICAgIC8vIGFzc2VydChhc3NldDJfdHhuLmNyZWF0ZWRBc3NldC5uYW1lID09PSBCeXRlcygnQVNUMicpLCAnY3JlYXRlZCBhc3NldCAyIGlzIGNvcnJlY3QnKQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE5hbWUKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGJ5dGVjXzMgLy8gIkFTVDIiCiAgICA9PQogICAgYXNzZXJ0IC8vIGNyZWF0ZWQgYXNzZXQgMiBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU3CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDkKICAgIC8vIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ4CiAgICAvLyBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ3LTUxCiAgICAvLyBjb25zdCBhcHBDcmVhdGVQYXJhbXMgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGZlZTogMCwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MAogICAgLy8gZmVlOiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU3CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fbmV4dAogICAgZHVwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQogICAgZGlnIDEKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjMwCiAgICAvLyBkZWNpbWFsczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjkKICAgIC8vIHVuaXROYW1lOiAndW5pdCcsCiAgICBieXRlYyA0IC8vICJ1bml0IgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU0CiAgICAvLyBhc3NldE5hbWU6ICdBU1QzJywKICAgIGJ5dGVjIDcgLy8gIkFTVDMiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyNwogICAgLy8gdG90YWw6IDEwMDAsCiAgICBpbnRjIDQgLy8gMTAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI2LTMzCiAgICAvLyBjb25zdCBhc3NldFBhcmFtcyA9IGl0eG4uYXNzZXRDb25maWcoewogICAgLy8gICB0b3RhbDogMTAwMCwKICAgIC8vICAgYXNzZXROYW1lOiB0aGlzLm5hbWUudmFsdWUsCiAgICAvLyAgIHVuaXROYW1lOiAndW5pdCcsCiAgICAvLyAgIGRlY2ltYWxzOiAzLAogICAgLy8gICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NwogICAgLy8gY29uc3QgW2FwcENyZWF0ZVR4biwgYXNzZXQzX3R4bl0gPSBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIGdpdHhuIDAgQ3JlYXRlZEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydChhcHBDcmVhdGVUeG4uY3JlYXRlZEFwcCwgJ2FwcCBpcyBjcmVhdGVkJykKICAgIGFzc2VydCAvLyBhcHAgaXMgY3JlYXRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2MAogICAgLy8gYXNzZXJ0KGFzc2V0M190eG4uYXNzZXROYW1lID09PSBCeXRlcygnQVNUMycpLCAnYXNzZXQzX3R4biBpcyBjb3JyZWN0JykKICAgIGJ5dGVjIDcgLy8gIkFTVDMiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0M190eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2OAogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2MwogICAgLy8gbm90ZTogJzNyZCcsCiAgICBieXRlYyAxMSAvLyAiM3JkIgogICAgaXR4bl9maWVsZCBOb3RlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ5CiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0OAogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0Ny01MQogICAgLy8gY29uc3QgYXBwQ3JlYXRlUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBmZWU6IDAsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTAKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2OAogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjY2CiAgICAvLyBub3RlOiAnM3JkJywKICAgIGJ5dGVjIDExIC8vICIzcmQiCiAgICBpdHhuX2ZpZWxkIE5vdGUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozMAogICAgLy8gZGVjaW1hbHM6IDMsCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBDb25maWdBc3NldERlY2ltYWxzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI5CiAgICAvLyB1bml0TmFtZTogJ3VuaXQnLAogICAgYnl0ZWMgNCAvLyAidW5pdCIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NAogICAgLy8gYXNzZXROYW1lOiAnQVNUMycsCiAgICBieXRlYyA3IC8vICJBU1QzIgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjcKICAgIC8vIHRvdGFsOiAxMDAwLAogICAgaW50YyA0IC8vIDEwMDAKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyNi0zMwogICAgLy8gY29uc3QgYXNzZXRQYXJhbXMgPSBpdHhuLmFzc2V0Q29uZmlnKHsKICAgIC8vICAgdG90YWw6IDEwMDAsCiAgICAvLyAgIGFzc2V0TmFtZTogdGhpcy5uYW1lLnZhbHVlLAogICAgLy8gICB1bml0TmFtZTogJ3VuaXQnLAogICAgLy8gICBkZWNpbWFsczogMywKICAgIC8vICAgbWFuYWdlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIHJlc2VydmU6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gfSkKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjgKICAgIC8vIGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fc3VibWl0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIzCiAgICAvLyBwdWJsaWMgdGVzdDEoKSB7CiAgICBwdXNoaW50IDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QudGVzdDJbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0MjoKICAgIGludGNfMCAvLyAwCiAgICBkdXAKICAgIHB1c2hieXRlcyAiIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3MwogICAgLy8gaWYgKFR4bi5udW1BcHBBcmdzKSB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogdGVzdDJfZWxzZV9ib2R5QDMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzQKICAgIC8vIGNvbnN0IGFyZ3MgPSBbQnl0ZXMoJzEnKSwgQnl0ZXMoJzInKV0gYXMgY29uc3QKICAgIGJ5dGVjXzIgLy8gIjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc4CiAgICAvLyBhcHBBcmdzOiBhcmdzLAogICAgcHVzaGludCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc0CiAgICAvLyBjb25zdCBhcmdzID0gW0J5dGVzKCcxJyksIEJ5dGVzKCcyJyldIGFzIGNvbnN0CiAgICBieXRlYyA1IC8vICIyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLk5vT3AsCiAgICBpbnRjXzAgLy8gMAogICAgYnVyeSA0CiAgICBwdXNoaW50IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODAKICAgIC8vIG5vdGU6ICd3aXRoIGFyZ3MgcGFyYW0gc2V0JywKICAgIGJ5dGVjIDEyIC8vICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IgoKdGVzdDJfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5MAogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuID0gY3JlYXRlQXBwUGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIE5vdGUKICAgIGJ6IHRlc3QyX25leHRfZmllbGRANgogICAgZGlnIDMKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCgp0ZXN0Ml9uZXh0X2ZpZWxkQDY6CiAgICB1bmNvdmVyIDIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaW50Y18zIC8vIDMKICAgID49CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjkwCiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4gPSBjcmVhdGVBcHBQYXJhbXMuc3VibWl0KCkKICAgIGJ6IHRlc3QyX25leHRfZmllbGRAOAogICAgZGlnIDEKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgp0ZXN0Ml9uZXh0X2ZpZWxkQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc3CiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3NgogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3NS04MQogICAgLy8gY3JlYXRlQXBwUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBhcHBBcmdzOiBhcmdzLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uTm9PcCwKICAgIC8vICAgbm90ZTogJ3dpdGggYXJncyBwYXJhbSBzZXQnLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTAKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4biA9IGNyZWF0ZUFwcFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTm90ZQogICAgYnVyeSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjkxCiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLmFwcEFyZ3MoMCkgPT09IEJ5dGVzKCcxJyksICdjb3JyZWN0IGFyZ3MgdXNlZCAxJykKICAgIGl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBieXRlY18yIC8vICIxIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjkyCiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLmFwcEFyZ3MoMSkgPT09IEJ5dGVzKCcyJyksICdjb3JyZWN0IGFyZ3MgdXNlZCAyJykKICAgIGl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBieXRlYyA1IC8vICIyIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk0CiAgICAvLyBpZiAoVHhuLm51bUFwcEFyZ3MgPiAxKSB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgcHVzaGludCAxCiAgICA+CiAgICBieiB0ZXN0Ml9hZnRlcl9pZl9lbHNlQDEyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk1LTEwMgogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuMiA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgICBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTAwCiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgYnl0ZWMgMTMgLy8gIjQyIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OAogICAgLy8gY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTcKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTUtMTAxCiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4yID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICAgIGFwcEFyZ3M6IFtCeXRlcygnNDInKV0sCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk1LTEwMgogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuMiA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgICBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwMwogICAgLy8gYXNzZXJ0KGNyZWF0ZUFwcFR4bjIuYXBwQXJncygwKSA9PT0gQnl0ZXMoJzQyJyksICdjb3JyZWN0IGFyZ3MgdXNlZCAyJykKICAgIGl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBieXRlYyAxMyAvLyAiNDIiCiAgICA9PQogICAgYXNzZXJ0IC8vIGNvcnJlY3QgYXJncyB1c2VkIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA0CiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLm5vdGUgPT09IEJ5dGVzKCd3aXRoIGFyZ3MgcGFyYW0gc2V0JykpCiAgICBkaWcgMgogICAgYnl0ZWMgMTIgLy8gIndpdGggYXJncyBwYXJhbSBzZXQiCiAgICA9PQogICAgYXNzZXJ0Cgp0ZXN0Ml9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3MQogICAgLy8gcHVibGljIHRlc3QyKCkgewogICAgcHVzaGludCAxCiAgICByZXR1cm4KCnRlc3QyX2Vsc2VfYm9keUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4NgogICAgLy8gYXBwQXJnczogW0J5dGVzKCczJyksIG5ldyBTdHIoJzQnKSwgQnl0ZXMoJzUnKV0sCiAgICBieXRlYyA4IC8vICIzIgogICAgcHVzaGJ5dGVzIDB4MDAwMTM0CiAgICBieXRlYyA5IC8vICI1IgogICAgYnVyeSA0CiAgICBpbnRjXzMgLy8gMwogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4MwogICAgLy8gY3JlYXRlQXBwUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODcKICAgIC8vIG5vdGU6ICdubyBhcmdzIHBhcmFtIHNldCcsCiAgICBwdXNoYnl0ZXMgIm5vIGFyZ3MgcGFyYW0gc2V0IgogICAgYiB0ZXN0Ml9hZnRlcl9pZl9lbHNlQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QzW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0Ny0xNjQKICAgIC8vIGNvbnN0IFthcHAxLCBhcHAyLCBhcHAzLCBhcHA0LCBhcHA1LCBhcHA2LCBhcHA3LCBhcHA4LCBhcHA5LCBhcHAxMCwgYXBwMTEsIGFwcDEyLCBhcHAxMywgYXBwMTQsIGFwcDE1LCBhcHAxNl0gPSBpdHhuLnN1Ym1pdEdyb3VwKAogICAgLy8gICBhcHBUeG4xLAogICAgLy8gICBhcHBUeG4yLAogICAgLy8gICBhcHBUeG4zLAogICAgLy8gICBhcHBUeG40LAogICAgLy8gICBhcHBUeG41LAogICAgLy8gICBhcHBUeG42LAogICAgLy8gICBhcHBUeG43LAogICAgLy8gICBhcHBUeG44LAogICAgLy8gICBhcHBUeG45LAogICAgLy8gICBhcHBUeG4xMCwKICAgIC8vICAgYXBwVHhuMTEsCiAgICAvLyAgIGFwcFR4bjEyLAogICAgLy8gICBhcHBUeG4xMywKICAgIC8vICAgYXBwVHhuMTQsCiAgICAvLyAgIGFwcFR4bjE1LAogICAgLy8gICBhcHBUeG4xNiwKICAgIC8vICkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEzCiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICBieXRlY18yIC8vICIxIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEyCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTExCiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTAKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA5LTExNAogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ5CiAgICAvLyBhcHBUeG4yLAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMQogICAgLy8gY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExNwogICAgLy8gYXBwVHhuMi5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzInKV0gfSkKICAgIGJ5dGVjIDUgLy8gIjIiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDktMTE0CiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTAKICAgIC8vIGFwcFR4bjMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTExCiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTAKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTE5CiAgICAvLyBhcHBUeG4zLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMycpXSB9KQogICAgYnl0ZWMgOCAvLyAiMyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMgogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOS0xMTQKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1MQogICAgLy8gYXBwVHhuNCwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTEKICAgIC8vIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMAogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMjEKICAgIC8vIGFwcFR4bjQuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc0JyldIH0pCiAgICBwdXNoYnl0ZXMgIjQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDktMTE0CiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTIKICAgIC8vIGFwcFR4bjUsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTExCiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTAKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTIzCiAgICAvLyBhcHBUeG41LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnNScpXSB9KQogICAgYnl0ZWMgOSAvLyAiNSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMgogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOS0xMTQKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1MwogICAgLy8gYXBwVHhuNiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTEKICAgIC8vIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMAogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMjUKICAgIC8vIGFwcFR4bjYuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc2JyldIH0pCiAgICBwdXNoYnl0ZXMgIjYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDktMTE0CiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTQKICAgIC8vIGFwcFR4bjcsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTExCiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTAKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTI3CiAgICAvLyBhcHBUeG43LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnNycpXSB9KQogICAgcHVzaGJ5dGVzICI3IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEyCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA5LTExNAogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU1CiAgICAvLyBhcHBUeG44LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMQogICAgLy8gY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyOQogICAgLy8gYXBwVHhuOC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzgnKV0gfSkKICAgIHB1c2hieXRlcyAiOCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMgogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOS0xMTQKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1NgogICAgLy8gYXBwVHhuOSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTEKICAgIC8vIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMAogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzEKICAgIC8vIGFwcFR4bjkuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc5JyldIH0pCiAgICBwdXNoYnl0ZXMgIjkiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDktMTE0CiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTcKICAgIC8vIGFwcFR4bjEwLAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMQogICAgLy8gY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzMwogICAgLy8gYXBwVHhuMTAuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxMCcpXSB9KQogICAgYnl0ZWMgMTQgLy8gIjEwIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEyCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA5LTExNAogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU4CiAgICAvLyBhcHBUeG4xMSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTEKICAgIC8vIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMAogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzUKICAgIC8vIGFwcFR4bjExLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTEnKV0gfSkKICAgIGJ5dGVjIDE1IC8vICIxMSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMgogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOS0xMTQKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1OQogICAgLy8gYXBwVHhuMTIsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTExCiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTAKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM3CiAgICAvLyBhcHBUeG4xMi5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEyJyldIH0pCiAgICBieXRlYyAxNiAvLyAiMTIiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDktMTE0CiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjAKICAgIC8vIGFwcFR4bjEzLAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMQogICAgLy8gY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzOQogICAgLy8gYXBwVHhuMTMuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxMycpXSB9KQogICAgYnl0ZWMgMTcgLy8gIjEzIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEyCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA5LTExNAogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYxCiAgICAvLyBhcHBUeG4xNCwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTEKICAgIC8vIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMAogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDEKICAgIC8vIGFwcFR4bjE0LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTQnKV0gfSkKICAgIGJ5dGVjIDE4IC8vICIxNCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMgogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOS0xMTQKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2MgogICAgLy8gYXBwVHhuMTUsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTExCiAgICAvLyBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTAKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQzCiAgICAvLyBhcHBUeG4xNS5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzE1JyldIH0pCiAgICBieXRlYyAxOSAvLyAiMTUiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDktMTE0CiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjMKICAgIC8vIGFwcFR4bjE2LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExMQogICAgLy8gY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NQogICAgLy8gYXBwVHhuMTYuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxNicpXSB9KQogICAgYnl0ZWMgMjAgLy8gIjE2IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEyCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA5LTExNAogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ3LTE2NAogICAgLy8gY29uc3QgW2FwcDEsIGFwcDIsIGFwcDMsIGFwcDQsIGFwcDUsIGFwcDYsIGFwcDcsIGFwcDgsIGFwcDksIGFwcDEwLCBhcHAxMSwgYXBwMTIsIGFwcDEzLCBhcHAxNCwgYXBwMTUsIGFwcDE2XSA9IGl0eG4uc3VibWl0R3JvdXAoCiAgICAvLyAgIGFwcFR4bjEsCiAgICAvLyAgIGFwcFR4bjIsCiAgICAvLyAgIGFwcFR4bjMsCiAgICAvLyAgIGFwcFR4bjQsCiAgICAvLyAgIGFwcFR4bjUsCiAgICAvLyAgIGFwcFR4bjYsCiAgICAvLyAgIGFwcFR4bjcsCiAgICAvLyAgIGFwcFR4bjgsCiAgICAvLyAgIGFwcFR4bjksCiAgICAvLyAgIGFwcFR4bjEwLAogICAgLy8gICBhcHBUeG4xMSwKICAgIC8vICAgYXBwVHhuMTIsCiAgICAvLyAgIGFwcFR4bjEzLAogICAgLy8gICBhcHBUeG4xNCwKICAgIC8vICAgYXBwVHhuMTUsCiAgICAvLyAgIGFwcFR4bjE2LAogICAgLy8gKQogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTY2CiAgICAvLyBhc3NlcnQoYXBwMS5sb2dzKDApID09PSBCeXRlcygnMScpKQogICAgZ2l0eG5hIDAgTG9ncyAwCiAgICBieXRlY18yIC8vICIxIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjcKICAgIC8vIGFzc2VydChhcHAyLmxvZ3MoMCkgPT09IEJ5dGVzKCcyJykpCiAgICBnaXR4bmEgMSBMb2dzIDAKICAgIGJ5dGVjIDUgLy8gIjIiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2OAogICAgLy8gYXNzZXJ0KGFwcDMubG9ncygwKSA9PT0gQnl0ZXMoJzMnKSkKICAgIGdpdHhuYSAyIExvZ3MgMAogICAgYnl0ZWMgOCAvLyAiMyIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTY5CiAgICAvLyBhc3NlcnQoYXBwNC5sb2dzKDApID09PSBCeXRlcygnNCcpKQogICAgZ2l0eG5hIDMgTG9ncyAwCiAgICBwdXNoYnl0ZXMgIjQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3MAogICAgLy8gYXNzZXJ0KGFwcDUubG9ncygwKSA9PT0gQnl0ZXMoJzUnKSkKICAgIGdpdHhuYSA0IExvZ3MgMAogICAgYnl0ZWMgOSAvLyAiNSIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcxCiAgICAvLyBhc3NlcnQoYXBwNi5sb2dzKDApID09PSBCeXRlcygnNicpKQogICAgZ2l0eG5hIDUgTG9ncyAwCiAgICBwdXNoYnl0ZXMgIjYiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3MgogICAgLy8gYXNzZXJ0KGFwcDcubG9ncygwKSA9PT0gQnl0ZXMoJzcnKSkKICAgIGdpdHhuYSA2IExvZ3MgMAogICAgcHVzaGJ5dGVzICI3IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzMKICAgIC8vIGFzc2VydChhcHA4LmxvZ3MoMCkgPT09IEJ5dGVzKCc4JykpCiAgICBnaXR4bmEgNyBMb2dzIDAKICAgIHB1c2hieXRlcyAiOCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc0CiAgICAvLyBhc3NlcnQoYXBwOS5sb2dzKDApID09PSBCeXRlcygnOScpKQogICAgZ2l0eG5hIDggTG9ncyAwCiAgICBwdXNoYnl0ZXMgIjkiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3NQogICAgLy8gYXNzZXJ0KGFwcDEwLmxvZ3MoMCkgPT09IEJ5dGVzKCcxMCcpKQogICAgZ2l0eG5hIDkgTG9ncyAwCiAgICBieXRlYyAxNCAvLyAiMTAiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3NgogICAgLy8gYXNzZXJ0KGFwcDExLmxvZ3MoMCkgPT09IEJ5dGVzKCcxMScpKQogICAgZ2l0eG5hIDEwIExvZ3MgMAogICAgYnl0ZWMgMTUgLy8gIjExIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzcKICAgIC8vIGFzc2VydChhcHAxMi5sb2dzKDApID09PSBCeXRlcygnMTInKSkKICAgIGdpdHhuYSAxMSBMb2dzIDAKICAgIGJ5dGVjIDE2IC8vICIxMiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc4CiAgICAvLyBhc3NlcnQoYXBwMTMubG9ncygwKSA9PT0gQnl0ZXMoJzEzJykpCiAgICBnaXR4bmEgMTIgTG9ncyAwCiAgICBieXRlYyAxNyAvLyAiMTMiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3OQogICAgLy8gYXNzZXJ0KGFwcDE0LmxvZ3MoMCkgPT09IEJ5dGVzKCcxNCcpKQogICAgZ2l0eG5hIDEzIExvZ3MgMAogICAgYnl0ZWMgMTggLy8gIjE0IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODAKICAgIC8vIGFzc2VydChhcHAxNS5sb2dzKDApID09PSBCeXRlcygnMTUnKSkKICAgIGdpdHhuYSAxNCBMb2dzIDAKICAgIGJ5dGVjIDE5IC8vICIxNSIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgxCiAgICAvLyBhc3NlcnQoYXBwMTYubG9ncygwKSA9PT0gQnl0ZXMoJzE2JykpCiAgICBpdHhuYSBMb2dzIDAKICAgIGJ5dGVjIDIwIC8vICIxNiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA4CiAgICAvLyBwdWJsaWMgdGVzdDMoKSB7CiAgICBwdXNoaW50IDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QudGVzdDRbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0NDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg1CiAgICAvLyBjb25zdCBsb3RzT2ZCeXRlcyA9IG9wLmJ6ZXJvKDIwNDQpCiAgICBwdXNoaW50IDIwNDQKICAgIGJ6ZXJvCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4NwogICAgLy8gY29uc3QgYXBwcm92YWwyID0gQnl0ZXMuZnJvbUhleCgnODAnICsgJ0ZDMGYnKQogICAgcHVzaGJ5dGVzIDB4ODBmYzBmCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4Ny0xODgKICAgIC8vIGNvbnN0IGFwcHJvdmFsMiA9IEJ5dGVzLmZyb21IZXgoJzgwJyArICdGQzBmJykKICAgIC8vICAgLmNvbmNhdChsb3RzT2ZCeXRlcykKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODkKICAgIC8vIC5jb25jYXQoQnl0ZXMuZnJvbUhleCgnNDgnKSkKICAgIHB1c2hieXRlcyAweDQ4CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4Ny0xODkKICAgIC8vIGNvbnN0IGFwcHJvdmFsMiA9IEJ5dGVzLmZyb21IZXgoJzgwJyArICdGQzBmJykKICAgIC8vICAgLmNvbmNhdChsb3RzT2ZCeXRlcykKICAgIC8vICAgLmNvbmNhdChCeXRlcy5mcm9tSGV4KCc0OCcpKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5OAogICAgLy8gY29uc3QgYXBwMSA9IGFwcFR4bjEuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTk2CiAgICAvLyBleHRyYVByb2dyYW1QYWdlczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIEV4dHJhUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5NQogICAgLy8gYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgYnl0ZWNfMiAvLyAiMSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5NAogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5MwogICAgLy8gY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTkyCiAgICAvLyBhcHByb3ZhbFByb2dyYW06IFthcHByb3ZhbDEsIGFwcHJvdmFsMiwgYXBwcm92YWwyLCBhcHByb3ZhbDJdLAogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgZHVwCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBkdXAKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGR1cAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOTEtMTk3CiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IFthcHByb3ZhbDEsIGFwcHJvdmFsMiwgYXBwcm92YWwyLCBhcHByb3ZhbDJdLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTk4CiAgICAvLyBjb25zdCBhcHAxID0gYXBwVHhuMS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTnVtQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGl0eG4gTnVtQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgaXR4biBFeHRyYVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOTkKICAgIC8vIGFzc2VydChhcHAxLmV4dHJhUHJvZ3JhbVBhZ2VzID09PSAzLCAnZXh0cmEgcGFnZXMgPSAzJykKICAgIGludGNfMyAvLyAzCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4dHJhIHBhZ2VzID0gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMDAKICAgIC8vIGFzc2VydChhcHAxLm51bUFwcHJvdmFsUHJvZ3JhbVBhZ2VzID09PSAyLCAnYXBwcm92YWwgcGFnZXMgPSAyJykKICAgIHN3YXAKICAgIHB1c2hpbnQgMgogICAgPT0KICAgIGFzc2VydCAvLyBhcHByb3ZhbCBwYWdlcyA9IDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjAxCiAgICAvLyBhc3NlcnQoYXBwMS5hcHByb3ZhbFByb2dyYW1QYWdlcygwKSA9PT0gYXBwcm92YWwxLmNvbmNhdChhcHByb3ZhbDIpLmNvbmNhdChhcHByb3ZhbDIuc2xpY2UoMCwgLTMpKSwgJ2V4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMCcpCiAgICBpdHhuYSBBcHByb3ZhbFByb2dyYW1QYWdlcyAwCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBkaWcgMwogICAgY29uY2F0CiAgICBkaWcgMwogICAgbGVuCiAgICBpbnRjXzAgLy8gMAogICAgZGlnIDEKICAgID49CiAgICBpbnRjXzAgLy8gMAogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBpbnRjXzMgLy8gMwogICAgZGlnIDIKICAgID49CiAgICBpbnRjXzMgLy8gMwogICAgZGlnIDMKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBkaWcgMgogICAgc3dhcAogICAgLQogICAgZHVwCiAgICBkaWcgMgogICAgPAogICAgZGlnIDEKICAgIGRpZyAzCiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgZGlnIDcKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICB1bmNvdmVyIDMKICAgIHN3YXAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMDIKICAgIC8vIGFzc2VydChhcHAxLmFwcHJvdmFsUHJvZ3JhbVBhZ2VzKDEpID09PSBhcHByb3ZhbDIuc2xpY2UoLTMpLmNvbmNhdChhcHByb3ZhbDIpLCAnZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAxJykKICAgIGl0eG5hIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzIDEKICAgIGRpZyA0CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIwMwogICAgLy8gYXNzZXJ0KGFwcDEubnVtQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcyA9PT0gMSwgJ2NsZWFyIHN0YXRlIHBhZ2VzID0gMScpCiAgICBwdXNoaW50IDEKICAgID09CiAgICBhc3NlcnQgLy8gY2xlYXIgc3RhdGUgcGFnZXMgPSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIwNAogICAgLy8gYXNzZXJ0KGFwcDEuY2xlYXJTdGF0ZVByb2dyYW1QYWdlcygwKSA9PT0gQVBQUk9WRSwgJ2V4cGVjdGVkIGNsZWFyIHN0YXRlIHBhZ2UnKQogICAgaXR4bmEgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcyAwCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGNsZWFyIHN0YXRlIHBhZ2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg0CiAgICAvLyBwdWJsaWMgdGVzdDQoKSB7CiAgICBwdXNoaW50IDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QudGVzdDVbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0NToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjA3CiAgICAvLyBwdWJsaWMgdGVzdDUoYXBwSWQ6IEFwcGxpY2F0aW9uKSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMDkKICAgIC8vIHJlY2VpdmVyOiBhcHBJZC5hZGRyZXNzLAogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIxOAogICAgLy8gY29uc3QgWywgYXBwUmVzXSA9IGl0eG4uc3VibWl0R3JvdXAocGF5LCBhcHApCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIxMAogICAgLy8gYW1vdW50OiAxMDAwLAogICAgaW50YyA0IC8vIDEwMDAKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIwOC0yMTEKICAgIC8vIGNvbnN0IHBheSA9IGl0eG4ucGF5bWVudCh7CiAgICAvLyAgIHJlY2VpdmVyOiBhcHBJZC5hZGRyZXNzLAogICAgLy8gICBhbW91bnQ6IDEwMDAsCiAgICAvLyB9KQogICAgcHVzaGludCAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjE4CiAgICAvLyBjb25zdCBbLCBhcHBSZXNdID0gaXR4bi5zdWJtaXRHcm91cChwYXksIGFwcCkKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMTUKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihJdHhuUmVjZWl2ZXIucHJvdG90eXBlLnJlY2VpdmVQYXkpLCBVaW50NjQoMSksIG5ldyBTdHIoJ2hlbGxvJyldLAogICAgcHVzaGJ5dGVzIDB4MTk3MWQxOTcgLy8gbWV0aG9kICJyZWNlaXZlUGF5KHVpbnQ2NCxwYXksc3RyaW5nKSh1aW50NjQsdWludDY0LHN0cmluZykiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIHB1c2hieXRlcyAweDAwMDU2ODY1NmM2YzZmCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIxMy0yMTYKICAgIC8vIGNvbnN0IGFwcCA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwSWQsCiAgICAvLyAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihJdHhuUmVjZWl2ZXIucHJvdG90eXBlLnJlY2VpdmVQYXkpLCBVaW50NjQoMSksIG5ldyBTdHIoJ2hlbGxvJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjE4CiAgICAvLyBjb25zdCBbLCBhcHBSZXNdID0gaXR4bi5zdWJtaXRHcm91cChwYXksIGFwcCkKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIExhc3RMb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjIwCiAgICAvLyBjb25zdCByZXR1cm5WYWx1ZSA9IGRlY29kZUFyYzQ8W3VpbnQ2NCwgdWludDY0LCBzdHJpbmddPihhcHBSZXMubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBkaWcgMQogICAgZXh0cmFjdCAwIDQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjIyCiAgICAvLyBhc3NlcnRNYXRjaChyZXR1cm5WYWx1ZSwgWzEsIDEwMDAsICdoZWxsbyddKQogICAgZGlnIDEKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdF91aW50NjQKICAgIHB1c2hpbnQgMQogICAgPT0KICAgIHB1c2hpbnQgMQogICAgJiYKICAgIHVuY292ZXIgMgogICAgcHVzaGludCAxMgogICAgZXh0cmFjdF91aW50NjQKICAgIGludGMgNCAvLyAxMDAwCiAgICA9PQogICAgJiYKICAgIGRpZyAxCiAgICBwdXNoaW50IDE2CiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDIKICAgIGxlbgogICAgdW5jb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGJ5dGVzICJoZWxsbyIKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjA3CiAgICAvLyBwdWJsaWMgdGVzdDUoYXBwSWQ6IEFwcGxpY2F0aW9uKSB7CiAgICBwdXNoaW50IDEKICAgIHJldHVybgo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEKICAgIHJldHVybgo=" }, "byteCode": { "approval": "CyAFAAYFA+gHJhUDCYEBBwk2GgCwgQEBMQRBU1QyBHVuaXQBMgRBU1QxBEFTVDMBMwE1BG5hbWUDM3JkE3dpdGggYXJncyBwYXJhbSBzZXQCNDICMTACMTECMTICMTMCMTQCMTUCMTYxGEAABScKgABnMRtBADIxGRREMRhEggUEICVPkQTxkIUkBN+SDzcEPUY0XATUxqj1NhoAjgUACQDUAXEDPAPRADEZFDEYFBBDMgpJJworZ7FJsipLAbIpJbIjJwSyJScGsiYhBLIiJbIQIrIBs7QmtDyxSwKyKksDsiklsiMnBLIlK7ImIQSyIiWyECKyAbO0JrQ8TwMnBhJETCsSRExxBEQnBhJEcQREKxJEsSiyQiiyQCOyECKyAbZJsipLAbIpJbIjJwSyJScHsiYhBLIiJbIQIrIBs7QmtwA9RCcHEkSxJwuyBSiyQiiyQCOyECKyAbYnC7IFsiqyKSWyIycEsiUnB7ImIQSyIiWyECKyAbOBAUMiSYAAMRtBAHAqgQInBSJFBIEBJwyxsgVBAARLA7IZTwKyGrIaJQ9BAARLAbIaKLJCKLJAI7IQIrIBs7QFRQO1GgAqEkS1GgEnBRJEMRuBAQ1BACKxJw2yGiSyGSiyQiiyQCOyECKyAbO1GgAnDRJESwInDBJEgQFDJwiAAwABNCcJRQQlTCKAEW5vIGFyZ3MgcGFyYW0gc2V0Qv94sSqyGiSyGSiyQimyQCOyECKyAbYoskIpskAnBbIaJLIZI7IQIrIBtiiyQimyQCcIshokshkjshAisgG2KLJCKbJAgAE0shokshkjshAisgG2KLJCKbJAJwmyGiSyGSOyECKyAbYoskIpskCAATayGiSyGSOyECKyAbYoskIpskCAATeyGiSyGSOyECKyAbYoskIpskCAATiyGiSyGSOyECKyAbYoskIpskCAATmyGiSyGSOyECKyAbYoskIpskAnDrIaJLIZI7IQIrIBtiiyQimyQCcPshokshkjshAisgG2KLJCKbJAJxCyGiSyGSOyECKyAbYoskIpskAnEbIaJLIZI7IQIrIBtiiyQimyQCcSshokshkjshAisgG2KLJCKbJAJxOyGiSyGSOyECKyAbYoskIpskAnFLIaJLIZI7IQIrIBs7gAOgAqEkS4AToAJwUSRLgCOgAnCBJEuAM6AIABNBJEuAQ6ACcJEkS4BToAgAE2EkS4BjoAgAE3EkS4BzoAgAE4EkS4CDoAgAE5EkS4CToAJw4SRLgKOgAnDxJEuAs6ACcQEkS4DDoAJxESRLgNOgAnEhJEuA46ACcTEkS1OgAnFBJEgQFDgfwPr4ADgPwPTFCAAUhQsSWyOCqyGiSyGSiyQiiyQEmyQEmyQEmyQCOyECKyAbO0QbRDtDglEkRMgQISRLVAAChLA1BLAxUiSwEPIksCTwJNJUsCDyVLA08CTUsCTAlJSwIMSwFLA08CTUsHTwNPAlJPA0xQTwMSRLVAAUsETwJPA1JPA1ASRIEBEkS1QgAoEkSBAUM2GgFJFYEIEkQXSXIIRLEhBLIIsgeBAbIQIrIBtoAEGXHRl7IagAgAAAAAAAAAAbIagAcABWhlbGxvshqyGCOyECKyAbO0PklXBABLAVcABIAEFR98dRJESwGBBFuBARKBARBPAoEMWyEEEhBLAYEQWUsCFU8DTgJSVwIAgAVoZWxsbxIQRIEBQw==", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }