tx · FNGL5U2RQniYaGwFTQGuzccHHYGBQ4yk7SxaQi9FZkyt

3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE:  -0.02600000 Waves

2022.08.08 14:13 [2175401] smart account 3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE > SELF 0.00000000 Waves

{ "type": 13, "id": "FNGL5U2RQniYaGwFTQGuzccHHYGBQ4yk7SxaQi9FZkyt", "fee": 2600000, "feeAssetId": null, "timestamp": 1659957272894, "version": 1, "sender": "3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE", "senderPublicKey": "G349Uq3FTox7dRNLeAfAQeoACvwZ9iEnVSaHcEYn6j8J", "proofs": [ "3Y9TaHTaxsM2U6AR59jStZ9hEg5d6iWzx7pAPC6YKFjoSZPxDvLzusgkHr2peqVuCMccudQ7yJZ5b5paRR59SYUj" ], "script": "base64:BgJ2CAISBAoCCAESABIDCgEBEgASABIICgYCAQEBAQESABIDCgEIEgQKAggBEgMKAQgSBAoCCAESAwoBCBIDCgEIEgUKAwEBARIFCgMBAQESBgoECAgIARIDCgEIEgMKAQgSABIDCgEIEgcKBQgICAgIEgMKAQgSAFAAA1NFUAICX18ACVVTRVJERVBUSAAaAAVTQ0FMRQDoBwAFTVVMVDgAgMLXLwAKemVyb0JpZ0ludAkAtgIBAAAAFHByb2Nlc3NpbmdTdGFnZVRvdGFsAAAAFXByb2Nlc3NpbmdTdGFnZVNoYXJlcwABAQ5nZXROdW1iZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ9nZXROdW1iZXJPckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFA2tleQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldFN0cmluZ09yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUDa2V5CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEDYWJzAQN2YWwDCQC/AgIFCnplcm9CaWdJbnQFA3ZhbAkAvgIBBQN2YWwFA3ZhbAALa2V5TWF4RGVwdGgCDCVzX19tYXhEZXB0aAAPbWF4RGVwdGhEZWZhdWx0AB4ACG1heERlcHRoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU1heERlcHRoBQ9tYXhEZXB0aERlZmF1bHQBEWtleUZhY3RvcnlBZGRyZXNzAAIcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwARZmFjdG9yeUFkZHJlc3NTdHIJAQ9nZXRTdHJpbmdPckZhaWwBCQERa2V5RmFjdG9yeUFkZHJlc3MAAA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEWZhY3RvcnlBZGRyZXNzU3RyARJrZXlFbWlzc2lvbkFkZHJlc3MAAh0lcyVzX19jb25maWdfX2VtaXNzaW9uQWRkcmVzcwETa2V5TnVtVG9Vc2VyTWFwcGluZwEDbnVtCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIbnVtMnVzZXIJAMwIAgkApAMBBQNudW0FA25pbAUDU0VQABZrZXlSZWZlcnJhbFByb2dyYW1OYW1lCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgtwcm9ncmFtTmFtZQUDbmlsBQNTRVAAGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0AgZ3eGxvY2sAE3JlZmVycmFsUHJvZ3JhbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZQUacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQAF2tleVJlZmVycmFsTWluR1d4QW1vdW50CQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgxtaW5HV3hBbW91bnQFA25pbAUDU0VQABtyZWZlcnJhbE1pbkdXeEFtb3VudERlZmF1bHQJAGgCAPQDBQVNVUxUOAAUcmVmZXJyYWxNaW5HV3hBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUXa2V5UmVmZXJyYWxNaW5HV3hBbW91bnQFG3JlZmVycmFsTWluR1d4QW1vdW50RGVmYXVsdAAZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgIWcmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUDbmlsBQNTRVAAHXJlZmVycmVyUmV3YXJkUGVybWlsbGVEZWZhdWx0ADIAFnJlZmVycmVyUmV3YXJkUGVybWlsbGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUdcmVmZXJyZXJSZXdhcmRQZXJtaWxsZURlZmF1bHQAGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICFnJlZmVycmFsUmV3YXJkUGVybWlsbGUFA25pbAUDU0VQAB1yZWZlcnJhbFJld2FyZFBlcm1pbGxlRGVmYXVsdAAyABZyZWZlcnJhbFJld2FyZFBlcm1pbGxlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUFHXJlZmVycmFsUmV3YXJkUGVybWlsbGVEZWZhdWx0AQtrZXlSZWZlcnJlcgEPcmVmZXJyYWxBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCHJlZmVycmVyCQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwFA1NFUAEUa2V5VW5jbGFpbWVkUmVmZXJyYWwCC3Byb2dyYW1OYW1lDmNsYWltZXJBZGRyZXNzCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgIRdW5jbGFpbWVkUmVmZXJyYWwJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUOY2xhaW1lckFkZHJlc3MFA25pbAUDU0VQABJlbWlzc2lvbkFkZHJlc3NTdHIJAQ9nZXRTdHJpbmdPckZhaWwBCQESa2V5RW1pc3Npb25BZGRyZXNzAAAQZW1pc3Npb25Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQUSZW1pc3Npb25BZGRyZXNzU3RyAA1JZHhDZmdBc3NldElkAAEAFklkeENmZ1BhY2VtYWtlckFkZHJlc3MAAgAWSWR4Q2ZnQm9vc3RpbmdDb250cmFjdAADAA5JZHhDZmdNYXhEZXB0aAAEAQlrZXlDb25maWcAAgolc19fY29uZmlnARVyZWFkQ29uZmlnQXJyYXlPckZhaWwACQC1CQIJAQ9nZXRTdHJpbmdPckZhaWwBCQEJa2V5Q29uZmlnAAUDU0VQAQxmb3JtYXRDb25maWcEDHd4QXNzZXRJZFN0chptYXRjaGVyUGFjZW1ha2VyQWRkcmVzc1N0chpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cghtYXhEZXB0aAkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAIFDHd4QXNzZXRJZFN0cgkAzAgCBRptYXRjaGVyUGFjZW1ha2VyQWRkcmVzc1N0cgkAzAgCBRpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgkAzAgCCQCkAwEFCG1heERlcHRoBQNuaWwFA1NFUAEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUIY2ZnQXJyYXkFFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QCKGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MgaXMgbm90IGRlZmluZWQBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQAAiglcyVzX19nd3hSZXdhcmRFbWlzc2lvblBhcnRfX3N0YXJ0SGVpZ2h0AQ1rZXlVc2Vyc0NvdW50AAIPJXNfX25leHRVc2VyTnVtARZrZXlSYXRlUGVyQmxvY2tDdXJyZW50AAIbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50ARRrZXlQb29sV2VpZ2h0VmlydHVhbAACICVzJXNfX3Bvb2xXZWlnaHRfX0dXWHZpcnR1YWxQT09MARRrZXlOZXh0UHJvY2Vzc2VkVXNlcgACFSVzX19uZXh0UHJvY2Vzc2VkVXNlcgEPa2V5TGF0ZXN0UGVyaW9kAAIQJXNfX2xhdGVzdFBlcmlvZAENa2V5TmV4dFBlcmlvZAACDiVzX19uZXh0UGVyaW9kARJrZXlQcm9jZXNzaW5nU3RhZ2UAAhMlc19fcHJvY2Vzc2luZ1N0YWdlARZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAIXJXNfX25leHRQcm9jZXNzZWRQZXJpb2QBG2tleU5leHRVbmxhaW1lZFBlcmlvZE9mVXNlcgEJdXNlckluZGV4CQC5CQIJAMwIAgIXJXMlZF9fbmV4dENsYWltZWRQZXJpb2QJAMwIAgkApAMBBQl1c2VySW5kZXgFA25pbAUDU0VQARxrZXlMYXN0UHJvY2Vzc2VkUGVyaW9kT2ZVc2VyAQl1c2VySW5kZXgJALkJAgkAzAgCAhklcyVkX19sYXN0UHJvY2Vzc2VkUGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4BQNuaWwFA1NFUAESa2V5SGVpZ2h0Rm9yUGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAholcyVkX19zdGFydEhlaWdodEZvclBlcmlvZAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABHWtleUF1eEVtaXNzaW9uUmV3YXJkRm9yUGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAhclcyVkX19hdXhFbWlzc2lvblJld2FyZAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABF2tleVRvdGFsQW1vdW50Rm9yUGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAholcyVkX190b3RhbEFtb3VudEZvclBlcmlvZAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABEWtleUxhc3RQYXlvdXRJbmZvAAISJXNfX2xhc3RQYXlvdXRJbmZvARBQZXJpb2RQYXlvdXRJbmZvAwZwZXJpb2QNbWF0Y2hlclJld2FyZA5lbWlzc2lvblJld2FyZAkAuQkCCQDMCAICBiVkJWQlZAkAzAgCCQCkAwEFBnBlcmlvZAkAzAgCCQCkAwEFDW1hdGNoZXJSZXdhcmQJAMwIAgkApAMBBQ5lbWlzc2lvblJld2FyZAUDbmlsBQNTRVABFGtleVBheW91dEhpc3RvcnlJbmZvAQZwZXJpb2QJALkJAgkAzAgCAhglcyVzJWRfX3BheW91dHNfX2hpc3RvcnkJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fdG90YWxXZWlnaHRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARZrZXlVc2VyS1ZhbHVlRm9yUGVyaW9kAgZwZXJpb2QJdXNlckluZGV4CQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQl1c2VySW5kZXgJAMwIAgIBawkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABFmtleVVzZXJCVmFsdWVGb3JQZXJpb2QCBnBlcmlvZAl1c2VySW5kZXgJALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAkAzAgCAgFiCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEWa2V5VXNlcldlaWdodEZvclBlcmlvZAIGcGVyaW9kCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4CQDMCAICBndlaWdodAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABG2tleVJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwAJALkJAgkAzAgCAgQlcyVzCQDMCAICBmNvbmZpZwkAzAgCAhhyZWZlcnJhbHNDb250cmFjdEFkZHJlc3MFA25pbAUDU0VQAB5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQ9nZXRTdHJpbmdPckZhaWwBCQEba2V5UmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzAAEMSGlzdG9yeUVudHJ5BwR0eXBlBHVzZXIRYW1vdW50RnJvbU1hdGNoZXISYW1vdW50RnJvbUVtaXNzaW9uDWN1cnJlbnRQZXJpb2QMbGF0ZXN0UGVyaW9kAWkECmhpc3RvcnlLRVkJALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQR0eXBlCQDMCAIFBHVzZXIJAMwIAgkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBQNuaWwFA1NFUAQLaGlzdG9yeURBVEEJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQURYW1vdW50RnJvbU1hdGNoZXIJAMwIAgkApAMBBRJhbW91bnRGcm9tRW1pc3Npb24JAMwIAgkApAMBBQ1jdXJyZW50UGVyaW9kCQDMCAIJAKQDAQUMbGF0ZXN0UGVyaW9kBQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgUKaGlzdG9yeUtFWQULaGlzdG9yeURBVEEBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgELbXVzdE1hbmFnZXIBAWkEAnBkCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrBgUCcGQDCQABAgUHJG1hdGNoMAIEVW5pdAMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBQJwZAkAAgECC01hdGNoIGVycm9yAQ5jYWxjVXNlcldlaWdodAQXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MPaGVpZ2h0Rm9yUGVyaW9kBnBlcmlvZAl1c2VySW5kZXgEBWtMYXN0CQEca2V5TGFzdFByb2Nlc3NlZFBlcmlvZE9mVXNlcgEFCXVzZXJJbmRleAQEa0tleQkBFmtleVVzZXJLVmFsdWVGb3JQZXJpb2QCBQZwZXJpb2QFCXVzZXJJbmRleAQEa1JhdwkAmggCBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwUEa0tleQQLa1VzZXJXZWlnaHQJARZrZXlVc2VyV2VpZ2h0Rm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgDCQEJaXNEZWZpbmVkAQUEa1JhdwQBawkBBXZhbHVlAQUEa1JhdwQBYgkBBXZhbHVlAQkAmggCBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBFmtleVVzZXJCVmFsdWVGb3JQZXJpb2QCBQZwZXJpb2QFCXVzZXJJbmRleAQBdwkAZAIJAGgCBQFrBQ9oZWlnaHRGb3JQZXJpb2QFAWIDCQBmAgUBdwAACQCUCgIJAGkCBQF3BQVTQ0FMRQkAzAgCCQEMSW50ZWdlckVudHJ5AgUFa0xhc3QFBnBlcmlvZAkAzAgCCQEMSW50ZWdlckVudHJ5AgULa1VzZXJXZWlnaHQFAXcFA25pbAkAlAoCAAAFA25pbAQBcAkAmggCBQR0aGlzBQVrTGFzdAMDCQEJaXNEZWZpbmVkAQUBcAkAZwIFBnBlcmlvZAkBBXZhbHVlAQUBcAcEAnB2CQEFdmFsdWUBBQFwBAFrCQEFdmFsdWUBCQCaCAIFF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQEWa2V5VXNlcktWYWx1ZUZvclBlcmlvZAIFAnB2BQl1c2VySW5kZXgEAWIJAQV2YWx1ZQEJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgUCcHYFCXVzZXJJbmRleAQBdwkAZAIJAGgCBQFrBQ9oZWlnaHRGb3JQZXJpb2QFAWIDCQBmAgUBdwAACQCUCgIJAGkCBQF3BQVTQ0FMRQkAzAgCCQEMSW50ZWdlckVudHJ5AgULa1VzZXJXZWlnaHQFAXcFA25pbAkAlAoCAAAFA25pbAkAlAoCAAAFA25pbAEWY2FsY1VzZXJXZWlnaHRGb3JDbGFpbQQXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MPaGVpZ2h0Rm9yUGVyaW9kBnBlcmlvZAl1c2VySW5kZXgEC2tVc2VyV2VpZ2h0CQEWa2V5VXNlcldlaWdodEZvclBlcmlvZAIFBnBlcmlvZAUJdXNlckluZGV4BBB1c2VyV2VpZ2h0T3JVbml0CQCfCAEFC2tVc2VyV2VpZ2h0BAckbWF0Y2gwBRB1c2VyV2VpZ2h0T3JVbml0AwkAAQIFByRtYXRjaDACBFVuaXQAAAMJAAECBQckbWF0Y2gwAgNJbnQEAXcFByRtYXRjaDAJAGkCBQF3BQVTQ0FMRQkAAgECC01hdGNoIGVycm9yARVnZXRVc2VySW5kZXhCeUFkZHJlc3MCGmJvb3N0aW5nQ29udHJhY3RBZGRyZXNzU3RyC3VzZXJBZGRyZXNzBANrZXkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIHbWFwcGluZwkAzAgCAgh1c2VyMm51bQkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVAJAQ1wYXJzZUludFZhbHVlAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQdBZGRyZXNzAQkA2QQBBRpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgUDa2V5CQCsAgIJAKwCAgkArAICAg1Vc2VyIGFkZHJlc3MgBQt1c2VyQWRkcmVzcwItIGlzIG5vdCBmb3VuZCBpbiBib29zdGluZyBjb250cmFjdCBkYXRhLCBrZXk9BQNrZXkBCm5leHRQZXJpb2QACQEOZ2V0TnVtYmVyQnlLZXkBCQENa2V5TmV4dFBlcmlvZAABC2ludm9rZUNsYWltBhBib29zdGluZ0NvbnRyYWN0BnBlcmlvZAR1c2VyBWRlcHRoEHRvdGFsRnJvbU1hdGNoZXIRdG90YWxGcm9tRW1pc3Npb24EBnJlc3VsdAkA/AcEBQR0aGlzAg5jbGFpbU5leHRCYXRjaAkAzAgCBRBib29zdGluZ0NvbnRyYWN0CQDMCAIFBnBlcmlvZAkAzAgCBQR1c2VyCQDMCAIFBWRlcHRoCQDMCAIFEHRvdGFsRnJvbU1hdGNoZXIJAMwIAgURdG90YWxGcm9tRW1pc3Npb24FA25pbAUDbmlsAwkAAAIFBnJlc3VsdAUGcmVzdWx0BAckbWF0Y2gwBQZyZXN1bHQDCQABAgUHJG1hdGNoMAIPKEludCwgSW50LCBJbnQpBAFyBQckbWF0Y2gwBQFyCQACAQIXSW5jb3JyZWN0IGludm9rZSByZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDWNsYWltSW50ZXJuYWwGEGJvb3N0aW5nQ29udHJhY3QNY3VycmVudFBlcmlvZAtjdXJyZW50VXNlcgVkZXB0aBZ1c2VyQWNjdW11bGF0ZWRNYXRjaGVyF3VzZXJBY2N1bXVsYXRlZEVtaXNzaW9uBBdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBB0FkZHJlc3MBBRBib29zdGluZ0NvbnRyYWN0BAxsYXRlc3RQZXJpb2QJAQ5nZXROdW1iZXJCeUtleQEJARZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAQLdG90YWxXZWlnaHQJAQ5nZXROdW1iZXJCeUtleQEJARdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QED2hlaWdodEZvclBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBEmtleUhlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QECnVzZXJXZWlnaHQJARZjYWxjVXNlcldlaWdodEZvckNsYWltBAUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MFD2hlaWdodEZvclBlcmlvZAUNY3VycmVudFBlcmlvZAULY3VycmVudFVzZXIEGnVzZXJBbW91bnRNYXRjaGVyRm9yUGVyaW9kCQBrAwkBDmdldE51bWJlckJ5S2V5AQkBF2tleVRvdGFsQW1vdW50Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAUKdXNlcldlaWdodAULdG90YWxXZWlnaHQEG3VzZXJBbW91bnRFbWlzc2lvbkZvclBlcmlvZAkAawMJAQ5nZXROdW1iZXJCeUtleQEJAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QFCnVzZXJXZWlnaHQFC3RvdGFsV2VpZ2h0AwMJAGcCAAAFBWRlcHRoBgkAZwIJAGQCBQ1jdXJyZW50UGVyaW9kAAEFDGxhdGVzdFBlcmlvZAkAlQoDCQBkAgUNY3VycmVudFBlcmlvZAABCQBkAgUWdXNlckFjY3VtdWxhdGVkTWF0Y2hlcgUadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QJAGQCBRd1c2VyQWNjdW11bGF0ZWRFbWlzc2lvbgUbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kCQELaW52b2tlQ2xhaW0GBRBib29zdGluZ0NvbnRyYWN0CQBkAgUNY3VycmVudFBlcmlvZAABBQtjdXJyZW50VXNlcgkAZQIFBWRlcHRoAAEJAGQCBRZ1c2VyQWNjdW11bGF0ZWRNYXRjaGVyBRp1c2VyQW1vdW50TWF0Y2hlckZvclBlcmlvZAkAZAIFF3VzZXJBY2N1bXVsYXRlZEVtaXNzaW9uBRt1c2VyQW1vdW50RW1pc3Npb25Gb3JQZXJpb2QBEWNvbW1vbkNsYWltUmV3YXJkAgt1c2VyQWRkcmVzcwtzdGFydFBlcmlvZAQIY2ZnQXJyYXkJARVyZWFkQ29uZmlnQXJyYXlPckZhaWwABAd1c2VySWR4CQEVZ2V0VXNlckluZGV4QnlBZGRyZXNzAgkAkQMCBQhjZmdBcnJheQUWSWR4Q2ZnQm9vc3RpbmdDb250cmFjdAULdXNlckFkZHJlc3MEDWN1cnJlbnRQZXJpb2QDCQECIT0CBQtzdGFydFBlcmlvZAUEdW5pdAkBBXZhbHVlAQULc3RhcnRQZXJpb2QJAQ5nZXROdW1iZXJCeUtleQEJARtrZXlOZXh0VW5sYWltZWRQZXJpb2RPZlVzZXIBBQd1c2VySWR4BBNuZXh0UHJvY2Vzc2VkUGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZAADCQBnAgUNY3VycmVudFBlcmlvZAUTbmV4dFByb2Nlc3NlZFBlcmlvZAkAAgECEE5vdGhpbmcgdG8gY2xhaW0EEGJvb3N0aW5nQ29udHJhY3QJANkEAQkAkQMCBQhjZmdBcnJheQUWSWR4Q2ZnQm9vc3RpbmdDb250cmFjdAQNJHQwMTI3MjkxMjg1NQkBDWNsYWltSW50ZXJuYWwGBRBib29zdGluZ0NvbnRyYWN0BQ1jdXJyZW50UGVyaW9kBQd1c2VySWR4BQlVU0VSREVQVEgAAAAABAZwZXJpb2QIBQ0kdDAxMjcyOTEyODU1Al8xBBFhbW91bnRGcm9tTWF0Y2hlcggFDSR0MDEyNzI5MTI4NTUCXzIEEmFtb3VudEZyb21FbWlzc2lvbggFDSR0MDEyNzI5MTI4NTUCXzMJAJgKBgUGcGVyaW9kBRFhbW91bnRGcm9tTWF0Y2hlcgUSYW1vdW50RnJvbUVtaXNzaW9uBQd1c2VySWR4BQhjZmdBcnJheQUTbmV4dFByb2Nlc3NlZFBlcmlvZBcBaQEWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQILdXNlckFkZHJlc3MOZ1d4QW1vdW50U3RhcnQECHJlZmVycmVyCQCdCAIFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAkBC2tleVJlZmVycmVyAQULdXNlckFkZHJlc3MEEWFjdGl2ZVJlZmVycmFsSW52AwkAAAIFCHJlZmVycmVyBQR1bml0BQR1bml0CQD8BwQFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCBRNyZWZlcnJhbFByb2dyYW1OYW1lCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJAGcCBQ5nV3hBbW91bnRTdGFydAUUcmVmZXJyYWxNaW5HV3hBbW91bnQFA25pbAUDbmlsAwkAAAIFEWFjdGl2ZVJlZmVycmFsSW52BRFhY3RpdmVSZWZlcnJhbEludgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOZmluYWxpemVIZWxwZXIABA9wcm9jZXNzaW5nU3RhZ2UJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEmtleVByb2Nlc3NpbmdTdGFnZQAFFHByb2Nlc3NpbmdTdGFnZVRvdGFsBA1jdXJyZW50UGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZAAEC2N1cnJlbnRVc2VyCQEOZ2V0TnVtYmVyQnlLZXkBCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIABAxsYXRlc3RQZXJpb2QJAQ5nZXROdW1iZXJCeUtleQEJAQ9rZXlMYXRlc3RQZXJpb2QABAp1c2Vyc0NvdW50CQELdmFsdWVPckVsc2UCCQCaCAIJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAkBDWtleVVzZXJzQ291bnQAAAAEDnRvdGFsV2VpZ2h0S2V5CQEXa2V5VG90YWxXZWlnaHRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBAt0b3RhbFdlaWdodAkBDmdldE51bWJlckJ5S2V5AQkBF2tleVRvdGFsV2VpZ2h0Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAQPaGVpZ2h0Rm9yUGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQESa2V5SGVpZ2h0Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAMJAGYCBQ1jdXJyZW50UGVyaW9kBQxsYXRlc3RQZXJpb2QJAJQKAgUDbmlsBwMJAAACBQ9wcm9jZXNzaW5nU3RhZ2UFFHByb2Nlc3NpbmdTdGFnZVRvdGFsBA0kdDAxNDI1NTE0MzcxCQEOY2FsY1VzZXJXZWlnaHQECQEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAFD2hlaWdodEZvclBlcmlvZAUNY3VycmVudFBlcmlvZAULY3VycmVudFVzZXIECnVzZXJXZWlnaHQIBQ0kdDAxNDI1NTE0MzcxAl8xBAt1c2VyQWN0aW9ucwgFDSR0MDE0MjU1MTQzNzECXzIEDnRvdGFsV2VpZ2h0TmV3CQBkAgULdG90YWxXZWlnaHQFCnVzZXJXZWlnaHQEEXByb2Nlc3NpbmdBY3Rpb25zAwkAZgIJAGUCBQp1c2Vyc0NvdW50AAEFC2N1cnJlbnRVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIACQBkAgULY3VycmVudFVzZXIAAQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESa2V5UHJvY2Vzc2luZ1N0YWdlAAUVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAAAFA25pbAkAlAoCCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUOdG90YWxXZWlnaHRLZXkFDnRvdGFsV2VpZ2h0TmV3BQNuaWwFEXByb2Nlc3NpbmdBY3Rpb25zBQt1c2VyQWN0aW9ucwYDCQAAAgUPcHJvY2Vzc2luZ1N0YWdlBRVwcm9jZXNzaW5nU3RhZ2VTaGFyZXMECnVzZXJXZWlnaHQJARZjYWxjVXNlcldlaWdodEZvckNsYWltBAkBFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABQ9oZWlnaHRGb3JQZXJpb2QFDWN1cnJlbnRQZXJpb2QFC2N1cnJlbnRVc2VyBBp1c2VyQW1vdW50TWF0Y2hlckZvclBlcmlvZAkAawMJAQ5nZXROdW1iZXJCeUtleQEJARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QFCnVzZXJXZWlnaHQFC3RvdGFsV2VpZ2h0BBt1c2VyQW1vdW50RW1pc3Npb25Gb3JQZXJpb2QJAGsDCQEOZ2V0TnVtYmVyQnlLZXkBCQEda2V5QXV4RW1pc3Npb25SZXdhcmRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBQp1c2VyV2VpZ2h0BQt0b3RhbFdlaWdodAQPdXNlclRvdGFsQW1vdW50CQBkAgUbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kBRp1c2VyQW1vdW50TWF0Y2hlckZvclBlcmlvZAQLdXNlckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAkBE2tleU51bVRvVXNlck1hcHBpbmcBBQtjdXJyZW50VXNlcgQIcmVmZXJyZXIJAJ0IAgUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsCQELa2V5UmVmZXJyZXIBBQt1c2VyQWRkcmVzcwQRYWN0aXZlUmVmZXJyYWxJbnYDCQAAAgUIcmVmZXJyZXIFBHVuaXQFBHVuaXQJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgULdXNlckFkZHJlc3MJAMwIAgkAZwIFCnVzZXJXZWlnaHQFFHJlZmVycmFsTWluR1d4QW1vdW50BQNuaWwFA25pbAMJAAACBRFhY3RpdmVSZWZlcnJhbEludgURYWN0aXZlUmVmZXJyYWxJbnYEC3JlZmVycmFsSW52AwMJAAACBQhyZWZlcnJlcgUEdW5pdAYJAGYCBRRyZWZlcnJhbE1pbkdXeEFtb3VudAUKdXNlcldlaWdodAUEdW5pdAQOcmVmZXJyZXJSZXdhcmQJAGsDBQ91c2VyVG90YWxBbW91bnQFFnJlZmVycmVyUmV3YXJkUGVybWlsbGUFBVNDQUxFBA5yZWZlcnJhbFJld2FyZAkAawMFD3VzZXJUb3RhbEFtb3VudAUWcmVmZXJyYWxSZXdhcmRQZXJtaWxsZQUFU0NBTEUJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAgxpbmNVbmNsYWltZWQJAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ5yZWZlcnJlclJld2FyZAkAzAgCBQ5yZWZlcnJhbFJld2FyZAUDbmlsBQNuaWwDCQAAAgULcmVmZXJyYWxJbnYFC3JlZmVycmFsSW52BBFwcm9jZXNzaW5nQWN0aW9ucwMJAGYCCQBlAgUKdXNlcnNDb3VudAABBQtjdXJyZW50VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAkAZAIFC2N1cnJlbnRVc2VyAAEFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleU5leHRQcm9jZXNzZWRQZXJpb2QACQBkAgUNY3VycmVudFBlcmlvZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleVByb2Nlc3NpbmdTdGFnZQAFA25pbAkAlAoCBRFwcm9jZXNzaW5nQWN0aW9ucwYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAhhpbnZhbGlkIHByb2Nlc3Npbmcgc3RhZ2UBaQEPZmluYWxpemVXcmFwcGVyAQdjb3VudGVyBAZyZXN1bHQKAAFACQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUGcmVzdWx0BQZyZXN1bHQDCQEBIQEFBnJlc3VsdAMJAAACBQdjb3VudGVyBQhtYXhEZXB0aAkAAgECEk5vdGhpbmcgdG8gcHJvY2VzcwkAlAoCBQNuaWwFBHVuaXQDCQBmAgUHY291bnRlcgAACQCUCgIFA25pbAkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgkAZQIFB2NvdW50ZXIAAQUDbmlsBQNuaWwJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBHXByb2Nlc3NQZW5kaW5nUGVyaW9kc0FuZFVzZXJzAAkAlAoCBQNuaWwJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIFCG1heERlcHRoBQNuaWwFA25pbAFpAQdkZXBvc2l0AAQIY2ZnQXJyYXkJARVyZWFkQ29uZmlnQXJyYXlPckZhaWwAAwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEJANkEAQkAkQMCBQhjZmdBcnJheQUWSWR4Q2ZnUGFjZW1ha2VyQWRkcmVzcwkAAgECFFdyb25nIGNhbGxlciBhZGRyZXNzBAdhc3NldElkCQEFdmFsdWUBCAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQDCQECIT0CBQdhc3NldElkCQDZBAEJAJEDAgUIY2ZnQXJyYXkFDUlkeENmZ0Fzc2V0SWQJAAIBAhNXcm9uZyBwYXltZW50IGFzc2V0BAZwZXJpb2QJAQpuZXh0UGVyaW9kAAQGZGVsdGFICQBlAgUGaGVpZ2h0CQEPZ2V0TnVtYmVyT3JGYWlsAQkBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQABAxlbWlzc2lvblJhdGUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRBlbWlzc2lvbkNvbnRyYWN0CQEWa2V5UmF0ZVBlckJsb2NrQ3VycmVudAAJAKwCAgkArAICAhxtYW5kYXRvcnkgZW1pc3Npb25fY29udHJhY3QuCQEWa2V5UmF0ZVBlckJsb2NrQ3VycmVudAACDyBpcyBub3QgZGVmaW5lZAQGd2VpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUPZmFjdG9yeUNvbnRyYWN0CQEUa2V5UG9vbFdlaWdodFZpcnR1YWwACQCsAgIJAKwCAgIbbWFuZGF0b3J5IGZhY3RvcnlfY29udHJhY3QuCQEUa2V5UG9vbFdlaWdodFZpcnR1YWwAAg8gaXMgbm90IGRlZmluZWQECWF1eEFtb3VudAkAawMJAGgCBQZkZWx0YUgFBndlaWdodAUMZW1pc3Npb25SYXRlBQVNVUxUOAQCZW0JAPwHBAUQZW1pc3Npb25Db250cmFjdAIEZW1pdAkAzAgCBQlhdXhBbW91bnQFA25pbAUDbmlsAwkAAAIFAmVtBQJlbQQLbWF0Y2hlclBhcnQICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BApwYXlvdXRJbmZvCQEQUGVyaW9kUGF5b3V0SW5mbwMFBnBlcmlvZAULbWF0Y2hlclBhcnQFCWF1eEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleUxhdGVzdFBlcmlvZAAFBnBlcmlvZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmtleUhlaWdodEZvclBlcmlvZAEFBnBlcmlvZAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEda2V5QXV4RW1pc3Npb25SZXdhcmRGb3JQZXJpb2QBBQZwZXJpb2QFCWF1eEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQABQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEFBnBlcmlvZAULbWF0Y2hlclBhcnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlOZXh0UGVyaW9kAAkAZAIFBnBlcmlvZAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFrZXlMYXN0UGF5b3V0SW5mbwAFCnBheW91dEluZm8JAMwIAgkBC1N0cmluZ0VudHJ5AgkBFGtleVBheW91dEhpc3RvcnlJbmZvAQUGcGVyaW9kBQpwYXlvdXRJbmZvBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY2xhaW1OZXh0QmF0Y2gGEGJvb3N0aW5nQ29udHJhY3QNY3VycmVudFBlcmlvZAtjdXJyZW50VXNlcgVkZXB0aBB0b3RhbEZyb21NYXRjaGVyEXRvdGFsRnJvbUVtaXNzaW9uAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIkU2hvdWxkIGJlIGNhbGxlZCBieSB0aGlzIHNjcmlwdCBvbmx5BA9wZXJpb2RBbmRUb3RhbHMJAQ1jbGFpbUludGVybmFsBgUQYm9vc3RpbmdDb250cmFjdAUNY3VycmVudFBlcmlvZAULY3VycmVudFVzZXIFBWRlcHRoBRB0b3RhbEZyb21NYXRjaGVyBRF0b3RhbEZyb21FbWlzc2lvbgkAlAoCBQNuaWwFD3BlcmlvZEFuZFRvdGFscwFpAQtjbGFpbVJld2FyZAAEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBA0kdDAxOTkwNTIwMDMxCQERY29tbW9uQ2xhaW1SZXdhcmQCBQdhZGRyZXNzBQR1bml0BAZwZXJpb2QIBQ0kdDAxOTkwNTIwMDMxAl8xBBFhbW91bnRGcm9tTWF0Y2hlcggFDSR0MDE5OTA1MjAwMzECXzIEEmFtb3VudEZyb21FbWlzc2lvbggFDSR0MDE5OTA1MjAwMzECXzMEB3VzZXJJZHgIBQ0kdDAxOTkwNTIwMDMxAl80BAhjZmdBcnJheQgFDSR0MDE5OTA1MjAwMzECXzUEE25leHRQcm9jZXNzZWRQZXJpb2QIBQ0kdDAxOTkwNTIwMDMxAl82BA9jbGFpbWVkUmVmZXJyYWwKAAFACQD8BwQFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAIFY2xhaW0JAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQkA/AcEBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwCBWNsYWltCQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUFA25pbAUDbmlsAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBG2tleU5leHRVbmxhaW1lZFBlcmlvZE9mVXNlcgEFB3VzZXJJZHgFBnBlcmlvZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGQCBRFhbW91bnRGcm9tTWF0Y2hlcgUSYW1vdW50RnJvbUVtaXNzaW9uCQDZBAEJAJEDAgUIY2ZnQXJyYXkFDUlkeENmZ0Fzc2V0SWQJAMwIAgkBDEhpc3RvcnlFbnRyeQcCBWNsYWltBQdhZGRyZXNzCQBkAgURYW1vdW50RnJvbU1hdGNoZXIFD2NsYWltZWRSZWZlcnJhbAUSYW1vdW50RnJvbUVtaXNzaW9uBQZwZXJpb2QFE25leHRQcm9jZXNzZWRQZXJpb2QFAWkFA25pbAkAzAgCCQBkAgURYW1vdW50RnJvbU1hdGNoZXIFD2NsYWltZWRSZWZlcnJhbAkAzAgCBRJhbW91bnRGcm9tRW1pc3Npb24FA25pbAFpARNjbGFpbVJld2FyZFJFQURPTkxZAQdhZGRyZXNzBAxjbGFpbVJlc3VsdHMJARFjb21tb25DbGFpbVJld2FyZAIFB2FkZHJlc3MFBHVuaXQEEXJlZmVycmFsVW5jbGFpbWVkCQELdmFsdWVPckVsc2UCCQCaCAIFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAkBFGtleVVuY2xhaW1lZFJlZmVycmFsAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQUHYWRkcmVzcwAABAZhbW91bnQJAGQCCQBkAggFDGNsYWltUmVzdWx0cwJfMggFDGNsYWltUmVzdWx0cwJfMwURcmVmZXJyYWxVbmNsYWltZWQEBmNoZWNrMQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhFjbGFpbVJlc3VsdHMuXzI6IAkApAMBCAUMY2xhaW1SZXN1bHRzAl8yAhIgY2xhaW1SZXN1bHRzLl8zOiAJAKQDAQgFDGNsYWltUmVzdWx0cwJfMwIUIHJlZmVycmFsVW5jbGFpbWVkOiAJAKQDAQURcmVmZXJyYWxVbmNsYWltZWQDCQAAAgUGY2hlY2sxBQZjaGVjazEJAJQKAgUDbmlsBQZhbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEcY2xhaW1SZXdhcmRQYWdpbmF0ZWRSRUFET05MWQIHYWRkcmVzcwtzdGFydFBlcmlvZAQNJHQwMjEyNzEyMTM4OAkBEWNvbW1vbkNsYWltUmV3YXJkAgUHYWRkcmVzcwMJAGYCAAAFC3N0YXJ0UGVyaW9kBQR1bml0BQtzdGFydFBlcmlvZAQGcGVyaW9kCAUNJHQwMjEyNzEyMTM4OAJfMQQLZnJvbU1hdGNoZXIIBQ0kdDAyMTI3MTIxMzg4Al8yBAxmcm9tRW1pc3Npb24IBQ0kdDAyMTI3MTIxMzg4Al8zBAZhbW91bnQJAGQCBQtmcm9tTWF0Y2hlcgUMZnJvbUVtaXNzaW9uCQCUCgIFA25pbAkAlAoCBQZhbW91bnQFBnBlcmlvZAFpARtjbGFpbVJld2FyZERldGFpbGVkUkVBRE9OTFkBB2FkZHJlc3MEDSR0MDIxNjM5MjE3MTQJARFjb21tb25DbGFpbVJld2FyZAIFB2FkZHJlc3MFBHVuaXQEB2lnbm9yZWQIBQ0kdDAyMTYzOTIxNzE0Al8xBAtmcm9tTWF0Y2hlcggFDSR0MDIxNjM5MjE3MTQCXzIEDGZyb21FbWlzc2lvbggFDSR0MDIxNjM5MjE3MTQCXzMJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQkAZAIFC2Zyb21NYXRjaGVyBQxmcm9tRW1pc3Npb24JAMwIAgkApAMBBQtmcm9tTWF0Y2hlcgkAzAgCCQCkAwEFDGZyb21FbWlzc2lvbgUDbmlsBQNTRVABaQEkY2xhaW1SZXdhcmREZXRhaWxlZFBhZ2luYXRlZFJFQURPTkxZAgdhZGRyZXNzC3N0YXJ0UGVyaW9kBA0kdDAyMjAxMDIyMTI3CQERY29tbW9uQ2xhaW1SZXdhcmQCBQdhZGRyZXNzAwkAZgIAAAULc3RhcnRQZXJpb2QFBHVuaXQFC3N0YXJ0UGVyaW9kBAZwZXJpb2QIBQ0kdDAyMjAxMDIyMTI3Al8xBAtmcm9tTWF0Y2hlcggFDSR0MDIyMDEwMjIxMjcCXzIEDGZyb21FbWlzc2lvbggFDSR0MDIyMDEwMjIxMjcCXzMJAJQKAgUDbmlsCQCUCgIJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBCQBkAgULZnJvbU1hdGNoZXIFDGZyb21FbWlzc2lvbgkAzAgCCQCkAwEFC2Zyb21NYXRjaGVyCQDMCAIJAKQDAQUMZnJvbUVtaXNzaW9uBQNuaWwFA1NFUAUGcGVyaW9kAWkBHWxhdGVzdEZpbmFsaXplZFBlcmlvZFJFQURPTkxZAQdhZGRyZXNzCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEPa2V5TGF0ZXN0UGVyaW9kAAD///////////8BAWkBIWxhdGVzdEZpbmFsaXplZFBlcmlvZEluZm9SRUFET05MWQEHYWRkcmVzcwkAlAoCBQNuaWwJAQ5nZXRTdHJpbmdCeUtleQEJARFrZXlMYXN0UGF5b3V0SW5mbwABaQEVY2FsY0d3eFBhcmFtc1JFQURPTkxZAw5nd3hBbW91bnRTdGFydA9sb2NrU3RhcnRIZWlnaHQSbG9ja0R1cmF0aW9uQmxvY2tzBA1sb2NrRW5kSGVpZ2h0CQBkAgUPbG9ja1N0YXJ0SGVpZ2h0BRJsb2NrRHVyYXRpb25CbG9ja3MEDHNjYWxlOFBhcmFtSwkBAS0BCQBrAwUOZ3d4QW1vdW50U3RhcnQFBVNDQUxFBRJsb2NrRHVyYXRpb25CbG9ja3MEDHNjYWxlOFBhcmFtQgkAaAIJAGsDBQ5nd3hBbW91bnRTdGFydAUFU0NBTEUFEmxvY2tEdXJhdGlvbkJsb2NrcwUNbG9ja0VuZEhlaWdodAkAlAoCBQNuaWwJAMwIAgUMc2NhbGU4UGFyYW1LCQDMCAIFDHNjYWxlOFBhcmFtQgkAzAgCCQEKbmV4dFBlcmlvZAAFA25pbAFpARpjYWxjR3d4QW1vdW50U3RhcnRSRUFET05MWQMMd3hMb2NrQW1vdW50DGxvY2tEdXJhdGlvbg9tYXhMb2NrRHVyYXRpb24EB2NvZWZmWDgJAGsDBQxsb2NrRHVyYXRpb24FBU1VTFQ4BQ9tYXhMb2NrRHVyYXRpb24EDmdXeEFtb3VudFN0YXJ0CQBrAwUMd3hMb2NrQW1vdW50BQdjb2VmZlg4BQVNVUxUOAkAlAoCBQNuaWwJAMwIAgUOZ1d4QW1vdW50U3RhcnQFA25pbAFpAQtjb25zdHJ1Y3RvcgQMd3hBc3NldElkU3RyGm1hdGNoZXJQYWNlbWFrZXJBZGRyZXNzU3RyGmJvb3N0aW5nQ29udHJhY3RBZGRyZXNzU3RyCG1heERlcHRoAwkBAiE9AgUEdGhpcwgFAWkGY2FsbGVyCQACAQIObm90IGF1dGhvcml6ZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCWtleUNvbmZpZwAJAQxmb3JtYXRDb25maWcEBQx3eEFzc2V0SWRTdHIFGm1hdGNoZXJQYWNlbWFrZXJBZGRyZXNzU3RyBRpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgUIbWF4RGVwdGgFA25pbAFpAQ1jb25zdHJ1Y3RvclYyAQ5mYWN0b3J5QWRkcmVzcwMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECDm5vdCBhdXRob3JpemVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFrZXlGYWN0b3J5QWRkcmVzcwAFDmZhY3RvcnlBZGRyZXNzBQNuaWwBaQENY29uc3RydWN0b3JWMwEPZW1pc3Npb25BZGRyZXNzAwkBAiE9AgUEdGhpcwgFAWkGY2FsbGVyCQACAQIObm90IGF1dGhvcml6ZWQEEGluaXRMYXRlc3RQZXJpb2QDCQEJaXNEZWZpbmVkAQkAmggCBQR0aGlzCQEPa2V5TGF0ZXN0UGVyaW9kAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5TGF0ZXN0UGVyaW9kAAD///////////8BBQNuaWwJAM0IAgUQaW5pdExhdGVzdFBlcmlvZAkBC1N0cmluZ0VudHJ5AgkBEmtleUVtaXNzaW9uQWRkcmVzcwAFD2VtaXNzaW9uQWRkcmVzcwFpARVvbkVtaXNzaW9uRm9yR3d4U3RhcnQAAwkBAiE9AggFAWkGY2FsbGVyBQ9mYWN0b3J5Q29udHJhY3QJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAR9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0AAUGaGVpZ2h0BQNuaWwBaQEjbGF0ZXN0UGVyaW9kRW1pc3Npb25SZXdhcmRzUkVBRE9OTFkBB2FkZHJlc3MEBnBlcmlvZAkBCm5leHRQZXJpb2QACQCUCgIFA25pbAkAzAgCCQEOZ2V0TnVtYmVyQnlLZXkBCQEda2V5QXV4RW1pc3Npb25SZXdhcmRGb3JQZXJpb2QBBQZwZXJpb2QFA25pbAFpAQVjYWxjRAULeDFCaWdJbnRTdHILeDJCaWdJbnRTdHIMYW1wQmlnSW50U3RyE2FQcmVjaXNpb25CaWdJbnRTdHIYdGFyZ2V0UHJlY2lzaW9uQmlnSW50U3RyBAZuQ29pbnMJALYCAQACBAphUHJlY2lzaW9uCQCnAwEFE2FQcmVjaXNpb25CaWdJbnRTdHIED3RhcmdldFByZWNpc2lvbgkApwMBBRh0YXJnZXRQcmVjaXNpb25CaWdJbnRTdHIEAngxCQCnAwEFC3gxQmlnSW50U3RyBAJ4MgkApwMBBQt4MkJpZ0ludFN0cgQDYW1wCQC5AgIJAKcDAQUMYW1wQmlnSW50U3RyBQphUHJlY2lzaW9uBAFzCQC3AgIFAngxBQJ4MgMJAAACBQFzBQp6ZXJvQmlnSW50CQCUCgIFA25pbAkApgMBBQp6ZXJvQmlnSW50BANhbm4JALkCAgUDYW1wBQZuQ29pbnMEA2FycgkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcFA25pbAoBBGNhbGMCA2FjYwNjdXIEDSR0MDI1NjE2MjU4MDUFA2FjYwQBZAgFDSR0MDI1NjE2MjU4MDUCXzEEBWRQcmV2CAUNJHQwMjU2MTYyNTgwNQJfMgQCZHAJALoCAgkAuQICCQC5AgIFAWQFAWQFAWQJALkCAgkAuQICCQC5AgIFAngxBQJ4MgUGbkNvaW5zBQZuQ29pbnMEBWROZXh0CQC6AgIJALkCAgkAtwICCQC6AgIJALkCAgUDYW5uBQFzBQphUHJlY2lzaW9uCQC5AgIFAmRwBQZuQ29pbnMFAWQJALcCAgkAugICCQC5AgIJALgCAgUDYW5uBQphUHJlY2lzaW9uBQFkBQphUHJlY2lzaW9uCQC5AgIJALcCAgUGbkNvaW5zCQC2AgEAAQUCZHAJAJQKAgUFZE5leHQFAWQEDSR0MDI2MDE4MjYwNjgKAAIkbAUDYXJyCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQFzBQR1bml0CgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQRjYWxjAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA3CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcEBWROZXh0CAUNJHQwMjYwMTgyNjA2OAJfMQQFZFByZXYIBQ0kdDAyNjAxODI2MDY4Al8yBAVkRGlmZgkBA2FicwEJALgCAgUFZE5leHQJAQV2YWx1ZQEFBWRQcmV2AwkAwAICBQ90YXJnZXRQcmVjaXNpb24FBWREaWZmCQCUCgIFA25pbAkApgMBBQVkTmV4dAkAAgEJAKwCAgIdRCBjYWxjdWxhdGlvbiBlcnJvciwgZERpZmYgPSAJAKYDAQUFZERpZmYBaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDZBAEFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAIFFWNoZWNrTWFuYWdlclB1YmxpY0tleQUVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29uZmlybU1hbmFnZXIABAJwbQkBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQFaGFzUE0DCQEJaXNEZWZpbmVkAQUCcG0GCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFBWhhc1BNBQVoYXNQTQQHY2hlY2tQTQMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAnBtBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQdjaGVja1BNBQdjaGVja1BNCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlNYW5hZ2VyUHVibGljS2V5AAkA2AQBCQEFdmFsdWUBBQJwbQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXmrC2gS", "chainId": 84, "height": 2175401, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9rLwGED59tdymuYLAbVXxJwupzQpEqdMW6uLfMLLVeVb Next: 5K3LmBfqMCKR47t9JpMQqbtmCVnhKF52B8HX78jrX7Z6 Diff:
OldNewDifferences
507507 let cj = bC(cg, unit)
508508 let ck = valueOrElse(getInteger(aC, L(z, cg)), 0)
509509 let cl = ((cj._2 + cj._3) + ck)
510- $Tuple2(nil, cl)
510+ let cm = throw(((((("claimResults._2: " + toString(cj._2)) + " claimResults._3: ") + toString(cj._3)) + " referralUnclaimed: ") + toString(ck)))
511+ if ((cm == cm))
512+ then $Tuple2(nil, cl)
513+ else throw("Strict value is not equal to itself.")
511514 }
512515
513516
514517
515518 @Callable(aK)
516519 func claimRewardPaginatedREADONLY (cg,bD) = {
517- let cm = bC(cg, if ((0 > bD))
520+ let cn = bC(cg, if ((0 > bD))
518521 then unit
519522 else bD)
520- let ap = cm._1
521- let cn = cm._2
522- let co = cm._3
523- let cl = (cn + co)
523+ let ap = cn._1
524+ let co = cn._2
525+ let cp = cn._3
526+ let cl = (co + cp)
524527 $Tuple2(nil, $Tuple2(cl, ap))
525528 }
526529
528531
529532 @Callable(aK)
530533 func claimRewardDetailedREADONLY (cg) = {
531- let cp = bC(cg, unit)
532- let cq = cp._1
533- let cn = cp._2
534- let co = cp._3
535- $Tuple2(nil, makeString(["%d%d%d", toString((cn + co)), toString(cn), toString(co)], a))
534+ let cq = bC(cg, unit)
535+ let cr = cq._1
536+ let co = cq._2
537+ let cp = cq._3
538+ $Tuple2(nil, makeString(["%d%d%d", toString((co + cp)), toString(co), toString(cp)], a))
536539 }
537540
538541
539542
540543 @Callable(aK)
541544 func claimRewardDetailedPaginatedREADONLY (cg,bD) = {
542- let cr = bC(cg, if ((0 > bD))
545+ let cs = bC(cg, if ((0 > bD))
543546 then unit
544547 else bD)
545- let ap = cr._1
546- let cn = cr._2
547- let co = cr._3
548- $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((cn + co)), toString(cn), toString(co)], a), ap))
548+ let ap = cs._1
549+ let co = cs._2
550+ let cp = cs._3
551+ $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((co + cp)), toString(co), toString(cp)], a), ap))
549552 }
550553
551554
561564
562565
563566 @Callable(aK)
564-func calcGwxParamsREADONLY (cs,ct,cu) = {
565- let cv = (ct + cu)
566- let cw = -(fraction(cs, c, cu))
567- let cx = (fraction(cs, c, cu) * cv)
568- $Tuple2(nil, [cw, cx, bm()])
567+func calcGwxParamsREADONLY (ct,cu,cv) = {
568+ let cw = (cu + cv)
569+ let cx = -(fraction(ct, c, cv))
570+ let cy = (fraction(ct, c, cv) * cw)
571+ $Tuple2(nil, [cx, cy, bm()])
569572 }
570573
571574
572575
573576 @Callable(aK)
574-func calcGwxAmountStartREADONLY (cy,cz,cA) = {
575- let cB = fraction(cz, d, cA)
576- let bH = fraction(cy, cB, d)
577+func calcGwxAmountStartREADONLY (cz,cA,cB) = {
578+ let cC = fraction(cA, d, cB)
579+ let bH = fraction(cz, cC, d)
577580 $Tuple2(nil, [bH])
578581 }
579582
587590
588591
589592 @Callable(aK)
590-func constructorV2 (cC) = if ((this != aK.caller))
593+func constructorV2 (cD) = if ((this != aK.caller))
591594 then throw("not authorized")
592- else [StringEntry(r(), cC)]
595+ else [StringEntry(r(), cD)]
593596
594597
595598
596599 @Callable(aK)
597-func constructorV3 (cD) = if ((this != aK.caller))
600+func constructorV3 (cE) = if ((this != aK.caller))
598601 then throw("not authorized")
599602 else {
600- let cE = if (isDefined(getInteger(this, ah())))
603+ let cF = if (isDefined(getInteger(this, ah())))
601604 then nil
602605 else [IntegerEntry(ah(), -1)]
603- (cE :+ StringEntry(u(), cD))
606+ (cF :+ StringEntry(u(), cE))
604607 }
605608
606609
621624
622625
623626 @Callable(aK)
624-func calcD (cF,cG,cH,cI,cJ) = {
625- let cK = toBigInt(2)
626- let cL = parseBigIntValue(cI)
627+func calcD (cG,cH,cI,cJ,cK) = {
628+ let cL = toBigInt(2)
627629 let cM = parseBigIntValue(cJ)
628- let cN = parseBigIntValue(cF)
630+ let cN = parseBigIntValue(cK)
629631 let cO = parseBigIntValue(cG)
630- let cP = (parseBigIntValue(cH) * cL)
631- let aR = (cN + cO)
632+ let cP = parseBigIntValue(cH)
633+ let cQ = (parseBigIntValue(cI) * cM)
634+ let aR = (cO + cP)
632635 if ((aR == e))
633636 then $Tuple2(nil, toString(e))
634637 else {
635- let cQ = (cP * cK)
636- let cR = [1, 2, 3, 4, 5, 6, 7]
637- func cS (cT,cU) = {
638- let cV = cT
639- let cW = cV._1
640- let cX = cV._2
641- let cY = (((cW * cW) * cW) / (((cN * cO) * cK) * cK))
642- let cZ = (((((cQ * aR) / cL) + (cY * cK)) * cW) / ((((cQ - cL) * cW) / cL) + ((cK + toBigInt(1)) * cY)))
643- $Tuple2(cZ, cW)
638+ let cR = (cQ * cL)
639+ let cS = [1, 2, 3, 4, 5, 6, 7]
640+ func cT (cU,cV) = {
641+ let cW = cU
642+ let cX = cW._1
643+ let cY = cW._2
644+ let cZ = (((cX * cX) * cX) / (((cO * cP) * cL) * cL))
645+ let da = (((((cR * aR) / cM) + (cZ * cL)) * cX) / ((((cR - cM) * cX) / cM) + ((cL + toBigInt(1)) * cZ)))
646+ $Tuple2(da, cX)
644647 }
645648
646- let da = {
647- let db = cR
648- let dc = size(db)
649- let dd = $Tuple2(aR, unit)
650- func de (df,dg) = if ((dg >= dc))
651- then df
652- else cS(df, db[dg])
649+ let db = {
650+ let dc = cS
651+ let dd = size(dc)
652+ let de = $Tuple2(aR, unit)
653+ func df (dg,dh) = if ((dh >= dd))
654+ then dg
655+ else cT(dg, dc[dh])
653656
654- func dh (df,dg) = if ((dg >= dc))
655- then df
657+ func di (dg,dh) = if ((dh >= dd))
658+ then dg
656659 else throw("List size exceeds 7")
657660
658- dh(de(de(de(de(de(de(de(dd, 0), 1), 2), 3), 4), 5), 6), 7)
661+ di(df(df(df(df(df(df(df(de, 0), 1), 2), 3), 4), 5), 6), 7)
659662 }
660- let cZ = da._1
661- let cX = da._2
662- let di = m((cZ - value(cX)))
663- if ((cM >= di))
664- then $Tuple2(nil, toString(cZ))
665- else throw(("D calculation error, dDiff = " + toString(di)))
663+ let da = db._1
664+ let cY = db._2
665+ let dj = m((da - value(cY)))
666+ if ((cN >= dj))
667+ then $Tuple2(nil, toString(da))
668+ else throw(("D calculation error, dDiff = " + toString(dj)))
666669 }
667670 }
668671
669672
670673
671674 @Callable(aK)
672-func setManager (dj) = {
673- let dk = aT(aK)
674- if ((dk == dk))
675+func setManager (dk) = {
676+ let dl = aT(aK)
677+ if ((dl == dl))
675678 then {
676- let dl = fromBase58String(dj)
677- if ((dl == dl))
678- then [StringEntry(aO(), dj)]
679+ let dm = fromBase58String(dk)
680+ if ((dm == dm))
681+ then [StringEntry(aO(), dk)]
679682 else throw("Strict value is not equal to itself.")
680683 }
681684 else throw("Strict value is not equal to itself.")
685688
686689 @Callable(aK)
687690 func confirmManager () = {
688- let dm = aS()
689- let dn = if (isDefined(dm))
691+ let dn = aS()
692+ let do = if (isDefined(dn))
690693 then true
691694 else throw("No pending manager")
692- if ((dn == dn))
695+ if ((do == do))
693696 then {
694- let do = if ((aK.callerPublicKey == value(dm)))
697+ let dp = if ((aK.callerPublicKey == value(dn)))
695698 then true
696699 else throw("You are not pending manager")
697- if ((do == do))
698- then [StringEntry(aN(), toBase58String(value(dm))), DeleteEntry(aO())]
700+ if ((dp == dp))
701+ then [StringEntry(aN(), toBase58String(value(dn))), DeleteEntry(aO())]
699702 else throw("Strict value is not equal to itself.")
700703 }
701704 else throw("Strict value is not equal to itself.")
702705 }
703706
704707
705-@Verifier(dp)
706-func dq () = {
707- let dr = {
708+@Verifier(dq)
709+func dr () = {
710+ let ds = {
708711 let aQ = aP()
709712 if ($isInstanceOf(aQ, "ByteVector"))
710713 then {
712715 aV
713716 }
714717 else if ($isInstanceOf(aQ, "Unit"))
715- then dp.senderPublicKey
718+ then dq.senderPublicKey
716719 else throw("Match error")
717720 }
718- sigVerify(dp.bodyBytes, dp.proofs[0], dr)
721+ sigVerify(dq.bodyBytes, dq.proofs[0], ds)
719722 }
720723
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 func L (M,N) = makeString(["%s%s%s%s", "unclaimedReferral", M, N], a)
8282
8383
8484 let O = l(u())
8585
8686 let P = addressFromStringValue(O)
8787
8888 let Q = 1
8989
9090 let R = 2
9191
9292 let S = 3
9393
9494 let T = 4
9595
9696 func U () = "%s__config"
9797
9898
9999 func V () = split(l(U()), a)
100100
101101
102102 func W (X,Y,Z,q) = makeString(["%s%s%s%d", X, Y, Z, toString(q)], a)
103103
104104
105105 func aa () = {
106106 let ab = V()
107107 valueOrErrorMessage(addressFromString(ab[S]), "boosting contract address is not defined")
108108 }
109109
110110
111111 func ac () = "%s%s__gwxRewardEmissionPart__startHeight"
112112
113113
114114 func ad () = "%s__nextUserNum"
115115
116116
117117 func ae () = "%s%s__ratePerBlock__current"
118118
119119
120120 func af () = "%s%s__poolWeight__GWXvirtualPOOL"
121121
122122
123123 func ag () = "%s__nextProcessedUser"
124124
125125
126126 func ah () = "%s__latestPeriod"
127127
128128
129129 func ai () = "%s__nextPeriod"
130130
131131
132132 func aj () = "%s__processingStage"
133133
134134
135135 func ak () = "%s__nextProcessedPeriod"
136136
137137
138138 func al (am) = makeString(["%s%d__nextClaimedPeriod", toString(am)], a)
139139
140140
141141 func an (am) = makeString(["%s%d__lastProcessedPeriod", toString(am)], a)
142142
143143
144144 func ao (ap) = makeString(["%s%d__startHeightForPeriod", toString(ap)], a)
145145
146146
147147 func aq (ap) = makeString(["%s%d__auxEmissionReward", toString(ap)], a)
148148
149149
150150 func ar (ap) = makeString(["%s%d__totalAmountForPeriod", toString(ap)], a)
151151
152152
153153 func as () = "%s__lastPayoutInfo"
154154
155155
156156 func at (ap,au,av) = makeString(["%d%d%d", toString(ap), toString(au), toString(av)], a)
157157
158158
159159 func aw (ap) = makeString(["%s%s%d__payouts__history", toString(ap)], a)
160160
161161
162162 func ax (ap) = makeString(["%s%d__totalWeightForPeriod", toString(ap)], a)
163163
164164
165165 func ay (ap,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "k", toString(ap)], a)
166166
167167
168168 func az (ap,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "b", toString(ap)], a)
169169
170170
171171 func aA (ap,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "weight", toString(ap)], a)
172172
173173
174174 func aB () = makeString(["%s%s", "config", "referralsContractAddress"], a)
175175
176176
177177 let aC = addressFromStringValue(l(aB()))
178178
179179 func aD (aE,aF,aG,aH,aI,aJ,aK) = {
180180 let aL = makeString(["%s%s%s%s__history", aE, aF, toBase58String(aK.transactionId)], a)
181181 let aM = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aG), toString(aH), toString(aI), toString(aJ)], a)
182182 StringEntry(aL, aM)
183183 }
184184
185185
186186 func aN () = "%s__managerPublicKey"
187187
188188
189189 func aO () = "%s__pendingManagerPublicKey"
190190
191191
192192 func aP () = {
193193 let aQ = getString(aN())
194194 if ($isInstanceOf(aQ, "String"))
195195 then {
196196 let aR = aQ
197197 fromBase58String(aR)
198198 }
199199 else if ($isInstanceOf(aQ, "Unit"))
200200 then unit
201201 else throw("Match error")
202202 }
203203
204204
205205 func aS () = {
206206 let aQ = getString(aO())
207207 if ($isInstanceOf(aQ, "String"))
208208 then {
209209 let aR = aQ
210210 fromBase58String(aR)
211211 }
212212 else if ($isInstanceOf(aQ, "Unit"))
213213 then unit
214214 else throw("Match error")
215215 }
216216
217217
218218 func aT (aK) = {
219219 let aU = throw("Permission denied")
220220 let aQ = aP()
221221 if ($isInstanceOf(aQ, "ByteVector"))
222222 then {
223223 let aV = aQ
224224 if ((aK.callerPublicKey == aV))
225225 then true
226226 else aU
227227 }
228228 else if ($isInstanceOf(aQ, "Unit"))
229229 then if ((aK.caller == this))
230230 then true
231231 else aU
232232 else throw("Match error")
233233 }
234234
235235
236236 func aW (aX,aY,ap,am) = {
237237 let aZ = an(am)
238238 let ba = ay(ap, am)
239239 let bb = getInteger(aX, ba)
240240 let bc = aA(ap, am)
241241 if (isDefined(bb))
242242 then {
243243 let bd = value(bb)
244244 let be = value(getInteger(aX, az(ap, am)))
245245 let bf = ((bd * aY) + be)
246246 if ((bf > 0))
247247 then $Tuple2((bf / c), [IntegerEntry(aZ, ap), IntegerEntry(bc, bf)])
248248 else $Tuple2(0, nil)
249249 }
250250 else {
251251 let bg = getInteger(this, aZ)
252252 if (if (isDefined(bg))
253253 then (ap >= value(bg))
254254 else false)
255255 then {
256256 let bh = value(bg)
257257 let bd = value(getInteger(aX, ay(bh, am)))
258258 let be = value(getInteger(aX, az(bh, am)))
259259 let bf = ((bd * aY) + be)
260260 if ((bf > 0))
261261 then $Tuple2((bf / c), [IntegerEntry(bc, bf)])
262262 else $Tuple2(0, nil)
263263 }
264264 else $Tuple2(0, nil)
265265 }
266266 }
267267
268268
269269 func bi (aX,aY,ap,am) = {
270270 let bc = aA(ap, am)
271271 let bj = getInteger(bc)
272272 let aQ = bj
273273 if ($isInstanceOf(aQ, "Unit"))
274274 then 0
275275 else if ($isInstanceOf(aQ, "Int"))
276276 then {
277277 let bf = aQ
278278 (bf / c)
279279 }
280280 else throw("Match error")
281281 }
282282
283283
284284 func bk (Z,bl) = {
285285 let i = makeString(["%s%s%s", "mapping", "user2num", bl], a)
286286 parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Z)), i), ((("User address " + bl) + " is not found in boosting contract data, key=") + i)))
287287 }
288288
289289
290290 func bm () = h(ai())
291291
292292
293293 func bn (bo,ap,aF,bp,bq,br) = {
294294 let bs = invoke(this, "claimNextBatch", [bo, ap, aF, bp, bq, br], nil)
295295 if ((bs == bs))
296296 then {
297297 let aQ = bs
298298 if ($isInstanceOf(aQ, "(Int, Int, Int)"))
299299 then {
300300 let bt = aQ
301301 bt
302302 }
303303 else throw("Incorrect invoke result")
304304 }
305305 else throw("Strict value is not equal to itself.")
306306 }
307307
308308
309309 func bu (bo,aI,bv,bp,bw,bx) = {
310310 let aX = Address(bo)
311311 let aJ = h(ak())
312312 let by = h(ax(aI))
313313 let aY = h(ao(aI))
314314 let bz = bi(aX, aY, aI, bv)
315315 let bA = fraction(h(ar(aI)), bz, by)
316316 let bB = fraction(h(aq(aI)), bz, by)
317317 if (if ((0 >= bp))
318318 then true
319319 else ((aI + 1) >= aJ))
320320 then $Tuple3((aI + 1), (bw + bA), (bx + bB))
321321 else bn(bo, (aI + 1), bv, (bp - 1), (bw + bA), (bx + bB))
322322 }
323323
324324
325325 func bC (bl,bD) = {
326326 let ab = V()
327327 let bE = bk(ab[S], bl)
328328 let aI = if ((bD != unit))
329329 then value(bD)
330330 else h(al(bE))
331331 let bF = h(ak())
332332 if ((aI >= bF))
333333 then throw("Nothing to claim")
334334 else {
335335 let bo = fromBase58String(ab[S])
336336 let bG = bu(bo, aI, bE, b, 0, 0)
337337 let ap = bG._1
338338 let aG = bG._2
339339 let aH = bG._3
340340 $Tuple6(ap, aG, aH, bE, ab, bF)
341341 }
342342 }
343343
344344
345345 @Callable(aK)
346346 func updateReferralActivity (bl,bH) = {
347347 let bI = getString(aC, J(bl))
348348 let bJ = if ((bI == unit))
349349 then unit
350350 else invoke(aC, "updateReferralActivity", [z, bl, (bH >= C)], nil)
351351 if ((bJ == bJ))
352352 then $Tuple2(nil, unit)
353353 else throw("Strict value is not equal to itself.")
354354 }
355355
356356
357357
358358 @Callable(aK)
359359 func finalizeHelper () = {
360360 let bK = valueOrElse(getInteger(aj()), f)
361361 let aI = h(ak())
362362 let bv = h(ag())
363363 let aJ = h(ah())
364364 let bL = valueOrElse(getInteger(aa(), ad()), 0)
365365 let bM = ax(aI)
366366 let by = h(ax(aI))
367367 let aY = h(ao(aI))
368368 if ((aI > aJ))
369369 then $Tuple2(nil, false)
370370 else if ((bK == f))
371371 then {
372372 let bN = aW(aa(), aY, aI, bv)
373373 let bz = bN._1
374374 let bO = bN._2
375375 let bP = (by + bz)
376376 let bQ = if (((bL - 1) > bv))
377377 then [IntegerEntry(ag(), (bv + 1))]
378378 else [IntegerEntry(aj(), g), IntegerEntry(ag(), 0)]
379379 $Tuple2((([IntegerEntry(bM, bP)] ++ bQ) ++ bO), true)
380380 }
381381 else if ((bK == g))
382382 then {
383383 let bz = bi(aa(), aY, aI, bv)
384384 let bA = fraction(h(ar(aI)), bz, by)
385385 let bB = fraction(h(aq(aI)), bz, by)
386386 let bR = (bB + bA)
387387 let bl = getStringValue(aa(), v(bv))
388388 let bI = getString(aC, J(bl))
389389 let bJ = if ((bI == unit))
390390 then unit
391391 else invoke(aC, "updateReferralActivity", [z, bl, (bz >= C)], nil)
392392 if ((bJ == bJ))
393393 then {
394394 let bS = if (if ((bI == unit))
395395 then true
396396 else (C > bz))
397397 then unit
398398 else {
399399 let bT = fraction(bR, F, c)
400400 let bU = fraction(bR, I, c)
401401 invoke(aC, "incUnclaimed", [z, bl, bT, bU], nil)
402402 }
403403 if ((bS == bS))
404404 then {
405405 let bQ = if (((bL - 1) > bv))
406406 then [IntegerEntry(ag(), (bv + 1))]
407407 else [IntegerEntry(ak(), (aI + 1)), IntegerEntry(ag(), 0), DeleteEntry(aj())]
408408 $Tuple2(bQ, true)
409409 }
410410 else throw("Strict value is not equal to itself.")
411411 }
412412 else throw("Strict value is not equal to itself.")
413413 }
414414 else throw("invalid processing stage")
415415 }
416416
417417
418418
419419 @Callable(aK)
420420 func finalizeWrapper (bV) = {
421421 let bs = {
422422 let bW = invoke(this, "finalizeHelper", nil, nil)
423423 if ($isInstanceOf(bW, "Boolean"))
424424 then bW
425425 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
426426 }
427427 if ((bs == bs))
428428 then if (!(bs))
429429 then if ((bV == q))
430430 then throw("Nothing to process")
431431 else $Tuple2(nil, unit)
432432 else if ((bV > 0))
433433 then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bV - 1)], nil))
434434 else $Tuple2(nil, unit)
435435 else throw("Strict value is not equal to itself.")
436436 }
437437
438438
439439
440440 @Callable(aK)
441441 func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
442442
443443
444444
445445 @Callable(aK)
446446 func deposit () = {
447447 let ab = V()
448448 if ((aK.caller != Address(fromBase58String(ab[R]))))
449449 then throw("Wrong caller address")
450450 else {
451451 let bX = value(value(aK.payments[0]).assetId)
452452 if ((bX != fromBase58String(ab[Q])))
453453 then throw("Wrong payment asset")
454454 else {
455455 let ap = bm()
456456 let bY = (height - j(ac()))
457457 let bZ = valueOrErrorMessage(getInteger(P, ae()), (("mandatory emission_contract." + ae()) + " is not defined"))
458458 let ca = valueOrErrorMessage(getInteger(t, af()), (("mandatory factory_contract." + af()) + " is not defined"))
459459 let cb = fraction((bY * ca), bZ, d)
460460 let cc = invoke(P, "emit", [cb], nil)
461461 if ((cc == cc))
462462 then {
463463 let cd = value(aK.payments[0]).amount
464464 let ce = at(ap, cd, cb)
465465 [IntegerEntry(ah(), ap), IntegerEntry(ao(ap), height), IntegerEntry(aq(ap), cb), IntegerEntry(ac(), height), IntegerEntry(ar(ap), cd), IntegerEntry(ai(), (ap + 1)), StringEntry(as(), ce), StringEntry(aw(ap), ce)]
466466 }
467467 else throw("Strict value is not equal to itself.")
468468 }
469469 }
470470 }
471471
472472
473473
474474 @Callable(aK)
475475 func claimNextBatch (bo,aI,bv,bp,bq,br) = if ((aK.caller != this))
476476 then throw("Should be called by this script only")
477477 else {
478478 let cf = bu(bo, aI, bv, bp, bq, br)
479479 $Tuple2(nil, cf)
480480 }
481481
482482
483483
484484 @Callable(aK)
485485 func claimReward () = {
486486 let cg = toString(aK.caller)
487487 let ch = bC(cg, unit)
488488 let ap = ch._1
489489 let aG = ch._2
490490 let aH = ch._3
491491 let bE = ch._4
492492 let ab = ch._5
493493 let bF = ch._6
494494 let ci = {
495495 let bW = invoke(aC, "claim", [z], nil)
496496 if ($isInstanceOf(bW, "Int"))
497497 then bW
498498 else throw(($getType(invoke(aC, "claim", [z], nil)) + " couldn't be cast to Int"))
499499 }
500500 $Tuple2([IntegerEntry(al(bE), ap), ScriptTransfer(aK.caller, (aG + aH), fromBase58String(ab[Q])), aD("claim", cg, (aG + ci), aH, ap, bF, aK)], [(aG + ci), aH])
501501 }
502502
503503
504504
505505 @Callable(aK)
506506 func claimRewardREADONLY (cg) = {
507507 let cj = bC(cg, unit)
508508 let ck = valueOrElse(getInteger(aC, L(z, cg)), 0)
509509 let cl = ((cj._2 + cj._3) + ck)
510- $Tuple2(nil, cl)
510+ let cm = throw(((((("claimResults._2: " + toString(cj._2)) + " claimResults._3: ") + toString(cj._3)) + " referralUnclaimed: ") + toString(ck)))
511+ if ((cm == cm))
512+ then $Tuple2(nil, cl)
513+ else throw("Strict value is not equal to itself.")
511514 }
512515
513516
514517
515518 @Callable(aK)
516519 func claimRewardPaginatedREADONLY (cg,bD) = {
517- let cm = bC(cg, if ((0 > bD))
520+ let cn = bC(cg, if ((0 > bD))
518521 then unit
519522 else bD)
520- let ap = cm._1
521- let cn = cm._2
522- let co = cm._3
523- let cl = (cn + co)
523+ let ap = cn._1
524+ let co = cn._2
525+ let cp = cn._3
526+ let cl = (co + cp)
524527 $Tuple2(nil, $Tuple2(cl, ap))
525528 }
526529
527530
528531
529532 @Callable(aK)
530533 func claimRewardDetailedREADONLY (cg) = {
531- let cp = bC(cg, unit)
532- let cq = cp._1
533- let cn = cp._2
534- let co = cp._3
535- $Tuple2(nil, makeString(["%d%d%d", toString((cn + co)), toString(cn), toString(co)], a))
534+ let cq = bC(cg, unit)
535+ let cr = cq._1
536+ let co = cq._2
537+ let cp = cq._3
538+ $Tuple2(nil, makeString(["%d%d%d", toString((co + cp)), toString(co), toString(cp)], a))
536539 }
537540
538541
539542
540543 @Callable(aK)
541544 func claimRewardDetailedPaginatedREADONLY (cg,bD) = {
542- let cr = bC(cg, if ((0 > bD))
545+ let cs = bC(cg, if ((0 > bD))
543546 then unit
544547 else bD)
545- let ap = cr._1
546- let cn = cr._2
547- let co = cr._3
548- $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((cn + co)), toString(cn), toString(co)], a), ap))
548+ let ap = cs._1
549+ let co = cs._2
550+ let cp = cs._3
551+ $Tuple2(nil, $Tuple2(makeString(["%d%d%d", toString((co + cp)), toString(co), toString(cp)], a), ap))
549552 }
550553
551554
552555
553556 @Callable(aK)
554557 func latestFinalizedPeriodREADONLY (cg) = $Tuple2(nil, valueOrElse(getInteger(this, ah()), -1))
555558
556559
557560
558561 @Callable(aK)
559562 func latestFinalizedPeriodInfoREADONLY (cg) = $Tuple2(nil, k(as()))
560563
561564
562565
563566 @Callable(aK)
564-func calcGwxParamsREADONLY (cs,ct,cu) = {
565- let cv = (ct + cu)
566- let cw = -(fraction(cs, c, cu))
567- let cx = (fraction(cs, c, cu) * cv)
568- $Tuple2(nil, [cw, cx, bm()])
567+func calcGwxParamsREADONLY (ct,cu,cv) = {
568+ let cw = (cu + cv)
569+ let cx = -(fraction(ct, c, cv))
570+ let cy = (fraction(ct, c, cv) * cw)
571+ $Tuple2(nil, [cx, cy, bm()])
569572 }
570573
571574
572575
573576 @Callable(aK)
574-func calcGwxAmountStartREADONLY (cy,cz,cA) = {
575- let cB = fraction(cz, d, cA)
576- let bH = fraction(cy, cB, d)
577+func calcGwxAmountStartREADONLY (cz,cA,cB) = {
578+ let cC = fraction(cA, d, cB)
579+ let bH = fraction(cz, cC, d)
577580 $Tuple2(nil, [bH])
578581 }
579582
580583
581584
582585 @Callable(aK)
583586 func constructor (X,Y,Z,q) = if ((this != aK.caller))
584587 then throw("not authorized")
585588 else [StringEntry(U(), W(X, Y, Z, q))]
586589
587590
588591
589592 @Callable(aK)
590-func constructorV2 (cC) = if ((this != aK.caller))
593+func constructorV2 (cD) = if ((this != aK.caller))
591594 then throw("not authorized")
592- else [StringEntry(r(), cC)]
595+ else [StringEntry(r(), cD)]
593596
594597
595598
596599 @Callable(aK)
597-func constructorV3 (cD) = if ((this != aK.caller))
600+func constructorV3 (cE) = if ((this != aK.caller))
598601 then throw("not authorized")
599602 else {
600- let cE = if (isDefined(getInteger(this, ah())))
603+ let cF = if (isDefined(getInteger(this, ah())))
601604 then nil
602605 else [IntegerEntry(ah(), -1)]
603- (cE :+ StringEntry(u(), cD))
606+ (cF :+ StringEntry(u(), cE))
604607 }
605608
606609
607610
608611 @Callable(aK)
609612 func onEmissionForGwxStart () = if ((aK.caller != t))
610613 then throw("permissions denied")
611614 else [IntegerEntry(ac(), height)]
612615
613616
614617
615618 @Callable(aK)
616619 func latestPeriodEmissionRewardsREADONLY (cg) = {
617620 let ap = bm()
618621 $Tuple2(nil, [h(aq(ap))])
619622 }
620623
621624
622625
623626 @Callable(aK)
624-func calcD (cF,cG,cH,cI,cJ) = {
625- let cK = toBigInt(2)
626- let cL = parseBigIntValue(cI)
627+func calcD (cG,cH,cI,cJ,cK) = {
628+ let cL = toBigInt(2)
627629 let cM = parseBigIntValue(cJ)
628- let cN = parseBigIntValue(cF)
630+ let cN = parseBigIntValue(cK)
629631 let cO = parseBigIntValue(cG)
630- let cP = (parseBigIntValue(cH) * cL)
631- let aR = (cN + cO)
632+ let cP = parseBigIntValue(cH)
633+ let cQ = (parseBigIntValue(cI) * cM)
634+ let aR = (cO + cP)
632635 if ((aR == e))
633636 then $Tuple2(nil, toString(e))
634637 else {
635- let cQ = (cP * cK)
636- let cR = [1, 2, 3, 4, 5, 6, 7]
637- func cS (cT,cU) = {
638- let cV = cT
639- let cW = cV._1
640- let cX = cV._2
641- let cY = (((cW * cW) * cW) / (((cN * cO) * cK) * cK))
642- let cZ = (((((cQ * aR) / cL) + (cY * cK)) * cW) / ((((cQ - cL) * cW) / cL) + ((cK + toBigInt(1)) * cY)))
643- $Tuple2(cZ, cW)
638+ let cR = (cQ * cL)
639+ let cS = [1, 2, 3, 4, 5, 6, 7]
640+ func cT (cU,cV) = {
641+ let cW = cU
642+ let cX = cW._1
643+ let cY = cW._2
644+ let cZ = (((cX * cX) * cX) / (((cO * cP) * cL) * cL))
645+ let da = (((((cR * aR) / cM) + (cZ * cL)) * cX) / ((((cR - cM) * cX) / cM) + ((cL + toBigInt(1)) * cZ)))
646+ $Tuple2(da, cX)
644647 }
645648
646- let da = {
647- let db = cR
648- let dc = size(db)
649- let dd = $Tuple2(aR, unit)
650- func de (df,dg) = if ((dg >= dc))
651- then df
652- else cS(df, db[dg])
649+ let db = {
650+ let dc = cS
651+ let dd = size(dc)
652+ let de = $Tuple2(aR, unit)
653+ func df (dg,dh) = if ((dh >= dd))
654+ then dg
655+ else cT(dg, dc[dh])
653656
654- func dh (df,dg) = if ((dg >= dc))
655- then df
657+ func di (dg,dh) = if ((dh >= dd))
658+ then dg
656659 else throw("List size exceeds 7")
657660
658- dh(de(de(de(de(de(de(de(dd, 0), 1), 2), 3), 4), 5), 6), 7)
661+ di(df(df(df(df(df(df(df(de, 0), 1), 2), 3), 4), 5), 6), 7)
659662 }
660- let cZ = da._1
661- let cX = da._2
662- let di = m((cZ - value(cX)))
663- if ((cM >= di))
664- then $Tuple2(nil, toString(cZ))
665- else throw(("D calculation error, dDiff = " + toString(di)))
663+ let da = db._1
664+ let cY = db._2
665+ let dj = m((da - value(cY)))
666+ if ((cN >= dj))
667+ then $Tuple2(nil, toString(da))
668+ else throw(("D calculation error, dDiff = " + toString(dj)))
666669 }
667670 }
668671
669672
670673
671674 @Callable(aK)
672-func setManager (dj) = {
673- let dk = aT(aK)
674- if ((dk == dk))
675+func setManager (dk) = {
676+ let dl = aT(aK)
677+ if ((dl == dl))
675678 then {
676- let dl = fromBase58String(dj)
677- if ((dl == dl))
678- then [StringEntry(aO(), dj)]
679+ let dm = fromBase58String(dk)
680+ if ((dm == dm))
681+ then [StringEntry(aO(), dk)]
679682 else throw("Strict value is not equal to itself.")
680683 }
681684 else throw("Strict value is not equal to itself.")
682685 }
683686
684687
685688
686689 @Callable(aK)
687690 func confirmManager () = {
688- let dm = aS()
689- let dn = if (isDefined(dm))
691+ let dn = aS()
692+ let do = if (isDefined(dn))
690693 then true
691694 else throw("No pending manager")
692- if ((dn == dn))
695+ if ((do == do))
693696 then {
694- let do = if ((aK.callerPublicKey == value(dm)))
697+ let dp = if ((aK.callerPublicKey == value(dn)))
695698 then true
696699 else throw("You are not pending manager")
697- if ((do == do))
698- then [StringEntry(aN(), toBase58String(value(dm))), DeleteEntry(aO())]
700+ if ((dp == dp))
701+ then [StringEntry(aN(), toBase58String(value(dn))), DeleteEntry(aO())]
699702 else throw("Strict value is not equal to itself.")
700703 }
701704 else throw("Strict value is not equal to itself.")
702705 }
703706
704707
705-@Verifier(dp)
706-func dq () = {
707- let dr = {
708+@Verifier(dq)
709+func dr () = {
710+ let ds = {
708711 let aQ = aP()
709712 if ($isInstanceOf(aQ, "ByteVector"))
710713 then {
711714 let aV = aQ
712715 aV
713716 }
714717 else if ($isInstanceOf(aQ, "Unit"))
715- then dp.senderPublicKey
718+ then dq.senderPublicKey
716719 else throw("Match error")
717720 }
718- sigVerify(dp.bodyBytes, dp.proofs[0], dr)
721+ sigVerify(dq.bodyBytes, dq.proofs[0], ds)
719722 }
720723

github/deemru/w8io/169f3d6 
117.52 ms