tx · A1ichLYXomENmwL7xKAmyQgqWz8tiegia1TctBb2uBkL

3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE:  -0.02600000 Waves

2022.08.02 17:53 [2167017] smart account 3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE > SELF 0.00000000 Waves

{ "type": 13, "id": "A1ichLYXomENmwL7xKAmyQgqWz8tiegia1TctBb2uBkL", "fee": 2600000, "feeAssetId": null, "timestamp": 1659452054835, "version": 1, "sender": "3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE", "senderPublicKey": "G349Uq3FTox7dRNLeAfAQeoACvwZ9iEnVSaHcEYn6j8J", "proofs": [ "3LRmcoe43qiqiq4yigbiyjMqWfrxLb4xpimGarnJYxqhMsh2nPLK5zya3auSPvogttG5XThDduAiDVvpGZ6p8bqv" ], "script": "base64:BgJ2CAISBAoCCAESABIDCgEBEgASABIICgYCAQEBAQESABIDCgEIEgQKAggBEgMKAQgSBAoCCAESAwoBCBIDCgEIEgUKAwEBARIFCgMBAQESBgoECAgIARIDCgEIEgMKAQgSABIDCgEIEgcKBQgICAgIEgMKAQgSAE8AA1NFUAICX18ACVVTRVJERVBUSAAaAAVTQ0FMRQDoBwAFTVVMVDgAgMLXLwAKemVyb0JpZ0ludAkAtgIBAAAAFHByb2Nlc3NpbmdTdGFnZVRvdGFsAAAAFXByb2Nlc3NpbmdTdGFnZVNoYXJlcwABAQ5nZXROdW1iZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ9nZXROdW1iZXJPckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFA2tleQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldFN0cmluZ09yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUDa2V5CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEDYWJzAQN2YWwDCQC/AgIFCnplcm9CaWdJbnQFA3ZhbAkAvgIBBQN2YWwFA3ZhbAALa2V5TWF4RGVwdGgCDCVzX19tYXhEZXB0aAAPbWF4RGVwdGhEZWZhdWx0AB4ACG1heERlcHRoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU1heERlcHRoBQ9tYXhEZXB0aERlZmF1bHQBEWtleUZhY3RvcnlBZGRyZXNzAAIcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwARZmFjdG9yeUFkZHJlc3NTdHIJAQ9nZXRTdHJpbmdPckZhaWwBCQERa2V5RmFjdG9yeUFkZHJlc3MAAA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEWZhY3RvcnlBZGRyZXNzU3RyARJrZXlFbWlzc2lvbkFkZHJlc3MAAh0lcyVzX19jb25maWdfX2VtaXNzaW9uQWRkcmVzcwETa2V5TnVtVG9Vc2VyTWFwcGluZwEDbnVtCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIbnVtMnVzZXIJAMwIAgkApAMBBQNudW0FA25pbAUDU0VQABZrZXlSZWZlcnJhbFByb2dyYW1OYW1lCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgtwcm9ncmFtTmFtZQUDbmlsBQNTRVAAGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0AgZ3eGxvY2sAE3JlZmVycmFsUHJvZ3JhbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZQUacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQAF2tleVJlZmVycmFsTWluR1d4QW1vdW50CQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgxtaW5HV3hBbW91bnQFA25pbAUDU0VQABtyZWZlcnJhbE1pbkdXeEFtb3VudERlZmF1bHQJAGgCAPQDBQVNVUxUOAAUcmVmZXJyYWxNaW5HV3hBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUXa2V5UmVmZXJyYWxNaW5HV3hBbW91bnQFG3JlZmVycmFsTWluR1d4QW1vdW50RGVmYXVsdAAZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgIWcmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUDbmlsBQNTRVAAHXJlZmVycmVyUmV3YXJkUGVybWlsbGVEZWZhdWx0ADIAFnJlZmVycmVyUmV3YXJkUGVybWlsbGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUdcmVmZXJyZXJSZXdhcmRQZXJtaWxsZURlZmF1bHQAGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICFnJlZmVycmFsUmV3YXJkUGVybWlsbGUFA25pbAUDU0VQAB1yZWZlcnJhbFJld2FyZFBlcm1pbGxlRGVmYXVsdAAyABZyZWZlcnJhbFJld2FyZFBlcm1pbGxlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUFHXJlZmVycmFsUmV3YXJkUGVybWlsbGVEZWZhdWx0AQtrZXlSZWZlcnJlcgEPcmVmZXJyYWxBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCHJlZmVycmVyCQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwFA1NFUAASZW1pc3Npb25BZGRyZXNzU3RyCQEPZ2V0U3RyaW5nT3JGYWlsAQkBEmtleUVtaXNzaW9uQWRkcmVzcwAAEGVtaXNzaW9uQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEmVtaXNzaW9uQWRkcmVzc1N0cgANSWR4Q2ZnQXNzZXRJZAABABZJZHhDZmdQYWNlbWFrZXJBZGRyZXNzAAIAFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QAAwAOSWR4Q2ZnTWF4RGVwdGgABAEJa2V5Q29uZmlnAAIKJXNfX2NvbmZpZwEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAkAtQkCCQEPZ2V0U3RyaW5nT3JGYWlsAQkBCWtleUNvbmZpZwAFA1NFUAEMZm9ybWF0Q29uZmlnBAx3eEFzc2V0SWRTdHIabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIIbWF4RGVwdGgJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCBQx3eEFzc2V0SWRTdHIJAMwIAgUabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIJAMwIAgUaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIJAMwIAgkApAMBBQhtYXhEZXB0aAUDbmlsBQNTRVABFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABAhjZmdBcnJheQkBFXJlYWRDb25maWdBcnJheU9yRmFpbAAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFCGNmZ0FycmF5BRZJZHhDZmdCb29zdGluZ0NvbnRyYWN0Aihib29zdGluZyBjb250cmFjdCBhZGRyZXNzIGlzIG5vdCBkZWZpbmVkAR9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0AAIoJXMlc19fZ3d4UmV3YXJkRW1pc3Npb25QYXJ0X19zdGFydEhlaWdodAENa2V5VXNlcnNDb3VudAACDyVzX19uZXh0VXNlck51bQEWa2V5UmF0ZVBlckJsb2NrQ3VycmVudAACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAEUa2V5UG9vbFdlaWdodFZpcnR1YWwAAiAlcyVzX19wb29sV2VpZ2h0X19HV1h2aXJ0dWFsUE9PTAEUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAhUlc19fbmV4dFByb2Nlc3NlZFVzZXIBD2tleUxhdGVzdFBlcmlvZAACECVzX19sYXRlc3RQZXJpb2QBDWtleU5leHRQZXJpb2QAAg4lc19fbmV4dFBlcmlvZAESa2V5UHJvY2Vzc2luZ1N0YWdlAAITJXNfX3Byb2Nlc3NpbmdTdGFnZQEWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZAACFyVzX19uZXh0UHJvY2Vzc2VkUGVyaW9kARtrZXlOZXh0VW5sYWltZWRQZXJpb2RPZlVzZXIBCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWRfX25leHRDbGFpbWVkUGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4BQNuaWwFA1NFUAEca2V5TGFzdFByb2Nlc3NlZFBlcmlvZE9mVXNlcgEJdXNlckluZGV4CQC5CQIJAMwIAgIZJXMlZF9fbGFzdFByb2Nlc3NlZFBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAUDbmlsBQNTRVABEmtleUhlaWdodEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fc3RhcnRIZWlnaHRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIXJXMlZF9fYXV4RW1pc3Npb25SZXdhcmQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fdG90YWxBbW91bnRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARFrZXlMYXN0UGF5b3V0SW5mbwACEiVzX19sYXN0UGF5b3V0SW5mbwEQUGVyaW9kUGF5b3V0SW5mbwMGcGVyaW9kDW1hdGNoZXJSZXdhcmQOZW1pc3Npb25SZXdhcmQJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBBQZwZXJpb2QJAMwIAgkApAMBBQ1tYXRjaGVyUmV3YXJkCQDMCAIJAKQDAQUOZW1pc3Npb25SZXdhcmQFA25pbAUDU0VQARRrZXlQYXlvdXRIaXN0b3J5SW5mbwEGcGVyaW9kCQC5CQIJAMwIAgIYJXMlcyVkX19wYXlvdXRzX19oaXN0b3J5CQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEXa2V5VG90YWxXZWlnaHRGb3JQZXJpb2QBBnBlcmlvZAkAuQkCCQDMCAICGiVzJWRfX3RvdGFsV2VpZ2h0Rm9yUGVyaW9kCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEWa2V5VXNlcktWYWx1ZUZvclBlcmlvZAIGcGVyaW9kCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4CQDMCAICAWsJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgZwZXJpb2QJdXNlckluZGV4CQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQl1c2VySW5kZXgJAMwIAgIBYgkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABFmtleVVzZXJXZWlnaHRGb3JQZXJpb2QCBnBlcmlvZAl1c2VySW5kZXgJALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAkAzAgCAgZ3ZWlnaHQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgIEJXMlcwkAzAgCAgZjb25maWcJAMwIAgIYcmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAAecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsCQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBG2tleVJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwABDEhpc3RvcnlFbnRyeQcEdHlwZQR1c2VyEWFtb3VudEZyb21NYXRjaGVyEmFtb3VudEZyb21FbWlzc2lvbg1jdXJyZW50UGVyaW9kDGxhdGVzdFBlcmlvZAFpBApoaXN0b3J5S0VZCQC5CQIJAMwIAgIRJXMlcyVzJXNfX2hpc3RvcnkJAMwIAgUEdHlwZQkAzAgCBQR1c2VyCQDMCAIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAUDbmlsBQNTRVAEC2hpc3RvcnlEQVRBCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFEWFtb3VudEZyb21NYXRjaGVyCQDMCAIJAKQDAQUSYW1vdW50RnJvbUVtaXNzaW9uCQDMCAIJAKQDAQUNY3VycmVudFBlcmlvZAkAzAgCCQCkAwEFDGxhdGVzdFBlcmlvZAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIFCmhpc3RvcnlLRVkFC2hpc3RvcnlEQVRBARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpBAJwZAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFAnBkAwkAAQIFByRtYXRjaDACBFVuaXQDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUCcGQJAAIBAgtNYXRjaCBlcnJvcgEOY2FsY1VzZXJXZWlnaHQEF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzD2hlaWdodEZvclBlcmlvZAZwZXJpb2QJdXNlckluZGV4BAVrTGFzdAkBHGtleUxhc3RQcm9jZXNzZWRQZXJpb2RPZlVzZXIBBQl1c2VySW5kZXgEBGtLZXkJARZrZXlVc2VyS1ZhbHVlRm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgEBGtSYXcJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MFBGtLZXkEC2tVc2VyV2VpZ2h0CQEWa2V5VXNlcldlaWdodEZvclBlcmlvZAIFBnBlcmlvZAUJdXNlckluZGV4AwkBCWlzRGVmaW5lZAEFBGtSYXcEAWsJAQV2YWx1ZQEFBGtSYXcEAWIJAQV2YWx1ZQEJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgEAXcJAGQCCQBoAgUBawUPaGVpZ2h0Rm9yUGVyaW9kBQFiAwkAZgIFAXcAAAkAlAoCCQBpAgUBdwUFU0NBTEUJAMwIAgkBDEludGVnZXJFbnRyeQIFBWtMYXN0BQZwZXJpb2QJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tVc2VyV2VpZ2h0BQF3BQNuaWwJAJQKAgAABQNuaWwEAXAJAJoIAgUEdGhpcwUFa0xhc3QDAwkBCWlzRGVmaW5lZAEFAXAJAGcCBQZwZXJpb2QJAQV2YWx1ZQEFAXAHBAJwdgkBBXZhbHVlAQUBcAQBawkBBXZhbHVlAQkAmggCBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBFmtleVVzZXJLVmFsdWVGb3JQZXJpb2QCBQJwdgUJdXNlckluZGV4BAFiCQEFdmFsdWUBCQCaCAIFF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQEWa2V5VXNlckJWYWx1ZUZvclBlcmlvZAIFAnB2BQl1c2VySW5kZXgEAXcJAGQCCQBoAgUBawUPaGVpZ2h0Rm9yUGVyaW9kBQFiAwkAZgIFAXcAAAkAlAoCCQBpAgUBdwUFU0NBTEUJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tVc2VyV2VpZ2h0BQF3BQNuaWwJAJQKAgAABQNuaWwJAJQKAgAABQNuaWwBFmNhbGNVc2VyV2VpZ2h0Rm9yQ2xhaW0EF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzD2hlaWdodEZvclBlcmlvZAZwZXJpb2QJdXNlckluZGV4BAtrVXNlcldlaWdodAkBFmtleVVzZXJXZWlnaHRGb3JQZXJpb2QCBQZwZXJpb2QFCXVzZXJJbmRleAQQdXNlcldlaWdodE9yVW5pdAkAnwgBBQtrVXNlcldlaWdodAQHJG1hdGNoMAUQdXNlcldlaWdodE9yVW5pdAMJAAECBQckbWF0Y2gwAgRVbml0AAADCQABAgUHJG1hdGNoMAIDSW50BAF3BQckbWF0Y2gwCQBpAgUBdwUFU0NBTEUJAAIBAgtNYXRjaCBlcnJvcgEVZ2V0VXNlckluZGV4QnlBZGRyZXNzAhpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgt1c2VyQWRkcmVzcwQDa2V5CQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIdXNlcjJudW0JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQCQENcGFyc2VJbnRWYWx1ZQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQEHQWRkcmVzcwEJANkEAQUaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIFA2tleQkArAICCQCsAgIJAKwCAgINVXNlciBhZGRyZXNzIAULdXNlckFkZHJlc3MCLSBpcyBub3QgZm91bmQgaW4gYm9vc3RpbmcgY29udHJhY3QgZGF0YSwga2V5PQUDa2V5AQpuZXh0UGVyaW9kAAkBDmdldE51bWJlckJ5S2V5AQkBDWtleU5leHRQZXJpb2QAAQtpbnZva2VDbGFpbQYQYm9vc3RpbmdDb250cmFjdAZwZXJpb2QEdXNlcgVkZXB0aBB0b3RhbEZyb21NYXRjaGVyEXRvdGFsRnJvbUVtaXNzaW9uBAZyZXN1bHQJAPwHBAUEdGhpcwIOY2xhaW1OZXh0QmF0Y2gJAMwIAgUQYm9vc3RpbmdDb250cmFjdAkAzAgCBQZwZXJpb2QJAMwIAgUEdXNlcgkAzAgCBQVkZXB0aAkAzAgCBRB0b3RhbEZyb21NYXRjaGVyCQDMCAIFEXRvdGFsRnJvbUVtaXNzaW9uBQNuaWwFA25pbAMJAAACBQZyZXN1bHQFBnJlc3VsdAQHJG1hdGNoMAUGcmVzdWx0AwkAAQIFByRtYXRjaDACDyhJbnQsIEludCwgSW50KQQBcgUHJG1hdGNoMAUBcgkAAgECF0luY29ycmVjdCBpbnZva2UgcmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ1jbGFpbUludGVybmFsBhBib29zdGluZ0NvbnRyYWN0DWN1cnJlbnRQZXJpb2QLY3VycmVudFVzZXIFZGVwdGgWdXNlckFjY3VtdWxhdGVkTWF0Y2hlchd1c2VyQWNjdW11bGF0ZWRFbWlzc2lvbgQXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJAQdBZGRyZXNzAQUQYm9vc3RpbmdDb250cmFjdAQMbGF0ZXN0UGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZAAEC3RvdGFsV2VpZ2h0CQEOZ2V0TnVtYmVyQnlLZXkBCQEXa2V5VG90YWxXZWlnaHRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBA9oZWlnaHRGb3JQZXJpb2QJAQ5nZXROdW1iZXJCeUtleQEJARJrZXlIZWlnaHRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBAp1c2VyV2VpZ2h0CQEWY2FsY1VzZXJXZWlnaHRGb3JDbGFpbQQFF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzBQ9oZWlnaHRGb3JQZXJpb2QFDWN1cnJlbnRQZXJpb2QFC2N1cnJlbnRVc2VyBBp1c2VyQW1vdW50TWF0Y2hlckZvclBlcmlvZAkAawMJAQ5nZXROdW1iZXJCeUtleQEJARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QFCnVzZXJXZWlnaHQFC3RvdGFsV2VpZ2h0BBt1c2VyQW1vdW50RW1pc3Npb25Gb3JQZXJpb2QJAGsDCQEOZ2V0TnVtYmVyQnlLZXkBCQEda2V5QXV4RW1pc3Npb25SZXdhcmRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBQp1c2VyV2VpZ2h0BQt0b3RhbFdlaWdodAMDCQBnAgAABQVkZXB0aAYJAGcCCQBkAgUNY3VycmVudFBlcmlvZAABBQxsYXRlc3RQZXJpb2QJAJUKAwkAZAIFDWN1cnJlbnRQZXJpb2QAAQkAZAIFFnVzZXJBY2N1bXVsYXRlZE1hdGNoZXIFGnVzZXJBbW91bnRNYXRjaGVyRm9yUGVyaW9kCQBkAgUXdXNlckFjY3VtdWxhdGVkRW1pc3Npb24FG3VzZXJBbW91bnRFbWlzc2lvbkZvclBlcmlvZAkBC2ludm9rZUNsYWltBgUQYm9vc3RpbmdDb250cmFjdAkAZAIFDWN1cnJlbnRQZXJpb2QAAQULY3VycmVudFVzZXIJAGUCBQVkZXB0aAABCQBkAgUWdXNlckFjY3VtdWxhdGVkTWF0Y2hlcgUadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QJAGQCBRd1c2VyQWNjdW11bGF0ZWRFbWlzc2lvbgUbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kARFjb21tb25DbGFpbVJld2FyZAILdXNlckFkZHJlc3MLc3RhcnRQZXJpb2QECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAQHdXNlcklkeAkBFWdldFVzZXJJbmRleEJ5QWRkcmVzcwIJAJEDAgUIY2ZnQXJyYXkFFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QFC3VzZXJBZGRyZXNzBA1jdXJyZW50UGVyaW9kAwkBAiE9AgULc3RhcnRQZXJpb2QFBHVuaXQJAQV2YWx1ZQEFC3N0YXJ0UGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEba2V5TmV4dFVubGFpbWVkUGVyaW9kT2ZVc2VyAQUHdXNlcklkeAQTbmV4dFByb2Nlc3NlZFBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBFmtleU5leHRQcm9jZXNzZWRQZXJpb2QAAwkAZwIFDWN1cnJlbnRQZXJpb2QFE25leHRQcm9jZXNzZWRQZXJpb2QJAAIBAhBOb3RoaW5nIHRvIGNsYWltBBBib29zdGluZ0NvbnRyYWN0CQDZBAEJAJEDAgUIY2ZnQXJyYXkFFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QEDSR0MDEyNTY5MTI2OTUJAQ1jbGFpbUludGVybmFsBgUQYm9vc3RpbmdDb250cmFjdAUNY3VycmVudFBlcmlvZAUHdXNlcklkeAUJVVNFUkRFUFRIAAAAAAQGcGVyaW9kCAUNJHQwMTI1NjkxMjY5NQJfMQQRYW1vdW50RnJvbU1hdGNoZXIIBQ0kdDAxMjU2OTEyNjk1Al8yBBJhbW91bnRGcm9tRW1pc3Npb24IBQ0kdDAxMjU2OTEyNjk1Al8zCQCYCgYFBnBlcmlvZAURYW1vdW50RnJvbU1hdGNoZXIFEmFtb3VudEZyb21FbWlzc2lvbgUHdXNlcklkeAUIY2ZnQXJyYXkFE25leHRQcm9jZXNzZWRQZXJpb2QXAWkBFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkCC3VzZXJBZGRyZXNzDmdXeEFtb3VudFN0YXJ0BAhyZWZlcnJlcgkAnQgCBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJAQtrZXlSZWZlcnJlcgEFC3VzZXJBZGRyZXNzBBFhY3RpdmVSZWZlcnJhbEludgMJAAACBQhyZWZlcnJlcgUEdW5pdAUEdW5pdAkA/AcEBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCCQBnAgUOZ1d4QW1vdW50U3RhcnQFFHJlZmVycmFsTWluR1d4QW1vdW50BQNuaWwFA25pbAMJAAACBRFhY3RpdmVSZWZlcnJhbEludgURYWN0aXZlUmVmZXJyYWxJbnYJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmZpbmFsaXplSGVscGVyAAQPcHJvY2Vzc2luZ1N0YWdlCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlQcm9jZXNzaW5nU3RhZ2UABRRwcm9jZXNzaW5nU3RhZ2VUb3RhbAQNY3VycmVudFBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBFmtleU5leHRQcm9jZXNzZWRQZXJpb2QABAtjdXJyZW50VXNlcgkBDmdldE51bWJlckJ5S2V5AQkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAQMbGF0ZXN0UGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEPa2V5TGF0ZXN0UGVyaW9kAAQKdXNlcnNDb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCCQEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAJAQ1rZXlVc2Vyc0NvdW50AAAABA50b3RhbFdlaWdodEtleQkBF2tleVRvdGFsV2VpZ2h0Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAQLdG90YWxXZWlnaHQJAQ5nZXROdW1iZXJCeUtleQEJARdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QED2hlaWdodEZvclBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBEmtleUhlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QDCQBmAgUNY3VycmVudFBlcmlvZAUMbGF0ZXN0UGVyaW9kCQCUCgIFA25pbAcDCQAAAgUPcHJvY2Vzc2luZ1N0YWdlBRRwcm9jZXNzaW5nU3RhZ2VUb3RhbAQNJHQwMTQwOTUxNDIxMQkBDmNhbGNVc2VyV2VpZ2h0BAkBFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABQ9oZWlnaHRGb3JQZXJpb2QFDWN1cnJlbnRQZXJpb2QFC2N1cnJlbnRVc2VyBAp1c2VyV2VpZ2h0CAUNJHQwMTQwOTUxNDIxMQJfMQQLdXNlckFjdGlvbnMIBQ0kdDAxNDA5NTE0MjExAl8yBA50b3RhbFdlaWdodE5ldwkAZAIFC3RvdGFsV2VpZ2h0BQp1c2VyV2VpZ2h0BBFwcm9jZXNzaW5nQWN0aW9ucwMJAGYCCQBlAgUKdXNlcnNDb3VudAABBQtjdXJyZW50VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAkAZAIFC2N1cnJlbnRVc2VyAAEFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmtleVByb2Nlc3NpbmdTdGFnZQAFFXByb2Nlc3NpbmdTdGFnZVNoYXJlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAAABQNuaWwJAJQKAgkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFDnRvdGFsV2VpZ2h0S2V5BQ50b3RhbFdlaWdodE5ldwUDbmlsBRFwcm9jZXNzaW5nQWN0aW9ucwULdXNlckFjdGlvbnMGAwkAAAIFD3Byb2Nlc3NpbmdTdGFnZQUVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzBAp1c2VyV2VpZ2h0CQEWY2FsY1VzZXJXZWlnaHRGb3JDbGFpbQQJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAUPaGVpZ2h0Rm9yUGVyaW9kBQ1jdXJyZW50UGVyaW9kBQtjdXJyZW50VXNlcgQadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QJAGsDCQEOZ2V0TnVtYmVyQnlLZXkBCQEXa2V5VG90YWxBbW91bnRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBQp1c2VyV2VpZ2h0BQt0b3RhbFdlaWdodAQbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kCQBrAwkBDmdldE51bWJlckJ5S2V5AQkBHWtleUF1eEVtaXNzaW9uUmV3YXJkRm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAUKdXNlcldlaWdodAULdG90YWxXZWlnaHQED3VzZXJUb3RhbEFtb3VudAkAZAIFG3VzZXJBbW91bnRFbWlzc2lvbkZvclBlcmlvZAUadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QEC3VzZXJBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MykCCQEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAJARNrZXlOdW1Ub1VzZXJNYXBwaW5nAQULY3VycmVudFVzZXIECHJlZmVycmVyCQCdCAIFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAkBC2tleVJlZmVycmVyAQULdXNlckFkZHJlc3MEEWFjdGl2ZVJlZmVycmFsSW52AwkAAAIFCHJlZmVycmVyBQR1bml0BQR1bml0CQD8BwQFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCBRNyZWZlcnJhbFByb2dyYW1OYW1lCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJAGcCBQp1c2VyV2VpZ2h0BRRyZWZlcnJhbE1pbkdXeEFtb3VudAUDbmlsBQNuaWwDCQAAAgURYWN0aXZlUmVmZXJyYWxJbnYFEWFjdGl2ZVJlZmVycmFsSW52BAtyZWZlcnJhbEludgMDCQAAAgUIcmVmZXJyZXIFBHVuaXQGCQBmAgUUcmVmZXJyYWxNaW5HV3hBbW91bnQFCnVzZXJXZWlnaHQFBHVuaXQEDnJlZmVycmVyUmV3YXJkCQBrAwUPdXNlclRvdGFsQW1vdW50BRZyZWZlcnJlclJld2FyZFBlcm1pbGxlBQVTQ0FMRQQOcmVmZXJyYWxSZXdhcmQJAGsDBQ91c2VyVG90YWxBbW91bnQFFnJlZmVycmFsUmV3YXJkUGVybWlsbGUFBVNDQUxFCQD8BwQFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAIMaW5jVW5jbGFpbWVkCQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUOcmVmZXJyZXJSZXdhcmQJAMwIAgUOcmVmZXJyYWxSZXdhcmQFA25pbAUDbmlsAwkAAAIFC3JlZmVycmFsSW52BQtyZWZlcnJhbEludgQRcHJvY2Vzc2luZ0FjdGlvbnMDCQBmAgkAZQIFCnVzZXJzQ291bnQAAQULY3VycmVudFVzZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlOZXh0UHJvY2Vzc2VkVXNlcgAJAGQCBQtjdXJyZW50VXNlcgABBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAkAZAIFDWN1cnJlbnRQZXJpb2QAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAAACQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlQcm9jZXNzaW5nU3RhZ2UABQNuaWwJAJQKAgURcHJvY2Vzc2luZ0FjdGlvbnMGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIYaW52YWxpZCBwcm9jZXNzaW5nIHN0YWdlAWkBD2ZpbmFsaXplV3JhcHBlcgEHY291bnRlcgQGcmVzdWx0CgABQAkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwDCQABAgUBQAIHQm9vbGVhbgUBQAkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwIOZmluYWxpemVIZWxwZXIFA25pbAUDbmlsAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFBnJlc3VsdAUGcmVzdWx0AwkBASEBBQZyZXN1bHQDCQAAAgUHY291bnRlcgUIbWF4RGVwdGgJAAIBAhJOb3RoaW5nIHRvIHByb2Nlc3MJAJQKAgUDbmlsBQR1bml0AwkAZgIFB2NvdW50ZXIAAAkAlAoCBQNuaWwJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIJAGUCBQdjb3VudGVyAAEFA25pbAUDbmlsCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAR1wcm9jZXNzUGVuZGluZ1BlcmlvZHNBbmRVc2VycwAJAJQKAgUDbmlsCQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCBQhtYXhEZXB0aAUDbmlsBQNuaWwBaQEHZGVwb3NpdAAECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBCQDZBAEJAJEDAgUIY2ZnQXJyYXkFFklkeENmZ1BhY2VtYWtlckFkZHJlc3MJAAIBAhRXcm9uZyBjYWxsZXIgYWRkcmVzcwQHYXNzZXRJZAkBBXZhbHVlAQgJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkBAiE9AgUHYXNzZXRJZAkA2QQBCQCRAwIFCGNmZ0FycmF5BQ1JZHhDZmdBc3NldElkCQACAQITV3JvbmcgcGF5bWVudCBhc3NldAQGcGVyaW9kCQEKbmV4dFBlcmlvZAAEBmRlbHRhSAkAZQIFBmhlaWdodAkBD2dldE51bWJlck9yRmFpbAEJAR9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0AAQMZW1pc3Npb25SYXRlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUQZW1pc3Npb25Db250cmFjdAkBFmtleVJhdGVQZXJCbG9ja0N1cnJlbnQACQCsAgIJAKwCAgIcbWFuZGF0b3J5IGVtaXNzaW9uX2NvbnRyYWN0LgkBFmtleVJhdGVQZXJCbG9ja0N1cnJlbnQAAg8gaXMgbm90IGRlZmluZWQEBndlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFD2ZhY3RvcnlDb250cmFjdAkBFGtleVBvb2xXZWlnaHRWaXJ0dWFsAAkArAICCQCsAgICG21hbmRhdG9yeSBmYWN0b3J5X2NvbnRyYWN0LgkBFGtleVBvb2xXZWlnaHRWaXJ0dWFsAAIPIGlzIG5vdCBkZWZpbmVkBAlhdXhBbW91bnQJAGsDCQBoAgUGZGVsdGFIBQZ3ZWlnaHQFDGVtaXNzaW9uUmF0ZQUFTVVMVDgEAmVtCQD8BwQFEGVtaXNzaW9uQ29udHJhY3QCBGVtaXQJAMwIAgUJYXV4QW1vdW50BQNuaWwFA25pbAMJAAACBQJlbQUCZW0EC21hdGNoZXJQYXJ0CAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQKcGF5b3V0SW5mbwkBEFBlcmlvZFBheW91dEluZm8DBQZwZXJpb2QFC21hdGNoZXJQYXJ0BQlhdXhBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlMYXRlc3RQZXJpb2QABQZwZXJpb2QJAMwIAgkBDEludGVnZXJFbnRyeQIJARJrZXlIZWlnaHRGb3JQZXJpb2QBBQZwZXJpb2QFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBHWtleUF1eEVtaXNzaW9uUmV3YXJkRm9yUGVyaW9kAQUGcGVyaW9kBQlhdXhBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAR9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0AAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEXa2V5VG90YWxBbW91bnRGb3JQZXJpb2QBBQZwZXJpb2QFC21hdGNoZXJQYXJ0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5TmV4dFBlcmlvZAAJAGQCBQZwZXJpb2QAAQkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5TGFzdFBheW91dEluZm8ABQpwYXlvdXRJbmZvCQDMCAIJAQtTdHJpbmdFbnRyeQIJARRrZXlQYXlvdXRIaXN0b3J5SW5mbwEFBnBlcmlvZAUKcGF5b3V0SW5mbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNsYWltTmV4dEJhdGNoBhBib29zdGluZ0NvbnRyYWN0DWN1cnJlbnRQZXJpb2QLY3VycmVudFVzZXIFZGVwdGgQdG90YWxGcm9tTWF0Y2hlchF0b3RhbEZyb21FbWlzc2lvbgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECJFNob3VsZCBiZSBjYWxsZWQgYnkgdGhpcyBzY3JpcHQgb25seQQPcGVyaW9kQW5kVG90YWxzCQENY2xhaW1JbnRlcm5hbAYFEGJvb3N0aW5nQ29udHJhY3QFDWN1cnJlbnRQZXJpb2QFC2N1cnJlbnRVc2VyBQVkZXB0aAUQdG90YWxGcm9tTWF0Y2hlcgURdG90YWxGcm9tRW1pc3Npb24JAJQKAgUDbmlsBQ9wZXJpb2RBbmRUb3RhbHMBaQELY2xhaW1SZXdhcmQABAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQNJHQwMTk3NDUxOTg3MQkBEWNvbW1vbkNsYWltUmV3YXJkAgUHYWRkcmVzcwUEdW5pdAQGcGVyaW9kCAUNJHQwMTk3NDUxOTg3MQJfMQQRYW1vdW50RnJvbU1hdGNoZXIIBQ0kdDAxOTc0NTE5ODcxAl8yBBJhbW91bnRGcm9tRW1pc3Npb24IBQ0kdDAxOTc0NTE5ODcxAl8zBAd1c2VySWR4CAUNJHQwMTk3NDUxOTg3MQJfNAQIY2ZnQXJyYXkIBQ0kdDAxOTc0NTE5ODcxAl81BBNuZXh0UHJvY2Vzc2VkUGVyaW9kCAUNJHQwMTk3NDUxOTg3MQJfNgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEba2V5TmV4dFVubGFpbWVkUGVyaW9kT2ZVc2VyAQUHdXNlcklkeAUGcGVyaW9kCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZAIFEWFtb3VudEZyb21NYXRjaGVyBRJhbW91bnRGcm9tRW1pc3Npb24JANkEAQkAkQMCBQhjZmdBcnJheQUNSWR4Q2ZnQXNzZXRJZAkAzAgCCQEMSGlzdG9yeUVudHJ5BwIFY2xhaW0FB2FkZHJlc3MFEWFtb3VudEZyb21NYXRjaGVyBRJhbW91bnRGcm9tRW1pc3Npb24FBnBlcmlvZAUTbmV4dFByb2Nlc3NlZFBlcmlvZAUBaQUDbmlsCQDMCAIFEWFtb3VudEZyb21NYXRjaGVyCQDMCAIFEmFtb3VudEZyb21FbWlzc2lvbgUDbmlsAWkBE2NsYWltUmV3YXJkUkVBRE9OTFkBB2FkZHJlc3MEDGNsYWltUmVzdWx0cwkBEWNvbW1vbkNsYWltUmV3YXJkAgUHYWRkcmVzcwUEdW5pdAQGYW1vdW50CQBkAggFDGNsYWltUmVzdWx0cwJfMggFDGNsYWltUmVzdWx0cwJfMwkAlAoCBQNuaWwFBmFtb3VudAFpARxjbGFpbVJld2FyZFBhZ2luYXRlZFJFQURPTkxZAgdhZGRyZXNzC3N0YXJ0UGVyaW9kBA0kdDAyMDYxNDIwNzMxCQERY29tbW9uQ2xhaW1SZXdhcmQCBQdhZGRyZXNzAwkAZgIAAAULc3RhcnRQZXJpb2QFBHVuaXQFC3N0YXJ0UGVyaW9kBAZwZXJpb2QIBQ0kdDAyMDYxNDIwNzMxAl8xBAtmcm9tTWF0Y2hlcggFDSR0MDIwNjE0MjA3MzECXzIEDGZyb21FbWlzc2lvbggFDSR0MDIwNjE0MjA3MzECXzMEBmFtb3VudAkAZAIFC2Zyb21NYXRjaGVyBQxmcm9tRW1pc3Npb24JAJQKAgUDbmlsCQCUCgIFBmFtb3VudAUGcGVyaW9kAWkBG2NsYWltUmV3YXJkRGV0YWlsZWRSRUFET05MWQEHYWRkcmVzcwQNJHQwMjA5ODIyMTA1NwkBEWNvbW1vbkNsYWltUmV3YXJkAgUHYWRkcmVzcwUEdW5pdAQHaWdub3JlZAgFDSR0MDIwOTgyMjEwNTcCXzEEC2Zyb21NYXRjaGVyCAUNJHQwMjA5ODIyMTA1NwJfMgQMZnJvbUVtaXNzaW9uCAUNJHQwMjA5ODIyMTA1NwJfMwkAlAoCBQNuaWwJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBCQBkAgULZnJvbU1hdGNoZXIFDGZyb21FbWlzc2lvbgkAzAgCCQCkAwEFC2Zyb21NYXRjaGVyCQDMCAIJAKQDAQUMZnJvbUVtaXNzaW9uBQNuaWwFA1NFUAFpASRjbGFpbVJld2FyZERldGFpbGVkUGFnaW5hdGVkUkVBRE9OTFkCB2FkZHJlc3MLc3RhcnRQZXJpb2QEDSR0MDIxMzUzMjE0NzAJARFjb21tb25DbGFpbVJld2FyZAIFB2FkZHJlc3MDCQBmAgAABQtzdGFydFBlcmlvZAUEdW5pdAULc3RhcnRQZXJpb2QEBnBlcmlvZAgFDSR0MDIxMzUzMjE0NzACXzEEC2Zyb21NYXRjaGVyCAUNJHQwMjEzNTMyMTQ3MAJfMgQMZnJvbUVtaXNzaW9uCAUNJHQwMjEzNTMyMTQ3MAJfMwkAlAoCBQNuaWwJAJQKAgkAuQkCCQDMCAICBiVkJWQlZAkAzAgCCQCkAwEJAGQCBQtmcm9tTWF0Y2hlcgUMZnJvbUVtaXNzaW9uCQDMCAIJAKQDAQULZnJvbU1hdGNoZXIJAMwIAgkApAMBBQxmcm9tRW1pc3Npb24FA25pbAUDU0VQBQZwZXJpb2QBaQEdbGF0ZXN0RmluYWxpemVkUGVyaW9kUkVBRE9OTFkBB2FkZHJlc3MJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlMYXRlc3RQZXJpb2QAAP///////////wEBaQEhbGF0ZXN0RmluYWxpemVkUGVyaW9kSW5mb1JFQURPTkxZAQdhZGRyZXNzCQCUCgIFA25pbAkBDmdldFN0cmluZ0J5S2V5AQkBEWtleUxhc3RQYXlvdXRJbmZvAAFpARVjYWxjR3d4UGFyYW1zUkVBRE9OTFkDDmd3eEFtb3VudFN0YXJ0D2xvY2tTdGFydEhlaWdodBJsb2NrRHVyYXRpb25CbG9ja3MEDWxvY2tFbmRIZWlnaHQJAGQCBQ9sb2NrU3RhcnRIZWlnaHQFEmxvY2tEdXJhdGlvbkJsb2NrcwQMc2NhbGU4UGFyYW1LCQEBLQEJAGsDBQ5nd3hBbW91bnRTdGFydAUFU0NBTEUFEmxvY2tEdXJhdGlvbkJsb2NrcwQMc2NhbGU4UGFyYW1CCQBoAgkAawMFDmd3eEFtb3VudFN0YXJ0BQVTQ0FMRQUSbG9ja0R1cmF0aW9uQmxvY2tzBQ1sb2NrRW5kSGVpZ2h0CQCUCgIFA25pbAkAzAgCBQxzY2FsZThQYXJhbUsJAMwIAgUMc2NhbGU4UGFyYW1CCQDMCAIJAQpuZXh0UGVyaW9kAAUDbmlsAWkBGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZAwx3eExvY2tBbW91bnQMbG9ja0R1cmF0aW9uD21heExvY2tEdXJhdGlvbgQHY29lZmZYOAkAawMFDGxvY2tEdXJhdGlvbgUFTVVMVDgFD21heExvY2tEdXJhdGlvbgQOZ1d4QW1vdW50U3RhcnQJAGsDBQx3eExvY2tBbW91bnQFB2NvZWZmWDgFBU1VTFQ4CQCUCgIFA25pbAkAzAgCBQ5nV3hBbW91bnRTdGFydAUDbmlsAWkBC2NvbnN0cnVjdG9yBAx3eEFzc2V0SWRTdHIabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIIbWF4RGVwdGgDCQECIT0CBQR0aGlzCAUBaQZjYWxsZXIJAAIBAg5ub3QgYXV0aG9yaXplZAkAzAgCCQELU3RyaW5nRW50cnkCCQEJa2V5Q29uZmlnAAkBDGZvcm1hdENvbmZpZwQFDHd4QXNzZXRJZFN0cgUabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIFGmJvb3N0aW5nQ29udHJhY3RBZGRyZXNzU3RyBQhtYXhEZXB0aAUDbmlsAWkBDWNvbnN0cnVjdG9yVjIBDmZhY3RvcnlBZGRyZXNzAwkBAiE9AgUEdGhpcwgFAWkGY2FsbGVyCQACAQIObm90IGF1dGhvcml6ZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleUZhY3RvcnlBZGRyZXNzAAUOZmFjdG9yeUFkZHJlc3MFA25pbAFpAQ1jb25zdHJ1Y3RvclYzAQ9lbWlzc2lvbkFkZHJlc3MDCQECIT0CBQR0aGlzCAUBaQZjYWxsZXIJAAIBAg5ub3QgYXV0aG9yaXplZAQQaW5pdExhdGVzdFBlcmlvZAMJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMJAQ9rZXlMYXRlc3RQZXJpb2QABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlMYXRlc3RQZXJpb2QAAP///////////wEFA25pbAkAzQgCBRBpbml0TGF0ZXN0UGVyaW9kCQELU3RyaW5nRW50cnkCCQESa2V5RW1pc3Npb25BZGRyZXNzAAUPZW1pc3Npb25BZGRyZXNzAWkBFW9uRW1pc3Npb25Gb3JHd3hTdGFydAADCQECIT0CCAUBaQZjYWxsZXIFD2ZhY3RvcnlDb250cmFjdAkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQABQZoZWlnaHQFA25pbAFpASNsYXRlc3RQZXJpb2RFbWlzc2lvblJld2FyZHNSRUFET05MWQEHYWRkcmVzcwQGcGVyaW9kCQEKbmV4dFBlcmlvZAAJAJQKAgUDbmlsCQDMCAIJAQ5nZXROdW1iZXJCeUtleQEJAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEFBnBlcmlvZAUDbmlsAWkBBWNhbGNEBQt4MUJpZ0ludFN0cgt4MkJpZ0ludFN0cgxhbXBCaWdJbnRTdHITYVByZWNpc2lvbkJpZ0ludFN0chh0YXJnZXRQcmVjaXNpb25CaWdJbnRTdHIEBm5Db2lucwkAtgIBAAIECmFQcmVjaXNpb24JAKcDAQUTYVByZWNpc2lvbkJpZ0ludFN0cgQPdGFyZ2V0UHJlY2lzaW9uCQCnAwEFGHRhcmdldFByZWNpc2lvbkJpZ0ludFN0cgQCeDEJAKcDAQULeDFCaWdJbnRTdHIEAngyCQCnAwEFC3gyQmlnSW50U3RyBANhbXAJALkCAgkApwMBBQxhbXBCaWdJbnRTdHIFCmFQcmVjaXNpb24EAXMJALcCAgUCeDEFAngyAwkAAAIFAXMFCnplcm9CaWdJbnQJAJQKAgUDbmlsCQCmAwEFCnplcm9CaWdJbnQEA2FubgkAuQICBQNhbXAFBm5Db2lucwQDYXJyCQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwUDbmlsCgEEY2FsYwIDYWNjA2N1cgQNJHQwMjQ5NTkyNTE0OAUDYWNjBAFkCAUNJHQwMjQ5NTkyNTE0OAJfMQQFZFByZXYIBQ0kdDAyNDk1OTI1MTQ4Al8yBAJkcAkAugICCQC5AgIJALkCAgUBZAUBZAUBZAkAuQICCQC5AgIJALkCAgUCeDEFAngyBQZuQ29pbnMFBm5Db2lucwQFZE5leHQJALoCAgkAuQICCQC3AgIJALoCAgkAuQICBQNhbm4FAXMFCmFQcmVjaXNpb24JALkCAgUCZHAFBm5Db2lucwUBZAkAtwICCQC6AgIJALkCAgkAuAICBQNhbm4FCmFQcmVjaXNpb24FAWQFCmFQcmVjaXNpb24JALkCAgkAtwICBQZuQ29pbnMJALYCAQABBQJkcAkAlAoCBQVkTmV4dAUBZAQNJHQwMjUzNjEyNTQxMQoAAiRsBQNhcnIKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFAXMFBHVuaXQKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGNhbGMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDcJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwQFZE5leHQIBQ0kdDAyNTM2MTI1NDExAl8xBAVkUHJldggFDSR0MDI1MzYxMjU0MTECXzIEBWREaWZmCQEDYWJzAQkAuAICBQVkTmV4dAkBBXZhbHVlAQUFZFByZXYDCQDAAgIFD3RhcmdldFByZWNpc2lvbgUFZERpZmYJAJQKAgUDbmlsCQCmAwEFBWROZXh0CQACAQkArAICAh1EIGNhbGN1bGF0aW9uIGVycm9yLCBkRGlmZiA9IAkApgMBBQVkRGlmZgFpAQpzZXRNYW5hZ2VyARdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBVjaGVja01hbmFnZXJQdWJsaWNLZXkJANkEAQUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAgUVY2hlY2tNYW5hZ2VyUHVibGljS2V5BRVjaGVja01hbmFnZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jb25maXJtTWFuYWdlcgAEAnBtCQEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAVoYXNQTQMJAQlpc0RlZmluZWQBBQJwbQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUFaGFzUE0FBWhhc1BNBAdjaGVja1BNAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCcG0GCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFB2NoZWNrUE0FB2NoZWNrUE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2tleU1hbmFnZXJQdWJsaWNLZXkACQDYBAEJAQV2YWx1ZQEFAnBtCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tleYpHRLM=", "chainId": 84, "height": 2167017, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: aLSqKiHxtoT4rdT91jZAVZ3pSyjifCEEgVfR77CxoUu Next: 9rLwGED59tdymuYLAbVXxJwupzQpEqdMW6uLfMLLVeVb Diff:
OldNewDifferences
340340
341341
342342 @Callable(aH)
343+func updateReferralActivity (bi,bE) = {
344+ let bF = getString(az, J(bi))
345+ let bG = if ((bF == unit))
346+ then unit
347+ else invoke(az, "updateReferralActivity", [z, bi, (bE >= C)], nil)
348+ if ((bG == bG))
349+ then $Tuple2(nil, unit)
350+ else throw("Strict value is not equal to itself.")
351+ }
352+
353+
354+
355+@Callable(aH)
343356 func finalizeHelper () = {
344- let bE = valueOrElse(getInteger(ag()), f)
357+ let bH = valueOrElse(getInteger(ag()), f)
345358 let aF = h(ah())
346359 let bs = h(ad())
347360 let aG = h(ae())
348- let bF = valueOrElse(getInteger(X(), aa()), 0)
349- let bG = au(aF)
361+ let bI = valueOrElse(getInteger(X(), aa()), 0)
362+ let bJ = au(aF)
350363 let bv = h(au(aF))
351364 let aV = h(al(aF))
352365 if ((aF > aG))
353366 then $Tuple2(nil, false)
354- else if ((bE == f))
367+ else if ((bH == f))
355368 then {
356- let bH = aT(X(), aV, aF, bs)
357- let bw = bH._1
358- let bI = bH._2
359- let bJ = (bv + bw)
360- let bK = if (((bF - 1) > bs))
369+ let bK = aT(X(), aV, aF, bs)
370+ let bw = bK._1
371+ let bL = bK._2
372+ let bM = (bv + bw)
373+ let bN = if (((bI - 1) > bs))
361374 then [IntegerEntry(ad(), (bs + 1))]
362375 else [IntegerEntry(ag(), g), IntegerEntry(ad(), 0)]
363- $Tuple2((([IntegerEntry(bG, bJ)] ++ bK) ++ bI), true)
376+ $Tuple2((([IntegerEntry(bJ, bM)] ++ bN) ++ bL), true)
364377 }
365- else if ((bE == g))
378+ else if ((bH == g))
366379 then {
367380 let bw = bf(X(), aV, aF, bs)
368381 let bx = fraction(h(ao(aF)), bw, bv)
369382 let by = fraction(h(an(aF)), bw, bv)
370- let bL = (by + bx)
383+ let bO = (by + bx)
371384 let bi = getStringValue(X(), v(bs))
372- let bM = getString(az, J(bi))
373- let bN = if ((bM == unit))
385+ let bF = getString(az, J(bi))
386+ let bG = if ((bF == unit))
374387 then unit
375388 else invoke(az, "updateReferralActivity", [z, bi, (bw >= C)], nil)
376- if ((bN == bN))
389+ if ((bG == bG))
377390 then {
378- let bO = if (if ((bM == unit))
391+ let bP = if (if ((bF == unit))
379392 then true
380393 else (C > bw))
381394 then unit
382395 else {
383- let bP = fraction(bL, F, c)
384- let bQ = fraction(bL, I, c)
385- invoke(az, "incUnclaimed", [z, bi, bP, bQ], nil)
396+ let bQ = fraction(bO, F, c)
397+ let bR = fraction(bO, I, c)
398+ invoke(az, "incUnclaimed", [z, bi, bQ, bR], nil)
386399 }
387- if ((bO == bO))
400+ if ((bP == bP))
388401 then {
389- let bK = if (((bF - 1) > bs))
402+ let bN = if (((bI - 1) > bs))
390403 then [IntegerEntry(ad(), (bs + 1))]
391404 else [IntegerEntry(ah(), (aF + 1)), IntegerEntry(ad(), 0), DeleteEntry(ag())]
392- $Tuple2(bK, true)
405+ $Tuple2(bN, true)
393406 }
394407 else throw("Strict value is not equal to itself.")
395408 }
401414
402415
403416 @Callable(aH)
404-func finalizeWrapper (bR) = {
417+func finalizeWrapper (bS) = {
405418 let bp = {
406- let bS = invoke(this, "finalizeHelper", nil, nil)
407- if ($isInstanceOf(bS, "Boolean"))
408- then bS
419+ let bT = invoke(this, "finalizeHelper", nil, nil)
420+ if ($isInstanceOf(bT, "Boolean"))
421+ then bT
409422 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
410423 }
411424 if ((bp == bp))
412425 then if (!(bp))
413- then if ((bR == q))
426+ then if ((bS == q))
414427 then throw("Nothing to process")
415428 else $Tuple2(nil, unit)
416- else if ((bR > 0))
417- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bR - 1)], nil))
429+ else if ((bS > 0))
430+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bS - 1)], nil))
418431 else $Tuple2(nil, unit)
419432 else throw("Strict value is not equal to itself.")
420433 }
432445 if ((aH.caller != Address(fromBase58String(Y[O]))))
433446 then throw("Wrong caller address")
434447 else {
435- let bT = value(value(aH.payments[0]).assetId)
436- if ((bT != fromBase58String(Y[N])))
448+ let bU = value(value(aH.payments[0]).assetId)
449+ if ((bU != fromBase58String(Y[N])))
437450 then throw("Wrong payment asset")
438451 else {
439452 let am = bj()
440- let bU = (height - j(Z()))
441- let bV = valueOrErrorMessage(getInteger(M, ab()), (("mandatory emission_contract." + ab()) + " is not defined"))
442- let bW = valueOrErrorMessage(getInteger(t, ac()), (("mandatory factory_contract." + ac()) + " is not defined"))
443- let bX = fraction((bU * bW), bV, d)
444- let bY = invoke(M, "emit", [bX], nil)
445- if ((bY == bY))
453+ let bV = (height - j(Z()))
454+ let bW = valueOrErrorMessage(getInteger(M, ab()), (("mandatory emission_contract." + ab()) + " is not defined"))
455+ let bX = valueOrErrorMessage(getInteger(t, ac()), (("mandatory factory_contract." + ac()) + " is not defined"))
456+ let bY = fraction((bV * bX), bW, d)
457+ let bZ = invoke(M, "emit", [bY], nil)
458+ if ((bZ == bZ))
446459 then {
447- let bZ = value(aH.payments[0]).amount
448- let ca = aq(am, bZ, bX)
449-[IntegerEntry(ae(), am), IntegerEntry(al(am), height), IntegerEntry(an(am), bX), IntegerEntry(Z(), height), IntegerEntry(ao(am), bZ), IntegerEntry(af(), (am + 1)), StringEntry(ap(), ca), StringEntry(at(am), ca)]
460+ let ca = value(aH.payments[0]).amount
461+ let cb = aq(am, ca, bY)
462+[IntegerEntry(ae(), am), IntegerEntry(al(am), height), IntegerEntry(an(am), bY), IntegerEntry(Z(), height), IntegerEntry(ao(am), ca), IntegerEntry(af(), (am + 1)), StringEntry(ap(), cb), StringEntry(at(am), cb)]
450463 }
451464 else throw("Strict value is not equal to itself.")
452465 }
459472 func claimNextBatch (bl,aF,bs,bm,bn,bo) = if ((aH.caller != this))
460473 then throw("Should be called by this script only")
461474 else {
462- let cb = br(bl, aF, bs, bm, bn, bo)
463- $Tuple2(nil, cb)
475+ let cc = br(bl, aF, bs, bm, bn, bo)
476+ $Tuple2(nil, cc)
464477 }
465478
466479
467480
468481 @Callable(aH)
469482 func claimReward () = {
470- let cc = toString(aH.caller)
471- let cd = bz(cc, unit)
472- let am = cd._1
473- let aD = cd._2
474- let aE = cd._3
475- let bB = cd._4
476- let Y = cd._5
477- let bC = cd._6
478- $Tuple2([IntegerEntry(ai(bB), am), ScriptTransfer(aH.caller, (aD + aE), fromBase58String(Y[N])), aA("claim", cc, aD, aE, am, bC, aH)], [aD, aE])
483+ let cd = toString(aH.caller)
484+ let ce = bz(cd, unit)
485+ let am = ce._1
486+ let aD = ce._2
487+ let aE = ce._3
488+ let bB = ce._4
489+ let Y = ce._5
490+ let bC = ce._6
491+ $Tuple2([IntegerEntry(ai(bB), am), ScriptTransfer(aH.caller, (aD + aE), fromBase58String(Y[N])), aA("claim", cd, aD, aE, am, bC, aH)], [aD, aE])
479492 }
480493
481494
482495
483496 @Callable(aH)
484-func claimRewardREADONLY (cc) = {
485- let ce = bz(cc, unit)
486- let cf = (ce._2 + ce._3)
487- $Tuple2(nil, cf)
497+func claimRewardREADONLY (cd) = {
498+ let cf = bz(cd, unit)
499+ let cg = (cf._2 + cf._3)
500+ $Tuple2(nil, cg)
488501 }
489502
490503
491504
492505 @Callable(aH)
493-func claimRewardPaginatedREADONLY (cc,bA) = {
494- let cg = bz(cc, if ((0 > bA))
506+func claimRewardPaginatedREADONLY (cd,bA) = {
507+ let ch = bz(cd, if ((0 > bA))
495508 then unit
496509 else bA)
497- let am = cg._1
498- let ch = cg._2
499- let ci = cg._3
500- let cf = (ch + ci)
501- $Tuple2(nil, $Tuple2(cf, am))
510+ let am = ch._1
511+ let ci = ch._2
512+ let cj = ch._3
513+ let cg = (ci + cj)
514+ $Tuple2(nil, $Tuple2(cg, am))
502515 }
503516
504517
505518
506519 @Callable(aH)
507-func claimRewardDetailedREADONLY (cc) = {
508- let cj = bz(cc, unit)
509- let ck = cj._1
510- let ch = cj._2
511- let ci = cj._3
512- $Tuple2(nil, makeString(["%d%d%d", toString((ch + ci)), toString(ch), toString(ci)], a))
520+func claimRewardDetailedREADONLY (cd) = {
521+ let ck = bz(cd, unit)
522+ let cl = ck._1
523+ let ci = ck._2
524+ let cj = ck._3
525+ $Tuple2(nil, makeString(["%d%d%d", toString((ci + cj)), toString(ci), toString(cj)], a))
513526 }
514527
515528
516529
517530 @Callable(aH)
518-func claimRewardDetailedPaginatedREADONLY (cc,bA) = {
519- let cl = bz(cc, if ((0 > bA))
531+func claimRewardDetailedPaginatedREADONLY (cd,bA) = {
532+ let cm = bz(cd, if ((0 > bA))
520533 then unit
521534 else bA)
522- let am = cl._1
523- let ch = cl._2
524- let ci = cl._3
525- $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((ch + ci)), toString(ch), toString(ci)], a), am))
535+ let am = cm._1
536+ let ci = cm._2
537+ let cj = cm._3
538+ $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((ci + cj)), toString(ci), toString(cj)], a), am))
526539 }
527540
528541
529542
530543 @Callable(aH)
531-func latestFinalizedPeriodREADONLY (cc) = $Tuple2(nil, valueOrElse(getInteger(this, ae()), -1))
544+func latestFinalizedPeriodREADONLY (cd) = $Tuple2(nil, valueOrElse(getInteger(this, ae()), -1))
532545
533546
534547
535548 @Callable(aH)
536-func latestFinalizedPeriodInfoREADONLY (cc) = $Tuple2(nil, k(ap()))
549+func latestFinalizedPeriodInfoREADONLY (cd) = $Tuple2(nil, k(ap()))
537550
538551
539552
540553 @Callable(aH)
541-func calcGwxParamsREADONLY (cm,cn,co) = {
542- let cp = (cn + co)
543- let cq = -(fraction(cm, c, co))
544- let cr = (fraction(cm, c, co) * cp)
545- $Tuple2(nil, [cq, cr, bj()])
554+func calcGwxParamsREADONLY (cn,co,cp) = {
555+ let cq = (co + cp)
556+ let cr = -(fraction(cn, c, cp))
557+ let cs = (fraction(cn, c, cp) * cq)
558+ $Tuple2(nil, [cr, cs, bj()])
546559 }
547560
548561
549562
550563 @Callable(aH)
551-func calcGwxAmountStartREADONLY (cs,ct,cu) = {
552- let cv = fraction(ct, d, cu)
553- let cw = fraction(cs, cv, d)
554- $Tuple2(nil, [cw])
564+func calcGwxAmountStartREADONLY (ct,cu,cv) = {
565+ let cw = fraction(cu, d, cv)
566+ let bE = fraction(ct, cw, d)
567+ $Tuple2(nil, [bE])
555568 }
556569
557570
590603
591604
592605 @Callable(aH)
593-func latestPeriodEmissionRewardsREADONLY (cc) = {
606+func latestPeriodEmissionRewardsREADONLY (cd) = {
594607 let am = bj()
595608 $Tuple2(nil, [h(an(am))])
596609 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 26
77
88 let c = 1000
99
1010 let d = 100000000
1111
1212 let e = toBigInt(0)
1313
1414 let f = 0
1515
1616 let g = 1
1717
1818 func h (i) = valueOrElse(getInteger(this, i), 0)
1919
2020
2121 func j (i) = valueOrErrorMessage(getInteger(this, i), (("mandatory this." + i) + " is not defined"))
2222
2323
2424 func k (i) = valueOrElse(getString(this, i), "")
2525
2626
2727 func l (i) = valueOrErrorMessage(getString(this, i), (("mandatory this." + i) + " is not defined"))
2828
2929
3030 func m (n) = if ((e > n))
3131 then -(n)
3232 else n
3333
3434
3535 let o = "%s__maxDepth"
3636
3737 let p = 30
3838
3939 let q = valueOrElse(getInteger(this, o), p)
4040
4141 func r () = "%s%s__config__factoryAddress"
4242
4343
4444 let s = l(r())
4545
4646 let t = addressFromStringValue(s)
4747
4848 func u () = "%s%s__config__emissionAddress"
4949
5050
5151 func v (w) = makeString(["%s%s%s", "mapping", "num2user", toString(w)], a)
5252
5353
5454 let x = makeString(["%s%s", "referral", "programName"], a)
5555
5656 let y = "wxlock"
5757
5858 let z = valueOrElse(getString(this, x), y)
5959
6060 let A = makeString(["%s%s", "referral", "minGWxAmount"], a)
6161
6262 let B = (500 * d)
6363
6464 let C = valueOrElse(getInteger(this, A), B)
6565
6666 let D = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
6767
6868 let E = 50
6969
7070 let F = valueOrElse(getInteger(this, D), E)
7171
7272 let G = makeString(["%s%s", "referral", "referralRewardPermille"], a)
7373
7474 let H = 50
7575
7676 let I = valueOrElse(getInteger(this, G), H)
7777
7878 func J (K) = makeString(["%s%s%s", "referrer", z, K], a)
7979
8080
8181 let L = l(u())
8282
8383 let M = addressFromStringValue(L)
8484
8585 let N = 1
8686
8787 let O = 2
8888
8989 let P = 3
9090
9191 let Q = 4
9292
9393 func R () = "%s__config"
9494
9595
9696 func S () = split(l(R()), a)
9797
9898
9999 func T (U,V,W,q) = makeString(["%s%s%s%d", U, V, W, toString(q)], a)
100100
101101
102102 func X () = {
103103 let Y = S()
104104 valueOrErrorMessage(addressFromString(Y[P]), "boosting contract address is not defined")
105105 }
106106
107107
108108 func Z () = "%s%s__gwxRewardEmissionPart__startHeight"
109109
110110
111111 func aa () = "%s__nextUserNum"
112112
113113
114114 func ab () = "%s%s__ratePerBlock__current"
115115
116116
117117 func ac () = "%s%s__poolWeight__GWXvirtualPOOL"
118118
119119
120120 func ad () = "%s__nextProcessedUser"
121121
122122
123123 func ae () = "%s__latestPeriod"
124124
125125
126126 func af () = "%s__nextPeriod"
127127
128128
129129 func ag () = "%s__processingStage"
130130
131131
132132 func ah () = "%s__nextProcessedPeriod"
133133
134134
135135 func ai (aj) = makeString(["%s%d__nextClaimedPeriod", toString(aj)], a)
136136
137137
138138 func ak (aj) = makeString(["%s%d__lastProcessedPeriod", toString(aj)], a)
139139
140140
141141 func al (am) = makeString(["%s%d__startHeightForPeriod", toString(am)], a)
142142
143143
144144 func an (am) = makeString(["%s%d__auxEmissionReward", toString(am)], a)
145145
146146
147147 func ao (am) = makeString(["%s%d__totalAmountForPeriod", toString(am)], a)
148148
149149
150150 func ap () = "%s__lastPayoutInfo"
151151
152152
153153 func aq (am,ar,as) = makeString(["%d%d%d", toString(am), toString(ar), toString(as)], a)
154154
155155
156156 func at (am) = makeString(["%s%s%d__payouts__history", toString(am)], a)
157157
158158
159159 func au (am) = makeString(["%s%d__totalWeightForPeriod", toString(am)], a)
160160
161161
162162 func av (am,aj) = makeString(["%s%d%s%d__paramByPeriod", toString(aj), "k", toString(am)], a)
163163
164164
165165 func aw (am,aj) = makeString(["%s%d%s%d__paramByPeriod", toString(aj), "b", toString(am)], a)
166166
167167
168168 func ax (am,aj) = makeString(["%s%d%s%d__paramByPeriod", toString(aj), "weight", toString(am)], a)
169169
170170
171171 func ay () = makeString(["%s%s", "config", "referralsContractAddress"], a)
172172
173173
174174 let az = addressFromStringValue(l(ay()))
175175
176176 func aA (aB,aC,aD,aE,aF,aG,aH) = {
177177 let aI = makeString(["%s%s%s%s__history", aB, aC, toBase58String(aH.transactionId)], a)
178178 let aJ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aD), toString(aE), toString(aF), toString(aG)], a)
179179 StringEntry(aI, aJ)
180180 }
181181
182182
183183 func aK () = "%s__managerPublicKey"
184184
185185
186186 func aL () = "%s__pendingManagerPublicKey"
187187
188188
189189 func aM () = {
190190 let aN = getString(aK())
191191 if ($isInstanceOf(aN, "String"))
192192 then {
193193 let aO = aN
194194 fromBase58String(aO)
195195 }
196196 else if ($isInstanceOf(aN, "Unit"))
197197 then unit
198198 else throw("Match error")
199199 }
200200
201201
202202 func aP () = {
203203 let aN = getString(aL())
204204 if ($isInstanceOf(aN, "String"))
205205 then {
206206 let aO = aN
207207 fromBase58String(aO)
208208 }
209209 else if ($isInstanceOf(aN, "Unit"))
210210 then unit
211211 else throw("Match error")
212212 }
213213
214214
215215 func aQ (aH) = {
216216 let aR = throw("Permission denied")
217217 let aN = aM()
218218 if ($isInstanceOf(aN, "ByteVector"))
219219 then {
220220 let aS = aN
221221 if ((aH.callerPublicKey == aS))
222222 then true
223223 else aR
224224 }
225225 else if ($isInstanceOf(aN, "Unit"))
226226 then if ((aH.caller == this))
227227 then true
228228 else aR
229229 else throw("Match error")
230230 }
231231
232232
233233 func aT (aU,aV,am,aj) = {
234234 let aW = ak(aj)
235235 let aX = av(am, aj)
236236 let aY = getInteger(aU, aX)
237237 let aZ = ax(am, aj)
238238 if (isDefined(aY))
239239 then {
240240 let ba = value(aY)
241241 let bb = value(getInteger(aU, aw(am, aj)))
242242 let bc = ((ba * aV) + bb)
243243 if ((bc > 0))
244244 then $Tuple2((bc / c), [IntegerEntry(aW, am), IntegerEntry(aZ, bc)])
245245 else $Tuple2(0, nil)
246246 }
247247 else {
248248 let bd = getInteger(this, aW)
249249 if (if (isDefined(bd))
250250 then (am >= value(bd))
251251 else false)
252252 then {
253253 let be = value(bd)
254254 let ba = value(getInteger(aU, av(be, aj)))
255255 let bb = value(getInteger(aU, aw(be, aj)))
256256 let bc = ((ba * aV) + bb)
257257 if ((bc > 0))
258258 then $Tuple2((bc / c), [IntegerEntry(aZ, bc)])
259259 else $Tuple2(0, nil)
260260 }
261261 else $Tuple2(0, nil)
262262 }
263263 }
264264
265265
266266 func bf (aU,aV,am,aj) = {
267267 let aZ = ax(am, aj)
268268 let bg = getInteger(aZ)
269269 let aN = bg
270270 if ($isInstanceOf(aN, "Unit"))
271271 then 0
272272 else if ($isInstanceOf(aN, "Int"))
273273 then {
274274 let bc = aN
275275 (bc / c)
276276 }
277277 else throw("Match error")
278278 }
279279
280280
281281 func bh (W,bi) = {
282282 let i = makeString(["%s%s%s", "mapping", "user2num", bi], a)
283283 parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(W)), i), ((("User address " + bi) + " is not found in boosting contract data, key=") + i)))
284284 }
285285
286286
287287 func bj () = h(af())
288288
289289
290290 func bk (bl,am,aC,bm,bn,bo) = {
291291 let bp = invoke(this, "claimNextBatch", [bl, am, aC, bm, bn, bo], nil)
292292 if ((bp == bp))
293293 then {
294294 let aN = bp
295295 if ($isInstanceOf(aN, "(Int, Int, Int)"))
296296 then {
297297 let bq = aN
298298 bq
299299 }
300300 else throw("Incorrect invoke result")
301301 }
302302 else throw("Strict value is not equal to itself.")
303303 }
304304
305305
306306 func br (bl,aF,bs,bm,bt,bu) = {
307307 let aU = Address(bl)
308308 let aG = h(ah())
309309 let bv = h(au(aF))
310310 let aV = h(al(aF))
311311 let bw = bf(aU, aV, aF, bs)
312312 let bx = fraction(h(ao(aF)), bw, bv)
313313 let by = fraction(h(an(aF)), bw, bv)
314314 if (if ((0 >= bm))
315315 then true
316316 else ((aF + 1) >= aG))
317317 then $Tuple3((aF + 1), (bt + bx), (bu + by))
318318 else bk(bl, (aF + 1), bs, (bm - 1), (bt + bx), (bu + by))
319319 }
320320
321321
322322 func bz (bi,bA) = {
323323 let Y = S()
324324 let bB = bh(Y[P], bi)
325325 let aF = if ((bA != unit))
326326 then value(bA)
327327 else h(ai(bB))
328328 let bC = h(ah())
329329 if ((aF >= bC))
330330 then throw("Nothing to claim")
331331 else {
332332 let bl = fromBase58String(Y[P])
333333 let bD = br(bl, aF, bB, b, 0, 0)
334334 let am = bD._1
335335 let aD = bD._2
336336 let aE = bD._3
337337 $Tuple6(am, aD, aE, bB, Y, bC)
338338 }
339339 }
340340
341341
342342 @Callable(aH)
343+func updateReferralActivity (bi,bE) = {
344+ let bF = getString(az, J(bi))
345+ let bG = if ((bF == unit))
346+ then unit
347+ else invoke(az, "updateReferralActivity", [z, bi, (bE >= C)], nil)
348+ if ((bG == bG))
349+ then $Tuple2(nil, unit)
350+ else throw("Strict value is not equal to itself.")
351+ }
352+
353+
354+
355+@Callable(aH)
343356 func finalizeHelper () = {
344- let bE = valueOrElse(getInteger(ag()), f)
357+ let bH = valueOrElse(getInteger(ag()), f)
345358 let aF = h(ah())
346359 let bs = h(ad())
347360 let aG = h(ae())
348- let bF = valueOrElse(getInteger(X(), aa()), 0)
349- let bG = au(aF)
361+ let bI = valueOrElse(getInteger(X(), aa()), 0)
362+ let bJ = au(aF)
350363 let bv = h(au(aF))
351364 let aV = h(al(aF))
352365 if ((aF > aG))
353366 then $Tuple2(nil, false)
354- else if ((bE == f))
367+ else if ((bH == f))
355368 then {
356- let bH = aT(X(), aV, aF, bs)
357- let bw = bH._1
358- let bI = bH._2
359- let bJ = (bv + bw)
360- let bK = if (((bF - 1) > bs))
369+ let bK = aT(X(), aV, aF, bs)
370+ let bw = bK._1
371+ let bL = bK._2
372+ let bM = (bv + bw)
373+ let bN = if (((bI - 1) > bs))
361374 then [IntegerEntry(ad(), (bs + 1))]
362375 else [IntegerEntry(ag(), g), IntegerEntry(ad(), 0)]
363- $Tuple2((([IntegerEntry(bG, bJ)] ++ bK) ++ bI), true)
376+ $Tuple2((([IntegerEntry(bJ, bM)] ++ bN) ++ bL), true)
364377 }
365- else if ((bE == g))
378+ else if ((bH == g))
366379 then {
367380 let bw = bf(X(), aV, aF, bs)
368381 let bx = fraction(h(ao(aF)), bw, bv)
369382 let by = fraction(h(an(aF)), bw, bv)
370- let bL = (by + bx)
383+ let bO = (by + bx)
371384 let bi = getStringValue(X(), v(bs))
372- let bM = getString(az, J(bi))
373- let bN = if ((bM == unit))
385+ let bF = getString(az, J(bi))
386+ let bG = if ((bF == unit))
374387 then unit
375388 else invoke(az, "updateReferralActivity", [z, bi, (bw >= C)], nil)
376- if ((bN == bN))
389+ if ((bG == bG))
377390 then {
378- let bO = if (if ((bM == unit))
391+ let bP = if (if ((bF == unit))
379392 then true
380393 else (C > bw))
381394 then unit
382395 else {
383- let bP = fraction(bL, F, c)
384- let bQ = fraction(bL, I, c)
385- invoke(az, "incUnclaimed", [z, bi, bP, bQ], nil)
396+ let bQ = fraction(bO, F, c)
397+ let bR = fraction(bO, I, c)
398+ invoke(az, "incUnclaimed", [z, bi, bQ, bR], nil)
386399 }
387- if ((bO == bO))
400+ if ((bP == bP))
388401 then {
389- let bK = if (((bF - 1) > bs))
402+ let bN = if (((bI - 1) > bs))
390403 then [IntegerEntry(ad(), (bs + 1))]
391404 else [IntegerEntry(ah(), (aF + 1)), IntegerEntry(ad(), 0), DeleteEntry(ag())]
392- $Tuple2(bK, true)
405+ $Tuple2(bN, true)
393406 }
394407 else throw("Strict value is not equal to itself.")
395408 }
396409 else throw("Strict value is not equal to itself.")
397410 }
398411 else throw("invalid processing stage")
399412 }
400413
401414
402415
403416 @Callable(aH)
404-func finalizeWrapper (bR) = {
417+func finalizeWrapper (bS) = {
405418 let bp = {
406- let bS = invoke(this, "finalizeHelper", nil, nil)
407- if ($isInstanceOf(bS, "Boolean"))
408- then bS
419+ let bT = invoke(this, "finalizeHelper", nil, nil)
420+ if ($isInstanceOf(bT, "Boolean"))
421+ then bT
409422 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
410423 }
411424 if ((bp == bp))
412425 then if (!(bp))
413- then if ((bR == q))
426+ then if ((bS == q))
414427 then throw("Nothing to process")
415428 else $Tuple2(nil, unit)
416- else if ((bR > 0))
417- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bR - 1)], nil))
429+ else if ((bS > 0))
430+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bS - 1)], nil))
418431 else $Tuple2(nil, unit)
419432 else throw("Strict value is not equal to itself.")
420433 }
421434
422435
423436
424437 @Callable(aH)
425438 func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
426439
427440
428441
429442 @Callable(aH)
430443 func deposit () = {
431444 let Y = S()
432445 if ((aH.caller != Address(fromBase58String(Y[O]))))
433446 then throw("Wrong caller address")
434447 else {
435- let bT = value(value(aH.payments[0]).assetId)
436- if ((bT != fromBase58String(Y[N])))
448+ let bU = value(value(aH.payments[0]).assetId)
449+ if ((bU != fromBase58String(Y[N])))
437450 then throw("Wrong payment asset")
438451 else {
439452 let am = bj()
440- let bU = (height - j(Z()))
441- let bV = valueOrErrorMessage(getInteger(M, ab()), (("mandatory emission_contract." + ab()) + " is not defined"))
442- let bW = valueOrErrorMessage(getInteger(t, ac()), (("mandatory factory_contract." + ac()) + " is not defined"))
443- let bX = fraction((bU * bW), bV, d)
444- let bY = invoke(M, "emit", [bX], nil)
445- if ((bY == bY))
453+ let bV = (height - j(Z()))
454+ let bW = valueOrErrorMessage(getInteger(M, ab()), (("mandatory emission_contract." + ab()) + " is not defined"))
455+ let bX = valueOrErrorMessage(getInteger(t, ac()), (("mandatory factory_contract." + ac()) + " is not defined"))
456+ let bY = fraction((bV * bX), bW, d)
457+ let bZ = invoke(M, "emit", [bY], nil)
458+ if ((bZ == bZ))
446459 then {
447- let bZ = value(aH.payments[0]).amount
448- let ca = aq(am, bZ, bX)
449-[IntegerEntry(ae(), am), IntegerEntry(al(am), height), IntegerEntry(an(am), bX), IntegerEntry(Z(), height), IntegerEntry(ao(am), bZ), IntegerEntry(af(), (am + 1)), StringEntry(ap(), ca), StringEntry(at(am), ca)]
460+ let ca = value(aH.payments[0]).amount
461+ let cb = aq(am, ca, bY)
462+[IntegerEntry(ae(), am), IntegerEntry(al(am), height), IntegerEntry(an(am), bY), IntegerEntry(Z(), height), IntegerEntry(ao(am), ca), IntegerEntry(af(), (am + 1)), StringEntry(ap(), cb), StringEntry(at(am), cb)]
450463 }
451464 else throw("Strict value is not equal to itself.")
452465 }
453466 }
454467 }
455468
456469
457470
458471 @Callable(aH)
459472 func claimNextBatch (bl,aF,bs,bm,bn,bo) = if ((aH.caller != this))
460473 then throw("Should be called by this script only")
461474 else {
462- let cb = br(bl, aF, bs, bm, bn, bo)
463- $Tuple2(nil, cb)
475+ let cc = br(bl, aF, bs, bm, bn, bo)
476+ $Tuple2(nil, cc)
464477 }
465478
466479
467480
468481 @Callable(aH)
469482 func claimReward () = {
470- let cc = toString(aH.caller)
471- let cd = bz(cc, unit)
472- let am = cd._1
473- let aD = cd._2
474- let aE = cd._3
475- let bB = cd._4
476- let Y = cd._5
477- let bC = cd._6
478- $Tuple2([IntegerEntry(ai(bB), am), ScriptTransfer(aH.caller, (aD + aE), fromBase58String(Y[N])), aA("claim", cc, aD, aE, am, bC, aH)], [aD, aE])
483+ let cd = toString(aH.caller)
484+ let ce = bz(cd, unit)
485+ let am = ce._1
486+ let aD = ce._2
487+ let aE = ce._3
488+ let bB = ce._4
489+ let Y = ce._5
490+ let bC = ce._6
491+ $Tuple2([IntegerEntry(ai(bB), am), ScriptTransfer(aH.caller, (aD + aE), fromBase58String(Y[N])), aA("claim", cd, aD, aE, am, bC, aH)], [aD, aE])
479492 }
480493
481494
482495
483496 @Callable(aH)
484-func claimRewardREADONLY (cc) = {
485- let ce = bz(cc, unit)
486- let cf = (ce._2 + ce._3)
487- $Tuple2(nil, cf)
497+func claimRewardREADONLY (cd) = {
498+ let cf = bz(cd, unit)
499+ let cg = (cf._2 + cf._3)
500+ $Tuple2(nil, cg)
488501 }
489502
490503
491504
492505 @Callable(aH)
493-func claimRewardPaginatedREADONLY (cc,bA) = {
494- let cg = bz(cc, if ((0 > bA))
506+func claimRewardPaginatedREADONLY (cd,bA) = {
507+ let ch = bz(cd, if ((0 > bA))
495508 then unit
496509 else bA)
497- let am = cg._1
498- let ch = cg._2
499- let ci = cg._3
500- let cf = (ch + ci)
501- $Tuple2(nil, $Tuple2(cf, am))
510+ let am = ch._1
511+ let ci = ch._2
512+ let cj = ch._3
513+ let cg = (ci + cj)
514+ $Tuple2(nil, $Tuple2(cg, am))
502515 }
503516
504517
505518
506519 @Callable(aH)
507-func claimRewardDetailedREADONLY (cc) = {
508- let cj = bz(cc, unit)
509- let ck = cj._1
510- let ch = cj._2
511- let ci = cj._3
512- $Tuple2(nil, makeString(["%d%d%d", toString((ch + ci)), toString(ch), toString(ci)], a))
520+func claimRewardDetailedREADONLY (cd) = {
521+ let ck = bz(cd, unit)
522+ let cl = ck._1
523+ let ci = ck._2
524+ let cj = ck._3
525+ $Tuple2(nil, makeString(["%d%d%d", toString((ci + cj)), toString(ci), toString(cj)], a))
513526 }
514527
515528
516529
517530 @Callable(aH)
518-func claimRewardDetailedPaginatedREADONLY (cc,bA) = {
519- let cl = bz(cc, if ((0 > bA))
531+func claimRewardDetailedPaginatedREADONLY (cd,bA) = {
532+ let cm = bz(cd, if ((0 > bA))
520533 then unit
521534 else bA)
522- let am = cl._1
523- let ch = cl._2
524- let ci = cl._3
525- $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((ch + ci)), toString(ch), toString(ci)], a), am))
535+ let am = cm._1
536+ let ci = cm._2
537+ let cj = cm._3
538+ $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((ci + cj)), toString(ci), toString(cj)], a), am))
526539 }
527540
528541
529542
530543 @Callable(aH)
531-func latestFinalizedPeriodREADONLY (cc) = $Tuple2(nil, valueOrElse(getInteger(this, ae()), -1))
544+func latestFinalizedPeriodREADONLY (cd) = $Tuple2(nil, valueOrElse(getInteger(this, ae()), -1))
532545
533546
534547
535548 @Callable(aH)
536-func latestFinalizedPeriodInfoREADONLY (cc) = $Tuple2(nil, k(ap()))
549+func latestFinalizedPeriodInfoREADONLY (cd) = $Tuple2(nil, k(ap()))
537550
538551
539552
540553 @Callable(aH)
541-func calcGwxParamsREADONLY (cm,cn,co) = {
542- let cp = (cn + co)
543- let cq = -(fraction(cm, c, co))
544- let cr = (fraction(cm, c, co) * cp)
545- $Tuple2(nil, [cq, cr, bj()])
554+func calcGwxParamsREADONLY (cn,co,cp) = {
555+ let cq = (co + cp)
556+ let cr = -(fraction(cn, c, cp))
557+ let cs = (fraction(cn, c, cp) * cq)
558+ $Tuple2(nil, [cr, cs, bj()])
546559 }
547560
548561
549562
550563 @Callable(aH)
551-func calcGwxAmountStartREADONLY (cs,ct,cu) = {
552- let cv = fraction(ct, d, cu)
553- let cw = fraction(cs, cv, d)
554- $Tuple2(nil, [cw])
564+func calcGwxAmountStartREADONLY (ct,cu,cv) = {
565+ let cw = fraction(cu, d, cv)
566+ let bE = fraction(ct, cw, d)
567+ $Tuple2(nil, [bE])
555568 }
556569
557570
558571
559572 @Callable(aH)
560573 func constructor (U,V,W,q) = if ((this != aH.caller))
561574 then throw("not authorized")
562575 else [StringEntry(R(), T(U, V, W, q))]
563576
564577
565578
566579 @Callable(aH)
567580 func constructorV2 (cx) = if ((this != aH.caller))
568581 then throw("not authorized")
569582 else [StringEntry(r(), cx)]
570583
571584
572585
573586 @Callable(aH)
574587 func constructorV3 (cy) = if ((this != aH.caller))
575588 then throw("not authorized")
576589 else {
577590 let cz = if (isDefined(getInteger(this, ae())))
578591 then nil
579592 else [IntegerEntry(ae(), -1)]
580593 (cz :+ StringEntry(u(), cy))
581594 }
582595
583596
584597
585598 @Callable(aH)
586599 func onEmissionForGwxStart () = if ((aH.caller != t))
587600 then throw("permissions denied")
588601 else [IntegerEntry(Z(), height)]
589602
590603
591604
592605 @Callable(aH)
593-func latestPeriodEmissionRewardsREADONLY (cc) = {
606+func latestPeriodEmissionRewardsREADONLY (cd) = {
594607 let am = bj()
595608 $Tuple2(nil, [h(an(am))])
596609 }
597610
598611
599612
600613 @Callable(aH)
601614 func calcD (cA,cB,cC,cD,cE) = {
602615 let cF = toBigInt(2)
603616 let cG = parseBigIntValue(cD)
604617 let cH = parseBigIntValue(cE)
605618 let cI = parseBigIntValue(cA)
606619 let cJ = parseBigIntValue(cB)
607620 let cK = (parseBigIntValue(cC) * cG)
608621 let aO = (cI + cJ)
609622 if ((aO == e))
610623 then $Tuple2(nil, toString(e))
611624 else {
612625 let cL = (cK * cF)
613626 let cM = [1, 2, 3, 4, 5, 6, 7]
614627 func cN (cO,cP) = {
615628 let cQ = cO
616629 let cR = cQ._1
617630 let cS = cQ._2
618631 let cT = (((cR * cR) * cR) / (((cI * cJ) * cF) * cF))
619632 let cU = (((((cL * aO) / cG) + (cT * cF)) * cR) / ((((cL - cG) * cR) / cG) + ((cF + toBigInt(1)) * cT)))
620633 $Tuple2(cU, cR)
621634 }
622635
623636 let cV = {
624637 let cW = cM
625638 let cX = size(cW)
626639 let cY = $Tuple2(aO, unit)
627640 func cZ (da,db) = if ((db >= cX))
628641 then da
629642 else cN(da, cW[db])
630643
631644 func dc (da,db) = if ((db >= cX))
632645 then da
633646 else throw("List size exceeds 7")
634647
635648 dc(cZ(cZ(cZ(cZ(cZ(cZ(cZ(cY, 0), 1), 2), 3), 4), 5), 6), 7)
636649 }
637650 let cU = cV._1
638651 let cS = cV._2
639652 let dd = m((cU - value(cS)))
640653 if ((cH >= dd))
641654 then $Tuple2(nil, toString(cU))
642655 else throw(("D calculation error, dDiff = " + toString(dd)))
643656 }
644657 }
645658
646659
647660
648661 @Callable(aH)
649662 func setManager (de) = {
650663 let df = aQ(aH)
651664 if ((df == df))
652665 then {
653666 let dg = fromBase58String(de)
654667 if ((dg == dg))
655668 then [StringEntry(aL(), de)]
656669 else throw("Strict value is not equal to itself.")
657670 }
658671 else throw("Strict value is not equal to itself.")
659672 }
660673
661674
662675
663676 @Callable(aH)
664677 func confirmManager () = {
665678 let dh = aP()
666679 let di = if (isDefined(dh))
667680 then true
668681 else throw("No pending manager")
669682 if ((di == di))
670683 then {
671684 let dj = if ((aH.callerPublicKey == value(dh)))
672685 then true
673686 else throw("You are not pending manager")
674687 if ((dj == dj))
675688 then [StringEntry(aK(), toBase58String(value(dh))), DeleteEntry(aL())]
676689 else throw("Strict value is not equal to itself.")
677690 }
678691 else throw("Strict value is not equal to itself.")
679692 }
680693
681694
682695 @Verifier(dk)
683696 func dl () = {
684697 let dm = {
685698 let aN = aM()
686699 if ($isInstanceOf(aN, "ByteVector"))
687700 then {
688701 let aS = aN
689702 aS
690703 }
691704 else if ($isInstanceOf(aN, "Unit"))
692705 then dk.senderPublicKey
693706 else throw("Match error")
694707 }
695708 sigVerify(dk.bodyBytes, dk.proofs[0], dm)
696709 }
697710

github/deemru/w8io/169f3d6 
764.75 ms