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