tx · 7y7YFye6eYvuFc8HZC6uY6Ld3ckoeH9LaHP414BqS6YA 3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy: -0.03100000 Waves 2023.07.19 17:38 [2672874] smart account 3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy > SELF 0.00000000 Waves
{ "type": 13, "id": "7y7YFye6eYvuFc8HZC6uY6Ld3ckoeH9LaHP414BqS6YA", "fee": 3100000, "feeAssetId": null, "timestamp": 1689777582910, "version": 2, "chainId": 84, "sender": "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy", "senderPublicKey": "C3PaRKeL8AUKbwUqdniMQtThgcTh5DYHV1777Hkxy7rp", "proofs": [ "5moxgBaueSGQrHGWWj9tpm2tqaemRcGSqsZLAAAHsAszNMhA7rgwEbnhYRJkVwPoSSLJFZt9sw8biQJL7aRFxxPY" ], "script": "base64:BgJKCAISAwoBGBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBGBIDCgEIEgMKARgSAwoBGBIDCgEYEgMKARgSAwoBCBIAEgMKAQiZAQACTTYAwIQ9AAJNOACAwtcvAAhNSUxMSU9ONgCAgOmDsd4WAA5NQVJLRVRJTkdTSEFSRQCgjQYACVRFQU1TSEFSRQDAmgwADUFDVElWSVRZU0hBUkUAoI0GAAtQTEFZRVJTSEFSRQCAtRgACllFQVJNSUxMSVMAgIbrx3UAA0RBWQCAuJkpABBtYXJrZXRpbmdBZGRyS2V5Ag1tYXJrZXRpbmdBZGRyAAt0ZWFtQWRkcktleQIIdGVhbUFkZHIAFGxhc3RNYXJrZXRpbmdUaW1lS2V5AhlsYXN0Q2xhaW1lZFRpbWVfbWFya2V0aW5nABZtYXJrZXRpbmdBbW91bnRMZWZ0S2V5AhNtYXJrZXRpbmdBbW91bnRMZWZ0AA9sYXN0VGVhbVRpbWVLZXkCFGxhc3RDbGFpbWVkVGltZV90ZWFtABF0ZWFtQW1vdW50TGVmdEtleQIOdGVhbUFtb3VudExlZnQAFWxhc3RBY3Rpdml0aWVzVGltZUtleQIabGFzdENsYWltZWRUaW1lX2FjdGl2aXRpZXMAEGFjdEFtb3VudExlZnRLZXkCFGFjdGl2aXRpZXNBbW91bnRMZWZ0ABRzdGFrZXJzQW1vdW50TGVmdEtleQIRc3Rha2Vyc0Ftb3VudExlZnQBGGtleUxhc3RDbGFpbWVkVGltZUJ5VXNlcgEEYWRkcgkArAICAhRsYXN0Q2xhaW1lZFRpbWVVc2VyXwUEYWRkcgEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBBnBlcmlvZAkAawMFCE1JTExJT042CQBoAgULUExBWUVSU0hBUkUJAGQCBQZwZXJpb2QAAQkAaAIABgUCTTYAD3dsZ0lzc3VlVGltZUtleQINd2xnX2lzc3VlVGltZQASd2xnSXNzdWVkQW1vdW50S2V5AhB3bGdfaXNzdWVkQW1vdW50AAxpZHhXbGdBbW91bnQAAAALaWR4V2xnUHJpY2UAAQALaWR4V2xnRnVuZHMAAgANaWR4V2xnRWNvbm9teQADAA5pZHhXbGdBY3Rpdml0eQAEAA9pZHhXbGdBcmJpdHJhZ2UABQAKaWR4V2xnUG9vbAAGAA9pZHhXbGdJc3N1ZVRpbWUABwARaWR4V2xnTGFzdE1UQVRpbWUACAAUaWR4V2xnTWFya2V0aW5nVG90YWwACQAVaWR4V2xnTWFya2V0aW5nQW1MZWZ0AAoAGWlkeFdsZ01hcmtldGluZ0FtQXZhaWxOb3cACwAVaWR4V2xnTWFya2V0aW5nV2xnb2xkAAwAD2lkeFdsZ1RlYW1Ub3RhbAANABBpZHhXbGdUZWFtQW1MZWZ0AA4AFGlkeFdsZ1RlYW1BbUF2YWlsTm93AA8AEGlkeFdsZ1RlYW1XbGdvbGQAEAAOaWR4V2xnQWN0VG90YWwAEQAPaWR4V2xnQWN0QW1MZWZ0ABIAE2lkeFdsZ0FjdEFtQXZhaWxOb3cAEwAPaWR4V2xnQWN0V2xnb2xkABQAD2lkeFdsZ0N1clBlcmlvZAAVABFpZHhXbGdBbUxlZnRUb3RhbAAWABtpZHhXbGdDdXJQZXJpb2REaXN0cmlidXRpb24AFwASaWR4V2xnTGFzdFVzZXJUaW1lABgAFGlkeFdsZ1VzZXJBbUF2YWlsTm93ABkAFmlkeFdsZ1NMYW5kRGFpbHlBbW91bnQAGgAIZGFwcFJlc3QAAAALZGFwcFN0YWtpbmcAAQALZGFwcEVjb25vbXkAAgAHZGFwcFdsZwAEAApkYXBwUHV6emxlAAUBCWdldFBpZWNlcwISdXNlckFkZHJTdHJPckVtcHR5D3N0YWtpbmdDb250cmFjdAQFcHJvcHMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QCE3Jlc1R5cGVzUHJvcG9ydGlvbnMCCzBfMF8wXzBfMF8wAgFfCgEFYWRkZXICA2FjYwRpdGVtCQBkAgUDYWNjCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0ECnRvdGFsUG93ZXIKAAIkbAUFcHJvcHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBWFkZGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGBAp1c2Vyc1Bvd2VyCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkArAICAhRzdGFrZWRQaWVjZXNCeU93bmVyXwUSdXNlckFkZHJTdHJPckVtcHR5AAAJAMwIAgUKdG90YWxQb3dlcgkAzAgCBQp1c2Vyc1Bvd2VyBQNuaWwBC2dldFdsZ1N0YXRzBAt1c2VyQWRkck9wdAljb250cmFjdHMGdXNkdElkFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQMaXNzdWVkQW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEndsZ0lzc3VlZEFtb3VudEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0BAplY29ub215VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQtkYXBwRWNvbm9teQUGdXNkdElkBAdyZXN0VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwUmVzdAUGdXNkdElkBAZ3bGdVc2QJAGUCCQDwBwIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQZ1c2R0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQJcHV6emxlVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQpkYXBwUHV6emxlBQZ1c2R0SWQEDXRvdGFsRnVuZHNVc2QJAGQCBQplY29ub215VXNkBQZ3bGdVc2QEBXdsZ0lkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcCC3dsZ19hc3NldElkAhNOb3QgaW5pdGlhbGl6ZWQgeWV0BANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAlpc3N1ZVRpbWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUPd2xnSXNzdWVUaW1lS2V5Ag9Ob3QgaW5pdGlhbGl6ZWQEDm1hcmtldGluZ1RvdGFsCQBrAwUITUlMTElPTjYFDk1BUktFVElOR1NIQVJFBQJNNgQTbWFya2V0aW5nQW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUWbWFya2V0aW5nQW1vdW50TGVmdEtleQUObWFya2V0aW5nVG90YWwEEWxhc3RNYXJrZXRpbmdUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRRsYXN0TWFya2V0aW5nVGltZUtleQUJaXNzdWVUaW1lBA1tYXJrZXRpbmdBZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCdCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRBtYXJrZXRpbmdBZGRyS2V5BBttYXJrZXRpbmdBbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUObWFya2V0aW5nVG90YWwJAGUCBQNub3cFEWxhc3RNYXJrZXRpbmdUaW1lBQpZRUFSTUlMTElTCQDMCAIFE21hcmtldGluZ0Ftb3VudExlZnQFA25pbAQPbWFya2V0aW5nV2xnb2xkCQDwBwIFDW1hcmtldGluZ0FkZHIFBXdsZ0lkBAl0ZWFtVG90YWwJAGsDBQhNSUxMSU9ONgUJVEVBTVNIQVJFBQJNNgQOdGVhbUFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEXRlYW1BbW91bnRMZWZ0S2V5BQl0ZWFtVG90YWwEDGxhc3RUZWFtVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUPbGFzdFRlYW1UaW1lS2V5BQlpc3N1ZVRpbWUECHRlYW1BZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCdCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQt0ZWFtQWRkcktleQQWdGVhbUFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQl0ZWFtVG90YWwJAGUCBQNub3cFDGxhc3RUZWFtVGltZQkAaAIAAwUKWUVBUk1JTExJUwkAzAgCBQ50ZWFtQW1vdW50TGVmdAUDbmlsBAp0ZWFtV2xnb2xkCQDwBwIFCHRlYW1BZGRyBQV3bGdJZAQIYWN0VG90YWwJAGsDBQhNSUxMSU9ONgUNQUNUSVZJVFlTSEFSRQUCTTYEDWFjdEFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEGFjdEFtb3VudExlZnRLZXkFCGFjdFRvdGFsBBJsYXN0QWN0aXZpdGllc1RpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFFWxhc3RBY3Rpdml0aWVzVGltZUtleQUJaXNzdWVUaW1lBBVhY3RBbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUIYWN0VG90YWwJAGUCBQNub3cFEmxhc3RBY3Rpdml0aWVzVGltZQkAaAIAAwUKWUVBUk1JTExJUwkAzAgCBQ1hY3RBbW91bnRMZWZ0BQNuaWwECWFjdFdsZ29sZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcFJlc3QFBXdsZ0lkBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcJARhrZXlMYXN0Q2xhaW1lZFRpbWVCeVVzZXIBBQt1c2VyQWRkck9wdAUJaXNzdWVUaW1lBA5sYXN0VXNlclBlcmlvZAkAaQIJAGUCBQxsYXN0VXNlclRpbWUFCWlzc3VlVGltZQUKWUVBUk1JTExJUwQKbm93TGltaXRlZAkAlwMBCQDMCAIFA25vdwkAzAgCCQBkAgUJaXNzdWVUaW1lCQBoAgADBQpZRUFSTUlMTElTBQNuaWwECWN1clBlcmlvZAkAlwMBCQDMCAIJAGkCCQBlAgUDbm93BQlpc3N1ZVRpbWUFCllFQVJNSUxMSVMJAMwIAgACBQNuaWwEA2VmZgkBCWdldFBpZWNlcwIFC3VzZXJBZGRyT3B0CQCRAwIFCWNvbnRyYWN0cwULZGFwcFN0YWtpbmcEFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQUJY3VyUGVyaW9kBAp1c2VyQW1vdW50CQBrAwMJAAACBQ5sYXN0VXNlclBlcmlvZAUJY3VyUGVyaW9kCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTAwkAAAIFDmxhc3RVc2VyUGVyaW9kCQBlAgUJY3VyUGVyaW9kAAEJAGQCCQBrAwkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAABCQBlAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAUKWUVBUk1JTExJUwkAZAIJAGQCCQBrAwkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAACCQBlAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMJAGUCBQljdXJQZXJpb2QAAQUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAEJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQpZRUFSTUlMTElTCQCRAwIFA2VmZgABCQCRAwIFA2VmZgAABBBzTGFuZERhaWx5QW1vdW50CQBrAwkAawMFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgUDREFZBQpZRUFSTUlMTElTABkJAJEDAgUDZWZmAAAED2Ftb3VudExlZnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUUc3Rha2Vyc0Ftb3VudExlZnRLZXkAAAkAzAgCBQxpc3N1ZWRBbW91bnQJAMwIAgkAawMFDXRvdGFsRnVuZHNVc2QFAk04BQxpc3N1ZWRBbW91bnQJAMwIAgUNdG90YWxGdW5kc1VzZAkAzAgCBQplY29ub215VXNkCQDMCAIFB3Jlc3RVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgURbGFzdE1hcmtldGluZ1RpbWUJAMwIAgUObWFya2V0aW5nVG90YWwJAMwIAgUTbWFya2V0aW5nQW1vdW50TGVmdAkAzAgCBRttYXJrZXRpbmdBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUPbWFya2V0aW5nV2xnb2xkCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQp1c2VyQW1vdW50CQDMCAIFEHNMYW5kRGFpbHlBbW91bnQFA25pbAEMa2V5RHVja0NoYXJzAQtkdWNrQXNzZXRJZAkArAICAgpkdWNrQ2hhcnNfBQtkdWNrQXNzZXRJZAEJa2V5RHVja1hQAQtkdWNrQXNzZXRJZAkArAICAgdkdWNrWFBfBQtkdWNrQXNzZXRJZAEMa2V5RHVja0xldmVsAQtkdWNrQXNzZXRJZAkArAICAgpkdWNrTGV2ZWxfBQtkdWNrQXNzZXRJZAERa2V5RHVja0ZyZWVQb2ludHMBC2R1Y2tBc3NldElkCQCsAgICD2R1Y2tGcmVlUG9pbnRzXwULZHVja0Fzc2V0SWQBEGtleUR1Y2tFcXVpcG1lbnQBC2R1Y2tBc3NldElkCQCsAgICDmR1Y2tFcXVpcG1lbnRfBQtkdWNrQXNzZXRJZAEJa2V5VXNlclhQAQRhZGRyCQCsAgICB3VzZXJYUF8FBGFkZHIBDGtleVVzZXJMZXZlbAEEYWRkcgkArAICAgp1c2VyTGV2ZWxfBQRhZGRyARFrZXlVc2VyRnJlZVBvaW50cwEEYWRkcgkArAICAg91c2VyRnJlZVBvaW50c18FBGFkZHIBCW1heEhlYWx0aAEFbGV2ZWwJAGQCAGQFBWxldmVsAApBUlRQUkVTQUxFAgdQUkVTQUxFAApBUlRPTkJPQVJEAgdPTkJPQVJEAAZOVU1SRVMABgAPREFJTFlSRVNCWVBJRUNFAID40gEACURBWU1JTExJUwCAuJkpAAxXSE1VTFRJUExJRVIAgMivoCUAEFJFU09VUkNFUFJJQ0VNSU4A1bUCAA1FU01BWFBBQ0tBR0VTAAMACUVTQlVZQ09FRgAEAApFU1NFTExDT0VGAAoACUNPRUZGMk1BVACAreIEABBwcm9kdWN0aW9uTWF0cml4CQDMCAICJThfOF84XzE3XzE3XzQyXzEyXzBfMzBfMCwwLDAsMCwwLDAsMF8JAMwIAgIlOF84XzhfMTdfMTdfNDJfMjRfMF82MF8wLDAsNSwyLDAsMCwwXwkAzAgCAic4XzhfOF8xN18xN180Ml8zNl8wXzEyMF8wLDAsMTAsNCwwLDAsMF8JAMwIAgIpOF8xOV8xOV84XzI3XzE5XzI2XzFfMjBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIpOF8xOV8xOV84XzI3XzE5XzUyXzFfNDBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIpOF8xOV8xOV84XzI3XzE5Xzc4XzFfODBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIiOF84XzhfOF84XzYwXzEzXzJfMl8wLDAsMCwwLDAsMCwwXwkAzAgCAiI4XzhfOF84XzhfNjBfMjZfMl80XzAsMCwwLDAsMCwwLDBfCQDMCAICIjhfOF84XzhfOF82MF8zOV8yXzhfMCwwLDAsMCwwLDAsMF8JAMwIAgIpMzBfMzBfM18xN18xN18zXzMwXzNfMzBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIpMzBfMzBfM18xN18xN18zXzYwXzNfNTBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIpMzBfMzBfM18xN18xN18zXzkwXzNfNzBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIrMThfMThfMTBfMThfMThfMThfMTFfNF8zMF8wLDAsMCwwLDAsMCwwXzIwMQkAzAgCAisxOF8xOF8xMF8xOF8xOF8xOF8yMl80XzUwXzAsMCwwLDAsMCwwLDBfMjAxCQDMCAICKzE4XzE4XzEwXzE4XzE4XzE4XzMzXzRfNzBfMCwwLDAsMCwwLDAsMF8yMDEFA25pbAAJcklkeENvZWZmAAYADlBST0RVQ1RQS0dTSVpFAAoBEWtleUxhc3RUeElkQnlVc2VyAQRhZGRyCQCsAgICD2xhc3RUeElkQnlVc2VyXwUEYWRkcgEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQdhc3NldElkCQCsAgICCW5mdE93bmVyXwUHYXNzZXRJZAEaa2V5TGFuZEFzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIYbGFuZEN1c3RvbU5hbWVCeUFzc2V0SWRfBQdhc3NldElkARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQdhc3NldElkCQCsAgICC3N0YWtlZFRpbWVfBQdhc3NldElkARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQdhc3NldElkCQCsAgICC2luZnJhTGV2ZWxfBQdhc3NldElkASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIEdHlwZQdhc3NldElkCQC5CQIJAMwIAgINbGFuZEFydFN0YXR1cwkAzAgCBQR0eXBlCQDMCAIFB2Fzc2V0SWQFA25pbAIBXwESa2V5V2FyZWhvdXNlQnlMYW5kAQtsYW5kQXNzZXRJZAkArAICAgp3YXJlSG91c2VfBQtsYW5kQXNzZXRJZAEaa2V5RHVja0Fzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIYZHVja0N1c3RvbU5hbWVCeUFzc2V0SWRfBQdhc3NldElkARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQRhZGRyCQCsAgICGGFjY291bnRDdXN0b21OYW1lQnlBZGRyXwUEYWRkcgEPa2V5QWRkcmVzc1JlZkJ5AQRhZGRyCQCsAgICCWFjY1JlZkJ5XwUEYWRkcgEca2V5T25ib2FyZEFydER1Y2tBY3RpdmF0ZWRCeQEEYWRkcgkArAICAhpvbmJvYXJkQXJ0QWN0aXZhdGVkRHVja0J5XwUEYWRkcgETa2V5QWRkcmVzc1JlZmVycmFscwEEYWRkcgkArAICAg1hY2NSZWZlcnJhbHNfBQRhZGRyARBrZXlEdWNrSWRUb093bmVyAQdhc3NldElkCQCsAgICCmR1Y2tPd25lcl8FB2Fzc2V0SWQBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBD2tleUR1Y2tMb2NhdGlvbgELZHVja0Fzc2V0SWQJAKwCAgINZHVja0xvY2F0aW9uXwULZHVja0Fzc2V0SWQBDWtleUR1Y2tIZWFsdGgBC2R1Y2tBc3NldElkCQCsAgICC2R1Y2tIZWFsdGhfBQtkdWNrQXNzZXRJZAEKa2V5QmxvY2tlZAACEGNvbnRyYWN0c0Jsb2NrZWQBDmtleU9yZGVyQnlMYW5kAQtsYW5kQXNzZXRJZAkArAICAgpsYW5kT3JkZXJfBQtsYW5kQXNzZXRJZAEOa2V5RXNXYXJlaG91c2UAAhplbWVyZ2VuY3lXYXJlaG91c2VQcm9kdWN0cwESZ2V0UmVjaXBlTWF0ZXJpYWxzAQZyZWNpcGUJAGgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGcmVjaXBlBQlySWR4Q29lZmYFCUNPRUZGMk1BVAAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEAC3VzZHRBc3NldElkBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQMJAAACAQFUBQckbWF0Y2gwASBVsdifcoeC7+XjW42sBatl3ppDoS8WuwXzGreHpfHFGAkAAgECDVVua25vd24gY2hhaW4AFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAIjM1BRQ3V2RmJ2aDRMa1BVbnJuVTF6M2puYkExcDltM1dOaHYDCQAAAgEBVAUHJG1hdGNoMAIjM011bWtHR3p0Q0tBWHBXRHF4a2Rkb2ZxWFNVYnFRa3ZTSnkJAAIBAg1Vbmtub3duIGNoYWluABFJbmZyYVVwZ3JhZGVDb3N0UwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMACAyK+gJQMJAAACAQFUBQckbWF0Y2gwAIDC1y8JAAIBAg1Vbmtub3duIGNoYWluAANTRVACAl9fAAVNVUxUNgDAhD0ABVNTSVpFABkABU1TSVpFAGQABUxTSVpFAOEBAAZYTFNJWkUAkAMAB1hYTFNJWkUA8QQBD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABFJZHhDZmdTdGFraW5nRGFwcAABABFJZHhDZmdFY29ub215RGFwcAACABRJZHhDZmdHb3Zlcm5hbmNlRGFwcAADAA1JZHhDZmdXbGdEYXBwAAQAFElkeENmZ1B1enpsZVBvb2xEYXBwAAUBCmtleVJlc3RDZmcAAg4lc19fcmVzdENvbmZpZwEOa2V5UmVzdEFkZHJlc3MAAgwlc19fcmVzdEFkZHIBEXJlYWRSZXN0Q2ZnT3JGYWlsAQRyZXN0CQC8CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQRyZXN0CQEKa2V5UmVzdENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgdyZXN0Q2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUHcmVzdENmZwUDaWR4CQCsAgICKlJlc3QgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgADHJlc3RDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEOa2V5UmVzdEFkZHJlc3MABRVkZWZhdWx0UmVzdEFkZHJlc3NTdHIAB3Jlc3RDZmcJARFyZWFkUmVzdENmZ09yRmFpbAEFDHJlc3RDb250cmFjdAAPc3Rha2luZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwURSWR4Q2ZnU3Rha2luZ0RhcHAAD2Vjb25vbXlDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFEUlkeENmZ0Vjb25vbXlEYXBwAAtnb3ZDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFFElkeENmZ0dvdmVybmFuY2VEYXBwAAt3bGdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFDUlkeENmZ1dsZ0RhcHAAEnB1enpsZVBvb2xDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFFElkeENmZ1B1enpsZVBvb2xEYXBwAApyZWNMYW5kTnVtAAAAC3JlY0xhbmRTaXplAAEAC3JlY1RlcnJhaW5zAAIADHJlY0NvbnRpbmVudAADAA13bGdBc3NldElkS2V5Agt3bGdfYXNzZXRJZAAKd2xnQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFC3dsZ0NvbnRyYWN0BQ13bGdBc3NldElkS2V5AhNOb3QgaW5pdGlhbGl6ZWQgeWV0AApJZHhFZmZVc2VyAAEBEWtleVJlc1Byb3BvcnRpb25zAAITcmVzVHlwZXNQcm9wb3J0aW9ucwEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQlvd25lckFkZHIJAKwCAgITc3Rha2VkTGFuZHNCeU93bmVyXwUJb3duZXJBZGRyARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQlvd25lckFkZHIJAKwCAgIUc3Rha2VkUGllY2VzQnlPd25lcl8FCW93bmVyQWRkcgEIYXNTdHJpbmcBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAW4FByRtYXRjaDAFAW4JAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBCWFzQm9vbGVhbgEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFzBQckbWF0Y2gwBQFzCQACAQIZZmFpbCB0byBjYXN0IGludG8gQm9vbGVhbgEPbnVtUGllY2VzQnlTaXplAQhsYW5kU2l6ZQQHJG1hdGNoMAUIbGFuZFNpemUDCQAAAgIBUwUHJG1hdGNoMAUFU1NJWkUDCQAAAgIBTQUHJG1hdGNoMAUFTVNJWkUDCQAAAgIBTAUHJG1hdGNoMAUFTFNJWkUDCQAAAgICWEwFByRtYXRjaDAFBlhMU0laRQMJAAACAgNYWEwFByRtYXRjaDAFB1hYTFNJWkUJAAIBAhFVbmtub3duIGxhbmQgc2l6ZQEOZ2V0Vm90aW5nUG93ZXIBEnVzZXJBZGRyU3RyT3JFbXB0eQQFcHJvcHMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARFrZXlSZXNQcm9wb3J0aW9ucwACCzBfMF8wXzBfMF8wAgFfCgEFYWRkZXICA2FjYwRpdGVtCQBkAgUDYWNjCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0ECnRvdGFsUG93ZXIKAAIkbAUFcHJvcHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBWFkZGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGBAp1c2Vyc1Bvd2VyCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleVN0YWtlZFBpZWNlc0J5T3duZXIBBRJ1c2VyQWRkclN0ck9yRW1wdHkAAAkAzAgCBQp0b3RhbFBvd2VyCQDMCAIFCnVzZXJzUG93ZXIFA25pbAANVVNEVFBSSVpFUEFSVACgwh4BEmFzTGlzdEludENvbXBhY3RlZAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAp2YWxBbnlMaXN0BQckbWF0Y2gwAwkBAiE9AgkAkAMBBQp2YWxBbnlMaXN0BQZOVU1SRVMJAAIBCQCsAgICDkFycmF5IHNpemUgaXMgCQCkAwEJAJADAQUKdmFsQW55TGlzdAoBBGNvbnYCA2FjYwRpdGVtBAckbWF0Y2gxBQRpdGVtAwkAAQIFByRtYXRjaDECA0ludAQCaXQFByRtYXRjaDEJAM0IAgUDYWNjCQCkAwEFAml0CQACAQIUTGlzdCB0eXBlIGlzIG5vdCBJbnQEAXIKAAIkbAUKdmFsQW55TGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEEY29udgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgkAuQkCBQFyAgFfCQACAQIWZmFpbCB0byBjYXN0IGludG8gTGlzdAENYXNTcGxpdFJlc3VsdAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIWKExpc3RbQW55XSwgTGlzdFtBbnldKQQCdDIFByRtYXRjaDAJAJQKAgkBEmFzTGlzdEludENvbXBhY3RlZAEIBQJ0MgJfMQkBEmFzTGlzdEludENvbXBhY3RlZAEIBQJ0MgJfMgkAAgECHmZhaWwgdG8gY2FzdCBpbnRvIChMaXN0LCBMaXN0KQEOd2FsbGV0SW50ZXJuYWwBDnVzZXJBZGRyZXNzT3B0BARhZGRyCQCmCAEFDnVzZXJBZGRyZXNzT3B0BAdiYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAO8HAQkBBXZhbHVlAQUEYWRkcgkBDkJhbGFuY2VEZXRhaWxzBAAAAAAAAAAABAt1c2R0QmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDwBwIJAQV2YWx1ZQEFBGFkZHIFC3VzZHRBc3NldElkAAAEDXdsZ29sZEJhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQp3bGdBc3NldElkAAAECmN1c3RvbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5QWRkcmVzc1RvQ3VzdG9tTmFtZQEFDnVzZXJBZGRyZXNzT3B0BQ51c2VyQWRkcmVzc09wdAQIcmVmQnlLZXkJAQ9rZXlBZGRyZXNzUmVmQnkBBQ51c2VyQWRkcmVzc09wdAQFcmVmQnkJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0BQhyZWZCeUtleQQEcmVmcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARNrZXlBZGRyZXNzUmVmZXJyYWxzAQUOdXNlckFkZHJlc3NPcHQCAAQIbGFzdFR4SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQERa2V5TGFzdFR4SWRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAIABAZwaWVjZXMJAJEDAgkBDmdldFZvdGluZ1Bvd2VyAQUOdXNlckFkZHJlc3NPcHQFCklkeEVmZlVzZXIEAnhwCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBCWtleVVzZXJYUAEFDnVzZXJBZGRyZXNzT3B0AAAEA2x2bAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQxrZXlVc2VyTGV2ZWwBBQ51c2VyQWRkcmVzc09wdAAABApmcmVlUG9pbnRzCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBEWtleVVzZXJGcmVlUG9pbnRzAQUOdXNlckFkZHJlc3NPcHQAAAQHb25ib2FyZAMJAQlpc0RlZmluZWQBBQVyZWZCeQkArAICBQpBUlRPTkJPQVJEAwMJAQlpc0RlZmluZWQBBQRhZGRyCQEJaXNEZWZpbmVkAQkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARxrZXlPbmJvYXJkQXJ0RHVja0FjdGl2YXRlZEJ5AQUOdXNlckFkZHJlc3NPcHQHAgI6MQICOjACAAkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJXNfX3JlZmVycmVkQnlfXwkBC3ZhbHVlT3JFbHNlAgUFcmVmQnkCAAkAzAgCCQCsAgICESVzJXNfX3JlZmVycmFsc19fBQRyZWZzCQDMCAIJAKwCAgIQJXMlc19fbGFzdFR4SWRfXwUIbGFzdFR4SWQJAMwIAgkArAICAhQlcyVkX193YXZlc0JhbGFuY2VfXwkApAMBCAUHYmFsYW5jZQlhdmFpbGFibGUJAMwIAgkArAICAhUlcyVkX193bGdvbGRCYWxhbmNlX18JAKQDAQUNd2xnb2xkQmFsYW5jZQkAzAgCCQCsAgICEyVzJWRfX3VzZHRCYWxhbmNlX18JAKQDAQULdXNkdEJhbGFuY2UJAMwIAgkArAICAhQlcyVkX19zdGFrZWRQaWVjZXNfXwkApAMBBQZwaWVjZXMJAMwIAgkArAICAhElcyVkX19jdXJyZW50WHBfXwkApAMBBQJ4cAkAzAgCCQCsAgICEiVzJWRfX2N1cnJlbnRMdmxfXwkApAMBBQNsdmwJAMwIAgkArAICAholcyVkX19wb2ludHNUb0Rpc3RyaWJ1dGVfXwkApAMBBQpmcmVlUG9pbnRzCQDMCAIJAKwCAgIXJXMlc19fd2FsbGV0QXJ0ZWZhY3RzX18FB29uYm9hcmQFA25pbAEMYXBwbHlCb251c2VzAgtsYW5kQXNzZXRJZAZwaWVjZXMECmluZnJhTGV2ZWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5SW5mcmFMZXZlbEJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAAAECWFydFBpZWNlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIFCkFSVFBSRVNBTEUFC2xhbmRBc3NldElkAAAEBGFkZDYJAGkCBQppbmZyYUxldmVsAAYEBGFkZDcJAGkCBQppbmZyYUxldmVsAAcJAJUKAwUKaW5mcmFMZXZlbAUJYXJ0UGllY2VzCQBkAgkAZAIFD0RBSUxZUkVTQllQSUVDRQkAawMFD0RBSUxZUkVTQllQSUVDRQkAZAIJAGQCBQppbmZyYUxldmVsBQRhZGQ2CQBoAgACBQRhZGQ3AAUJAGsDBQ9EQUlMWVJFU0JZUElFQ0UFCWFydFBpZWNlcwkAaAIFBnBpZWNlcwAFARdnZXRXYXJlaG91c2VUb3RhbFZvbHVtZQEJdm9sUHJlZml4BAVwYXJ0cwkAtQkCBQl2b2xQcmVmaXgCAV8JAGgCCQBoAgUMV0hNVUxUSVBMSUVSCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBXBhcnRzAAEAAQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBXBhcnRzAAABDGdldFdhcmVob3VzZQMFd2hLZXkJbGFuZEluZGV4CmluZnJhTGV2ZWwECXZvbFByZWZpeAkArAICCQCsAgIJAKQDAQUJbGFuZEluZGV4AgFfCQCkAwEFCmluZnJhTGV2ZWwEBHRvdFMJAKQDAQkBF2dldFdhcmVob3VzZVRvdGFsVm9sdW1lAQUJdm9sUHJlZml4BAV3aFN0cgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QFBXdoS2V5CQCsAgIJAKwCAgkArAICCQCsAgIFCXZvbFByZWZpeAIeOjBfMF8wXzBfMF8wOjBfMF8wXzBfMF8wOjowXzBfBQR0b3RTAgFfBQR0b3RTCQC1CQIFBXdoU3RyAgE6AQ1kdWNrSW5mb1R1cGxlAQtkdWNrQXNzZXRJZAkAlwoFCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtkdWNrQXNzZXRJZAD///////////8BCAkBBXZhbHVlAQkA7AcBCQDZBAEFC2R1Y2tBc3NldElkBG5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQCAAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQ1rZXlEdWNrSGVhbHRoAQULZHVja0Fzc2V0SWQA////////////AQkBCGFzU3RyaW5nAQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCE2dldEJhY2twYWNrUkVBRE9OTFkJAMwIAgULZHVja0Fzc2V0SWQFA25pbAUDbmlsAQ1kdWNrSW5mb0FycmF5AwtkdWNrQXNzZXRJZAVvd25lcgdkdWNrSW5mBApjdXN0b21OYW1lCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBGmtleUR1Y2tBc3NldElkVG9DdXN0b21OYW1lAQULZHVja0Fzc2V0SWQIBQdkdWNrSW5mAl8yBAVjaGFycwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJAQxrZXlEdWNrQ2hhcnMBBQtkdWNrQXNzZXRJZAIJMF8wXzBfMF8wBAJ4cAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQlrZXlEdWNrWFABBQtkdWNrQXNzZXRJZAAABANsdmwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEMa2V5RHVja0xldmVsAQULZHVja0Fzc2V0SWQAAAQKZnJlZVBvaW50cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARFrZXlEdWNrRnJlZVBvaW50cwEFC2R1Y2tBc3NldElkAAAEBmVxdWlwbQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARBrZXlEdWNrRXF1aXBtZW50AQULZHVja0Fzc2V0SWQCCztfO187XztfO187CQDMCAIJAKwCAgIPJXMlc19fYXNzZXRJZF9fBQtkdWNrQXNzZXRJZAkAzAgCCQCsAgICDSVzJXNfX293bmVyX18FBW93bmVyCQDMCAIJAKwCAgISJXMlc19fY3VzdG9tTmFtZV9fBQpjdXN0b21OYW1lCQDMCAIJAKwCAgISJXMlZF9fc3Rha2VkVGltZV9fCQCkAwEIBQdkdWNrSW5mAl8xCQDMCAIJAKwCAgIMJXMlc19fbmFtZV9fCAUHZHVja0luZgJfMgkAzAgCCQCsAgICECVzJXNfX2xvY2F0aW9uX18IBQdkdWNrSW5mAl8zCQDMCAIJAKwCAgIOJXMlZF9faGVhbHRoX18JAKQDAQgFB2R1Y2tJbmYCXzQJAMwIAgkArAICAhElcyVkX19tYXhIZWFsdGhfXwkApAMBCQEJbWF4SGVhbHRoAQUDbHZsCQDMCAIJAKwCAgIXJXMlc19fY2hhcmFjdGVyaXN0aWNzX18FBWNoYXJzCQDMCAIJAKwCAgIRJXMlZF9fY3VycmVudFhwX18JAKQDAQUCeHAJAMwIAgkArAICAhIlcyVkX19jdXJyZW50THZsX18JAKQDAQUDbHZsCQDMCAIJAKwCAgIaJXMlZF9fcG9pbnRzVG9EaXN0cmlidXRlX18JAKQDAQUKZnJlZVBvaW50cwkAzAgCCQCsAgICECVzJXNfX2JhY2tQYWNrX18IBQdkdWNrSW5mAl81CQDMCAIJAKwCAgIRJXMlc19fZXF1aXBtZW50X18FBmVxdWlwbQUDbmlsAQ1sYW5kSW5mb0FycmF5AwtsYW5kQXNzZXRJZAVvd25lcgpzdGFrZWRUaW1lAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQBYQkBBXZhbHVlAQkA7AcBCQDZBAEFC2xhbmRBc3NldElkBAFkCQC1CQIIBQFhC2Rlc2NyaXB0aW9uAgFfBAdsYW5kTnVtAwkAZgIIBQFhCHF1YW50aXR5AAAJAJEDAgUBZAUKcmVjTGFuZE51bQkArAICAgEtCQCRAwIFAWQFCnJlY0xhbmROdW0EBnBpZWNlcwkBD251bVBpZWNlc0J5U2l6ZQEJAJEDAgUBZAULcmVjTGFuZFNpemUEDHByb2R1Y3Rpdml0eQkBDGFwcGx5Qm9udXNlcwIFC2xhbmRBc3NldElkBQZwaWVjZXMECWRlbHRhVGltZQkAZQIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQpzdGFrZWRUaW1lBAhhdmFpbFJlcwMJAGYCBQpzdGFrZWRUaW1lAAAJAGsDBQlkZWx0YVRpbWUJAGgCCAUMcHJvZHVjdGl2aXR5Al8zBQZwaWVjZXMFCURBWU1JTExJUwAABAduZWVkTWF0CQBrAwURSW5mcmFVcGdyYWRlQ29zdFMJAGgCBQZwaWVjZXMJAGQCCAUMcHJvZHVjdGl2aXR5Al8xAAEFBVNTSVpFBA5nbG9iYWxBbmRMb2NhbAMJAGYCBQpzdGFrZWRUaW1lAAAJAQ1hc1NwbGl0UmVzdWx0AQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCJHNwbGl0QnlHbG9iYWxBbmRMb2NhbFdlaWdodHNSRUFET05MWQkAzAgCBQduZWVkTWF0CQDMCAIFCGF2YWlsUmVzCQDMCAIJAJEDAgUBZAULcmVjVGVycmFpbnMFA25pbAUDbmlsCQCUCgIJARJhc0xpc3RJbnRDb21wYWN0ZWQBCQD8BwQFD3N0YWtpbmdDb250cmFjdAIcc3BsaXRCeUdsb2JhbFdlaWdodHNSRUFET05MWQkAzAgCBQduZWVkTWF0BQNuaWwFA25pbAIABApjdXN0b21OYW1lCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBGmtleUxhbmRBc3NldElkVG9DdXN0b21OYW1lAQULbGFuZEFzc2V0SWQJAKwCAgkArAICCQCRAwIFAWQFDHJlY0NvbnRpbmVudAIBLQkAkQMCBQFkBQpyZWNMYW5kTnVtCQDMCAIJAKwCAgIPJXMlc19fYXNzZXRJZF9fBQtsYW5kQXNzZXRJZAkAzAgCCQCsAgICDSVzJXNfX293bmVyX18FBW93bmVyCQDMCAIJAKwCAgISJXMlc19fY3VzdG9tTmFtZV9fBQpjdXN0b21OYW1lCQDMCAIJAKwCAgISJXMlZF9fc3Rha2VkVGltZV9fCQCkAwEFCnN0YWtlZFRpbWUJAMwIAgkArAICAhMlcyVzX19kZXNjcmlwdGlvbl9fCQC5CQIJAMwIAgUHbGFuZE51bQkAzAgCCQCRAwIFAWQFC3JlY0xhbmRTaXplCQDMCAIJAJEDAgUBZAULcmVjVGVycmFpbnMJAMwIAgkAkQMCBQFkBQxyZWNDb250aW5lbnQFA25pbAIBXwkAzAgCCQCsAgICEiVzJWRfX2luZnJhTGV2ZWxfXwkApAMBCAUMcHJvZHVjdGl2aXR5Al8xCQDMCAIJAKwCAgIWJXMlc19fYXZhaWxSZXNCeVR5cGVfXwgFDmdsb2JhbEFuZExvY2FsAl8yCQDMCAIJAKwCAgIVJXMlZF9fYXZhaWxSZXNUb3RhbF9fCQCkAwEFCGF2YWlsUmVzCQDMCAIJAKwCAgIUJXMlc19fbmVlZE1hdGVyaWFsX18IBQ5nbG9iYWxBbmRMb2NhbAJfMQkAzAgCCQCsAgICHSVzJXNfX2xhbmRBcnRlZmFjdHNfX1BSRVNBTEU6CQCkAwEIBQxwcm9kdWN0aXZpdHkCXzIJAMwIAgkArAICAhElcyVzX193YXJlaG91c2VfXwkAuQkCCQEMZ2V0V2FyZWhvdXNlAwkBEmtleVdhcmVob3VzZUJ5TGFuZAEFC2xhbmRBc3NldElkCQBpAgUGcGllY2VzBQVTU0laRQgFDHByb2R1Y3Rpdml0eQJfMQIBOgkAzAgCCQCsAgICESVzJXNfX2xhbmRPcmRlcl9fCQELdmFsdWVPckVsc2UCCQCdCAIFD2Vjb25vbXlDb250cmFjdAkBDmtleU9yZGVyQnlMYW5kAQULbGFuZEFzc2V0SWQCMDBAMF8wQDBfMEAwXzBAMF8wQDBfMEAwOjBAMF8wQDBfMEAwXzBAMF8wQDBfMEAwOgUDbmlsARJsYW5kT3JkZXJJbmZvQXJyYXkCC2xhbmRBc3NldElkBW93bmVyAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQBYQkBBXZhbHVlAQkA7AcBCQDZBAEFC2xhbmRBc3NldElkBAFkCQC1CQIIBQFhC2Rlc2NyaXB0aW9uAgFfBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBAxwcm9kdWN0aXZpdHkJAQxhcHBseUJvbnVzZXMCBQtsYW5kQXNzZXRJZAUGcGllY2VzCQDMCAIJAKwCAgIPJXMlc19fYXNzZXRJZF9fBQtsYW5kQXNzZXRJZAkAzAgCCQCsAgICDSVzJXNfX293bmVyX18FBW93bmVyCQDMCAIJAKwCAgIRJXMlc19fd2FyZWhvdXNlX18JALkJAgkBDGdldFdhcmVob3VzZQMJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAkAaQIFBnBpZWNlcwUFU1NJWkUIBQxwcm9kdWN0aXZpdHkCXzECAToJAMwIAgkArAICAhElcyVzX19sYW5kT3JkZXJfXwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9lY29ub215Q29udHJhY3QJAQ5rZXlPcmRlckJ5TGFuZAEFC2xhbmRBc3NldElkAjAwQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDowQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDoFA25pbA8BaQENY29uc3RydWN0b3JWMQEJY29udHJhY3RzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCgEKZGVzY3JpcHRvcgIDYWNjC2lnbm9yZWRJdGVtCQCsAgIFA2FjYwICJXMEBWRlc2NyCgACJGwFCWNvbnRyYWN0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzACAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKZGVzY3JpcHRvcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5UmVzdENmZwAJALkJAgkAzAgCBQVkZXNjcgUJY29udHJhY3RzBQNTRVAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVJlc3RBZGRyZXNzAAkApQgBBQR0aGlzBQNuaWwBaQESd2FsbGV0SW5mb1JFQURPTkxZAQ51c2VyQWRkcmVzc09wdAkAlAoCBQNuaWwJAQ53YWxsZXRJbnRlcm5hbAEFDnVzZXJBZGRyZXNzT3B0AWkBF2R1Y2tCeU93bmVySW5mb1JFQURPTkxZAQt1c2VyQWRkcmVzcwQKc3Rha2VkRHVjawkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFC3VzZXJBZGRyZXNzCQCUCgIFA25pbAMDCQEJaXNEZWZpbmVkAQkApggBBQt1c2VyQWRkcmVzcwkBCWlzRGVmaW5lZAEFCnN0YWtlZER1Y2sHBAtkdWNrQXNzZXRJZAkBBXZhbHVlAQUKc3Rha2VkRHVjawkBDWR1Y2tJbmZvQXJyYXkDBQtkdWNrQXNzZXRJZAULdXNlckFkZHJlc3MJAQ1kdWNrSW5mb1R1cGxlAQULZHVja0Fzc2V0SWQJAQ1kdWNrSW5mb0FycmF5AwIABQt1c2VyQWRkcmVzcwkAlwoFAP///////////wECAAIAAP///////////wECAAFpARlkdWNrQnlBc3NldElkSW5mb1JFQURPTkxZAQtkdWNrQXNzZXRJZAQFb3duZXIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEQa2V5RHVja0lkVG9Pd25lcgEFC2R1Y2tBc3NldElkBAdkdWNrSW5mCQENZHVja0luZm9UdXBsZQEFC2R1Y2tBc3NldElkCQCUCgIFA25pbAkBDWR1Y2tJbmZvQXJyYXkDBQtkdWNrQXNzZXRJZAMJAQlpc0RlZmluZWQBBQVvd25lcgkBBXZhbHVlAQUFb3duZXICAAkBDWR1Y2tJbmZvVHVwbGUBBQtkdWNrQXNzZXRJZAFpARlsYW5kQnlBc3NldElkSW5mb1JFQURPTkxZAQtsYW5kQXNzZXRJZAMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQECnN0YWtlZFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAP///////////wEEBW93bmVyAwkAZgIFCnN0YWtlZFRpbWUAAAkBBXZhbHVlAQkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARVrZXlMYW5kQXNzZXRJZFRvT3duZXIBBQtsYW5kQXNzZXRJZAIACQCUCgIFA25pbAkBDWxhbmRJbmZvQXJyYXkDBQtsYW5kQXNzZXRJZAUFb3duZXIFCnN0YWtlZFRpbWUBaQEec3Rha2VkTGFuZHNCeU93bmVySW5mb1JFQURPTkxZARBsYW5kT3duZXJBZGRyZXNzAwkAAAIFEGxhbmRPd25lckFkZHJlc3MCAAkAAgECHGxhbmRPd25lckFkZHJlc3MgaXMgcmVxdWlyZWQECGxhbmRzU3RyCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFWtleVN0YWtlZExhbmRzQnlPd25lcgEFEGxhbmRPd25lckFkZHJlc3MEBWxhbmRzAwkBCWlzRGVmaW5lZAEFCGxhbmRzU3RyCQC9CQIJAQV2YWx1ZQEFCGxhbmRzU3RyAgFfBQNuaWwKAQdvbmVMYW5kAgNhY2MLbGFuZEFzc2V0SWQDCQAAAgULbGFuZEFzc2V0SWQCAAkAAgECF2xhbmRBc3NldElkIGlzIHJlcXVpcmVkBApzdGFrZWRUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5k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MQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZAkAlAoCBQNuaWwFAXIBaQEjd2FyZWhvdXNlT3JkZXJCeUFzc2V0SWRJbmZvUkVBRE9OTFkBC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQKc3Rha2VkVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQA////////////AQQFb3duZXIDCQBmAgUKc3Rha2VkVGltZQAACQEFdmFsdWUBCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFC2xhbmRBc3NldElkAgAJAJQKAgUDbmlsCQESbGFuZE9yZGVySW5mb0FycmF5AgULbGFuZEFzc2V0SWQFBW93bmVyAWkBG29yZGVyc0J5TGFuZElkc0luZm9SRUFET05MWQEMbGFuZEFzc2V0SWRzCgEHb25lTGFuZAIDYWNjC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQKc3Rha2VkVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFu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aWR4V2xnQWN0aXZpdHkJAMwIAgkArAICAhclcyVzJWRfX3VzZHRBcmJpdHJhZ2VfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdBcmJpdHJhZ2UJAMwIAgkArAICAhIlcyVzJWRfX3VzZHRQb29sX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUKaWR4V2xnUG9vbAkAzAgCCQCsAgICFiVzJXMlZF9fd2xnSXNzdWVUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnSXNzdWVUaW1lCQDMCAIJAKwCAgIlJXMlcyVkX193bGdMYXN0TWFya2V0aW5nVGVhbUFjdFRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRFpZHhXbGdMYXN0TVRBVGltZQkAzAgCCQCsAgICGyVzJXMlZF9fd2xnTWFya2V0aW5nVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRRpZHhXbGdNYXJrZXRpbmdUb3RhbAkAzAgCCQCsAgICHCVzJXMlZF9fd2xnTWFya2V0aW5nQW1MZWZ0X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaWR4V2xnTWFya2V0aW5nQW1MZWZ0CQDMCAIJAKwCAgIgJXMlcyVkX193bGdNYXJrZXRpbmdBbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUZaWR4V2xnTWFya2V0aW5nQW1BdmFpbE5vdwkAzAgCCQCsAgICHCVzJXMlZF9fd2xnTWFya2V0aW5nV2xnb2xkX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaWR4V2xnTWFya2V0aW5nV2xnb2xkCQDMCAIJAKwCAgIWJXMlcyVkX193bGdUZWFtVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdUZWFtVG90YWwJAMwIAgkArAICAhclcyVzJWRfX3dsZ1RlYW1BbUxlZnRfXwkApAMBCQCRAwIFCGN1clN0YXRzBRBpZHhXbGdUZWFtQW1MZWZ0CQDMCAIJAKwCAgIbJXMlcyVkX193bGdUZWFtQW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1RlYW1BbUF2YWlsTm93CQDMCAIJAKwCAgIXJXMlcyVkX193bGdUZWFtV2xnb2xkX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUQaWR4V2xnVGVhbVdsZ29sZAkAzAgCCQCsAgICFSVzJXMlZF9fd2xnQWN0VG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5pZHhXbGdBY3RUb3RhbAkAzAgCCQCsAgICFiVzJXMlZF9fd2xnQWN0QW1MZWZ0X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnQWN0QW1MZWZ0CQDMCAIJAKwCAgIaJXMlcyVkX193bGdBY3RBbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUTaWR4V2xnQWN0QW1BdmFpbE5vdwkAzAgCCQCsAgICFiVzJXMlZF9fd2xnQWN0V2xnb2xkX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnQWN0V2xnb2xkCQDMCAIJAKwCAgIWJXMlcyVkX193bGdDdXJQZXJpb2RfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdDdXJQZXJpb2QJAMwIAgkArAICAhglcyVzJWRfX3dsZ0FtTGVmdFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwURaWR4V2xnQW1MZWZ0VG90YWwJAMwIAgkArAICAiIlcyVzJWRfX3dsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbl9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFG2lkeFdsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbgkAzAgCCQCsAgICGSVzJXMlZF9fd2xnTGFzdFVzZXJUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUSaWR4V2xnTGFzdFVzZXJUaW1lCQDMCAIJAKwCAgIbJXMlcyVkX193bGdVc2VyQW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1VzZXJBbUF2YWlsTm93CQDMCAIJAKwCAgIcJXMlcyVkX193bGdHdWVzdFNMYW5kRGFpbHlfXwkApAMBCQCRAwIFCGN1clN0YXRzBRZpZHhXbGdTTGFuZERhaWx5QW1vdW50BQNuaWwAHQDdlw==", "height": 2672874, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9d2PR6oxAS24ZKX6qtbE4i5fXo8oWJg6BynjjCtsjjVf Next: HPfTN48VLacKvTn1qDsXXyQBYpPfu5xmYJgkWXMMnEni Diff:
Old | New | Differences | |
---|---|---|---|
190 | 190 | func bm (bj) = ("duckFreePoints_" + bj) | |
191 | 191 | ||
192 | 192 | ||
193 | - | func bn ( | |
193 | + | func bn (bj) = ("duckEquipment_" + bj) | |
194 | 194 | ||
195 | 195 | ||
196 | - | func bo (t) = (" | |
196 | + | func bo (t) = ("userXP_" + t) | |
197 | 197 | ||
198 | 198 | ||
199 | - | func bp (t) = (" | |
199 | + | func bp (t) = ("userLevel_" + t) | |
200 | 200 | ||
201 | 201 | ||
202 | - | func bq ( | |
202 | + | func bq (t) = ("userFreePoints_" + t) | |
203 | 203 | ||
204 | 204 | ||
205 | - | let bs = "PRESALE" | |
206 | - | ||
207 | - | let bt = "ONBOARD" | |
208 | - | ||
209 | - | let bu = 6 | |
210 | - | ||
211 | - | let bv = 3456000 | |
212 | - | ||
213 | - | let bw = 86400000 | |
214 | - | ||
215 | - | let bx = 10000000000 | |
216 | - | ||
217 | - | let by = 39637 | |
218 | - | ||
219 | - | let bz = 3 | |
220 | - | ||
221 | - | let bA = 4 | |
222 | - | ||
223 | - | let bB = 10 | |
224 | - | ||
225 | - | let bC = 10000000 | |
226 | - | ||
227 | - | let bD = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_30_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_50_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_70_0,0,0,0,0,0,0_201"] | |
228 | - | ||
229 | - | let bE = 6 | |
230 | - | ||
231 | - | let bF = 10 | |
232 | - | ||
233 | - | func bG (t) = ("lastTxIdByUser_" + t) | |
205 | + | func br (bs) = (100 + bs) | |
234 | 206 | ||
235 | 207 | ||
236 | - | func bH (bI) = ("nftOwner_" + bI) | |
208 | + | let bt = "PRESALE" | |
209 | + | ||
210 | + | let bu = "ONBOARD" | |
211 | + | ||
212 | + | let bv = 6 | |
213 | + | ||
214 | + | let bw = 3456000 | |
215 | + | ||
216 | + | let bx = 86400000 | |
217 | + | ||
218 | + | let by = 10000000000 | |
219 | + | ||
220 | + | let bz = 39637 | |
221 | + | ||
222 | + | let bA = 3 | |
223 | + | ||
224 | + | let bB = 4 | |
225 | + | ||
226 | + | let bC = 10 | |
227 | + | ||
228 | + | let bD = 10000000 | |
229 | + | ||
230 | + | let bE = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_30_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_50_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_70_0,0,0,0,0,0,0_201"] | |
231 | + | ||
232 | + | let bF = 6 | |
233 | + | ||
234 | + | let bG = 10 | |
235 | + | ||
236 | + | func bH (t) = ("lastTxIdByUser_" + t) | |
237 | 237 | ||
238 | 238 | ||
239 | - | func | |
239 | + | func bI (bJ) = ("nftOwner_" + bJ) | |
240 | 240 | ||
241 | 241 | ||
242 | - | func bK ( | |
242 | + | func bK (bJ) = ("landCustomNameByAssetId_" + bJ) | |
243 | 243 | ||
244 | 244 | ||
245 | - | func bL ( | |
245 | + | func bL (bJ) = ("stakedTime_" + bJ) | |
246 | 246 | ||
247 | 247 | ||
248 | - | func bM ( | |
248 | + | func bM (bJ) = ("infraLevel_" + bJ) | |
249 | 249 | ||
250 | 250 | ||
251 | - | func | |
251 | + | func bN (bO,bJ) = makeString(["landArtStatus", bO, bJ], "_") | |
252 | 252 | ||
253 | 253 | ||
254 | - | func | |
254 | + | func bP (bQ) = ("wareHouse_" + bQ) | |
255 | 255 | ||
256 | 256 | ||
257 | - | func bR ( | |
257 | + | func bR (bJ) = ("duckCustomNameByAssetId_" + bJ) | |
258 | 258 | ||
259 | 259 | ||
260 | - | func bS (t) = (" | |
260 | + | func bS (t) = ("accountCustomNameByAddr_" + t) | |
261 | 261 | ||
262 | 262 | ||
263 | - | func bT (t) = (" | |
263 | + | func bT (t) = ("accRefBy_" + t) | |
264 | 264 | ||
265 | 265 | ||
266 | - | func bU (t) = (" | |
266 | + | func bU (t) = ("onboardArtActivatedDuckBy_" + t) | |
267 | 267 | ||
268 | 268 | ||
269 | - | func bV ( | |
269 | + | func bV (t) = ("accReferrals_" + t) | |
270 | 270 | ||
271 | 271 | ||
272 | - | func bW ( | |
272 | + | func bW (bJ) = ("duckOwner_" + bJ) | |
273 | 273 | ||
274 | 274 | ||
275 | - | func | |
275 | + | func bX (bY) = ("stakedDuckByOwner_" + bY) | |
276 | 276 | ||
277 | 277 | ||
278 | - | func bZ (bj) = (" | |
278 | + | func bZ (bj) = ("duckLocation_" + bj) | |
279 | 279 | ||
280 | 280 | ||
281 | - | func ca () = " | |
281 | + | func ca (bj) = ("duckHealth_" + bj) | |
282 | 282 | ||
283 | 283 | ||
284 | - | func cb ( | |
284 | + | func cb () = "contractsBlocked" | |
285 | 285 | ||
286 | 286 | ||
287 | - | func cc () = " | |
287 | + | func cc (bQ) = ("landOrder_" + bQ) | |
288 | 288 | ||
289 | 289 | ||
290 | - | func cd ( | |
290 | + | func cd () = "emergencyWarehouseProducts" | |
291 | 291 | ||
292 | 292 | ||
293 | - | ||
293 | + | func ce (cf) = (parseIntValue(cf[bF]) * bD) | |
294 | 294 | ||
295 | - | let cg = { | |
296 | - | let ch = cf | |
297 | - | if ((base58'2W' == ch)) | |
295 | + | ||
296 | + | let cg = take(drop(this.bytes, 1), 1) | |
297 | + | ||
298 | + | let ch = { | |
299 | + | let ci = cg | |
300 | + | if ((base58'2W' == ci)) | |
298 | 301 | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
299 | - | else if ((base58'2T' == | |
302 | + | else if ((base58'2T' == ci)) | |
300 | 303 | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
301 | 304 | else throw("Unknown chain") | |
302 | 305 | } | |
303 | 306 | ||
304 | - | let | |
305 | - | let | |
306 | - | if ((base58'2W' == | |
307 | + | let cj = { | |
308 | + | let ci = cg | |
309 | + | if ((base58'2W' == ci)) | |
307 | 310 | then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv" | |
308 | - | else if ((base58'2T' == | |
311 | + | else if ((base58'2T' == ci)) | |
309 | 312 | then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy" | |
310 | 313 | else throw("Unknown chain") | |
311 | 314 | } | |
312 | 315 | ||
313 | - | let | |
314 | - | let | |
315 | - | if ((base58'2W' == | |
316 | + | let ck = { | |
317 | + | let ci = cg | |
318 | + | if ((base58'2W' == ci)) | |
316 | 319 | then 10000000000 | |
317 | - | else if ((base58'2T' == | |
320 | + | else if ((base58'2T' == ci)) | |
318 | 321 | then 100000000 | |
319 | 322 | else throw("Unknown chain") | |
320 | 323 | } | |
321 | 324 | ||
322 | - | let | |
325 | + | let cl = "__" | |
323 | 326 | ||
324 | - | let | |
327 | + | let cm = 1000000 | |
325 | 328 | ||
326 | - | let | |
329 | + | let cn = 25 | |
327 | 330 | ||
328 | - | let | |
331 | + | let co = 100 | |
329 | 332 | ||
330 | - | let | |
333 | + | let cp = 225 | |
331 | 334 | ||
332 | - | let | |
335 | + | let cq = 400 | |
333 | 336 | ||
334 | - | let | |
337 | + | let cr = 625 | |
335 | 338 | ||
336 | - | func | |
339 | + | func cs (ct,cu) = valueOrErrorMessage(getString(ct, cu), makeString(["mandatory ", toString(ct), ".", cu, " is not defined"], "")) | |
337 | 340 | ||
338 | 341 | ||
339 | - | let | |
342 | + | let cv = 1 | |
340 | 343 | ||
341 | - | let | |
344 | + | let cw = 2 | |
342 | 345 | ||
343 | - | let | |
346 | + | let cx = 3 | |
344 | 347 | ||
345 | - | let | |
348 | + | let cy = 4 | |
346 | 349 | ||
347 | - | let | |
350 | + | let cz = 5 | |
348 | 351 | ||
349 | - | func | |
352 | + | func cA () = "%s__restConfig" | |
350 | 353 | ||
351 | 354 | ||
352 | - | func | |
355 | + | func cB () = "%s__restAddr" | |
353 | 356 | ||
354 | 357 | ||
355 | - | func | |
358 | + | func cC (cD) = split_4C(cs(cD, cA()), cl) | |
356 | 359 | ||
357 | 360 | ||
358 | - | func | |
361 | + | func cE (cF,cG) = valueOrErrorMessage(addressFromString(cF[cG]), ("Rest cfg doesn't contain address at index " + toString(cG))) | |
359 | 362 | ||
360 | 363 | ||
361 | - | let | |
364 | + | let cH = addressFromStringValue(valueOrElse(getString(this, cB()), cj)) | |
362 | 365 | ||
363 | - | let | |
366 | + | let cF = cC(cH) | |
364 | 367 | ||
365 | - | let ag = | |
368 | + | let ag = cE(cF, cv) | |
366 | 369 | ||
367 | - | let | |
370 | + | let cI = cE(cF, cw) | |
368 | 371 | ||
369 | - | let | |
372 | + | let cJ = cE(cF, cx) | |
370 | 373 | ||
371 | - | let | |
374 | + | let cK = cE(cF, cy) | |
372 | 375 | ||
373 | - | let | |
376 | + | let cL = cE(cF, cz) | |
374 | 377 | ||
375 | - | let | |
378 | + | let cM = 0 | |
376 | 379 | ||
377 | - | let | |
380 | + | let cN = 1 | |
378 | 381 | ||
379 | - | let | |
382 | + | let cO = 2 | |
380 | 383 | ||
381 | - | let | |
384 | + | let cP = 3 | |
382 | 385 | ||
383 | - | let | |
386 | + | let cQ = "wlg_assetId" | |
384 | 387 | ||
385 | - | let | |
388 | + | let cR = valueOrErrorMessage(getBinary(cK, cQ), "Not initialized yet") | |
386 | 389 | ||
387 | - | let | |
390 | + | let cS = 1 | |
388 | 391 | ||
389 | - | func | |
392 | + | func cT () = "resTypesProportions" | |
390 | 393 | ||
391 | 394 | ||
392 | - | func | |
395 | + | func cU (bY) = ("stakedLandsByOwner_" + bY) | |
393 | 396 | ||
394 | 397 | ||
395 | - | func | |
398 | + | func cV (bY) = ("stakedPiecesByOwner_" + bY) | |
396 | 399 | ||
397 | 400 | ||
398 | - | func | |
399 | - | let | |
400 | - | if ($isInstanceOf( | |
401 | + | func cW (cX) = { | |
402 | + | let ci = cX | |
403 | + | if ($isInstanceOf(ci, "String")) | |
401 | 404 | then { | |
402 | - | let | |
403 | - | | |
405 | + | let cY = ci | |
406 | + | cY | |
404 | 407 | } | |
405 | 408 | else throw("fail to cast into String") | |
406 | 409 | } | |
407 | 410 | ||
408 | 411 | ||
409 | - | func | |
410 | - | let | |
411 | - | if ($isInstanceOf( | |
412 | + | func cZ (cX) = { | |
413 | + | let ci = cX | |
414 | + | if ($isInstanceOf(ci, "Int")) | |
412 | 415 | then { | |
413 | - | let | |
414 | - | | |
416 | + | let da = ci | |
417 | + | da | |
415 | 418 | } | |
416 | 419 | else throw("fail to cast into Int") | |
417 | 420 | } | |
418 | 421 | ||
419 | 422 | ||
420 | - | func | |
421 | - | let | |
422 | - | if ($isInstanceOf( | |
423 | + | func db (cX) = { | |
424 | + | let ci = cX | |
425 | + | if ($isInstanceOf(ci, "Boolean")) | |
423 | 426 | then { | |
424 | - | let | |
425 | - | | |
427 | + | let cY = ci | |
428 | + | cY | |
426 | 429 | } | |
427 | 430 | else throw("fail to cast into Boolean") | |
428 | 431 | } | |
429 | 432 | ||
430 | 433 | ||
431 | - | func | |
432 | - | let | |
433 | - | if (("S" == | |
434 | - | then | |
435 | - | else if (("M" == | |
436 | - | then | |
437 | - | else if (("L" == | |
438 | - | then | |
439 | - | else if (("XL" == | |
440 | - | then | |
441 | - | else if (("XXL" == | |
442 | - | then | |
434 | + | func dc (dd) = { | |
435 | + | let ci = dd | |
436 | + | if (("S" == ci)) | |
437 | + | then cn | |
438 | + | else if (("M" == ci)) | |
439 | + | then co | |
440 | + | else if (("L" == ci)) | |
441 | + | then cp | |
442 | + | else if (("XL" == ci)) | |
443 | + | then cq | |
444 | + | else if (("XXL" == ci)) | |
445 | + | then cr | |
443 | 446 | else throw("Unknown land size") | |
444 | 447 | } | |
445 | 448 | ||
446 | 449 | ||
447 | - | func | |
448 | - | let ah = split(valueOrElse(getString(ag, | |
450 | + | func de (af) = { | |
451 | + | let ah = split(valueOrElse(getString(ag, cT()), "0_0_0_0_0_0"), "_") | |
449 | 452 | func ai (aj,ak) = (aj + parseIntValue(ak)) | |
450 | 453 | ||
451 | 454 | let al = { | |
462 | 465 | ||
463 | 466 | as(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6) | |
464 | 467 | } | |
465 | - | let at = valueOrElse(getInteger(ag, | |
468 | + | let at = valueOrElse(getInteger(ag, cV(af)), 0) | |
466 | 469 | [al, at] | |
467 | 470 | } | |
468 | 471 | ||
469 | 472 | ||
470 | - | let | |
473 | + | let df = 500000 | |
471 | 474 | ||
472 | - | func | |
473 | - | let | |
474 | - | if ($isInstanceOf( | |
475 | + | func dg (dh) = { | |
476 | + | let ci = dh | |
477 | + | if ($isInstanceOf(ci, "List[Any]")) | |
475 | 478 | then { | |
476 | - | let | |
477 | - | if ((size( | |
478 | - | then throw(("Array size is " + toString(size( | |
479 | + | let di = ci | |
480 | + | if ((size(di) != bv)) | |
481 | + | then throw(("Array size is " + toString(size(di)))) | |
479 | 482 | else { | |
480 | - | func | |
481 | - | let | |
482 | - | if ($isInstanceOf( | |
483 | + | func dj (aj,ak) = { | |
484 | + | let dk = ak | |
485 | + | if ($isInstanceOf(dk, "Int")) | |
483 | 486 | then { | |
484 | - | let | |
485 | - | (aj :+ toString( | |
487 | + | let dl = dk | |
488 | + | (aj :+ toString(dl)) | |
486 | 489 | } | |
487 | 490 | else throw("List type is not Int") | |
488 | 491 | } | |
489 | 492 | ||
490 | - | let | |
491 | - | let am = | |
493 | + | let dm = { | |
494 | + | let am = di | |
492 | 495 | let an = size(am) | |
493 | 496 | let ao = nil | |
494 | 497 | func ap (aq,ar) = if ((ar >= an)) | |
495 | 498 | then aq | |
496 | - | else | |
499 | + | else dj(aq, am[ar]) | |
497 | 500 | ||
498 | 501 | func as (aq,ar) = if ((ar >= an)) | |
499 | 502 | then aq | |
501 | 504 | ||
502 | 505 | as(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6) | |
503 | 506 | } | |
504 | - | makeString( | |
507 | + | makeString(dm, "_") | |
505 | 508 | } | |
506 | 509 | } | |
507 | 510 | else throw("fail to cast into List") | |
508 | 511 | } | |
509 | 512 | ||
510 | 513 | ||
511 | - | func | |
512 | - | let | |
513 | - | if ($isInstanceOf( | |
514 | + | func dn (dh) = { | |
515 | + | let ci = dh | |
516 | + | if ($isInstanceOf(ci, "(List[Any], List[Any])")) | |
514 | 517 | then { | |
515 | - | let | |
516 | - | $Tuple2( | |
518 | + | let do = ci | |
519 | + | $Tuple2(dg(do._1), dg(do._2)) | |
517 | 520 | } | |
518 | 521 | else throw("fail to cast into (List, List)") | |
519 | 522 | } | |
520 | 523 | ||
521 | 524 | ||
522 | - | func | |
523 | - | let t = addressFromString( | |
524 | - | let | |
525 | + | func dp (dq) = { | |
526 | + | let t = addressFromString(dq) | |
527 | + | let dr = if (isDefined(t)) | |
525 | 528 | then wavesBalance(value(t)) | |
526 | 529 | else BalanceDetails(0, 0, 0, 0) | |
527 | - | let | |
528 | - | then assetBalance(value(t), | |
530 | + | let ds = if (isDefined(t)) | |
531 | + | then assetBalance(value(t), ch) | |
529 | 532 | else 0 | |
530 | - | let | |
531 | - | then assetBalance(value(t), | |
533 | + | let dt = if (isDefined(t)) | |
534 | + | then assetBalance(value(t), cR) | |
532 | 535 | else 0 | |
533 | - | let | |
534 | - | let | |
535 | - | let | |
536 | - | let | |
537 | - | let | |
538 | - | let | |
539 | - | let | |
540 | - | let | |
541 | - | let | |
542 | - | let | |
543 | - | then ( | |
544 | - | then isDefined(getString(ag, | |
536 | + | let du = valueOrElse(getString(ag, bS(dq)), dq) | |
537 | + | let dv = bT(dq) | |
538 | + | let dw = getString(ag, dv) | |
539 | + | let dx = valueOrElse(getString(ag, bV(dq)), "") | |
540 | + | let dy = valueOrElse(getString(ag, bH(dq)), "") | |
541 | + | let dz = de(dq)[cS] | |
542 | + | let dA = valueOrElse(getInteger(ag, bo(dq)), 0) | |
543 | + | let dB = valueOrElse(getInteger(ag, bp(dq)), 0) | |
544 | + | let dC = valueOrElse(getInteger(ag, bq(dq)), 0) | |
545 | + | let dD = if (isDefined(dw)) | |
546 | + | then (bu + (if (if (isDefined(t)) | |
547 | + | then isDefined(getString(ag, bU(dq))) | |
545 | 548 | else false) | |
546 | 549 | then ":1" | |
547 | 550 | else ":0")) | |
548 | 551 | else "" | |
549 | - | [("%s%s__customName__" + | |
552 | + | [("%s%s__customName__" + du), ("%s%s__referredBy__" + valueOrElse(dw, "")), ("%s%s__referrals__" + dx), ("%s%s__lastTxId__" + dy), ("%s%d__wavesBalance__" + toString(dr.available)), ("%s%d__wlgoldBalance__" + toString(dt)), ("%s%d__usdtBalance__" + toString(ds)), ("%s%d__stakedPieces__" + toString(dz)), ("%s%d__currentXp__" + toString(dA)), ("%s%d__currentLvl__" + toString(dB)), ("%s%d__pointsToDistribute__" + toString(dC)), ("%s%s__walletArtefacts__" + dD)] | |
550 | 553 | } | |
551 | 554 | ||
552 | 555 | ||
553 | - | func | |
554 | - | let | |
555 | - | let | |
556 | - | let | |
557 | - | let | |
558 | - | $Tuple3( | |
556 | + | func dE (bQ,dz) = { | |
557 | + | let dF = valueOrElse(getInteger(ag, bM(bQ)), 0) | |
558 | + | let dG = valueOrElse(getInteger(ag, bN(bt, bQ)), 0) | |
559 | + | let dH = (dF / 6) | |
560 | + | let dI = (dF / 7) | |
561 | + | $Tuple3(dF, dG, ((bw + fraction(bw, ((dF + dH) + (2 * dI)), 5)) + fraction(bw, dG, (dz * 5)))) | |
559 | 562 | } | |
560 | 563 | ||
561 | 564 | ||
562 | - | func | |
563 | - | let | |
564 | - | (( | |
565 | + | func dJ (dK) = { | |
566 | + | let dL = split(dK, "_") | |
567 | + | ((by * (parseIntValue(dL[1]) + 1)) * parseIntValue(dL[0])) | |
565 | 568 | } | |
566 | 569 | ||
567 | 570 | ||
568 | - | func | |
569 | - | let | |
570 | - | let | |
571 | - | let | |
572 | - | split( | |
571 | + | func dM (dN,dO,dF) = { | |
572 | + | let dK = ((toString(dO) + "_") + toString(dF)) | |
573 | + | let dP = toString(dJ(dK)) | |
574 | + | let dQ = valueOrElse(getString(ag, dN), ((((dK + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + dP) + "_") + dP)) | |
575 | + | split(dQ, ":") | |
573 | 576 | } | |
574 | 577 | ||
575 | 578 | ||
576 | - | func | |
579 | + | func dR (bj) = $Tuple5(valueOrElse(getInteger(ag, bL(bj)), -1), value(assetInfo(fromBase58String(bj))).name, valueOrElse(getString(ag, bZ(bj)), ""), valueOrElse(getInteger(ag, ca(bj)), -1), cW(invoke(ag, "getBackpackREADONLY", [bj], nil))) | |
577 | 580 | ||
578 | 581 | ||
579 | - | func dR (bj,dS,dT) = { | |
580 | - | let dt = valueOrElse(getString(ag, bQ(bj)), dT._2) | |
581 | - | let dU = valueOrElse(getString(ag, bi(bj)), "0_0_0_0_0") | |
582 | - | let dz = valueOrElse(getInteger(ag, bk(bj)), 0) | |
583 | - | let dA = valueOrElse(getInteger(ag, bl(bj)), 0) | |
584 | - | let dB = valueOrElse(getInteger(ag, bm(bj)), 0) | |
585 | - | [("%s%s__assetId__" + bj), ("%s%s__owner__" + dS), ("%s%s__customName__" + dt), ("%s%d__stakedTime__" + toString(dT._1)), ("%s%s__name__" + dT._2), ("%s%s__location__" + dT._3), ("%s%d__health__" + toString(dT._4)), ("%s%d__maxHealth__" + toString(bq(dA))), ("%s%s__characteristics__" + dU), ("%s%d__currentXp__" + toString(dz)), ("%s%d__currentLvl__" + toString(dA)), ("%s%d__pointsToDistribute__" + toString(dB)), ("%s%s__backPack__" + dT._5)] | |
582 | + | func dS (bj,dT,dU) = { | |
583 | + | let du = valueOrElse(getString(ag, bR(bj)), dU._2) | |
584 | + | let dV = valueOrElse(getString(ag, bi(bj)), "0_0_0_0_0") | |
585 | + | let dA = valueOrElse(getInteger(ag, bk(bj)), 0) | |
586 | + | let dB = valueOrElse(getInteger(ag, bl(bj)), 0) | |
587 | + | let dC = valueOrElse(getInteger(ag, bm(bj)), 0) | |
588 | + | let dW = valueOrElse(getString(ag, bn(bj)), ";_;_;_;_;_;") | |
589 | + | [("%s%s__assetId__" + bj), ("%s%s__owner__" + dT), ("%s%s__customName__" + du), ("%s%d__stakedTime__" + toString(dU._1)), ("%s%s__name__" + dU._2), ("%s%s__location__" + dU._3), ("%s%d__health__" + toString(dU._4)), ("%s%d__maxHealth__" + toString(br(dB))), ("%s%s__characteristics__" + dV), ("%s%d__currentXp__" + toString(dA)), ("%s%d__currentLvl__" + toString(dB)), ("%s%d__pointsToDistribute__" + toString(dC)), ("%s%s__backPack__" + dU._5), ("%s%s__equipment__" + dW)] | |
586 | 590 | } | |
587 | 591 | ||
588 | 592 | ||
589 | - | func | |
593 | + | func dX (bQ,dT,dY) = if ((bQ == "")) | |
590 | 594 | then throw("landAssetId is required") | |
591 | 595 | else { | |
592 | - | let | |
593 | - | let | |
594 | - | let | |
595 | - | then | |
596 | - | else ("-" + | |
597 | - | let | |
598 | - | let | |
599 | - | let | |
600 | - | let | |
601 | - | then fraction( | |
596 | + | let dZ = value(assetInfo(fromBase58String(bQ))) | |
597 | + | let ea = split(dZ.description, "_") | |
598 | + | let eb = if ((dZ.quantity > 0)) | |
599 | + | then ea[cM] | |
600 | + | else ("-" + ea[cM]) | |
601 | + | let dz = dc(ea[cN]) | |
602 | + | let ec = dE(bQ, dz) | |
603 | + | let ed = (lastBlock.timestamp - dY) | |
604 | + | let ee = if ((dY > 0)) | |
605 | + | then fraction(ed, (ec._3 * dz), bx) | |
602 | 606 | else 0 | |
603 | - | let | |
604 | - | let | |
605 | - | then | |
606 | - | else $Tuple2( | |
607 | - | let | |
608 | - | [("%s%s__assetId__" + | |
607 | + | let ef = fraction(ck, (dz * (ec._1 + 1)), cn) | |
608 | + | let eg = if ((dY > 0)) | |
609 | + | then dn(invoke(ag, "splitByGlobalAndLocalWeightsREADONLY", [ef, ee, ea[cO]], nil)) | |
610 | + | else $Tuple2(dg(invoke(ag, "splitByGlobalWeightsREADONLY", [ef], nil)), "") | |
611 | + | let du = valueOrElse(getString(ag, bK(bQ)), ((ea[cP] + "-") + ea[cM])) | |
612 | + | [("%s%s__assetId__" + bQ), ("%s%s__owner__" + dT), ("%s%s__customName__" + du), ("%s%d__stakedTime__" + toString(dY)), ("%s%s__description__" + makeString([eb, ea[cN], ea[cO], ea[cP]], "_")), ("%s%d__infraLevel__" + toString(ec._1)), ("%s%s__availResByType__" + eg._2), ("%s%d__availResTotal__" + toString(ee)), ("%s%s__needMaterial__" + eg._1), ("%s%s__landArtefacts__PRESALE:" + toString(ec._2)), ("%s%s__warehouse__" + makeString(dM(bP(bQ), (dz / cn), ec._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(cI, cc(bQ)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
609 | 613 | } | |
610 | 614 | ||
611 | 615 | ||
612 | - | func | |
616 | + | func eh (bQ,dT) = if ((bQ == "")) | |
613 | 617 | then throw("landAssetId is required") | |
614 | 618 | else { | |
615 | - | let | |
616 | - | let | |
617 | - | let | |
618 | - | let | |
619 | - | [("%s%s__assetId__" + | |
619 | + | let dZ = value(assetInfo(fromBase58String(bQ))) | |
620 | + | let ea = split(dZ.description, "_") | |
621 | + | let dz = dc(ea[cN]) | |
622 | + | let ec = dE(bQ, dz) | |
623 | + | [("%s%s__assetId__" + bQ), ("%s%s__owner__" + dT), ("%s%s__warehouse__" + makeString(dM(bP(bQ), (dz / cn), ec._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(cI, cc(bQ)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
620 | 624 | } | |
621 | 625 | ||
622 | 626 | ||
623 | - | @Callable( | |
624 | - | func constructorV1 (aw) = if (( | |
627 | + | @Callable(ei) | |
628 | + | func constructorV1 (aw) = if ((ei.caller != this)) | |
625 | 629 | then throw("permissions denied") | |
626 | 630 | else { | |
627 | - | func | |
631 | + | func ej (aj,ek) = (aj + "%s") | |
628 | 632 | ||
629 | - | let | |
633 | + | let el = { | |
630 | 634 | let am = aw | |
631 | 635 | let an = size(am) | |
632 | 636 | let ao = "" | |
633 | 637 | func ap (aq,ar) = if ((ar >= an)) | |
634 | 638 | then aq | |
635 | - | else | |
639 | + | else ej(aq, am[ar]) | |
636 | 640 | ||
637 | 641 | func as (aq,ar) = if ((ar >= an)) | |
638 | 642 | then aq | |
640 | 644 | ||
641 | 645 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
642 | 646 | } | |
643 | - | [StringEntry( | |
647 | + | [StringEntry(cA(), makeString(el :: aw, cl)), StringEntry(cB(), toString(this))] | |
644 | 648 | } | |
645 | 649 | ||
646 | 650 | ||
647 | 651 | ||
648 | - | @Callable( | |
649 | - | func walletInfoREADONLY ( | |
652 | + | @Callable(ei) | |
653 | + | func walletInfoREADONLY (dq) = $Tuple2(nil, dp(dq)) | |
650 | 654 | ||
651 | 655 | ||
652 | 656 | ||
653 | - | @Callable( | |
654 | - | func duckByOwnerInfoREADONLY ( | |
655 | - | let | |
656 | - | $Tuple2(nil, if (if (isDefined(addressFromString( | |
657 | - | then isDefined( | |
657 | + | @Callable(ei) | |
658 | + | func duckByOwnerInfoREADONLY (em) = { | |
659 | + | let en = getString(ag, bX(em)) | |
660 | + | $Tuple2(nil, if (if (isDefined(addressFromString(em))) | |
661 | + | then isDefined(en) | |
658 | 662 | else false) | |
659 | 663 | then { | |
660 | - | let bj = value( | |
661 | - | | |
664 | + | let bj = value(en) | |
665 | + | dS(bj, em, dR(bj)) | |
662 | 666 | } | |
663 | - | else | |
667 | + | else dS("", em, $Tuple5(-1, "", "", -1, ""))) | |
664 | 668 | } | |
665 | 669 | ||
666 | 670 | ||
667 | 671 | ||
668 | - | @Callable( | |
672 | + | @Callable(ei) | |
669 | 673 | func duckByAssetIdInfoREADONLY (bj) = { | |
670 | - | let | |
671 | - | let | |
672 | - | $Tuple2(nil, | |
673 | - | then value( | |
674 | - | else "", | |
674 | + | let dT = getString(ag, bW(bj)) | |
675 | + | let dU = dR(bj) | |
676 | + | $Tuple2(nil, dS(bj, if (isDefined(dT)) | |
677 | + | then value(dT) | |
678 | + | else "", dR(bj))) | |
675 | 679 | } | |
676 | 680 | ||
677 | 681 | ||
678 | 682 | ||
679 | - | @Callable( | |
680 | - | func landByAssetIdInfoREADONLY ( | |
683 | + | @Callable(ei) | |
684 | + | func landByAssetIdInfoREADONLY (bQ) = if ((bQ == "")) | |
681 | 685 | then throw("landAssetId is required") | |
682 | 686 | else { | |
683 | - | let | |
684 | - | let | |
685 | - | then value(getString(ag, | |
687 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
688 | + | let dT = if ((dY > 0)) | |
689 | + | then value(getString(ag, bI(bQ))) | |
686 | 690 | else "" | |
687 | - | $Tuple2(nil, | |
691 | + | $Tuple2(nil, dX(bQ, dT, dY)) | |
688 | 692 | } | |
689 | 693 | ||
690 | 694 | ||
691 | 695 | ||
692 | - | @Callable( | |
693 | - | func stakedLandsByOwnerInfoREADONLY ( | |
696 | + | @Callable(ei) | |
697 | + | func stakedLandsByOwnerInfoREADONLY (eo) = if ((eo == "")) | |
694 | 698 | then throw("landOwnerAddress is required") | |
695 | 699 | else { | |
696 | - | let | |
697 | - | let | |
698 | - | then split_51C(value( | |
700 | + | let ep = getString(ag, cU(eo)) | |
701 | + | let eq = if (isDefined(ep)) | |
702 | + | then split_51C(value(ep), "_") | |
699 | 703 | else nil | |
700 | - | func | |
704 | + | func er (aj,bQ) = if ((bQ == "")) | |
701 | 705 | then throw("landAssetId is required") | |
702 | 706 | else { | |
703 | - | let | |
704 | - | (aj :+ | |
707 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
708 | + | (aj :+ dX(bQ, eo, dY)) | |
705 | 709 | } | |
706 | 710 | ||
707 | - | let | |
708 | - | let am = | |
711 | + | let dm = { | |
712 | + | let am = eq | |
709 | 713 | let an = size(am) | |
710 | 714 | let ao = nil | |
711 | 715 | func ap (aq,ar) = if ((ar >= an)) | |
712 | 716 | then aq | |
713 | - | else | |
717 | + | else er(aq, am[ar]) | |
714 | 718 | ||
715 | 719 | func as (aq,ar) = if ((ar >= an)) | |
716 | 720 | then aq | |
718 | 722 | ||
719 | 723 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
720 | 724 | } | |
721 | - | $Tuple2(nil, | |
725 | + | $Tuple2(nil, dm) | |
722 | 726 | } | |
723 | 727 | ||
724 | 728 | ||
725 | 729 | ||
726 | - | @Callable( | |
727 | - | func landsByIdsInfoREADONLY ( | |
728 | - | func | |
730 | + | @Callable(ei) | |
731 | + | func landsByIdsInfoREADONLY (es) = { | |
732 | + | func er (aj,bQ) = if ((bQ == "")) | |
729 | 733 | then throw("landAssetId is required") | |
730 | 734 | else { | |
731 | - | let | |
732 | - | let | |
733 | - | then value(getString(ag, | |
735 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
736 | + | let dT = if ((dY > 0)) | |
737 | + | then value(getString(ag, bI(bQ))) | |
734 | 738 | else "" | |
735 | - | (aj :+ | |
739 | + | (aj :+ dX(bQ, dT, dY)) | |
736 | 740 | } | |
737 | 741 | ||
738 | - | let | |
739 | - | let am = | |
742 | + | let dm = { | |
743 | + | let am = es | |
740 | 744 | let an = size(am) | |
741 | 745 | let ao = nil | |
742 | 746 | func ap (aq,ar) = if ((ar >= an)) | |
743 | 747 | then aq | |
744 | - | else | |
748 | + | else er(aq, am[ar]) | |
745 | 749 | ||
746 | 750 | func as (aq,ar) = if ((ar >= an)) | |
747 | 751 | then aq | |
749 | 753 | ||
750 | 754 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
751 | 755 | } | |
752 | - | $Tuple2(nil, | |
756 | + | $Tuple2(nil, dm) | |
753 | 757 | } | |
754 | 758 | ||
755 | 759 | ||
756 | 760 | ||
757 | - | @Callable( | |
758 | - | func warehouseOrderByAssetIdInfoREADONLY ( | |
761 | + | @Callable(ei) | |
762 | + | func warehouseOrderByAssetIdInfoREADONLY (bQ) = if ((bQ == "")) | |
759 | 763 | then throw("landAssetId is required") | |
760 | 764 | else { | |
761 | - | let | |
762 | - | let | |
763 | - | then value(getString(ag, | |
765 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
766 | + | let dT = if ((dY > 0)) | |
767 | + | then value(getString(ag, bI(bQ))) | |
764 | 768 | else "" | |
765 | - | $Tuple2(nil, | |
769 | + | $Tuple2(nil, eh(bQ, dT)) | |
766 | 770 | } | |
767 | 771 | ||
768 | 772 | ||
769 | 773 | ||
770 | - | @Callable( | |
771 | - | func ordersByLandIdsInfoREADONLY ( | |
772 | - | func | |
774 | + | @Callable(ei) | |
775 | + | func ordersByLandIdsInfoREADONLY (es) = { | |
776 | + | func er (aj,bQ) = if ((bQ == "")) | |
773 | 777 | then throw("landAssetId is required") | |
774 | 778 | else { | |
775 | - | let | |
776 | - | let | |
777 | - | then value(getString(ag, | |
779 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
780 | + | let dT = if ((dY > 0)) | |
781 | + | then value(getString(ag, bI(bQ))) | |
778 | 782 | else "" | |
779 | - | (aj :+ | |
783 | + | (aj :+ eh(bQ, dT)) | |
780 | 784 | } | |
781 | 785 | ||
782 | - | let | |
783 | - | let am = | |
786 | + | let dm = { | |
787 | + | let am = es | |
784 | 788 | let an = size(am) | |
785 | 789 | let ao = nil | |
786 | 790 | func ap (aq,ar) = if ((ar >= an)) | |
787 | 791 | then aq | |
788 | - | else | |
792 | + | else er(aq, am[ar]) | |
789 | 793 | ||
790 | 794 | func as (aq,ar) = if ((ar >= an)) | |
791 | 795 | then aq | |
793 | 797 | ||
794 | 798 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40) | |
795 | 799 | } | |
796 | - | $Tuple2(nil, | |
800 | + | $Tuple2(nil, dm) | |
797 | 801 | } | |
798 | 802 | ||
799 | 803 | ||
800 | 804 | ||
801 | - | @Callable( | |
802 | - | func cancelWarehouseOrders ( | |
805 | + | @Callable(ei) | |
806 | + | func cancelWarehouseOrders (es) = if ((ei.caller != this)) | |
803 | 807 | then throw("permission denied") | |
804 | 808 | else { | |
805 | - | let | |
806 | - | if (if (!(isDefined( | |
809 | + | let et = getBoolean(ag, cb()) | |
810 | + | if (if (!(isDefined(et))) | |
807 | 811 | then true | |
808 | - | else (value( | |
812 | + | else (value(et) == false)) | |
809 | 813 | then throw("Contracts should be blocked before canceling orders") | |
810 | 814 | else { | |
811 | - | func | |
815 | + | func er (dZ,bQ) = if ((bQ == "")) | |
812 | 816 | then throw("landAssetId is required") | |
813 | 817 | else { | |
814 | - | let | |
815 | - | if (if ( | |
818 | + | let eu = db(invoke(cI, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bQ], nil)) | |
819 | + | if (if (dZ) | |
816 | 820 | then true | |
817 | - | else | |
818 | - | then !(if ( | |
819 | - | then | |
821 | + | else eu) | |
822 | + | then !(if (dZ) | |
823 | + | then eu | |
820 | 824 | else false) | |
821 | 825 | else false | |
822 | 826 | } | |
823 | 827 | ||
824 | - | let | |
825 | - | let am = | |
828 | + | let dm = { | |
829 | + | let am = es | |
826 | 830 | let an = size(am) | |
827 | 831 | let ao = false | |
828 | 832 | func ap (aq,ar) = if ((ar >= an)) | |
829 | 833 | then aq | |
830 | - | else | |
834 | + | else er(aq, am[ar]) | |
831 | 835 | ||
832 | 836 | func as (aq,ar) = if ((ar >= an)) | |
833 | 837 | then aq | |
835 | 839 | ||
836 | 840 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30) | |
837 | 841 | } | |
838 | - | $Tuple2(nil, | |
842 | + | $Tuple2(nil, dm) | |
839 | 843 | } | |
840 | 844 | } | |
841 | 845 | ||
842 | 846 | ||
843 | 847 | ||
844 | - | @Callable( | |
845 | - | func fixWarehouseFormats ( | |
848 | + | @Callable(ei) | |
849 | + | func fixWarehouseFormats (es) = if ((ei.caller != this)) | |
846 | 850 | then throw("permission denied") | |
847 | 851 | else { | |
848 | - | func | |
852 | + | func er (aj,bQ) = if ((bQ == "")) | |
849 | 853 | then throw("landAssetId is required") | |
850 | - | else (aj + size( | |
854 | + | else (aj + size(cW(invoke(ag, "fixWarehouseFormat", [bQ], nil)))) | |
851 | 855 | ||
852 | - | let | |
853 | - | let am = | |
856 | + | let dm = { | |
857 | + | let am = es | |
854 | 858 | let an = size(am) | |
855 | 859 | let ao = 0 | |
856 | 860 | func ap (aq,ar) = if ((ar >= an)) | |
857 | 861 | then aq | |
858 | - | else | |
862 | + | else er(aq, am[ar]) | |
859 | 863 | ||
860 | 864 | func as (aq,ar) = if ((ar >= an)) | |
861 | 865 | then aq | |
863 | 867 | ||
864 | 868 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25) | |
865 | 869 | } | |
866 | - | $Tuple2(nil, | |
870 | + | $Tuple2(nil, dm) | |
867 | 871 | } | |
868 | 872 | ||
869 | 873 | ||
870 | 874 | ||
871 | - | @Callable( | |
872 | - | func fixStakedPieces ( | |
875 | + | @Callable(ei) | |
876 | + | func fixStakedPieces (ev) = if ((ei.caller != this)) | |
873 | 877 | then throw("permission denied") | |
874 | 878 | else { | |
875 | - | func | |
879 | + | func ew (aj,t) = if ((t == "")) | |
876 | 880 | then throw("address is required") | |
877 | - | else (aj + | |
881 | + | else (aj + cZ(invoke(ag, "fixStakedPieces", [t], nil))) | |
878 | 882 | ||
879 | - | let | |
880 | - | let am = | |
883 | + | let dm = { | |
884 | + | let am = ev | |
881 | 885 | let an = size(am) | |
882 | 886 | let ao = 0 | |
883 | 887 | func ap (aq,ar) = if ((ar >= an)) | |
884 | 888 | then aq | |
885 | - | else | |
889 | + | else ew(aq, am[ar]) | |
886 | 890 | ||
887 | 891 | func as (aq,ar) = if ((ar >= an)) | |
888 | 892 | then aq | |
890 | 894 | ||
891 | 895 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
892 | 896 | } | |
893 | - | $Tuple2(nil, | |
897 | + | $Tuple2(nil, dm) | |
894 | 898 | } | |
895 | 899 | ||
896 | 900 | ||
897 | 901 | ||
898 | - | @Callable( | |
899 | - | func sendUsdtPrize ( | |
902 | + | @Callable(ei) | |
903 | + | func sendUsdtPrize (em) = if ((ei.caller != ag)) | |
900 | 904 | then throw("permission denied") | |
901 | 905 | else { | |
902 | - | let | |
903 | - | $Tuple2([ScriptTransfer(addressFromStringValue( | |
906 | + | let ex = fraction(assetBalance(this, ch), df, cm) | |
907 | + | $Tuple2([ScriptTransfer(addressFromStringValue(em), ex, ch)], ex) | |
904 | 908 | } | |
905 | 909 | ||
906 | 910 | ||
907 | 911 | ||
908 | - | @Callable( | |
912 | + | @Callable(ei) | |
909 | 913 | func getEmergencyServiceDataREADONLY () = { | |
910 | - | let | |
911 | - | let | |
912 | - | then split(value( | |
914 | + | let ey = getString(cI, cd()) | |
915 | + | let ez = if (isDefined(ey)) | |
916 | + | then split(value(ey), "_") | |
913 | 917 | else nil | |
914 | - | func | |
915 | - | let | |
916 | - | let | |
917 | - | let | |
918 | - | then ( | |
918 | + | func eA (aj,eB) = { | |
919 | + | let da = aj._2 | |
920 | + | let cf = split(eB, "_") | |
921 | + | let eC = if ((da == 0)) | |
922 | + | then (bA * bG) | |
919 | 923 | else 0 | |
920 | - | let | |
921 | - | then parseIntValue( | |
924 | + | let eD = if ((size(ez) > da)) | |
925 | + | then parseIntValue(ez[da]) | |
922 | 926 | else 0 | |
923 | - | let | |
924 | - | let | |
925 | - | let | |
926 | - | let | |
927 | - | $Tuple2((aj._1 :+ | |
927 | + | let eE = ce(cf) | |
928 | + | let eF = fraction((eE * bB), bz, (10 * bG)) | |
929 | + | let eG = fraction((eE * bC), bz, (10 * bG)) | |
930 | + | let eH = makeString([toString(eC), toString(eD), toString(eF), toString(eG)], "_") | |
931 | + | $Tuple2((aj._1 :+ eH), (da + 1)) | |
928 | 932 | } | |
929 | 933 | ||
930 | - | let | |
934 | + | let cY = makeString_2C(( let am = bE | |
931 | 935 | let an = size(am) | |
932 | 936 | let ao = $Tuple2(nil, 0) | |
933 | 937 | func ap (aq,ar) = if ((ar >= an)) | |
934 | 938 | then aq | |
935 | - | else | |
939 | + | else eA(aq, am[ar]) | |
936 | 940 | ||
937 | 941 | func as (aq,ar) = if ((ar >= an)) | |
938 | 942 | then aq | |
939 | 943 | else throw("List size exceeds 50") | |
940 | 944 | ||
941 | 945 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._1, ":") | |
942 | - | let | |
943 | - | $Tuple2(nil, | |
946 | + | let eI = ("%s%s__emergencyServiceData__" + cY) | |
947 | + | $Tuple2(nil, eI) | |
944 | 948 | } | |
945 | 949 | ||
946 | 950 | ||
947 | 951 | ||
948 | - | @Callable( | |
952 | + | @Callable(ei) | |
949 | 953 | func wlgStatsREADONLY (av) = { | |
950 | - | let | |
951 | - | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString( | |
954 | + | let eJ = au(av, [cH, ag, cI, cJ, cK, cL], ch, 0) | |
955 | + | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString(eJ[y])), ("%s%s%d__wlgPrice__" + toString(eJ[z])), ("%s%s%d__usdtFunds__" + toString(eJ[A])), ("%s%s%d__usdtEconomy__" + toString(eJ[B])), ("%s%s%d__usdtActivity__" + toString(eJ[C])), ("%s%s%d__usdtArbitrage__" + toString(eJ[D])), ("%s%s%d__usdtPool__" + toString(eJ[E])), ("%s%s%d__wlgIssueTime__" + toString(eJ[F])), ("%s%s%d__wlgLastMarketingTeamActTime__" + toString(eJ[G])), ("%s%s%d__wlgMarketingTotal__" + toString(eJ[H])), ("%s%s%d__wlgMarketingAmLeft__" + toString(eJ[I])), ("%s%s%d__wlgMarketingAmAvailNow__" + toString(eJ[J])), ("%s%s%d__wlgMarketingWlgold__" + toString(eJ[K])), ("%s%s%d__wlgTeamTotal__" + toString(eJ[L])), ("%s%s%d__wlgTeamAmLeft__" + toString(eJ[M])), ("%s%s%d__wlgTeamAmAvailNow__" + toString(eJ[N])), ("%s%s%d__wlgTeamWlgold__" + toString(eJ[O])), ("%s%s%d__wlgActTotal__" + toString(eJ[P])), ("%s%s%d__wlgActAmLeft__" + toString(eJ[Q])), ("%s%s%d__wlgActAmAvailNow__" + toString(eJ[R])), ("%s%s%d__wlgActWlgold__" + toString(eJ[S])), ("%s%s%d__wlgCurPeriod__" + toString(eJ[T])), ("%s%s%d__wlgAmLeftTotal__" + toString(eJ[U])), ("%s%s%d__wlgCurPeriodDistribution__" + toString(eJ[V])), ("%s%s%d__wlgLastUserTime__" + toString(eJ[W])), ("%s%s%d__wlgUserAmAvailNow__" + toString(eJ[X])), ("%s%s%d__wlgGuestSLandDaily__" + toString(eJ[Y]))]) | |
952 | 956 | } | |
953 | 957 | ||
954 | 958 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 1000000 | |
5 | 5 | ||
6 | 6 | let b = 100000000 | |
7 | 7 | ||
8 | 8 | let c = 100000000000000 | |
9 | 9 | ||
10 | 10 | let d = 100000 | |
11 | 11 | ||
12 | 12 | let e = 200000 | |
13 | 13 | ||
14 | 14 | let f = 100000 | |
15 | 15 | ||
16 | 16 | let g = 400000 | |
17 | 17 | ||
18 | 18 | let h = 31557600000 | |
19 | 19 | ||
20 | 20 | let i = 86400000 | |
21 | 21 | ||
22 | 22 | let j = "marketingAddr" | |
23 | 23 | ||
24 | 24 | let k = "teamAddr" | |
25 | 25 | ||
26 | 26 | let l = "lastClaimedTime_marketing" | |
27 | 27 | ||
28 | 28 | let m = "marketingAmountLeft" | |
29 | 29 | ||
30 | 30 | let n = "lastClaimedTime_team" | |
31 | 31 | ||
32 | 32 | let o = "teamAmountLeft" | |
33 | 33 | ||
34 | 34 | let p = "lastClaimedTime_activities" | |
35 | 35 | ||
36 | 36 | let q = "activitiesAmountLeft" | |
37 | 37 | ||
38 | 38 | let r = "stakersAmountLeft" | |
39 | 39 | ||
40 | 40 | func s (t) = ("lastClaimedTimeUser_" + t) | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func u (v) = fraction(c, (g * (v + 1)), (6 * a)) | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | let w = "wlg_issueTime" | |
47 | 47 | ||
48 | 48 | let x = "wlg_issuedAmount" | |
49 | 49 | ||
50 | 50 | let y = 0 | |
51 | 51 | ||
52 | 52 | let z = 1 | |
53 | 53 | ||
54 | 54 | let A = 2 | |
55 | 55 | ||
56 | 56 | let B = 3 | |
57 | 57 | ||
58 | 58 | let C = 4 | |
59 | 59 | ||
60 | 60 | let D = 5 | |
61 | 61 | ||
62 | 62 | let E = 6 | |
63 | 63 | ||
64 | 64 | let F = 7 | |
65 | 65 | ||
66 | 66 | let G = 8 | |
67 | 67 | ||
68 | 68 | let H = 9 | |
69 | 69 | ||
70 | 70 | let I = 10 | |
71 | 71 | ||
72 | 72 | let J = 11 | |
73 | 73 | ||
74 | 74 | let K = 12 | |
75 | 75 | ||
76 | 76 | let L = 13 | |
77 | 77 | ||
78 | 78 | let M = 14 | |
79 | 79 | ||
80 | 80 | let N = 15 | |
81 | 81 | ||
82 | 82 | let O = 16 | |
83 | 83 | ||
84 | 84 | let P = 17 | |
85 | 85 | ||
86 | 86 | let Q = 18 | |
87 | 87 | ||
88 | 88 | let R = 19 | |
89 | 89 | ||
90 | 90 | let S = 20 | |
91 | 91 | ||
92 | 92 | let T = 21 | |
93 | 93 | ||
94 | 94 | let U = 22 | |
95 | 95 | ||
96 | 96 | let V = 23 | |
97 | 97 | ||
98 | 98 | let W = 24 | |
99 | 99 | ||
100 | 100 | let X = 25 | |
101 | 101 | ||
102 | 102 | let Y = 26 | |
103 | 103 | ||
104 | 104 | let Z = 0 | |
105 | 105 | ||
106 | 106 | let aa = 1 | |
107 | 107 | ||
108 | 108 | let ab = 2 | |
109 | 109 | ||
110 | 110 | let ac = 4 | |
111 | 111 | ||
112 | 112 | let ad = 5 | |
113 | 113 | ||
114 | 114 | func ae (af,ag) = { | |
115 | 115 | let ah = split(valueOrElse(getString(ag, "resTypesProportions"), "0_0_0_0_0_0"), "_") | |
116 | 116 | func ai (aj,ak) = (aj + parseIntValue(ak)) | |
117 | 117 | ||
118 | 118 | let al = { | |
119 | 119 | let am = ah | |
120 | 120 | let an = size(am) | |
121 | 121 | let ao = 0 | |
122 | 122 | func ap (aq,ar) = if ((ar >= an)) | |
123 | 123 | then aq | |
124 | 124 | else ai(aq, am[ar]) | |
125 | 125 | ||
126 | 126 | func as (aq,ar) = if ((ar >= an)) | |
127 | 127 | then aq | |
128 | 128 | else throw("List size exceeds 6") | |
129 | 129 | ||
130 | 130 | as(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6) | |
131 | 131 | } | |
132 | 132 | let at = valueOrElse(getInteger(ag, ("stakedPiecesByOwner_" + af)), 0) | |
133 | 133 | [al, at] | |
134 | 134 | } | |
135 | 135 | ||
136 | 136 | ||
137 | 137 | func au (av,aw,ax,ay) = { | |
138 | 138 | let az = valueOrErrorMessage(getInteger(aw[ac], x), "WLGOLD is not issued yet") | |
139 | 139 | let aA = assetBalance(aw[ab], ax) | |
140 | 140 | let aB = assetBalance(aw[Z], ax) | |
141 | 141 | let aC = (assetBalance(aw[ac], ax) - ay) | |
142 | 142 | let aD = assetBalance(aw[ad], ax) | |
143 | 143 | let aE = (aA + aC) | |
144 | 144 | let aF = valueOrErrorMessage(getBinary(aw[ac], "wlg_assetId"), "Not initialized yet") | |
145 | 145 | let aG = lastBlock.timestamp | |
146 | 146 | let aH = valueOrErrorMessage(getInteger(aw[ac], w), "Not initialized") | |
147 | 147 | let aI = fraction(c, d, a) | |
148 | 148 | let aJ = valueOrElse(getInteger(aw[ac], m), aI) | |
149 | 149 | let aK = valueOrElse(getInteger(aw[ac], l), aH) | |
150 | 150 | let aL = addressFromStringValue(value(getString(aw[ac], j))) | |
151 | 151 | let aM = min([fraction(aI, (aG - aK), h), aJ]) | |
152 | 152 | let aN = assetBalance(aL, aF) | |
153 | 153 | let aO = fraction(c, e, a) | |
154 | 154 | let aP = valueOrElse(getInteger(aw[ac], o), aO) | |
155 | 155 | let aQ = valueOrElse(getInteger(aw[ac], n), aH) | |
156 | 156 | let aR = addressFromStringValue(value(getString(aw[ac], k))) | |
157 | 157 | let aS = min([fraction(aO, (aG - aQ), (3 * h)), aP]) | |
158 | 158 | let aT = assetBalance(aR, aF) | |
159 | 159 | let aU = fraction(c, f, a) | |
160 | 160 | let aV = valueOrElse(getInteger(aw[ac], q), aU) | |
161 | 161 | let aW = valueOrElse(getInteger(aw[ac], p), aH) | |
162 | 162 | let aX = min([fraction(aU, (aG - aW), (3 * h)), aV]) | |
163 | 163 | let aY = assetBalance(aw[Z], aF) | |
164 | 164 | let aZ = valueOrElse(getInteger(aw[ac], s(av)), aH) | |
165 | 165 | let ba = ((aZ - aH) / h) | |
166 | 166 | let bb = min([aG, (aH + (3 * h))]) | |
167 | 167 | let bc = min([((aG - aH) / h), 2]) | |
168 | 168 | let bd = ae(av, aw[aa]) | |
169 | 169 | let be = u(bc) | |
170 | 170 | let bf = fraction(if ((ba == bc)) | |
171 | 171 | then fraction(be, (bb - aZ), h) | |
172 | 172 | else if ((ba == (bc - 1))) | |
173 | 173 | then (fraction(u((bc - 1)), ((aH + (h * bc)) - aZ), h) + fraction(be, (bb - (aH + (h * bc))), h)) | |
174 | 174 | else ((fraction(u((bc - 2)), ((aH + (h * (bc - 1))) - aZ), h) + u((bc - 1))) + fraction(be, (bb - (aH + (h * bc))), h)), bd[1], bd[0]) | |
175 | 175 | let bg = fraction(fraction(be, i, h), 25, bd[0]) | |
176 | 176 | let bh = valueOrElse(getInteger(aw[ac], r), 0) | |
177 | 177 | [az, fraction(aE, b, az), aE, aA, aB, aC, aD, aH, aK, aI, aJ, aM, aN, aO, aP, aS, aT, aU, aV, aX, aY, bc, bh, be, aZ, bf, bg] | |
178 | 178 | } | |
179 | 179 | ||
180 | 180 | ||
181 | 181 | func bi (bj) = ("duckChars_" + bj) | |
182 | 182 | ||
183 | 183 | ||
184 | 184 | func bk (bj) = ("duckXP_" + bj) | |
185 | 185 | ||
186 | 186 | ||
187 | 187 | func bl (bj) = ("duckLevel_" + bj) | |
188 | 188 | ||
189 | 189 | ||
190 | 190 | func bm (bj) = ("duckFreePoints_" + bj) | |
191 | 191 | ||
192 | 192 | ||
193 | - | func bn ( | |
193 | + | func bn (bj) = ("duckEquipment_" + bj) | |
194 | 194 | ||
195 | 195 | ||
196 | - | func bo (t) = (" | |
196 | + | func bo (t) = ("userXP_" + t) | |
197 | 197 | ||
198 | 198 | ||
199 | - | func bp (t) = (" | |
199 | + | func bp (t) = ("userLevel_" + t) | |
200 | 200 | ||
201 | 201 | ||
202 | - | func bq ( | |
202 | + | func bq (t) = ("userFreePoints_" + t) | |
203 | 203 | ||
204 | 204 | ||
205 | - | let bs = "PRESALE" | |
206 | - | ||
207 | - | let bt = "ONBOARD" | |
208 | - | ||
209 | - | let bu = 6 | |
210 | - | ||
211 | - | let bv = 3456000 | |
212 | - | ||
213 | - | let bw = 86400000 | |
214 | - | ||
215 | - | let bx = 10000000000 | |
216 | - | ||
217 | - | let by = 39637 | |
218 | - | ||
219 | - | let bz = 3 | |
220 | - | ||
221 | - | let bA = 4 | |
222 | - | ||
223 | - | let bB = 10 | |
224 | - | ||
225 | - | let bC = 10000000 | |
226 | - | ||
227 | - | let bD = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_30_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_50_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_70_0,0,0,0,0,0,0_201"] | |
228 | - | ||
229 | - | let bE = 6 | |
230 | - | ||
231 | - | let bF = 10 | |
232 | - | ||
233 | - | func bG (t) = ("lastTxIdByUser_" + t) | |
205 | + | func br (bs) = (100 + bs) | |
234 | 206 | ||
235 | 207 | ||
236 | - | func bH (bI) = ("nftOwner_" + bI) | |
208 | + | let bt = "PRESALE" | |
209 | + | ||
210 | + | let bu = "ONBOARD" | |
211 | + | ||
212 | + | let bv = 6 | |
213 | + | ||
214 | + | let bw = 3456000 | |
215 | + | ||
216 | + | let bx = 86400000 | |
217 | + | ||
218 | + | let by = 10000000000 | |
219 | + | ||
220 | + | let bz = 39637 | |
221 | + | ||
222 | + | let bA = 3 | |
223 | + | ||
224 | + | let bB = 4 | |
225 | + | ||
226 | + | let bC = 10 | |
227 | + | ||
228 | + | let bD = 10000000 | |
229 | + | ||
230 | + | let bE = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_30_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_50_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_70_0,0,0,0,0,0,0_201"] | |
231 | + | ||
232 | + | let bF = 6 | |
233 | + | ||
234 | + | let bG = 10 | |
235 | + | ||
236 | + | func bH (t) = ("lastTxIdByUser_" + t) | |
237 | 237 | ||
238 | 238 | ||
239 | - | func | |
239 | + | func bI (bJ) = ("nftOwner_" + bJ) | |
240 | 240 | ||
241 | 241 | ||
242 | - | func bK ( | |
242 | + | func bK (bJ) = ("landCustomNameByAssetId_" + bJ) | |
243 | 243 | ||
244 | 244 | ||
245 | - | func bL ( | |
245 | + | func bL (bJ) = ("stakedTime_" + bJ) | |
246 | 246 | ||
247 | 247 | ||
248 | - | func bM ( | |
248 | + | func bM (bJ) = ("infraLevel_" + bJ) | |
249 | 249 | ||
250 | 250 | ||
251 | - | func | |
251 | + | func bN (bO,bJ) = makeString(["landArtStatus", bO, bJ], "_") | |
252 | 252 | ||
253 | 253 | ||
254 | - | func | |
254 | + | func bP (bQ) = ("wareHouse_" + bQ) | |
255 | 255 | ||
256 | 256 | ||
257 | - | func bR ( | |
257 | + | func bR (bJ) = ("duckCustomNameByAssetId_" + bJ) | |
258 | 258 | ||
259 | 259 | ||
260 | - | func bS (t) = (" | |
260 | + | func bS (t) = ("accountCustomNameByAddr_" + t) | |
261 | 261 | ||
262 | 262 | ||
263 | - | func bT (t) = (" | |
263 | + | func bT (t) = ("accRefBy_" + t) | |
264 | 264 | ||
265 | 265 | ||
266 | - | func bU (t) = (" | |
266 | + | func bU (t) = ("onboardArtActivatedDuckBy_" + t) | |
267 | 267 | ||
268 | 268 | ||
269 | - | func bV ( | |
269 | + | func bV (t) = ("accReferrals_" + t) | |
270 | 270 | ||
271 | 271 | ||
272 | - | func bW ( | |
272 | + | func bW (bJ) = ("duckOwner_" + bJ) | |
273 | 273 | ||
274 | 274 | ||
275 | - | func | |
275 | + | func bX (bY) = ("stakedDuckByOwner_" + bY) | |
276 | 276 | ||
277 | 277 | ||
278 | - | func bZ (bj) = (" | |
278 | + | func bZ (bj) = ("duckLocation_" + bj) | |
279 | 279 | ||
280 | 280 | ||
281 | - | func ca () = " | |
281 | + | func ca (bj) = ("duckHealth_" + bj) | |
282 | 282 | ||
283 | 283 | ||
284 | - | func cb ( | |
284 | + | func cb () = "contractsBlocked" | |
285 | 285 | ||
286 | 286 | ||
287 | - | func cc () = " | |
287 | + | func cc (bQ) = ("landOrder_" + bQ) | |
288 | 288 | ||
289 | 289 | ||
290 | - | func cd ( | |
290 | + | func cd () = "emergencyWarehouseProducts" | |
291 | 291 | ||
292 | 292 | ||
293 | - | ||
293 | + | func ce (cf) = (parseIntValue(cf[bF]) * bD) | |
294 | 294 | ||
295 | - | let cg = { | |
296 | - | let ch = cf | |
297 | - | if ((base58'2W' == ch)) | |
295 | + | ||
296 | + | let cg = take(drop(this.bytes, 1), 1) | |
297 | + | ||
298 | + | let ch = { | |
299 | + | let ci = cg | |
300 | + | if ((base58'2W' == ci)) | |
298 | 301 | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
299 | - | else if ((base58'2T' == | |
302 | + | else if ((base58'2T' == ci)) | |
300 | 303 | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
301 | 304 | else throw("Unknown chain") | |
302 | 305 | } | |
303 | 306 | ||
304 | - | let | |
305 | - | let | |
306 | - | if ((base58'2W' == | |
307 | + | let cj = { | |
308 | + | let ci = cg | |
309 | + | if ((base58'2W' == ci)) | |
307 | 310 | then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv" | |
308 | - | else if ((base58'2T' == | |
311 | + | else if ((base58'2T' == ci)) | |
309 | 312 | then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy" | |
310 | 313 | else throw("Unknown chain") | |
311 | 314 | } | |
312 | 315 | ||
313 | - | let | |
314 | - | let | |
315 | - | if ((base58'2W' == | |
316 | + | let ck = { | |
317 | + | let ci = cg | |
318 | + | if ((base58'2W' == ci)) | |
316 | 319 | then 10000000000 | |
317 | - | else if ((base58'2T' == | |
320 | + | else if ((base58'2T' == ci)) | |
318 | 321 | then 100000000 | |
319 | 322 | else throw("Unknown chain") | |
320 | 323 | } | |
321 | 324 | ||
322 | - | let | |
325 | + | let cl = "__" | |
323 | 326 | ||
324 | - | let | |
327 | + | let cm = 1000000 | |
325 | 328 | ||
326 | - | let | |
329 | + | let cn = 25 | |
327 | 330 | ||
328 | - | let | |
331 | + | let co = 100 | |
329 | 332 | ||
330 | - | let | |
333 | + | let cp = 225 | |
331 | 334 | ||
332 | - | let | |
335 | + | let cq = 400 | |
333 | 336 | ||
334 | - | let | |
337 | + | let cr = 625 | |
335 | 338 | ||
336 | - | func | |
339 | + | func cs (ct,cu) = valueOrErrorMessage(getString(ct, cu), makeString(["mandatory ", toString(ct), ".", cu, " is not defined"], "")) | |
337 | 340 | ||
338 | 341 | ||
339 | - | let | |
342 | + | let cv = 1 | |
340 | 343 | ||
341 | - | let | |
344 | + | let cw = 2 | |
342 | 345 | ||
343 | - | let | |
346 | + | let cx = 3 | |
344 | 347 | ||
345 | - | let | |
348 | + | let cy = 4 | |
346 | 349 | ||
347 | - | let | |
350 | + | let cz = 5 | |
348 | 351 | ||
349 | - | func | |
352 | + | func cA () = "%s__restConfig" | |
350 | 353 | ||
351 | 354 | ||
352 | - | func | |
355 | + | func cB () = "%s__restAddr" | |
353 | 356 | ||
354 | 357 | ||
355 | - | func | |
358 | + | func cC (cD) = split_4C(cs(cD, cA()), cl) | |
356 | 359 | ||
357 | 360 | ||
358 | - | func | |
361 | + | func cE (cF,cG) = valueOrErrorMessage(addressFromString(cF[cG]), ("Rest cfg doesn't contain address at index " + toString(cG))) | |
359 | 362 | ||
360 | 363 | ||
361 | - | let | |
364 | + | let cH = addressFromStringValue(valueOrElse(getString(this, cB()), cj)) | |
362 | 365 | ||
363 | - | let | |
366 | + | let cF = cC(cH) | |
364 | 367 | ||
365 | - | let ag = | |
368 | + | let ag = cE(cF, cv) | |
366 | 369 | ||
367 | - | let | |
370 | + | let cI = cE(cF, cw) | |
368 | 371 | ||
369 | - | let | |
372 | + | let cJ = cE(cF, cx) | |
370 | 373 | ||
371 | - | let | |
374 | + | let cK = cE(cF, cy) | |
372 | 375 | ||
373 | - | let | |
376 | + | let cL = cE(cF, cz) | |
374 | 377 | ||
375 | - | let | |
378 | + | let cM = 0 | |
376 | 379 | ||
377 | - | let | |
380 | + | let cN = 1 | |
378 | 381 | ||
379 | - | let | |
382 | + | let cO = 2 | |
380 | 383 | ||
381 | - | let | |
384 | + | let cP = 3 | |
382 | 385 | ||
383 | - | let | |
386 | + | let cQ = "wlg_assetId" | |
384 | 387 | ||
385 | - | let | |
388 | + | let cR = valueOrErrorMessage(getBinary(cK, cQ), "Not initialized yet") | |
386 | 389 | ||
387 | - | let | |
390 | + | let cS = 1 | |
388 | 391 | ||
389 | - | func | |
392 | + | func cT () = "resTypesProportions" | |
390 | 393 | ||
391 | 394 | ||
392 | - | func | |
395 | + | func cU (bY) = ("stakedLandsByOwner_" + bY) | |
393 | 396 | ||
394 | 397 | ||
395 | - | func | |
398 | + | func cV (bY) = ("stakedPiecesByOwner_" + bY) | |
396 | 399 | ||
397 | 400 | ||
398 | - | func | |
399 | - | let | |
400 | - | if ($isInstanceOf( | |
401 | + | func cW (cX) = { | |
402 | + | let ci = cX | |
403 | + | if ($isInstanceOf(ci, "String")) | |
401 | 404 | then { | |
402 | - | let | |
403 | - | | |
405 | + | let cY = ci | |
406 | + | cY | |
404 | 407 | } | |
405 | 408 | else throw("fail to cast into String") | |
406 | 409 | } | |
407 | 410 | ||
408 | 411 | ||
409 | - | func | |
410 | - | let | |
411 | - | if ($isInstanceOf( | |
412 | + | func cZ (cX) = { | |
413 | + | let ci = cX | |
414 | + | if ($isInstanceOf(ci, "Int")) | |
412 | 415 | then { | |
413 | - | let | |
414 | - | | |
416 | + | let da = ci | |
417 | + | da | |
415 | 418 | } | |
416 | 419 | else throw("fail to cast into Int") | |
417 | 420 | } | |
418 | 421 | ||
419 | 422 | ||
420 | - | func | |
421 | - | let | |
422 | - | if ($isInstanceOf( | |
423 | + | func db (cX) = { | |
424 | + | let ci = cX | |
425 | + | if ($isInstanceOf(ci, "Boolean")) | |
423 | 426 | then { | |
424 | - | let | |
425 | - | | |
427 | + | let cY = ci | |
428 | + | cY | |
426 | 429 | } | |
427 | 430 | else throw("fail to cast into Boolean") | |
428 | 431 | } | |
429 | 432 | ||
430 | 433 | ||
431 | - | func | |
432 | - | let | |
433 | - | if (("S" == | |
434 | - | then | |
435 | - | else if (("M" == | |
436 | - | then | |
437 | - | else if (("L" == | |
438 | - | then | |
439 | - | else if (("XL" == | |
440 | - | then | |
441 | - | else if (("XXL" == | |
442 | - | then | |
434 | + | func dc (dd) = { | |
435 | + | let ci = dd | |
436 | + | if (("S" == ci)) | |
437 | + | then cn | |
438 | + | else if (("M" == ci)) | |
439 | + | then co | |
440 | + | else if (("L" == ci)) | |
441 | + | then cp | |
442 | + | else if (("XL" == ci)) | |
443 | + | then cq | |
444 | + | else if (("XXL" == ci)) | |
445 | + | then cr | |
443 | 446 | else throw("Unknown land size") | |
444 | 447 | } | |
445 | 448 | ||
446 | 449 | ||
447 | - | func | |
448 | - | let ah = split(valueOrElse(getString(ag, | |
450 | + | func de (af) = { | |
451 | + | let ah = split(valueOrElse(getString(ag, cT()), "0_0_0_0_0_0"), "_") | |
449 | 452 | func ai (aj,ak) = (aj + parseIntValue(ak)) | |
450 | 453 | ||
451 | 454 | let al = { | |
452 | 455 | let am = ah | |
453 | 456 | let an = size(am) | |
454 | 457 | let ao = 0 | |
455 | 458 | func ap (aq,ar) = if ((ar >= an)) | |
456 | 459 | then aq | |
457 | 460 | else ai(aq, am[ar]) | |
458 | 461 | ||
459 | 462 | func as (aq,ar) = if ((ar >= an)) | |
460 | 463 | then aq | |
461 | 464 | else throw("List size exceeds 6") | |
462 | 465 | ||
463 | 466 | as(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6) | |
464 | 467 | } | |
465 | - | let at = valueOrElse(getInteger(ag, | |
468 | + | let at = valueOrElse(getInteger(ag, cV(af)), 0) | |
466 | 469 | [al, at] | |
467 | 470 | } | |
468 | 471 | ||
469 | 472 | ||
470 | - | let | |
473 | + | let df = 500000 | |
471 | 474 | ||
472 | - | func | |
473 | - | let | |
474 | - | if ($isInstanceOf( | |
475 | + | func dg (dh) = { | |
476 | + | let ci = dh | |
477 | + | if ($isInstanceOf(ci, "List[Any]")) | |
475 | 478 | then { | |
476 | - | let | |
477 | - | if ((size( | |
478 | - | then throw(("Array size is " + toString(size( | |
479 | + | let di = ci | |
480 | + | if ((size(di) != bv)) | |
481 | + | then throw(("Array size is " + toString(size(di)))) | |
479 | 482 | else { | |
480 | - | func | |
481 | - | let | |
482 | - | if ($isInstanceOf( | |
483 | + | func dj (aj,ak) = { | |
484 | + | let dk = ak | |
485 | + | if ($isInstanceOf(dk, "Int")) | |
483 | 486 | then { | |
484 | - | let | |
485 | - | (aj :+ toString( | |
487 | + | let dl = dk | |
488 | + | (aj :+ toString(dl)) | |
486 | 489 | } | |
487 | 490 | else throw("List type is not Int") | |
488 | 491 | } | |
489 | 492 | ||
490 | - | let | |
491 | - | let am = | |
493 | + | let dm = { | |
494 | + | let am = di | |
492 | 495 | let an = size(am) | |
493 | 496 | let ao = nil | |
494 | 497 | func ap (aq,ar) = if ((ar >= an)) | |
495 | 498 | then aq | |
496 | - | else | |
499 | + | else dj(aq, am[ar]) | |
497 | 500 | ||
498 | 501 | func as (aq,ar) = if ((ar >= an)) | |
499 | 502 | then aq | |
500 | 503 | else throw("List size exceeds 6") | |
501 | 504 | ||
502 | 505 | as(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6) | |
503 | 506 | } | |
504 | - | makeString( | |
507 | + | makeString(dm, "_") | |
505 | 508 | } | |
506 | 509 | } | |
507 | 510 | else throw("fail to cast into List") | |
508 | 511 | } | |
509 | 512 | ||
510 | 513 | ||
511 | - | func | |
512 | - | let | |
513 | - | if ($isInstanceOf( | |
514 | + | func dn (dh) = { | |
515 | + | let ci = dh | |
516 | + | if ($isInstanceOf(ci, "(List[Any], List[Any])")) | |
514 | 517 | then { | |
515 | - | let | |
516 | - | $Tuple2( | |
518 | + | let do = ci | |
519 | + | $Tuple2(dg(do._1), dg(do._2)) | |
517 | 520 | } | |
518 | 521 | else throw("fail to cast into (List, List)") | |
519 | 522 | } | |
520 | 523 | ||
521 | 524 | ||
522 | - | func | |
523 | - | let t = addressFromString( | |
524 | - | let | |
525 | + | func dp (dq) = { | |
526 | + | let t = addressFromString(dq) | |
527 | + | let dr = if (isDefined(t)) | |
525 | 528 | then wavesBalance(value(t)) | |
526 | 529 | else BalanceDetails(0, 0, 0, 0) | |
527 | - | let | |
528 | - | then assetBalance(value(t), | |
530 | + | let ds = if (isDefined(t)) | |
531 | + | then assetBalance(value(t), ch) | |
529 | 532 | else 0 | |
530 | - | let | |
531 | - | then assetBalance(value(t), | |
533 | + | let dt = if (isDefined(t)) | |
534 | + | then assetBalance(value(t), cR) | |
532 | 535 | else 0 | |
533 | - | let | |
534 | - | let | |
535 | - | let | |
536 | - | let | |
537 | - | let | |
538 | - | let | |
539 | - | let | |
540 | - | let | |
541 | - | let | |
542 | - | let | |
543 | - | then ( | |
544 | - | then isDefined(getString(ag, | |
536 | + | let du = valueOrElse(getString(ag, bS(dq)), dq) | |
537 | + | let dv = bT(dq) | |
538 | + | let dw = getString(ag, dv) | |
539 | + | let dx = valueOrElse(getString(ag, bV(dq)), "") | |
540 | + | let dy = valueOrElse(getString(ag, bH(dq)), "") | |
541 | + | let dz = de(dq)[cS] | |
542 | + | let dA = valueOrElse(getInteger(ag, bo(dq)), 0) | |
543 | + | let dB = valueOrElse(getInteger(ag, bp(dq)), 0) | |
544 | + | let dC = valueOrElse(getInteger(ag, bq(dq)), 0) | |
545 | + | let dD = if (isDefined(dw)) | |
546 | + | then (bu + (if (if (isDefined(t)) | |
547 | + | then isDefined(getString(ag, bU(dq))) | |
545 | 548 | else false) | |
546 | 549 | then ":1" | |
547 | 550 | else ":0")) | |
548 | 551 | else "" | |
549 | - | [("%s%s__customName__" + | |
552 | + | [("%s%s__customName__" + du), ("%s%s__referredBy__" + valueOrElse(dw, "")), ("%s%s__referrals__" + dx), ("%s%s__lastTxId__" + dy), ("%s%d__wavesBalance__" + toString(dr.available)), ("%s%d__wlgoldBalance__" + toString(dt)), ("%s%d__usdtBalance__" + toString(ds)), ("%s%d__stakedPieces__" + toString(dz)), ("%s%d__currentXp__" + toString(dA)), ("%s%d__currentLvl__" + toString(dB)), ("%s%d__pointsToDistribute__" + toString(dC)), ("%s%s__walletArtefacts__" + dD)] | |
550 | 553 | } | |
551 | 554 | ||
552 | 555 | ||
553 | - | func | |
554 | - | let | |
555 | - | let | |
556 | - | let | |
557 | - | let | |
558 | - | $Tuple3( | |
556 | + | func dE (bQ,dz) = { | |
557 | + | let dF = valueOrElse(getInteger(ag, bM(bQ)), 0) | |
558 | + | let dG = valueOrElse(getInteger(ag, bN(bt, bQ)), 0) | |
559 | + | let dH = (dF / 6) | |
560 | + | let dI = (dF / 7) | |
561 | + | $Tuple3(dF, dG, ((bw + fraction(bw, ((dF + dH) + (2 * dI)), 5)) + fraction(bw, dG, (dz * 5)))) | |
559 | 562 | } | |
560 | 563 | ||
561 | 564 | ||
562 | - | func | |
563 | - | let | |
564 | - | (( | |
565 | + | func dJ (dK) = { | |
566 | + | let dL = split(dK, "_") | |
567 | + | ((by * (parseIntValue(dL[1]) + 1)) * parseIntValue(dL[0])) | |
565 | 568 | } | |
566 | 569 | ||
567 | 570 | ||
568 | - | func | |
569 | - | let | |
570 | - | let | |
571 | - | let | |
572 | - | split( | |
571 | + | func dM (dN,dO,dF) = { | |
572 | + | let dK = ((toString(dO) + "_") + toString(dF)) | |
573 | + | let dP = toString(dJ(dK)) | |
574 | + | let dQ = valueOrElse(getString(ag, dN), ((((dK + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + dP) + "_") + dP)) | |
575 | + | split(dQ, ":") | |
573 | 576 | } | |
574 | 577 | ||
575 | 578 | ||
576 | - | func | |
579 | + | func dR (bj) = $Tuple5(valueOrElse(getInteger(ag, bL(bj)), -1), value(assetInfo(fromBase58String(bj))).name, valueOrElse(getString(ag, bZ(bj)), ""), valueOrElse(getInteger(ag, ca(bj)), -1), cW(invoke(ag, "getBackpackREADONLY", [bj], nil))) | |
577 | 580 | ||
578 | 581 | ||
579 | - | func dR (bj,dS,dT) = { | |
580 | - | let dt = valueOrElse(getString(ag, bQ(bj)), dT._2) | |
581 | - | let dU = valueOrElse(getString(ag, bi(bj)), "0_0_0_0_0") | |
582 | - | let dz = valueOrElse(getInteger(ag, bk(bj)), 0) | |
583 | - | let dA = valueOrElse(getInteger(ag, bl(bj)), 0) | |
584 | - | let dB = valueOrElse(getInteger(ag, bm(bj)), 0) | |
585 | - | [("%s%s__assetId__" + bj), ("%s%s__owner__" + dS), ("%s%s__customName__" + dt), ("%s%d__stakedTime__" + toString(dT._1)), ("%s%s__name__" + dT._2), ("%s%s__location__" + dT._3), ("%s%d__health__" + toString(dT._4)), ("%s%d__maxHealth__" + toString(bq(dA))), ("%s%s__characteristics__" + dU), ("%s%d__currentXp__" + toString(dz)), ("%s%d__currentLvl__" + toString(dA)), ("%s%d__pointsToDistribute__" + toString(dB)), ("%s%s__backPack__" + dT._5)] | |
582 | + | func dS (bj,dT,dU) = { | |
583 | + | let du = valueOrElse(getString(ag, bR(bj)), dU._2) | |
584 | + | let dV = valueOrElse(getString(ag, bi(bj)), "0_0_0_0_0") | |
585 | + | let dA = valueOrElse(getInteger(ag, bk(bj)), 0) | |
586 | + | let dB = valueOrElse(getInteger(ag, bl(bj)), 0) | |
587 | + | let dC = valueOrElse(getInteger(ag, bm(bj)), 0) | |
588 | + | let dW = valueOrElse(getString(ag, bn(bj)), ";_;_;_;_;_;") | |
589 | + | [("%s%s__assetId__" + bj), ("%s%s__owner__" + dT), ("%s%s__customName__" + du), ("%s%d__stakedTime__" + toString(dU._1)), ("%s%s__name__" + dU._2), ("%s%s__location__" + dU._3), ("%s%d__health__" + toString(dU._4)), ("%s%d__maxHealth__" + toString(br(dB))), ("%s%s__characteristics__" + dV), ("%s%d__currentXp__" + toString(dA)), ("%s%d__currentLvl__" + toString(dB)), ("%s%d__pointsToDistribute__" + toString(dC)), ("%s%s__backPack__" + dU._5), ("%s%s__equipment__" + dW)] | |
586 | 590 | } | |
587 | 591 | ||
588 | 592 | ||
589 | - | func | |
593 | + | func dX (bQ,dT,dY) = if ((bQ == "")) | |
590 | 594 | then throw("landAssetId is required") | |
591 | 595 | else { | |
592 | - | let | |
593 | - | let | |
594 | - | let | |
595 | - | then | |
596 | - | else ("-" + | |
597 | - | let | |
598 | - | let | |
599 | - | let | |
600 | - | let | |
601 | - | then fraction( | |
596 | + | let dZ = value(assetInfo(fromBase58String(bQ))) | |
597 | + | let ea = split(dZ.description, "_") | |
598 | + | let eb = if ((dZ.quantity > 0)) | |
599 | + | then ea[cM] | |
600 | + | else ("-" + ea[cM]) | |
601 | + | let dz = dc(ea[cN]) | |
602 | + | let ec = dE(bQ, dz) | |
603 | + | let ed = (lastBlock.timestamp - dY) | |
604 | + | let ee = if ((dY > 0)) | |
605 | + | then fraction(ed, (ec._3 * dz), bx) | |
602 | 606 | else 0 | |
603 | - | let | |
604 | - | let | |
605 | - | then | |
606 | - | else $Tuple2( | |
607 | - | let | |
608 | - | [("%s%s__assetId__" + | |
607 | + | let ef = fraction(ck, (dz * (ec._1 + 1)), cn) | |
608 | + | let eg = if ((dY > 0)) | |
609 | + | then dn(invoke(ag, "splitByGlobalAndLocalWeightsREADONLY", [ef, ee, ea[cO]], nil)) | |
610 | + | else $Tuple2(dg(invoke(ag, "splitByGlobalWeightsREADONLY", [ef], nil)), "") | |
611 | + | let du = valueOrElse(getString(ag, bK(bQ)), ((ea[cP] + "-") + ea[cM])) | |
612 | + | [("%s%s__assetId__" + bQ), ("%s%s__owner__" + dT), ("%s%s__customName__" + du), ("%s%d__stakedTime__" + toString(dY)), ("%s%s__description__" + makeString([eb, ea[cN], ea[cO], ea[cP]], "_")), ("%s%d__infraLevel__" + toString(ec._1)), ("%s%s__availResByType__" + eg._2), ("%s%d__availResTotal__" + toString(ee)), ("%s%s__needMaterial__" + eg._1), ("%s%s__landArtefacts__PRESALE:" + toString(ec._2)), ("%s%s__warehouse__" + makeString(dM(bP(bQ), (dz / cn), ec._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(cI, cc(bQ)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
609 | 613 | } | |
610 | 614 | ||
611 | 615 | ||
612 | - | func | |
616 | + | func eh (bQ,dT) = if ((bQ == "")) | |
613 | 617 | then throw("landAssetId is required") | |
614 | 618 | else { | |
615 | - | let | |
616 | - | let | |
617 | - | let | |
618 | - | let | |
619 | - | [("%s%s__assetId__" + | |
619 | + | let dZ = value(assetInfo(fromBase58String(bQ))) | |
620 | + | let ea = split(dZ.description, "_") | |
621 | + | let dz = dc(ea[cN]) | |
622 | + | let ec = dE(bQ, dz) | |
623 | + | [("%s%s__assetId__" + bQ), ("%s%s__owner__" + dT), ("%s%s__warehouse__" + makeString(dM(bP(bQ), (dz / cn), ec._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(cI, cc(bQ)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))] | |
620 | 624 | } | |
621 | 625 | ||
622 | 626 | ||
623 | - | @Callable( | |
624 | - | func constructorV1 (aw) = if (( | |
627 | + | @Callable(ei) | |
628 | + | func constructorV1 (aw) = if ((ei.caller != this)) | |
625 | 629 | then throw("permissions denied") | |
626 | 630 | else { | |
627 | - | func | |
631 | + | func ej (aj,ek) = (aj + "%s") | |
628 | 632 | ||
629 | - | let | |
633 | + | let el = { | |
630 | 634 | let am = aw | |
631 | 635 | let an = size(am) | |
632 | 636 | let ao = "" | |
633 | 637 | func ap (aq,ar) = if ((ar >= an)) | |
634 | 638 | then aq | |
635 | - | else | |
639 | + | else ej(aq, am[ar]) | |
636 | 640 | ||
637 | 641 | func as (aq,ar) = if ((ar >= an)) | |
638 | 642 | then aq | |
639 | 643 | else throw("List size exceeds 10") | |
640 | 644 | ||
641 | 645 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
642 | 646 | } | |
643 | - | [StringEntry( | |
647 | + | [StringEntry(cA(), makeString(el :: aw, cl)), StringEntry(cB(), toString(this))] | |
644 | 648 | } | |
645 | 649 | ||
646 | 650 | ||
647 | 651 | ||
648 | - | @Callable( | |
649 | - | func walletInfoREADONLY ( | |
652 | + | @Callable(ei) | |
653 | + | func walletInfoREADONLY (dq) = $Tuple2(nil, dp(dq)) | |
650 | 654 | ||
651 | 655 | ||
652 | 656 | ||
653 | - | @Callable( | |
654 | - | func duckByOwnerInfoREADONLY ( | |
655 | - | let | |
656 | - | $Tuple2(nil, if (if (isDefined(addressFromString( | |
657 | - | then isDefined( | |
657 | + | @Callable(ei) | |
658 | + | func duckByOwnerInfoREADONLY (em) = { | |
659 | + | let en = getString(ag, bX(em)) | |
660 | + | $Tuple2(nil, if (if (isDefined(addressFromString(em))) | |
661 | + | then isDefined(en) | |
658 | 662 | else false) | |
659 | 663 | then { | |
660 | - | let bj = value( | |
661 | - | | |
664 | + | let bj = value(en) | |
665 | + | dS(bj, em, dR(bj)) | |
662 | 666 | } | |
663 | - | else | |
667 | + | else dS("", em, $Tuple5(-1, "", "", -1, ""))) | |
664 | 668 | } | |
665 | 669 | ||
666 | 670 | ||
667 | 671 | ||
668 | - | @Callable( | |
672 | + | @Callable(ei) | |
669 | 673 | func duckByAssetIdInfoREADONLY (bj) = { | |
670 | - | let | |
671 | - | let | |
672 | - | $Tuple2(nil, | |
673 | - | then value( | |
674 | - | else "", | |
674 | + | let dT = getString(ag, bW(bj)) | |
675 | + | let dU = dR(bj) | |
676 | + | $Tuple2(nil, dS(bj, if (isDefined(dT)) | |
677 | + | then value(dT) | |
678 | + | else "", dR(bj))) | |
675 | 679 | } | |
676 | 680 | ||
677 | 681 | ||
678 | 682 | ||
679 | - | @Callable( | |
680 | - | func landByAssetIdInfoREADONLY ( | |
683 | + | @Callable(ei) | |
684 | + | func landByAssetIdInfoREADONLY (bQ) = if ((bQ == "")) | |
681 | 685 | then throw("landAssetId is required") | |
682 | 686 | else { | |
683 | - | let | |
684 | - | let | |
685 | - | then value(getString(ag, | |
687 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
688 | + | let dT = if ((dY > 0)) | |
689 | + | then value(getString(ag, bI(bQ))) | |
686 | 690 | else "" | |
687 | - | $Tuple2(nil, | |
691 | + | $Tuple2(nil, dX(bQ, dT, dY)) | |
688 | 692 | } | |
689 | 693 | ||
690 | 694 | ||
691 | 695 | ||
692 | - | @Callable( | |
693 | - | func stakedLandsByOwnerInfoREADONLY ( | |
696 | + | @Callable(ei) | |
697 | + | func stakedLandsByOwnerInfoREADONLY (eo) = if ((eo == "")) | |
694 | 698 | then throw("landOwnerAddress is required") | |
695 | 699 | else { | |
696 | - | let | |
697 | - | let | |
698 | - | then split_51C(value( | |
700 | + | let ep = getString(ag, cU(eo)) | |
701 | + | let eq = if (isDefined(ep)) | |
702 | + | then split_51C(value(ep), "_") | |
699 | 703 | else nil | |
700 | - | func | |
704 | + | func er (aj,bQ) = if ((bQ == "")) | |
701 | 705 | then throw("landAssetId is required") | |
702 | 706 | else { | |
703 | - | let | |
704 | - | (aj :+ | |
707 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
708 | + | (aj :+ dX(bQ, eo, dY)) | |
705 | 709 | } | |
706 | 710 | ||
707 | - | let | |
708 | - | let am = | |
711 | + | let dm = { | |
712 | + | let am = eq | |
709 | 713 | let an = size(am) | |
710 | 714 | let ao = nil | |
711 | 715 | func ap (aq,ar) = if ((ar >= an)) | |
712 | 716 | then aq | |
713 | - | else | |
717 | + | else er(aq, am[ar]) | |
714 | 718 | ||
715 | 719 | func as (aq,ar) = if ((ar >= an)) | |
716 | 720 | then aq | |
717 | 721 | else throw("List size exceeds 100") | |
718 | 722 | ||
719 | 723 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
720 | 724 | } | |
721 | - | $Tuple2(nil, | |
725 | + | $Tuple2(nil, dm) | |
722 | 726 | } | |
723 | 727 | ||
724 | 728 | ||
725 | 729 | ||
726 | - | @Callable( | |
727 | - | func landsByIdsInfoREADONLY ( | |
728 | - | func | |
730 | + | @Callable(ei) | |
731 | + | func landsByIdsInfoREADONLY (es) = { | |
732 | + | func er (aj,bQ) = if ((bQ == "")) | |
729 | 733 | then throw("landAssetId is required") | |
730 | 734 | else { | |
731 | - | let | |
732 | - | let | |
733 | - | then value(getString(ag, | |
735 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
736 | + | let dT = if ((dY > 0)) | |
737 | + | then value(getString(ag, bI(bQ))) | |
734 | 738 | else "" | |
735 | - | (aj :+ | |
739 | + | (aj :+ dX(bQ, dT, dY)) | |
736 | 740 | } | |
737 | 741 | ||
738 | - | let | |
739 | - | let am = | |
742 | + | let dm = { | |
743 | + | let am = es | |
740 | 744 | let an = size(am) | |
741 | 745 | let ao = nil | |
742 | 746 | func ap (aq,ar) = if ((ar >= an)) | |
743 | 747 | then aq | |
744 | - | else | |
748 | + | else er(aq, am[ar]) | |
745 | 749 | ||
746 | 750 | func as (aq,ar) = if ((ar >= an)) | |
747 | 751 | then aq | |
748 | 752 | else throw("List size exceeds 100") | |
749 | 753 | ||
750 | 754 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
751 | 755 | } | |
752 | - | $Tuple2(nil, | |
756 | + | $Tuple2(nil, dm) | |
753 | 757 | } | |
754 | 758 | ||
755 | 759 | ||
756 | 760 | ||
757 | - | @Callable( | |
758 | - | func warehouseOrderByAssetIdInfoREADONLY ( | |
761 | + | @Callable(ei) | |
762 | + | func warehouseOrderByAssetIdInfoREADONLY (bQ) = if ((bQ == "")) | |
759 | 763 | then throw("landAssetId is required") | |
760 | 764 | else { | |
761 | - | let | |
762 | - | let | |
763 | - | then value(getString(ag, | |
765 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
766 | + | let dT = if ((dY > 0)) | |
767 | + | then value(getString(ag, bI(bQ))) | |
764 | 768 | else "" | |
765 | - | $Tuple2(nil, | |
769 | + | $Tuple2(nil, eh(bQ, dT)) | |
766 | 770 | } | |
767 | 771 | ||
768 | 772 | ||
769 | 773 | ||
770 | - | @Callable( | |
771 | - | func ordersByLandIdsInfoREADONLY ( | |
772 | - | func | |
774 | + | @Callable(ei) | |
775 | + | func ordersByLandIdsInfoREADONLY (es) = { | |
776 | + | func er (aj,bQ) = if ((bQ == "")) | |
773 | 777 | then throw("landAssetId is required") | |
774 | 778 | else { | |
775 | - | let | |
776 | - | let | |
777 | - | then value(getString(ag, | |
779 | + | let dY = valueOrElse(getInteger(ag, bL(bQ)), -1) | |
780 | + | let dT = if ((dY > 0)) | |
781 | + | then value(getString(ag, bI(bQ))) | |
778 | 782 | else "" | |
779 | - | (aj :+ | |
783 | + | (aj :+ eh(bQ, dT)) | |
780 | 784 | } | |
781 | 785 | ||
782 | - | let | |
783 | - | let am = | |
786 | + | let dm = { | |
787 | + | let am = es | |
784 | 788 | let an = size(am) | |
785 | 789 | let ao = nil | |
786 | 790 | func ap (aq,ar) = if ((ar >= an)) | |
787 | 791 | then aq | |
788 | - | else | |
792 | + | else er(aq, am[ar]) | |
789 | 793 | ||
790 | 794 | func as (aq,ar) = if ((ar >= an)) | |
791 | 795 | then aq | |
792 | 796 | else throw("List size exceeds 40") | |
793 | 797 | ||
794 | 798 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40) | |
795 | 799 | } | |
796 | - | $Tuple2(nil, | |
800 | + | $Tuple2(nil, dm) | |
797 | 801 | } | |
798 | 802 | ||
799 | 803 | ||
800 | 804 | ||
801 | - | @Callable( | |
802 | - | func cancelWarehouseOrders ( | |
805 | + | @Callable(ei) | |
806 | + | func cancelWarehouseOrders (es) = if ((ei.caller != this)) | |
803 | 807 | then throw("permission denied") | |
804 | 808 | else { | |
805 | - | let | |
806 | - | if (if (!(isDefined( | |
809 | + | let et = getBoolean(ag, cb()) | |
810 | + | if (if (!(isDefined(et))) | |
807 | 811 | then true | |
808 | - | else (value( | |
812 | + | else (value(et) == false)) | |
809 | 813 | then throw("Contracts should be blocked before canceling orders") | |
810 | 814 | else { | |
811 | - | func | |
815 | + | func er (dZ,bQ) = if ((bQ == "")) | |
812 | 816 | then throw("landAssetId is required") | |
813 | 817 | else { | |
814 | - | let | |
815 | - | if (if ( | |
818 | + | let eu = db(invoke(cI, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bQ], nil)) | |
819 | + | if (if (dZ) | |
816 | 820 | then true | |
817 | - | else | |
818 | - | then !(if ( | |
819 | - | then | |
821 | + | else eu) | |
822 | + | then !(if (dZ) | |
823 | + | then eu | |
820 | 824 | else false) | |
821 | 825 | else false | |
822 | 826 | } | |
823 | 827 | ||
824 | - | let | |
825 | - | let am = | |
828 | + | let dm = { | |
829 | + | let am = es | |
826 | 830 | let an = size(am) | |
827 | 831 | let ao = false | |
828 | 832 | func ap (aq,ar) = if ((ar >= an)) | |
829 | 833 | then aq | |
830 | - | else | |
834 | + | else er(aq, am[ar]) | |
831 | 835 | ||
832 | 836 | func as (aq,ar) = if ((ar >= an)) | |
833 | 837 | then aq | |
834 | 838 | else throw("List size exceeds 30") | |
835 | 839 | ||
836 | 840 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30) | |
837 | 841 | } | |
838 | - | $Tuple2(nil, | |
842 | + | $Tuple2(nil, dm) | |
839 | 843 | } | |
840 | 844 | } | |
841 | 845 | ||
842 | 846 | ||
843 | 847 | ||
844 | - | @Callable( | |
845 | - | func fixWarehouseFormats ( | |
848 | + | @Callable(ei) | |
849 | + | func fixWarehouseFormats (es) = if ((ei.caller != this)) | |
846 | 850 | then throw("permission denied") | |
847 | 851 | else { | |
848 | - | func | |
852 | + | func er (aj,bQ) = if ((bQ == "")) | |
849 | 853 | then throw("landAssetId is required") | |
850 | - | else (aj + size( | |
854 | + | else (aj + size(cW(invoke(ag, "fixWarehouseFormat", [bQ], nil)))) | |
851 | 855 | ||
852 | - | let | |
853 | - | let am = | |
856 | + | let dm = { | |
857 | + | let am = es | |
854 | 858 | let an = size(am) | |
855 | 859 | let ao = 0 | |
856 | 860 | func ap (aq,ar) = if ((ar >= an)) | |
857 | 861 | then aq | |
858 | - | else | |
862 | + | else er(aq, am[ar]) | |
859 | 863 | ||
860 | 864 | func as (aq,ar) = if ((ar >= an)) | |
861 | 865 | then aq | |
862 | 866 | else throw("List size exceeds 25") | |
863 | 867 | ||
864 | 868 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25) | |
865 | 869 | } | |
866 | - | $Tuple2(nil, | |
870 | + | $Tuple2(nil, dm) | |
867 | 871 | } | |
868 | 872 | ||
869 | 873 | ||
870 | 874 | ||
871 | - | @Callable( | |
872 | - | func fixStakedPieces ( | |
875 | + | @Callable(ei) | |
876 | + | func fixStakedPieces (ev) = if ((ei.caller != this)) | |
873 | 877 | then throw("permission denied") | |
874 | 878 | else { | |
875 | - | func | |
879 | + | func ew (aj,t) = if ((t == "")) | |
876 | 880 | then throw("address is required") | |
877 | - | else (aj + | |
881 | + | else (aj + cZ(invoke(ag, "fixStakedPieces", [t], nil))) | |
878 | 882 | ||
879 | - | let | |
880 | - | let am = | |
883 | + | let dm = { | |
884 | + | let am = ev | |
881 | 885 | let an = size(am) | |
882 | 886 | let ao = 0 | |
883 | 887 | func ap (aq,ar) = if ((ar >= an)) | |
884 | 888 | then aq | |
885 | - | else | |
889 | + | else ew(aq, am[ar]) | |
886 | 890 | ||
887 | 891 | func as (aq,ar) = if ((ar >= an)) | |
888 | 892 | then aq | |
889 | 893 | else throw("List size exceeds 16") | |
890 | 894 | ||
891 | 895 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
892 | 896 | } | |
893 | - | $Tuple2(nil, | |
897 | + | $Tuple2(nil, dm) | |
894 | 898 | } | |
895 | 899 | ||
896 | 900 | ||
897 | 901 | ||
898 | - | @Callable( | |
899 | - | func sendUsdtPrize ( | |
902 | + | @Callable(ei) | |
903 | + | func sendUsdtPrize (em) = if ((ei.caller != ag)) | |
900 | 904 | then throw("permission denied") | |
901 | 905 | else { | |
902 | - | let | |
903 | - | $Tuple2([ScriptTransfer(addressFromStringValue( | |
906 | + | let ex = fraction(assetBalance(this, ch), df, cm) | |
907 | + | $Tuple2([ScriptTransfer(addressFromStringValue(em), ex, ch)], ex) | |
904 | 908 | } | |
905 | 909 | ||
906 | 910 | ||
907 | 911 | ||
908 | - | @Callable( | |
912 | + | @Callable(ei) | |
909 | 913 | func getEmergencyServiceDataREADONLY () = { | |
910 | - | let | |
911 | - | let | |
912 | - | then split(value( | |
914 | + | let ey = getString(cI, cd()) | |
915 | + | let ez = if (isDefined(ey)) | |
916 | + | then split(value(ey), "_") | |
913 | 917 | else nil | |
914 | - | func | |
915 | - | let | |
916 | - | let | |
917 | - | let | |
918 | - | then ( | |
918 | + | func eA (aj,eB) = { | |
919 | + | let da = aj._2 | |
920 | + | let cf = split(eB, "_") | |
921 | + | let eC = if ((da == 0)) | |
922 | + | then (bA * bG) | |
919 | 923 | else 0 | |
920 | - | let | |
921 | - | then parseIntValue( | |
924 | + | let eD = if ((size(ez) > da)) | |
925 | + | then parseIntValue(ez[da]) | |
922 | 926 | else 0 | |
923 | - | let | |
924 | - | let | |
925 | - | let | |
926 | - | let | |
927 | - | $Tuple2((aj._1 :+ | |
927 | + | let eE = ce(cf) | |
928 | + | let eF = fraction((eE * bB), bz, (10 * bG)) | |
929 | + | let eG = fraction((eE * bC), bz, (10 * bG)) | |
930 | + | let eH = makeString([toString(eC), toString(eD), toString(eF), toString(eG)], "_") | |
931 | + | $Tuple2((aj._1 :+ eH), (da + 1)) | |
928 | 932 | } | |
929 | 933 | ||
930 | - | let | |
934 | + | let cY = makeString_2C(( let am = bE | |
931 | 935 | let an = size(am) | |
932 | 936 | let ao = $Tuple2(nil, 0) | |
933 | 937 | func ap (aq,ar) = if ((ar >= an)) | |
934 | 938 | then aq | |
935 | - | else | |
939 | + | else eA(aq, am[ar]) | |
936 | 940 | ||
937 | 941 | func as (aq,ar) = if ((ar >= an)) | |
938 | 942 | then aq | |
939 | 943 | else throw("List size exceeds 50") | |
940 | 944 | ||
941 | 945 | as(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(ao, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._1, ":") | |
942 | - | let | |
943 | - | $Tuple2(nil, | |
946 | + | let eI = ("%s%s__emergencyServiceData__" + cY) | |
947 | + | $Tuple2(nil, eI) | |
944 | 948 | } | |
945 | 949 | ||
946 | 950 | ||
947 | 951 | ||
948 | - | @Callable( | |
952 | + | @Callable(ei) | |
949 | 953 | func wlgStatsREADONLY (av) = { | |
950 | - | let | |
951 | - | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString( | |
954 | + | let eJ = au(av, [cH, ag, cI, cJ, cK, cL], ch, 0) | |
955 | + | $Tuple2(nil, [("%s%s%d__wlgAmount__" + toString(eJ[y])), ("%s%s%d__wlgPrice__" + toString(eJ[z])), ("%s%s%d__usdtFunds__" + toString(eJ[A])), ("%s%s%d__usdtEconomy__" + toString(eJ[B])), ("%s%s%d__usdtActivity__" + toString(eJ[C])), ("%s%s%d__usdtArbitrage__" + toString(eJ[D])), ("%s%s%d__usdtPool__" + toString(eJ[E])), ("%s%s%d__wlgIssueTime__" + toString(eJ[F])), ("%s%s%d__wlgLastMarketingTeamActTime__" + toString(eJ[G])), ("%s%s%d__wlgMarketingTotal__" + toString(eJ[H])), ("%s%s%d__wlgMarketingAmLeft__" + toString(eJ[I])), ("%s%s%d__wlgMarketingAmAvailNow__" + toString(eJ[J])), ("%s%s%d__wlgMarketingWlgold__" + toString(eJ[K])), ("%s%s%d__wlgTeamTotal__" + toString(eJ[L])), ("%s%s%d__wlgTeamAmLeft__" + toString(eJ[M])), ("%s%s%d__wlgTeamAmAvailNow__" + toString(eJ[N])), ("%s%s%d__wlgTeamWlgold__" + toString(eJ[O])), ("%s%s%d__wlgActTotal__" + toString(eJ[P])), ("%s%s%d__wlgActAmLeft__" + toString(eJ[Q])), ("%s%s%d__wlgActAmAvailNow__" + toString(eJ[R])), ("%s%s%d__wlgActWlgold__" + toString(eJ[S])), ("%s%s%d__wlgCurPeriod__" + toString(eJ[T])), ("%s%s%d__wlgAmLeftTotal__" + toString(eJ[U])), ("%s%s%d__wlgCurPeriodDistribution__" + toString(eJ[V])), ("%s%s%d__wlgLastUserTime__" + toString(eJ[W])), ("%s%s%d__wlgUserAmAvailNow__" + toString(eJ[X])), ("%s%s%d__wlgGuestSLandDaily__" + toString(eJ[Y]))]) | |
952 | 956 | } | |
953 | 957 | ||
954 | 958 |
github/deemru/w8io/169f3d6 832.36 ms ◑![]()