tx · H5jV4BXSNdN5bSydrLtnQfRExvrpMaVoKtWNiYmYbqd7

3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy:  -0.02700000 Waves

2024.11.29 06:35 [3392191] smart account 3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy > SELF 0.00000000 Waves

{ "type": 13, "id": "H5jV4BXSNdN5bSydrLtnQfRExvrpMaVoKtWNiYmYbqd7", "fee": 2700000, "feeAssetId": null, "timestamp": 1732851403713, "version": 2, "chainId": 84, "sender": "3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy", "senderPublicKey": "FsR18761ZAsUqsTd7TK3XmR6bhihs1UXVmpHYxz5JzQ1", "proofs": [ "2aKE2EDbkArbouCugpCpMiYHJRFc4Xr5CvA2NGjYzMpKqcGV9RavfWD6ZHdtTfyCZF2qiwHRGicgzVhMJPXduFXX" ], "script": "base64:BgJNCAISBgoECAgICBIDCgEIEgMKAQESBAoCCAESAwoBARIECgIIARIAEgMKAQgSAwoBARIDCgEBEgMKAQgSAwoBCBIDCgEBEgASBAoCCAGUAQADU0VQAgJfXwAFTVVMVDYAwIQ9AAVNVUxUOACAwtcvAA5NSU5TSE9QUEFZTUVOVACgjQYACkRBWV9NSUxMSVMAgLiZKQAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEACkRBWV9CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAoAsDCQAAAgEBVAUHJG1hdGNoMAA8CQACAQINVW5rbm93biBjaGFpbgALV0VFS19CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAA4E4DCQAAAgEBVAUHJG1hdGNoMAC0AQkAAgECDVVua25vd24gY2hhaW4AClZSRl9PRkZTRVQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAAAMJAAACAQFUBQckbWF0Y2gwAJD5RQkAAgECDVVua25vd24gY2hhaW4AC3VzZHRBc3NldElkBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQMJAAACAQFUBQckbWF0Y2gwASBVsdifcoeC7+XjW42sBatl3ppDoS8WuwXzGreHpfHFGAkAAgECDVVua25vd24gY2hhaW4AFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQRndZdGE4YmlFejMxenBlRmU1REpLOHdFNXRyU3BRVkY4AwkAAAIBAVQFByRtYXRjaDACIzNON1V1WWFyNjI2NFA1OEZCaFZXS1BRQWg0WXVhMmhnbmd2CQACAQINVW5rbm93biBjaGFpbgAVZGVmYXVsdFJlc3RBZGRyZXNzU3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUFFDdXZGYnZoNExrUFVucm5VMXozam5iQTFwOW0zV05odgMJAAACAQFUBQckbWF0Y2gwAiMzTXVta0dHenRDS0FYcFdEcXhrZGRvZnFYU1VicVFrdlNKeQkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABBJZHhDZmdBY3JlczJEYXBwAAEADUlkeENmZ1dsZ0RhcHAAAgAUSWR4Q2ZnUHV6emxlUG9vbERhcHAABAAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABQEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ9rZXlSZXN0MkFkZHJlc3MAAg0lc19fcmVzdDJBZGRyAQ5rZXlSZXN0QWRkcmVzcwACDCVzX19yZXN0QWRkcgAMcmVzdENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlSZXN0QWRkcmVzcwAFFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgERcmVhZFJlc3RDZmdPckZhaWwBBHJlc3QJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHJlc3QJAQprZXlSZXN0Q2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCCHJlc3QyQ2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUIcmVzdDJDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4ABFJZHhDZmdTdGFraW5nRGFwcAABAA9JZHhDZmdBY3Jlc0RhcHAACAAHcmVzdENmZwkBEXJlYWRSZXN0Q2ZnT3JGYWlsAQUMcmVzdENvbnRyYWN0AA9zdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdTdGFraW5nRGFwcAANYWNyZXNDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFD0lkeENmZ0FjcmVzRGFwcAANcmVzdDJDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPa2V5UmVzdDJBZGRyZXNzAAUWZGVmYXVsdFJlc3QyQWRkcmVzc1N0cgAIcmVzdDJDZmcJARFyZWFkUmVzdENmZ09yRmFpbAEFDXJlc3QyQ29udHJhY3QADmFjcmVzMkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFEElkeENmZ0FjcmVzMkRhcHAAC3dsZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFDUlkeENmZ1dsZ0RhcHAAEnB1enpsZVBvb2xDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRRJZHhDZmdQdXp6bGVQb29sRGFwcAASaW52ZXN0RnVuZENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFFElkeENmZ0ludmVzdEZ1bmREYXBwARVrZXlMYXN0V2Vla1R4SWRCeVVzZXIBBGFkZHIJAKwCAgITbGFzdFdlZWtUeElkQnlVc2VyXwUEYWRkcgANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0AQprZXlVc2VyQmV0AQRhZGRyCQCsAgICCHVzZXJCZXRfBQRhZGRyARJrZXlVc2VyV2Vla1RpY2tldHMCBGFkZHIEd2VlawkArAICCQCsAgIJAKwCAgIQdXNlcldlZWtUaWNrZXRzXwUEYWRkcgIBXwkApAMBBQR3ZWVrARNrZXlUb3RhbFdlZWtUaWNrZXRzAQR3ZWVrCQCsAgICEXRvdGFsV2Vla1RpY2tldHNfCQCkAwEFBHdlZWsBGGtleVRvdGFsV2Vla1BhcnRpY2lwYW50cwEEd2VlawkArAICAhZ0b3RhbFdlZWtQYXJ0aWNpcGFudHNfCQCkAwEFBHdlZWsBDmtleU51bU5GVDJEcmF3AQR3ZWVrCQCsAgICDG51bU5GVDJEcmF3XwkApAMBBQR3ZWVrAQ5rZXlOdW1ORlREcmF3bgEEd2VlawkArAICAgxudW1ORlREcmF3bl8JAKQDAQUEd2VlawEOa2V5V2Vla1dpbm5lcnMBBHdlZWsJAKwCAgIMd2Vla1dpbm5lcnNfCQCkAwEFBHdlZWsBCndpbm5pbmdCZXQBA2RheQQBYgkAaAIFA2RheQUKREFZX0JMT0NLUwQBaAMJAGYCBQFiBQpWUkZfT0ZGU0VUBQFiCQBkAgUBYgUKVlJGX09GRlNFVAkAagIJALEJAQkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQUBaAN2cmYABAALaXhXbGdBbW91bnQAAAAIaXhXbGdXbGcAAQAKaXhXbGdQcmljZQACAA5peFdsZ0lzc3VlVGltZQAIAA9peFdsZ1RlYW1BbUxlZnQACwATaXhXbGdUZWFtQW1BdmFpbE5vdwAMAA5peFdsZ0FjdEFtTGVmdAAPABJpeFdsZ0FjdEFtQXZhaWxOb3cAEAAQaXhXbGdBbUxlZnRUb3RhbAATABNpeFdsZ1VzZXJBbUF2YWlsTm93ABcAEGl4V2xnRWZmVXNlclRpbWUAGAASaXhXbGdJc3N1ZTEwQW1vdW50ABkAG2l4V2xnTWFya2V0aW5nSXNzdWUxMEFtb3VudAAaABZpeFdsZ1RlYW1Jc3N1ZTEwQW1vdW50ABsAD2l4V2xnVXNlcjEwcGFydAAcABBpeFdsZ0lzc3VlMTBUaW1lAB0BBWFzSW50AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACA0ludAQBbgUHJG1hdGNoMAUBbgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEKZml4ZWRQb2ludAIDdmFsCGRlY2ltYWxzBAZ0ZW5Qb3cJAGwGAAoAAAUIZGVjaW1hbHMAAAAABQRET1dOBAdsb3dQYXJ0CQCkAwEJAGoCBQN2YWwFBnRlblBvdwQGemVyb2VzCQCwAgIJAKQDAQUGdGVuUG93CQBkAgABCQCxAgEFB2xvd1BhcnQJAKwCAgkArAICCQCsAgIJAKQDAQkAaQIFA3ZhbAUGdGVuUG93AgEuBQZ6ZXJvZXMFB2xvd1BhcnQBD2dldFJhbmRvbU51bWJlcgMIbWF4VmFsdWUEc2FsdAdlbnRyb3B5AwkAZwIAAAUIbWF4VmFsdWUJAAIBAhZtYXhWYWx1ZSBzaG91bGQgYmUgPiAwBApyYW5kb21IYXNoCQDUFgEJAMsBAgUEc2FsdAUHZW50cm9weQkAagIJALEJAQUKcmFuZG9tSGFzaAUIbWF4VmFsdWUABlNDQUxFOACAwtcvAAx4cExldmVsU2NhbGUAgBkAD3hwTGV2ZWxSZWNpcFBvdwCgHwASbnVtUG9pbnRzT25MZXZlbFVwAAMAD3dsZ0Jhc2VBbW91bnRYcACA0NvD9AIBCWtleVVzZXJYUAEEYWRkcgkArAICAgd1c2VyWFBfBQRhZGRyAQxrZXlVc2VyTGV2ZWwBBGFkZHIJAKwCAgIKdXNlckxldmVsXwUEYWRkcgAFeHBXbGcAkE4BCWxldmVsQnlYUAECeHAJAGsDBQx4cExldmVsU2NhbGUJAGwGBQJ4cAAEBQ94cExldmVsUmVjaXBQb3cABAAEBQRET1dOBQZTQ0FMRTgBB2xldmVsVXACCWN1cnJMZXZlbAVuZXdYUAQIbmV3TGV2ZWwJAQlsZXZlbEJ5WFABBQVuZXdYUAkAzAgCBQhuZXdMZXZlbAkAzAgCCQBoAgUSbnVtUG9pbnRzT25MZXZlbFVwCQBlAgUIbmV3TGV2ZWwFCWN1cnJMZXZlbAUDbmlsAAhNSUxMSU9ONgCAgOmDsd4WAAtQTEFZRVJTSEFSRQCAtRgACURBWU1JTExJUwCAuJkpAAt0ZWFtQWRkcktleQIIdGVhbUFkZHIAD2xhc3RUZWFtVGltZUtleQIUbGFzdENsYWltZWRUaW1lX3RlYW0AEXRlYW1BbW91bnRMZWZ0S2V5Ag50ZWFtQW1vdW50TGVmdAAVbGFzdEFjdGl2aXRpZXNUaW1lS2V5AhpsYXN0Q2xhaW1lZFRpbWVfYWN0aXZpdGllcwAQYWN0QW1vdW50TGVmdEtleQIUYWN0aXZpdGllc0Ftb3VudExlZnQAFHN0YWtlcnNBbW91bnRMZWZ0S2V5AhFzdGFrZXJzQW1vdW50TGVmdAEZa2V5TGFzdFdsZ1RyYWRlVGltZUJ5VXNlcgEEYWRkcgkArAICAhBsYXN0QXJiVGltZVVzZXJfBQRhZGRyARprZXlMYXN0V2xnVHJhZGVMaW1pdEJ5VXNlcgEEYWRkcgkArAICAhFsYXN0V2xnTGltaXRVc2VyXwUEYWRkcgAPd2xnSXNzdWVUaW1lS2V5Ag13bGdfaXNzdWVUaW1lABJ3bGdJc3N1ZWRBbW91bnRLZXkCEHdsZ19pc3N1ZWRBbW91bnQBGmtleUFjcmVzU3Rha2VkQW1vdW50QnlVc2VyAQRhZGRyCQCsAgICGGFjcmVzU3Rha2VkQW1vdW50QnlVc2VyXwUEYWRkcgEYa2V5V2xnU3Rha2VkQW1vdW50QnlVc2VyAQRhZGRyCQCsAgICFndsZ1N0YWtlZEFtb3VudEJ5VXNlcl8FBGFkZHIAEXdsZ1N0YWtlZFRvdGFsS2V5AhR3bGdTdGFrZWRBbW91bnRUb3RhbAEWa2V5V2xnU3Rha2VkVGltZUJ5VXNlcgEEYWRkcgkArAICAhR3bGdTdGFrZWRUaW1lQnlVc2VyXwUEYWRkcgADTTZfAMCEPQADTThfAIDC1y8AClRFQU1fU0hBUkUAwJoMAA5BQ1RJVklUWV9TSEFSRQCgjQYADFBMQVlFUl9TSEFSRQCAtRgAC1lFQVJfTUlMTElTAICG68d1AAZEQVlfTVMAgLiZKQAHSVNTVUUxMACAlOvcAwAPUExBWUVSUzEwX1NIQVJFAIDqMAARTUFSS0VUSU5HMTBfU0hBUkUAoI0GAAxURUFNMTBfU0hBUkUAoI0GABFORVdfU1RBS0lOR19TVEFSVACA87jCsTIAEG1hcmtldGluZ0FkZHJLZXkCDW1hcmtldGluZ0FkZHIACnRlYW1BZHJLZXkCCHRlYW1BZGRyAA5sYXN0VGVhbVRpbUtleQIUbGFzdENsYWltZWRUaW1lX3RlYW0ADnRlYW1BbXRMZWZ0S2V5Ag50ZWFtQW1vdW50TGVmdAAUbGFzdEFjdGl2aXRpZXNUaW1LZXkCGmxhc3RDbGFpbWVkVGltZV9hY3Rpdml0aWVzAA1hY3RBbXRMZWZ0S2V5AhRhY3Rpdml0aWVzQW1vdW50TGVmdAARc3Rha2Vyc0FtdExlZnRLZXkCEXN0YWtlcnNBbW91bnRMZWZ0ARZrZXlMYXN0Q2xhaW1UaW1lQnlVc2VyAQRhZGRyCQCsAgICFGxhc3RDbGFpbWVkVGltZVVzZXJfBQRhZGRyAQ1kaXN0ckJ5UGVyaW9kAgxpc3N1ZWRBbW91bnQGcGVyaW9kCQBrAwUMaXNzdWVkQW1vdW50CQBoAgUMUExBWUVSX1NIQVJFCQBkAgUGcGVyaW9kAAEJAGgCAAYFA002XwARd2xnSXNzdWUxMFRpbWVLZXkCD3dsZ19pc3N1ZTEwVGltZQAOd2xnSXNzdWVUaW1LZXkCDXdsZ19pc3N1ZVRpbWUAD3dsZ0lzc3VlZEFtdEtleQIQd2xnX2lzc3VlZEFtb3VudAAOemJJc3N1ZWRBbXRLZXkCEnpiaWxsX2lzc3VlZEFtb3VudAEXa2V5QWNyZXNTdGFrZWRBbXRCeVVzZXIBBGFkZHIJAKwCAgIYYWNyZXNTdGFrZWRBbW91bnRCeVVzZXJfBQRhZGRyABJhY3Jlc1N0YWtkVG90YWxLZXkCFmFjcmVzU3Rha2VkQW1vdW50VG90YWwAFHRvdGFsRmFybWluZ1Bvd2VyS2V5AhF0b3RhbEZhcm1pbmdQb3dlcgAJZGFwcDJSZXN0AAAADGRhcHAyU3Rha2luZwABAAhkYXBwMldsZwACAAtkYXBwMlB1enpsZQADAA9kYXBwMkludmVzdEZ1bmQABAAVREVGQVVMVF9XRUVLTFlfUFJJWkVTAAUADUFDUkVTX0ZPUl9CRVQAgMLXLwARa2V5TmZ0VG90YWxJc3N1ZWQCDm5mdFRvdGFsSXNzdWVkABFrZXlOZnRUb3RhbEJ1cm5lZAIObmZ0VG90YWxCdXJuZWQAE2tleVdsTmZ0VG90YWxTdGFrZWQCEFdsTmZ0VG90YWxTdGFrZWQBEmtleVVzZXJXbE5mdE51bWJlcgEEYWRkcgkArAICAhB1c2VyV2xOZnROdW1iZXJfBQRhZGRyARBrZXlVc2VyRnVsbEJvbnVzAQRhZGRyCQCsAgICDnVzZXJGdWxsQm9udXNfBQRhZGRyAApsZXZlbEFjcmVzCQDMCAIAAAkAzAgCAAoJAMwIAgAUCQDMCAIAKAkAzAgCAFAJAMwIAgCWAQkAzAgCAPoBCQDMCAIAkAMJAMwIAgC8BQkAzAgCAOgHBQNuaWwBD2dldExldmVsQnlBY3JlcwEFYWNyZXMEA2FjcgkAaQIJAGQCBQVhY3JlcwD/wdcvBQNNOF8KAQdjaGVja2VyAgNhY2MEaXRlbQMJAGcCBQRpdGVtBQNhY3IFA2FjYwkAZAIFA2FjYwABCgACJGwFCmxldmVsQWNyZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB2NoZWNrZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBFmdldEZhcm1pbmdQb3dlckJ5QWNyZXMBBWFjcmVzCQBoAgkAaAIFBWFjcmVzABQJAGQCCQEPZ2V0TGV2ZWxCeUFjcmVzAQUFYWNyZXMABAEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgVhY3JlcwZib251czYECm5vdEJvbnVzZWQJARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQUFYWNyZXMJAJQKAgkAawMFCm5vdEJvbnVzZWQJAGQCBQNNNl8FBmJvbnVzNgUDTTZfBQpub3RCb251c2VkARBnZXRGYXJtaW5nUG93ZXJzAhJ1c2VyQWRkclN0ck9yRW1wdHkOYWNyZXMyQ29udHJhY3QEB3RvdGFsRlAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QFFHRvdGFsRmFybWluZ1Bvd2VyS2V5AAAECXVzZXJBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUSdXNlckFkZHJTdHJPckVtcHR5AAAECXVzZXJCb251cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBEGtleVVzZXJGdWxsQm9udXMBBRJ1c2VyQWRkclN0ck9yRW1wdHkAAAQIJHQwNzkxNDMJAR5nZXRGYXJtaW5nUG93ZXJCeUFjcmVzQW5kQm9udXMCBQl1c2VyQWNyZXMFCXVzZXJCb251cwQNdXNlckZQYm9udXNlZAgFCCR0MDc5MTQzAl8xBBB1c2VyRlBub3RCb251c2VkCAUIJHQwNzkxNDMCXzIJAMwIAgUHdG90YWxGUAkAzAgCBQ11c2VyRlBib251c2VkCQDMCAIFEHVzZXJGUG5vdEJvbnVzZWQJAMwIAgUJdXNlckJvbnVzBQNuaWwACmlkeFRvdGFsRlAAAAAQaWR4VXNlckZQYm9udXNlZAABAQxnZXRXbGdTdGF0czIEC3VzZXJBZGRyT3B0CWNvbnRyYWN0cwZ1c2R0SWQVdXNkdEJhbGFuY2VDb3JyZWN0aW9uBAxpc3N1ZWRBbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFD3dsZ0lzc3VlZEFtdEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0BAdyZXN0VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQlkYXBwMlJlc3QFBnVzZHRJZAQGd2xnVXNkCQBlAgkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFBnVzZHRJZAUVdXNkdEJhbGFuY2VDb3JyZWN0aW9uBAlwdXp6bGVVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFC2RhcHAyUHV6emxlBQZ1c2R0SWQECWFjcmVzMlVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBQZ1c2R0SWQEEWludmVzdEZuZENvbnRyYWN0CQCRAwIFCWNvbnRyYWN0cwUPZGFwcDJJbnZlc3RGdW5kBA9pbnZlc3RGdW5kVG90YWwJAGQCCQDwBwIFEWludmVzdEZuZENvbnRyYWN0BQZ1c2R0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgURaW52ZXN0Rm5kQ29udHJhY3QFDnpiSXNzdWVkQW10S2V5AAAEDXRvdGFsRnVuZHNVc2QJAGQCCQBkAgUJYWNyZXMyVXNkBQZ3bGdVc2QFD2ludmVzdEZ1bmRUb3RhbAQFd2xnSWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcCC3dsZ19hc3NldElkAhNOb3QgaW5pdGlhbGl6ZWQgeWV0BANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAlpc3N1ZVRpbWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFDndsZ0lzc3VlVGltS2V5Ag9Ob3QgaW5pdGlhbGl6ZWQEBndsZ1dsZwkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFBXdsZ0lkBAl0ZWFtVG90YWwJAGsDBQxpc3N1ZWRBbW91bnQFClRFQU1fU0hBUkUFA002XwQOdGVhbUFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ50ZWFtQW10TGVmdEtleQUJdGVhbVRvdGFsBAxsYXN0VGVhbVRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ5sYXN0VGVhbVRpbUtleQUJaXNzdWVUaW1lBAh0ZWFtQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAnQgCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFCnRlYW1BZHJLZXkEFnRlYW1BbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUJdGVhbVRvdGFsCQBlAgUDbm93BQxsYXN0VGVhbVRpbWUJAGgCAAMFC1lFQVJfTUlMTElTCQDMCAIFDnRlYW1BbW91bnRMZWZ0BQNuaWwECnRlYW1XbGdvbGQJAPAHAgUIdGVhbUFkZHIFBXdsZ0lkBAhhY3RUb3RhbAkAawMFDGlzc3VlZEFtb3VudAUOQUNUSVZJVFlfU0hBUkUFA002XwQNYWN0QW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFDWFjdEFtdExlZnRLZXkFCGFjdFRvdGFsBBJsYXN0QWN0aXZpdGllc1RpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBRRsYXN0QWN0aXZpdGllc1RpbUtleQUJaXNzdWVUaW1lBBVhY3RBbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUIYWN0VG90YWwJAGUCBQNub3cFEmxhc3RBY3Rpdml0aWVzVGltZQkAaAIAAwULWUVBUl9NSUxMSVMJAMwIAgUNYWN0QW1vdW50TGVmdAUDbmlsBAlhY3RXbGdvbGQJAPAHAgkAkQMCBQljb250cmFjdHMFCWRhcHAyUmVzdAUFd2xnSWQEDGxhc3RVc2VyVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcJARZrZXlMYXN0Q2xhaW1UaW1lQnlVc2VyAQULdXNlckFkZHJPcHQFCWlzc3VlVGltZQQObGFzdFVzZXJQZXJpb2QJAGkCCQBlAgUMbGFzdFVzZXJUaW1lBQlpc3N1ZVRpbWUFC1lFQVJfTUlMTElTBApub3dMaW1pdGVkCQCXAwEJAMwIAgUDbm93CQDMCAIJAGQCBQlpc3N1ZVRpbWUJAGgCAAMFC1lFQVJfTUlMTElTBQNuaWwECWN1clBlcmlvZAkAlwMBCQDMCAIJAGkCCQBlAgUDbm93BQlpc3N1ZVRpbWUFC1lFQVJfTUlMTElTCQDMCAIAAgUDbmlsBANlZmYJARBnZXRGYXJtaW5nUG93ZXJzAgULdXNlckFkZHJPcHQJAJEDAgUJY29udHJhY3RzBQxkYXBwMlN0YWtpbmcEFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQFCWN1clBlcmlvZAQNcHJldlBlcmlvZEVuZAkAZAIFCWlzc3VlVGltZQkAaAIFC1lFQVJfTUlMTElTBQljdXJQZXJpb2QEEXByZXZQcmV2UGVyaW9kRW5kCQBkAgUJaXNzdWVUaW1lCQBoAgULWUVBUl9NSUxMSVMJAGUCBQljdXJQZXJpb2QAAQQCYTAJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkBQxsYXN0VXNlclRpbWUFC1lFQVJfTUlMTElTBA11c2VyQXZhaWxhYmxlAwkAAAIFDmxhc3RVc2VyUGVyaW9kBQljdXJQZXJpb2QFAmEwAwkAAAIFDmxhc3RVc2VyUGVyaW9kCQBlAgUJY3VyUGVyaW9kAAEEAmExCQBrAwkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQJAGUCBQljdXJQZXJpb2QAAQkAZQIFDXByZXZQZXJpb2RFbmQFDGxhc3RVc2VyVGltZQULWUVBUl9NSUxMSVMJAGQCBQJhMQUCYTAEAmEyCQBrAwkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQJAGUCBQljdXJQZXJpb2QAAgkAZQIFEXByZXZQcmV2UGVyaW9kRW5kBQxsYXN0VXNlclRpbWUFC1lFQVJfTUlMTElTBAJhMQkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQJAGUCBQljdXJQZXJpb2QAAQkAZAIJAGQCBQJhMgUCYTEFAmEwBA9hbW91bnRMZWZ0VG90YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBRFzdGFrZXJzQW10TGVmdEtleQAABAp1c2VyQW1vdW50AwkBAiE9AgkAkQMCBQNlZmYFCmlkeFRvdGFsRlAAAAkAawMFDXVzZXJBdmFpbGFibGUJAJEDAgUDZWZmBRBpZHhVc2VyRlBib251c2VkCQCRAwIFA2VmZgUKaWR4VG90YWxGUAAABA9sYXN0SXNzdWUxMFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBRF3bGdJc3N1ZTEwVGltZUtleQURTkVXX1NUQUtJTkdfU1RBUlQEDWlzc3VlMTBBbW91bnQJAGsDBQdJU1NVRTEwCQCWAwEJAMwIAgkAZQIFA25vdwUPbGFzdElzc3VlMTBUaW1lCQDMCAIAAAUDbmlsBQZEQVlfTVMEFm1hcmtldGluZ0lzc3VlMTBBbW91bnQJAGsDBQ1pc3N1ZTEwQW1vdW50BRFNQVJLRVRJTkcxMF9TSEFSRQUDTTZfBBF0ZWFtSXNzdWUxMEFtb3VudAkAawMFDWlzc3VlMTBBbW91bnQFDFRFQU0xMF9TSEFSRQUDTTZfBA51c2VyMTBJbnRlcnZhbAkAlgMBCQDMCAIJAGUCBQNub3cJAJYDAQkAzAgCBRFORVdfU1RBS0lOR19TVEFSVAkAzAgCBQxsYXN0VXNlclRpbWUFA25pbAkAzAgCAAAFA25pbAQKdXNlcjEwcGFydAMJAQIhPQIJAJEDAgUDZWZmBQppZHhUb3RhbEZQAAAJAGsDCQBrAwkAawMFB0lTU1VFMTAFDnVzZXIxMEludGVydmFsBQZEQVlfTVMJAJEDAgUDZWZmBRBpZHhVc2VyRlBib251c2VkCQCRAwIFA2VmZgUKaWR4VG90YWxGUAUPUExBWUVSUzEwX1NIQVJFBQNNNl8AAAQObmV3SXNzdWUxMFRpbWUJAJYDAQkAzAgCBRFORVdfU1RBS0lOR19TVEFSVAkAzAgCBQNub3cFA25pbAQQYWNyZXNTdGFrZWRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBRJhY3Jlc1N0YWtkVG90YWxLZXkAAAQObmZ0VG90YWxJc3N1ZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwURa2V5TmZ0VG90YWxJc3N1ZWQAAAQObmZ0VG90YWxCdXJuZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwURa2V5TmZ0VG90YWxCdXJuZWQAAAQQd2xOZnRUb3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBRNrZXlXbE5mdFRvdGFsU3Rha2VkAAAED3dsTmZ0VXNlclN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nCQESa2V5VXNlcldsTmZ0TnVtYmVyAQkBC3ZhbHVlT3JFbHNlAgULdXNlckFkZHJPcHQCAAAACQDMCAIFDGlzc3VlZEFtb3VudAkAzAgCBQZ3bGdXbGcJAMwIAgkAawMFDXRvdGFsRnVuZHNVc2QFA004XwUMaXNzdWVkQW1vdW50CQDMCAIFDXRvdGFsRnVuZHNVc2QJAMwIAgUHcmVzdFVzZAkAzAgCBQlhY3JlczJVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgUMbGFzdFRlYW1UaW1lCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQ9pbnZlc3RGdW5kVG90YWwJAMwIAgUKdXNlckFtb3VudAkAzAgCBQpub3dMaW1pdGVkCQDMCAIFDWlzc3VlMTBBbW91bnQJAMwIAgUWbWFya2V0aW5nSXNzdWUxMEFtb3VudAkAzAgCBRF0ZWFtSXNzdWUxMEFtb3VudAkAzAgCBQp1c2VyMTBwYXJ0CQDMCAIFDm5ld0lzc3VlMTBUaW1lCQDMCAIJAJEDAgUDZWZmBQppZHhUb3RhbEZQCQDMCAIFEGFjcmVzU3Rha2VkVG90YWwJAMwIAgUObmZ0VG90YWxJc3N1ZWQJAMwIAgUObmZ0VG90YWxCdXJuZWQJAMwIAgUQd2xOZnRUb3RhbFN0YWtlZAkAzAgCBQ93bE5mdFVzZXJTdGFrZWQFA25pbAANcHJvZml0QWRkcktleQIKcHJvZml0QWRkcgAZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQIWc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbAEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQRhZGRyCQCsAgICFnN0YWtlcnNBbW91bnRQYWlkVXNlcl8FBGFkZHIBB3Byb2xvZzIACQEFYXNJbnQBCQD9BwQFDmFjcmVzMkNvbnRyYWN0AgpzYXZlTGFzdFR4BQNuaWwFA25pbAESZ2V0U3dhcExpbWl0V2xnb2xkAQRhZGRyBAhsYXN0VGltZQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEZa2V5TGFzdFdsZ1RyYWRlVGltZUJ5VXNlcgEFBGFkZHIAAAQMZGVmYXVsdExpbWl0CQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0CQEaa2V5QWNyZXNTdGFrZWRBbW91bnRCeVVzZXIBBQRhZGRyAAAEDWxhc3RMaW1pdExlZnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBGmtleUxhc3RXbGdUcmFkZUxpbWl0QnlVc2VyAQUEYWRkcgUMZGVmYXVsdExpbWl0BAxjdXJyZW50TGltaXQJAGQCBQ1sYXN0TGltaXRMZWZ0CQBrAwUMZGVmYXVsdExpbWl0CQBlAggFCWxhc3RCbG9jawl0aW1lc3RhbXAFCGxhc3RUaW1lBQpEQVlfTUlMTElTCQCXAwEJAMwIAgUMY3VycmVudExpbWl0CQDMCAIFDGRlZmF1bHRMaW1pdAUDbmlsAQ5jbGFpbUludGVybmFsMgEEYWRkcgQIY3VyU3RhdHMJAQxnZXRXbGdTdGF0czIEBQRhZGRyCQDMCAIFDXJlc3QyQ29udHJhY3QJAMwIAgUOYWNyZXMyQ29udHJhY3QJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUScHV6emxlUG9vbENvbnRyYWN0CQDMCAIFEmludmVzdEZ1bmRDb250cmFjdAUDbmlsBQt1c2R0QXNzZXRJZAAABAt1c2VyVGltZUtleQkBFmtleUxhc3RDbGFpbVRpbWVCeVVzZXIBBQRhZGRyBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQULdXNlclRpbWVLZXkAAAQLdXNlckVmZlRpbWUJAJEDAgUIY3VyU3RhdHMFEGl4V2xnRWZmVXNlclRpbWUDCQAAAgUMbGFzdFVzZXJUaW1lBQt1c2VyRWZmVGltZQkAlAoCBQNuaWwAAAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0lzc3VlVGltZQQOdGVhbUFtb3VudExlZnQJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVGVhbUFtTGVmdAQKdGVhbUFtb3VudAkAZAIJAJEDAgUIY3VyU3RhdHMFE2l4V2xnVGVhbUFtQXZhaWxOb3cJAJEDAgUIY3VyU3RhdHMFFml4V2xnVGVhbUlzc3VlMTBBbW91bnQEDHRlYW1UcmFuc2ZlcgMJAGYCBQp0ZWFtQW1vdW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBQt0ZWFtQWRkcktleQUKdGVhbUFtb3VudAUKd2xnQXNzZXRJZAUDbmlsBQNuaWwEDWFjdEFtb3VudExlZnQJAJEDAgUIY3VyU3RhdHMFDml4V2xnQWN0QW1MZWZ0BAlhY3RBbW91bnQJAJEDAgUIY3VyU3RhdHMFEml4V2xnQWN0QW1BdmFpbE5vdwQLYWN0VHJhbnNmZXIDCQBmAgUJYWN0QW1vdW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUMcmVzdENvbnRyYWN0BQlhY3RBbW91bnQFCndsZ0Fzc2V0SWQFA25pbAUDbmlsBA9tYXJrZXRpbmdBbW91bnQJAJEDAgUIY3VyU3RhdHMFG2l4V2xnTWFya2V0aW5nSXNzdWUxMEFtb3VudAQRbWFya2V0aW5nVHJhbnNmZXIDCQBmAgUPbWFya2V0aW5nQW1vdW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBRBtYXJrZXRpbmdBZGRyS2V5BQ9tYXJrZXRpbmdBbW91bnQFCndsZ0Fzc2V0SWQFA25pbAUDbmlsBAp1c2VyQW1vdW50CQCRAwIFCGN1clN0YXRzBRNpeFdsZ1VzZXJBbUF2YWlsTm93BAd1c2VyS2V5CQEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQUEYWRkcgQJdXNlclRvdGFsCQBkAgUKdXNlckFtb3VudAkAkQMCBQhjdXJTdGF0cwUPaXhXbGdVc2VyMTBwYXJ0BA5pc3N1ZWQxMEFtb3VudAkAkQMCBQhjdXJTdGF0cwUSaXhXbGdJc3N1ZTEwQW1vdW50CQCUCgIJAM4IAgkAzggCCQDOCAIJAMwIAgkBB1JlaXNzdWUDBQp3bGdBc3NldElkBQ5pc3N1ZWQxMEFtb3VudAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZAIJAJEDAgUIY3VyU3RhdHMFC2l4V2xnQW1vdW50BQ5pc3N1ZWQxMEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgURd2xnSXNzdWUxMFRpbWVLZXkJAJEDAgUIY3VyU3RhdHMFEGl4V2xnSXNzdWUxMFRpbWUJAMwIAgkBDEludGVnZXJFbnRyeQIFB3VzZXJLZXkJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFB3VzZXJLZXkAAAUKdXNlckFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQAABQp1c2VyQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRzdGFrZXJzQW1vdW50TGVmdEtleQkAZQIJAJEDAgUIY3VyU3RhdHMFEGl4V2xnQW1MZWZ0VG90YWwFCnVzZXJBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEXRlYW1BbW91bnRMZWZ0S2V5CQBkAgkAZQIFDnRlYW1BbW91bnRMZWZ0BQp0ZWFtQW1vdW50CQCRAwIFCGN1clN0YXRzBRZpeFdsZ1RlYW1Jc3N1ZTEwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9sYXN0VGVhbVRpbWVLZXkFA25vdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUQYWN0QW1vdW50TGVmdEtleQkAZQIFDWFjdEFtb3VudExlZnQFCWFjdEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVbGFzdEFjdGl2aXRpZXNUaW1lS2V5BQNub3cJAMwIAgkBDEludGVnZXJFbnRyeQIFC3VzZXJUaW1lS2V5BQt1c2VyRWZmVGltZQUDbmlsBQx0ZWFtVHJhbnNmZXIFC2FjdFRyYW5zZmVyBRFtYXJrZXRpbmdUcmFuc2ZlcgUJdXNlclRvdGFsAQ50YWtlWHBJbnRlcm5hbAIEYWRkcgVkZWx0YQQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQHdGltZUtleQkBFmtleVdsZ1N0YWtlZFRpbWVCeVVzZXIBBQRhZGRyBAlhbW91bnRLZXkJARhrZXlXbGdTdGFrZWRBbW91bnRCeVVzZXIBBQRhZGRyBAhsYXN0VGltZQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd0aW1lS2V5AAAEB29sZFVzZXIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJYW1vdW50S2V5AAAECG9sZFRvdGFsCQELdmFsdWVPckVsc2UCCQCfCAEFEXdsZ1N0YWtlZFRvdGFsS2V5AAAEAnhwCQBrAwkAawMFBXhwV2xnBQdvbGRVc2VyBQ93bGdCYXNlQW1vdW50WHAJAGUCBQhsYXN0VGltZQUDbm93BQlEQVlNSUxMSVMJAJUKAwkAzAgCCQEMSW50ZWdlckVudHJ5AgUHdGltZUtleQUDbm93CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlhbW91bnRLZXkJAGQCBQdvbGRVc2VyBQVkZWx0YQkAzAgCCQEMSW50ZWdlckVudHJ5AgURd2xnU3Rha2VkVG90YWxLZXkJAGQCBQhvbGRUb3RhbAUFZGVsdGEFA25pbAUCeHAFB29sZFVzZXIBEW9wZW5DaGVzdEludGVybmFsAQRhZGRyBAR3ZWVrCQBpAgUGaGVpZ2h0BQtXRUVLX0JMT0NLUwQIZHJhd1dlZWsJAGUCBQR3ZWVrAAEECW51bVByaXplcwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEOa2V5TnVtTkZUMkRyYXcBBQhkcmF3V2VlawUVREVGQVVMVF9XRUVLTFlfUFJJWkVTBAtwcml6ZXNEcmF3bgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEOa2V5TnVtTkZURHJhd24BBQhkcmF3V2VlawAABAt1c2VyVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUIZHJhd1dlZWsAAAMJAGcCAAAFC3VzZXJUaWNrZXRzCQCUCgIFA25pbAUEdW5pdAQLd2Vla1RpY2tldHMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBE2tleVRvdGFsV2Vla1RpY2tldHMBBQhkcmF3V2VlawAAAwkAZwIAAAULd2Vla1RpY2tldHMJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUIZHJhd1dlZWsFA25pbAUEdW5pdAQHZW50cm9weQkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQkAaAIFBHdlZWsFC1dFRUtfQkxPQ0tTA3ZyZgQEc2FsdAkA2QQBCQCRAwIJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBFWtleUxhc3RXZWVrVHhJZEJ5VXNlcgEFBGFkZHICCjQyX0RFRkFVTFQCAV8AAQQGcmFuZG9tCQEPZ2V0UmFuZG9tTnVtYmVyAwULd2Vla1RpY2tldHMFBHNhbHQFB2VudHJvcHkDCQBmAgkAaAIFC3VzZXJUaWNrZXRzBQludW1Qcml6ZXMFBnJhbmRvbQQLaXNzdWVSZXN1bHQJAPwHBAUOYWNyZXMyQ29udHJhY3QCC2lzc3VlUGlja0MxCQDMCAIFBGFkZHIFA25pbAUDbmlsBAd3aW5uZXJzCQCiCAEJAQ5rZXlXZWVrV2lubmVycwEFCGRyYXdXZWVrBApuZXdXaW5uZXJzAwkBCWlzRGVmaW5lZAEFB3dpbm5lcnMJAKwCAgkArAICCQEFdmFsdWUBBQd3aW5uZXJzAgFfBQRhZGRyBQRhZGRyCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5rZXlOdW1ORlREcmF3bgEFCGRyYXdXZWVrCQBkAgULcHJpemVzRHJhd24AAQkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUIZHJhd1dlZWsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVdlZWtXaW5uZXJzAQUIZHJhd1dlZWsFCm5ld1dpbm5lcnMFA25pbAULaXNzdWVSZXN1bHQEB3JhbmRvbTEJAGQCCQEPZ2V0UmFuZG9tTnVtYmVyAwAJCQDLAQIBAUIFBHNhbHQFB2VudHJvcHkAAQQLY29uc1RpY2tldHMJAGsDBQt1c2VyVGlja2V0cwUHcmFuZG9tMQAKBAp0aWNrZXRzS2V5CQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUEd2VlawQKb2xkVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQp0aWNrZXRzS2V5AAAJAJQKAgkAzQgCAwkAAAIFC2NvbnNUaWNrZXRzAAAFA25pbAQNY29tbW9uQWN0aW9ucwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2tleVRvdGFsV2Vla1RpY2tldHMBBQR3ZWVrCQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsAAAULY29uc1RpY2tldHMJAMwIAgkBDEludGVnZXJFbnRyeQIFCnRpY2tldHNLZXkJAGQCBQpvbGRUaWNrZXRzBQtjb25zVGlja2V0cwUDbmlsAwkAZgIFCm9sZFRpY2tldHMAAAUNY29tbW9uQWN0aW9ucwkAzQgCBQ1jb21tb25BY3Rpb25zCQEMSW50ZWdlckVudHJ5AgkBGGtleVRvdGFsV2Vla1BhcnRpY2lwYW50cwEFBHdlZWsJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEJARhrZXlUb3RhbFdlZWtQYXJ0aWNpcGFudHMBBQR3ZWVrAAAAAQkBC0RlbGV0ZUVudHJ5AQkBEmtleVVzZXJXZWVrVGlja2V0cwIFBGFkZHIFCGRyYXdXZWVrBQtjb25zVGlja2V0cwEUY2xhaW1UaWNrZXRzSW50ZXJuYWwCBGFkZHIKdXNlckJldFN0cgQEd2VlawkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MECnRpY2tldHNLZXkJARJrZXlVc2VyV2Vla1RpY2tldHMCBQRhZGRyBQR3ZWVrBAZkYXlCZXQJALUJAgUKdXNlckJldFN0cgIBXwQPb2xkVG90YWxUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUEd2VlawAABApvbGRUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEFCnRpY2tldHNLZXkAAAQMZGVsdGFUaWNrZXRzAwkAAAIJAQp3aW5uaW5nQmV0AQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBmRheUJldAAACQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGZGF5QmV0AAEAAQAABA9vbGRQYXJ0aWNpcGFudHMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBGGtleVRvdGFsV2Vla1BhcnRpY2lwYW50cwEFBHdlZWsAAAQSdXBkYXRlUGFydGljaXBhbnRzAwMJAAACBQpvbGRUaWNrZXRzAAAJAAACBQxkZWx0YVRpY2tldHMAAQcJAMwIAgkBDEludGVnZXJFbnRyeQIJARhrZXlUb3RhbFdlZWtQYXJ0aWNpcGFudHMBBQR3ZWVrCQBkAgUPb2xkUGFydGljaXBhbnRzAAEFA25pbAUDbmlsCQCUCgIDCQAAAgUMZGVsdGFUaWNrZXRzAAAFA25pbAkAzQgCCQDNCAIFEnVwZGF0ZVBhcnRpY2lwYW50cwkBDEludGVnZXJFbnRyeQIFCnRpY2tldHNLZXkJAGQCBQpvbGRUaWNrZXRzBQxkZWx0YVRpY2tldHMJAQxJbnRlZ2VyRW50cnkCCQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsJAGQCBQ9vbGRUb3RhbFRpY2tldHMFDGRlbHRhVGlja2V0cwUMZGVsdGFUaWNrZXRzDwFpAQ1jb25zdHJ1Y3RvclYxBAhyZXN0QWRkcg1tYXJrZXRpbmdBZGRyCHRlYW1BZGRyCnByb2ZpdEFkZHIDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAMJAQlpc0RlZmluZWQBCQChCAEFDXdsZ0Fzc2V0SWRLZXkJAAIBAhNBbHJlYWR5IGluaXRpYWxpemVkBAxpc3N1ZWRBbW91bnQFCE1JTExJT042BAVpc3N1ZQkAwwgHAgZXTEdPTEQCIFdhdmVzTGFuZHMgR29sZCBpbnZlc3RtZW50IHRva2VuBQxpc3N1ZWRBbW91bnQACAYFBHVuaXQAAAQHYXNzZXRJZAkAuAgBBQVpc3N1ZQkAzAgCBQVpc3N1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPd2xnSXNzdWVUaW1lS2V5CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSd2xnSXNzdWVkQW1vdW50S2V5BQxpc3N1ZWRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUc3Rha2Vyc0Ftb3VudExlZnRLZXkJAGsDBQhNSUxMSU9ONgULUExBWUVSU0hBUkUFBU1VTFQ2CQDMCAIJAQtCaW5hcnlFbnRyeQIFDXdsZ0Fzc2V0SWRLZXkFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVJlc3RBZGRyZXNzAAUIcmVzdEFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgUQbWFya2V0aW5nQWRkcktleQUNbWFya2V0aW5nQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCBQt0ZWFtQWRkcktleQUIdGVhbUFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgUNcHJvZml0QWRkcktleQUKcHJvZml0QWRkcgUDbmlsAWkBDWNvbnN0cnVjdG9yVjIBCXJlc3QyQWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlSZXN0MkFkZHJlc3MABQlyZXN0MkFkZHIFA25pbAFpAQZidXlXbGcBDG1pblRvUmVjZWl2ZQQMcHJvbG9nUmVzdWx0CQEHcHJvbG9nMgADCQAAAgUMcHJvbG9nUmVzdWx0BQxwcm9sb2dSZXN1bHQDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAQHdXNkdEFtdAgFA3BtdAZhbW91bnQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQt1c2R0QXNzZXRJZAkAAgECE1VTRFQgcGF5bWVudHMgb25seSEEBmNhbGxlcggFAWkGY2FsbGVyBARhZGRyCQClCAEFBmNhbGxlcgMJAGYCBQ5NSU5TSE9QUEFZTUVOVAUHdXNkdEFtdAkAAgEJAKwCAgkArAICAhJZb3UgY2FuIHRyYWRlIG1pbiAJAQpmaXhlZFBvaW50AgUOTUlOU0hPUFBBWU1FTlQABgIFIFVTRFQECGN1clN0YXRzCQEMZ2V0V2xnU3RhdHMyBAIACQDMCAIFDXJlc3QyQ29udHJhY3QJAMwIAgUOYWNyZXMyQ29udHJhY3QJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUScHV6emxlUG9vbENvbnRyYWN0CQDMCAIFEmludmVzdEZ1bmRDb250cmFjdAUDbmlsBQt1c2R0QXNzZXRJZAUHdXNkdEFtdAQMY3VyV2xnQW1vdW50CQCRAwIFCGN1clN0YXRzBQtpeFdsZ0Ftb3VudAQId2xnUHJpY2UJAJEDAgUIY3VyU3RhdHMFCml4V2xnUHJpY2UECGJ1eVByaWNlCQBuBAUId2xnUHJpY2UABgAFBQdDRUlMSU5HBAl3bGdBbW91bnQJAGsDBQd1c2R0QW10BQVNVUxUOAUIYnV5UHJpY2UEBm1heFdsZwkBEmdldFN3YXBMaW1pdFdsZ29sZAEFBGFkZHIDCQBmAgUJd2xnQW1vdW50BQZtYXhXbGcJAAIBCQCsAgIJAKwCAgIQWW91IGNhbiBnZXQgbWF4IAkBCmZpeGVkUG9pbnQCBQZtYXhXbGcACAIVIFdMR09MRCBhdCB0aGUgbW9tZW50AwkAZgIFDG1pblRvUmVjZWl2ZQUJd2xnQW1vdW50CQACAQIwUHJpY2UgY2hhbmdlZCBkdXJpbmcgb3BlcmF0aW9uLCBwbGVhc2UgdHJ5IGFnYWluBAxwcm9maXRBbW91bnQJAGkCBQd1c2R0QW10AAYJAJQKAgkAzAgCCQEHUmVpc3N1ZQMFCndsZ0Fzc2V0SWQFCXdsZ0Ftb3VudAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZAIFDGN1cldsZ0Ftb3VudAUJd2xnQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEZa2V5TGFzdFdsZ1RyYWRlVGltZUJ5VXNlcgEFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaa2V5TGFzdFdsZ1RyYWRlTGltaXRCeVVzZXIBBQRhZGRyCQBlAgUGbWF4V2xnBQl3bGdBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBQ1wcm9maXRBZGRyS2V5BQxwcm9maXRBbW91bnQFC3VzZHRBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBmNhbGxlcgUJd2xnQW1vdW50BQp3bGdBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5idXlXbGdSRUFET05MWQIHYWRkcmVzcwd1c2R0QW10BAhjdXJTdGF0cwkBDGdldFdsZ1N0YXRzMgQCAAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQFB3VzZHRBbXQECHdsZ1ByaWNlCQCRAwIFCGN1clN0YXRzBQppeFdsZ1ByaWNlBAhidXlQcmljZQkAbgQFCHdsZ1ByaWNlAAYABQUHQ0VJTElORwQJd2xnQW1vdW50CQBrAwUHdXNkdEFtdAUFTVVMVDgFCGJ1eVByaWNlBAZtYXhXbGcJARJnZXRTd2FwTGltaXRXbGdvbGQBBQdhZGRyZXNzBAdtYXhVc2R0CQBrAwUGbWF4V2xnBQhidXlQcmljZQUFTVVMVDgEDHByb2ZpdEFtb3VudAkAaQIFB3VzZHRBbXQABgkAlAoCBQNuaWwJAMwIAgUJd2xnQW1vdW50CQDMCAIFDk1JTlNIT1BQQVlNRU5UCQDMCAIFB21heFVzZHQJAMwIAgUMcHJvZml0QW1vdW50BQNuaWwBaQEHc2VsbFdsZwEJbWluQW1vdW50BAxwcm9sb2dSZXN1bHQJAQdwcm9sb2cyAAMJAAACBQxwcm9sb2dSZXN1bHQFDHByb2xvZ1Jlc3VsdAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAZ3bGdBbXQIBQNwbXQGYW1vdW50BAZjYWxsZXIIBQFpBmNhbGxlcgQEYWRkcgkApQgBBQZjYWxsZXIEBm1heFdsZwkBEmdldFN3YXBMaW1pdFdsZ29sZAEFBGFkZHIDCQBmAgUGd2xnQW10BQZtYXhXbGcJAAIBCQCsAgIJAKwCAgISWW91IGNhbiBzcGVuZCBtYXggCQEKZml4ZWRQb2ludAIFBm1heFdsZwAIAhUgV0xHT0xEIGF0IHRoZSBtb21lbnQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQp3bGdBc3NldElkCQACAQIVV0xHT0xEIHBheW1lbnRzIG9ubHkhBAhjdXJTdGF0cwkBDGdldFdsZ1N0YXRzMgQCAAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAQMY3VyV2xnQW1vdW50CQCRAwIFCGN1clN0YXRzBQtpeFdsZ0Ftb3VudAQJc2VsbFByaWNlCQBpAgkAkQMCBQhjdXJTdGF0cwUKaXhXbGdQcmljZQACBAd1c2R0QW10CQBrAwUGd2xnQW10BQlzZWxsUHJpY2UFBU1VTFQ4AwkAZgIFDk1JTlNIT1BQQVlNRU5UBQd1c2R0QW10CQACAQkArAICCQCsAgICEllvdSBjYW4gdHJhZGUgbWluIAkBCmZpeGVkUG9pbnQCBQ5NSU5TSE9QUEFZTUVOVAAGAgUgVVNEVAMJAGYCBQltaW5BbW91bnQFB3VzZHRBbXQJAAIBAjBQcmljZSBjaGFuZ2VkIGR1cmluZyBvcGVyYXRpb24sIHBsZWFzZSB0cnkgYWdhaW4EDHByb2ZpdEFtb3VudAkAaQIFB3VzZHRBbXQABQkAlAoCCQDMCAIJAQRCdXJuAgUKd2xnQXNzZXRJZAUGd2xnQW10CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJ3bGdJc3N1ZWRBbW91bnRLZXkJAGUCBQxjdXJXbGdBbW91bnQFBndsZ0FtdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBQRhZGRyCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleUxhc3RXbGdUcmFkZUxpbWl0QnlVc2VyAQUEYWRkcgkAZQIFBm1heFdsZwUGd2xnQW10CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUNcHJvZml0QWRkcktleQUMcHJvZml0QW1vdW50BQt1c2R0QXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFB3VzZHRBbXQFC3VzZHRBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9zZWxsV2xnUkVBRE9OTFkCB2FkZHJlc3MGd2xnQW10BAZtYXhXbGcJARJnZXRTd2FwTGltaXRXbGdvbGQBBQdhZGRyZXNzBAhjdXJTdGF0cwkBDGdldFdsZ1N0YXRzMgQCAAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAQJc2VsbFByaWNlCQBpAgkAkQMCBQhjdXJTdGF0cwUKaXhXbGdQcmljZQACBAd1c2R0QW10CQBrAwUGd2xnQW10BQlzZWxsUHJpY2UFBU1VTFQ4BAZtaW5XbGcJAGsDBQ5NSU5TSE9QUEFZTUVOVAUFTVVMVDgFCXNlbGxQcmljZQQMcHJvZml0QW1vdW50CQBpAgUHdXNkdEFtdAAFCQCUCgIFA25pbAkAzAgCBQd1c2R0QW10CQDMCAIFBm1pbldsZwkAzAgCBQZtYXhXbGcJAMwIAgUMcHJvZml0QW1vdW50BQNuaWwBaQEFY2xhaW0ABAxwcm9sb2dSZXN1bHQJAQdwcm9sb2cyAAMJAAACBQxwcm9sb2dSZXN1bHQFDHByb2xvZ1Jlc3VsdAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBA0kdDAxNDIxNDE0MjgzCQEOY2xhaW1JbnRlcm5hbDIBCQClCAEIBQFpBmNhbGxlcgQHYWN0aW9ucwgFDSR0MDE0MjE0MTQyODMCXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAxNDIxNDE0MjgzAl8yCQCUCgIJAM0IAgUHYWN0aW9ucwkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRB3bGdDbGFpbWVkQW1vdW50BQp3bGdBc3NldElkBQxwcm9sb2dSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESb25TdGFrZVVuc3Rha2VMYW5kAQRhZGRyAwMDCQECIT0CCAUBaQZjYWxsZXIFD3N0YWtpbmdDb250cmFjdAkBAiE9AggFAWkGY2FsbGVyBQ1hY3Jlc0NvbnRyYWN0BwkBAiE9AggFAWkGY2FsbGVyBQ5hY3JlczJDb250cmFjdAcJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQNJHQwMTQ2MDIxNDY1NgkBDmNsYWltSW50ZXJuYWwyAQUEYWRkcgQHYWN0aW9ucwgFDSR0MDE0NjAyMTQ2NTYCXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAxNDYwMjE0NjU2Al8yCQCUCgIDCQBmAgUQd2xnQ2xhaW1lZEFtb3VudAAACQDNCAIFB2FjdGlvbnMJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBGFkZHIFEHdsZ0NsYWltZWRBbW91bnQFCndsZ0Fzc2V0SWQFB2FjdGlvbnMFEHdsZ0NsYWltZWRBbW91bnQBaQEKYnVybldsZ29sZAEGd2xnQW10AwkBAiE9AggFAWkGY2FsbGVyBQ5hY3JlczJDb250cmFjdAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAhjdXJTdGF0cwkBDGdldFdsZ1N0YXRzMgQCAAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAMJAGYCBQZ3bGdBbXQJAJEDAgUIY3VyU3RhdHMFCGl4V2xnV2xnCQACAQkArAICCQCsAgIJAKwCAgIFT25seSAJAQpmaXhlZFBvaW50AgkAkQMCBQhjdXJTdGF0cwUIaXhXbGdXbGcACAIlIFdMR09MRCBsZWZ0IG9uIGNvbnRyYWN0LCBjYW4ndCBidXJuIAkBCmZpeGVkUG9pbnQCBQZ3bGdBbXQACAQNd2xnQW1vdW50TGVmdAkAZQIJAJEDAgUIY3VyU3RhdHMFC2l4V2xnQW1vdW50BQZ3bGdBbXQJAJQKAgkAzAgCCQEEQnVybgIFCndsZ0Fzc2V0SWQFBndsZ0FtdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSd2xnSXNzdWVkQW1vdW50S2V5BQ13bGdBbW91bnRMZWZ0BQNuaWwFDXdsZ0Ftb3VudExlZnQBaQEMYmV0Rm9yVGlja2V0AQNiZXQEDHByb2xvZ1Jlc3VsdAkBB3Byb2xvZzIAAwkAAAIFDHByb2xvZ1Jlc3VsdAUMcHJvbG9nUmVzdWx0AwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEBGFkZHIJAKUIAQgFAWkGY2FsbGVyBAhkcmF3V2VlawkAZQIJAGkCBQZoZWlnaHQFC1dFRUtfQkxPQ0tTAAEEC3VzZXJUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlVc2VyV2Vla1RpY2tldHMCBQRhZGRyBQhkcmF3V2VlawAABAt3ZWVrVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETa2V5VG90YWxXZWVrVGlja2V0cwEFCGRyYXdXZWVrAAADAwkAZgIFC3VzZXJUaWNrZXRzAAAJAGYCBQt3ZWVrVGlja2V0cwAABwkAAgECG1BsZWFzZSBvcGVuIHRoZSBjaGVzdCBmaXJzdAMJAQIhPQIJAGkCBQNiZXQABAAACQACAQIbSW52YWxpZCBiZXQ6IHNob3VsZCBiZSAwLi4zBAZtb21lbnQJAGoCBQZoZWlnaHQFCkRBWV9CTE9DS1MDCQBmAgUGbW9tZW50CQBlAgUKREFZX0JMT0NLUwADCQACAQkArAICCQCsAgICMUNhbm5vdCBiZXQ6IHRoZSBkYXkgaXMgYWxtb3N0IGVuZGVkLCBwbGVhc2Ugd2FpdCAJAKQDAQkAZQIFCkRBWV9CTE9DS1MFBm1vbWVudAIHIGJsb2NrcwQLc3Rha2VkQWNyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFBGFkZHIAAAMJAGYCBQ1BQ1JFU19GT1JfQkVUBQtzdGFrZWRBY3JlcwkAAgEJAKwCAgkArAICAhtZb3UgbmVlZCB0byBzdGFrZSBhdCBsZWFzdCAJAQpmaXhlZFBvaW50AgUNQUNSRVNfRk9SX0JFVAAIAg0gQUNSRVMgdG8gYmV0BAh0b21vcnJvdwkAZAIJAGkCBQZoZWlnaHQFCkRBWV9CTE9DS1MAAQQGYmV0S2V5CQEKa2V5VXNlckJldAEFBGFkZHIEDW9sZFVzZXJCZXRTdHIJAKIIAQUGYmV0S2V5BAtuZXdCZXRFbnRyeQkBC1N0cmluZ0VudHJ5AgUGYmV0S2V5CQCsAgIJAKwCAgkApAMBBQh0b21vcnJvdwIBXwkApAMBBQNiZXQDCQEJaXNEZWZpbmVkAQUNb2xkVXNlckJldFN0cgQHdXNlckJldAkBBXZhbHVlAQUNb2xkVXNlckJldFN0cgMJAAACCQCRAwIJALUJAgUHdXNlckJldAIBXwAACQCkAwEFCHRvbW9ycm93CQACAQIcWW91IGFscmVhZHkgYmV0IGZvciB0b21vcnJvdwQBcgkBFGNsYWltVGlja2V0c0ludGVybmFsAgUEYWRkcgUHdXNlckJldAkAlAoCCQDNCAIIBQFyAl8xBQtuZXdCZXRFbnRyeQgFAXICXzIJAJQKAgkAzAgCBQtuZXdCZXRFbnRyeQUDbmlsAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJdGFrZVdsZ1hwAQRhZGRyAwkBAiE9AggFAWkGY2FsbGVyBQ9zdGFraW5nQ29udHJhY3QJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQNJHQwMTcyNjYxNzMwOQkBDnRha2VYcEludGVybmFsAgUEYWRkcgAABAdhY3Rpb25zCAUNJHQwMTcyNjYxNzMwOQJfMQQCeHAIBQ0kdDAxNzI2NjE3MzA5Al8yCQCUCgIFB2FjdGlvbnMFAnhwAWkBEmNoZWNrV2xnWHBSRUFET05MWQEEYWRkcgQNJHQwMTczODYxNzQzNAkBDnRha2VYcEludGVybmFsAgUEYWRkcgAABAdpZ25vcmVkCAUNJHQwMTczODYxNzQzNAJfMQQHZGVsdGFYUAgFDSR0MDE3Mzg2MTc0MzQCXzIEBW5ld1hQCQBkAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQlrZXlVc2VyWFABBQRhZGRyAAAFB2RlbHRhWFAECWx2bFBvaW50cwkBB2xldmVsVXACCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBDGtleVVzZXJMZXZlbAEFBGFkZHIAAAUFbmV3WFAJAJQKAgUDbmlsCQDNCAIFCWx2bFBvaW50cwUFbmV3WFABaQEMc2V0TnVtUHJpemVzAQludW1Qcml6ZXMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQEd2VlawkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmtleU51bU5GVDJEcmF3AQUEd2VlawUJbnVtUHJpemVzBQNuaWwFCW51bVByaXplcwFpAQlvcGVuQ2hlc3QABAxwcm9sb2dSZXN1bHQJAQdwcm9sb2cyAAMJAAACBQxwcm9sb2dSZXN1bHQFDHByb2xvZ1Jlc3VsdAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBAhkcmF3V2VlawkAZQIJAGkCBQZoZWlnaHQFC1dFRUtfQkxPQ0tTAAEEBGFkZHIJAKUIAQgFAWkGY2FsbGVyBAt1c2VyVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUIZHJhd1dlZWsAAAMJAGcCAAAFC3VzZXJUaWNrZXRzCQACAQIZTm8gZ2VtcyB0byBvcGVuIHRoZSBjaGVzdAkBEW9wZW5DaGVzdEludGVybmFsAQUEYWRkcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQphZGRHZW1zRm9yAgRhZGRyDGRlbHRhVGlja2V0cwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAR3ZWVrCQBpAgUGaGVpZ2h0BQtXRUVLX0JMT0NLUwQKdGlja2V0c0tleQkBEmtleVVzZXJXZWVrVGlja2V0cwIFBGFkZHIFBHdlZWsED29sZFRvdGFsVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsAAAQKb2xkVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQp0aWNrZXRzS2V5AAAED29sZFBhcnRpY2lwYW50cwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEYa2V5VG90YWxXZWVrUGFydGljaXBhbnRzAQUEd2VlawAABBJ1cGRhdGVQYXJ0aWNpcGFudHMDAwkAAAIFCm9sZFRpY2tldHMAAAkAAAIFDGRlbHRhVGlja2V0cwABBwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGtleVRvdGFsV2Vla1BhcnRpY2lwYW50cwEFBHdlZWsJAGQCBQ9vbGRQYXJ0aWNpcGFudHMAAQUDbmlsBQNuaWwJAJQKAgkAzQgCCQDNCAIFEnVwZGF0ZVBhcnRpY2lwYW50cwkBDEludGVnZXJFbnRyeQIFCnRpY2tldHNLZXkJAGQCBQpvbGRUaWNrZXRzBQxkZWx0YVRpY2tldHMJAQxJbnRlZ2VyRW50cnkCCQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsJAGQCBQ9vbGRUb3RhbFRpY2tldHMFDGRlbHRhVGlja2V0cwUMZGVsdGFUaWNrZXRzAEiqiXs=", "height": 3392191, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 71o1dh37JKXbjNP4Nb79EJGzpqAXzHfNFRqGCdgDZEH9 Next: HAGsL4fpNExrNrUFy56Uzdu7CoXiuTm41bsu4FxS18dw Diff:
OldNewDifferences
348348
349349 let bU = 4
350350
351-let bV = 1
351+let bV = 5
352352
353-let bW = 5
353+let bW = 100000000
354354
355-let bX = 100000000
355+let bX = "nftTotalIssued"
356356
357-let bY = "nftTotalIssued"
357+let bY = "nftTotalBurned"
358358
359-let bZ = "nftTotalBurned"
359+let bZ = "WlNftTotalStaked"
360360
361-let ca = "WlNftTotalStaked"
362-
363-func cb (O) = ("userWlNftNumber_" + O)
361+func ca (O) = ("userWlNftNumber_" + O)
364362
365363
366-func cc (O) = ("userFullBonus_" + O)
364+func cb (O) = ("userFullBonus_" + O)
367365
368366
369-let cd = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
367+let cc = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
370368
371-func ce (cf) = {
372- let cg = ((cf + 99999999) / bn)
373- func ch (ci,cj) = if ((cj >= cg))
374- then ci
375- else (ci + 1)
369+func cd (ce) = {
370+ let cf = ((ce + 99999999) / bn)
371+ func cg (ch,ci) = if ((ci >= cf))
372+ then ch
373+ else (ch + 1)
376374
377- let ck = cd
378- let cl = size(ck)
379- let cm = 0
380- func cn (co,cp) = if ((cp >= cl))
381- then co
382- else ch(co, ck[cp])
375+ let cj = cc
376+ let ck = size(cj)
377+ let cl = 0
378+ func cm (cn,co) = if ((co >= ck))
379+ then cn
380+ else cg(cn, cj[co])
383381
384- func cq (co,cp) = if ((cp >= cl))
385- then co
382+ func cp (cn,co) = if ((co >= ck))
383+ then cn
386384 else throw("List size exceeds 10")
387385
388- cq(cn(cn(cn(cn(cn(cn(cn(cn(cn(cn(cm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
386+ cp(cm(cm(cm(cm(cm(cm(cm(cm(cm(cm(cl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
389387 }
390388
391389
392-func cr (cf) = ((cf * 20) * (ce(cf) + 4))
390+func cq (ce) = ((ce * 20) * (cd(ce) + 4))
393391
394392
395-func cs (cf,ct) = {
396- let cu = cr(cf)
397- $Tuple2(fraction(cu, (bm + ct), bm), cu)
393+func cr (ce,cs) = {
394+ let ct = cq(ce)
395+ $Tuple2(fraction(ct, (bm + cs), bm), ct)
398396 }
399397
400398
401-func cv (cw,J) = {
402- let cx = valueOrElse(getInteger(J, bP), 0)
403- let cy = valueOrElse(getInteger(J, bN(cw)), 0)
404- let cz = valueOrElse(getInteger(J, cc(cw)), 0)
405- let cA = cs(cy, cz)
406- let cB = cA._1
407- let cC = cA._2
408-[cx, cB, cC, cz]
399+func cu (cv,J) = {
400+ let cw = valueOrElse(getInteger(J, bP), 0)
401+ let cx = valueOrElse(getInteger(J, bN(cv)), 0)
402+ let cy = valueOrElse(getInteger(J, cb(cv)), 0)
403+ let cz = cr(cx, cy)
404+ let cA = cz._1
405+ let cB = cz._2
406+[cw, cA, cB, cy]
409407 }
410408
411409
412-let cD = 0
410+let cC = 0
413411
414-let cE = 1
412+let cD = 1
415413
416-func cF (cG,cH,cI,cJ) = {
417- let bH = valueOrErrorMessage(getInteger(cH[bS], bL), "WLGOLD is not issued yet")
418- let cK = assetBalance(cH[bQ], cI)
419- let cL = (assetBalance(cH[bS], cI) - cJ)
420- let cM = assetBalance(cH[bT], cI)
421- let cN = assetBalance(cH[bR], cI)
422- let cO = cH[bU]
423- let cP = (assetBalance(cO, cI) + valueOrElse(getInteger(cO, bM), 0))
424- let cQ = ((cN + cL) + cP)
425- let cR = valueOrErrorMessage(getBinary(cH[bS], "wlg_assetId"), "Not initialized yet")
426- let cS = lastBlock.timestamp
427- let cT = valueOrErrorMessage(getInteger(cH[bS], bK), "Not initialized")
428- let cU = assetBalance(cH[bS], cR)
429- let cV = fraction(bH, bo, bm)
430- let cW = valueOrElse(getInteger(cH[bS], bB), cV)
431- let cX = valueOrElse(getInteger(cH[bS], bA), cT)
432- let cY = addressFromStringValue(value(getString(cH[bS], bz)))
433- let cZ = min([fraction(cV, (cS - cX), (3 * br)), cW])
434- let da = assetBalance(cY, cR)
435- let db = fraction(bH, bp, bm)
436- let dc = valueOrElse(getInteger(cH[bS], bD), db)
437- let dd = valueOrElse(getInteger(cH[bS], bC), cT)
438- let de = min([fraction(db, (cS - dd), (3 * br)), dc])
439- let df = assetBalance(cH[bQ], cR)
440- let dg = valueOrElse(getInteger(cH[bS], bF(cG)), cT)
441- let dh = ((dg - cT) / br)
442- let di = min([cS, (cT + (3 * br))])
443- let dj = min([((cS - cT) / br), 2])
444- let dk = cv(cG, cH[bR])
445- let dl = bG(bH, dj)
446- let dm = (cT + (br * dj))
447- let dn = (cT + (br * (dj - 1)))
448- let do = fraction(dl, (di - dg), br)
449- let dp = if ((dh == dj))
450- then do
451- else if ((dh == (dj - 1)))
414+func cE (cF,cG,cH,cI) = {
415+ let bH = valueOrErrorMessage(getInteger(cG[bS], bL), "WLGOLD is not issued yet")
416+ let cJ = assetBalance(cG[bQ], cH)
417+ let cK = (assetBalance(cG[bS], cH) - cI)
418+ let cL = assetBalance(cG[bT], cH)
419+ let cM = assetBalance(cG[bR], cH)
420+ let cN = cG[bU]
421+ let cO = (assetBalance(cN, cH) + valueOrElse(getInteger(cN, bM), 0))
422+ let cP = ((cM + cK) + cO)
423+ let cQ = valueOrErrorMessage(getBinary(cG[bS], "wlg_assetId"), "Not initialized yet")
424+ let cR = lastBlock.timestamp
425+ let cS = valueOrErrorMessage(getInteger(cG[bS], bK), "Not initialized")
426+ let cT = assetBalance(cG[bS], cQ)
427+ let cU = fraction(bH, bo, bm)
428+ let cV = valueOrElse(getInteger(cG[bS], bB), cU)
429+ let cW = valueOrElse(getInteger(cG[bS], bA), cS)
430+ let cX = addressFromStringValue(value(getString(cG[bS], bz)))
431+ let cY = min([fraction(cU, (cR - cW), (3 * br)), cV])
432+ let cZ = assetBalance(cX, cQ)
433+ let da = fraction(bH, bp, bm)
434+ let db = valueOrElse(getInteger(cG[bS], bD), da)
435+ let dc = valueOrElse(getInteger(cG[bS], bC), cS)
436+ let dd = min([fraction(da, (cR - dc), (3 * br)), db])
437+ let de = assetBalance(cG[bQ], cQ)
438+ let df = valueOrElse(getInteger(cG[bS], bF(cF)), cS)
439+ let dg = ((df - cS) / br)
440+ let dh = min([cR, (cS + (3 * br))])
441+ let di = min([((cR - cS) / br), 2])
442+ let dj = cu(cF, cG[bR])
443+ let dk = bG(bH, di)
444+ let dl = (cS + (br * di))
445+ let dm = (cS + (br * (di - 1)))
446+ let dn = fraction(dk, (dh - df), br)
447+ let do = if ((dg == di))
448+ then dn
449+ else if ((dg == (di - 1)))
452450 then {
453- let dq = fraction(bG(bH, (dj - 1)), (dm - dg), br)
454- (dq + do)
451+ let dp = fraction(bG(bH, (di - 1)), (dl - df), br)
452+ (dp + dn)
455453 }
456454 else {
457- let dr = fraction(bG(bH, (dj - 2)), (dn - dg), br)
458- let dq = bG(bH, (dj - 1))
459- ((dr + dq) + do)
455+ let dq = fraction(bG(bH, (di - 2)), (dm - df), br)
456+ let dp = bG(bH, (di - 1))
457+ ((dq + dp) + dn)
460458 }
461- let ds = valueOrElse(getInteger(cH[bS], bE), 0)
462- let dt = if ((dk[cD] != 0))
463- then fraction(dp, dk[cE], dk[cD])
459+ let dr = valueOrElse(getInteger(cG[bS], bE), 0)
460+ let ds = if ((dj[cC] != 0))
461+ then fraction(do, dj[cD], dj[cC])
464462 else 0
465- let du = valueOrElse(getInteger(cH[bS], bJ), bx)
466- let dv = fraction(bt, max([(cS - du), 0]), bs)
467- let dw = fraction(dv, bv, bm)
468- let dx = fraction(dv, bw, bm)
469- let dy = max([(cS - max([bx, dg])), 0])
470- let dz = if ((dk[cD] != 0))
471- then fraction(fraction(fraction(bt, dy, bs), dk[cE], dk[cD]), bu, bm)
463+ let dt = valueOrElse(getInteger(cG[bS], bJ), bx)
464+ let du = fraction(bt, max([(cR - dt), 0]), bs)
465+ let dv = fraction(du, bv, bm)
466+ let dw = fraction(du, bw, bm)
467+ let dx = max([(cR - max([bx, df])), 0])
468+ let dy = if ((dj[cC] != 0))
469+ then fraction(fraction(fraction(bt, dx, bs), dj[cD], dj[cC]), bu, bm)
472470 else 0
473- let dA = max([bx, cS])
474- let dB = valueOrElse(getInteger(cH[bR], bO), 0)
475- let dC = valueOrElse(getInteger(cH[bR], bY), 0)
476- let dD = valueOrElse(getInteger(cH[bR], bZ), 0)
477- let dE = valueOrElse(getInteger(cH[bR], ca), 0)
478- let dF = valueOrElse(getInteger(cH[bR], cb(valueOrElse(cG, ""))), 0)
479-[bH, cU, fraction(cQ, bn, bH), cQ, cK, cN, cL, cM, cT, cX, cV, cW, cZ, da, db, dc, de, df, dj, ds, dl, dg, cP, dt, di, dv, dw, dx, dz, dA, dk[cD], dB, dC, dD, dE, dF]
471+ let dz = max([bx, cR])
472+ let dA = valueOrElse(getInteger(cG[bR], bO), 0)
473+ let dB = valueOrElse(getInteger(cG[bR], bX), 0)
474+ let dC = valueOrElse(getInteger(cG[bR], bY), 0)
475+ let dD = valueOrElse(getInteger(cG[bR], bZ), 0)
476+ let dE = valueOrElse(getInteger(cG[bR], ca(valueOrElse(cF, ""))), 0)
477+[bH, cT, fraction(cP, bn, bH), cP, cJ, cM, cK, cL, cS, cW, cU, cV, cY, cZ, da, db, dd, de, di, dr, dk, df, cO, ds, dh, du, dv, dw, dy, dz, dj[cC], dA, dB, dC, dD, dE]
480478 }
481479
482480
483-let dG = "profitAddr"
481+let dF = "profitAddr"
484482
485-let dH = "stakersAmountPaidTotal"
483+let dG = "stakersAmountPaidTotal"
486484
487-func dI (O) = ("stakersAmountPaidUser_" + O)
485+func dH (O) = ("stakersAmountPaidUser_" + O)
488486
489487
490-func dJ () = at(reentrantInvoke(J, "saveLastTx", nil, nil))
488+func dI () = at(reentrantInvoke(J, "saveLastTx", nil, nil))
491489
492490
493-func dK (O) = {
494- let dL = valueOrElse(getInteger(be(O)), 0)
495- let dM = valueOrElse(getInteger(J, bi(O)), 0)
496- let dN = valueOrElse(getInteger(bf(O)), dM)
497- let dO = (dN + fraction(dM, (lastBlock.timestamp - dL), e))
498- min([dO, dM])
491+func dJ (O) = {
492+ let dK = valueOrElse(getInteger(be(O)), 0)
493+ let dL = valueOrElse(getInteger(J, bi(O)), 0)
494+ let dM = valueOrElse(getInteger(bf(O)), dL)
495+ let dN = (dM + fraction(dL, (lastBlock.timestamp - dK), e))
496+ min([dN, dL])
499497 }
500498
501499
502-func dP (O) = {
503- let dQ = cF(O, [I, J, K, L, M], k, 0)
504- let dR = bF(O)
505- let dg = valueOrElse(getInteger(dR), 0)
506- let dS = dQ[an]
507- if ((dg == dS))
500+func dO (O) = {
501+ let dP = cE(O, [I, J, K, L, M], k, 0)
502+ let dQ = bF(O)
503+ let df = valueOrElse(getInteger(dQ), 0)
504+ let dR = dP[an]
505+ if ((df == dR))
508506 then $Tuple2(nil, 0)
509507 else {
510- let cS = lastBlock.timestamp
511- let cT = dQ[ag]
512- let cW = dQ[ah]
513- let dT = (dQ[ai] + dQ[aq])
514- let dU = if ((dT > 0))
515- then [ScriptTransfer(addressFromStringValue(value(getString(aY))), dT, Q)]
508+ let cR = lastBlock.timestamp
509+ let cS = dP[ag]
510+ let cV = dP[ah]
511+ let dS = (dP[ai] + dP[aq])
512+ let dT = if ((dS > 0))
513+ then [ScriptTransfer(addressFromStringValue(value(getString(aY))), dS, Q)]
516514 else nil
517- let dc = dQ[aj]
518- let dV = dQ[ak]
519- let dW = if ((dV > 0))
520- then [ScriptTransfer(x, dV, Q)]
515+ let db = dP[aj]
516+ let dU = dP[ak]
517+ let dV = if ((dU > 0))
518+ then [ScriptTransfer(x, dU, Q)]
521519 else nil
522- let dX = dQ[ap]
523- let dY = if ((dX > 0))
524- then [ScriptTransfer(addressFromStringValue(value(getString(by))), dX, Q)]
520+ let dW = dP[ap]
521+ let dX = if ((dW > 0))
522+ then [ScriptTransfer(addressFromStringValue(value(getString(by))), dW, Q)]
525523 else nil
526- let dt = dQ[am]
527- let dZ = dI(O)
528- let ea = (dt + dQ[ar])
529- let eb = dQ[ao]
530- $Tuple2(((([Reissue(Q, eb, true), IntegerEntry(bh, (dQ[ad] + eb)), IntegerEntry(bJ, dQ[as]), IntegerEntry(dZ, (valueOrElse(getInteger(dZ), 0) + dt)), IntegerEntry(dH, (valueOrElse(getInteger(dH), 0) + dt)), IntegerEntry(bd, (dQ[al] - dt)), IntegerEntry(ba, ((cW - dT) + dQ[aq])), IntegerEntry(aZ, cS), IntegerEntry(bc, (dc - dV)), IntegerEntry(bb, cS), IntegerEntry(dR, dS)] ++ dU) ++ dW) ++ dY), ea)
524+ let ds = dP[am]
525+ let dY = dH(O)
526+ let dZ = (ds + dP[ar])
527+ let ea = dP[ao]
528+ $Tuple2(((([Reissue(Q, ea, true), IntegerEntry(bh, (dP[ad] + ea)), IntegerEntry(bJ, dP[as]), IntegerEntry(dY, (valueOrElse(getInteger(dY), 0) + ds)), IntegerEntry(dG, (valueOrElse(getInteger(dG), 0) + ds)), IntegerEntry(bd, (dP[al] - ds)), IntegerEntry(ba, ((cV - dS) + dP[aq])), IntegerEntry(aZ, cR), IntegerEntry(bc, (db - dU)), IntegerEntry(bb, cR), IntegerEntry(dQ, dR)] ++ dT) ++ dV) ++ dX), dZ)
531529 }
532530 }
533531
534532
535-func ec (O,ed) = {
536- let cS = lastBlock.timestamp
537- let ee = bl(O)
538- let ef = bj(O)
539- let dL = valueOrElse(getInteger(ee), 0)
540- let eg = valueOrElse(getInteger(ef), 0)
541- let eh = valueOrElse(getInteger(bk), 0)
542- let aQ = fraction(fraction(aO, eg, aL), (dL - cS), aX)
543- $Tuple3([IntegerEntry(ee, cS), IntegerEntry(ef, (eg + ed)), IntegerEntry(bk, (eh + ed))], aQ, eg)
533+func eb (O,ec) = {
534+ let cR = lastBlock.timestamp
535+ let ed = bl(O)
536+ let ee = bj(O)
537+ let dK = valueOrElse(getInteger(ed), 0)
538+ let ef = valueOrElse(getInteger(ee), 0)
539+ let eg = valueOrElse(getInteger(bk), 0)
540+ let aQ = fraction(fraction(aO, ef, aL), (dK - cR), aX)
541+ $Tuple3([IntegerEntry(ed, cR), IntegerEntry(ee, (ef + ec)), IntegerEntry(bk, (eg + ec))], aQ, ef)
544542 }
545543
546544
547-func ei (O) = {
545+func eh (O) = {
548546 let T = (height / i)
549- let ej = (T - 1)
550- let ek = valueOrElse(getInteger(W(ej)), bW)
551- let el = valueOrElse(getInteger(X(ej)), 0)
552- let em = valueOrElse(getInteger(S(O, ej)), 0)
553- if ((0 >= em))
547+ let ei = (T - 1)
548+ let ej = valueOrElse(getInteger(W(ei)), bV)
549+ let ek = valueOrElse(getInteger(X(ei)), 0)
550+ let el = valueOrElse(getInteger(S(O, ei)), 0)
551+ if ((0 >= el))
554552 then $Tuple2(nil, unit)
555553 else {
556- let en = valueOrElse(getInteger(U(ej)), 0)
557- if ((0 >= en))
558- then $Tuple2([DeleteEntry(S(O, ej))], unit)
554+ let em = valueOrElse(getInteger(U(ei)), 0)
555+ if ((0 >= em))
556+ then $Tuple2([DeleteEntry(S(O, ei))], unit)
559557 else {
560558 let aF = value(value(blockInfoByHeight((T * i))).vrf)
561559 let aE = fromBase58String(split(valueOrElse(getString(J, N(O)), "42_DEFAULT"), "_")[1])
562- let eo = aC(en, aE, aF)
563- if (((em * ek) > eo))
560+ let en = aC(em, aE, aF)
561+ if (((el * ej) > en))
564562 then {
565- let ep = invoke(J, "issueNFT", [O, bV], nil)
566- let eq = getString(Y(ej))
567- let er = if (isDefined(eq))
568- then ((value(eq) + "_") + O)
563+ let eo = invoke(J, "issuePickC1", [O], nil)
564+ let ep = getString(Y(ei))
565+ let eq = if (isDefined(ep))
566+ then ((value(ep) + "_") + O)
569567 else O
570- $Tuple2([IntegerEntry(X(ej), (el + 1)), DeleteEntry(S(O, ej)), StringEntry(Y(ej), er)], ep)
568+ $Tuple2([IntegerEntry(X(ei), (ek + 1)), DeleteEntry(S(O, ei)), StringEntry(Y(ei), eq)], eo)
571569 }
572570 else {
573- let es = (aC(9, (base58'29' + aE), aF) + 1)
574- let et = fraction(em, es, 10)
575- let eu = S(O, T)
576- let ev = valueOrElse(getInteger(eu), 0)
577- $Tuple2(((if ((et == 0))
571+ let er = (aC(9, (base58'29' + aE), aF) + 1)
572+ let es = fraction(el, er, 10)
573+ let et = S(O, T)
574+ let eu = valueOrElse(getInteger(et), 0)
575+ $Tuple2(((if ((es == 0))
578576 then nil
579577 else {
580- let ew = [IntegerEntry(U(T), (valueOrElse(getInteger(U(T)), 0) + et)), IntegerEntry(eu, (ev + et))]
581- if ((ev > 0))
582- then ew
583- else (ew :+ IntegerEntry(V(T), (valueOrElse(getInteger(V(T)), 0) + 1)))
584- }) :+ DeleteEntry(S(O, ej))), et)
578+ let ev = [IntegerEntry(U(T), (valueOrElse(getInteger(U(T)), 0) + es)), IntegerEntry(et, (eu + es))]
579+ if ((eu > 0))
580+ then ev
581+ else (ev :+ IntegerEntry(V(T), (valueOrElse(getInteger(V(T)), 0) + 1)))
582+ }) :+ DeleteEntry(S(O, ei))), es)
585583 }
586584 }
587585 }
588586 }
589587
590588
591-func ex (O,ey) = {
589+func ew (O,ex) = {
592590 let T = (height / i)
593- let eu = S(O, T)
594- let ez = split(ey, "_")
595- let eA = valueOrElse(getInteger(U(T)), 0)
596- let ev = valueOrElse(getInteger(eu), 0)
597- let eB = if ((Z(parseIntValue(ez[0])) == parseIntValue(ez[1])))
591+ let et = S(O, T)
592+ let ey = split(ex, "_")
593+ let ez = valueOrElse(getInteger(U(T)), 0)
594+ let eu = valueOrElse(getInteger(et), 0)
595+ let eA = if ((Z(parseIntValue(ey[0])) == parseIntValue(ey[1])))
598596 then 1
599597 else 0
600- let eC = valueOrElse(getInteger(V(T)), 0)
601- let eD = if (if ((ev == 0))
602- then (eB == 1)
598+ let eB = valueOrElse(getInteger(V(T)), 0)
599+ let eC = if (if ((eu == 0))
600+ then (eA == 1)
603601 else false)
604- then [IntegerEntry(V(T), (eC + 1))]
602+ then [IntegerEntry(V(T), (eB + 1))]
605603 else nil
606- $Tuple2(if ((eB == 0))
604+ $Tuple2(if ((eA == 0))
607605 then nil
608- else ((eD :+ IntegerEntry(eu, (ev + eB))) :+ IntegerEntry(U(T), (eA + eB))), eB)
606+ else ((eC :+ IntegerEntry(et, (eu + eA))) :+ IntegerEntry(U(T), (ez + eA))), eA)
609607 }
610608
611609
612-@Callable(eE)
613-func constructorV1 (eF,eG,cY,eH) = if ((eE.caller != this))
610+@Callable(eD)
611+func constructorV1 (eE,eF,cX,eG) = if ((eD.caller != this))
614612 then throw("Permission denied")
615613 else if (isDefined(getBinary(P)))
616614 then throw("Already initialized")
617615 else {
618616 let bH = aV
619- let eI = Issue("WLGOLD", "WavesLands Gold investment token", bH, 8, true, unit, 0)
620- let eJ = calculateAssetId(eI)
621-[eI, IntegerEntry(bg, lastBlock.timestamp), IntegerEntry(bh, bH), IntegerEntry(dH, 0), IntegerEntry(bd, fraction(aV, aW, b)), BinaryEntry(P, eJ), StringEntry(w(), eF), StringEntry(by, eG), StringEntry(aY, cY), StringEntry(dG, eH)]
617+ let eH = Issue("WLGOLD", "WavesLands Gold investment token", bH, 8, true, unit, 0)
618+ let eI = calculateAssetId(eH)
619+[eH, IntegerEntry(bg, lastBlock.timestamp), IntegerEntry(bh, bH), IntegerEntry(dG, 0), IntegerEntry(bd, fraction(aV, aW, b)), BinaryEntry(P, eI), StringEntry(w(), eE), StringEntry(by, eF), StringEntry(aY, cX), StringEntry(dF, eG)]
622620 }
623621
624622
625623
626-@Callable(eE)
627-func constructorV2 (eK) = if ((eE.caller != this))
624+@Callable(eD)
625+func constructorV2 (eJ) = if ((eD.caller != this))
628626 then throw("Permission denied")
629- else [StringEntry(v(), eK)]
627+ else [StringEntry(v(), eJ)]
630628
631629
632630
633-@Callable(eE)
634-func buyWlg (eL) = {
635- let eM = dJ()
636- if ((eM == eM))
637- then if ((size(eE.payments) != 1))
631+@Callable(eD)
632+func buyWlg (eK) = {
633+ let eL = dI()
634+ if ((eL == eL))
635+ then if ((size(eD.payments) != 1))
638636 then throw("exactly 1 payment must be attached")
639637 else {
640- let eN = eE.payments[0]
641- let eO = eN.amount
642- if (if (!(isDefined(eN.assetId)))
638+ let eM = eD.payments[0]
639+ let eN = eM.amount
640+ if (if (!(isDefined(eM.assetId)))
643641 then true
644- else (value(eN.assetId) != k))
642+ else (value(eM.assetId) != k))
645643 then throw("USDT payments only!")
646644 else {
647- let eP = eE.caller
648- let O = toString(eP)
649- if ((d > eO))
645+ let eO = eD.caller
646+ let O = toString(eO)
647+ if ((d > eN))
650648 then throw((("You can trade min " + aw(d, 6)) + " USDT"))
651649 else {
652- let dQ = cF("", [I, J, K, L, M], k, eO)
653- let eQ = dQ[ad]
654- let eR = dQ[af]
655- let eS = fraction(eR, 6, 5, CEILING)
656- let eT = fraction(eO, c, eS)
657- let eU = dK(O)
658- if ((eT > eU))
659- then throw((("You can get max " + aw(eU, 8)) + " WLGOLD at the moment"))
660- else if ((eL > eT))
650+ let dP = cE("", [I, J, K, L, M], k, eN)
651+ let eP = dP[ad]
652+ let eQ = dP[af]
653+ let eR = fraction(eQ, 6, 5, CEILING)
654+ let eS = fraction(eN, c, eR)
655+ let eT = dJ(O)
656+ if ((eS > eT))
657+ then throw((("You can get max " + aw(eT, 8)) + " WLGOLD at the moment"))
658+ else if ((eK > eS))
661659 then throw("Price changed during operation, please try again")
662660 else {
663- let eV = (eO / 6)
664- $Tuple2([Reissue(Q, eT, true), IntegerEntry(bh, (eQ + eT)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eU - eT)), ScriptTransfer(addressFromStringValue(value(getString(dG))), eV, k), ScriptTransfer(eP, eT, Q)], eM)
661+ let eU = (eN / 6)
662+ $Tuple2([Reissue(Q, eS, true), IntegerEntry(bh, (eP + eS)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eT - eS)), ScriptTransfer(addressFromStringValue(value(getString(dF))), eU, k), ScriptTransfer(eO, eS, Q)], eL)
665663 }
666664 }
667665 }
671669
672670
673671
674-@Callable(eE)
675-func buyWlgREADONLY (o,eO) = {
676- let dQ = cF("", [I, J, K, L, M], k, eO)
677- let eR = dQ[af]
678- let eS = fraction(eR, 6, 5, CEILING)
679- let eT = fraction(eO, c, eS)
680- let eU = dK(o)
681- let eW = fraction(eU, eS, c)
682- let eV = (eO / 6)
683- $Tuple2(nil, [eT, d, eW, eV])
672+@Callable(eD)
673+func buyWlgREADONLY (o,eN) = {
674+ let dP = cE("", [I, J, K, L, M], k, eN)
675+ let eQ = dP[af]
676+ let eR = fraction(eQ, 6, 5, CEILING)
677+ let eS = fraction(eN, c, eR)
678+ let eT = dJ(o)
679+ let eV = fraction(eT, eR, c)
680+ let eU = (eN / 6)
681+ $Tuple2(nil, [eS, d, eV, eU])
684682 }
685683
686684
687685
688-@Callable(eE)
689-func sellWlg (eX) = {
690- let eM = dJ()
691- if ((eM == eM))
692- then if ((size(eE.payments) != 1))
686+@Callable(eD)
687+func sellWlg (eW) = {
688+ let eL = dI()
689+ if ((eL == eL))
690+ then if ((size(eD.payments) != 1))
693691 then throw("exactly 1 payment must be attached")
694692 else {
695- let eN = eE.payments[0]
696- let eY = eN.amount
697- let eP = eE.caller
698- let O = toString(eP)
699- let eU = dK(O)
700- if ((eY > eU))
701- then throw((("You can spend max " + aw(eU, 8)) + " WLGOLD at the moment"))
702- else if (if (!(isDefined(eN.assetId)))
693+ let eM = eD.payments[0]
694+ let eX = eM.amount
695+ let eO = eD.caller
696+ let O = toString(eO)
697+ let eT = dJ(O)
698+ if ((eX > eT))
699+ then throw((("You can spend max " + aw(eT, 8)) + " WLGOLD at the moment"))
700+ else if (if (!(isDefined(eM.assetId)))
703701 then true
704- else (value(eN.assetId) != Q))
702+ else (value(eM.assetId) != Q))
705703 then throw("WLGOLD payments only!")
706704 else {
707- let dQ = cF("", [I, J, K, L, M], k, 0)
708- let eQ = dQ[ad]
709- let eZ = (dQ[af] / 2)
710- let eO = fraction(eY, eZ, c)
711- if ((d > eO))
705+ let dP = cE("", [I, J, K, L, M], k, 0)
706+ let eP = dP[ad]
707+ let eY = (dP[af] / 2)
708+ let eN = fraction(eX, eY, c)
709+ if ((d > eN))
712710 then throw((("You can trade min " + aw(d, 6)) + " USDT"))
713- else if ((eX > eO))
711+ else if ((eW > eN))
714712 then throw("Price changed during operation, please try again")
715713 else {
716- let eV = (eO / 5)
717- $Tuple2([Burn(Q, eY), IntegerEntry(bh, (eQ - eY)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eU - eY)), ScriptTransfer(addressFromStringValue(value(getString(dG))), eV, k), ScriptTransfer(eP, eO, k)], eM)
714+ let eU = (eN / 5)
715+ $Tuple2([Burn(Q, eX), IntegerEntry(bh, (eP - eX)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eT - eX)), ScriptTransfer(addressFromStringValue(value(getString(dF))), eU, k), ScriptTransfer(eO, eN, k)], eL)
718716 }
719717 }
720718 }
723721
724722
725723
726-@Callable(eE)
727-func sellWlgREADONLY (o,eY) = {
728- let eU = dK(o)
729- let dQ = cF("", [I, J, K, L, M], k, 0)
730- let eZ = (dQ[af] / 2)
731- let eO = fraction(eY, eZ, c)
732- let fa = fraction(d, c, eZ)
733- let eV = (eO / 5)
734- $Tuple2(nil, [eO, fa, eU, eV])
724+@Callable(eD)
725+func sellWlgREADONLY (o,eX) = {
726+ let eT = dJ(o)
727+ let dP = cE("", [I, J, K, L, M], k, 0)
728+ let eY = (dP[af] / 2)
729+ let eN = fraction(eX, eY, c)
730+ let eZ = fraction(d, c, eY)
731+ let eU = (eN / 5)
732+ $Tuple2(nil, [eN, eZ, eT, eU])
735733 }
736734
737735
738736
739-@Callable(eE)
737+@Callable(eD)
740738 func claim () = {
741- let eM = dJ()
742- if ((eM == eM))
743- then if ((size(eE.payments) != 0))
739+ let eL = dI()
740+ if ((eL == eL))
741+ then if ((size(eD.payments) != 0))
744742 then throw("No payments required")
745743 else {
746- let fb = dP(toString(eE.caller))
747- let fc = fb._1
748- let fd = fb._2
749- $Tuple2((fc :+ ScriptTransfer(eE.caller, fd, Q)), eM)
744+ let fa = dO(toString(eD.caller))
745+ let fb = fa._1
746+ let fc = fa._2
747+ $Tuple2((fb :+ ScriptTransfer(eD.caller, fc, Q)), eL)
750748 }
751749 else throw("Strict value is not equal to itself.")
752750 }
753751
754752
755753
756-@Callable(eE)
757-func onStakeUnstakeLand (O) = if (if (if ((eE.caller != G))
758- then (eE.caller != H)
754+@Callable(eD)
755+func onStakeUnstakeLand (O) = if (if (if ((eD.caller != G))
756+ then (eD.caller != H)
759757 else false)
760- then (eE.caller != J)
758+ then (eD.caller != J)
761759 else false)
762760 then throw("Permission denied")
763761 else {
764- let fe = dP(O)
765- let fc = fe._1
766- let fd = fe._2
767- $Tuple2(if ((fd > 0))
768- then (fc :+ ScriptTransfer(addressFromStringValue(O), fd, Q))
769- else fc, fd)
762+ let fd = dO(O)
763+ let fb = fd._1
764+ let fc = fd._2
765+ $Tuple2(if ((fc > 0))
766+ then (fb :+ ScriptTransfer(addressFromStringValue(O), fc, Q))
767+ else fb, fc)
770768 }
771769
772770
773771
774-@Callable(eE)
775-func burnWlgold (eY) = if ((eE.caller != J))
772+@Callable(eD)
773+func burnWlgold (eX) = if ((eD.caller != J))
776774 then throw("Permission denied")
777775 else {
778- let dQ = cF("", [I, J, K, L, M], k, 0)
779- if ((eY > dQ[ae]))
780- then throw(((("Only " + aw(dQ[ae], 8)) + " WLGOLD left on contract, can't burn ") + aw(eY, 8)))
776+ let dP = cE("", [I, J, K, L, M], k, 0)
777+ if ((eX > dP[ae]))
778+ then throw(((("Only " + aw(dP[ae], 8)) + " WLGOLD left on contract, can't burn ") + aw(eX, 8)))
781779 else {
782- let ff = (dQ[ad] - eY)
783- $Tuple2([Burn(Q, eY), IntegerEntry(bh, ff)], ff)
780+ let fe = (dP[ad] - eX)
781+ $Tuple2([Burn(Q, eX), IntegerEntry(bh, fe)], fe)
784782 }
785783 }
786784
787785
788786
789-@Callable(eE)
790-func betForTicket (fg) = {
791- let eM = dJ()
792- if ((eM == eM))
793- then if ((size(eE.payments) != 0))
787+@Callable(eD)
788+func betForTicket (ff) = {
789+ let eL = dI()
790+ if ((eL == eL))
791+ then if ((size(eD.payments) != 0))
794792 then throw("No payments required")
795793 else {
796- let O = toString(eE.caller)
797- let ej = ((height / i) - 1)
798- let em = valueOrElse(getInteger(S(O, ej)), 0)
799- let en = valueOrElse(getInteger(U(ej)), 0)
800- if (if ((em > 0))
801- then (en > 0)
794+ let O = toString(eD.caller)
795+ let ei = ((height / i) - 1)
796+ let el = valueOrElse(getInteger(S(O, ei)), 0)
797+ let em = valueOrElse(getInteger(U(ei)), 0)
798+ if (if ((el > 0))
799+ then (em > 0)
802800 else false)
803801 then throw("Please open the chest first")
804- else if (((fg / 4) != 0))
802+ else if (((ff / 4) != 0))
805803 then throw("Invalid bet: should be 0..3")
806804 else {
807- let fh = (height % g)
808- if ((fh > (g - 3)))
809- then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - fh))) + " blocks"))
805+ let fg = (height % g)
806+ if ((fg > (g - 3)))
807+ then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - fg))) + " blocks"))
810808 else {
811- let fi = valueOrElse(getInteger(J, bN(O)), 0)
812- if ((bX > fi))
813- then throw((("You need to stake at least " + aw(bX, 8)) + " ACRES to bet"))
809+ let fh = valueOrElse(getInteger(J, bN(O)), 0)
810+ if ((bW > fh))
811+ then throw((("You need to stake at least " + aw(bW, 8)) + " ACRES to bet"))
814812 else {
815- let fj = ((height / g) + 1)
816- let fk = R(O)
817- let fl = getString(fk)
818- let fm = StringEntry(fk, ((toString(fj) + "_") + toString(fg)))
819- if (isDefined(fl))
813+ let fi = ((height / g) + 1)
814+ let fj = R(O)
815+ let fk = getString(fj)
816+ let fl = StringEntry(fj, ((toString(fi) + "_") + toString(ff)))
817+ if (isDefined(fk))
820818 then {
821- let fn = value(fl)
822- if ((split(fn, "_")[0] == toString(fj)))
819+ let fm = value(fk)
820+ if ((split(fm, "_")[0] == toString(fi)))
823821 then throw("You already bet for tomorrow")
824822 else {
825- let fo = ex(O, fn)
826- $Tuple2((fo._1 :+ fm), fo._2)
823+ let fn = ew(O, fm)
824+ $Tuple2((fn._1 :+ fl), fn._2)
827825 }
828826 }
829- else $Tuple2([fm], 0)
827+ else $Tuple2([fl], 0)
830828 }
831829 }
832830 }
836834
837835
838836
839-@Callable(eE)
840-func takeWlgXp (O) = if ((eE.caller != G))
837+@Callable(eD)
838+func takeWlgXp (O) = if ((eD.caller != G))
841839 then throw("Permission denied")
842840 else {
843- let fp = ec(O, 0)
844- let fc = fp._1
845- let aQ = fp._2
846- $Tuple2(fc, aQ)
841+ let fo = eb(O, 0)
842+ let fb = fo._1
843+ let aQ = fo._2
844+ $Tuple2(fb, aQ)
847845 }
848846
849847
850848
851-@Callable(eE)
849+@Callable(eD)
852850 func checkWlgXpREADONLY (O) = {
853- let fq = ec(O, 0)
854- let fr = fq._1
855- let fs = fq._2
856- let aT = (valueOrElse(getInteger(G, aM(O)), 0) + fs)
857- let ft = aR(valueOrElse(getInteger(G, aN(O)), 0), aT)
858- $Tuple2(nil, (ft :+ aT))
851+ let fp = eb(O, 0)
852+ let fq = fp._1
853+ let fr = fp._2
854+ let aT = (valueOrElse(getInteger(G, aM(O)), 0) + fr)
855+ let fs = aR(valueOrElse(getInteger(G, aN(O)), 0), aT)
856+ $Tuple2(nil, (fs :+ aT))
859857 }
860858
861859
862860
863-@Callable(eE)
864-func setNumPrizes (ek) = if ((eE.caller != this))
861+@Callable(eD)
862+func setNumPrizes (ej) = if ((eD.caller != this))
865863 then throw("Permission denied")
866864 else {
867865 let T = (height / i)
868- $Tuple2([IntegerEntry(W(T), ek)], ek)
866+ $Tuple2([IntegerEntry(W(T), ej)], ej)
869867 }
870868
871869
872870
873-@Callable(eE)
871+@Callable(eD)
874872 func openChest () = {
875- let eM = dJ()
876- if ((eM == eM))
877- then if ((size(eE.payments) != 0))
873+ let eL = dI()
874+ if ((eL == eL))
875+ then if ((size(eD.payments) != 0))
878876 then throw("No payments required")
879877 else {
880- let ej = ((height / i) - 1)
881- let O = toString(eE.caller)
882- let em = valueOrElse(getInteger(S(O, ej)), 0)
883- if ((0 >= em))
878+ let ei = ((height / i) - 1)
879+ let O = toString(eD.caller)
880+ let el = valueOrElse(getInteger(S(O, ei)), 0)
881+ if ((0 >= el))
884882 then throw("No gems to open the chest")
885- else ei(O)
883+ else eh(O)
886884 }
887885 else throw("Strict value is not equal to itself.")
888886 }
889887
890888
891889
892-@Callable(eE)
893-func addGemsFor (O,eB) = if ((eE.caller != this))
890+@Callable(eD)
891+func addGemsFor (O,eA) = if ((eD.caller != this))
894892 then throw("Permission denied")
895893 else {
896894 let T = (height / i)
897- let eu = S(O, T)
898- let eA = valueOrElse(getInteger(U(T)), 0)
899- let ev = valueOrElse(getInteger(eu), 0)
900- let eC = valueOrElse(getInteger(V(T)), 0)
901- let eD = if (if ((ev == 0))
902- then (eB == 1)
895+ let et = S(O, T)
896+ let ez = valueOrElse(getInteger(U(T)), 0)
897+ let eu = valueOrElse(getInteger(et), 0)
898+ let eB = valueOrElse(getInteger(V(T)), 0)
899+ let eC = if (if ((eu == 0))
900+ then (eA == 1)
903901 else false)
904- then [IntegerEntry(V(T), (eC + 1))]
902+ then [IntegerEntry(V(T), (eB + 1))]
905903 else nil
906- $Tuple2(((eD :+ IntegerEntry(eu, (ev + eB))) :+ IntegerEntry(U(T), (eA + eB))), eB)
904+ $Tuple2(((eC :+ IntegerEntry(et, (eu + eA))) :+ IntegerEntry(U(T), (ez + eA))), eA)
907905 }
908906
909907
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000000
77
88 let c = 100000000
99
1010 let d = 100000
1111
1212 let e = 86400000
1313
1414 let f = take(drop(this.bytes, 1), 1)
1515
1616 let g = {
1717 let h = f
1818 if ((base58'2W' == h))
1919 then 1440
2020 else if ((base58'2T' == h))
2121 then 60
2222 else throw("Unknown chain")
2323 }
2424
2525 let i = {
2626 let h = f
2727 if ((base58'2W' == h))
2828 then 10080
2929 else if ((base58'2T' == h))
3030 then 180
3131 else throw("Unknown chain")
3232 }
3333
3434 let j = {
3535 let h = f
3636 if ((base58'2W' == h))
3737 then 0
3838 else if ((base58'2T' == h))
3939 then 1146000
4040 else throw("Unknown chain")
4141 }
4242
4343 let k = {
4444 let h = f
4545 if ((base58'2W' == h))
4646 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
4747 else if ((base58'2T' == h))
4848 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
4949 else throw("Unknown chain")
5050 }
5151
5252 let l = {
5353 let h = f
5454 if ((base58'2W' == h))
5555 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
5656 else if ((base58'2T' == h))
5757 then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv"
5858 else throw("Unknown chain")
5959 }
6060
6161 let m = {
6262 let h = f
6363 if ((base58'2W' == h))
6464 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
6565 else if ((base58'2T' == h))
6666 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
6767 else throw("Unknown chain")
6868 }
6969
7070 func n (o,p) = valueOrErrorMessage(getString(o, p), makeString(["mandatory ", toString(o), ".", p, " is not defined"], ""))
7171
7272
7373 let q = 1
7474
7575 let r = 2
7676
7777 let s = 4
7878
7979 let t = 5
8080
8181 func u () = "%s__restConfig"
8282
8383
8484 func v () = "%s__rest2Addr"
8585
8686
8787 func w () = "%s__restAddr"
8888
8989
9090 let x = addressFromStringValue(valueOrElse(getString(this, w()), m))
9191
9292 func y (z) = split_4C(n(z, u()), a)
9393
9494
9595 func A (B,C) = valueOrErrorMessage(addressFromString(B[C]), ("Rest cfg doesn't contain address at index " + toString(C)))
9696
9797
9898 let D = 1
9999
100100 let E = 8
101101
102102 let F = y(x)
103103
104104 let G = A(F, D)
105105
106106 let H = A(F, E)
107107
108108 let I = addressFromStringValue(valueOrElse(getString(this, v()), l))
109109
110110 let B = y(I)
111111
112112 let J = A(B, q)
113113
114114 let K = A(B, r)
115115
116116 let L = A(B, s)
117117
118118 let M = A(B, t)
119119
120120 func N (O) = ("lastWeekTxIdByUser_" + O)
121121
122122
123123 let P = "wlg_assetId"
124124
125125 let Q = valueOrErrorMessage(getBinary(K, P), "WLGOLD is not issued yet")
126126
127127 func R (O) = ("userBet_" + O)
128128
129129
130130 func S (O,T) = ((("userWeekTickets_" + O) + "_") + toString(T))
131131
132132
133133 func U (T) = ("totalWeekTickets_" + toString(T))
134134
135135
136136 func V (T) = ("totalWeekParticipants_" + toString(T))
137137
138138
139139 func W (T) = ("numNFT2Draw_" + toString(T))
140140
141141
142142 func X (T) = ("numNFTDrawn_" + toString(T))
143143
144144
145145 func Y (T) = ("weekWinners_" + toString(T))
146146
147147
148148 func Z (aa) = {
149149 let ab = (aa * g)
150150 let ac = if ((ab > j))
151151 then ab
152152 else (ab + j)
153153 (toInt(value(value(blockInfoByHeight(ac)).vrf)) % 4)
154154 }
155155
156156
157157 let ad = 0
158158
159159 let ae = 1
160160
161161 let af = 2
162162
163163 let ag = 8
164164
165165 let ah = 11
166166
167167 let ai = 12
168168
169169 let aj = 15
170170
171171 let ak = 16
172172
173173 let al = 19
174174
175175 let am = 23
176176
177177 let an = 24
178178
179179 let ao = 25
180180
181181 let ap = 26
182182
183183 let aq = 27
184184
185185 let ar = 28
186186
187187 let as = 29
188188
189189 func at (au) = {
190190 let h = au
191191 if ($isInstanceOf(h, "Int"))
192192 then {
193193 let av = h
194194 av
195195 }
196196 else throw("fail to cast into Int")
197197 }
198198
199199
200200 func aw (ax,ay) = {
201201 let az = pow(10, 0, ay, 0, 0, DOWN)
202202 let aA = toString((ax % az))
203203 let aB = drop(toString(az), (1 + size(aA)))
204204 (((toString((ax / az)) + ".") + aB) + aA)
205205 }
206206
207207
208208 func aC (aD,aE,aF) = if ((0 >= aD))
209209 then throw("maxValue should be > 0")
210210 else {
211211 let aG = sha256_16Kb((aE + aF))
212212 (toInt(aG) % aD)
213213 }
214214
215215
216216 let aH = 100000000
217217
218218 let aI = 3200
219219
220220 let aJ = 4000
221221
222222 let aK = 3
223223
224224 let aL = 100000000000
225225
226226 func aM (O) = ("userXP_" + O)
227227
228228
229229 func aN (O) = ("userLevel_" + O)
230230
231231
232232 let aO = 10000
233233
234234 func aP (aQ) = fraction(aI, pow(aQ, 4, aJ, 4, 4, DOWN), aH)
235235
236236
237237 func aR (aS,aT) = {
238238 let aU = aP(aT)
239239 [aU, (aK * (aU - aS))]
240240 }
241241
242242
243243 let aV = 100000000000000
244244
245245 let aW = 400000
246246
247247 let aX = 86400000
248248
249249 let aY = "teamAddr"
250250
251251 let aZ = "lastClaimedTime_team"
252252
253253 let ba = "teamAmountLeft"
254254
255255 let bb = "lastClaimedTime_activities"
256256
257257 let bc = "activitiesAmountLeft"
258258
259259 let bd = "stakersAmountLeft"
260260
261261 func be (O) = ("lastArbTimeUser_" + O)
262262
263263
264264 func bf (O) = ("lastWlgLimitUser_" + O)
265265
266266
267267 let bg = "wlg_issueTime"
268268
269269 let bh = "wlg_issuedAmount"
270270
271271 func bi (O) = ("acresStakedAmountByUser_" + O)
272272
273273
274274 func bj (O) = ("wlgStakedAmountByUser_" + O)
275275
276276
277277 let bk = "wlgStakedAmountTotal"
278278
279279 func bl (O) = ("wlgStakedTimeByUser_" + O)
280280
281281
282282 let bm = 1000000
283283
284284 let bn = 100000000
285285
286286 let bo = 200000
287287
288288 let bp = 100000
289289
290290 let bq = 400000
291291
292292 let br = 31557600000
293293
294294 let bs = 86400000
295295
296296 let bt = 1000000000
297297
298298 let bu = 800000
299299
300300 let bv = 100000
301301
302302 let bw = 100000
303303
304304 let bx = 1731279600000
305305
306306 let by = "marketingAddr"
307307
308308 let bz = "teamAddr"
309309
310310 let bA = "lastClaimedTime_team"
311311
312312 let bB = "teamAmountLeft"
313313
314314 let bC = "lastClaimedTime_activities"
315315
316316 let bD = "activitiesAmountLeft"
317317
318318 let bE = "stakersAmountLeft"
319319
320320 func bF (O) = ("lastClaimedTimeUser_" + O)
321321
322322
323323 func bG (bH,bI) = fraction(bH, (bq * (bI + 1)), (6 * bm))
324324
325325
326326 let bJ = "wlg_issue10Time"
327327
328328 let bK = "wlg_issueTime"
329329
330330 let bL = "wlg_issuedAmount"
331331
332332 let bM = "zbill_issuedAmount"
333333
334334 func bN (O) = ("acresStakedAmountByUser_" + O)
335335
336336
337337 let bO = "acresStakedAmountTotal"
338338
339339 let bP = "totalFarmingPower"
340340
341341 let bQ = 0
342342
343343 let bR = 1
344344
345345 let bS = 2
346346
347347 let bT = 3
348348
349349 let bU = 4
350350
351-let bV = 1
351+let bV = 5
352352
353-let bW = 5
353+let bW = 100000000
354354
355-let bX = 100000000
355+let bX = "nftTotalIssued"
356356
357-let bY = "nftTotalIssued"
357+let bY = "nftTotalBurned"
358358
359-let bZ = "nftTotalBurned"
359+let bZ = "WlNftTotalStaked"
360360
361-let ca = "WlNftTotalStaked"
362-
363-func cb (O) = ("userWlNftNumber_" + O)
361+func ca (O) = ("userWlNftNumber_" + O)
364362
365363
366-func cc (O) = ("userFullBonus_" + O)
364+func cb (O) = ("userFullBonus_" + O)
367365
368366
369-let cd = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
367+let cc = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
370368
371-func ce (cf) = {
372- let cg = ((cf + 99999999) / bn)
373- func ch (ci,cj) = if ((cj >= cg))
374- then ci
375- else (ci + 1)
369+func cd (ce) = {
370+ let cf = ((ce + 99999999) / bn)
371+ func cg (ch,ci) = if ((ci >= cf))
372+ then ch
373+ else (ch + 1)
376374
377- let ck = cd
378- let cl = size(ck)
379- let cm = 0
380- func cn (co,cp) = if ((cp >= cl))
381- then co
382- else ch(co, ck[cp])
375+ let cj = cc
376+ let ck = size(cj)
377+ let cl = 0
378+ func cm (cn,co) = if ((co >= ck))
379+ then cn
380+ else cg(cn, cj[co])
383381
384- func cq (co,cp) = if ((cp >= cl))
385- then co
382+ func cp (cn,co) = if ((co >= ck))
383+ then cn
386384 else throw("List size exceeds 10")
387385
388- cq(cn(cn(cn(cn(cn(cn(cn(cn(cn(cn(cm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
386+ cp(cm(cm(cm(cm(cm(cm(cm(cm(cm(cm(cl, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
389387 }
390388
391389
392-func cr (cf) = ((cf * 20) * (ce(cf) + 4))
390+func cq (ce) = ((ce * 20) * (cd(ce) + 4))
393391
394392
395-func cs (cf,ct) = {
396- let cu = cr(cf)
397- $Tuple2(fraction(cu, (bm + ct), bm), cu)
393+func cr (ce,cs) = {
394+ let ct = cq(ce)
395+ $Tuple2(fraction(ct, (bm + cs), bm), ct)
398396 }
399397
400398
401-func cv (cw,J) = {
402- let cx = valueOrElse(getInteger(J, bP), 0)
403- let cy = valueOrElse(getInteger(J, bN(cw)), 0)
404- let cz = valueOrElse(getInteger(J, cc(cw)), 0)
405- let cA = cs(cy, cz)
406- let cB = cA._1
407- let cC = cA._2
408-[cx, cB, cC, cz]
399+func cu (cv,J) = {
400+ let cw = valueOrElse(getInteger(J, bP), 0)
401+ let cx = valueOrElse(getInteger(J, bN(cv)), 0)
402+ let cy = valueOrElse(getInteger(J, cb(cv)), 0)
403+ let cz = cr(cx, cy)
404+ let cA = cz._1
405+ let cB = cz._2
406+[cw, cA, cB, cy]
409407 }
410408
411409
412-let cD = 0
410+let cC = 0
413411
414-let cE = 1
412+let cD = 1
415413
416-func cF (cG,cH,cI,cJ) = {
417- let bH = valueOrErrorMessage(getInteger(cH[bS], bL), "WLGOLD is not issued yet")
418- let cK = assetBalance(cH[bQ], cI)
419- let cL = (assetBalance(cH[bS], cI) - cJ)
420- let cM = assetBalance(cH[bT], cI)
421- let cN = assetBalance(cH[bR], cI)
422- let cO = cH[bU]
423- let cP = (assetBalance(cO, cI) + valueOrElse(getInteger(cO, bM), 0))
424- let cQ = ((cN + cL) + cP)
425- let cR = valueOrErrorMessage(getBinary(cH[bS], "wlg_assetId"), "Not initialized yet")
426- let cS = lastBlock.timestamp
427- let cT = valueOrErrorMessage(getInteger(cH[bS], bK), "Not initialized")
428- let cU = assetBalance(cH[bS], cR)
429- let cV = fraction(bH, bo, bm)
430- let cW = valueOrElse(getInteger(cH[bS], bB), cV)
431- let cX = valueOrElse(getInteger(cH[bS], bA), cT)
432- let cY = addressFromStringValue(value(getString(cH[bS], bz)))
433- let cZ = min([fraction(cV, (cS - cX), (3 * br)), cW])
434- let da = assetBalance(cY, cR)
435- let db = fraction(bH, bp, bm)
436- let dc = valueOrElse(getInteger(cH[bS], bD), db)
437- let dd = valueOrElse(getInteger(cH[bS], bC), cT)
438- let de = min([fraction(db, (cS - dd), (3 * br)), dc])
439- let df = assetBalance(cH[bQ], cR)
440- let dg = valueOrElse(getInteger(cH[bS], bF(cG)), cT)
441- let dh = ((dg - cT) / br)
442- let di = min([cS, (cT + (3 * br))])
443- let dj = min([((cS - cT) / br), 2])
444- let dk = cv(cG, cH[bR])
445- let dl = bG(bH, dj)
446- let dm = (cT + (br * dj))
447- let dn = (cT + (br * (dj - 1)))
448- let do = fraction(dl, (di - dg), br)
449- let dp = if ((dh == dj))
450- then do
451- else if ((dh == (dj - 1)))
414+func cE (cF,cG,cH,cI) = {
415+ let bH = valueOrErrorMessage(getInteger(cG[bS], bL), "WLGOLD is not issued yet")
416+ let cJ = assetBalance(cG[bQ], cH)
417+ let cK = (assetBalance(cG[bS], cH) - cI)
418+ let cL = assetBalance(cG[bT], cH)
419+ let cM = assetBalance(cG[bR], cH)
420+ let cN = cG[bU]
421+ let cO = (assetBalance(cN, cH) + valueOrElse(getInteger(cN, bM), 0))
422+ let cP = ((cM + cK) + cO)
423+ let cQ = valueOrErrorMessage(getBinary(cG[bS], "wlg_assetId"), "Not initialized yet")
424+ let cR = lastBlock.timestamp
425+ let cS = valueOrErrorMessage(getInteger(cG[bS], bK), "Not initialized")
426+ let cT = assetBalance(cG[bS], cQ)
427+ let cU = fraction(bH, bo, bm)
428+ let cV = valueOrElse(getInteger(cG[bS], bB), cU)
429+ let cW = valueOrElse(getInteger(cG[bS], bA), cS)
430+ let cX = addressFromStringValue(value(getString(cG[bS], bz)))
431+ let cY = min([fraction(cU, (cR - cW), (3 * br)), cV])
432+ let cZ = assetBalance(cX, cQ)
433+ let da = fraction(bH, bp, bm)
434+ let db = valueOrElse(getInteger(cG[bS], bD), da)
435+ let dc = valueOrElse(getInteger(cG[bS], bC), cS)
436+ let dd = min([fraction(da, (cR - dc), (3 * br)), db])
437+ let de = assetBalance(cG[bQ], cQ)
438+ let df = valueOrElse(getInteger(cG[bS], bF(cF)), cS)
439+ let dg = ((df - cS) / br)
440+ let dh = min([cR, (cS + (3 * br))])
441+ let di = min([((cR - cS) / br), 2])
442+ let dj = cu(cF, cG[bR])
443+ let dk = bG(bH, di)
444+ let dl = (cS + (br * di))
445+ let dm = (cS + (br * (di - 1)))
446+ let dn = fraction(dk, (dh - df), br)
447+ let do = if ((dg == di))
448+ then dn
449+ else if ((dg == (di - 1)))
452450 then {
453- let dq = fraction(bG(bH, (dj - 1)), (dm - dg), br)
454- (dq + do)
451+ let dp = fraction(bG(bH, (di - 1)), (dl - df), br)
452+ (dp + dn)
455453 }
456454 else {
457- let dr = fraction(bG(bH, (dj - 2)), (dn - dg), br)
458- let dq = bG(bH, (dj - 1))
459- ((dr + dq) + do)
455+ let dq = fraction(bG(bH, (di - 2)), (dm - df), br)
456+ let dp = bG(bH, (di - 1))
457+ ((dq + dp) + dn)
460458 }
461- let ds = valueOrElse(getInteger(cH[bS], bE), 0)
462- let dt = if ((dk[cD] != 0))
463- then fraction(dp, dk[cE], dk[cD])
459+ let dr = valueOrElse(getInteger(cG[bS], bE), 0)
460+ let ds = if ((dj[cC] != 0))
461+ then fraction(do, dj[cD], dj[cC])
464462 else 0
465- let du = valueOrElse(getInteger(cH[bS], bJ), bx)
466- let dv = fraction(bt, max([(cS - du), 0]), bs)
467- let dw = fraction(dv, bv, bm)
468- let dx = fraction(dv, bw, bm)
469- let dy = max([(cS - max([bx, dg])), 0])
470- let dz = if ((dk[cD] != 0))
471- then fraction(fraction(fraction(bt, dy, bs), dk[cE], dk[cD]), bu, bm)
463+ let dt = valueOrElse(getInteger(cG[bS], bJ), bx)
464+ let du = fraction(bt, max([(cR - dt), 0]), bs)
465+ let dv = fraction(du, bv, bm)
466+ let dw = fraction(du, bw, bm)
467+ let dx = max([(cR - max([bx, df])), 0])
468+ let dy = if ((dj[cC] != 0))
469+ then fraction(fraction(fraction(bt, dx, bs), dj[cD], dj[cC]), bu, bm)
472470 else 0
473- let dA = max([bx, cS])
474- let dB = valueOrElse(getInteger(cH[bR], bO), 0)
475- let dC = valueOrElse(getInteger(cH[bR], bY), 0)
476- let dD = valueOrElse(getInteger(cH[bR], bZ), 0)
477- let dE = valueOrElse(getInteger(cH[bR], ca), 0)
478- let dF = valueOrElse(getInteger(cH[bR], cb(valueOrElse(cG, ""))), 0)
479-[bH, cU, fraction(cQ, bn, bH), cQ, cK, cN, cL, cM, cT, cX, cV, cW, cZ, da, db, dc, de, df, dj, ds, dl, dg, cP, dt, di, dv, dw, dx, dz, dA, dk[cD], dB, dC, dD, dE, dF]
471+ let dz = max([bx, cR])
472+ let dA = valueOrElse(getInteger(cG[bR], bO), 0)
473+ let dB = valueOrElse(getInteger(cG[bR], bX), 0)
474+ let dC = valueOrElse(getInteger(cG[bR], bY), 0)
475+ let dD = valueOrElse(getInteger(cG[bR], bZ), 0)
476+ let dE = valueOrElse(getInteger(cG[bR], ca(valueOrElse(cF, ""))), 0)
477+[bH, cT, fraction(cP, bn, bH), cP, cJ, cM, cK, cL, cS, cW, cU, cV, cY, cZ, da, db, dd, de, di, dr, dk, df, cO, ds, dh, du, dv, dw, dy, dz, dj[cC], dA, dB, dC, dD, dE]
480478 }
481479
482480
483-let dG = "profitAddr"
481+let dF = "profitAddr"
484482
485-let dH = "stakersAmountPaidTotal"
483+let dG = "stakersAmountPaidTotal"
486484
487-func dI (O) = ("stakersAmountPaidUser_" + O)
485+func dH (O) = ("stakersAmountPaidUser_" + O)
488486
489487
490-func dJ () = at(reentrantInvoke(J, "saveLastTx", nil, nil))
488+func dI () = at(reentrantInvoke(J, "saveLastTx", nil, nil))
491489
492490
493-func dK (O) = {
494- let dL = valueOrElse(getInteger(be(O)), 0)
495- let dM = valueOrElse(getInteger(J, bi(O)), 0)
496- let dN = valueOrElse(getInteger(bf(O)), dM)
497- let dO = (dN + fraction(dM, (lastBlock.timestamp - dL), e))
498- min([dO, dM])
491+func dJ (O) = {
492+ let dK = valueOrElse(getInteger(be(O)), 0)
493+ let dL = valueOrElse(getInteger(J, bi(O)), 0)
494+ let dM = valueOrElse(getInteger(bf(O)), dL)
495+ let dN = (dM + fraction(dL, (lastBlock.timestamp - dK), e))
496+ min([dN, dL])
499497 }
500498
501499
502-func dP (O) = {
503- let dQ = cF(O, [I, J, K, L, M], k, 0)
504- let dR = bF(O)
505- let dg = valueOrElse(getInteger(dR), 0)
506- let dS = dQ[an]
507- if ((dg == dS))
500+func dO (O) = {
501+ let dP = cE(O, [I, J, K, L, M], k, 0)
502+ let dQ = bF(O)
503+ let df = valueOrElse(getInteger(dQ), 0)
504+ let dR = dP[an]
505+ if ((df == dR))
508506 then $Tuple2(nil, 0)
509507 else {
510- let cS = lastBlock.timestamp
511- let cT = dQ[ag]
512- let cW = dQ[ah]
513- let dT = (dQ[ai] + dQ[aq])
514- let dU = if ((dT > 0))
515- then [ScriptTransfer(addressFromStringValue(value(getString(aY))), dT, Q)]
508+ let cR = lastBlock.timestamp
509+ let cS = dP[ag]
510+ let cV = dP[ah]
511+ let dS = (dP[ai] + dP[aq])
512+ let dT = if ((dS > 0))
513+ then [ScriptTransfer(addressFromStringValue(value(getString(aY))), dS, Q)]
516514 else nil
517- let dc = dQ[aj]
518- let dV = dQ[ak]
519- let dW = if ((dV > 0))
520- then [ScriptTransfer(x, dV, Q)]
515+ let db = dP[aj]
516+ let dU = dP[ak]
517+ let dV = if ((dU > 0))
518+ then [ScriptTransfer(x, dU, Q)]
521519 else nil
522- let dX = dQ[ap]
523- let dY = if ((dX > 0))
524- then [ScriptTransfer(addressFromStringValue(value(getString(by))), dX, Q)]
520+ let dW = dP[ap]
521+ let dX = if ((dW > 0))
522+ then [ScriptTransfer(addressFromStringValue(value(getString(by))), dW, Q)]
525523 else nil
526- let dt = dQ[am]
527- let dZ = dI(O)
528- let ea = (dt + dQ[ar])
529- let eb = dQ[ao]
530- $Tuple2(((([Reissue(Q, eb, true), IntegerEntry(bh, (dQ[ad] + eb)), IntegerEntry(bJ, dQ[as]), IntegerEntry(dZ, (valueOrElse(getInteger(dZ), 0) + dt)), IntegerEntry(dH, (valueOrElse(getInteger(dH), 0) + dt)), IntegerEntry(bd, (dQ[al] - dt)), IntegerEntry(ba, ((cW - dT) + dQ[aq])), IntegerEntry(aZ, cS), IntegerEntry(bc, (dc - dV)), IntegerEntry(bb, cS), IntegerEntry(dR, dS)] ++ dU) ++ dW) ++ dY), ea)
524+ let ds = dP[am]
525+ let dY = dH(O)
526+ let dZ = (ds + dP[ar])
527+ let ea = dP[ao]
528+ $Tuple2(((([Reissue(Q, ea, true), IntegerEntry(bh, (dP[ad] + ea)), IntegerEntry(bJ, dP[as]), IntegerEntry(dY, (valueOrElse(getInteger(dY), 0) + ds)), IntegerEntry(dG, (valueOrElse(getInteger(dG), 0) + ds)), IntegerEntry(bd, (dP[al] - ds)), IntegerEntry(ba, ((cV - dS) + dP[aq])), IntegerEntry(aZ, cR), IntegerEntry(bc, (db - dU)), IntegerEntry(bb, cR), IntegerEntry(dQ, dR)] ++ dT) ++ dV) ++ dX), dZ)
531529 }
532530 }
533531
534532
535-func ec (O,ed) = {
536- let cS = lastBlock.timestamp
537- let ee = bl(O)
538- let ef = bj(O)
539- let dL = valueOrElse(getInteger(ee), 0)
540- let eg = valueOrElse(getInteger(ef), 0)
541- let eh = valueOrElse(getInteger(bk), 0)
542- let aQ = fraction(fraction(aO, eg, aL), (dL - cS), aX)
543- $Tuple3([IntegerEntry(ee, cS), IntegerEntry(ef, (eg + ed)), IntegerEntry(bk, (eh + ed))], aQ, eg)
533+func eb (O,ec) = {
534+ let cR = lastBlock.timestamp
535+ let ed = bl(O)
536+ let ee = bj(O)
537+ let dK = valueOrElse(getInteger(ed), 0)
538+ let ef = valueOrElse(getInteger(ee), 0)
539+ let eg = valueOrElse(getInteger(bk), 0)
540+ let aQ = fraction(fraction(aO, ef, aL), (dK - cR), aX)
541+ $Tuple3([IntegerEntry(ed, cR), IntegerEntry(ee, (ef + ec)), IntegerEntry(bk, (eg + ec))], aQ, ef)
544542 }
545543
546544
547-func ei (O) = {
545+func eh (O) = {
548546 let T = (height / i)
549- let ej = (T - 1)
550- let ek = valueOrElse(getInteger(W(ej)), bW)
551- let el = valueOrElse(getInteger(X(ej)), 0)
552- let em = valueOrElse(getInteger(S(O, ej)), 0)
553- if ((0 >= em))
547+ let ei = (T - 1)
548+ let ej = valueOrElse(getInteger(W(ei)), bV)
549+ let ek = valueOrElse(getInteger(X(ei)), 0)
550+ let el = valueOrElse(getInteger(S(O, ei)), 0)
551+ if ((0 >= el))
554552 then $Tuple2(nil, unit)
555553 else {
556- let en = valueOrElse(getInteger(U(ej)), 0)
557- if ((0 >= en))
558- then $Tuple2([DeleteEntry(S(O, ej))], unit)
554+ let em = valueOrElse(getInteger(U(ei)), 0)
555+ if ((0 >= em))
556+ then $Tuple2([DeleteEntry(S(O, ei))], unit)
559557 else {
560558 let aF = value(value(blockInfoByHeight((T * i))).vrf)
561559 let aE = fromBase58String(split(valueOrElse(getString(J, N(O)), "42_DEFAULT"), "_")[1])
562- let eo = aC(en, aE, aF)
563- if (((em * ek) > eo))
560+ let en = aC(em, aE, aF)
561+ if (((el * ej) > en))
564562 then {
565- let ep = invoke(J, "issueNFT", [O, bV], nil)
566- let eq = getString(Y(ej))
567- let er = if (isDefined(eq))
568- then ((value(eq) + "_") + O)
563+ let eo = invoke(J, "issuePickC1", [O], nil)
564+ let ep = getString(Y(ei))
565+ let eq = if (isDefined(ep))
566+ then ((value(ep) + "_") + O)
569567 else O
570- $Tuple2([IntegerEntry(X(ej), (el + 1)), DeleteEntry(S(O, ej)), StringEntry(Y(ej), er)], ep)
568+ $Tuple2([IntegerEntry(X(ei), (ek + 1)), DeleteEntry(S(O, ei)), StringEntry(Y(ei), eq)], eo)
571569 }
572570 else {
573- let es = (aC(9, (base58'29' + aE), aF) + 1)
574- let et = fraction(em, es, 10)
575- let eu = S(O, T)
576- let ev = valueOrElse(getInteger(eu), 0)
577- $Tuple2(((if ((et == 0))
571+ let er = (aC(9, (base58'29' + aE), aF) + 1)
572+ let es = fraction(el, er, 10)
573+ let et = S(O, T)
574+ let eu = valueOrElse(getInteger(et), 0)
575+ $Tuple2(((if ((es == 0))
578576 then nil
579577 else {
580- let ew = [IntegerEntry(U(T), (valueOrElse(getInteger(U(T)), 0) + et)), IntegerEntry(eu, (ev + et))]
581- if ((ev > 0))
582- then ew
583- else (ew :+ IntegerEntry(V(T), (valueOrElse(getInteger(V(T)), 0) + 1)))
584- }) :+ DeleteEntry(S(O, ej))), et)
578+ let ev = [IntegerEntry(U(T), (valueOrElse(getInteger(U(T)), 0) + es)), IntegerEntry(et, (eu + es))]
579+ if ((eu > 0))
580+ then ev
581+ else (ev :+ IntegerEntry(V(T), (valueOrElse(getInteger(V(T)), 0) + 1)))
582+ }) :+ DeleteEntry(S(O, ei))), es)
585583 }
586584 }
587585 }
588586 }
589587
590588
591-func ex (O,ey) = {
589+func ew (O,ex) = {
592590 let T = (height / i)
593- let eu = S(O, T)
594- let ez = split(ey, "_")
595- let eA = valueOrElse(getInteger(U(T)), 0)
596- let ev = valueOrElse(getInteger(eu), 0)
597- let eB = if ((Z(parseIntValue(ez[0])) == parseIntValue(ez[1])))
591+ let et = S(O, T)
592+ let ey = split(ex, "_")
593+ let ez = valueOrElse(getInteger(U(T)), 0)
594+ let eu = valueOrElse(getInteger(et), 0)
595+ let eA = if ((Z(parseIntValue(ey[0])) == parseIntValue(ey[1])))
598596 then 1
599597 else 0
600- let eC = valueOrElse(getInteger(V(T)), 0)
601- let eD = if (if ((ev == 0))
602- then (eB == 1)
598+ let eB = valueOrElse(getInteger(V(T)), 0)
599+ let eC = if (if ((eu == 0))
600+ then (eA == 1)
603601 else false)
604- then [IntegerEntry(V(T), (eC + 1))]
602+ then [IntegerEntry(V(T), (eB + 1))]
605603 else nil
606- $Tuple2(if ((eB == 0))
604+ $Tuple2(if ((eA == 0))
607605 then nil
608- else ((eD :+ IntegerEntry(eu, (ev + eB))) :+ IntegerEntry(U(T), (eA + eB))), eB)
606+ else ((eC :+ IntegerEntry(et, (eu + eA))) :+ IntegerEntry(U(T), (ez + eA))), eA)
609607 }
610608
611609
612-@Callable(eE)
613-func constructorV1 (eF,eG,cY,eH) = if ((eE.caller != this))
610+@Callable(eD)
611+func constructorV1 (eE,eF,cX,eG) = if ((eD.caller != this))
614612 then throw("Permission denied")
615613 else if (isDefined(getBinary(P)))
616614 then throw("Already initialized")
617615 else {
618616 let bH = aV
619- let eI = Issue("WLGOLD", "WavesLands Gold investment token", bH, 8, true, unit, 0)
620- let eJ = calculateAssetId(eI)
621-[eI, IntegerEntry(bg, lastBlock.timestamp), IntegerEntry(bh, bH), IntegerEntry(dH, 0), IntegerEntry(bd, fraction(aV, aW, b)), BinaryEntry(P, eJ), StringEntry(w(), eF), StringEntry(by, eG), StringEntry(aY, cY), StringEntry(dG, eH)]
617+ let eH = Issue("WLGOLD", "WavesLands Gold investment token", bH, 8, true, unit, 0)
618+ let eI = calculateAssetId(eH)
619+[eH, IntegerEntry(bg, lastBlock.timestamp), IntegerEntry(bh, bH), IntegerEntry(dG, 0), IntegerEntry(bd, fraction(aV, aW, b)), BinaryEntry(P, eI), StringEntry(w(), eE), StringEntry(by, eF), StringEntry(aY, cX), StringEntry(dF, eG)]
622620 }
623621
624622
625623
626-@Callable(eE)
627-func constructorV2 (eK) = if ((eE.caller != this))
624+@Callable(eD)
625+func constructorV2 (eJ) = if ((eD.caller != this))
628626 then throw("Permission denied")
629- else [StringEntry(v(), eK)]
627+ else [StringEntry(v(), eJ)]
630628
631629
632630
633-@Callable(eE)
634-func buyWlg (eL) = {
635- let eM = dJ()
636- if ((eM == eM))
637- then if ((size(eE.payments) != 1))
631+@Callable(eD)
632+func buyWlg (eK) = {
633+ let eL = dI()
634+ if ((eL == eL))
635+ then if ((size(eD.payments) != 1))
638636 then throw("exactly 1 payment must be attached")
639637 else {
640- let eN = eE.payments[0]
641- let eO = eN.amount
642- if (if (!(isDefined(eN.assetId)))
638+ let eM = eD.payments[0]
639+ let eN = eM.amount
640+ if (if (!(isDefined(eM.assetId)))
643641 then true
644- else (value(eN.assetId) != k))
642+ else (value(eM.assetId) != k))
645643 then throw("USDT payments only!")
646644 else {
647- let eP = eE.caller
648- let O = toString(eP)
649- if ((d > eO))
645+ let eO = eD.caller
646+ let O = toString(eO)
647+ if ((d > eN))
650648 then throw((("You can trade min " + aw(d, 6)) + " USDT"))
651649 else {
652- let dQ = cF("", [I, J, K, L, M], k, eO)
653- let eQ = dQ[ad]
654- let eR = dQ[af]
655- let eS = fraction(eR, 6, 5, CEILING)
656- let eT = fraction(eO, c, eS)
657- let eU = dK(O)
658- if ((eT > eU))
659- then throw((("You can get max " + aw(eU, 8)) + " WLGOLD at the moment"))
660- else if ((eL > eT))
650+ let dP = cE("", [I, J, K, L, M], k, eN)
651+ let eP = dP[ad]
652+ let eQ = dP[af]
653+ let eR = fraction(eQ, 6, 5, CEILING)
654+ let eS = fraction(eN, c, eR)
655+ let eT = dJ(O)
656+ if ((eS > eT))
657+ then throw((("You can get max " + aw(eT, 8)) + " WLGOLD at the moment"))
658+ else if ((eK > eS))
661659 then throw("Price changed during operation, please try again")
662660 else {
663- let eV = (eO / 6)
664- $Tuple2([Reissue(Q, eT, true), IntegerEntry(bh, (eQ + eT)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eU - eT)), ScriptTransfer(addressFromStringValue(value(getString(dG))), eV, k), ScriptTransfer(eP, eT, Q)], eM)
661+ let eU = (eN / 6)
662+ $Tuple2([Reissue(Q, eS, true), IntegerEntry(bh, (eP + eS)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eT - eS)), ScriptTransfer(addressFromStringValue(value(getString(dF))), eU, k), ScriptTransfer(eO, eS, Q)], eL)
665663 }
666664 }
667665 }
668666 }
669667 else throw("Strict value is not equal to itself.")
670668 }
671669
672670
673671
674-@Callable(eE)
675-func buyWlgREADONLY (o,eO) = {
676- let dQ = cF("", [I, J, K, L, M], k, eO)
677- let eR = dQ[af]
678- let eS = fraction(eR, 6, 5, CEILING)
679- let eT = fraction(eO, c, eS)
680- let eU = dK(o)
681- let eW = fraction(eU, eS, c)
682- let eV = (eO / 6)
683- $Tuple2(nil, [eT, d, eW, eV])
672+@Callable(eD)
673+func buyWlgREADONLY (o,eN) = {
674+ let dP = cE("", [I, J, K, L, M], k, eN)
675+ let eQ = dP[af]
676+ let eR = fraction(eQ, 6, 5, CEILING)
677+ let eS = fraction(eN, c, eR)
678+ let eT = dJ(o)
679+ let eV = fraction(eT, eR, c)
680+ let eU = (eN / 6)
681+ $Tuple2(nil, [eS, d, eV, eU])
684682 }
685683
686684
687685
688-@Callable(eE)
689-func sellWlg (eX) = {
690- let eM = dJ()
691- if ((eM == eM))
692- then if ((size(eE.payments) != 1))
686+@Callable(eD)
687+func sellWlg (eW) = {
688+ let eL = dI()
689+ if ((eL == eL))
690+ then if ((size(eD.payments) != 1))
693691 then throw("exactly 1 payment must be attached")
694692 else {
695- let eN = eE.payments[0]
696- let eY = eN.amount
697- let eP = eE.caller
698- let O = toString(eP)
699- let eU = dK(O)
700- if ((eY > eU))
701- then throw((("You can spend max " + aw(eU, 8)) + " WLGOLD at the moment"))
702- else if (if (!(isDefined(eN.assetId)))
693+ let eM = eD.payments[0]
694+ let eX = eM.amount
695+ let eO = eD.caller
696+ let O = toString(eO)
697+ let eT = dJ(O)
698+ if ((eX > eT))
699+ then throw((("You can spend max " + aw(eT, 8)) + " WLGOLD at the moment"))
700+ else if (if (!(isDefined(eM.assetId)))
703701 then true
704- else (value(eN.assetId) != Q))
702+ else (value(eM.assetId) != Q))
705703 then throw("WLGOLD payments only!")
706704 else {
707- let dQ = cF("", [I, J, K, L, M], k, 0)
708- let eQ = dQ[ad]
709- let eZ = (dQ[af] / 2)
710- let eO = fraction(eY, eZ, c)
711- if ((d > eO))
705+ let dP = cE("", [I, J, K, L, M], k, 0)
706+ let eP = dP[ad]
707+ let eY = (dP[af] / 2)
708+ let eN = fraction(eX, eY, c)
709+ if ((d > eN))
712710 then throw((("You can trade min " + aw(d, 6)) + " USDT"))
713- else if ((eX > eO))
711+ else if ((eW > eN))
714712 then throw("Price changed during operation, please try again")
715713 else {
716- let eV = (eO / 5)
717- $Tuple2([Burn(Q, eY), IntegerEntry(bh, (eQ - eY)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eU - eY)), ScriptTransfer(addressFromStringValue(value(getString(dG))), eV, k), ScriptTransfer(eP, eO, k)], eM)
714+ let eU = (eN / 5)
715+ $Tuple2([Burn(Q, eX), IntegerEntry(bh, (eP - eX)), IntegerEntry(be(O), lastBlock.timestamp), IntegerEntry(bf(O), (eT - eX)), ScriptTransfer(addressFromStringValue(value(getString(dF))), eU, k), ScriptTransfer(eO, eN, k)], eL)
718716 }
719717 }
720718 }
721719 else throw("Strict value is not equal to itself.")
722720 }
723721
724722
725723
726-@Callable(eE)
727-func sellWlgREADONLY (o,eY) = {
728- let eU = dK(o)
729- let dQ = cF("", [I, J, K, L, M], k, 0)
730- let eZ = (dQ[af] / 2)
731- let eO = fraction(eY, eZ, c)
732- let fa = fraction(d, c, eZ)
733- let eV = (eO / 5)
734- $Tuple2(nil, [eO, fa, eU, eV])
724+@Callable(eD)
725+func sellWlgREADONLY (o,eX) = {
726+ let eT = dJ(o)
727+ let dP = cE("", [I, J, K, L, M], k, 0)
728+ let eY = (dP[af] / 2)
729+ let eN = fraction(eX, eY, c)
730+ let eZ = fraction(d, c, eY)
731+ let eU = (eN / 5)
732+ $Tuple2(nil, [eN, eZ, eT, eU])
735733 }
736734
737735
738736
739-@Callable(eE)
737+@Callable(eD)
740738 func claim () = {
741- let eM = dJ()
742- if ((eM == eM))
743- then if ((size(eE.payments) != 0))
739+ let eL = dI()
740+ if ((eL == eL))
741+ then if ((size(eD.payments) != 0))
744742 then throw("No payments required")
745743 else {
746- let fb = dP(toString(eE.caller))
747- let fc = fb._1
748- let fd = fb._2
749- $Tuple2((fc :+ ScriptTransfer(eE.caller, fd, Q)), eM)
744+ let fa = dO(toString(eD.caller))
745+ let fb = fa._1
746+ let fc = fa._2
747+ $Tuple2((fb :+ ScriptTransfer(eD.caller, fc, Q)), eL)
750748 }
751749 else throw("Strict value is not equal to itself.")
752750 }
753751
754752
755753
756-@Callable(eE)
757-func onStakeUnstakeLand (O) = if (if (if ((eE.caller != G))
758- then (eE.caller != H)
754+@Callable(eD)
755+func onStakeUnstakeLand (O) = if (if (if ((eD.caller != G))
756+ then (eD.caller != H)
759757 else false)
760- then (eE.caller != J)
758+ then (eD.caller != J)
761759 else false)
762760 then throw("Permission denied")
763761 else {
764- let fe = dP(O)
765- let fc = fe._1
766- let fd = fe._2
767- $Tuple2(if ((fd > 0))
768- then (fc :+ ScriptTransfer(addressFromStringValue(O), fd, Q))
769- else fc, fd)
762+ let fd = dO(O)
763+ let fb = fd._1
764+ let fc = fd._2
765+ $Tuple2(if ((fc > 0))
766+ then (fb :+ ScriptTransfer(addressFromStringValue(O), fc, Q))
767+ else fb, fc)
770768 }
771769
772770
773771
774-@Callable(eE)
775-func burnWlgold (eY) = if ((eE.caller != J))
772+@Callable(eD)
773+func burnWlgold (eX) = if ((eD.caller != J))
776774 then throw("Permission denied")
777775 else {
778- let dQ = cF("", [I, J, K, L, M], k, 0)
779- if ((eY > dQ[ae]))
780- then throw(((("Only " + aw(dQ[ae], 8)) + " WLGOLD left on contract, can't burn ") + aw(eY, 8)))
776+ let dP = cE("", [I, J, K, L, M], k, 0)
777+ if ((eX > dP[ae]))
778+ then throw(((("Only " + aw(dP[ae], 8)) + " WLGOLD left on contract, can't burn ") + aw(eX, 8)))
781779 else {
782- let ff = (dQ[ad] - eY)
783- $Tuple2([Burn(Q, eY), IntegerEntry(bh, ff)], ff)
780+ let fe = (dP[ad] - eX)
781+ $Tuple2([Burn(Q, eX), IntegerEntry(bh, fe)], fe)
784782 }
785783 }
786784
787785
788786
789-@Callable(eE)
790-func betForTicket (fg) = {
791- let eM = dJ()
792- if ((eM == eM))
793- then if ((size(eE.payments) != 0))
787+@Callable(eD)
788+func betForTicket (ff) = {
789+ let eL = dI()
790+ if ((eL == eL))
791+ then if ((size(eD.payments) != 0))
794792 then throw("No payments required")
795793 else {
796- let O = toString(eE.caller)
797- let ej = ((height / i) - 1)
798- let em = valueOrElse(getInteger(S(O, ej)), 0)
799- let en = valueOrElse(getInteger(U(ej)), 0)
800- if (if ((em > 0))
801- then (en > 0)
794+ let O = toString(eD.caller)
795+ let ei = ((height / i) - 1)
796+ let el = valueOrElse(getInteger(S(O, ei)), 0)
797+ let em = valueOrElse(getInteger(U(ei)), 0)
798+ if (if ((el > 0))
799+ then (em > 0)
802800 else false)
803801 then throw("Please open the chest first")
804- else if (((fg / 4) != 0))
802+ else if (((ff / 4) != 0))
805803 then throw("Invalid bet: should be 0..3")
806804 else {
807- let fh = (height % g)
808- if ((fh > (g - 3)))
809- then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - fh))) + " blocks"))
805+ let fg = (height % g)
806+ if ((fg > (g - 3)))
807+ then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - fg))) + " blocks"))
810808 else {
811- let fi = valueOrElse(getInteger(J, bN(O)), 0)
812- if ((bX > fi))
813- then throw((("You need to stake at least " + aw(bX, 8)) + " ACRES to bet"))
809+ let fh = valueOrElse(getInteger(J, bN(O)), 0)
810+ if ((bW > fh))
811+ then throw((("You need to stake at least " + aw(bW, 8)) + " ACRES to bet"))
814812 else {
815- let fj = ((height / g) + 1)
816- let fk = R(O)
817- let fl = getString(fk)
818- let fm = StringEntry(fk, ((toString(fj) + "_") + toString(fg)))
819- if (isDefined(fl))
813+ let fi = ((height / g) + 1)
814+ let fj = R(O)
815+ let fk = getString(fj)
816+ let fl = StringEntry(fj, ((toString(fi) + "_") + toString(ff)))
817+ if (isDefined(fk))
820818 then {
821- let fn = value(fl)
822- if ((split(fn, "_")[0] == toString(fj)))
819+ let fm = value(fk)
820+ if ((split(fm, "_")[0] == toString(fi)))
823821 then throw("You already bet for tomorrow")
824822 else {
825- let fo = ex(O, fn)
826- $Tuple2((fo._1 :+ fm), fo._2)
823+ let fn = ew(O, fm)
824+ $Tuple2((fn._1 :+ fl), fn._2)
827825 }
828826 }
829- else $Tuple2([fm], 0)
827+ else $Tuple2([fl], 0)
830828 }
831829 }
832830 }
833831 }
834832 else throw("Strict value is not equal to itself.")
835833 }
836834
837835
838836
839-@Callable(eE)
840-func takeWlgXp (O) = if ((eE.caller != G))
837+@Callable(eD)
838+func takeWlgXp (O) = if ((eD.caller != G))
841839 then throw("Permission denied")
842840 else {
843- let fp = ec(O, 0)
844- let fc = fp._1
845- let aQ = fp._2
846- $Tuple2(fc, aQ)
841+ let fo = eb(O, 0)
842+ let fb = fo._1
843+ let aQ = fo._2
844+ $Tuple2(fb, aQ)
847845 }
848846
849847
850848
851-@Callable(eE)
849+@Callable(eD)
852850 func checkWlgXpREADONLY (O) = {
853- let fq = ec(O, 0)
854- let fr = fq._1
855- let fs = fq._2
856- let aT = (valueOrElse(getInteger(G, aM(O)), 0) + fs)
857- let ft = aR(valueOrElse(getInteger(G, aN(O)), 0), aT)
858- $Tuple2(nil, (ft :+ aT))
851+ let fp = eb(O, 0)
852+ let fq = fp._1
853+ let fr = fp._2
854+ let aT = (valueOrElse(getInteger(G, aM(O)), 0) + fr)
855+ let fs = aR(valueOrElse(getInteger(G, aN(O)), 0), aT)
856+ $Tuple2(nil, (fs :+ aT))
859857 }
860858
861859
862860
863-@Callable(eE)
864-func setNumPrizes (ek) = if ((eE.caller != this))
861+@Callable(eD)
862+func setNumPrizes (ej) = if ((eD.caller != this))
865863 then throw("Permission denied")
866864 else {
867865 let T = (height / i)
868- $Tuple2([IntegerEntry(W(T), ek)], ek)
866+ $Tuple2([IntegerEntry(W(T), ej)], ej)
869867 }
870868
871869
872870
873-@Callable(eE)
871+@Callable(eD)
874872 func openChest () = {
875- let eM = dJ()
876- if ((eM == eM))
877- then if ((size(eE.payments) != 0))
873+ let eL = dI()
874+ if ((eL == eL))
875+ then if ((size(eD.payments) != 0))
878876 then throw("No payments required")
879877 else {
880- let ej = ((height / i) - 1)
881- let O = toString(eE.caller)
882- let em = valueOrElse(getInteger(S(O, ej)), 0)
883- if ((0 >= em))
878+ let ei = ((height / i) - 1)
879+ let O = toString(eD.caller)
880+ let el = valueOrElse(getInteger(S(O, ei)), 0)
881+ if ((0 >= el))
884882 then throw("No gems to open the chest")
885- else ei(O)
883+ else eh(O)
886884 }
887885 else throw("Strict value is not equal to itself.")
888886 }
889887
890888
891889
892-@Callable(eE)
893-func addGemsFor (O,eB) = if ((eE.caller != this))
890+@Callable(eD)
891+func addGemsFor (O,eA) = if ((eD.caller != this))
894892 then throw("Permission denied")
895893 else {
896894 let T = (height / i)
897- let eu = S(O, T)
898- let eA = valueOrElse(getInteger(U(T)), 0)
899- let ev = valueOrElse(getInteger(eu), 0)
900- let eC = valueOrElse(getInteger(V(T)), 0)
901- let eD = if (if ((ev == 0))
902- then (eB == 1)
895+ let et = S(O, T)
896+ let ez = valueOrElse(getInteger(U(T)), 0)
897+ let eu = valueOrElse(getInteger(et), 0)
898+ let eB = valueOrElse(getInteger(V(T)), 0)
899+ let eC = if (if ((eu == 0))
900+ then (eA == 1)
903901 else false)
904- then [IntegerEntry(V(T), (eC + 1))]
902+ then [IntegerEntry(V(T), (eB + 1))]
905903 else nil
906- $Tuple2(((eD :+ IntegerEntry(eu, (ev + eB))) :+ IntegerEntry(U(T), (eA + eB))), eB)
904+ $Tuple2(((eC :+ IntegerEntry(et, (eu + eA))) :+ IntegerEntry(U(T), (ez + eA))), eA)
907905 }
908906
909907

github/deemru/w8io/026f985 
231.89 ms