{ "name": "HelloFactory", "structs": {}, "methods": [ { "name": "test_compile_contract", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_compile_contract_with_template", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_compile_contract_with_template_and_custom_prefix", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_compile_contract_large", "args": [], "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": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 774, 1360, 1948, 2231 ], "errorMessage": "Bytes has valid prefix" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDEgNQogICAgYnl0ZWNibG9jayAweCAid29ybGQiIGJhc2U2NChDMElBQUlFQlF3PT0pIDB4MTUxZjdjNzUgMHgyNDM3OGQzYyAweGQwYTI4MjAwICJoZWxsbyIgMHg0YzVjNjFiYQogICAgYiBtYWluX2Jsb2NrQDAKCm1haW5fYmxvY2tAMDoKICAgIGIgbWFpbl9ibG9ja0AxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCiAgICBiIG1haW5fYWJpX3JvdXRpbmdAMgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo2CiAgICAvLyBjbGFzcyBIZWxsb0ZhY3RvcnkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9jcmVhdGVfTm9PcEA5CiAgICBiIG1haW5fY2FsbF9Ob09wQDMKCm1haW5fY2FsbF9Ob09wQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDJhMTc5OTVjIC8vIG1ldGhvZCAidGVzdF9jb21waWxlX2NvbnRyYWN0KCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTMyNTRiYzkgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweGUyYjdjNjkyIC8vIG1ldGhvZCAidGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXgoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgwMjk0N2NhMiAvLyBtZXRob2QgInRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZSgpdm9pZCIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3Rfcm91dGVANCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX3JvdXRlQDUgbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9yb3V0ZUA2IG1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX3JvdXRlQDcKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDgKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGVycgoKbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2Vfcm91dGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAwCiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UoKSB7CiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZQogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAOAoKbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo2OQogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXgoKSB7CiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4CiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4CgptYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjM4CiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZSgpIHsKICAgIGNhbGxzdWIgdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDgKCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcKICAgIC8vIHRlc3RfY29tcGlsZV9jb250cmFjdCgpIHsKICAgIGNhbGxzdWIgdGVzdF9jb21waWxlX2NvbnRyYWN0CiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4CgptYWluX2NyZWF0ZV9Ob09wQDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgJiYKICAgIGFzc2VydAogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0W3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdF9jb21waWxlX2NvbnRyYWN0OgogICAgYiB0ZXN0X2NvbXBpbGVfY29udHJhY3RfYmxvY2tAMAoKdGVzdF9jb21waWxlX2NvbnRyYWN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcKICAgIC8vIHRlc3RfY29tcGlsZV9jb250cmFjdCgpIHsKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdAogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlOgogICAgYiB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9ibG9ja0AwCgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozOAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZQogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4OgogICAgYiB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9ibG9ja0AwCgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo2OQogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXgoKSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeAogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2Vbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2U6CiAgICBiIHRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9ibG9ja0AwCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2VfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAwCiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UoKSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0KCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NwogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0KCkgewogICAgcHJvdG8gMCAwCiAgICBieXRlY18wIC8vICIiCiAgICBiIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiBjb21waWxlZC5nbG9iYWxCeXRlcywKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICBieXRlYyA2IC8vICJoZWxsbyIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjIDYgLy8gImhlbGxvIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsbykKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQzBJQUFJRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KEN5QUVBQUVDQkNZRUNHZHlaV1YwYVc1bkFBUVZIM3gxQVNCQ0FBQXhHRUFBQ1VJQUFJZ0JrMElBQUVJQUFEWWFBSUFFSkRlTlBJQUVvT2dZY2s4Q2pnSUFad0JYUWdBQU1Sa2lFa1F4R0NJVFFRQXRRZ0FBTmhvQWdBVFFvb0lBZ0FSUmdMb2dUd0tPQWdBTkFBZENBQUJDQUFBQWlBQ1hRdi8yaUFCcFF2L3dOaG9BZ0FRQWtpV3VUd0dPQVFBR1FnQUFRdi9laUFBa1F2LzNNUmtsRWpFWUloTVFSSWdBTmtML25ERVpnUVVTTVJnaUV4QkVpQUFkUXYrTFFnQUFOaG9CU1NKWkl3c2tDRXNCRlJKRVZ3SUFpQUNKSTBOQ0FBQ0lBSXdqUTBJQUFJZ0FpQ05EUWdBQU5ob0JTU0paSXdza0NFc0JGUkpFVndJQWlBQnlTUlVXVndZQ1R3RlFLazhCVUxBalEwSUFBRFlhQVVrVlRnRkpJbGxKSlJKRVN3RlBBVXNEVWlKWkl3c2tDQ1VJU3dFa1dVbExBaEpFU3dKUEFVOEVVaUpaSXdza0NBaExBUlVTUklnQU4wa1ZGbGNHQWs4QlVDcFBBVkN3STBPS0FRQkNBQUFvaS85bmlVSUFBSWxDQUFDSmlnRUJRZ0FBSWlobFJDbFBBVkFyVUl2L1VJbUtBUUZDQUFBaUtHVkVLVThCVUN0UWkvOGlXWXYvSkZtTC8wOENUd0pTVndJQVVJdi9KRm1ML3hXTC8wOENUd0pTVndJQVVJbENBQUJDQUFCQ0FBQW9LV2VKKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIHB1c2hieXRlcyAweDAwOTIyNWFlIC8vIG1ldGhvZCAiaGVsbG9DcmVhdGUoc3RyaW5nKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAtMTYKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmNyZWF0ZSksIGVuY29kZUFyYzQoJ2hlbGxvJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMQoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiBjb21waWxlZC5nbG9iYWxCeXRlcywKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxOS0yNAogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjEKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIGJ5dGVjXzEgLy8gIndvcmxkIgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjIKICAgIC8vIGFwcElkOiBoZWxsb0FwcCwKICAgIHVuY292ZXIgMQogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjIxCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxOS0yMwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X25leHRfdHhuQDIKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTktMjQKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5ncmVldCksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI1CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgY292ZXIgMQogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2hlbGxvIHdvcmxkJykKICAgIHB1c2hieXRlcyAiaGVsbG8gd29ybGQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI5LTM1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjMxCiAgICAvLyBhcHBJZDogaGVsbG9BcHAsCiAgICBmcmFtZV9kaWcgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozMwogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18zIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjMyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjktMzQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X25leHRfdHhuQDMKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjktMzUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjM4CiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZSgpIHsKICAgIHByb3RvIDAgMAogICAgYnl0ZWNfMCAvLyAiIgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0NgogICAgLy8gZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MzkKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsb1RlbXBsYXRlLCB7IHRlbXBsYXRlVmFyczogeyBHUkVFVElORzogJ2hleScgfSB9KQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQzBJQUFJRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KEN5QUVBQUVDQkNZRkNHZHlaV1YwYVc1bkFBUVZIM3gxQVNBRGFHVjVRZ0FBTVJoQUFBbENBQUNJQVhwQ0FBQkNBQUEyR2dDQUJDUTNqVHlBQktEb0dISlBBbzRDQUdjQVYwSUFBREVaSWhKRU1SZ2lFMEVBTFVJQUFEWWFBSUFFMEtLQ0FJQUVVWUM2SUU4Q2pnSUFEUUFIUWdBQVFnQUFBSWdBaFVMLzlvZ0FWMEwvOERZYUFJQUVURnhodWs4QmpnRUFCa0lBQUVMLzNvZ0FKRUwvOXpFWkpSSXhHQ0lURUVTSUFDUkMvNXd4R1lFRkVqRVlJaE1RUklnQUMwTC9pMElBQUlnQWlTTkRRZ0FBaUFDRkkwTkNBQUNJQUlFalEwSUFBRFlhQVVraVdTTUxKQWhMQVJVU1JGY0NBSWdBYTBrVkZsY0dBazhCVUNwUEFWQ3dJME5DQUFBMkdnRkpGVTRCU1NKWlNTVVNSRXNCVHdGTEExSWlXU01MSkFnbENFc0JKRmxKU3dJU1JFc0NUd0ZQQkZJaVdTTUxKQWdJU3dFVkVrU0lBREJKRlJaWEJnSlBBVkFxVHdGUXNDTkRRZ0FBaVVJQUFJbENBQUNKaWdFQlFnQUFJaWhsUkNsUEFWQXJVSXYvVUltS0FRRkNBQUFpS0dWRUtVOEJVQ3RRaS84aVdZdi9KRm1MLzA4Q1R3SlNWd0lBVUl2L0pGbUwveFdMLzA4Q1R3SlNWd0lBVUlsQ0FBQ0lBQVVvSndSbmlVSUFBRUlBQUVJQUFDZ3BaNGs9KQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0MwogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICBieXRlYyA3IC8vIG1ldGhvZCAiY3JlYXRlKCl2b2lkIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NDEtNDcKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9uZXh0X3R4bkAxCgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NDEtNDgKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NTAtNTUKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzEgLy8gIndvcmxkIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUzCiAgICAvLyBhcHBJZDogaGVsbG9BcHAsCiAgICB1bmNvdmVyIDEKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWMgNSAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NTAtNTQKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDIKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MC01NQogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIExhc3RMb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NTYKICAgIC8vIGNvbnN0IHJlc3VsdCA9IGRlY29kZUFyYzQ8c3RyaW5nPih0eG4ubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBjb3ZlciAxCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMyAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjU4CiAgICAvLyBhc3NlcnQocmVzdWx0ID09PSAnaGV5IHdvcmxkJykKICAgIHB1c2hieXRlcyAiaGV5IHdvcmxkIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo2MC02NgogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjIKICAgIC8vIGFwcElkOiBoZWxsb0FwcCwKICAgIGZyYW1lX2RpZyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjY0CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDMKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo2MC02NgogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXgoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjY5CiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpIHsKICAgIHByb3RvIDAgMAogICAgYnl0ZWNfMCAvLyAiIgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc5CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3NwogICAgLy8gZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzAKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4LCB7IHRlbXBsYXRlVmFyczogeyBHUkVFVElORzogJ2JvbmpvdXInIH0sIHRlbXBsYXRlVmFyc1ByZWZpeDogJ1BSRlhfJyB9KQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQzBJQUFJRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KEN5QUVBQUVDQkNZRkNHZHlaV1YwYVc1bkFBUVZIM3gxQVNBSFltOXVhbTkxY2tJQUFERVlRQUFKUWdBQWlBRjZRZ0FBUWdBQU5ob0FnQVFrTjQwOGdBU2c2Qmh5VHdLT0FnQm5BRmRDQUFBeEdTSVNSREVZSWhOQkFDMUNBQUEyR2dDQUJOQ2lnZ0NBQkZHQXVpQlBBbzRDQUEwQUIwSUFBRUlBQUFDSUFJVkMvL2FJQUZkQy8vQTJHZ0NBQkV4Y1licFBBWTRCQUFaQ0FBQkMvOTZJQUNSQy8vY3hHU1VTTVJnaUV4QkVpQUFrUXYrY01SbUJCUkl4R0NJVEVFU0lBQXRDLzR0Q0FBQ0lBSWtqUTBJQUFJZ0FoU05EUWdBQWlBQ0JJME5DQUFBMkdnRkpJbGtqQ3lRSVN3RVZFa1JYQWdDSUFHdEpGUlpYQmdKUEFWQXFUd0ZRc0NORFFnQUFOaG9CU1JWT0FVa2lXVWtsRWtSTEFVOEJTd05TSWxrakN5UUlKUWhMQVNSWlNVc0NFa1JMQWs4QlR3UlNJbGtqQ3lRSUNFc0JGUkpFaUFBd1NSVVdWd1lDVHdGUUtrOEJVTEFqUTBJQUFJbENBQUNKUWdBQWlZb0JBVUlBQUNJb1pVUXBUd0ZRSzFDTC8xQ0ppZ0VCUWdBQUlpaGxSQ2xQQVZBclVJdi9JbG1ML3lSWmkvOVBBazhDVWxjQ0FGQ0wveVJaaS84VmkvOVBBazhDVWxjQ0FGQ0pRZ0FBaUFBRktDY0VaNGxDQUFCQ0FBQkNBQUFvS1dlSikKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNyAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMQoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc5CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgxLTg2CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4MwogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4NAogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgdW5jb3ZlciAxCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIGJ5dGVjIDUgLy8gbWV0aG9kICJncmVldChzdHJpbmcpc3RyaW5nIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgxLTg1CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9uZXh0X3R4bkAyCgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODEtODYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjg3CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgY292ZXIgMQogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4OQogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2JvbmpvdXIgd29ybGQnKQogICAgcHVzaGJ5dGVzICJib25qb3VyIHdvcmxkIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NwogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OTMKICAgIC8vIGFwcElkOiBoZWxsb0FwcCwKICAgIGZyYW1lX2RpZyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjk1CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OTQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OTEtOTYKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X25leHRfdHhuQDMKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NwogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAwCiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UoKSB7CiAgICBwcm90byAwIDAKICAgIGJ5dGVjXzAgLy8gIiIKICAgIGIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMy0xMTAKICAgIC8vIGNvbnN0IGxhcmdlQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZXh0cmFQcm9ncmFtUGFnZXM6IGNvbXBpbGVkLmV4dHJhUHJvZ3JhbVBhZ2VzLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiBjb21waWxlZC5nbG9iYWxCeXRlcywKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAxCiAgICAvLyBjb25zdCBjb21waWxlZCA9IGNvbXBpbGUoTGFyZ2VQcm9ncmFtKQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBFeHRyYVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQzBJQUFJRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KEN5QUNBQUZDQUFCQ0FBQXhHeUlUUVFCQ1FnQUFOaG9BZ0FRa040MDhnQVFDdnpEUFR3S09BZ0FYQUFkQ0FBQkNBQUFBTVJraUVqRVlJaE1RUklnQUswTC83REVaZ1FVU01SZ2lFeEJFaUFBdFF2L2JNUmtpRWpFWUloSVFSSWdBTVNORFFnQUFnWUFncjRsQ0FBQ0lBQlVXZ0FRVkgzeDFUd0ZRc0NORFFnQUFpQUFLSTBOQ0FBQ0kvOWNWaVVJQUFJbENBQUNKKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTA5CiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2VfbmV4dF90eG5AMQoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEyLTExNwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dldEJpZ0J5dGVzTGVuZ3RoKCl1aW50NjQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjExMi0xMTYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdnZXRCaWdCeXRlc0xlbmd0aCgpdWludDY0JyldLAogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAyCgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX25leHRfdHhuQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjExMi0xMTcKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdnZXRCaWdCeXRlc0xlbmd0aCgpdWludDY0JyldLAogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjExOAogICAgLy8gY29uc3QgcmVzdWx0ID0gZGVjb2RlQXJjNDx1aW50NjQ+KHR4bi5sYXN0TG9nLCAnbG9nJykKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIGNvdmVyIDEKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlY18zIC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMjAKICAgIC8vIGFzc2VydChyZXN1bHQgPT09IDQwOTYpCiAgICBwdXNoaW50IDQwOTYKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIyLTEyOAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI0CiAgICAvLyBhcHBJZDogbGFyZ2VBcHAsCiAgICBmcmFtZV9kaWcgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMjYKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMyAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMjUKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIyLTEyNwogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX25leHRfdHhuQDMKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2VfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIyLTEyOAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgYiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMAoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBiIG1haW5fYmxvY2tAMAoKbWFpbl9ibG9ja0AwOgogICAgcHVzaGludCAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "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", "clear": "C0IAAIEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }