tx · 3RsvnpSXrxUTQXz6JCuPhV11WC9bPYMkikq2eAzFCiEA 3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ: -0.01400000 Waves 2021.10.09 01:11 [1737874] smart account 3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ > SELF 0.00000000 Waves
{ "type": 13, "id": "3RsvnpSXrxUTQXz6JCuPhV11WC9bPYMkikq2eAzFCiEA", "fee": 1400000, "feeAssetId": null, "timestamp": 1633731076129, "version": 2, "chainId": 84, "sender": "3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ", "senderPublicKey": "BMLuSYJ8rvQD55waCoKpzCBhJAbY8s9pp4V5ZgxuzCBD", "proofs": [ "5Cx3wbregivmHQDUidvzjbQLZdYLDww19H9UbNqMck93dASSfjrbnjjLNbJjq4SPGqE6Hq1gpdc455BLjJfPRhu8" ], "script": "base64:AAIEAAAAAAAAABoIAhIAEgASABIAEgASABIAEgASABIAEgASAAAAABIAAAAAA0E0QQEAAAAgcmq6+6Wxr2yowtuRELQMbFaAM1flDMDSVcM9IpA14LUAAAAAB1dlZWswVFMAAAABeyJO4UAAAAAABHdlZWsAAAAAACQMhAAAAAAACXBhdXNldGltZQAAAAAAANu6AAAAAAALY3VycmVudHdlZWsJAABkAAAAAgkAAGkAAAACCQAAZQAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAdXZWVrMFRTBQAAAAR3ZWVrAAAAAAAAAAABAAAAAAdzdHJ3ZWVrCQABpAAAAAEFAAAAC2N1cnJlbnR3ZWVrAAAAAA5UU1VwdG9QYXN0V2VlawkAAGQAAAACBQAAAAdXZWVrMFRTCQAAaAAAAAIJAABlAAAAAgUAAAALY3VycmVudHdlZWsAAAAAAAAAAAEFAAAABHdlZWsAAAAAD3ZvdGluZ3BhdXNldGltZQkAAGQAAAACBQAAAA5UU1VwdG9QYXN0V2VlawUAAAAJcGF1c2V0aW1lAAAAAANtc2cCAAAAJDxoMT5Zb3UgVm90ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgAAAAAJcHltdGVycm9yAgAAADBEQXBwIE5lZWQgMC4wMDAxIEE0QSBUb2tlbiBhcyBBdHRhY2ggcGF5bWVudFsxXS4AAAAAC21pbmJhbGVycm9yAgAAAFxNaW4uIDEgQTRBIHJlcXVpcmVkIG9uIFlvdXIgQWRkcmVzcyB0byBWb3RlLiBQbGVhc2UgTWludCBvciBob2xkIG1pbi4gMSBBNEEgb24gdGhpcyBBZGRyZXNzLgAAAAAIYXNzZXRlcnIJAAEsAAAAAgkAASwAAAACAgAAACZJbmNvcnJlY3QgYXNzZXQgYXR0YWNoLCBwbGVhc2UgYXR0YWNoIAkAAlgAAAABBQAAAANBNEECAAAADiBBc3NldElEIE9ubHkuAAAAAAltaW5hbXRlcnICAAAAJ1BsZWFzZSBBdHRhY2ggRXhhY3QgMC4wMDAxIEE0QSBUbyBWb3RlLgAAAAAHdm90ZUVycgkAASwAAAACCQABLAAAAAICAAAAGlZvdGluZyBpcyBwYXVzZWQgZm9yIE5leHQgCQABpAAAAAEJAABpAAAAAgkAAGUAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAAAAAAAAAOpgAgAAAAggTWludXRlcwAAAAAERlRUWAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAApUb3RhbF9UeG5zAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAAAAAACXRvdGFsdHhucwkAAGQAAAACBQAAAARGVFRYAAAAAAAAAAABAAAAAApGVFRYb2Z3ZWVrBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAAAAAAEVFRPVwkAAGQAAAACBQAAAApGVFRYb2Z3ZWVrAAAAAAAAAAABAAAADAAAAAFpAQAAAAlDaGFpbmxpbmsAAAAABAAAAAdWb3RlQXN0AgAAAAlDaGFpbmxpbmsEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhhc3NldGJhbAkAA/AAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAA0E0QQQAAAAERlVXVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRXVk8JAABkAAAAAgUAAAAERlVXVgAAAAAAAAAAAQQAAAAFVVdWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAZVVFdWRkEJAABkAAAAAgUAAAAFVVdWRkEAAAAAAAAAAAEEAAAABEZVVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFVUVk8JAABkAAAAAgUAAAAERlVWTwAAAAAAAAAAAQQAAAAFRlVWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFZGQQkAAGQAAAACBQAAAAVGVVZGQQAAAAAAAAAAAQQAAAAERlRWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARBVFZPCQAAZAAAAAIFAAAABEZUVk8AAAAAAAAAAAEEAAAABFdGVFYEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEV0FUVgkAAGQAAAACBQAAAARXRlRWAAAAAAAAAAABAwkAAGYAAAACAAAAAAAF9eEABQAAAAhhc3NldGJhbAkAAAIAAAABBQAAAAttaW5iYWxlcnJvcgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAADQTRBCQAAAgAAAAEFAAAACGFzc2V0ZXJyAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAJxAJAAACAAAAAQUAAAAJbWluYW10ZXJyAwkAAGYAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEFAAAAB3ZvdGVFcnIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1R4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAAtfVG90YWxfVHhucwUAAAAEVFRPVwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATQ3VycmVudF9Wb3RpbmdfV2VlawUAAAALY3VycmVudHdlZWsJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARBVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEV0FUVgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAARVVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABVVUV1ZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0BQAAAAZVVFdWRkEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QFAAAABVVUVkZBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAA21zZwUAAAADbmlsAAAAAWkBAAAABERlbnQAAAAABAAAAAdWb3RlQXN0AgAAAAREZW50BAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAVTdXNoaQAAAAAEAAAAB1ZvdGVBc3QCAAAABVN1c2hpBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAhDb21wb3VuZAAAAAAEAAAAB1ZvdGVBc3QCAAAACENvbXBvdW5kBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAVIYXZlbgAAAAAEAAAAB1ZvdGVBc3QCAAAABUhhdmVuBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAtQaXJhdGVDaGFpbgAAAAAEAAAAB1ZvdGVBc3QCAAAAC1BpcmF0ZUNoYWluBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAZNb25lcm8AAAAABAAAAAdWb3RlQXN0AgAAAAZNb25lcm8EAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhhc3NldGJhbAkAA/AAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAA0E0QQQAAAAERlVXVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRXVk8JAABkAAAAAgUAAAAERlVXVgAAAAAAAAAAAQQAAAAFVVdWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAZVVFdWRkEJAABkAAAAAgUAAAAFVVdWRkEAAAAAAAAAAAEEAAAABEZVVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFVUVk8JAABkAAAAAgUAAAAERlVWTwAAAAAAAAAAAQQAAAAFRlVWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFZGQQkAAGQAAAACBQAAAAVGVVZGQQAAAAAAAAAAAQQAAAAERlRWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARBVFZPCQAAZAAAAAIFAAAABEZUVk8AAAAAAAAAAAEEAAAABFdGVFYEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEV0FUVgkAAGQAAAACBQAAAARXRlRWAAAAAAAAAAABAwkAAGYAAAACAAAAAAAF9eEABQAAAAhhc3NldGJhbAkAAAIAAAABBQAAAAttaW5iYWxlcnJvcgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAADQTRBCQAAAgAAAAEFAAAACGFzc2V0ZXJyAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAJxAJAAACAAAAAQUAAAAJbWluYW10ZXJyAwkAAGYAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEFAAAAB3ZvdGVFcnIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1R4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAAtfVG90YWxfVHhucwUAAAAEVFRPVwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATQ3VycmVudF9Wb3RpbmdfV2VlawUAAAALY3VycmVudHdlZWsJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARBVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEV0FUVgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAARVVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABVVUV1ZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0BQAAAAZVVFdWRkEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QFAAAABVVUVkZBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAA21zZwUAAAADbmlsAAAAAWkBAAAABFBSQ1kAAAAABAAAAAdWb3RlQXN0AgAAAAdQcml2YWN5BAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAANCVEMAAAAABAAAAAdWb3RlQXN0AgAAAAdCaXRjb2luBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAANMVEMAAAAABAAAAAdWb3RlQXN0AgAAAAhMaXRlY29pbgQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAEFAAAACXB5bXRlcnJvcgQAAAAGcHVia2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACGFzc2V0YmFsCQAD8AAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAADQTRBBAAAAARGVVdWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFdWTwkAAGQAAAACBQAAAARGVVdWAAAAAAAAAAABBAAAAAVVV1ZGQQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABlVUV1ZGQQkAAGQAAAACBQAAAAVVV1ZGQQAAAAAAAAAAAQQAAAAERlVWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEVVzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEVVRWTwkAAGQAAAACBQAAAARGVVZPAAAAAAAAAAABBAAAAAVGVVZGQQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUVkZBCQAAZAAAAAIFAAAABUZVVkZBAAAAAAAAAAABBAAAAARGVFZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABEFUVk8JAABkAAAAAgUAAAAERlRWTwAAAAAAAAAAAQQAAAAEV0ZUVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARXQVRWCQAAZAAAAAIFAAAABFdGVFYAAAAAAAAAAAEDCQAAZgAAAAIAAAAAAAX14QAFAAAACGFzc2V0YmFsCQAAAgAAAAEFAAAAC21pbmJhbGVycm9yAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAANBNEEJAAACAAAAAQUAAAAIYXNzZXRlcnIDCQEAAAACIT0AAAACCAUAAAADcG10AAAABmFtb3VudAAAAAAAAAAnEAkAAAIAAAABBQAAAAltaW5hbXRlcnIDCQAAZgAAAAIFAAAAD3ZvdGluZ3BhdXNldGltZQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQUAAAAHdm90ZUVycgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKVG90YWxfVHhucwUAAAAJdG90YWx0eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAC19Ub3RhbF9UeG5zBQAAAARUVE9XCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNDdXJyZW50X1ZvdGluZ19XZWVrBQAAAAtjdXJyZW50d2VlawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABEFUVk8JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARXQVRWCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEVVzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABFVUVk8JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAFVVRXVk8JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QFAAAABlVUV1ZGQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAUAAAAFVVRWRkEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAADbXNnBQAAAANuaWwAAAABaQEAAAAEREFTSAAAAAAEAAAAB1ZvdGVBc3QCAAAABERhc2gEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhhc3NldGJhbAkAA/AAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAA0E0QQQAAAAERlVXVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRXVk8JAABkAAAAAgUAAAAERlVXVgAAAAAAAAAAAQQAAAAFVVdWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAZVVFdWRkEJAABkAAAAAgUAAAAFVVdWRkEAAAAAAAAAAAEEAAAABEZVVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFVUVk8JAABkAAAAAgUAAAAERlVWTwAAAAAAAAAAAQQAAAAFRlVWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFZGQQkAAGQAAAACBQAAAAVGVVZGQQAAAAAAAAAAAQQAAAAERlRWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARBVFZPCQAAZAAAAAIFAAAABEZUVk8AAAAAAAAAAAEEAAAABFdGVFYEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEV0FUVgkAAGQAAAACBQAAAARXRlRWAAAAAAAAAAABAwkAAGYAAAACAAAAAAAF9eEABQAAAAhhc3NldGJhbAkAAAIAAAABBQAAAAttaW5iYWxlcnJvcgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAADQTRBCQAAAgAAAAEFAAAACGFzc2V0ZXJyAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAJxAJAAACAAAAAQUAAAAJbWluYW10ZXJyAwkAAGYAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEFAAAAB3ZvdGVFcnIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1R4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAAtfVG90YWxfVHhucwUAAAAEVFRPVwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATQ3VycmVudF9Wb3RpbmdfV2VlawUAAAALY3VycmVudHdlZWsJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARBVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEV0FUVgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAARVVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABVVUV1ZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0BQAAAAZVVFdWRkEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QFAAAABVVUVkZBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAA21zZwUAAAADbmlsAAAAAWkBAAAAA0JDSAAAAAAEAAAAB1ZvdGVBc3QCAAAAC0JpdGNvaW5DYXNoBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5+/c1fw==", "height": 1737874, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3CyTgfTSq4jXkpZoi98f7Ku3naXpdwmxcFb1LwPHmWVJ Next: FTGctiZfB5i9VDtrwxGZN9tjSupJGbAAqxdYPikeJaVQ Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let A4A = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g' | |
5 | 5 | ||
6 | 6 | let Week0TS = 1628368200000 | |
7 | 7 | ||
9 | 9 | ||
10 | 10 | let pausetime = 14400000 | |
11 | 11 | ||
12 | - | let | |
12 | + | let currentweek = (((lastBlock.timestamp - Week0TS) / week) + 1) | |
13 | 13 | ||
14 | - | let TSUptoPastWeek = (Week0TS + ((currentrunningweek - 1) * week)) | |
14 | + | let strweek = toString(currentweek) | |
15 | + | ||
16 | + | let TSUptoPastWeek = (Week0TS + ((currentweek - 1) * week)) | |
15 | 17 | ||
16 | 18 | let votingpausetime = (TSUptoPastWeek + pausetime) | |
17 | 19 | ||
18 | - | let | |
20 | + | let msg = "<h1>You Voted Successfully!</h1><br>" | |
19 | 21 | ||
20 | - | let | |
22 | + | let pymterror = "DApp Need 0.0001 A4A Token as Attach payment[1]." | |
21 | 23 | ||
22 | - | let minbalerror = " | |
24 | + | let minbalerror = "Min. 1 A4A required on Your Address to Vote. Please Mint or hold min. 1 A4A on this Address." | |
23 | 25 | ||
24 | - | let asseterr = (("Incorrect asset | |
26 | + | let asseterr = (("Incorrect asset attach, please attach " + toBase58String(A4A)) + " AssetID Only.") | |
25 | 27 | ||
26 | 28 | let minamterr = "Please Attach Exact 0.0001 A4A To Vote." | |
27 | 29 | ||
28 | - | let fetchtotaltxns = match getInteger(this, "Total_Txns") { | |
30 | + | let voteErr = (("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes") | |
31 | + | ||
32 | + | let FTTX = match getInteger(this, "Total_Txns") { | |
29 | 33 | case a: Int => | |
30 | 34 | a | |
31 | 35 | case _ => | |
32 | 36 | 0 | |
33 | 37 | } | |
34 | 38 | ||
35 | - | let totaltxns = ( | |
39 | + | let totaltxns = (FTTX + 1) | |
36 | 40 | ||
37 | - | let | |
41 | + | let FTTXofweek = match getInteger(this, (strweek + "_Total_Txns")) { | |
38 | 42 | case a: Int => | |
39 | 43 | a | |
40 | 44 | case _ => | |
41 | 45 | 0 | |
42 | 46 | } | |
43 | 47 | ||
44 | - | let | |
48 | + | let TTOW = (FTTXofweek + 1) | |
45 | 49 | ||
46 | 50 | @Callable(i) | |
47 | 51 | func Chainlink () = { | |
48 | - | let | |
52 | + | let VoteAst = "Chainlink" | |
49 | 53 | let pmt = if ((size(i.payments) == 1)) | |
50 | 54 | then i.payments[0] | |
51 | - | else throw( | |
52 | - | let | |
53 | - | let | |
54 | - | let | |
55 | + | else throw(pymterror) | |
56 | + | let pubkey = toBase58String(i.caller.bytes) | |
57 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
58 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
55 | 59 | case a: Int => | |
56 | 60 | a | |
57 | 61 | case _ => | |
58 | 62 | 0 | |
59 | 63 | } | |
60 | - | let | |
61 | - | let | |
64 | + | let UTWVO = (FUWV + 1) | |
65 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
62 | 66 | case a: Int => | |
63 | 67 | a | |
64 | 68 | case _ => | |
65 | 69 | 0 | |
66 | 70 | } | |
67 | - | let | |
68 | - | let | |
71 | + | let UTWVFA = (UWVFA + 1) | |
72 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
69 | 73 | case a: Int => | |
70 | 74 | a | |
71 | 75 | case _ => | |
72 | 76 | 0 | |
73 | 77 | } | |
74 | - | let | |
75 | - | let | |
78 | + | let UTVO = (FUVO + 1) | |
79 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
76 | 80 | case a: Int => | |
77 | 81 | a | |
78 | 82 | case _ => | |
79 | 83 | 0 | |
80 | 84 | } | |
81 | - | let | |
82 | - | let | |
85 | + | let UTVFA = (FUVFA + 1) | |
86 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
83 | 87 | case a: Int => | |
84 | 88 | a | |
85 | 89 | case _ => | |
86 | 90 | 0 | |
87 | 91 | } | |
88 | - | let | |
89 | - | let | |
92 | + | let ATVO = (FTVO + 1) | |
93 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
90 | 94 | case a: Int => | |
91 | 95 | a | |
92 | 96 | case _ => | |
93 | 97 | 0 | |
94 | 98 | } | |
95 | - | let | |
96 | - | if ((100000000 > | |
99 | + | let WATV = (WFTV + 1) | |
100 | + | if ((100000000 > assetbal)) | |
97 | 101 | then throw(minbalerror) | |
98 | - | else if ((pmt.assetId != | |
102 | + | else if ((pmt.assetId != A4A)) | |
99 | 103 | then throw(asseterr) | |
100 | 104 | else if ((pmt.amount != 10000)) | |
101 | 105 | then throw(minamterr) | |
102 | 106 | else if ((votingpausetime > lastBlock.timestamp)) | |
103 | - | then throw( | |
104 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
107 | + | then throw(voteErr) | |
108 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
105 | 109 | } | |
106 | 110 | ||
107 | 111 | ||
108 | 112 | ||
109 | 113 | @Callable(i) | |
110 | 114 | func Dent () = { | |
111 | - | let | |
115 | + | let VoteAst = "Dent" | |
112 | 116 | let pmt = if ((size(i.payments) == 1)) | |
113 | 117 | then i.payments[0] | |
114 | - | else throw( | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | + | else throw(pymterror) | |
119 | + | let pubkey = toBase58String(i.caller.bytes) | |
120 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
121 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
118 | 122 | case a: Int => | |
119 | 123 | a | |
120 | 124 | case _ => | |
121 | 125 | 0 | |
122 | 126 | } | |
123 | - | let | |
124 | - | let | |
127 | + | let UTWVO = (FUWV + 1) | |
128 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
125 | 129 | case a: Int => | |
126 | 130 | a | |
127 | 131 | case _ => | |
128 | 132 | 0 | |
129 | 133 | } | |
130 | - | let | |
131 | - | let | |
134 | + | let UTWVFA = (UWVFA + 1) | |
135 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
132 | 136 | case a: Int => | |
133 | 137 | a | |
134 | 138 | case _ => | |
135 | 139 | 0 | |
136 | 140 | } | |
137 | - | let | |
138 | - | let | |
141 | + | let UTVO = (FUVO + 1) | |
142 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
139 | 143 | case a: Int => | |
140 | 144 | a | |
141 | 145 | case _ => | |
142 | 146 | 0 | |
143 | 147 | } | |
144 | - | let | |
145 | - | let | |
148 | + | let UTVFA = (FUVFA + 1) | |
149 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
146 | 150 | case a: Int => | |
147 | 151 | a | |
148 | 152 | case _ => | |
149 | 153 | 0 | |
150 | 154 | } | |
151 | - | let | |
152 | - | let | |
155 | + | let ATVO = (FTVO + 1) | |
156 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
153 | 157 | case a: Int => | |
154 | 158 | a | |
155 | 159 | case _ => | |
156 | 160 | 0 | |
157 | 161 | } | |
158 | - | let | |
159 | - | if ((100000000 > | |
162 | + | let WATV = (WFTV + 1) | |
163 | + | if ((100000000 > assetbal)) | |
160 | 164 | then throw(minbalerror) | |
161 | - | else if ((pmt.assetId != | |
165 | + | else if ((pmt.assetId != A4A)) | |
162 | 166 | then throw(asseterr) | |
163 | 167 | else if ((pmt.amount != 10000)) | |
164 | 168 | then throw(minamterr) | |
165 | 169 | else if ((votingpausetime > lastBlock.timestamp)) | |
166 | - | then throw( | |
167 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
170 | + | then throw(voteErr) | |
171 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
168 | 172 | } | |
169 | 173 | ||
170 | 174 | ||
171 | 175 | ||
172 | 176 | @Callable(i) | |
173 | 177 | func Sushi () = { | |
174 | - | let | |
178 | + | let VoteAst = "Sushi" | |
175 | 179 | let pmt = if ((size(i.payments) == 1)) | |
176 | 180 | then i.payments[0] | |
177 | - | else throw( | |
178 | - | let | |
179 | - | let | |
180 | - | let | |
181 | + | else throw(pymterror) | |
182 | + | let pubkey = toBase58String(i.caller.bytes) | |
183 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
184 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
181 | 185 | case a: Int => | |
182 | 186 | a | |
183 | 187 | case _ => | |
184 | 188 | 0 | |
185 | 189 | } | |
186 | - | let | |
187 | - | let | |
190 | + | let UTWVO = (FUWV + 1) | |
191 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
188 | 192 | case a: Int => | |
189 | 193 | a | |
190 | 194 | case _ => | |
191 | 195 | 0 | |
192 | 196 | } | |
193 | - | let | |
194 | - | let | |
197 | + | let UTWVFA = (UWVFA + 1) | |
198 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
195 | 199 | case a: Int => | |
196 | 200 | a | |
197 | 201 | case _ => | |
198 | 202 | 0 | |
199 | 203 | } | |
200 | - | let | |
201 | - | let | |
204 | + | let UTVO = (FUVO + 1) | |
205 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
202 | 206 | case a: Int => | |
203 | 207 | a | |
204 | 208 | case _ => | |
205 | 209 | 0 | |
206 | 210 | } | |
207 | - | let | |
208 | - | let | |
211 | + | let UTVFA = (FUVFA + 1) | |
212 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
209 | 213 | case a: Int => | |
210 | 214 | a | |
211 | 215 | case _ => | |
212 | 216 | 0 | |
213 | 217 | } | |
214 | - | let | |
215 | - | let | |
218 | + | let ATVO = (FTVO + 1) | |
219 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
216 | 220 | case a: Int => | |
217 | 221 | a | |
218 | 222 | case _ => | |
219 | 223 | 0 | |
220 | 224 | } | |
221 | - | let | |
222 | - | if ((100000000 > | |
225 | + | let WATV = (WFTV + 1) | |
226 | + | if ((100000000 > assetbal)) | |
223 | 227 | then throw(minbalerror) | |
224 | - | else if ((pmt.assetId != | |
228 | + | else if ((pmt.assetId != A4A)) | |
225 | 229 | then throw(asseterr) | |
226 | 230 | else if ((pmt.amount != 10000)) | |
227 | 231 | then throw(minamterr) | |
228 | 232 | else if ((votingpausetime > lastBlock.timestamp)) | |
229 | - | then throw( | |
230 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
233 | + | then throw(voteErr) | |
234 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
231 | 235 | } | |
232 | 236 | ||
233 | 237 | ||
234 | 238 | ||
235 | 239 | @Callable(i) | |
236 | 240 | func Compound () = { | |
237 | - | let | |
241 | + | let VoteAst = "Compound" | |
238 | 242 | let pmt = if ((size(i.payments) == 1)) | |
239 | 243 | then i.payments[0] | |
240 | - | else throw( | |
241 | - | let | |
242 | - | let | |
243 | - | let | |
244 | + | else throw(pymterror) | |
245 | + | let pubkey = toBase58String(i.caller.bytes) | |
246 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
247 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
244 | 248 | case a: Int => | |
245 | 249 | a | |
246 | 250 | case _ => | |
247 | 251 | 0 | |
248 | 252 | } | |
249 | - | let | |
250 | - | let | |
253 | + | let UTWVO = (FUWV + 1) | |
254 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
251 | 255 | case a: Int => | |
252 | 256 | a | |
253 | 257 | case _ => | |
254 | 258 | 0 | |
255 | 259 | } | |
256 | - | let | |
257 | - | let | |
260 | + | let UTWVFA = (UWVFA + 1) | |
261 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
258 | 262 | case a: Int => | |
259 | 263 | a | |
260 | 264 | case _ => | |
261 | 265 | 0 | |
262 | 266 | } | |
263 | - | let | |
264 | - | let | |
267 | + | let UTVO = (FUVO + 1) | |
268 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
265 | 269 | case a: Int => | |
266 | 270 | a | |
267 | 271 | case _ => | |
268 | 272 | 0 | |
269 | 273 | } | |
270 | - | let | |
271 | - | let | |
274 | + | let UTVFA = (FUVFA + 1) | |
275 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
272 | 276 | case a: Int => | |
273 | 277 | a | |
274 | 278 | case _ => | |
275 | 279 | 0 | |
276 | 280 | } | |
277 | - | let | |
278 | - | let | |
281 | + | let ATVO = (FTVO + 1) | |
282 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
279 | 283 | case a: Int => | |
280 | 284 | a | |
281 | 285 | case _ => | |
282 | 286 | 0 | |
283 | 287 | } | |
284 | - | let | |
285 | - | if ((100000000 > | |
288 | + | let WATV = (WFTV + 1) | |
289 | + | if ((100000000 > assetbal)) | |
286 | 290 | then throw(minbalerror) | |
287 | - | else if ((pmt.assetId != | |
291 | + | else if ((pmt.assetId != A4A)) | |
288 | 292 | then throw(asseterr) | |
289 | 293 | else if ((pmt.amount != 10000)) | |
290 | 294 | then throw(minamterr) | |
291 | 295 | else if ((votingpausetime > lastBlock.timestamp)) | |
292 | - | then throw( | |
293 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
296 | + | then throw(voteErr) | |
297 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
294 | 298 | } | |
295 | 299 | ||
296 | 300 | ||
297 | 301 | ||
298 | 302 | @Callable(i) | |
299 | 303 | func Haven () = { | |
300 | - | let | |
304 | + | let VoteAst = "Haven" | |
301 | 305 | let pmt = if ((size(i.payments) == 1)) | |
302 | 306 | then i.payments[0] | |
303 | - | else throw( | |
304 | - | let | |
305 | - | let | |
306 | - | let | |
307 | + | else throw(pymterror) | |
308 | + | let pubkey = toBase58String(i.caller.bytes) | |
309 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
310 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
307 | 311 | case a: Int => | |
308 | 312 | a | |
309 | 313 | case _ => | |
310 | 314 | 0 | |
311 | 315 | } | |
312 | - | let | |
313 | - | let | |
316 | + | let UTWVO = (FUWV + 1) | |
317 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
314 | 318 | case a: Int => | |
315 | 319 | a | |
316 | 320 | case _ => | |
317 | 321 | 0 | |
318 | 322 | } | |
319 | - | let | |
320 | - | let | |
323 | + | let UTWVFA = (UWVFA + 1) | |
324 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
321 | 325 | case a: Int => | |
322 | 326 | a | |
323 | 327 | case _ => | |
324 | 328 | 0 | |
325 | 329 | } | |
326 | - | let | |
327 | - | let | |
330 | + | let UTVO = (FUVO + 1) | |
331 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
328 | 332 | case a: Int => | |
329 | 333 | a | |
330 | 334 | case _ => | |
331 | 335 | 0 | |
332 | 336 | } | |
333 | - | let | |
334 | - | let | |
337 | + | let UTVFA = (FUVFA + 1) | |
338 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
335 | 339 | case a: Int => | |
336 | 340 | a | |
337 | 341 | case _ => | |
338 | 342 | 0 | |
339 | 343 | } | |
340 | - | let | |
341 | - | let | |
344 | + | let ATVO = (FTVO + 1) | |
345 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
342 | 346 | case a: Int => | |
343 | 347 | a | |
344 | 348 | case _ => | |
345 | 349 | 0 | |
346 | 350 | } | |
347 | - | let | |
348 | - | if ((100000000 > | |
351 | + | let WATV = (WFTV + 1) | |
352 | + | if ((100000000 > assetbal)) | |
349 | 353 | then throw(minbalerror) | |
350 | - | else if ((pmt.assetId != | |
354 | + | else if ((pmt.assetId != A4A)) | |
351 | 355 | then throw(asseterr) | |
352 | 356 | else if ((pmt.amount != 10000)) | |
353 | 357 | then throw(minamterr) | |
354 | 358 | else if ((votingpausetime > lastBlock.timestamp)) | |
355 | - | then throw( | |
356 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
359 | + | then throw(voteErr) | |
360 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
357 | 361 | } | |
358 | 362 | ||
359 | 363 | ||
360 | 364 | ||
361 | 365 | @Callable(i) | |
362 | 366 | func PirateChain () = { | |
363 | - | let | |
367 | + | let VoteAst = "PirateChain" | |
364 | 368 | let pmt = if ((size(i.payments) == 1)) | |
365 | 369 | then i.payments[0] | |
366 | - | else throw( | |
367 | - | let | |
368 | - | let | |
369 | - | let | |
370 | + | else throw(pymterror) | |
371 | + | let pubkey = toBase58String(i.caller.bytes) | |
372 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
373 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
370 | 374 | case a: Int => | |
371 | 375 | a | |
372 | 376 | case _ => | |
373 | 377 | 0 | |
374 | 378 | } | |
375 | - | let | |
376 | - | let | |
379 | + | let UTWVO = (FUWV + 1) | |
380 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
377 | 381 | case a: Int => | |
378 | 382 | a | |
379 | 383 | case _ => | |
380 | 384 | 0 | |
381 | 385 | } | |
382 | - | let | |
383 | - | let | |
386 | + | let UTWVFA = (UWVFA + 1) | |
387 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
384 | 388 | case a: Int => | |
385 | 389 | a | |
386 | 390 | case _ => | |
387 | 391 | 0 | |
388 | 392 | } | |
389 | - | let | |
390 | - | let | |
393 | + | let UTVO = (FUVO + 1) | |
394 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
391 | 395 | case a: Int => | |
392 | 396 | a | |
393 | 397 | case _ => | |
394 | 398 | 0 | |
395 | 399 | } | |
396 | - | let | |
397 | - | let | |
400 | + | let UTVFA = (FUVFA + 1) | |
401 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
398 | 402 | case a: Int => | |
399 | 403 | a | |
400 | 404 | case _ => | |
401 | 405 | 0 | |
402 | 406 | } | |
403 | - | let | |
404 | - | let | |
407 | + | let ATVO = (FTVO + 1) | |
408 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
405 | 409 | case a: Int => | |
406 | 410 | a | |
407 | 411 | case _ => | |
408 | 412 | 0 | |
409 | 413 | } | |
410 | - | let | |
411 | - | if ((100000000 > | |
414 | + | let WATV = (WFTV + 1) | |
415 | + | if ((100000000 > assetbal)) | |
412 | 416 | then throw(minbalerror) | |
413 | - | else if ((pmt.assetId != | |
417 | + | else if ((pmt.assetId != A4A)) | |
414 | 418 | then throw(asseterr) | |
415 | 419 | else if ((pmt.amount != 10000)) | |
416 | 420 | then throw(minamterr) | |
417 | 421 | else if ((votingpausetime > lastBlock.timestamp)) | |
418 | - | then throw( | |
419 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
422 | + | then throw(voteErr) | |
423 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
420 | 424 | } | |
421 | 425 | ||
422 | 426 | ||
423 | 427 | ||
424 | 428 | @Callable(i) | |
425 | 429 | func Monero () = { | |
426 | - | let | |
430 | + | let VoteAst = "Monero" | |
427 | 431 | let pmt = if ((size(i.payments) == 1)) | |
428 | 432 | then i.payments[0] | |
429 | - | else throw( | |
430 | - | let | |
431 | - | let | |
432 | - | let | |
433 | + | else throw(pymterror) | |
434 | + | let pubkey = toBase58String(i.caller.bytes) | |
435 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
436 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
433 | 437 | case a: Int => | |
434 | 438 | a | |
435 | 439 | case _ => | |
436 | 440 | 0 | |
437 | 441 | } | |
438 | - | let | |
439 | - | let | |
442 | + | let UTWVO = (FUWV + 1) | |
443 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
440 | 444 | case a: Int => | |
441 | 445 | a | |
442 | 446 | case _ => | |
443 | 447 | 0 | |
444 | 448 | } | |
445 | - | let | |
446 | - | let | |
449 | + | let UTWVFA = (UWVFA + 1) | |
450 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
447 | 451 | case a: Int => | |
448 | 452 | a | |
449 | 453 | case _ => | |
450 | 454 | 0 | |
451 | 455 | } | |
452 | - | let | |
453 | - | let | |
456 | + | let UTVO = (FUVO + 1) | |
457 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
454 | 458 | case a: Int => | |
455 | 459 | a | |
456 | 460 | case _ => | |
457 | 461 | 0 | |
458 | 462 | } | |
459 | - | let | |
460 | - | let | |
463 | + | let UTVFA = (FUVFA + 1) | |
464 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
461 | 465 | case a: Int => | |
462 | 466 | a | |
463 | 467 | case _ => | |
464 | 468 | 0 | |
465 | 469 | } | |
466 | - | let | |
467 | - | let | |
470 | + | let ATVO = (FTVO + 1) | |
471 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
468 | 472 | case a: Int => | |
469 | 473 | a | |
470 | 474 | case _ => | |
471 | 475 | 0 | |
472 | 476 | } | |
473 | - | let | |
474 | - | if ((100000000 > | |
477 | + | let WATV = (WFTV + 1) | |
478 | + | if ((100000000 > assetbal)) | |
475 | 479 | then throw(minbalerror) | |
476 | - | else if ((pmt.assetId != | |
480 | + | else if ((pmt.assetId != A4A)) | |
477 | 481 | then throw(asseterr) | |
478 | 482 | else if ((pmt.amount != 10000)) | |
479 | 483 | then throw(minamterr) | |
480 | 484 | else if ((votingpausetime > lastBlock.timestamp)) | |
481 | - | then throw( | |
482 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
485 | + | then throw(voteErr) | |
486 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
483 | 487 | } | |
484 | 488 | ||
485 | 489 | ||
486 | 490 | ||
487 | 491 | @Callable(i) | |
488 | 492 | func PRCY () = { | |
489 | - | let | |
493 | + | let VoteAst = "Privacy" | |
490 | 494 | let pmt = if ((size(i.payments) == 1)) | |
491 | 495 | then i.payments[0] | |
492 | - | else throw( | |
493 | - | let | |
494 | - | let | |
495 | - | let | |
496 | + | else throw(pymterror) | |
497 | + | let pubkey = toBase58String(i.caller.bytes) | |
498 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
499 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
496 | 500 | case a: Int => | |
497 | 501 | a | |
498 | 502 | case _ => | |
499 | 503 | 0 | |
500 | 504 | } | |
501 | - | let | |
502 | - | let | |
505 | + | let UTWVO = (FUWV + 1) | |
506 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
503 | 507 | case a: Int => | |
504 | 508 | a | |
505 | 509 | case _ => | |
506 | 510 | 0 | |
507 | 511 | } | |
508 | - | let | |
509 | - | let | |
512 | + | let UTWVFA = (UWVFA + 1) | |
513 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
510 | 514 | case a: Int => | |
511 | 515 | a | |
512 | 516 | case _ => | |
513 | 517 | 0 | |
514 | 518 | } | |
515 | - | let | |
516 | - | let | |
519 | + | let UTVO = (FUVO + 1) | |
520 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
517 | 521 | case a: Int => | |
518 | 522 | a | |
519 | 523 | case _ => | |
520 | 524 | 0 | |
521 | 525 | } | |
522 | - | let | |
523 | - | let | |
526 | + | let UTVFA = (FUVFA + 1) | |
527 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
524 | 528 | case a: Int => | |
525 | 529 | a | |
526 | 530 | case _ => | |
527 | 531 | 0 | |
528 | 532 | } | |
529 | - | let | |
530 | - | let | |
533 | + | let ATVO = (FTVO + 1) | |
534 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
531 | 535 | case a: Int => | |
532 | 536 | a | |
533 | 537 | case _ => | |
534 | 538 | 0 | |
535 | 539 | } | |
536 | - | let | |
537 | - | if ((100000000 > | |
540 | + | let WATV = (WFTV + 1) | |
541 | + | if ((100000000 > assetbal)) | |
538 | 542 | then throw(minbalerror) | |
539 | - | else if ((pmt.assetId != | |
543 | + | else if ((pmt.assetId != A4A)) | |
540 | 544 | then throw(asseterr) | |
541 | 545 | else if ((pmt.amount != 10000)) | |
542 | 546 | then throw(minamterr) | |
543 | 547 | else if ((votingpausetime > lastBlock.timestamp)) | |
544 | - | then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes")) | |
545 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)] | |
548 | + | then throw(voteErr) | |
549 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
550 | + | } | |
551 | + | ||
552 | + | ||
553 | + | ||
554 | + | @Callable(i) | |
555 | + | func BTC () = { | |
556 | + | let VoteAst = "Bitcoin" | |
557 | + | let pmt = if ((size(i.payments) == 1)) | |
558 | + | then i.payments[0] | |
559 | + | else throw(pymterror) | |
560 | + | let pubkey = toBase58String(i.caller.bytes) | |
561 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
562 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
563 | + | case a: Int => | |
564 | + | a | |
565 | + | case _ => | |
566 | + | 0 | |
567 | + | } | |
568 | + | let UTWVO = (FUWV + 1) | |
569 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
570 | + | case a: Int => | |
571 | + | a | |
572 | + | case _ => | |
573 | + | 0 | |
574 | + | } | |
575 | + | let UTWVFA = (UWVFA + 1) | |
576 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
577 | + | case a: Int => | |
578 | + | a | |
579 | + | case _ => | |
580 | + | 0 | |
581 | + | } | |
582 | + | let UTVO = (FUVO + 1) | |
583 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
584 | + | case a: Int => | |
585 | + | a | |
586 | + | case _ => | |
587 | + | 0 | |
588 | + | } | |
589 | + | let UTVFA = (FUVFA + 1) | |
590 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
591 | + | case a: Int => | |
592 | + | a | |
593 | + | case _ => | |
594 | + | 0 | |
595 | + | } | |
596 | + | let ATVO = (FTVO + 1) | |
597 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
598 | + | case a: Int => | |
599 | + | a | |
600 | + | case _ => | |
601 | + | 0 | |
602 | + | } | |
603 | + | let WATV = (WFTV + 1) | |
604 | + | if ((100000000 > assetbal)) | |
605 | + | then throw(minbalerror) | |
606 | + | else if ((pmt.assetId != A4A)) | |
607 | + | then throw(asseterr) | |
608 | + | else if ((pmt.amount != 10000)) | |
609 | + | then throw(minamterr) | |
610 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
611 | + | then throw(voteErr) | |
612 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
613 | + | } | |
614 | + | ||
615 | + | ||
616 | + | ||
617 | + | @Callable(i) | |
618 | + | func LTC () = { | |
619 | + | let VoteAst = "Litecoin" | |
620 | + | let pmt = if ((size(i.payments) == 1)) | |
621 | + | then i.payments[0] | |
622 | + | else throw(pymterror) | |
623 | + | let pubkey = toBase58String(i.caller.bytes) | |
624 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
625 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
626 | + | case a: Int => | |
627 | + | a | |
628 | + | case _ => | |
629 | + | 0 | |
630 | + | } | |
631 | + | let UTWVO = (FUWV + 1) | |
632 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
633 | + | case a: Int => | |
634 | + | a | |
635 | + | case _ => | |
636 | + | 0 | |
637 | + | } | |
638 | + | let UTWVFA = (UWVFA + 1) | |
639 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
640 | + | case a: Int => | |
641 | + | a | |
642 | + | case _ => | |
643 | + | 0 | |
644 | + | } | |
645 | + | let UTVO = (FUVO + 1) | |
646 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
647 | + | case a: Int => | |
648 | + | a | |
649 | + | case _ => | |
650 | + | 0 | |
651 | + | } | |
652 | + | let UTVFA = (FUVFA + 1) | |
653 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
654 | + | case a: Int => | |
655 | + | a | |
656 | + | case _ => | |
657 | + | 0 | |
658 | + | } | |
659 | + | let ATVO = (FTVO + 1) | |
660 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
661 | + | case a: Int => | |
662 | + | a | |
663 | + | case _ => | |
664 | + | 0 | |
665 | + | } | |
666 | + | let WATV = (WFTV + 1) | |
667 | + | if ((100000000 > assetbal)) | |
668 | + | then throw(minbalerror) | |
669 | + | else if ((pmt.assetId != A4A)) | |
670 | + | then throw(asseterr) | |
671 | + | else if ((pmt.amount != 10000)) | |
672 | + | then throw(minamterr) | |
673 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
674 | + | then throw(voteErr) | |
675 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
676 | + | } | |
677 | + | ||
678 | + | ||
679 | + | ||
680 | + | @Callable(i) | |
681 | + | func DASH () = { | |
682 | + | let VoteAst = "Dash" | |
683 | + | let pmt = if ((size(i.payments) == 1)) | |
684 | + | then i.payments[0] | |
685 | + | else throw(pymterror) | |
686 | + | let pubkey = toBase58String(i.caller.bytes) | |
687 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
688 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
689 | + | case a: Int => | |
690 | + | a | |
691 | + | case _ => | |
692 | + | 0 | |
693 | + | } | |
694 | + | let UTWVO = (FUWV + 1) | |
695 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
696 | + | case a: Int => | |
697 | + | a | |
698 | + | case _ => | |
699 | + | 0 | |
700 | + | } | |
701 | + | let UTWVFA = (UWVFA + 1) | |
702 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
703 | + | case a: Int => | |
704 | + | a | |
705 | + | case _ => | |
706 | + | 0 | |
707 | + | } | |
708 | + | let UTVO = (FUVO + 1) | |
709 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
710 | + | case a: Int => | |
711 | + | a | |
712 | + | case _ => | |
713 | + | 0 | |
714 | + | } | |
715 | + | let UTVFA = (FUVFA + 1) | |
716 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
717 | + | case a: Int => | |
718 | + | a | |
719 | + | case _ => | |
720 | + | 0 | |
721 | + | } | |
722 | + | let ATVO = (FTVO + 1) | |
723 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
724 | + | case a: Int => | |
725 | + | a | |
726 | + | case _ => | |
727 | + | 0 | |
728 | + | } | |
729 | + | let WATV = (WFTV + 1) | |
730 | + | if ((100000000 > assetbal)) | |
731 | + | then throw(minbalerror) | |
732 | + | else if ((pmt.assetId != A4A)) | |
733 | + | then throw(asseterr) | |
734 | + | else if ((pmt.amount != 10000)) | |
735 | + | then throw(minamterr) | |
736 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
737 | + | then throw(voteErr) | |
738 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
739 | + | } | |
740 | + | ||
741 | + | ||
742 | + | ||
743 | + | @Callable(i) | |
744 | + | func BCH () = { | |
745 | + | let VoteAst = "BitcoinCash" | |
746 | + | let pmt = if ((size(i.payments) == 1)) | |
747 | + | then i.payments[0] | |
748 | + | else throw(pymterror) | |
749 | + | let pubkey = toBase58String(i.caller.bytes) | |
750 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
751 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
752 | + | case a: Int => | |
753 | + | a | |
754 | + | case _ => | |
755 | + | 0 | |
756 | + | } | |
757 | + | let UTWVO = (FUWV + 1) | |
758 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
759 | + | case a: Int => | |
760 | + | a | |
761 | + | case _ => | |
762 | + | 0 | |
763 | + | } | |
764 | + | let UTWVFA = (UWVFA + 1) | |
765 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
766 | + | case a: Int => | |
767 | + | a | |
768 | + | case _ => | |
769 | + | 0 | |
770 | + | } | |
771 | + | let UTVO = (FUVO + 1) | |
772 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
773 | + | case a: Int => | |
774 | + | a | |
775 | + | case _ => | |
776 | + | 0 | |
777 | + | } | |
778 | + | let UTVFA = (FUVFA + 1) | |
779 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
780 | + | case a: Int => | |
781 | + | a | |
782 | + | case _ => | |
783 | + | 0 | |
784 | + | } | |
785 | + | let ATVO = (FTVO + 1) | |
786 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
787 | + | case a: Int => | |
788 | + | a | |
789 | + | case _ => | |
790 | + | 0 | |
791 | + | } | |
792 | + | let WATV = (WFTV + 1) | |
793 | + | if ((100000000 > assetbal)) | |
794 | + | then throw(minbalerror) | |
795 | + | else if ((pmt.assetId != A4A)) | |
796 | + | then throw(asseterr) | |
797 | + | else if ((pmt.amount != 10000)) | |
798 | + | then throw(minamterr) | |
799 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
800 | + | then throw(voteErr) | |
801 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
546 | 802 | } | |
547 | 803 | ||
548 | 804 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let A4A = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g' | |
5 | 5 | ||
6 | 6 | let Week0TS = 1628368200000 | |
7 | 7 | ||
8 | 8 | let week = 604800000 | |
9 | 9 | ||
10 | 10 | let pausetime = 14400000 | |
11 | 11 | ||
12 | - | let | |
12 | + | let currentweek = (((lastBlock.timestamp - Week0TS) / week) + 1) | |
13 | 13 | ||
14 | - | let TSUptoPastWeek = (Week0TS + ((currentrunningweek - 1) * week)) | |
14 | + | let strweek = toString(currentweek) | |
15 | + | ||
16 | + | let TSUptoPastWeek = (Week0TS + ((currentweek - 1) * week)) | |
15 | 17 | ||
16 | 18 | let votingpausetime = (TSUptoPastWeek + pausetime) | |
17 | 19 | ||
18 | - | let | |
20 | + | let msg = "<h1>You Voted Successfully!</h1><br>" | |
19 | 21 | ||
20 | - | let | |
22 | + | let pymterror = "DApp Need 0.0001 A4A Token as Attach payment[1]." | |
21 | 23 | ||
22 | - | let minbalerror = " | |
24 | + | let minbalerror = "Min. 1 A4A required on Your Address to Vote. Please Mint or hold min. 1 A4A on this Address." | |
23 | 25 | ||
24 | - | let asseterr = (("Incorrect asset | |
26 | + | let asseterr = (("Incorrect asset attach, please attach " + toBase58String(A4A)) + " AssetID Only.") | |
25 | 27 | ||
26 | 28 | let minamterr = "Please Attach Exact 0.0001 A4A To Vote." | |
27 | 29 | ||
28 | - | let fetchtotaltxns = match getInteger(this, "Total_Txns") { | |
30 | + | let voteErr = (("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes") | |
31 | + | ||
32 | + | let FTTX = match getInteger(this, "Total_Txns") { | |
29 | 33 | case a: Int => | |
30 | 34 | a | |
31 | 35 | case _ => | |
32 | 36 | 0 | |
33 | 37 | } | |
34 | 38 | ||
35 | - | let totaltxns = ( | |
39 | + | let totaltxns = (FTTX + 1) | |
36 | 40 | ||
37 | - | let | |
41 | + | let FTTXofweek = match getInteger(this, (strweek + "_Total_Txns")) { | |
38 | 42 | case a: Int => | |
39 | 43 | a | |
40 | 44 | case _ => | |
41 | 45 | 0 | |
42 | 46 | } | |
43 | 47 | ||
44 | - | let | |
48 | + | let TTOW = (FTTXofweek + 1) | |
45 | 49 | ||
46 | 50 | @Callable(i) | |
47 | 51 | func Chainlink () = { | |
48 | - | let | |
52 | + | let VoteAst = "Chainlink" | |
49 | 53 | let pmt = if ((size(i.payments) == 1)) | |
50 | 54 | then i.payments[0] | |
51 | - | else throw( | |
52 | - | let | |
53 | - | let | |
54 | - | let | |
55 | + | else throw(pymterror) | |
56 | + | let pubkey = toBase58String(i.caller.bytes) | |
57 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
58 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
55 | 59 | case a: Int => | |
56 | 60 | a | |
57 | 61 | case _ => | |
58 | 62 | 0 | |
59 | 63 | } | |
60 | - | let | |
61 | - | let | |
64 | + | let UTWVO = (FUWV + 1) | |
65 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
62 | 66 | case a: Int => | |
63 | 67 | a | |
64 | 68 | case _ => | |
65 | 69 | 0 | |
66 | 70 | } | |
67 | - | let | |
68 | - | let | |
71 | + | let UTWVFA = (UWVFA + 1) | |
72 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
69 | 73 | case a: Int => | |
70 | 74 | a | |
71 | 75 | case _ => | |
72 | 76 | 0 | |
73 | 77 | } | |
74 | - | let | |
75 | - | let | |
78 | + | let UTVO = (FUVO + 1) | |
79 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
76 | 80 | case a: Int => | |
77 | 81 | a | |
78 | 82 | case _ => | |
79 | 83 | 0 | |
80 | 84 | } | |
81 | - | let | |
82 | - | let | |
85 | + | let UTVFA = (FUVFA + 1) | |
86 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
83 | 87 | case a: Int => | |
84 | 88 | a | |
85 | 89 | case _ => | |
86 | 90 | 0 | |
87 | 91 | } | |
88 | - | let | |
89 | - | let | |
92 | + | let ATVO = (FTVO + 1) | |
93 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
90 | 94 | case a: Int => | |
91 | 95 | a | |
92 | 96 | case _ => | |
93 | 97 | 0 | |
94 | 98 | } | |
95 | - | let | |
96 | - | if ((100000000 > | |
99 | + | let WATV = (WFTV + 1) | |
100 | + | if ((100000000 > assetbal)) | |
97 | 101 | then throw(minbalerror) | |
98 | - | else if ((pmt.assetId != | |
102 | + | else if ((pmt.assetId != A4A)) | |
99 | 103 | then throw(asseterr) | |
100 | 104 | else if ((pmt.amount != 10000)) | |
101 | 105 | then throw(minamterr) | |
102 | 106 | else if ((votingpausetime > lastBlock.timestamp)) | |
103 | - | then throw( | |
104 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
107 | + | then throw(voteErr) | |
108 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
105 | 109 | } | |
106 | 110 | ||
107 | 111 | ||
108 | 112 | ||
109 | 113 | @Callable(i) | |
110 | 114 | func Dent () = { | |
111 | - | let | |
115 | + | let VoteAst = "Dent" | |
112 | 116 | let pmt = if ((size(i.payments) == 1)) | |
113 | 117 | then i.payments[0] | |
114 | - | else throw( | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | + | else throw(pymterror) | |
119 | + | let pubkey = toBase58String(i.caller.bytes) | |
120 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
121 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
118 | 122 | case a: Int => | |
119 | 123 | a | |
120 | 124 | case _ => | |
121 | 125 | 0 | |
122 | 126 | } | |
123 | - | let | |
124 | - | let | |
127 | + | let UTWVO = (FUWV + 1) | |
128 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
125 | 129 | case a: Int => | |
126 | 130 | a | |
127 | 131 | case _ => | |
128 | 132 | 0 | |
129 | 133 | } | |
130 | - | let | |
131 | - | let | |
134 | + | let UTWVFA = (UWVFA + 1) | |
135 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
132 | 136 | case a: Int => | |
133 | 137 | a | |
134 | 138 | case _ => | |
135 | 139 | 0 | |
136 | 140 | } | |
137 | - | let | |
138 | - | let | |
141 | + | let UTVO = (FUVO + 1) | |
142 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
139 | 143 | case a: Int => | |
140 | 144 | a | |
141 | 145 | case _ => | |
142 | 146 | 0 | |
143 | 147 | } | |
144 | - | let | |
145 | - | let | |
148 | + | let UTVFA = (FUVFA + 1) | |
149 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
146 | 150 | case a: Int => | |
147 | 151 | a | |
148 | 152 | case _ => | |
149 | 153 | 0 | |
150 | 154 | } | |
151 | - | let | |
152 | - | let | |
155 | + | let ATVO = (FTVO + 1) | |
156 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
153 | 157 | case a: Int => | |
154 | 158 | a | |
155 | 159 | case _ => | |
156 | 160 | 0 | |
157 | 161 | } | |
158 | - | let | |
159 | - | if ((100000000 > | |
162 | + | let WATV = (WFTV + 1) | |
163 | + | if ((100000000 > assetbal)) | |
160 | 164 | then throw(minbalerror) | |
161 | - | else if ((pmt.assetId != | |
165 | + | else if ((pmt.assetId != A4A)) | |
162 | 166 | then throw(asseterr) | |
163 | 167 | else if ((pmt.amount != 10000)) | |
164 | 168 | then throw(minamterr) | |
165 | 169 | else if ((votingpausetime > lastBlock.timestamp)) | |
166 | - | then throw( | |
167 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
170 | + | then throw(voteErr) | |
171 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
168 | 172 | } | |
169 | 173 | ||
170 | 174 | ||
171 | 175 | ||
172 | 176 | @Callable(i) | |
173 | 177 | func Sushi () = { | |
174 | - | let | |
178 | + | let VoteAst = "Sushi" | |
175 | 179 | let pmt = if ((size(i.payments) == 1)) | |
176 | 180 | then i.payments[0] | |
177 | - | else throw( | |
178 | - | let | |
179 | - | let | |
180 | - | let | |
181 | + | else throw(pymterror) | |
182 | + | let pubkey = toBase58String(i.caller.bytes) | |
183 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
184 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
181 | 185 | case a: Int => | |
182 | 186 | a | |
183 | 187 | case _ => | |
184 | 188 | 0 | |
185 | 189 | } | |
186 | - | let | |
187 | - | let | |
190 | + | let UTWVO = (FUWV + 1) | |
191 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
188 | 192 | case a: Int => | |
189 | 193 | a | |
190 | 194 | case _ => | |
191 | 195 | 0 | |
192 | 196 | } | |
193 | - | let | |
194 | - | let | |
197 | + | let UTWVFA = (UWVFA + 1) | |
198 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
195 | 199 | case a: Int => | |
196 | 200 | a | |
197 | 201 | case _ => | |
198 | 202 | 0 | |
199 | 203 | } | |
200 | - | let | |
201 | - | let | |
204 | + | let UTVO = (FUVO + 1) | |
205 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
202 | 206 | case a: Int => | |
203 | 207 | a | |
204 | 208 | case _ => | |
205 | 209 | 0 | |
206 | 210 | } | |
207 | - | let | |
208 | - | let | |
211 | + | let UTVFA = (FUVFA + 1) | |
212 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
209 | 213 | case a: Int => | |
210 | 214 | a | |
211 | 215 | case _ => | |
212 | 216 | 0 | |
213 | 217 | } | |
214 | - | let | |
215 | - | let | |
218 | + | let ATVO = (FTVO + 1) | |
219 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
216 | 220 | case a: Int => | |
217 | 221 | a | |
218 | 222 | case _ => | |
219 | 223 | 0 | |
220 | 224 | } | |
221 | - | let | |
222 | - | if ((100000000 > | |
225 | + | let WATV = (WFTV + 1) | |
226 | + | if ((100000000 > assetbal)) | |
223 | 227 | then throw(minbalerror) | |
224 | - | else if ((pmt.assetId != | |
228 | + | else if ((pmt.assetId != A4A)) | |
225 | 229 | then throw(asseterr) | |
226 | 230 | else if ((pmt.amount != 10000)) | |
227 | 231 | then throw(minamterr) | |
228 | 232 | else if ((votingpausetime > lastBlock.timestamp)) | |
229 | - | then throw( | |
230 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
233 | + | then throw(voteErr) | |
234 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
231 | 235 | } | |
232 | 236 | ||
233 | 237 | ||
234 | 238 | ||
235 | 239 | @Callable(i) | |
236 | 240 | func Compound () = { | |
237 | - | let | |
241 | + | let VoteAst = "Compound" | |
238 | 242 | let pmt = if ((size(i.payments) == 1)) | |
239 | 243 | then i.payments[0] | |
240 | - | else throw( | |
241 | - | let | |
242 | - | let | |
243 | - | let | |
244 | + | else throw(pymterror) | |
245 | + | let pubkey = toBase58String(i.caller.bytes) | |
246 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
247 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
244 | 248 | case a: Int => | |
245 | 249 | a | |
246 | 250 | case _ => | |
247 | 251 | 0 | |
248 | 252 | } | |
249 | - | let | |
250 | - | let | |
253 | + | let UTWVO = (FUWV + 1) | |
254 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
251 | 255 | case a: Int => | |
252 | 256 | a | |
253 | 257 | case _ => | |
254 | 258 | 0 | |
255 | 259 | } | |
256 | - | let | |
257 | - | let | |
260 | + | let UTWVFA = (UWVFA + 1) | |
261 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
258 | 262 | case a: Int => | |
259 | 263 | a | |
260 | 264 | case _ => | |
261 | 265 | 0 | |
262 | 266 | } | |
263 | - | let | |
264 | - | let | |
267 | + | let UTVO = (FUVO + 1) | |
268 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
265 | 269 | case a: Int => | |
266 | 270 | a | |
267 | 271 | case _ => | |
268 | 272 | 0 | |
269 | 273 | } | |
270 | - | let | |
271 | - | let | |
274 | + | let UTVFA = (FUVFA + 1) | |
275 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
272 | 276 | case a: Int => | |
273 | 277 | a | |
274 | 278 | case _ => | |
275 | 279 | 0 | |
276 | 280 | } | |
277 | - | let | |
278 | - | let | |
281 | + | let ATVO = (FTVO + 1) | |
282 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
279 | 283 | case a: Int => | |
280 | 284 | a | |
281 | 285 | case _ => | |
282 | 286 | 0 | |
283 | 287 | } | |
284 | - | let | |
285 | - | if ((100000000 > | |
288 | + | let WATV = (WFTV + 1) | |
289 | + | if ((100000000 > assetbal)) | |
286 | 290 | then throw(minbalerror) | |
287 | - | else if ((pmt.assetId != | |
291 | + | else if ((pmt.assetId != A4A)) | |
288 | 292 | then throw(asseterr) | |
289 | 293 | else if ((pmt.amount != 10000)) | |
290 | 294 | then throw(minamterr) | |
291 | 295 | else if ((votingpausetime > lastBlock.timestamp)) | |
292 | - | then throw( | |
293 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
296 | + | then throw(voteErr) | |
297 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
294 | 298 | } | |
295 | 299 | ||
296 | 300 | ||
297 | 301 | ||
298 | 302 | @Callable(i) | |
299 | 303 | func Haven () = { | |
300 | - | let | |
304 | + | let VoteAst = "Haven" | |
301 | 305 | let pmt = if ((size(i.payments) == 1)) | |
302 | 306 | then i.payments[0] | |
303 | - | else throw( | |
304 | - | let | |
305 | - | let | |
306 | - | let | |
307 | + | else throw(pymterror) | |
308 | + | let pubkey = toBase58String(i.caller.bytes) | |
309 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
310 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
307 | 311 | case a: Int => | |
308 | 312 | a | |
309 | 313 | case _ => | |
310 | 314 | 0 | |
311 | 315 | } | |
312 | - | let | |
313 | - | let | |
316 | + | let UTWVO = (FUWV + 1) | |
317 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
314 | 318 | case a: Int => | |
315 | 319 | a | |
316 | 320 | case _ => | |
317 | 321 | 0 | |
318 | 322 | } | |
319 | - | let | |
320 | - | let | |
323 | + | let UTWVFA = (UWVFA + 1) | |
324 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
321 | 325 | case a: Int => | |
322 | 326 | a | |
323 | 327 | case _ => | |
324 | 328 | 0 | |
325 | 329 | } | |
326 | - | let | |
327 | - | let | |
330 | + | let UTVO = (FUVO + 1) | |
331 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
328 | 332 | case a: Int => | |
329 | 333 | a | |
330 | 334 | case _ => | |
331 | 335 | 0 | |
332 | 336 | } | |
333 | - | let | |
334 | - | let | |
337 | + | let UTVFA = (FUVFA + 1) | |
338 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
335 | 339 | case a: Int => | |
336 | 340 | a | |
337 | 341 | case _ => | |
338 | 342 | 0 | |
339 | 343 | } | |
340 | - | let | |
341 | - | let | |
344 | + | let ATVO = (FTVO + 1) | |
345 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
342 | 346 | case a: Int => | |
343 | 347 | a | |
344 | 348 | case _ => | |
345 | 349 | 0 | |
346 | 350 | } | |
347 | - | let | |
348 | - | if ((100000000 > | |
351 | + | let WATV = (WFTV + 1) | |
352 | + | if ((100000000 > assetbal)) | |
349 | 353 | then throw(minbalerror) | |
350 | - | else if ((pmt.assetId != | |
354 | + | else if ((pmt.assetId != A4A)) | |
351 | 355 | then throw(asseterr) | |
352 | 356 | else if ((pmt.amount != 10000)) | |
353 | 357 | then throw(minamterr) | |
354 | 358 | else if ((votingpausetime > lastBlock.timestamp)) | |
355 | - | then throw( | |
356 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
359 | + | then throw(voteErr) | |
360 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
357 | 361 | } | |
358 | 362 | ||
359 | 363 | ||
360 | 364 | ||
361 | 365 | @Callable(i) | |
362 | 366 | func PirateChain () = { | |
363 | - | let | |
367 | + | let VoteAst = "PirateChain" | |
364 | 368 | let pmt = if ((size(i.payments) == 1)) | |
365 | 369 | then i.payments[0] | |
366 | - | else throw( | |
367 | - | let | |
368 | - | let | |
369 | - | let | |
370 | + | else throw(pymterror) | |
371 | + | let pubkey = toBase58String(i.caller.bytes) | |
372 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
373 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
370 | 374 | case a: Int => | |
371 | 375 | a | |
372 | 376 | case _ => | |
373 | 377 | 0 | |
374 | 378 | } | |
375 | - | let | |
376 | - | let | |
379 | + | let UTWVO = (FUWV + 1) | |
380 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
377 | 381 | case a: Int => | |
378 | 382 | a | |
379 | 383 | case _ => | |
380 | 384 | 0 | |
381 | 385 | } | |
382 | - | let | |
383 | - | let | |
386 | + | let UTWVFA = (UWVFA + 1) | |
387 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
384 | 388 | case a: Int => | |
385 | 389 | a | |
386 | 390 | case _ => | |
387 | 391 | 0 | |
388 | 392 | } | |
389 | - | let | |
390 | - | let | |
393 | + | let UTVO = (FUVO + 1) | |
394 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
391 | 395 | case a: Int => | |
392 | 396 | a | |
393 | 397 | case _ => | |
394 | 398 | 0 | |
395 | 399 | } | |
396 | - | let | |
397 | - | let | |
400 | + | let UTVFA = (FUVFA + 1) | |
401 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
398 | 402 | case a: Int => | |
399 | 403 | a | |
400 | 404 | case _ => | |
401 | 405 | 0 | |
402 | 406 | } | |
403 | - | let | |
404 | - | let | |
407 | + | let ATVO = (FTVO + 1) | |
408 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
405 | 409 | case a: Int => | |
406 | 410 | a | |
407 | 411 | case _ => | |
408 | 412 | 0 | |
409 | 413 | } | |
410 | - | let | |
411 | - | if ((100000000 > | |
414 | + | let WATV = (WFTV + 1) | |
415 | + | if ((100000000 > assetbal)) | |
412 | 416 | then throw(minbalerror) | |
413 | - | else if ((pmt.assetId != | |
417 | + | else if ((pmt.assetId != A4A)) | |
414 | 418 | then throw(asseterr) | |
415 | 419 | else if ((pmt.amount != 10000)) | |
416 | 420 | then throw(minamterr) | |
417 | 421 | else if ((votingpausetime > lastBlock.timestamp)) | |
418 | - | then throw( | |
419 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
422 | + | then throw(voteErr) | |
423 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
420 | 424 | } | |
421 | 425 | ||
422 | 426 | ||
423 | 427 | ||
424 | 428 | @Callable(i) | |
425 | 429 | func Monero () = { | |
426 | - | let | |
430 | + | let VoteAst = "Monero" | |
427 | 431 | let pmt = if ((size(i.payments) == 1)) | |
428 | 432 | then i.payments[0] | |
429 | - | else throw( | |
430 | - | let | |
431 | - | let | |
432 | - | let | |
433 | + | else throw(pymterror) | |
434 | + | let pubkey = toBase58String(i.caller.bytes) | |
435 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
436 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
433 | 437 | case a: Int => | |
434 | 438 | a | |
435 | 439 | case _ => | |
436 | 440 | 0 | |
437 | 441 | } | |
438 | - | let | |
439 | - | let | |
442 | + | let UTWVO = (FUWV + 1) | |
443 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
440 | 444 | case a: Int => | |
441 | 445 | a | |
442 | 446 | case _ => | |
443 | 447 | 0 | |
444 | 448 | } | |
445 | - | let | |
446 | - | let | |
449 | + | let UTWVFA = (UWVFA + 1) | |
450 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
447 | 451 | case a: Int => | |
448 | 452 | a | |
449 | 453 | case _ => | |
450 | 454 | 0 | |
451 | 455 | } | |
452 | - | let | |
453 | - | let | |
456 | + | let UTVO = (FUVO + 1) | |
457 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
454 | 458 | case a: Int => | |
455 | 459 | a | |
456 | 460 | case _ => | |
457 | 461 | 0 | |
458 | 462 | } | |
459 | - | let | |
460 | - | let | |
463 | + | let UTVFA = (FUVFA + 1) | |
464 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
461 | 465 | case a: Int => | |
462 | 466 | a | |
463 | 467 | case _ => | |
464 | 468 | 0 | |
465 | 469 | } | |
466 | - | let | |
467 | - | let | |
470 | + | let ATVO = (FTVO + 1) | |
471 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
468 | 472 | case a: Int => | |
469 | 473 | a | |
470 | 474 | case _ => | |
471 | 475 | 0 | |
472 | 476 | } | |
473 | - | let | |
474 | - | if ((100000000 > | |
477 | + | let WATV = (WFTV + 1) | |
478 | + | if ((100000000 > assetbal)) | |
475 | 479 | then throw(minbalerror) | |
476 | - | else if ((pmt.assetId != | |
480 | + | else if ((pmt.assetId != A4A)) | |
477 | 481 | then throw(asseterr) | |
478 | 482 | else if ((pmt.amount != 10000)) | |
479 | 483 | then throw(minamterr) | |
480 | 484 | else if ((votingpausetime > lastBlock.timestamp)) | |
481 | - | then throw( | |
482 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry(( | |
485 | + | then throw(voteErr) | |
486 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
483 | 487 | } | |
484 | 488 | ||
485 | 489 | ||
486 | 490 | ||
487 | 491 | @Callable(i) | |
488 | 492 | func PRCY () = { | |
489 | - | let | |
493 | + | let VoteAst = "Privacy" | |
490 | 494 | let pmt = if ((size(i.payments) == 1)) | |
491 | 495 | then i.payments[0] | |
492 | - | else throw( | |
493 | - | let | |
494 | - | let | |
495 | - | let | |
496 | + | else throw(pymterror) | |
497 | + | let pubkey = toBase58String(i.caller.bytes) | |
498 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
499 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
496 | 500 | case a: Int => | |
497 | 501 | a | |
498 | 502 | case _ => | |
499 | 503 | 0 | |
500 | 504 | } | |
501 | - | let | |
502 | - | let | |
505 | + | let UTWVO = (FUWV + 1) | |
506 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
503 | 507 | case a: Int => | |
504 | 508 | a | |
505 | 509 | case _ => | |
506 | 510 | 0 | |
507 | 511 | } | |
508 | - | let | |
509 | - | let | |
512 | + | let UTWVFA = (UWVFA + 1) | |
513 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
510 | 514 | case a: Int => | |
511 | 515 | a | |
512 | 516 | case _ => | |
513 | 517 | 0 | |
514 | 518 | } | |
515 | - | let | |
516 | - | let | |
519 | + | let UTVO = (FUVO + 1) | |
520 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
517 | 521 | case a: Int => | |
518 | 522 | a | |
519 | 523 | case _ => | |
520 | 524 | 0 | |
521 | 525 | } | |
522 | - | let | |
523 | - | let | |
526 | + | let UTVFA = (FUVFA + 1) | |
527 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
524 | 528 | case a: Int => | |
525 | 529 | a | |
526 | 530 | case _ => | |
527 | 531 | 0 | |
528 | 532 | } | |
529 | - | let | |
530 | - | let | |
533 | + | let ATVO = (FTVO + 1) | |
534 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
531 | 535 | case a: Int => | |
532 | 536 | a | |
533 | 537 | case _ => | |
534 | 538 | 0 | |
535 | 539 | } | |
536 | - | let | |
537 | - | if ((100000000 > | |
540 | + | let WATV = (WFTV + 1) | |
541 | + | if ((100000000 > assetbal)) | |
538 | 542 | then throw(minbalerror) | |
539 | - | else if ((pmt.assetId != | |
543 | + | else if ((pmt.assetId != A4A)) | |
540 | 544 | then throw(asseterr) | |
541 | 545 | else if ((pmt.amount != 10000)) | |
542 | 546 | then throw(minamterr) | |
543 | 547 | else if ((votingpausetime > lastBlock.timestamp)) | |
544 | - | then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes")) | |
545 | - | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)] | |
548 | + | then throw(voteErr) | |
549 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
550 | + | } | |
551 | + | ||
552 | + | ||
553 | + | ||
554 | + | @Callable(i) | |
555 | + | func BTC () = { | |
556 | + | let VoteAst = "Bitcoin" | |
557 | + | let pmt = if ((size(i.payments) == 1)) | |
558 | + | then i.payments[0] | |
559 | + | else throw(pymterror) | |
560 | + | let pubkey = toBase58String(i.caller.bytes) | |
561 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
562 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
563 | + | case a: Int => | |
564 | + | a | |
565 | + | case _ => | |
566 | + | 0 | |
567 | + | } | |
568 | + | let UTWVO = (FUWV + 1) | |
569 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
570 | + | case a: Int => | |
571 | + | a | |
572 | + | case _ => | |
573 | + | 0 | |
574 | + | } | |
575 | + | let UTWVFA = (UWVFA + 1) | |
576 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
577 | + | case a: Int => | |
578 | + | a | |
579 | + | case _ => | |
580 | + | 0 | |
581 | + | } | |
582 | + | let UTVO = (FUVO + 1) | |
583 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
584 | + | case a: Int => | |
585 | + | a | |
586 | + | case _ => | |
587 | + | 0 | |
588 | + | } | |
589 | + | let UTVFA = (FUVFA + 1) | |
590 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
591 | + | case a: Int => | |
592 | + | a | |
593 | + | case _ => | |
594 | + | 0 | |
595 | + | } | |
596 | + | let ATVO = (FTVO + 1) | |
597 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
598 | + | case a: Int => | |
599 | + | a | |
600 | + | case _ => | |
601 | + | 0 | |
602 | + | } | |
603 | + | let WATV = (WFTV + 1) | |
604 | + | if ((100000000 > assetbal)) | |
605 | + | then throw(minbalerror) | |
606 | + | else if ((pmt.assetId != A4A)) | |
607 | + | then throw(asseterr) | |
608 | + | else if ((pmt.amount != 10000)) | |
609 | + | then throw(minamterr) | |
610 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
611 | + | then throw(voteErr) | |
612 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
613 | + | } | |
614 | + | ||
615 | + | ||
616 | + | ||
617 | + | @Callable(i) | |
618 | + | func LTC () = { | |
619 | + | let VoteAst = "Litecoin" | |
620 | + | let pmt = if ((size(i.payments) == 1)) | |
621 | + | then i.payments[0] | |
622 | + | else throw(pymterror) | |
623 | + | let pubkey = toBase58String(i.caller.bytes) | |
624 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
625 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
626 | + | case a: Int => | |
627 | + | a | |
628 | + | case _ => | |
629 | + | 0 | |
630 | + | } | |
631 | + | let UTWVO = (FUWV + 1) | |
632 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
633 | + | case a: Int => | |
634 | + | a | |
635 | + | case _ => | |
636 | + | 0 | |
637 | + | } | |
638 | + | let UTWVFA = (UWVFA + 1) | |
639 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
640 | + | case a: Int => | |
641 | + | a | |
642 | + | case _ => | |
643 | + | 0 | |
644 | + | } | |
645 | + | let UTVO = (FUVO + 1) | |
646 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
647 | + | case a: Int => | |
648 | + | a | |
649 | + | case _ => | |
650 | + | 0 | |
651 | + | } | |
652 | + | let UTVFA = (FUVFA + 1) | |
653 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
654 | + | case a: Int => | |
655 | + | a | |
656 | + | case _ => | |
657 | + | 0 | |
658 | + | } | |
659 | + | let ATVO = (FTVO + 1) | |
660 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
661 | + | case a: Int => | |
662 | + | a | |
663 | + | case _ => | |
664 | + | 0 | |
665 | + | } | |
666 | + | let WATV = (WFTV + 1) | |
667 | + | if ((100000000 > assetbal)) | |
668 | + | then throw(minbalerror) | |
669 | + | else if ((pmt.assetId != A4A)) | |
670 | + | then throw(asseterr) | |
671 | + | else if ((pmt.amount != 10000)) | |
672 | + | then throw(minamterr) | |
673 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
674 | + | then throw(voteErr) | |
675 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
676 | + | } | |
677 | + | ||
678 | + | ||
679 | + | ||
680 | + | @Callable(i) | |
681 | + | func DASH () = { | |
682 | + | let VoteAst = "Dash" | |
683 | + | let pmt = if ((size(i.payments) == 1)) | |
684 | + | then i.payments[0] | |
685 | + | else throw(pymterror) | |
686 | + | let pubkey = toBase58String(i.caller.bytes) | |
687 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
688 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
689 | + | case a: Int => | |
690 | + | a | |
691 | + | case _ => | |
692 | + | 0 | |
693 | + | } | |
694 | + | let UTWVO = (FUWV + 1) | |
695 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
696 | + | case a: Int => | |
697 | + | a | |
698 | + | case _ => | |
699 | + | 0 | |
700 | + | } | |
701 | + | let UTWVFA = (UWVFA + 1) | |
702 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
703 | + | case a: Int => | |
704 | + | a | |
705 | + | case _ => | |
706 | + | 0 | |
707 | + | } | |
708 | + | let UTVO = (FUVO + 1) | |
709 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
710 | + | case a: Int => | |
711 | + | a | |
712 | + | case _ => | |
713 | + | 0 | |
714 | + | } | |
715 | + | let UTVFA = (FUVFA + 1) | |
716 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
717 | + | case a: Int => | |
718 | + | a | |
719 | + | case _ => | |
720 | + | 0 | |
721 | + | } | |
722 | + | let ATVO = (FTVO + 1) | |
723 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
724 | + | case a: Int => | |
725 | + | a | |
726 | + | case _ => | |
727 | + | 0 | |
728 | + | } | |
729 | + | let WATV = (WFTV + 1) | |
730 | + | if ((100000000 > assetbal)) | |
731 | + | then throw(minbalerror) | |
732 | + | else if ((pmt.assetId != A4A)) | |
733 | + | then throw(asseterr) | |
734 | + | else if ((pmt.amount != 10000)) | |
735 | + | then throw(minamterr) | |
736 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
737 | + | then throw(voteErr) | |
738 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
739 | + | } | |
740 | + | ||
741 | + | ||
742 | + | ||
743 | + | @Callable(i) | |
744 | + | func BCH () = { | |
745 | + | let VoteAst = "BitcoinCash" | |
746 | + | let pmt = if ((size(i.payments) == 1)) | |
747 | + | then i.payments[0] | |
748 | + | else throw(pymterror) | |
749 | + | let pubkey = toBase58String(i.caller.bytes) | |
750 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
751 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
752 | + | case a: Int => | |
753 | + | a | |
754 | + | case _ => | |
755 | + | 0 | |
756 | + | } | |
757 | + | let UTWVO = (FUWV + 1) | |
758 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
759 | + | case a: Int => | |
760 | + | a | |
761 | + | case _ => | |
762 | + | 0 | |
763 | + | } | |
764 | + | let UTWVFA = (UWVFA + 1) | |
765 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
766 | + | case a: Int => | |
767 | + | a | |
768 | + | case _ => | |
769 | + | 0 | |
770 | + | } | |
771 | + | let UTVO = (FUVO + 1) | |
772 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
773 | + | case a: Int => | |
774 | + | a | |
775 | + | case _ => | |
776 | + | 0 | |
777 | + | } | |
778 | + | let UTVFA = (FUVFA + 1) | |
779 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
780 | + | case a: Int => | |
781 | + | a | |
782 | + | case _ => | |
783 | + | 0 | |
784 | + | } | |
785 | + | let ATVO = (FTVO + 1) | |
786 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
787 | + | case a: Int => | |
788 | + | a | |
789 | + | case _ => | |
790 | + | 0 | |
791 | + | } | |
792 | + | let WATV = (WFTV + 1) | |
793 | + | if ((100000000 > assetbal)) | |
794 | + | then throw(minbalerror) | |
795 | + | else if ((pmt.assetId != A4A)) | |
796 | + | then throw(asseterr) | |
797 | + | else if ((pmt.amount != 10000)) | |
798 | + | then throw(minamterr) | |
799 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
800 | + | then throw(voteErr) | |
801 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
546 | 802 | } | |
547 | 803 | ||
548 | 804 | ||
549 | 805 | @Verifier(tx) | |
550 | 806 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
551 | 807 |
github/deemru/w8io/873ac7e 232.32 ms ◑