tx · 5WHWE1aKT44qM6QUw4iK4VzdFAJ1Mty6aeWRdyMXQS92

3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa:  -0.05000000 Waves

2019.10.28 02:00 [739159] smart account 3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa > SELF 0.00000000 Waves

{ "type": 13, "id": "5WHWE1aKT44qM6QUw4iK4VzdFAJ1Mty6aeWRdyMXQS92", "fee": 5000000, "feeAssetId": null, "timestamp": 1572217260359, "version": 1, "sender": "3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa", "senderPublicKey": "DdkgRd7YzZtSU3hXJc7sHsU7sM8nUSEwkzqZCaCTXKRe", "proofs": [ "2AogZyUVPPicTiSnp1r9YrXEeZWNe32SruWyXWs8LgZLMU26FE2wDAxsnfwvqmM21mwomScVU6AES1XrtGoBxv9K" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIIARIECgIIAgAAACYAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAY9iYXNlNjQ6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFnNGRBUjZYYkJEQVM5aHIvRWozZEp2NkZmYzQ2NngvbU9HTVdVM2xyQUJzM3FhOEJIbXVKR25rZmJwRWYydkF3WVRPV1B2dnpmTTEwT0JiZmxvU3lxM2M5TUt2eVRlMWx1QkxHcVc0dlpVWEl5dlNnejFsaXlVVmVmSVF5M2R5RjlqYmVUWmJDMGJiY1QvN08zREVMKzAxejZBK3JEQ2FjU1owbEdvbFNRNkFuaEx4eklrVnBPUUpickJtQyt4K1p1WlBDTVd6SnluZDVhZU9uN2phai9ta1JWeXhlNmcvME9oV3o0TmlpWlhldU1SQis4bUt5MGZXRC9VbElsWldIc0FTMlptcmtYS3FqTHEwLzB3cjhJTEprem5qU3Fkbkk1SWJqZzN1UXJqLzRBTitpOXIyOGFRNzMvWmtQdFk1U2J3MEFPaUFCQnU3Z0htcTlheVZ4WlFJREFRQUIAAAAAD0dBTUVTQ09VTlRFUktFWQIAAAAJJEdBTUVfTlVNAAAAAA5SRVNFUlZBVElPTktFWQIAAAAQJFJFU0VSVkVEX0FNT1VOVAAAAAAEV0JFVAEAAAAgD5uLrFpvaCc5H1Jt+IyA7GJAqs11k4f4jn5gjTii4MkAAAAAB1dBVkVMRVQJAABoAAAAAgkAAGgAAAACAAAAAAAAAABkAAAAAAAAAAPoAAAAAAAAAAPoAAAAAAtGRUVXQVZFU0JFVAAAAAAAAAAABAAAAAAJRkVFTUNBRkVFAAAAAAAAAAACAAAAAA5TVEFURVNVQk1JVFRFRAIAAAAJU1VCTUlUVEVEAAAAAAhTVEFURVdPTgIAAAADV09OAAAAAAlTVEFURUxPU1QCAAAABExPU1QAAAAACVJPTExVTkRFUgIAAAAFVU5ERVIAAAAACFJPTExPVkVSAgAAAARPVkVSAAAAAAZCRVRNSU4JAABoAAAAAgAAAAAAAAAAZAUAAAAHV0FWRUxFVAAAAAAGQkVUTUFYCQAAaAAAAAIAAAAAAAExLQAFAAAAB1dBVkVMRVQAAAAADVBSRURJQ1RJT05NSU4AAAAAAAAAAAEAAAAADVBSRURJQ1RJT05NQVgAAAAAAAAAAGMAAAAADElkeEdhbWVTdGF0ZQAAAAAAAAAAAAAAAAANSWR4UHJlZGljdGlvbgAAAAAAAAAAAQAAAAAHSWR4VHlwZQAAAAAAAAAAAgAAAAARSWR4UGxheWVyUHViS2V5NTgAAAAAAAAAAAMAAAAACUlkeFdpbkFtdAAAAAAAAAAABAAAAAAOSWR4UmFuZE9yRW1wdHkAAAAAAAAAAAUBAAAAEEluY3JlbWVudEdhbWVOdW0AAAAABAAAAAdnYW1lTnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAD0dBTUVTQ09VTlRFUktFWQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANudW0FAAAAByRtYXRjaDAFAAAAA251bQAAAAAAAAAAAAkAAGQAAAACBQAAAAdnYW1lTnVtAAAAAAAAAAABAQAAABJFeHRyYWN0UmVzZXJ2ZWRBbXQAAAAABAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAADlJFU0VSVkFUSU9OS0VZAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAABAAAAHlZhbGlkYXRlQW5kSW5jcmVhc2VSZXNlcnZlZEFtdAAAAAEAAAAGd2luQW10BAAAABFuZXdSZXNlcnZlZEFtb3VudAkAAGQAAAACCQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAUAAAAGd2luQW10BAAAAAdiYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAABFdCRVQDCQAAZgAAAAIFAAAAEW5ld1Jlc2VydmVkQW1vdW50BQAAAAdiYWxhbmNlCQAAAgAAAAECAAAAVkluc3VmZmljaWVudCBmdW5kcyBvbiBXYXZlc2JldCBEaWNlIGFjY291bnQuIFRyYW5zYWN0aW9uIHdhcyByZWplY3RlZCBmb3IgeW91ciBzYWZldHkuBQAAABFuZXdSZXNlcnZlZEFtb3VudAEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEAAAABcAQAAAABcwkAATEAAAABBQAAAAFwAwkAAAAAAAACBQAAAAFzAAAAAAAAAAAACQAAAgAAAAECAAAAJVBhcmFtZXRlciBzaXplIG11c3QgYmUgZ3JlYXRlciB0aGVuIDADCQAAZgAAAAIFAAAAAXMAAAAAAAAAAGMJAAACAAAAAQIAAAAkUGFyYW1ldGVyIHNpemUgbXVzdCBiZSBsZXNzIHRoZW4gMTAwAwkAAGYAAAACAAAAAAAAAAAKBQAAAAFzCQABLAAAAAIJAAEsAAAAAgIAAAABMAkAAaQAAAABBQAAAAFzBQAAAAFwCQABLAAAAAIJAAGkAAAAAQUAAAABcwUAAAABcAEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGAAAACWdhbWVTdGF0ZQAAAApwcmVkaWN0aW9uAAAACHR5cGVSb2xsAAAADnBsYXllclB1YktleTU4AAAABndpbkFtdAAAAAtyYW5kT3JFbXB0eQQAAAAMZnVsbFN0YXRlU3RyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkBAAAAE0Zvcm1hdEdhbWVEYXRhUGFyYW0AAAABBQAAAAlnYW1lU3RhdGUCAAAAAV8JAQAAABNGb3JtYXRHYW1lRGF0YVBhcmFtAAAAAQkAAaQAAAABBQAAAApwcmVkaWN0aW9uAgAAAAFfCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEFAAAACHR5cGVSb2xsAgAAAAFfCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEFAAAADnBsYXllclB1YktleTU4AgAAAAFfCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEJAAGkAAAAAQUAAAAGd2luQW10AwkAAAAAAAACBQAAAAtyYW5kT3JFbXB0eQIAAAAABQAAAAxmdWxsU3RhdGVTdHIJAAEsAAAAAgkAASwAAAACBQAAAAxmdWxsU3RhdGVTdHICAAAAAV8JAQAAABNGb3JtYXRHYW1lRGF0YVBhcmFtAAAAAQUAAAALcmFuZE9yRW1wdHkBAAAAGVJlbW92ZVVuZGVyc2NvcmVJZlByZXNlbnQAAAABAAAACXJlbWFpbmluZwMJAABmAAAAAgkAATEAAAABBQAAAAlyZW1haW5pbmcAAAAAAAAAAAAJAAEwAAAAAgUAAAAJcmVtYWluaW5nAAAAAAAAAAABBQAAAAlyZW1haW5pbmcBAAAAElBhcnNlTmV4dEF0dHJpYnV0ZQAAAAEAAAAJcmVtYWluaW5nBAAAAAFzCQABMQAAAAEFAAAACXJlbWFpbmluZwMJAABmAAAAAgUAAAABcwAAAAAAAAAAAAQAAAACbm4JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAS8AAAACBQAAAAlyZW1haW5pbmcAAAAAAAAAAAIEAAAAAXYJAAEvAAAAAgkAATAAAAACBQAAAAlyZW1haW5pbmcAAAAAAAAAAAIFAAAAAm5uBAAAAAx0bXBSZW1haW5pbmcJAAEwAAAAAgUAAAAJcmVtYWluaW5nCQAAZAAAAAIFAAAAAm5uAAAAAAAAAAACBAAAAA5yZW1haW5pbmdTdGF0ZQkBAAAAGVJlbW92ZVVuZGVyc2NvcmVJZlByZXNlbnQAAAABBQAAAAx0bXBSZW1haW5pbmcJAARMAAAAAgUAAAABdgkABEwAAAACBQAAAA5yZW1haW5pbmdTdGF0ZQUAAAADbmlsCQAAAgAAAAECAAAANEVtcHR5IHN0cmluZyB3YXMgcGFzc2VkIGludG8gcGFyc2VOZXh0QXR0cmlidXRlIGZ1bmMBAAAAE1BhcnNlR2FtZVJhd0RhdGFTdHIAAAABAAAAC3Jhd1N0YXRlU3RyBAAAAAlnYW1lU3RhdGUJAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABBQAAAAtyYXdTdGF0ZVN0cgQAAAAKcHJlZGljdGlvbgkBAAAAElBhcnNlTmV4dEF0dHJpYnV0ZQAAAAEJAAGRAAAAAgUAAAAJZ2FtZVN0YXRlAAAAAAAAAAABBAAAAAhyb2xsVHlwZQkBAAAAElBhcnNlTmV4dEF0dHJpYnV0ZQAAAAEJAAGRAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAAQQAAAAOcGxheWVyUHViS2V5NTgJAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABCQABkQAAAAIFAAAACHJvbGxUeXBlAAAAAAAAAAABBAAAAAZ3aW5BbXQJAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABCQABkQAAAAIFAAAADnBsYXllclB1YktleTU4AAAAAAAAAAABCQAETAAAAAIJAAGRAAAAAgUAAAAJZ2FtZVN0YXRlAAAAAAAAAAAACQAETAAAAAIJAAGRAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAAAkABEwAAAACCQABkQAAAAIFAAAACHJvbGxUeXBlAAAAAAAAAAAACQAETAAAAAIJAAGRAAAAAgUAAAAOcGxheWVyUHViS2V5NTgAAAAAAAAAAAAJAARMAAAAAgkAAZEAAAACBQAAAAZ3aW5BbXQAAAAAAAAAAAAFAAAAA25pbAEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEAAAAGZ2FtZUlkBAAAAApyYXdEYXRhU3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAABmdhbWVJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAANzdHIFAAAAByRtYXRjaDAFAAAAA3N0cgkAAAIAAAABCQABLAAAAAICAAAAFkNvdWxkbid0IGZpbmQgZ2FtZSBieSAFAAAABmdhbWVJZAkBAAAAE1BhcnNlR2FtZVJhd0RhdGFTdHIAAAABBQAAAApyYXdEYXRhU3RyAQAAABNEZWNyZWFzZVJlc2VydmVkQW10AAAAAgAAAAZnYW1lSWQAAAAGd2luQW10BAAAABFuZXdSZXNlcnZlZEFtb3VudAkAAGUAAAACCQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAUAAAAGd2luQW10AwkAAGYAAAACAAAAAAAAAAAABQAAABFuZXdSZXNlcnZlZEFtb3VudAkAAAIAAAABAgAAAEJJbnZhbGlkIERpY2UgUm9sbGVyIGFjY291bnQgc3RhdGUgLSByZXNlcnZlZCBhbW91bnQgaXMgbGVzcyB0aGFuIDAJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5SRVNFUlZBVElPTktFWQUAAAARbmV3UmVzZXJ2ZWRBbW91bnQBAAAAD0dlbmVyYXRlUmFuZEludAAAAAIAAAAGZ2FtZUlkAAAAB3JzYVNpZ24EAAAAC3JzYVNpZ1ZhbGlkCQAB+AAAAAQFAAAABlNIQTI1NgkAAZsAAAABBQAAAAZnYW1lSWQFAAAAB3JzYVNpZ24FAAAACVJTQVBVQkxJQwMFAAAAC3JzYVNpZ1ZhbGlkBAAAAARyYW5kCQAAagAAAAIJAASxAAAAAQkAAfcAAAABBQAAAAdyc2FTaWduAAAAAAAAAABkAwkAAGYAAAACAAAAAAAAAAAABQAAAARyYW5kCQAAZAAAAAIJAABoAAAAAgD//////////wUAAAAEcmFuZAAAAAAAAAAAAQkAAGQAAAACBQAAAARyYW5kAAAAAAAAAAABCQAAAgAAAAECAAAAFUludmFsaWQgUlNBIHNpZ25hdHVyZQEAAAAJUmFuZFRvU3RyAAAAAQAAAAFyAwMJAABnAAAAAgUAAAABcgAAAAAAAAAAAQkAAGcAAAACAAAAAAAAAABkBQAAAAFyBwkAAaQAAAABBQAAAAFyCQAAAgAAAAEJAAEsAAAAAgIAAAA8VW5zdXBwb3J0ZWQgciBwYXJhbWV0ZXIgcGFzc2VkOiBleHBlY3RlZD1bMSwuLi4sMTAwXSBhY3R1YWw9CQABpAAAAAEFAAAAAXIBAAAADFdpblNjcmlwdFNldAAAAAUAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MAAAAGd2luQW10AAAADm5ld0dhbWVEYXRhU3RyAAAAEWRlY3JlYXNlZFJlc2VydmVzBAAAAA53U2V0Q29tbW9uRGF0YQkABEwAAAACBQAAABFkZWNyZWFzZWRSZXNlcnZlcwUAAAADbmlsBAAAAA50U2V0Q29tbW9uRGF0YQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA1wbGF5ZXJBZGRyZXNzBQAAAAZ3aW5BbXQFAAAABFdCRVQFAAAAA25pbAQAAAAIZ2FtZURhdGEJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAADm5ld0dhbWVEYXRhU3RyCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACBQAAAAhnYW1lRGF0YQUAAAAOd1NldENvbW1vbkRhdGEJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAADnRTZXRDb21tb25EYXRhAQAAAApNdWx0aXBsaWVyAAAAAgAAAApwcmVkaWN0aW9uAAAACHJvbGxUeXBlAwkAAAAAAAACBQAAAAhyb2xsVHlwZQUAAAAJUk9MTFVOREVSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAABAAAAAAAAlkyQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAACAAAAAAAASyZIAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAADAAAAAAAAMhmCAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAEAAAAAAAAJZMkAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAFAAAAAAAAHg9QAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAGAAAAAAAAGQy8AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAHAAAAAAAAFXikAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAIAAAAAAAAEsmSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAJAAAAAAAAELMoAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAKAAAAAAAADweoAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAALAAAAAAAADanaAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAMAAAAAAAADIZeAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAANAAAAAAAAC4+6AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAOAAAAAAAACrxSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAPAAAAAAAACgUUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAQAAAAAAAACWTEAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAARAAAAAAAACNdSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAASAAAAAAAACFmUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAATAAAAAAAAB+kUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAUAAAAAAAAB4PUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAVAAAAAAAABygwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAWAAAAAAAABtToAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAXAAAAAAAABojkAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAYAAAAAAAABkMqAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAZAAAAAAAABgMQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAaAAAAAAAABcfYAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAbAAAAAAAABZEKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAcAAAAAAAABV4kAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAdAAAAAAAABS7CAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAeAAAAAAAABQKKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAfAAAAAAAABNksAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAgAAAAAAAABLJiAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAhAAAAAAAABI3wAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAiAAAAAAAABGukAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAjAAAAAAAABEtMAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAkAAAAAAAABCzKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAlAAAAAAAAA/SKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAmAAAAAAAAA/SKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAnAAAAAAAAA9qQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAoAAAAAAAAA8HqAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAApAAAAAAAAA6pwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAqAAAAAAAAA5QYAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAArAAAAAAAAA37EAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAsAAAAAAAAA2p0AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAtAAAAAAAAA1cAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAuAAAAAAAAA0RyAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAvAAAAAAAAAzKiAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAwAAAAAAAAAyGQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAxAAAAAAAAAxE8AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAyAAAAAAAAAwGIAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAzAAAAAAAAAvJqAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA0AAAAAAAAAuPsAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA1AAAAAAAAAtXwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA2AAAAAAAAAsiAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA3AAAAAAAAAruSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA4AAAAAAAAAq8SAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA5AAAAAAAAAqMAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA6AAAAAAAAApdcAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA7AAAAAAAAAowcAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA8AAAAAAAAAoFAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA9AAAAAAAAAna+AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA+AAAAAAAAAmyWAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA/AAAAAAAAAmK0AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABAAAAAAAAAAlksAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABBAAAAAAAAAk/qAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABCAAAAAAAAAkb4AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABDAAAAAAAAAj5CAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABEAAAAAAAAAjXSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABFAAAAAAAAAi2eAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABGAAAAAAAAAiWmAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABHAAAAAAAAAh3qAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABIAAAAAAAAAhZgAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABJAAAAAAAAAg8SAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABKAAAAAAAAAgfsAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABLAAAAAAAAAgECAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABMAAAAAAAAAfpAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABNAAAAAAAAAfOwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABOAAAAAAAAAe1IAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABPAAAAAAAAAecIAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABQAAAAAAAAAeDwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABRAAAAAAAAAdsAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABSAAAAAAAAAdU4AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABTAAAAAAAAAc+OAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABUAAAAAAAAAcoMAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABVAAAAAAAAAcSoAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABWAAAAAAAAAb9iAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABXAAAAAAAAAbo6AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABYAAAAAAAAAbU6AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABZAAAAAAAAAbBOAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABaAAAAAAAAAauAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABbAAAAAAAAAabQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABcAAAAAAAAAaI0AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABdAAAAAAAAAZ22AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABeAAAAAAAAAZlMAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABfAAAAAAAAAZUAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABgAAAAAAAAAZUAAAAAAAAAAYagAwkAAAAAAAACBQAAAAhyb2xsVHlwZQUAAAAIUk9MTE9WRVIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAQAAAAAAAABlQADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAUAAAAAAAABlQADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAYAAAAAAAABmUwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAcAAAAAAAABnbYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAgAAAAAAAABojQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAkAAAAAAAABptADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAoAAAAAAAABq4ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAsAAAAAAAABsE4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAwAAAAAAAABtToDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA0AAAAAAAABujoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA4AAAAAAAABv2IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA8AAAAAAAABxKgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABAAAAAAAAABygwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABEAAAAAAAABz44DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABIAAAAAAAAB1TgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABMAAAAAAAAB2wADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABQAAAAAAAAB4PADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABUAAAAAAAAB5wgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABYAAAAAAAAB7UgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABcAAAAAAAAB87ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABgAAAAAAAAB+kADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABkAAAAAAAACAQIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABoAAAAAAAACB+wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABsAAAAAAAACDxIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABwAAAAAAAACFmADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB0AAAAAAAACHeoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB4AAAAAAAACJaYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB8AAAAAAAACLZ4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACAAAAAAAAACNdIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACEAAAAAAAACPkIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACIAAAAAAAACRvgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACMAAAAAAAACT+oDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACQAAAAAAAACWSwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACUAAAAAAAACYrQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACYAAAAAAAACbJYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACcAAAAAAAACdr4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACgAAAAAAAACgUADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACkAAAAAAAACjBwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACoAAAAAAAACl1wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACsAAAAAAAACowADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACwAAAAAAAACrxIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC0AAAAAAAACu5IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC4AAAAAAAAC1fADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC8AAAAAAAAC1fADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADAAAAAAAAAC4+wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADEAAAAAAAAC8moDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADIAAAAAAAADAYgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADMAAAAAAAADETwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADQAAAAAAAADIZADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADUAAAAAAAADMqIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADYAAAAAAAADRHIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADcAAAAAAAADVwADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADgAAAAAAAADanQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADkAAAAAAAADfsQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADoAAAAAAAADlBgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADsAAAAAAAADqnADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADwAAAAAAAADweoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD0AAAAAAAAD2pADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD4AAAAAAAAD9IoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD8AAAAAAAAD9IoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEAAAAAAAAAELMoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEEAAAAAAAAES0wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEIAAAAAAAAEa6QDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEMAAAAAAAAEjfADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEQAAAAAAAAEsmIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEUAAAAAAAAE2SwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEYAAAAAAAAFAooDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEcAAAAAAAAFLsIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEgAAAAAAAAFXiQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEkAAAAAAAAFkQoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEoAAAAAAAAFx9gDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEsAAAAAAAAGAxADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEwAAAAAAAAGQyoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE0AAAAAAAAGiOQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE4AAAAAAAAG1OgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE8AAAAAAAAHKDADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFAAAAAAAAAHg9QDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFEAAAAAAAAH6RQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFIAAAAAAAAIWZQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFMAAAAAAAAI11IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFQAAAAAAAAJZMQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFUAAAAAAAAKBRQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFYAAAAAAAAKvFIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFcAAAAAAAALj7oDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFgAAAAAAAAMhl4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFkAAAAAAAANqdoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFoAAAAAAAAPB6gDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFsAAAAAAAAQsygDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFwAAAAAAAASyZIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF0AAAAAAAAVeKQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF4AAAAAAAAZDLwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF8AAAAAAAAeD1ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGAAAAAAAAAlkyQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGEAAAAAAAAyGYIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGIAAAAAAABLJkgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGMAAAAAAACWTJAAAAAAAAABhqAAAAAAAAABhqABAAAAB2RpY2VXaW4AAAADAAAABHR5cGUAAAAKcHJlZGljdGlvbgAAAAZudW1iZXIDCQAAAAAAAAIFAAAABHR5cGUFAAAACVJPTExVTkRFUgMJAABnAAAAAgUAAAAKcHJlZGljdGlvbgUAAAAGbnVtYmVyBgcDCQAAAAAAAAIFAAAABHR5cGUFAAAACFJPTExPVkVSAwkAAGcAAAACBQAAAAZudW1iZXIFAAAACnByZWRpY3Rpb24GBwcBAAAAGlZhbGlkYXRlQmV0QW5kRGVmaW5lV2luQW10AAAAAwAAAAZhbW91bnQAAAAKcHJlZGljdGlvbgAAAAhyb2xsVHlwZQMDCQAAZgAAAAIFAAAABkJFVE1JTgUAAAAGYW1vdW50BgkAAGYAAAACBQAAAAZhbW91bnQFAAAABkJFVE1BWAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACNCZXQgYW1vdW50IGlzIG5vdCBpbiByYW5nZTogbWluQmV0PQkAAaQAAAABCQAAaQAAAAIFAAAABkJFVE1JTgUAAAAHV0FWRUxFVAIAAAAIIG1heEJldD0JAAGkAAAAAQkAAGkAAAACBQAAAAZCRVRNQVgFAAAAB1dBVkVMRVQDAwkBAAAAAiE9AAAAAgUAAAAIcm9sbFR5cGUFAAAACVJPTExVTkRFUgkBAAAAAiE9AAAAAgUAAAAIcm9sbFR5cGUFAAAACFJPTExPVkVSBwkAAAIAAAABAgAAAClJbnZhbGlkIFJvbGwgdHlwZSwgdHJ5IHdpdGggT1ZFUiBvciBVTkRFUgMDCQAAZgAAAAIFAAAADVBSRURJQ1RJT05NSU4FAAAACnByZWRpY3Rpb24GCQAAZgAAAAIFAAAACnByZWRpY3Rpb24FAAAADVBSRURJQ1RJT05NQVgJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAgUHJlZGljdGlvbiBpcyBvdXQgb2YgdGhlIHJhbmdlOiAJAAGkAAAAAQUAAAANUFJFRElDVElPTk1JTgIAAAASIDw9IHByZWRpY3Rpb24gPD0gCQABpAAAAAEFAAAADVBSRURJQ1RJT05NQVgEAAAABW11bHRpCQEAAAAKTXVsdGlwbGllcgAAAAIFAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlCQAAaQAAAAIJAABoAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAABmFtb3VudAUAAAAFbXVsdGkAAAAAAAABhqAJAABlAAAAAgAAAAAAAAAAZAkAAGQAAAACBQAAAAtGRUVXQVZFU0JFVAUAAAAJRkVFTUNBRkVFAAAAAAAAAABkAAAAAgAAAAFpAQAAAAhwbGF5RGljZQAAAAIAAAAIcm9sbFR5cGUAAAAKcHJlZGljdGlvbgQAAAAGZ2FtZUlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAKZmVlQXNzZXRJZAkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAFpAAAACmZlZUFzc2V0SWQEAAAABW11bHRpCQEAAAAKTXVsdGlwbGllcgAAAAIFAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlBAAAAAZ3aW5BbXQJAQAAABpWYWxpZGF0ZUJldEFuZERlZmluZVdpbkFtdAAAAAMIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAKcHJlZGljdGlvbgUAAAAIcm9sbFR5cGUEAAAADXBsYXllckJhbGFuY2UJAQAAAAx3YXZlc0JhbGFuY2UAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAACmdhbWVJZFVzZWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAABmdhbWVJZAMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAABFdCRVQJAAACAAAAAQIAAAAdUGF5bWVudCBzaG91bGQgYmUgaW4gV2F2ZXNiZXQDCQAAZgAAAAIAAAAAAAABhqAFAAAADXBsYXllckJhbGFuY2UJAAACAAAAAQIAAABFVGhlcmUgYXJlIG5vdCBlbm91Z2ggd2F2ZXMsIGl0IHRha2VzIDAuMDEgV2F2ZXMgdG8gYmV0LiBHYW1lIGFib3J0ZWQuAwUAAAAKZmVlQXNzZXRJZAkAAAIAAAABAgAAADFUcmFuc2FjdGlvbidzIGZlZSBtdXN0IGJlIGluIFdhdmVzLiBHYW1lIGFib3J0ZWQuAwUAAAAKZ2FtZUlkVXNlZAkAAAIAAAABAgAAADFQYXNzZWQgZ2FtZUlkIGhhZCBiZWVuIHVzZWQgYmVmb3JlLiBHYW1lIGFib3J0ZWQuBAAAAApuZXdHYW1lTnVtCQEAAAAQSW5jcmVtZW50R2FtZU51bQAAAAAEAAAADnBsYXllclB1YktleTU4CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAALZ2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAADlNUQVRFU1VCTUlUVEVEBQAAAApwcmVkaWN0aW9uBQAAAAhyb2xsVHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABndpbkFtdAIAAAAACQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPR0FNRVNDT1VOVEVSS0VZBQAAAApuZXdHYW1lTnVtCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAAC2dhbWVEYXRhU3RyBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAGZ2FtZUlkAAAABnJzYVNpZwQAAAAMZ2FtZURhdGFMaXN0CQEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAMSWR4R2FtZVN0YXRlBAAAAApwcmVkaWN0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAA1JZHhQcmVkaWN0aW9uBAAAAAhyb2xsVHlwZQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAAB0lkeFR5cGUEAAAABndpbkFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAJSWR4V2luQW10BAAAAA5wbGF5ZXJQdWJLZXk1OAkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAAEUlkeFBsYXllclB1YktleTU4BAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4BAAAABFkZWNyZWFzZWRSZXNlcnZlcwkBAAAAE0RlY3JlYXNlUmVzZXJ2ZWRBbXQAAAACBQAAAAZnYW1lSWQFAAAABndpbkFtdAMJAQAAAAIhPQAAAAIFAAAACWdhbWVTdGF0ZQUAAAAOU1RBVEVTVUJNSVRURUQJAAACAAAAAQIAAAAzSW52YWxpZCBnYW1lIHN0YXRlIGZvciBwYXNzZWQgZ2FtZUlkLiBHYW1lIGFib3J0ZWQuBAAAAARyYW5kCQEAAAAPR2VuZXJhdGVSYW5kSW50AAAAAgUAAAAGZ2FtZUlkBQAAAAZyc2FTaWcEAAAAB3JhbmRTdHIJAQAAAAlSYW5kVG9TdHIAAAABBQAAAARyYW5kAwkBAAAAB2RpY2VXaW4AAAADBQAAAAhyb2xsVHlwZQUAAAAKcHJlZGljdGlvbgUAAAAEcmFuZAQAAAAObmV3R2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAACFNUQVRFV09OBQAAAApwcmVkaWN0aW9uBQAAAAhyb2xsVHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABndpbkFtdAUAAAAHcmFuZFN0cgkBAAAADFdpblNjcmlwdFNldAAAAAUFAAAABmdhbWVJZAUAAAANcGxheWVyQWRkcmVzcwUAAAAGd2luQW10BQAAAA5uZXdHYW1lRGF0YVN0cgUAAAARZGVjcmVhc2VkUmVzZXJ2ZXMEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAAlTVEFURUxPU1QFAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAAGd2luQW10BQAAAAdyYW5kU3RyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAADm5ld0dhbWVEYXRhU3RyCQAETAAAAAIFAAAAEWRlY3JlYXNlZFJlc2VydmVzBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAN0dHgFAAAAByRtYXRjaDAJAABnAAAAAgkAAGUAAAACCQAD6wAAAAIFAAAABHRoaXMFAAAABFdCRVQIBQAAAAN0dHgAAAAGYW1vdW50CQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAA3N0eAUAAAAHJG1hdGNoMAYHB6fC7TQ=", "chainId": 84, "height": 739159, "spentComplexity": 0 } View: original | compacted Prev: 4BLB3f5Y58ddQ7Uc8bdMXVrKqaNqxFWdXqDr3ffAkp8x Next: E7bZQ3cz9V7tdDf17vecKfErwGevPgnWoGgWkt91K3Wu Diff:
OldNewDifferences
644644 }
645645
646646
647+@Verifier(tx)
648+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
649+ then match tx {
650+ case ttx: TransferTransaction =>
651+ ((assetBalance(this, WBET) - ttx.amount) >= ExtractReservedAmt())
652+ case stx: SetScriptTransaction =>
653+ true
654+ case _ =>
655+ false
656+ }
657+ else false
658+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RSAPUBLIC = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg4dAR6XbBDAS9hr/Ej3dJv6Ffc466x/mOGMWU3lrABs3qa8BHmuJGnkfbpEf2vAwYTOWPvvzfM10OBbfloSyq3c9MKvyTe1luBLGqW4vZUXIyvSgz1liyUVefIQy3dyF9jbeTZbC0bbcT/7O3DEL+01z6A+rDCacSZ0lGolSQ6AnhLxzIkVpOQJbrBmC+x+ZuZPCMWzJynd5aeOn7jaj/mkRVyxe6g/0OhWz4NiiZXeuMRB+8mKy0fWD/UlIlZWHsAS2ZmrkXKqjLq0/0wr8ILJkznjSqdnI5Ibjg3uQrj/4AN+i9r28aQ73/ZkPtY5Sbw0AOiABBu7gHmq9ayVxZQIDAQAB")
55
66 let GAMESCOUNTERKEY = "$GAME_NUM"
77
88 let RESERVATIONKEY = "$RESERVED_AMOUNT"
99
1010 let WBET = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
1111
1212 let WAVELET = ((100 * 1000) * 1000)
1313
1414 let FEEWAVESBET = 4
1515
1616 let FEEMCAFEE = 2
1717
1818 let STATESUBMITTED = "SUBMITTED"
1919
2020 let STATEWON = "WON"
2121
2222 let STATELOST = "LOST"
2323
2424 let ROLLUNDER = "UNDER"
2525
2626 let ROLLOVER = "OVER"
2727
2828 let BETMIN = (100 * WAVELET)
2929
3030 let BETMAX = (20000000 * WAVELET)
3131
3232 let PREDICTIONMIN = 1
3333
3434 let PREDICTIONMAX = 99
3535
3636 let IdxGameState = 0
3737
3838 let IdxPrediction = 1
3939
4040 let IdxType = 2
4141
4242 let IdxPlayerPubKey58 = 3
4343
4444 let IdxWinAmt = 4
4545
4646 let IdxRandOrEmpty = 5
4747
4848 func IncrementGameNum () = {
4949 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
5050 case num: Int =>
5151 num
5252 case _ =>
5353 0
5454 }
5555 (gameNum + 1)
5656 }
5757
5858
5959 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
6060 case a: Int =>
6161 a
6262 case _ =>
6363 0
6464 }
6565
6666
6767 func ValidateAndIncreaseReservedAmt (winAmt) = {
6868 let newReservedAmount = (ExtractReservedAmt() + winAmt)
6969 let balance = assetBalance(this, WBET)
7070 if ((newReservedAmount > balance))
7171 then throw("Insufficient funds on Wavesbet Dice account. Transaction was rejected for your safety.")
7272 else newReservedAmount
7373 }
7474
7575
7676 func FormatGameDataParam (p) = {
7777 let s = size(p)
7878 if ((s == 0))
7979 then throw("Parameter size must be greater then 0")
8080 else if ((s > 99))
8181 then throw("Parameter size must be less then 100")
8282 else if ((10 > s))
8383 then (("0" + toString(s)) + p)
8484 else (toString(s) + p)
8585 }
8686
8787
8888 func FormatGameDataStr (gameState,prediction,typeRoll,playerPubKey58,winAmt,randOrEmpty) = {
8989 let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(prediction))) + "_") + FormatGameDataParam(typeRoll)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(winAmt)))
9090 if ((randOrEmpty == ""))
9191 then fullStateStr
9292 else ((fullStateStr + "_") + FormatGameDataParam(randOrEmpty))
9393 }
9494
9595
9696 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
9797 then drop(remaining, 1)
9898 else remaining
9999
100100
101101 func ParseNextAttribute (remaining) = {
102102 let s = size(remaining)
103103 if ((s > 0))
104104 then {
105105 let nn = parseIntValue(take(remaining, 2))
106106 let v = take(drop(remaining, 2), nn)
107107 let tmpRemaining = drop(remaining, (nn + 2))
108108 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
109109 [v, remainingState]
110110 }
111111 else throw("Empty string was passed into parseNextAttribute func")
112112 }
113113
114114
115115 func ParseGameRawDataStr (rawStateStr) = {
116116 let gameState = ParseNextAttribute(rawStateStr)
117117 let prediction = ParseNextAttribute(gameState[1])
118118 let rollType = ParseNextAttribute(prediction[1])
119119 let playerPubKey58 = ParseNextAttribute(rollType[1])
120120 let winAmt = ParseNextAttribute(playerPubKey58[1])
121121 [gameState[0], prediction[0], rollType[0], playerPubKey58[0], winAmt[0]]
122122 }
123123
124124
125125 func ExtractGameDataList (gameId) = {
126126 let rawDataStr = match getString(this, gameId) {
127127 case str: String =>
128128 str
129129 case _ =>
130130 throw(("Couldn't find game by " + gameId))
131131 }
132132 ParseGameRawDataStr(rawDataStr)
133133 }
134134
135135
136136 func DecreaseReservedAmt (gameId,winAmt) = {
137137 let newReservedAmount = (ExtractReservedAmt() - winAmt)
138138 if ((0 > newReservedAmount))
139139 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
140140 else DataEntry(RESERVATIONKEY, newReservedAmount)
141141 }
142142
143143
144144 func GenerateRandInt (gameId,rsaSign) = {
145145 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)
146146 if (rsaSigValid)
147147 then {
148148 let rand = (toInt(sha256(rsaSign)) % 100)
149149 if ((0 > rand))
150150 then ((-1 * rand) + 1)
151151 else (rand + 1)
152152 }
153153 else throw("Invalid RSA signature")
154154 }
155155
156156
157157 func RandToStr (r) = if (if ((r >= 1))
158158 then (100 >= r)
159159 else false)
160160 then toString(r)
161161 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
162162
163163
164164 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr,decreasedReserves) = {
165165 let wSetCommonData = [decreasedReserves]
166166 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, WBET)]
167167 let gameData = DataEntry(gameId, newGameDataStr)
168168 ScriptResult(WriteSet(gameData :: wSetCommonData), TransferSet(tSetCommonData))
169169 }
170170
171171
172172 func Multiplier (prediction,rollType) = if ((rollType == ROLLUNDER))
173173 then if ((prediction == 1))
174174 then 9850000
175175 else if ((prediction == 2))
176176 then 4925000
177177 else if ((prediction == 3))
178178 then 3283330
179179 else if ((prediction == 4))
180180 then 2462500
181181 else if ((prediction == 5))
182182 then 1970000
183183 else if ((prediction == 6))
184184 then 1641660
185185 else if ((prediction == 7))
186186 then 1407140
187187 else if ((prediction == 8))
188188 then 1231250
189189 else if ((prediction == 9))
190190 then 1094440
191191 else if ((prediction == 10))
192192 then 985000
193193 else if ((prediction == 11))
194194 then 895450
195195 else if ((prediction == 12))
196196 then 820830
197197 else if ((prediction == 13))
198198 then 757690
199199 else if ((prediction == 14))
200200 then 703570
201201 else if ((prediction == 15))
202202 then 656660
203203 else if ((prediction == 16))
204204 then 615620
205205 else if ((prediction == 17))
206206 then 579410
207207 else if ((prediction == 18))
208208 then 547220
209209 else if ((prediction == 19))
210210 then 518420
211211 else if ((prediction == 20))
212212 then 492500
213213 else if ((prediction == 21))
214214 then 469040
215215 else if ((prediction == 22))
216216 then 447720
217217 else if ((prediction == 23))
218218 then 428260
219219 else if ((prediction == 24))
220220 then 410410
221221 else if ((prediction == 25))
222222 then 394000
223223 else if ((prediction == 26))
224224 then 378840
225225 else if ((prediction == 27))
226226 then 364810
227227 else if ((prediction == 28))
228228 then 351780
229229 else if ((prediction == 29))
230230 then 339650
231231 else if ((prediction == 30))
232232 then 328330
233233 else if ((prediction == 31))
234234 then 317740
235235 else if ((prediction == 32))
236236 then 307810
237237 else if ((prediction == 33))
238238 then 298480
239239 else if ((prediction == 34))
240240 then 289700
241241 else if ((prediction == 35))
242242 then 281420
243243 else if ((prediction == 36))
244244 then 273610
245245 else if ((prediction == 37))
246246 then 259210
247247 else if ((prediction == 38))
248248 then 259210
249249 else if ((prediction == 39))
250250 then 252560
251251 else if ((prediction == 40))
252252 then 246250
253253 else if ((prediction == 41))
254254 then 240240
255255 else if ((prediction == 42))
256256 then 234520
257257 else if ((prediction == 43))
258258 then 229060
259259 else if ((prediction == 44))
260260 then 223860
261261 else if ((prediction == 45))
262262 then 218880
263263 else if ((prediction == 46))
264264 then 214130
265265 else if ((prediction == 47))
266266 then 209570
267267 else if ((prediction == 48))
268268 then 205200
269269 else if ((prediction == 49))
270270 then 201020
271271 else if ((prediction == 50))
272272 then 197000
273273 else if ((prediction == 51))
274274 then 193130
275275 else if ((prediction == 52))
276276 then 189420
277277 else if ((prediction == 53))
278278 then 185840
279279 else if ((prediction == 54))
280280 then 182400
281281 else if ((prediction == 55))
282282 then 179090
283283 else if ((prediction == 56))
284284 then 175890
285285 else if ((prediction == 57))
286286 then 172800
287287 else if ((prediction == 58))
288288 then 169820
289289 else if ((prediction == 59))
290290 then 166940
291291 else if ((prediction == 60))
292292 then 164160
293293 else if ((prediction == 61))
294294 then 161470
295295 else if ((prediction == 62))
296296 then 158870
297297 else if ((prediction == 63))
298298 then 156340
299299 else if ((prediction == 64))
300300 then 153900
301301 else if ((prediction == 65))
302302 then 151530
303303 else if ((prediction == 66))
304304 then 149240
305305 else if ((prediction == 67))
306306 then 147010
307307 else if ((prediction == 68))
308308 then 144850
309309 else if ((prediction == 69))
310310 then 142750
311311 else if ((prediction == 70))
312312 then 140710
313313 else if ((prediction == 71))
314314 then 138730
315315 else if ((prediction == 72))
316316 then 136800
317317 else if ((prediction == 73))
318318 then 134930
319319 else if ((prediction == 74))
320320 then 133100
321321 else if ((prediction == 75))
322322 then 131330
323323 else if ((prediction == 76))
324324 then 129600
325325 else if ((prediction == 77))
326326 then 127920
327327 else if ((prediction == 78))
328328 then 126280
329329 else if ((prediction == 79))
330330 then 124680
331331 else if ((prediction == 80))
332332 then 123120
333333 else if ((prediction == 81))
334334 then 121600
335335 else if ((prediction == 82))
336336 then 120120
337337 else if ((prediction == 83))
338338 then 118670
339339 else if ((prediction == 84))
340340 then 117260
341341 else if ((prediction == 85))
342342 then 115880
343343 else if ((prediction == 86))
344344 then 114530
345345 else if ((prediction == 87))
346346 then 113210
347347 else if ((prediction == 88))
348348 then 111930
349349 else if ((prediction == 89))
350350 then 110670
351351 else if ((prediction == 90))
352352 then 109440
353353 else if ((prediction == 91))
354354 then 108240
355355 else if ((prediction == 92))
356356 then 107060
357357 else if ((prediction == 93))
358358 then 105910
359359 else if ((prediction == 94))
360360 then 104780
361361 else if ((prediction == 95))
362362 then 103680
363363 else if ((prediction == 96))
364364 then 103680
365365 else 100000
366366 else if ((rollType == ROLLOVER))
367367 then if ((prediction == 4))
368368 then 103680
369369 else if ((prediction == 5))
370370 then 103680
371371 else if ((prediction == 6))
372372 then 104780
373373 else if ((prediction == 7))
374374 then 105910
375375 else if ((prediction == 8))
376376 then 107060
377377 else if ((prediction == 9))
378378 then 108240
379379 else if ((prediction == 10))
380380 then 109440
381381 else if ((prediction == 11))
382382 then 110670
383383 else if ((prediction == 12))
384384 then 111930
385385 else if ((prediction == 13))
386386 then 113210
387387 else if ((prediction == 14))
388388 then 114530
389389 else if ((prediction == 15))
390390 then 115880
391391 else if ((prediction == 16))
392392 then 117260
393393 else if ((prediction == 17))
394394 then 118670
395395 else if ((prediction == 18))
396396 then 120120
397397 else if ((prediction == 19))
398398 then 121600
399399 else if ((prediction == 20))
400400 then 123120
401401 else if ((prediction == 21))
402402 then 124680
403403 else if ((prediction == 22))
404404 then 126280
405405 else if ((prediction == 23))
406406 then 127920
407407 else if ((prediction == 24))
408408 then 129600
409409 else if ((prediction == 25))
410410 then 131330
411411 else if ((prediction == 26))
412412 then 133100
413413 else if ((prediction == 27))
414414 then 134930
415415 else if ((prediction == 28))
416416 then 136800
417417 else if ((prediction == 29))
418418 then 138730
419419 else if ((prediction == 30))
420420 then 140710
421421 else if ((prediction == 31))
422422 then 142750
423423 else if ((prediction == 32))
424424 then 144850
425425 else if ((prediction == 33))
426426 then 147010
427427 else if ((prediction == 34))
428428 then 149240
429429 else if ((prediction == 35))
430430 then 151530
431431 else if ((prediction == 36))
432432 then 153900
433433 else if ((prediction == 37))
434434 then 156340
435435 else if ((prediction == 38))
436436 then 158870
437437 else if ((prediction == 39))
438438 then 161470
439439 else if ((prediction == 40))
440440 then 164160
441441 else if ((prediction == 41))
442442 then 166940
443443 else if ((prediction == 42))
444444 then 169820
445445 else if ((prediction == 43))
446446 then 172800
447447 else if ((prediction == 44))
448448 then 175890
449449 else if ((prediction == 45))
450450 then 179090
451451 else if ((prediction == 46))
452452 then 185840
453453 else if ((prediction == 47))
454454 then 185840
455455 else if ((prediction == 48))
456456 then 189420
457457 else if ((prediction == 49))
458458 then 193130
459459 else if ((prediction == 50))
460460 then 197000
461461 else if ((prediction == 51))
462462 then 201020
463463 else if ((prediction == 52))
464464 then 205200
465465 else if ((prediction == 53))
466466 then 209570
467467 else if ((prediction == 54))
468468 then 214130
469469 else if ((prediction == 55))
470470 then 218880
471471 else if ((prediction == 56))
472472 then 223860
473473 else if ((prediction == 57))
474474 then 229060
475475 else if ((prediction == 58))
476476 then 234520
477477 else if ((prediction == 59))
478478 then 240240
479479 else if ((prediction == 60))
480480 then 246250
481481 else if ((prediction == 61))
482482 then 252560
483483 else if ((prediction == 62))
484484 then 259210
485485 else if ((prediction == 63))
486486 then 259210
487487 else if ((prediction == 64))
488488 then 273610
489489 else if ((prediction == 65))
490490 then 281420
491491 else if ((prediction == 66))
492492 then 289700
493493 else if ((prediction == 67))
494494 then 298480
495495 else if ((prediction == 68))
496496 then 307810
497497 else if ((prediction == 69))
498498 then 317740
499499 else if ((prediction == 70))
500500 then 328330
501501 else if ((prediction == 71))
502502 then 339650
503503 else if ((prediction == 72))
504504 then 351780
505505 else if ((prediction == 73))
506506 then 364810
507507 else if ((prediction == 74))
508508 then 378840
509509 else if ((prediction == 75))
510510 then 394000
511511 else if ((prediction == 76))
512512 then 410410
513513 else if ((prediction == 77))
514514 then 428260
515515 else if ((prediction == 78))
516516 then 447720
517517 else if ((prediction == 79))
518518 then 469040
519519 else if ((prediction == 80))
520520 then 492500
521521 else if ((prediction == 81))
522522 then 518420
523523 else if ((prediction == 82))
524524 then 547220
525525 else if ((prediction == 83))
526526 then 579410
527527 else if ((prediction == 84))
528528 then 615620
529529 else if ((prediction == 85))
530530 then 656660
531531 else if ((prediction == 86))
532532 then 703570
533533 else if ((prediction == 87))
534534 then 757690
535535 else if ((prediction == 88))
536536 then 820830
537537 else if ((prediction == 89))
538538 then 895450
539539 else if ((prediction == 90))
540540 then 985000
541541 else if ((prediction == 91))
542542 then 1094440
543543 else if ((prediction == 92))
544544 then 1231250
545545 else if ((prediction == 93))
546546 then 1407140
547547 else if ((prediction == 94))
548548 then 1641660
549549 else if ((prediction == 95))
550550 then 1970000
551551 else if ((prediction == 96))
552552 then 2462500
553553 else if ((prediction == 97))
554554 then 3283330
555555 else if ((prediction == 98))
556556 then 4925000
557557 else if ((prediction == 99))
558558 then 9850000
559559 else 100000
560560 else 100000
561561
562562
563563 func diceWin (type,prediction,number) = if ((type == ROLLUNDER))
564564 then if ((prediction >= number))
565565 then true
566566 else false
567567 else if ((type == ROLLOVER))
568568 then if ((number >= prediction))
569569 then true
570570 else false
571571 else false
572572
573573
574574 func ValidateBetAndDefineWinAmt (amount,prediction,rollType) = if (if ((BETMIN > amount))
575575 then true
576576 else (amount > BETMAX))
577577 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / WAVELET))) + " maxBet=") + toString((BETMAX / WAVELET))))
578578 else if (if ((rollType != ROLLUNDER))
579579 then (rollType != ROLLOVER)
580580 else false)
581581 then throw("Invalid Roll type, try with OVER or UNDER")
582582 else if (if ((PREDICTIONMIN > prediction))
583583 then true
584584 else (prediction > PREDICTIONMAX))
585585 then throw(((("Prediction is out of the range: " + toString(PREDICTIONMIN)) + " <= prediction <= ") + toString(PREDICTIONMAX)))
586586 else {
587587 let multi = Multiplier(prediction, rollType)
588588 ((((amount * multi) / 100000) * (100 - (FEEWAVESBET + FEEMCAFEE))) / 100)
589589 }
590590
591591
592592 @Callable(i)
593593 func playDice (rollType,prediction) = {
594594 let gameId = toBase58String(i.transactionId)
595595 let payment = extract(i.payment)
596596 let feeAssetId = isDefined(i.feeAssetId)
597597 let multi = Multiplier(prediction, rollType)
598598 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
599599 let playerBalance = wavesBalance(i.caller)
600600 let gameIdUsed = isDefined(getString(this, gameId))
601601 if ((payment.assetId != WBET))
602602 then throw("Payment should be in Wavesbet")
603603 else if ((100000 > playerBalance))
604604 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
605605 else if (feeAssetId)
606606 then throw("Transaction's fee must be in Waves. Game aborted.")
607607 else if (gameIdUsed)
608608 then throw("Passed gameId had been used before. Game aborted.")
609609 else {
610610 let newGameNum = IncrementGameNum()
611611 let playerPubKey58 = toBase58String(i.callerPublicKey)
612612 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
613613 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet(nil))
614614 }
615615 }
616616
617617
618618
619619 @Callable(i)
620620 func withdraw (gameId,rsaSig) = {
621621 let gameDataList = ExtractGameDataList(gameId)
622622 let gameState = gameDataList[IdxGameState]
623623 let prediction = parseIntValue(gameDataList[IdxPrediction])
624624 let rollType = gameDataList[IdxType]
625625 let winAmt = parseIntValue(gameDataList[IdxWinAmt])
626626 let playerPubKey58 = gameDataList[IdxPlayerPubKey58]
627627 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
628628 let decreasedReserves = DecreaseReservedAmt(gameId, winAmt)
629629 if ((gameState != STATESUBMITTED))
630630 then throw("Invalid game state for passed gameId. Game aborted.")
631631 else {
632632 let rand = GenerateRandInt(gameId, rsaSig)
633633 let randStr = RandToStr(rand)
634634 if (diceWin(rollType, prediction, rand))
635635 then {
636636 let newGameDataStr = FormatGameDataStr(STATEWON, prediction, rollType, playerPubKey58, winAmt, randStr)
637637 WinScriptSet(gameId, playerAddress, winAmt, newGameDataStr, decreasedReserves)
638638 }
639639 else {
640640 let newGameDataStr = FormatGameDataStr(STATELOST, prediction, rollType, playerPubKey58, winAmt, randStr)
641641 WriteSet([DataEntry(gameId, newGameDataStr), decreasedReserves])
642642 }
643643 }
644644 }
645645
646646
647+@Verifier(tx)
648+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
649+ then match tx {
650+ case ttx: TransferTransaction =>
651+ ((assetBalance(this, WBET) - ttx.amount) >= ExtractReservedAmt())
652+ case stx: SetScriptTransaction =>
653+ true
654+ case _ =>
655+ false
656+ }
657+ else false
658+

github/deemru/w8io/169f3d6 
91.29 ms