diff --git a/challenge/contracts/algorand-puzzle-2.algo.ts b/challenge/contracts/algorand-puzzle-2.algo.ts index 2ac3b38..1dee1e0 100644 --- a/challenge/contracts/algorand-puzzle-2.algo.ts +++ b/challenge/contracts/algorand-puzzle-2.algo.ts @@ -1,10 +1,8 @@ import { Contract } from '@algorandfoundation/tealscript'; -// TODO: Uncomment Line 8 before solving the puzzle. - // eslint-disable-next-line no-unused-vars class AlgorandPuzzle2 extends Contract { solveThePuzzle(): string { - // return 'You solved the puzzle!'; + return 'You solved the puzzle!'; } } diff --git a/challenge/contracts/artifacts/AlgorandPuzzle2.approval.teal b/challenge/contracts/artifacts/AlgorandPuzzle2.approval.teal index ff12574..351f1d7 100644 --- a/challenge/contracts/artifacts/AlgorandPuzzle2.approval.teal +++ b/challenge/contracts/artifacts/AlgorandPuzzle2.approval.teal @@ -43,7 +43,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM solveThePuzzle: proto 0 1 - // contracts/algorand-puzzle-2.algo.ts:8 + // contracts/algorand-puzzle-2.algo.ts:6 // return 'You solved the puzzle!'; byte 0x596f7520736f6c766564207468652070757a7a6c6521 // "You solved the puzzle!" retsub diff --git a/challenge/contracts/artifacts/AlgorandPuzzle2.arc32.json b/challenge/contracts/artifacts/AlgorandPuzzle2.arc32.json index 5f13646..5483031 100644 --- a/challenge/contracts/artifacts/AlgorandPuzzle2.arc32.json +++ b/challenge/contracts/artifacts/AlgorandPuzzle2.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjg2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzb2x2ZVRoZVB1enpsZSgpc3RyaW5nCiphYmlfcm91dGVfc29sdmVUaGVQdXp6bGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc29sdmVUaGVQdXp6bGUoKXN0cmluZwoJY2FsbHN1YiBzb2x2ZVRoZVB1enpsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzb2x2ZVRoZVB1enpsZSgpOiBzdHJpbmcKc29sdmVUaGVQdXp6bGU6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvYWxnb3JhbmQtcHV6emxlLTIuYWxnby50czo4CgkvLyByZXR1cm4gJ1lvdSBzb2x2ZWQgdGhlIHB1enpsZSEnOwoJYnl0ZSAweDU5NmY3NTIwNzM2ZjZjNzY2NTY0MjA3NDY4NjUyMDcwNzU3YTdhNmM2NTIxIC8vICJZb3Ugc29sdmVkIHRoZSBwdXp6bGUhIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic29sdmVUaGVQdXp6bGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc29sdmVUaGVQdXp6bGUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjg2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzb2x2ZVRoZVB1enpsZSgpc3RyaW5nCiphYmlfcm91dGVfc29sdmVUaGVQdXp6bGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc29sdmVUaGVQdXp6bGUoKXN0cmluZwoJY2FsbHN1YiBzb2x2ZVRoZVB1enpsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzb2x2ZVRoZVB1enpsZSgpOiBzdHJpbmcKc29sdmVUaGVQdXp6bGU6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvYWxnb3JhbmQtcHV6emxlLTIuYWxnby50czo2CgkvLyByZXR1cm4gJ1lvdSBzb2x2ZWQgdGhlIHB1enpsZSEnOwoJYnl0ZSAweDU5NmY3NTIwNzM2ZjZjNzY2NTY0MjA3NDY4NjUyMDcwNzU3YTdhNmM2NTIxIC8vICJZb3Ugc29sdmVkIHRoZSBwdXp6bGUhIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic29sdmVUaGVQdXp6bGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc29sdmVUaGVQdXp6bGUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/challenge/contracts/artifacts/AlgorandPuzzle2.src_map.json b/challenge/contracts/artifacts/AlgorandPuzzle2.src_map.json index d31f6c3..58aacbe 100644 --- a/challenge/contracts/artifacts/AlgorandPuzzle2.src_map.json +++ b/challenge/contracts/artifacts/AlgorandPuzzle2.src_map.json @@ -1,7 +1,7 @@ [ { "teal": 1, - "source": 6, + "source": 4, "pc": [ 0, 1, @@ -11,7 +11,7 @@ }, { "teal": 13, - "source": 6, + "source": 4, "pc": [ 4, 5 @@ -19,14 +19,14 @@ }, { "teal": 14, - "source": 6, + "source": 4, "pc": [ 6 ] }, { "teal": 15, - "source": 6, + "source": 4, "pc": [ 7, 8 @@ -34,14 +34,14 @@ }, { "teal": 16, - "source": 6, + "source": 4, "pc": [ 9 ] }, { "teal": 17, - "source": 6, + "source": 4, "pc": [ 10, 11 @@ -49,14 +49,14 @@ }, { "teal": 18, - "source": 6, + "source": 4, "pc": [ 12 ] }, { "teal": 19, - "source": 6, + "source": 4, "pc": [ 13, 14, @@ -88,14 +88,14 @@ }, { "teal": 22, - "source": 6, + "source": 4, "pc": [ 39 ] }, { "teal": 27, - "source": 7, + "source": 5, "pc": [ 40, 41, @@ -107,7 +107,7 @@ }, { "teal": 30, - "source": 7, + "source": 5, "pc": [ 46, 47, @@ -116,28 +116,28 @@ }, { "teal": 31, - "source": 7, + "source": 5, "pc": [ 49 ] }, { "teal": 32, - "source": 7, + "source": 5, "pc": [ 50 ] }, { "teal": 33, - "source": 7, + "source": 5, "pc": [ 51 ] }, { "teal": 34, - "source": 7, + "source": 5, "pc": [ 52, 53, @@ -146,49 +146,49 @@ }, { "teal": 35, - "source": 7, + "source": 5, "pc": [ 55 ] }, { "teal": 36, - "source": 7, + "source": 5, "pc": [ 56 ] }, { "teal": 37, - "source": 7, + "source": 5, "pc": [ 57 ] }, { "teal": 38, - "source": 7, + "source": 5, "pc": [ 58 ] }, { "teal": 39, - "source": 7, + "source": 5, "pc": [ 59 ] }, { "teal": 40, - "source": 7, + "source": 5, "pc": [ 60 ] }, { "teal": 44, - "source": 7, + "source": 5, "pc": [ 61, 62, @@ -197,7 +197,7 @@ }, { "teal": 48, - "source": 8, + "source": 6, "pc": [ 64, 65, @@ -227,28 +227,28 @@ }, { "teal": 49, - "source": 8, + "source": 6, "pc": [ 88 ] }, { "teal": 52, - "source": 6, + "source": 4, "pc": [ 89 ] }, { "teal": 53, - "source": 6, + "source": 4, "pc": [ 90 ] }, { "teal": 56, - "source": 6, + "source": 4, "pc": [ 91, 92, @@ -260,7 +260,7 @@ }, { "teal": 57, - "source": 6, + "source": 4, "pc": [ 97, 98, @@ -269,7 +269,7 @@ }, { "teal": 58, - "source": 6, + "source": 4, "pc": [ 100, 101, @@ -279,14 +279,14 @@ }, { "teal": 59, - "source": 6, + "source": 4, "pc": [ 104 ] }, { "teal": 62, - "source": 6, + "source": 4, "pc": [ 105, 106, @@ -298,7 +298,7 @@ }, { "teal": 63, - "source": 6, + "source": 4, "pc": [ 111, 112, @@ -307,7 +307,7 @@ }, { "teal": 64, - "source": 6, + "source": 4, "pc": [ 114, 115, @@ -317,7 +317,7 @@ }, { "teal": 65, - "source": 6, + "source": 4, "pc": [ 118 ] diff --git a/challenge/contracts/clients/AlgorandPuzzle2Client.ts b/challenge/contracts/clients/AlgorandPuzzle2Client.ts index 65d90f9..aaa4ae9 100644 --- a/challenge/contracts/clients/AlgorandPuzzle2Client.ts +++ b/challenge/contracts/clients/AlgorandPuzzle2Client.ts @@ -68,7 +68,7 @@ export const APP_SPEC: AppSpec = { } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjg2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzb2x2ZVRoZVB1enpsZSgpc3RyaW5nCiphYmlfcm91dGVfc29sdmVUaGVQdXp6bGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc29sdmVUaGVQdXp6bGUoKXN0cmluZwoJY2FsbHN1YiBzb2x2ZVRoZVB1enpsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzb2x2ZVRoZVB1enpsZSgpOiBzdHJpbmcKc29sdmVUaGVQdXp6bGU6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvYWxnb3JhbmQtcHV6emxlLTIuYWxnby50czo4CgkvLyByZXR1cm4gJ1lvdSBzb2x2ZWQgdGhlIHB1enpsZSEnOwoJYnl0ZSAweDU5NmY3NTIwNzM2ZjZjNzY2NTY0MjA3NDY4NjUyMDcwNzU3YTdhNmM2NTIxIC8vICJZb3Ugc29sdmVkIHRoZSBwdXp6bGUhIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic29sdmVUaGVQdXp6bGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc29sdmVUaGVQdXp6bGUKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjg2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgovLyBzb2x2ZVRoZVB1enpsZSgpc3RyaW5nCiphYmlfcm91dGVfc29sdmVUaGVQdXp6bGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc29sdmVUaGVQdXp6bGUoKXN0cmluZwoJY2FsbHN1YiBzb2x2ZVRoZVB1enpsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzb2x2ZVRoZVB1enpsZSgpOiBzdHJpbmcKc29sdmVUaGVQdXp6bGU6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvYWxnb3JhbmQtcHV6emxlLTIuYWxnby50czo2CgkvLyByZXR1cm4gJ1lvdSBzb2x2ZWQgdGhlIHB1enpsZSEnOwoJYnl0ZSAweDU5NmY3NTIwNzM2ZjZjNzY2NTY0MjA3NDY4NjUyMDcwNzU3YTdhNmM2NTIxIC8vICJZb3Ugc29sdmVkIHRoZSBwdXp6bGUhIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic29sdmVUaGVQdXp6bGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc29sdmVUaGVQdXp6bGUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": {