tx · 6jygPk1vZcRyMffmD1MKm9JxZjpRvBvBmgr4UXMauREN

3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy:  -0.03600000 Waves

2024.12.05 07:11 [3400835] smart account 3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy > SELF 0.00000000 Waves

{ "type": 13, "id": "6jygPk1vZcRyMffmD1MKm9JxZjpRvBvBmgr4UXMauREN", "fee": 3600000, "feeAssetId": null, "timestamp": 1733371876096, "version": 2, "chainId": 84, "sender": "3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy", "senderPublicKey": "FsR18761ZAsUqsTd7TK3XmR6bhihs1UXVmpHYxz5JzQ1", "proofs": [ "4uipbyrZfMFzRAN9Efj5njH8c6rpFzQKP7CkPUa7YG1cCAfSTiR2CpDKW6wsq8SwwXh4dfFWyYctmFgj3J4nu5eE" ], "script": "base64:BgJSCAISBgoECAgICBIDCgEIEgMKAQESBAoCCAESAwoBARIECgIIARIAEgMKAQgSAwoBCBIDCgEBEgMKAQESAwoBCBIDCgEIEgMKAQESABIECgIIAbcBAANTRVACAl9fAAVNVUxUNgDAhD0ABU1VTFQ4AIDC1y8ADk1JTlNIT1BQQVlNRU5UAKCNBgAKREFZX01JTExJUwCAuJkpAAVjaGFpbgkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQAKREFZX0JMT0NLUwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMACgCwMJAAACAQFUBQckbWF0Y2gwADwJAAIBAg1Vbmtub3duIGNoYWluAAtXRUVLX0JMT0NLUwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMADgTgMJAAACAQFUBQckbWF0Y2gwALQBCQACAQINVW5rbm93biBjaGFpbgAKVlJGX09GRlNFVAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAAAAwkAAAIBAVQFByRtYXRjaDAAkPlFCQACAQINVW5rbm93biBjaGFpbgALdXNkdEFzc2V0SWQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDABIITaerIIAz9O0bvKju6Lk7zJgt0LXfoHlqjUI/moD/+5AwkAAAIBAVQFByRtYXRjaDABIFWx2J9yh4Lv5eNbjawFq2XemkOhLxa7BfMat4el8cUYCQACAQINVW5rbm93biBjaGFpbgAWZGVmYXVsdFJlc3QyQWRkcmVzc1N0cgQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAIjM1BGd1l0YThiaUV6MzF6cGVGZTVESks4d0U1dHJTcFFWRjgDCQAAAgEBVAUHJG1hdGNoMAIjM043VXVZYXI2MjY0UDU4RkJoVldLUFFBaDRZdWEyaGduZ3YJAAIBAg1Vbmtub3duIGNoYWluABVkZWZhdWx0UmVzdEFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQUUN1dkZidmg0TGtQVW5yblUxejNqbmJBMXA5bTNXTmh2AwkAAAIBAVQFByRtYXRjaDACIzNNdW1rR0d6dENLQVhwV0RxeGtkZG9mcVhTVWJxUWt2U0p5CQACAQINVW5rbm93biBjaGFpbgASZWNvbm9teUNvbnRyYWN0U3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUDJzazFLbmNTeFJhWnM4YjRDV0dQdzJqa3Z2YXY3NHU0RAMJAAACAQFUBQckbWF0Y2gwAiMzTjh5NHd4WDNKQzRUZHJDSkJYWDE2U2pXZjZYMjU2aHJlcAkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABBJZHhDZmdBY3JlczJEYXBwAAEADUlkeENmZ1dsZ0RhcHAAAgAUSWR4Q2ZnUHV6emxlUG9vbERhcHAABAAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABQEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ9rZXlSZXN0MkFkZHJlc3MAAg0lc19fcmVzdDJBZGRyAQ5rZXlSZXN0QWRkcmVzcwACDCVzX19yZXN0QWRkcgAMcmVzdENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlSZXN0QWRkcmVzcwAFFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgERcmVhZFJlc3RDZmdPckZhaWwBBHJlc3QJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHJlc3QJAQprZXlSZXN0Q2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCCHJlc3QyQ2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUIcmVzdDJDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4ABFJZHhDZmdTdGFraW5nRGFwcAABAA9JZHhDZmdBY3Jlc0RhcHAACAAHcmVzdENmZwkBEXJlYWRSZXN0Q2ZnT3JGYWlsAQUMcmVzdENvbnRyYWN0AA9zdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdTdGFraW5nRGFwcAANYWNyZXNDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFD0lkeENmZ0FjcmVzRGFwcAANcmVzdDJDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPa2V5UmVzdDJBZGRyZXNzAAUWZGVmYXVsdFJlc3QyQWRkcmVzc1N0cgAIcmVzdDJDZmcJARFyZWFkUmVzdENmZ09yRmFpbAEFDXJlc3QyQ29udHJhY3QADmFjcmVzMkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFEElkeENmZ0FjcmVzMkRhcHAAC3dsZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFDUlkeENmZ1dsZ0RhcHAAEnB1enpsZVBvb2xDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRRJZHhDZmdQdXp6bGVQb29sRGFwcAASaW52ZXN0RnVuZENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFFElkeENmZ0ludmVzdEZ1bmREYXBwARVrZXlMYXN0V2Vla1R4SWRCeVVzZXIBBGFkZHIJAKwCAgITbGFzdFdlZWtUeElkQnlVc2VyXwUEYWRkcgANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0AQprZXlVc2VyQmV0AQRhZGRyCQCsAgICCHVzZXJCZXRfBQRhZGRyARJrZXlVc2VyV2Vla1RpY2tldHMCBGFkZHIEd2VlawkArAICCQCsAgIJAKwCAgIQdXNlcldlZWtUaWNrZXRzXwUEYWRkcgIBXwkApAMBBQR3ZWVrARNrZXlUb3RhbFdlZWtUaWNrZXRzAQR3ZWVrCQCsAgICEXRvdGFsV2Vla1RpY2tldHNfCQCkAwEFBHdlZWsBGGtleVRvdGFsV2Vla1BhcnRpY2lwYW50cwEEd2VlawkArAICAhZ0b3RhbFdlZWtQYXJ0aWNpcGFudHNfCQCkAwEFBHdlZWsBDmtleU51bU5GVDJEcmF3AQR3ZWVrCQCsAgICDG51bU5GVDJEcmF3XwkApAMBBQR3ZWVrAQ5rZXlOdW1ORlREcmF3bgEEd2VlawkArAICAgxudW1ORlREcmF3bl8JAKQDAQUEd2VlawEOa2V5V2Vla1dpbm5lcnMBBHdlZWsJAKwCAgIMd2Vla1dpbm5lcnNfCQCkAwEFBHdlZWsBCndpbm5pbmdCZXQBA2RheQQBYgkAaAIFA2RheQUKREFZX0JMT0NLUwQBaAMJAGYCBQFiBQpWUkZfT0ZGU0VUBQFiCQBkAgUBYgUKVlJGX09GRlNFVAkAagIJALEJAQkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQUBaAN2cmYABAALaXhXbGdBbW91bnQAAAAIaXhXbGdXbGcAAQAKaXhXbGdQcmljZQACAA5peFdsZ0lzc3VlVGltZQAIAA9peFdsZ1RlYW1BbUxlZnQACwATaXhXbGdUZWFtQW1BdmFpbE5vdwAMAA5peFdsZ0FjdEFtTGVmdAAPABJpeFdsZ0FjdEFtQXZhaWxOb3cAEAAQaXhXbGdBbUxlZnRUb3RhbAATABNpeFdsZ1VzZXJBbUF2YWlsTm93ABcAEGl4V2xnRWZmVXNlclRpbWUAGAASaXhXbGdJc3N1ZTEwQW1vdW50ABkAG2l4V2xnTWFya2V0aW5nSXNzdWUxMEFtb3VudAAaABZpeFdsZ1RlYW1Jc3N1ZTEwQW1vdW50ABsAD2l4V2xnVXNlcjEwcGFydAAcABBpeFdsZ0lzc3VlMTBUaW1lAB0BBWFzSW50AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACA0ludAQBbgUHJG1hdGNoMAUBbgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEKZml4ZWRQb2ludAIDdmFsCGRlY2ltYWxzBAZ0ZW5Qb3cJAGwGAAoAAAUIZGVjaW1hbHMAAAAABQRET1dOBAdsb3dQYXJ0CQCkAwEJAGoCBQN2YWwFBnRlblBvdwQGemVyb2VzCQCwAgIJAKQDAQUGdGVuUG93CQBkAgABCQCxAgEFB2xvd1BhcnQJAKwCAgkArAICCQCsAgIJAKQDAQkAaQIFA3ZhbAUGdGVuUG93AgEuBQZ6ZXJvZXMFB2xvd1BhcnQBD2dldFJhbmRvbU51bWJlcgMIbWF4VmFsdWUEc2FsdAdlbnRyb3B5AwkAZwIAAAUIbWF4VmFsdWUJAAIBAhZtYXhWYWx1ZSBzaG91bGQgYmUgPiAwBApyYW5kb21IYXNoCQDUFgEJAMsBAgUEc2FsdAUHZW50cm9weQkAagIJALEJAQUKcmFuZG9tSGFzaAUIbWF4VmFsdWUABlNDQUxFOACAwtcvAAx4cExldmVsU2NhbGUAgBkAD3hwTGV2ZWxSZWNpcFBvdwCgHwASbnVtUG9pbnRzT25MZXZlbFVwAAMAD3dsZ0Jhc2VBbW91bnRYcACA0NvD9AIBCWtleVVzZXJYUAEEYWRkcgkArAICAgd1c2VyWFBfBQRhZGRyAQxrZXlVc2VyTGV2ZWwBBGFkZHIJAKwCAgIKdXNlckxldmVsXwUEYWRkcgAFeHBXbGcAkE4BCWxldmVsQnlYUAECeHAJAGsDBQx4cExldmVsU2NhbGUJAGwGBQJ4cAAEBQ94cExldmVsUmVjaXBQb3cABAAEBQRET1dOBQZTQ0FMRTgBB2xldmVsVXACCWN1cnJMZXZlbAVuZXdYUAQIbmV3TGV2ZWwJAQlsZXZlbEJ5WFABBQVuZXdYUAkAzAgCBQhuZXdMZXZlbAkAzAgCCQBoAgUSbnVtUG9pbnRzT25MZXZlbFVwCQBlAgUIbmV3TGV2ZWwFCWN1cnJMZXZlbAUDbmlsAAJNNgDAhD0AAk04AIDC1y8ACE1JTExJT042AICA6YOx3hYACVRFQU1TSEFSRQDAmgwADUFDVElWSVRZU0hBUkUAoI0GAAtQTEFZRVJTSEFSRQCAtRgACllFQVJNSUxMSVMAgIbrx3UACURBWU1JTExJUwCAuJkpAAhCQU5LX0ZFRQDQhgMAAmNoCQDJAQIJAMoBAggFBHRoaXMFYnl0ZXMAAQABABNVU0RUX1RWTF9DT1JSRUNUSU9OBAckbWF0Y2gwBQJjaAMJAAACAQFXBQckbWF0Y2gwAPD1qMAEAwkAAAIBAVQFByRtYXRjaDAAAAkAAgECDVVua25vd24gY2hhaW4AC3RlYW1BZGRyS2V5Agh0ZWFtQWRkcgAPbGFzdFRlYW1UaW1lS2V5AhRsYXN0Q2xhaW1lZFRpbWVfdGVhbQARdGVhbUFtb3VudExlZnRLZXkCDnRlYW1BbW91bnRMZWZ0ABVsYXN0QWN0aXZpdGllc1RpbWVLZXkCGmxhc3RDbGFpbWVkVGltZV9hY3Rpdml0aWVzABBhY3RBbW91bnRMZWZ0S2V5AhRhY3Rpdml0aWVzQW1vdW50TGVmdAAUc3Rha2Vyc0Ftb3VudExlZnRLZXkCEXN0YWtlcnNBbW91bnRMZWZ0ARtrZXlMYXN0Q2xhaW1lZFRpbWVCeVVzZXJPbGQBBGFkZHIJAKwCAgIXbGFzdENsYWltZWRUaW1lVXNlck9sZF8FBGFkZHIBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBGFkZHIJAKwCAgIQbGFzdEFyYlRpbWVVc2VyXwUEYWRkcgEaa2V5TGFzdFdsZ1RyYWRlTGltaXRCeVVzZXIBBGFkZHIJAKwCAgIRbGFzdFdsZ0xpbWl0VXNlcl8FBGFkZHIBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQZwZXJpb2QJAGsDBQhNSUxMSU9ONgkAaAIFC1BMQVlFUlNIQVJFCQBkAgUGcGVyaW9kAAEJAGgCAAYFAk02AA93bGdJc3N1ZVRpbWVLZXkCDXdsZ19pc3N1ZVRpbWUAEndsZ0lzc3VlZEFtb3VudEtleQIQd2xnX2lzc3VlZEFtb3VudAARemJJc3N1ZWRBbW91bnRLZXkCEnpiaWxsX2lzc3VlZEFtb3VudAEaa2V5QWNyZXNTdGFrZWRBbW91bnRCeVVzZXIBBGFkZHIJAKwCAgIYYWNyZXNTdGFrZWRBbW91bnRCeVVzZXJfBQRhZGRyABNhY3Jlc1N0YWtlZFRvdGFsS2V5AhZhY3Jlc1N0YWtlZEFtb3VudFRvdGFsARhrZXlXbGdTdGFrZWRBbW91bnRCeVVzZXIBBGFkZHIJAKwCAgIWd2xnU3Rha2VkQW1vdW50QnlVc2VyXwUEYWRkcgARd2xnU3Rha2VkVG90YWxLZXkCFHdsZ1N0YWtlZEFtb3VudFRvdGFsARZrZXlXbGdTdGFrZWRUaW1lQnlVc2VyAQRhZGRyCQCsAgICFHdsZ1N0YWtlZFRpbWVCeVVzZXJfBQRhZGRyAAhkYXBwUmVzdAAAAAtkYXBwU3Rha2luZwABAAtkYXBwRWNvbm9teQACAAdkYXBwV2xnAAMACmRhcHBQdXp6bGUABAAOZGFwcEludmVzdEZ1bmQABQAJZGFwcEFjcmVzAAYBCGdldExhbmRzAxJ1c2VyQWRkclN0ck9yRW1wdHkPc3Rha2luZ0NvbnRyYWN0DWFjcmVzQ29udHJhY3QEBXByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0AhNyZXNUeXBlc1Byb3BvcnRpb25zAgswXzBfMF8wXzBfMAIBXwoBBWFkZGVyAgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAt0b3RhbFBpZWNlcwoAAiRsBQVwcm9wcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFYWRkZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYECnVzZXJQaWVjZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQCsAgICFHN0YWtlZFBpZWNlc0J5T3duZXJfBRJ1c2VyQWRkclN0ck9yRW1wdHkAAAQKdG90YWxBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1hY3Jlc0NvbnRyYWN0BRNhY3Jlc1N0YWtlZFRvdGFsS2V5AAAECXVzZXJBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1hY3Jlc0NvbnRyYWN0CQEaa2V5QWNyZXNTdGFrZWRBbW91bnRCeVVzZXIBBRJ1c2VyQWRkclN0ck9yRW1wdHkAAAkAzAgCBQt0b3RhbFBpZWNlcwkAzAgCBQp1c2VyUGllY2VzCQDMCAIFCnRvdGFsQWNyZXMJAMwIAgUJdXNlckFjcmVzBQNuaWwADmlkeFRvdGFsUGllY2VzAAAADWlkeFVzZXJQaWVjZXMAAQANaWR4VG90YWxBY3JlcwACAAxpZHhVc2VyQWNyZXMAAwART0xEX1NUQUtJTkdfREVBREwAgPnjm7kyAQtnZXRXbGdTdGF0cwULdXNlckFkZHJPcHQJY29udHJhY3RzBnVzZHRJZBV1c2R0QmFsYW5jZUNvcnJlY3Rpb24PdXNlclByb3BvcnRpb242BAxpc3N1ZWRBbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUSd2xnSXNzdWVkQW1vdW50S2V5AhhXTEdPTEQgaXMgbm90IGlzc3VlZCB5ZXQECmVjb25vbXlVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFC2RhcHBFY29ub215BQZ1c2R0SWQEB3Jlc3RVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFCGRhcHBSZXN0BQZ1c2R0SWQEBndsZ1VzZAkAZQIJAPAHAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFBnVzZHRJZAUVdXNkdEJhbGFuY2VDb3JyZWN0aW9uBAlwdXp6bGVVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFCmRhcHBQdXp6bGUFBnVzZHRJZAQRaW52ZXN0Rm5kQ29udHJhY3QJAJEDAgUJY29udHJhY3RzBQ5kYXBwSW52ZXN0RnVuZAQPaW52ZXN0RnVuZFRvdGFsCQBkAgkA8AcCBRFpbnZlc3RGbmRDb250cmFjdAUGdXNkdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEWludmVzdEZuZENvbnRyYWN0BRF6Yklzc3VlZEFtb3VudEtleQAABA10b3RhbEZ1bmRzVXNkCQBkAgkAZAIFCmVjb25vbXlVc2QFBndsZ1VzZAUPaW52ZXN0RnVuZFRvdGFsBAV3bGdJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnAgt3bGdfYXNzZXRJZAITTm90IGluaXRpYWxpemVkIHlldAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFD3dsZ0lzc3VlVGltZUtleQIPTm90IGluaXRpYWxpemVkBApiYW5rV2xnb2xkCQDwBwIJAJEDAgUJY29udHJhY3RzBQtkYXBwU3Rha2luZwUFd2xnSWQECXRlYW1Ub3RhbAkAawMFCE1JTExJT042BQlURUFNU0hBUkUFAk02BA50ZWFtQW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwURdGVhbUFtb3VudExlZnRLZXkFCXRlYW1Ub3RhbAQMbGFzdFRlYW1UaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQ9sYXN0VGVhbVRpbWVLZXkFCWlzc3VlVGltZQQIdGVhbUFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFC3RlYW1BZGRyS2V5BBZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCXRlYW1Ub3RhbAkAZQIFA25vdwUMbGFzdFRlYW1UaW1lCQBoAgADBQpZRUFSTUlMTElTCQDMCAIFDnRlYW1BbW91bnRMZWZ0BQNuaWwECnRlYW1XbGdvbGQJAPAHAgUIdGVhbUFkZHIFBXdsZ0lkBAhhY3RUb3RhbAkAawMFCE1JTExJT042BQ1BQ1RJVklUWVNIQVJFBQJNNgQNYWN0QW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUQYWN0QW1vdW50TGVmdEtleQUIYWN0VG90YWwEEmxhc3RBY3Rpdml0aWVzVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUVbGFzdEFjdGl2aXRpZXNUaW1lS2V5BQlpc3N1ZVRpbWUEFWFjdEFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQhhY3RUb3RhbAkAZQIFA25vdwUSbGFzdEFjdGl2aXRpZXNUaW1lCQBoAgADBQpZRUFSTUlMTElTCQDMCAIFDWFjdEFtb3VudExlZnQFA25pbAQJYWN0V2xnb2xkCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwUmVzdAUFd2xnSWQEDGxhc3RVc2VyVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwkBG2tleUxhc3RDbGFpbWVkVGltZUJ5VXNlck9sZAEFC3VzZXJBZGRyT3B0BQlpc3N1ZVRpbWUEDmxhc3RVc2VyUGVyaW9kCQBpAgkAZQIFDGxhc3RVc2VyVGltZQUJaXNzdWVUaW1lBQpZRUFSTUlMTElTBApub3dMaW1pdGVkCQCXAwEJAMwIAgkAlwMBCQDMCAIFA25vdwkAzAgCCQBkAgUJaXNzdWVUaW1lCQBoAgADBQpZRUFSTUlMTElTBQNuaWwJAMwIAgURT0xEX1NUQUtJTkdfREVBREwFA25pbAQJY3VyUGVyaW9kCQCXAwEJAMwIAgkAaQIJAGUCBQNub3cFCWlzc3VlVGltZQUKWUVBUk1JTExJUwkAzAgCAAIFA25pbAQDZWZmCQEIZ2V0TGFuZHMDBQt1c2VyQWRkck9wdAkAkQMCBQljb250cmFjdHMFC2RhcHBTdGFraW5nCQCRAwIFCWNvbnRyYWN0cwUJZGFwcEFjcmVzBBVjdXJQZXJpb2REaXN0cmlidXRpb24JARRkaXN0cmlidXRpb25CeVBlcmlvZAEFCWN1clBlcmlvZAQIJHQwNzkxNDMDCQAAAgUObGFzdFVzZXJQZXJpb2QFCWN1clBlcmlvZAQCYTAJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkBQxsYXN0VXNlclRpbWUFCllFQVJNSUxMSVMECHVzZXJQYXJ0CQBrAwUCYTAFD3VzZXJQcm9wb3J0aW9uNgUCTTYEB2VmZlRpbWUJAGQCBQxsYXN0VXNlclRpbWUJAGsDCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQ91c2VyUHJvcG9ydGlvbjYFAk02CQCVCgMFCHVzZXJQYXJ0BQJhMAUHZWZmVGltZQMJAAACBQ5sYXN0VXNlclBlcmlvZAkAZQIFCWN1clBlcmlvZAABBAJhMQkAawMJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAQkAZQIJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTBQljdXJQZXJpb2QFDGxhc3RVc2VyVGltZQUKWUVBUk1JTExJUwQCYTAJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQpZRUFSTUlMTElTBAVhdmFpbAkAZAIFAmExBQJhMAQIdXNlclBhcnQJAGsDBQVhdmFpbAUPdXNlclByb3BvcnRpb242BQJNNgQHZWZmVGltZQMJAGcCBQJhMQUIdXNlclBhcnQJAGQCBQxsYXN0VXNlclRpbWUJAGsDBQpZRUFSTUlMTElTBQh1c2VyUGFydAkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAABCQBkAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAkAawMFCllFQVJNSUxMSVMJAGUCBQh1c2VyUGFydAUCYTEFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAlQoDBQh1c2VyUGFydAUFYXZhaWwFB2VmZlRpbWUEAmEyCQBrAwkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAACCQBlAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMJAGUCBQljdXJQZXJpb2QAAQUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTBAJhMQkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAABBAJhMAkAawMFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAZQIFCm5vd0xpbWl0ZWQJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTBQljdXJQZXJpb2QFCllFQVJNSUxMSVMEBWF2YWlsCQBkAgkAZAIFAmEyBQJhMQUCYTAECHVzZXJQYXJ0CQBrAwUFYXZhaWwFD3VzZXJQcm9wb3J0aW9uNgUCTTYEB2VmZlRpbWUDCQBnAgUCYTIFCHVzZXJQYXJ0CQBkAgUMbGFzdFVzZXJUaW1lCQBrAwUKWUVBUk1JTExJUwUIdXNlclBhcnQJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAgMJAGcCCQBkAgUCYTIFAmExBQh1c2VyUGFydAkAZAIJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTCQBlAgUJY3VyUGVyaW9kAAEJAGsDBQpZRUFSTUlMTElTCQBlAgUIdXNlclBhcnQFAmEyCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAEJAGQCCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kCQBrAwUKWUVBUk1JTExJUwkAZQIJAGUCBQh1c2VyUGFydAUCYTIFAmExBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAJUKAwUIdXNlclBhcnQFBWF2YWlsBQdlZmZUaW1lBAp1c2VyQW1vdW50CAUIJHQwNzkxNDMCXzEEDXVzZXJBdmFpbGFibGUIBQgkdDA3OTE0MwJfMgQLZWZmTGFzdFRpbWUIBQgkdDA3OTE0MwJfMwQQc0xhbmREYWlseUFtb3VudAkAawMJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24FCURBWU1JTExJUwUKWUVBUk1JTExJUwAZCQCRAwIFA2VmZgUOaWR4VG90YWxQaWVjZXMED2Ftb3VudExlZnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUUc3Rha2Vyc0Ftb3VudExlZnRLZXkAAAQIdXNlclRlbXAJAGsDBQp1c2VyQW1vdW50CQBkAgkAaAIJAJEDAgUDZWZmBQ1pZHhVc2VyUGllY2VzBQJNOAkAkQMCBQNlZmYFDGlkeFVzZXJBY3JlcwkAZAIJAGgCCQCRAwIFA2VmZgUOaWR4VG90YWxQaWVjZXMFAk04CQCRAwIFA2VmZgUNaWR4VG90YWxBY3JlcwQMYmFua0Zyb21Vc2VyCQBrAwUIdXNlclRlbXAFCEJBTktfRkVFBQJNNgQKcm9iYmVkVXNlcgkAZQIFCHVzZXJUZW1wBQxiYW5rRnJvbVVzZXIEDHVucm9iYmVkVXNlcgkAawMFDXVzZXJBdmFpbGFibGUJAGQCCQBoAgkAkQMCBQNlZmYFDWlkeFVzZXJQaWVjZXMFAk04CQCRAwIFA2VmZgUMaWR4VXNlckFjcmVzCQBkAgkAaAIJAJEDAgUDZWZmBQ5pZHhUb3RhbFBpZWNlcwUCTTgJAJEDAgUDZWZmBQ1pZHhUb3RhbEFjcmVzCQDMCAIFDGlzc3VlZEFtb3VudAkAzAgCCQBrAwkAZQIFDXRvdGFsRnVuZHNVc2QFE1VTRFRfVFZMX0NPUlJFQ1RJT04FAk04BQxpc3N1ZWRBbW91bnQJAMwIAgUNdG90YWxGdW5kc1VzZAkAzAgCBQplY29ub215VXNkCQDMCAIFB3Jlc3RVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgUMbGFzdFRlYW1UaW1lCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQpyb2JiZWRVc2VyCQDMCAIFEHNMYW5kRGFpbHlBbW91bnQJAMwIAgUPaW52ZXN0RnVuZFRvdGFsCQDMCAIFDHVucm9iYmVkVXNlcgkAzAgCBQtlZmZMYXN0VGltZQkAzAgCBQpiYW5rV2xnb2xkBQNuaWwAA002XwDAhD0AA004XwCAwtcvAApURUFNX1NIQVJFAMCaDAAOQUNUSVZJVFlfU0hBUkUAoI0GAAxQTEFZRVJfU0hBUkUAgLUYAAtZRUFSX01JTExJUwCAhuvHdQAGREFZX01TAIC4mSkAB0lTU1VFMTAAgJTr3AMAD1BMQVlFUlMxMF9TSEFSRQCA6jAAEU1BUktFVElORzEwX1NIQVJFAKCNBgAMVEVBTTEwX1NIQVJFAKCNBgARTkVXX1NUQUtJTkdfU1RBUlQAgPO4wrEyABBtYXJrZXRpbmdBZGRyS2V5Ag1tYXJrZXRpbmdBZGRyAAp0ZWFtQWRyS2V5Agh0ZWFtQWRkcgAObGFzdFRlYW1UaW1LZXkCFGxhc3RDbGFpbWVkVGltZV90ZWFtAA50ZWFtQW10TGVmdEtleQIOdGVhbUFtb3VudExlZnQAFGxhc3RBY3Rpdml0aWVzVGltS2V5AhpsYXN0Q2xhaW1lZFRpbWVfYWN0aXZpdGllcwANYWN0QW10TGVmdEtleQIUYWN0aXZpdGllc0Ftb3VudExlZnQAEXN0YWtlcnNBbXRMZWZ0S2V5AhFzdGFrZXJzQW1vdW50TGVmdAEWa2V5TGFzdENsYWltVGltZUJ5VXNlcgEEYWRkcgkArAICAhRsYXN0Q2xhaW1lZFRpbWVVc2VyXwUEYWRkcgENZGlzdHJCeVBlcmlvZAIMaXNzdWVkQW1vdW50BnBlcmlvZAkAawMFDGlzc3VlZEFtb3VudAkAaAIFDFBMQVlFUl9TSEFSRQkAZAIFBnBlcmlvZAABCQBoAgAGBQNNNl8AEXdsZ0lzc3VlMTBUaW1lS2V5Ag93bGdfaXNzdWUxMFRpbWUADndsZ0lzc3VlVGltS2V5Ag13bGdfaXNzdWVUaW1lAA93bGdJc3N1ZWRBbXRLZXkCEHdsZ19pc3N1ZWRBbW91bnQADnpiSXNzdWVkQW10S2V5AhJ6YmlsbF9pc3N1ZWRBbW91bnQBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQRhZGRyCQCsAgICGGFjcmVzU3Rha2VkQW1vdW50QnlVc2VyXwUEYWRkcgASYWNyZXNTdGFrZFRvdGFsS2V5AhZhY3Jlc1N0YWtlZEFtb3VudFRvdGFsABR0b3RhbEZhcm1pbmdQb3dlcktleQIRdG90YWxGYXJtaW5nUG93ZXIACWRhcHAyUmVzdAAAAAxkYXBwMlN0YWtpbmcAAQAIZGFwcDJXbGcAAgALZGFwcDJQdXp6bGUAAwAPZGFwcDJJbnZlc3RGdW5kAAQAFURFRkFVTFRfV0VFS0xZX1BSSVpFUwAFAA1BQ1JFU19GT1JfQkVUAIDC1y8AEWtleU5mdFRvdGFsSXNzdWVkAg5uZnRUb3RhbElzc3VlZAARa2V5TmZ0VG90YWxCdXJuZWQCDm5mdFRvdGFsQnVybmVkABNrZXlXbE5mdFRvdGFsU3Rha2VkAhBXbE5mdFRvdGFsU3Rha2VkARJrZXlVc2VyV2xOZnROdW1iZXIBBGFkZHIJAKwCAgIQdXNlcldsTmZ0TnVtYmVyXwUEYWRkcgEQa2V5VXNlckZ1bGxCb251cwEEYWRkcgkArAICAg51c2VyRnVsbEJvbnVzXwUEYWRkcgAKbGV2ZWxBY3JlcwkAzAgCAAAJAMwIAgAKCQDMCAIAFAkAzAgCACgJAMwIAgBQCQDMCAIAlgEJAMwIAgD6AQkAzAgCAJADCQDMCAIAvAUJAMwIAgDoBwUDbmlsAQ9nZXRMZXZlbEJ5QWNyZXMBBWFjcmVzBANhY3IJAGkCCQBkAgUFYWNyZXMA/8HXLwUDTThfCgEHY2hlY2tlcgIDYWNjBGl0ZW0DCQBnAgUEaXRlbQUDYWNyBQNhY2MJAGQCBQNhY2MAAQoAAiRsBQpsZXZlbEFjcmVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdjaGVja2VyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQVhY3JlcwkAaAIJAGgCBQVhY3JlcwAUCQBkAgkBD2dldExldmVsQnlBY3JlcwEFBWFjcmVzAAQBHmdldEZhcm1pbmdQb3dlckJ5QWNyZXNBbmRCb251cwIFYWNyZXMGYm9udXM2BApub3RCb251c2VkCQEWZ2V0RmFybWluZ1Bvd2VyQnlBY3JlcwEFBWFjcmVzCQCUCgIJAGsDBQpub3RCb251c2VkCQBkAgUDTTZfBQZib251czYFA002XwUKbm90Qm9udXNlZAEQZ2V0RmFybWluZ1Bvd2VycwISdXNlckFkZHJTdHJPckVtcHR5DmFjcmVzMkNvbnRyYWN0BAd0b3RhbEZQCQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0BRR0b3RhbEZhcm1pbmdQb3dlcktleQAABAl1c2VyQWNyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFEnVzZXJBZGRyU3RyT3JFbXB0eQAABAl1c2VyQm9udXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARBrZXlVc2VyRnVsbEJvbnVzAQUSdXNlckFkZHJTdHJPckVtcHR5AAAECCR0MDc5MTQzCQEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgUJdXNlckFjcmVzBQl1c2VyQm9udXMEDXVzZXJGUGJvbnVzZWQIBQgkdDA3OTE0MwJfMQQQdXNlckZQbm90Qm9udXNlZAgFCCR0MDc5MTQzAl8yCQDMCAIFB3RvdGFsRlAJAMwIAgUNdXNlckZQYm9udXNlZAkAzAgCBRB1c2VyRlBub3RCb251c2VkCQDMCAIFCXVzZXJCb251cwUDbmlsAAppZHhUb3RhbEZQAAAAEGlkeFVzZXJGUGJvbnVzZWQAAQEMZ2V0V2xnU3RhdHMyBAt1c2VyQWRkck9wdAljb250cmFjdHMGdXNkdElkFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQMaXNzdWVkQW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ93bGdJc3N1ZWRBbXRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAQHcmVzdFVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUJZGFwcDJSZXN0BQZ1c2R0SWQEBndsZ1VzZAkAZQIJAPAHAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQZ1c2R0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQJcHV6emxlVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQtkYXBwMlB1enpsZQUGdXNkdElkBAlhY3JlczJVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwUGdXNkdElkBBFpbnZlc3RGbmRDb250cmFjdAkAkQMCBQljb250cmFjdHMFD2RhcHAySW52ZXN0RnVuZAQPaW52ZXN0RnVuZFRvdGFsCQBkAgkA8AcCBRFpbnZlc3RGbmRDb250cmFjdAUGdXNkdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEWludmVzdEZuZENvbnRyYWN0BQ56Yklzc3VlZEFtdEtleQAABA10b3RhbEZ1bmRzVXNkCQBkAgkAZAIFCWFjcmVzMlVzZAUGd2xnVXNkBQ9pbnZlc3RGdW5kVG90YWwEBXdsZ0lkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnAgt3bGdfYXNzZXRJZAITTm90IGluaXRpYWxpemVkIHlldAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ53bGdJc3N1ZVRpbUtleQIPTm90IGluaXRpYWxpemVkBAZ3bGdXbGcJAPAHAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQV3bGdJZAQJdGVhbVRvdGFsCQBrAwUMaXNzdWVkQW1vdW50BQpURUFNX1NIQVJFBQNNNl8EDnRlYW1BbW91bnRMZWZ0CQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUOdGVhbUFtdExlZnRLZXkFCXRlYW1Ub3RhbAQMbGFzdFRlYW1UaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUObGFzdFRlYW1UaW1LZXkFCWlzc3VlVGltZQQIdGVhbUFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQp0ZWFtQWRyS2V5BBZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCXRlYW1Ub3RhbAkAZQIFA25vdwUMbGFzdFRlYW1UaW1lCQBoAgADBQtZRUFSX01JTExJUwkAzAgCBQ50ZWFtQW1vdW50TGVmdAUDbmlsBAp0ZWFtV2xnb2xkCQDwBwIFCHRlYW1BZGRyBQV3bGdJZAQIYWN0VG90YWwJAGsDBQxpc3N1ZWRBbW91bnQFDkFDVElWSVRZX1NIQVJFBQNNNl8EDWFjdEFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ1hY3RBbXRMZWZ0S2V5BQhhY3RUb3RhbAQSbGFzdEFjdGl2aXRpZXNUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUUbGFzdEFjdGl2aXRpZXNUaW1LZXkFCWlzc3VlVGltZQQVYWN0QW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCGFjdFRvdGFsCQBlAgUDbm93BRJsYXN0QWN0aXZpdGllc1RpbWUJAGgCAAMFC1lFQVJfTUlMTElTCQDMCAIFDWFjdEFtb3VudExlZnQFA25pbAQJYWN0V2xnb2xkCQDwBwIJAJEDAgUJY29udHJhY3RzBQlkYXBwMlJlc3QFBXdsZ0lkBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnCQEWa2V5TGFzdENsYWltVGltZUJ5VXNlcgEFC3VzZXJBZGRyT3B0BQlpc3N1ZVRpbWUEDmxhc3RVc2VyUGVyaW9kCQBpAgkAZQIFDGxhc3RVc2VyVGltZQUJaXNzdWVUaW1lBQtZRUFSX01JTExJUwQKbm93TGltaXRlZAkAlwMBCQDMCAIFA25vdwkAzAgCCQBkAgUJaXNzdWVUaW1lCQBoAgADBQtZRUFSX01JTExJUwUDbmlsBAljdXJQZXJpb2QJAJcDAQkAzAgCCQBpAgkAZQIFA25vdwUJaXNzdWVUaW1lBQtZRUFSX01JTExJUwkAzAgCAAIFA25pbAQDZWZmCQEQZ2V0RmFybWluZ1Bvd2VycwIFC3VzZXJBZGRyT3B0CQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBBVjdXJQZXJpb2REaXN0cmlidXRpb24JAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50BQljdXJQZXJpb2QEDXByZXZQZXJpb2RFbmQJAGQCBQlpc3N1ZVRpbWUJAGgCBQtZRUFSX01JTExJUwUJY3VyUGVyaW9kBBFwcmV2UHJldlBlcmlvZEVuZAkAZAIFCWlzc3VlVGltZQkAaAIFC1lFQVJfTUlMTElTCQBlAgUJY3VyUGVyaW9kAAEEAmEwCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQtZRUFSX01JTExJUwQNdXNlckF2YWlsYWJsZQMJAAACBQ5sYXN0VXNlclBlcmlvZAUJY3VyUGVyaW9kBQJhMAMJAAACBQ5sYXN0VXNlclBlcmlvZAkAZQIFCWN1clBlcmlvZAABBAJhMQkAawMJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAEJAGUCBQ1wcmV2UGVyaW9kRW5kBQxsYXN0VXNlclRpbWUFC1lFQVJfTUlMTElTCQBkAgUCYTEFAmEwBAJhMgkAawMJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAIJAGUCBRFwcmV2UHJldlBlcmlvZEVuZAUMbGFzdFVzZXJUaW1lBQtZRUFSX01JTExJUwQCYTEJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAEJAGQCCQBkAgUCYTIFAmExBQJhMAQPYW1vdW50TGVmdFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwURc3Rha2Vyc0FtdExlZnRLZXkAAAQKdXNlckFtb3VudAMJAQIhPQIJAJEDAgUDZWZmBQppZHhUb3RhbEZQAAAJAGsDBQ11c2VyQXZhaWxhYmxlCQCRAwIFA2VmZgUQaWR4VXNlckZQYm9udXNlZAkAkQMCBQNlZmYFCmlkeFRvdGFsRlAAAAQPbGFzdElzc3VlMTBUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwURd2xnSXNzdWUxMFRpbWVLZXkFEU5FV19TVEFLSU5HX1NUQVJUBA1pc3N1ZTEwQW1vdW50CQBrAwUHSVNTVUUxMAkAlgMBCQDMCAIJAGUCBQNub3cFD2xhc3RJc3N1ZTEwVGltZQkAzAgCAAAFA25pbAUGREFZX01TBBZtYXJrZXRpbmdJc3N1ZTEwQW1vdW50CQBrAwUNaXNzdWUxMEFtb3VudAURTUFSS0VUSU5HMTBfU0hBUkUFA002XwQRdGVhbUlzc3VlMTBBbW91bnQJAGsDBQ1pc3N1ZTEwQW1vdW50BQxURUFNMTBfU0hBUkUFA002XwQOdXNlcjEwSW50ZXJ2YWwJAJYDAQkAzAgCCQBlAgUDbm93CQCWAwEJAMwIAgURTkVXX1NUQUtJTkdfU1RBUlQJAMwIAgUMbGFzdFVzZXJUaW1lBQNuaWwJAMwIAgAABQNuaWwECnVzZXIxMHBhcnQDCQECIT0CCQCRAwIFA2VmZgUKaWR4VG90YWxGUAAACQBrAwkAawMJAGsDBQdJU1NVRTEwBQ51c2VyMTBJbnRlcnZhbAUGREFZX01TCQCRAwIFA2VmZgUQaWR4VXNlckZQYm9udXNlZAkAkQMCBQNlZmYFCmlkeFRvdGFsRlAFD1BMQVlFUlMxMF9TSEFSRQUDTTZfAAAEDm5ld0lzc3VlMTBUaW1lCQCWAwEJAMwIAgURTkVXX1NUQUtJTkdfU1RBUlQJAMwIAgUDbm93BQNuaWwEEGFjcmVzU3Rha2VkVG90YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwUSYWNyZXNTdGFrZFRvdGFsS2V5AAAEDm5mdFRvdGFsSXNzdWVkCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQxkYXBwMlN0YWtpbmcFEWtleU5mdFRvdGFsSXNzdWVkAAAEDm5mdFRvdGFsQnVybmVkCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQxkYXBwMlN0YWtpbmcFEWtleU5mdFRvdGFsQnVybmVkAAAEEHdsTmZ0VG90YWxTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwUTa2V5V2xOZnRUb3RhbFN0YWtlZAAABA93bE5mdFVzZXJTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwkBEmtleVVzZXJXbE5mdE51bWJlcgEJAQt2YWx1ZU9yRWxzZQIFC3VzZXJBZGRyT3B0AgAAAAkAzAgCBQxpc3N1ZWRBbW91bnQJAMwIAgUGd2xnV2xnCQDMCAIJAGsDBQ10b3RhbEZ1bmRzVXNkBQNNOF8FDGlzc3VlZEFtb3VudAkAzAgCBQ10b3RhbEZ1bmRzVXNkCQDMCAIFB3Jlc3RVc2QJAMwIAgUJYWNyZXMyVXNkCQDMCAIFBndsZ1VzZAkAzAgCBQlwdXp6bGVVc2QJAMwIAgUJaXNzdWVUaW1lCQDMCAIFDGxhc3RUZWFtVGltZQkAzAgCBQl0ZWFtVG90YWwJAMwIAgUOdGVhbUFtb3VudExlZnQJAMwIAgUWdGVhbUFtb3VudEF2YWlsYWJsZU5vdwkAzAgCBQp0ZWFtV2xnb2xkCQDMCAIFCGFjdFRvdGFsCQDMCAIFDWFjdEFtb3VudExlZnQJAMwIAgUVYWN0QW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCWFjdFdsZ29sZAkAzAgCBQljdXJQZXJpb2QJAMwIAgUPYW1vdW50TGVmdFRvdGFsCQDMCAIFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAzAgCBQxsYXN0VXNlclRpbWUJAMwIAgUPaW52ZXN0RnVuZFRvdGFsCQDMCAIFCnVzZXJBbW91bnQJAMwIAgUKbm93TGltaXRlZAkAzAgCBQ1pc3N1ZTEwQW1vdW50CQDMCAIFFm1hcmtldGluZ0lzc3VlMTBBbW91bnQJAMwIAgURdGVhbUlzc3VlMTBBbW91bnQJAMwIAgUKdXNlcjEwcGFydAkAzAgCBQ5uZXdJc3N1ZTEwVGltZQkAzAgCCQCRAwIFA2VmZgUKaWR4VG90YWxGUAkAzAgCBRBhY3Jlc1N0YWtlZFRvdGFsCQDMCAIFDm5mdFRvdGFsSXNzdWVkCQDMCAIFDm5mdFRvdGFsQnVybmVkCQDMCAIFEHdsTmZ0VG90YWxTdGFrZWQJAMwIAgUPd2xOZnRVc2VyU3Rha2VkBQNuaWwADXByb2ZpdEFkZHJLZXkCCnByb2ZpdEFkZHIAGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkCFnN0YWtlcnNBbW91bnRQYWlkVG90YWwBGGtleVN0YWtlcnNBbW91bnRQYWlkVXNlcgEEYWRkcgkArAICAhZzdGFrZXJzQW1vdW50UGFpZFVzZXJfBQRhZGRyAQdwcm9sb2cyAAkBBWFzSW50AQkA/QcEBQ5hY3JlczJDb250cmFjdAIKc2F2ZUxhc3RUeAUDbmlsBQNuaWwBEmdldFN3YXBMaW1pdFdsZ29sZAEEYWRkcgQIbGFzdFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBQRhZGRyAAAEDGRlZmF1bHRMaW1pdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBGmtleUFjcmVzU3Rha2VkQW1vdW50QnlVc2VyAQUEYWRkcgAABA1sYXN0TGltaXRMZWZ0CQELdmFsdWVPckVsc2UCCQCfCAEJARprZXlMYXN0V2xnVHJhZGVMaW1pdEJ5VXNlcgEFBGFkZHIFDGRlZmF1bHRMaW1pdAQMY3VycmVudExpbWl0CQBkAgUNbGFzdExpbWl0TGVmdAkAawMFDGRlZmF1bHRMaW1pdAkAZQIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQhsYXN0VGltZQUKREFZX01JTExJUwkAlwMBCQDMCAIFDGN1cnJlbnRMaW1pdAkAzAgCBQxkZWZhdWx0TGltaXQFA25pbAAQaWR4V2xnVGVhbUFtTGVmdAAKABRpZHhXbGdUZWFtQW1BdmFpbE5vdwALAA9pZHhXbGdBY3RBbUxlZnQADgATaWR4V2xnQWN0QW1BdmFpbE5vdwAPABFpZHhXbGdBbUxlZnRUb3RhbAASABRpZHhXbGdVc2VyVG90YWxBdmFpbAAYABFpZHhXbGdFZmZVc2VyVGltZQAZAQ1jbGFpbUludGVybmFsAQRhZGRyBAZjYWxsZXIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBGFkZHIED2Vjb25vbXlDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQUSZWNvbm9teUNvbnRyYWN0U3RyBAhjdXJTdGF0cwkBC2dldFdsZ1N0YXRzBQUEYWRkcgkAzAgCBQxyZXN0Q29udHJhY3QJAMwIAgUPc3Rha2luZ0NvbnRyYWN0CQDMCAIFD2Vjb25vbXlDb250cmFjdAkAzAgCBQt3bGdDb250cmFjdAkAzAgCBRJwdXp6bGVQb29sQ29udHJhY3QJAMwIAgUSaW52ZXN0RnVuZENvbnRyYWN0CQDMCAIFDWFjcmVzQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAUFTVVMVDYEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAEDnRlYW1BbW91bnRMZWZ0CQCRAwIFCGN1clN0YXRzBRBpZHhXbGdUZWFtQW1MZWZ0BAp0ZWFtQW1vdW50CQCRAwIFCGN1clN0YXRzBRRpZHhXbGdUZWFtQW1BdmFpbE5vdwQNYWN0QW1vdW50TGVmdAkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnQWN0QW1MZWZ0BAlhY3RBbW91bnQJAJEDAgUIY3VyU3RhdHMFE2lkeFdsZ0FjdEFtQXZhaWxOb3cECnVzZXJBbW91bnQJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1VzZXJUb3RhbEF2YWlsBAd1c2VyS2V5CQEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQUEYWRkcgQJdXNlclRvdGFsCQCRAwIFCGN1clN0YXRzBRRpZHhXbGdVc2VyVG90YWxBdmFpbAQLdXNlckVmZlRpbWUJAJEDAgUIY3VyU3RhdHMFEWlkeFdsZ0VmZlVzZXJUaW1lCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBQt0ZWFtQWRkcktleQUKdGVhbUFtb3VudAUKd2xnQXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQxyZXN0Q29udHJhY3QFCWFjdEFtb3VudAUKd2xnQXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUHdXNlcktleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUHdXNlcktleQAABQp1c2VyQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRlzdGFrZXJzQW1vdW50UGFpZFRvdGFsS2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBRlzdGFrZXJzQW1vdW50UGFpZFRvdGFsS2V5AAAFCXVzZXJUb3RhbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUc3Rha2Vyc0Ftb3VudExlZnRLZXkJAGUCCQCRAwIFCGN1clN0YXRzBRFpZHhXbGdBbUxlZnRUb3RhbAUJdXNlclRvdGFsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRF0ZWFtQW1vdW50TGVmdEtleQkAZQIFDnRlYW1BbW91bnRMZWZ0BQp0ZWFtQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9sYXN0VGVhbVRpbWVLZXkFA25vdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUQYWN0QW1vdW50TGVmdEtleQkAZQIFDWFjdEFtb3VudExlZnQFCWFjdEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVbGFzdEFjdGl2aXRpZXNUaW1lS2V5BQNub3cJAMwIAgkBDEludGVnZXJFbnRyeQIJARtrZXlMYXN0Q2xhaW1lZFRpbWVCeVVzZXJPbGQBBQRhZGRyBQt1c2VyRWZmVGltZQUDbmlsBQp1c2VyQW1vdW50AQ5jbGFpbUludGVybmFsMgEEYWRkcgQIY3VyU3RhdHMJAQxnZXRXbGdTdGF0czIEBQRhZGRyCQDMCAIFDXJlc3QyQ29udHJhY3QJAMwIAgUOYWNyZXMyQ29udHJhY3QJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUScHV6emxlUG9vbENvbnRyYWN0CQDMCAIFEmludmVzdEZ1bmRDb250cmFjdAUDbmlsBQt1c2R0QXNzZXRJZAAABAt1c2VyVGltZUtleQkBFmtleUxhc3RDbGFpbVRpbWVCeVVzZXIBBQRhZGRyBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQULdXNlclRpbWVLZXkAAAQLdXNlckVmZlRpbWUJAJEDAgUIY3VyU3RhdHMFEGl4V2xnRWZmVXNlclRpbWUDCQAAAgUMbGFzdFVzZXJUaW1lBQt1c2VyRWZmVGltZQkAlAoCBQNuaWwAAAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0lzc3VlVGltZQQOdGVhbUFtb3VudExlZnQJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVGVhbUFtTGVmdAQKdGVhbUFtb3VudAkAZAIJAJEDAgUIY3VyU3RhdHMFE2l4V2xnVGVhbUFtQXZhaWxOb3cJAJEDAgUIY3VyU3RhdHMFFml4V2xnVGVhbUlzc3VlMTBBbW91bnQEDHRlYW1UcmFuc2ZlcgMJAGYCBQp0ZWFtQW1vdW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBQt0ZWFtQWRkcktleQUKdGVhbUFtb3VudAUKd2xnQXNzZXRJZAUDbmlsBQNuaWwEDWFjdEFtb3VudExlZnQJAJEDAgUIY3VyU3RhdHMFDml4V2xnQWN0QW1MZWZ0BAlhY3RBbW91bnQJAJEDAgUIY3VyU3RhdHMFEml4V2xnQWN0QW1BdmFpbE5vdwQLYWN0VHJhbnNmZXIDCQBmAgUJYWN0QW1vdW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUMcmVzdENvbnRyYWN0BQlhY3RBbW91bnQFCndsZ0Fzc2V0SWQFA25pbAUDbmlsBA9tYXJrZXRpbmdBbW91bnQJAJEDAgUIY3VyU3RhdHMFG2l4V2xnTWFya2V0aW5nSXNzdWUxMEFtb3VudAQRbWFya2V0aW5nVHJhbnNmZXIDCQBmAgUPbWFya2V0aW5nQW1vdW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBRBtYXJrZXRpbmdBZGRyS2V5BQ9tYXJrZXRpbmdBbW91bnQFCndsZ0Fzc2V0SWQFA25pbAUDbmlsBAp1c2VyQW1vdW50CQCRAwIFCGN1clN0YXRzBRNpeFdsZ1VzZXJBbUF2YWlsTm93BAd1c2VyS2V5CQEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQUEYWRkcgQJdXNlclRvdGFsCQBkAgUKdXNlckFtb3VudAkAkQMCBQhjdXJTdGF0cwUPaXhXbGdVc2VyMTBwYXJ0BA5pc3N1ZWQxMEFtb3VudAkAkQMCBQhjdXJTdGF0cwUSaXhXbGdJc3N1ZTEwQW1vdW50CQCUCgIJAM4IAgkAzggCCQDOCAIJAMwIAgkBB1JlaXNzdWUDBQp3bGdBc3NldElkBQ5pc3N1ZWQxMEFtb3VudAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZAIJAJEDAgUIY3VyU3RhdHMFC2l4V2xnQW1vdW50BQ5pc3N1ZWQxMEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgURd2xnSXNzdWUxMFRpbWVLZXkJAJEDAgUIY3VyU3RhdHMFEGl4V2xnSXNzdWUxMFRpbWUJAMwIAgkBDEludGVnZXJFbnRyeQIFB3VzZXJLZXkJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFB3VzZXJLZXkAAAUKdXNlckFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQAABQp1c2VyQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRzdGFrZXJzQW1vdW50TGVmdEtleQkAZQIJAJEDAgUIY3VyU3RhdHMFEGl4V2xnQW1MZWZ0VG90YWwFCnVzZXJBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEXRlYW1BbW91bnRMZWZ0S2V5CQBkAgkAZQIFDnRlYW1BbW91bnRMZWZ0BQp0ZWFtQW1vdW50CQCRAwIFCGN1clN0YXRzBRZpeFdsZ1RlYW1Jc3N1ZTEwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9sYXN0VGVhbVRpbWVLZXkFA25vdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUQYWN0QW1vdW50TGVmdEtleQkAZQIFDWFjdEFtb3VudExlZnQFCWFjdEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVbGFzdEFjdGl2aXRpZXNUaW1lS2V5BQNub3cJAMwIAgkBDEludGVnZXJFbnRyeQIFC3VzZXJUaW1lS2V5BQt1c2VyRWZmVGltZQUDbmlsBQx0ZWFtVHJhbnNmZXIFC2FjdFRyYW5zZmVyBRFtYXJrZXRpbmdUcmFuc2ZlcgUJdXNlclRvdGFsAQ50YWtlWHBJbnRlcm5hbAIEYWRkcgVkZWx0YQQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQHdGltZUtleQkBFmtleVdsZ1N0YWtlZFRpbWVCeVVzZXIBBQRhZGRyBAlhbW91bnRLZXkJARhrZXlXbGdTdGFrZWRBbW91bnRCeVVzZXIBBQRhZGRyBAhsYXN0VGltZQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd0aW1lS2V5AAAEB29sZFVzZXIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJYW1vdW50S2V5AAAECG9sZFRvdGFsCQELdmFsdWVPckVsc2UCCQCfCAEFEXdsZ1N0YWtlZFRvdGFsS2V5AAAEAnhwCQBrAwkAawMFBXhwV2xnBQdvbGRVc2VyBQ93bGdCYXNlQW1vdW50WHAJAGUCBQhsYXN0VGltZQUDbm93BQlEQVlNSUxMSVMJAJUKAwkAzAgCCQEMSW50ZWdlckVudHJ5AgUHdGltZUtleQUDbm93CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlhbW91bnRLZXkJAGQCBQdvbGRVc2VyBQVkZWx0YQkAzAgCCQEMSW50ZWdlckVudHJ5AgURd2xnU3Rha2VkVG90YWxLZXkJAGQCBQhvbGRUb3RhbAUFZGVsdGEFA25pbAUCeHAFB29sZFVzZXIBEW9wZW5DaGVzdEludGVybmFsAQRhZGRyBAR3ZWVrCQBpAgUGaGVpZ2h0BQtXRUVLX0JMT0NLUwQIZHJhd1dlZWsJAGUCBQR3ZWVrAAEECW51bVByaXplcwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEOa2V5TnVtTkZUMkRyYXcBBQhkcmF3V2VlawUVREVGQVVMVF9XRUVLTFlfUFJJWkVTBAtwcml6ZXNEcmF3bgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEOa2V5TnVtTkZURHJhd24BBQhkcmF3V2VlawAABAt1c2VyVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUIZHJhd1dlZWsAAAMJAGcCAAAFC3VzZXJUaWNrZXRzCQCUCgIFA25pbAUEdW5pdAQLd2Vla1RpY2tldHMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBE2tleVRvdGFsV2Vla1RpY2tldHMBBQhkcmF3V2VlawAAAwkAZwIAAAULd2Vla1RpY2tldHMJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUIZHJhd1dlZWsFA25pbAUEdW5pdAQHZW50cm9weQkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQkAaAIFBHdlZWsFC1dFRUtfQkxPQ0tTA3ZyZgQEc2FsdAkA2QQBCQCRAwIJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBFWtleUxhc3RXZWVrVHhJZEJ5VXNlcgEFBGFkZHICCjQyX0RFRkFVTFQCAV8AAQQGcmFuZG9tCQEPZ2V0UmFuZG9tTnVtYmVyAwULd2Vla1RpY2tldHMFBHNhbHQFB2VudHJvcHkDCQBmAgkAaAIFC3VzZXJUaWNrZXRzBQludW1Qcml6ZXMFBnJhbmRvbQQLaXNzdWVSZXN1bHQJAPwHBAUOYWNyZXMyQ29udHJhY3QCC2lzc3VlUGlja0MxCQDMCAIFBGFkZHIFA25pbAUDbmlsBAd3aW5uZXJzCQCiCAEJAQ5rZXlXZWVrV2lubmVycwEFCGRyYXdXZWVrBApuZXdXaW5uZXJzAwkBCWlzRGVmaW5lZAEFB3dpbm5lcnMJAKwCAgkArAICCQEFdmFsdWUBBQd3aW5uZXJzAgFfBQRhZGRyBQRhZGRyCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5rZXlOdW1ORlREcmF3bgEFCGRyYXdXZWVrCQBkAgULcHJpemVzRHJhd24AAQkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUIZHJhd1dlZWsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVdlZWtXaW5uZXJzAQUIZHJhd1dlZWsFCm5ld1dpbm5lcnMFA25pbAULaXNzdWVSZXN1bHQEB3JhbmRvbTEJAGQCCQEPZ2V0UmFuZG9tTnVtYmVyAwAJCQDLAQIBAUIFBHNhbHQFB2VudHJvcHkAAQQLY29uc1RpY2tldHMJAGsDBQt1c2VyVGlja2V0cwUHcmFuZG9tMQAKBAp0aWNrZXRzS2V5CQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUEd2VlawQKb2xkVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQp0aWNrZXRzS2V5AAAJAJQKAgkAzQgCAwkAAAIFC2NvbnNUaWNrZXRzAAAFA25pbAQNY29tbW9uQWN0aW9ucwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2tleVRvdGFsV2Vla1RpY2tldHMBBQR3ZWVrCQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsAAAULY29uc1RpY2tldHMJAMwIAgkBDEludGVnZXJFbnRyeQIFCnRpY2tldHNLZXkJAGQCBQpvbGRUaWNrZXRzBQtjb25zVGlja2V0cwUDbmlsAwkAZgIFCm9sZFRpY2tldHMAAAUNY29tbW9uQWN0aW9ucwkAzQgCBQ1jb21tb25BY3Rpb25zCQEMSW50ZWdlckVudHJ5AgkBGGtleVRvdGFsV2Vla1BhcnRpY2lwYW50cwEFBHdlZWsJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEJARhrZXlUb3RhbFdlZWtQYXJ0aWNpcGFudHMBBQR3ZWVrAAAAAQkBC0RlbGV0ZUVudHJ5AQkBEmtleVVzZXJXZWVrVGlja2V0cwIFBGFkZHIFCGRyYXdXZWVrBQtjb25zVGlja2V0cwEUY2xhaW1UaWNrZXRzSW50ZXJuYWwCBGFkZHIKdXNlckJldFN0cgQEd2VlawkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MECnRpY2tldHNLZXkJARJrZXlVc2VyV2Vla1RpY2tldHMCBQRhZGRyBQR3ZWVrBAZkYXlCZXQJALUJAgUKdXNlckJldFN0cgIBXwQPb2xkVG90YWxUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUEd2VlawAABApvbGRUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEFCnRpY2tldHNLZXkAAAQMZGVsdGFUaWNrZXRzAwkAAAIJAQp3aW5uaW5nQmV0AQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBmRheUJldAAACQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGZGF5QmV0AAEAAQAABA9vbGRQYXJ0aWNpcGFudHMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBGGtleVRvdGFsV2Vla1BhcnRpY2lwYW50cwEFBHdlZWsAAAQSdXBkYXRlUGFydGljaXBhbnRzAwMJAAACBQpvbGRUaWNrZXRzAAAJAAACBQxkZWx0YVRpY2tldHMAAQcJAMwIAgkBDEludGVnZXJFbnRyeQIJARhrZXlUb3RhbFdlZWtQYXJ0aWNpcGFudHMBBQR3ZWVrCQBkAgUPb2xkUGFydGljaXBhbnRzAAEFA25pbAUDbmlsCQCUCgIDCQAAAgUMZGVsdGFUaWNrZXRzAAAFA25pbAkAzQgCCQDNCAIFEnVwZGF0ZVBhcnRpY2lwYW50cwkBDEludGVnZXJFbnRyeQIFCnRpY2tldHNLZXkJAGQCBQpvbGRUaWNrZXRzBQxkZWx0YVRpY2tldHMJAQxJbnRlZ2VyRW50cnkCCQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsJAGQCBQ9vbGRUb3RhbFRpY2tldHMFDGRlbHRhVGlja2V0cwUMZGVsdGFUaWNrZXRzEAFpAQ1jb25zdHJ1Y3RvclYxBAhyZXN0QWRkcg1tYXJrZXRpbmdBZGRyCHRlYW1BZGRyCnByb2ZpdEFkZHIDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAMJAQlpc0RlZmluZWQBCQChCAEFDXdsZ0Fzc2V0SWRLZXkJAAIBAhNBbHJlYWR5IGluaXRpYWxpemVkBAxpc3N1ZWRBbW91bnQFCE1JTExJT042BAVpc3N1ZQkAwwgHAgZXTEdPTEQCIFdhdmVzTGFuZHMgR29sZCBpbnZlc3RtZW50IHRva2VuBQxpc3N1ZWRBbW91bnQACAYFBHVuaXQAAAQHYXNzZXRJZAkAuAgBBQVpc3N1ZQkAzAgCBQVpc3N1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPd2xnSXNzdWVUaW1lS2V5CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSd2xnSXNzdWVkQW1vdW50S2V5BQxpc3N1ZWRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUc3Rha2Vyc0Ftb3VudExlZnRLZXkJAGsDBQhNSUxMSU9ONgULUExBWUVSU0hBUkUFBU1VTFQ2CQDMCAIJAQtCaW5hcnlFbnRyeQIFDXdsZ0Fzc2V0SWRLZXkFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVJlc3RBZGRyZXNzAAUIcmVzdEFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgUQbWFya2V0aW5nQWRkcktleQUNbWFya2V0aW5nQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCBQt0ZWFtQWRkcktleQUIdGVhbUFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgUNcHJvZml0QWRkcktleQUKcHJvZml0QWRkcgUDbmlsAWkBDWNvbnN0cnVjdG9yVjIBCXJlc3QyQWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlSZXN0MkFkZHJlc3MABQlyZXN0MkFkZHIFA25pbAFpAQZidXlXbGcBDG1pblRvUmVjZWl2ZQQMcHJvbG9nUmVzdWx0CQEHcHJvbG9nMgADCQAAAgUMcHJvbG9nUmVzdWx0BQxwcm9sb2dSZXN1bHQDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAQHdXNkdEFtdAgFA3BtdAZhbW91bnQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQt1c2R0QXNzZXRJZAkAAgECE1VTRFQgcGF5bWVudHMgb25seSEEBmNhbGxlcggFAWkGY2FsbGVyBARhZGRyCQClCAEFBmNhbGxlcgMJAGYCBQ5NSU5TSE9QUEFZTUVOVAUHdXNkdEFtdAkAAgEJAKwCAgkArAICAhJZb3UgY2FuIHRyYWRlIG1pbiAJAQpmaXhlZFBvaW50AgUOTUlOU0hPUFBBWU1FTlQABgIFIFVTRFQECGN1clN0YXRzCQEMZ2V0V2xnU3RhdHMyBAIACQDMCAIFDXJlc3QyQ29udHJhY3QJAMwIAgUOYWNyZXMyQ29udHJhY3QJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUScHV6emxlUG9vbENvbnRyYWN0CQDMCAIFEmludmVzdEZ1bmRDb250cmFjdAUDbmlsBQt1c2R0QXNzZXRJZAUHdXNkdEFtdAQMY3VyV2xnQW1vdW50CQCRAwIFCGN1clN0YXRzBQtpeFdsZ0Ftb3VudAQId2xnUHJpY2UJAJEDAgUIY3VyU3RhdHMFCml4V2xnUHJpY2UECGJ1eVByaWNlCQBuBAUId2xnUHJpY2UABgAFBQdDRUlMSU5HBAl3bGdBbW91bnQJAGsDBQd1c2R0QW10BQVNVUxUOAUIYnV5UHJpY2UEBm1heFdsZwkBEmdldFN3YXBMaW1pdFdsZ29sZAEFBGFkZHIDCQBmAgUJd2xnQW1vdW50BQZtYXhXbGcJAAIBCQCsAgIJAKwCAgIQWW91IGNhbiBnZXQgbWF4IAkBCmZpeGVkUG9pbnQCBQZtYXhXbGcACAIVIFdMR09MRCBhdCB0aGUgbW9tZW50AwkAZgIFDG1pblRvUmVjZWl2ZQUJd2xnQW1vdW50CQACAQIwUHJpY2UgY2hhbmdlZCBkdXJpbmcgb3BlcmF0aW9uLCBwbGVhc2UgdHJ5IGFnYWluBAxwcm9maXRBbW91bnQJAGkCBQd1c2R0QW10AAYJAJQKAgkAzAgCCQEHUmVpc3N1ZQMFCndsZ0Fzc2V0SWQFCXdsZ0Ftb3VudAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZAIFDGN1cldsZ0Ftb3VudAUJd2xnQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEZa2V5TGFzdFdsZ1RyYWRlVGltZUJ5VXNlcgEFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaa2V5TGFzdFdsZ1RyYWRlTGltaXRCeVVzZXIBBQRhZGRyCQBlAgUGbWF4V2xnBQl3bGdBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAoggBBQ1wcm9maXRBZGRyS2V5BQxwcm9maXRBbW91bnQFC3VzZHRBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBmNhbGxlcgUJd2xnQW1vdW50BQp3bGdBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5idXlXbGdSRUFET05MWQIHYWRkcmVzcwd1c2R0QW10BAhjdXJTdGF0cwkBDGdldFdsZ1N0YXRzMgQCAAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQFB3VzZHRBbXQECHdsZ1ByaWNlCQCRAwIFCGN1clN0YXRzBQppeFdsZ1ByaWNlBAhidXlQcmljZQkAbgQFCHdsZ1ByaWNlAAYABQUHQ0VJTElORwQJd2xnQW1vdW50CQBrAwUHdXNkdEFtdAUFTVVMVDgFCGJ1eVByaWNlBAZtYXhXbGcJARJnZXRTd2FwTGltaXRXbGdvbGQBBQdhZGRyZXNzBAdtYXhVc2R0CQBrAwUGbWF4V2xnBQhidXlQcmljZQUFTVVMVDgEDHByb2ZpdEFtb3VudAkAaQIFB3VzZHRBbXQABgkAlAoCBQNuaWwJAMwIAgUJd2xnQW1vdW50CQDMCAIFDk1JTlNIT1BQQVlNRU5UCQDMCAIFB21heFVzZHQJAMwIAgUMcHJvZml0QW1vdW50BQNuaWwBaQEHc2VsbFdsZwEJbWluQW1vdW50BAxwcm9sb2dSZXN1bHQJAQdwcm9sb2cyAAMJAAACBQxwcm9sb2dSZXN1bHQFDHByb2xvZ1Jlc3VsdAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAZ3bGdBbXQIBQNwbXQGYW1vdW50BAZjYWxsZXIIBQFpBmNhbGxlcgQEYWRkcgkApQgBBQZjYWxsZXIEBm1heFdsZwkBEmdldFN3YXBMaW1pdFdsZ29sZAEFBGFkZHIDCQBmAgUGd2xnQW10BQZtYXhXbGcJAAIBCQCsAgIJAKwCAgISWW91IGNhbiBzcGVuZCBtYXggCQEKZml4ZWRQb2ludAIFBm1heFdsZwAIAhUgV0xHT0xEIGF0IHRoZSBtb21lbnQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQp3bGdBc3NldElkCQACAQIVV0xHT0xEIHBheW1lbnRzIG9ubHkhBAhjdXJTdGF0cwkBDGdldFdsZ1N0YXRzMgQCAAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAQMY3VyV2xnQW1vdW50CQCRAwIFCGN1clN0YXRzBQtpeFdsZ0Ftb3VudAQJc2VsbFByaWNlCQBpAgkAkQMCBQhjdXJTdGF0cwUKaXhXbGdQcmljZQACBAd1c2R0QW10CQBrAwUGd2xnQW10BQlzZWxsUHJpY2UFBU1VTFQ4AwkAZgIFDk1JTlNIT1BQQVlNRU5UBQd1c2R0QW10CQACAQkArAICCQCsAgICEllvdSBjYW4gdHJhZGUgbWluIAkBCmZpeGVkUG9pbnQCBQ5NSU5TSE9QUEFZTUVOVAAGAgUgVVNEVAMJAGYCBQltaW5BbW91bnQFB3VzZHRBbXQJAAIBAjBQcmljZSBjaGFuZ2VkIGR1cmluZyBvcGVyYXRpb24sIHBsZWFzZSB0cnkgYWdhaW4EDHByb2ZpdEFtb3VudAkAaQIFB3VzZHRBbXQABQkAlAoCCQDMCAIJAQRCdXJuAgUKd2xnQXNzZXRJZAUGd2xnQW10CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJ3bGdJc3N1ZWRBbW91bnRLZXkJAGUCBQxjdXJXbGdBbW91bnQFBndsZ0FtdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBQRhZGRyCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleUxhc3RXbGdUcmFkZUxpbWl0QnlVc2VyAQUEYWRkcgkAZQIFBm1heFdsZwUGd2xnQW10CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUNcHJvZml0QWRkcktleQUMcHJvZml0QW1vdW50BQt1c2R0QXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFB3VzZHRBbXQFC3VzZHRBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9zZWxsV2xnUkVBRE9OTFkCB2FkZHJlc3MGd2xnQW10BAZtYXhXbGcJARJnZXRTd2FwTGltaXRXbGdvbGQBBQdhZGRyZXNzBAhjdXJTdGF0cwkBDGdldFdsZ1N0YXRzMgQCAAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAQJc2VsbFByaWNlCQBpAgkAkQMCBQhjdXJTdGF0cwUKaXhXbGdQcmljZQACBAd1c2R0QW10CQBrAwUGd2xnQW10BQlzZWxsUHJpY2UFBU1VTFQ4BAZtaW5XbGcJAGsDBQ5NSU5TSE9QUEFZTUVOVAUFTVVMVDgFCXNlbGxQcmljZQQMcHJvZml0QW1vdW50CQBpAgUHdXNkdEFtdAAFCQCUCgIFA25pbAkAzAgCBQd1c2R0QW10CQDMCAIFBm1pbldsZwkAzAgCBQZtYXhXbGcJAMwIAgUMcHJvZml0QW1vdW50BQNuaWwBaQEFY2xhaW0ABAxwcm9sb2dSZXN1bHQJAQdwcm9sb2cyAAMJAAACBQxwcm9sb2dSZXN1bHQFDHByb2xvZ1Jlc3VsdAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBA0kdDAxNjQwMDE2NDY5CQEOY2xhaW1JbnRlcm5hbDIBCQClCAEIBQFpBmNhbGxlcgQHYWN0aW9ucwgFDSR0MDE2NDAwMTY0NjkCXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAxNjQwMDE2NDY5Al8yCQCUCgIJAM0IAgUHYWN0aW9ucwkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRB3bGdDbGFpbWVkQW1vdW50BQp3bGdBc3NldElkBQxwcm9sb2dSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESb25TdGFrZVVuc3Rha2VMYW5kAQRhZGRyAwMDCQECIT0CCAUBaQZjYWxsZXIFD3N0YWtpbmdDb250cmFjdAkBAiE9AggFAWkGY2FsbGVyBQ1hY3Jlc0NvbnRyYWN0BwkBAiE9AggFAWkGY2FsbGVyBQ5hY3JlczJDb250cmFjdAcJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQNJHQwMTY3ODkxNjg0NgkBDmNsYWltSW50ZXJuYWwyAQUEYWRkcgMJAAACBQ0kdDAxNjc4OTE2ODQ2BQ0kdDAxNjc4OTE2ODQ2BBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTY3ODkxNjg0NgJfMgQHYWN0aW9ucwgFDSR0MDE2Nzg5MTY4NDYCXzEJAJQKAgMJAGYCBRB3bGdDbGFpbWVkQW1vdW50AAAJAM0IAgUHYWN0aW9ucwkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUEYWRkcgUQd2xnQ2xhaW1lZEFtb3VudAUKd2xnQXNzZXRJZAUHYWN0aW9ucwUQd2xnQ2xhaW1lZEFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVvblN0YWtlVW5zdGFrZUxhbmRPbGQBBGFkZHIDAwMJAQIhPQIIBQFpBmNhbGxlcgUPc3Rha2luZ0NvbnRyYWN0CQECIT0CCAUBaQZjYWxsZXIFDWFjcmVzQ29udHJhY3QHCQECIT0CCAUBaQZjYWxsZXIFDmFjcmVzMkNvbnRyYWN0BwkAAgECEVBlcm1pc3Npb24gZGVuaWVkBA0kdDAxNzIwMzE3MjU5CQENY2xhaW1JbnRlcm5hbAEFBGFkZHIDCQAAAgUNJHQwMTcyMDMxNzI1OQUNJHQwMTcyMDMxNzI1OQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDE3MjAzMTcyNTkCXzIEB2FjdGlvbnMIBQ0kdDAxNzIwMzE3MjU5Al8xCQCUCgIDCQBmAgUQd2xnQ2xhaW1lZEFtb3VudAAACQDNCAIFB2FjdGlvbnMJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBGFkZHIFEHdsZ0NsYWltZWRBbW91bnQFCndsZ0Fzc2V0SWQFA25pbAUQd2xnQ2xhaW1lZEFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpidXJuV2xnb2xkAQZ3bGdBbXQDCQECIT0CCAUBaQZjYWxsZXIFDmFjcmVzMkNvbnRyYWN0CQACAQIRUGVybWlzc2lvbiBkZW5pZWQECGN1clN0YXRzCQEMZ2V0V2xnU3RhdHMyBAIACQDMCAIFDXJlc3QyQ29udHJhY3QJAMwIAgUOYWNyZXMyQ29udHJhY3QJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUScHV6emxlUG9vbENvbnRyYWN0CQDMCAIFEmludmVzdEZ1bmRDb250cmFjdAUDbmlsBQt1c2R0QXNzZXRJZAAAAwkAZgIFBndsZ0FtdAkAkQMCBQhjdXJTdGF0cwUIaXhXbGdXbGcJAAIBCQCsAgIJAKwCAgkArAICAgVPbmx5IAkBCmZpeGVkUG9pbnQCCQCRAwIFCGN1clN0YXRzBQhpeFdsZ1dsZwAIAiUgV0xHT0xEIGxlZnQgb24gY29udHJhY3QsIGNhbid0IGJ1cm4gCQEKZml4ZWRQb2ludAIFBndsZ0FtdAAIBA13bGdBbW91bnRMZWZ0CQBlAgkAkQMCBQhjdXJTdGF0cwULaXhXbGdBbW91bnQFBndsZ0FtdAkAlAoCCQDMCAIJAQRCdXJuAgUKd2xnQXNzZXRJZAUGd2xnQW10CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJ3bGdJc3N1ZWRBbW91bnRLZXkFDXdsZ0Ftb3VudExlZnQFA25pbAUNd2xnQW1vdW50TGVmdAFpAQxiZXRGb3JUaWNrZXQBA2JldAQMcHJvbG9nUmVzdWx0CQEHcHJvbG9nMgADCQAAAgUMcHJvbG9nUmVzdWx0BQxwcm9sb2dSZXN1bHQDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQEYWRkcgkApQgBCAUBaQZjYWxsZXIECGRyYXdXZWVrCQBlAgkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MAAQQLdXNlclRpY2tldHMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEmtleVVzZXJXZWVrVGlja2V0cwIFBGFkZHIFCGRyYXdXZWVrAAAEC3dlZWtUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUIZHJhd1dlZWsAAAMDCQBmAgULdXNlclRpY2tldHMAAAkAZgIFC3dlZWtUaWNrZXRzAAAHCQACAQIbUGxlYXNlIG9wZW4gdGhlIGNoZXN0IGZpcnN0AwkBAiE9AgkAaQIFA2JldAAEAAAJAAIBAhtJbnZhbGlkIGJldDogc2hvdWxkIGJlIDAuLjMEBm1vbWVudAkAagIFBmhlaWdodAUKREFZX0JMT0NLUwMJAGYCBQZtb21lbnQJAGUCBQpEQVlfQkxPQ0tTAAMJAAIBCQCsAgIJAKwCAgIxQ2Fubm90IGJldDogdGhlIGRheSBpcyBhbG1vc3QgZW5kZWQsIHBsZWFzZSB3YWl0IAkApAMBCQBlAgUKREFZX0JMT0NLUwUGbW9tZW50AgcgYmxvY2tzBAtzdGFrZWRBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUEYWRkcgAAAwkAZgIFDUFDUkVTX0ZPUl9CRVQFC3N0YWtlZEFjcmVzCQACAQkArAICCQCsAgICG1lvdSBuZWVkIHRvIHN0YWtlIGF0IGxlYXN0IAkBCmZpeGVkUG9pbnQCBQ1BQ1JFU19GT1JfQkVUAAgCDSBBQ1JFUyB0byBiZXQECHRvbW9ycm93CQBkAgkAaQIFBmhlaWdodAUKREFZX0JMT0NLUwABBAZiZXRLZXkJAQprZXlVc2VyQmV0AQUEYWRkcgQNb2xkVXNlckJldFN0cgkAoggBBQZiZXRLZXkEC25ld0JldEVudHJ5CQELU3RyaW5nRW50cnkCBQZiZXRLZXkJAKwCAgkArAICCQCkAwEFCHRvbW9ycm93AgFfCQCkAwEFA2JldAMJAQlpc0RlZmluZWQBBQ1vbGRVc2VyQmV0U3RyBAd1c2VyQmV0CQEFdmFsdWUBBQ1vbGRVc2VyQmV0U3RyAwkAAAIJAJEDAgkAtQkCBQd1c2VyQmV0AgFfAAAJAKQDAQUIdG9tb3Jyb3cJAAIBAhxZb3UgYWxyZWFkeSBiZXQgZm9yIHRvbW9ycm93BAFyCQEUY2xhaW1UaWNrZXRzSW50ZXJuYWwCBQRhZGRyBQd1c2VyQmV0CQCUCgIJAM0IAggFAXICXzEFC25ld0JldEVudHJ5CAUBcgJfMgkAlAoCCQDMCAIFC25ld0JldEVudHJ5BQNuaWwAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQl0YWtlV2xnWHABBGFkZHIDCQECIT0CCAUBaQZjYWxsZXIFD3N0YWtpbmdDb250cmFjdAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBA0kdDAxOTg2MTE5OTA0CQEOdGFrZVhwSW50ZXJuYWwCBQRhZGRyAAAEB2FjdGlvbnMIBQ0kdDAxOTg2MTE5OTA0Al8xBAJ4cAgFDSR0MDE5ODYxMTk5MDQCXzIJAJQKAgUHYWN0aW9ucwUCeHABaQESY2hlY2tXbGdYcFJFQURPTkxZAQRhZGRyBA0kdDAxOTk4MTIwMDI5CQEOdGFrZVhwSW50ZXJuYWwCBQRhZGRyAAAEB2lnbm9yZWQIBQ0kdDAxOTk4MTIwMDI5Al8xBAdkZWx0YVhQCAUNJHQwMTk5ODEyMDAyOQJfMgQFbmV3WFAJAGQCCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBCWtleVVzZXJYUAEFBGFkZHIAAAUHZGVsdGFYUAQJbHZsUG9pbnRzCQEHbGV2ZWxVcAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEMa2V5VXNlckxldmVsAQUEYWRkcgAABQVuZXdYUAkAlAoCBQNuaWwJAM0IAgUJbHZsUG9pbnRzBQVuZXdYUAFpAQxzZXROdW1Qcml6ZXMBCW51bVByaXplcwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAR3ZWVrCQBpAgUGaGVpZ2h0BQtXRUVLX0JMT0NLUwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOa2V5TnVtTkZUMkRyYXcBBQR3ZWVrBQludW1Qcml6ZXMFA25pbAUJbnVtUHJpemVzAWkBCW9wZW5DaGVzdAAEDHByb2xvZ1Jlc3VsdAkBB3Byb2xvZzIAAwkAAAIFDHByb2xvZ1Jlc3VsdAUMcHJvbG9nUmVzdWx0AwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQECGRyYXdXZWVrCQBlAgkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MAAQQEYWRkcgkApQgBCAUBaQZjYWxsZXIEC3VzZXJUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlVc2VyV2Vla1RpY2tldHMCBQRhZGRyBQhkcmF3V2VlawAAAwkAZwIAAAULdXNlclRpY2tldHMJAAIBAhlObyBnZW1zIHRvIG9wZW4gdGhlIGNoZXN0CQERb3BlbkNoZXN0SW50ZXJuYWwBBQRhZGRyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmFkZEdlbXNGb3ICBGFkZHIMZGVsdGFUaWNrZXRzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEBHdlZWsJAGkCBQZoZWlnaHQFC1dFRUtfQkxPQ0tTBAp0aWNrZXRzS2V5CQESa2V5VXNlcldlZWtUaWNrZXRzAgUEYWRkcgUEd2VlawQPb2xkVG90YWxUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUEd2VlawAABApvbGRUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEFCnRpY2tldHNLZXkAAAQPb2xkUGFydGljaXBhbnRzCQELdmFsdWVPckVsc2UCCQCfCAEJARhrZXlUb3RhbFdlZWtQYXJ0aWNpcGFudHMBBQR3ZWVrAAAEEnVwZGF0ZVBhcnRpY2lwYW50cwMDCQAAAgUKb2xkVGlja2V0cwAACQAAAgUMZGVsdGFUaWNrZXRzAAEHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYa2V5VG90YWxXZWVrUGFydGljaXBhbnRzAQUEd2VlawkAZAIFD29sZFBhcnRpY2lwYW50cwABBQNuaWwFA25pbAkAlAoCCQDNCAIJAM0IAgUSdXBkYXRlUGFydGljaXBhbnRzCQEMSW50ZWdlckVudHJ5AgUKdGlja2V0c0tleQkAZAIFCm9sZFRpY2tldHMFDGRlbHRhVGlja2V0cwkBDEludGVnZXJFbnRyeQIJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUEd2VlawkAZAIFD29sZFRvdGFsVGlja2V0cwUMZGVsdGFUaWNrZXRzBQxkZWx0YVRpY2tldHMAs9xAwg==", "height": 3400835, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CfVXcwyF2E7mZ7cmCCh6YGwZMsHAQypiBxPDfWDjSHcg Next: Fv5kpH7SLtaykk6Jh46YWctaXLcZDnzU6jZR3Gu6nwhk Diff:
OldNewDifferences
672672
673673 let eK = 18
674674
675-let eL = 21
675+let eL = 24
676676
677-let eM = 24
677+let eM = 25
678678
679-let eN = 25
680-
681-func eO (P) = {
682- let eP = addressFromStringValue(P)
683- let eQ = addressFromStringValue(n)
684- let eR = cd(P, [y, H, eQ, L, M, N, I], k, 0, b)
679+func eN (P) = {
680+ let eO = addressFromStringValue(P)
681+ let eP = addressFromStringValue(n)
682+ let eQ = cd(P, [y, H, eP, L, M, N, I], k, 0, b)
685683 let cs = lastBlock.timestamp
686- let cw = eR[eG]
687- let eS = eR[eH]
688- let cC = eR[eI]
689- let eT = eR[eJ]
690- let cT = eR[eL]
691- let eU = ez(P)
692- let eV = eR[eM]
693- let eW = eR[eN]
694- $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(bh))), eS, R), ScriptTransfer(y, eT, R), IntegerEntry(eU, (valueOrElse(getInteger(eU), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + eV)), IntegerEntry(bm, (eR[eK] - eV)), IntegerEntry(bj, (cw - eS)), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eT)), IntegerEntry(bk, cs), IntegerEntry(bn(P), eW)], cT)
684+ let cw = eQ[eG]
685+ let eR = eQ[eH]
686+ let cC = eQ[eI]
687+ let eS = eQ[eJ]
688+ let cT = eQ[eL]
689+ let eT = ez(P)
690+ let eU = eQ[eL]
691+ let eV = eQ[eM]
692+ $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(bh))), eR, R), ScriptTransfer(y, eS, R), IntegerEntry(eT, (valueOrElse(getInteger(eT), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + eU)), IntegerEntry(bm, (eQ[eK] - eU)), IntegerEntry(bj, (cw - eR)), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eS)), IntegerEntry(bk, cs), IntegerEntry(bn(P), eV)], cT)
695693 }
696694
697695
698-func eX (P) = {
699- let eR = eg(P, [J, K, L, M, N], k, 0)
700- let eY = dv(P)
701- let cG = valueOrElse(getInteger(eY), 0)
702- let eW = eR[ao]
703- if ((cG == eW))
696+func eW (P) = {
697+ let eQ = eg(P, [J, K, L, M, N], k, 0)
698+ let eX = dv(P)
699+ let cG = valueOrElse(getInteger(eX), 0)
700+ let eV = eQ[ao]
701+ if ((cG == eV))
704702 then $Tuple2(nil, 0)
705703 else {
706704 let cs = lastBlock.timestamp
707- let ct = eR[ah]
708- let cw = eR[ai]
709- let eS = (eR[aj] + eR[ar])
705+ let ct = eQ[ah]
706+ let cw = eQ[ai]
707+ let eR = (eQ[aj] + eQ[ar])
708+ let eY = if ((eR > 0))
709+ then [ScriptTransfer(addressFromStringValue(value(getString(bh))), eR, R)]
710+ else nil
711+ let cC = eQ[ak]
712+ let eS = eQ[al]
710713 let eZ = if ((eS > 0))
711- then [ScriptTransfer(addressFromStringValue(value(getString(bh))), eS, R)]
714+ then [ScriptTransfer(y, eS, R)]
712715 else nil
713- let cC = eR[ak]
714- let eT = eR[al]
715- let fa = if ((eT > 0))
716- then [ScriptTransfer(y, eT, R)]
716+ let fa = eQ[aq]
717+ let fb = if ((fa > 0))
718+ then [ScriptTransfer(addressFromStringValue(value(getString(do))), fa, R)]
717719 else nil
718- let fb = eR[aq]
719- let fc = if ((fb > 0))
720- then [ScriptTransfer(addressFromStringValue(value(getString(do))), fb, R)]
721- else nil
722- let cT = eR[an]
723- let eU = ez(P)
724- let eV = (cT + eR[as])
725- let fd = eR[ap]
726- $Tuple2(((([Reissue(R, fd, true), IntegerEntry(bt, (eR[ae] + fd)), IntegerEntry(dx, eR[at]), IntegerEntry(eU, (valueOrElse(getInteger(eU), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + cT)), IntegerEntry(bm, (eR[am] - cT)), IntegerEntry(bj, ((cw - eS) + eR[ar])), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eT)), IntegerEntry(bk, cs), IntegerEntry(eY, eW)] ++ eZ) ++ fa) ++ fc), eV)
720+ let cT = eQ[an]
721+ let eT = ez(P)
722+ let eU = (cT + eQ[as])
723+ let fc = eQ[ap]
724+ $Tuple2(((([Reissue(R, fc, true), IntegerEntry(bt, (eQ[ae] + fc)), IntegerEntry(dx, eQ[at]), IntegerEntry(eT, (valueOrElse(getInteger(eT), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + cT)), IntegerEntry(bm, (eQ[am] - cT)), IntegerEntry(bj, ((cw - eR) + eQ[ar])), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eS)), IntegerEntry(bk, cs), IntegerEntry(eX, eV)] ++ eY) ++ eZ) ++ fb), eU)
727725 }
728726 }
729727
730728
731-func fe (P,ff) = {
729+func fd (P,fe) = {
732730 let cs = lastBlock.timestamp
733- let fg = bz(P)
734- let fh = bx(P)
735- let eC = valueOrElse(getInteger(fg), 0)
736- let fi = valueOrElse(getInteger(fh), 0)
737- let fj = valueOrElse(getInteger(by), 0)
738- let aR = fraction(fraction(aP, fi, aM), (eC - cs), bd)
739- $Tuple3([IntegerEntry(fg, cs), IntegerEntry(fh, (fi + ff)), IntegerEntry(by, (fj + ff))], aR, fi)
731+ let ff = bz(P)
732+ let fg = bx(P)
733+ let eC = valueOrElse(getInteger(ff), 0)
734+ let fh = valueOrElse(getInteger(fg), 0)
735+ let fi = valueOrElse(getInteger(by), 0)
736+ let aR = fraction(fraction(aP, fh, aM), (eC - cs), bd)
737+ $Tuple3([IntegerEntry(ff, cs), IntegerEntry(fg, (fh + fe)), IntegerEntry(by, (fi + fe))], aR, fh)
740738 }
741739
742740
743-func fk (P) = {
741+func fj (P) = {
744742 let U = (height / i)
745- let fl = (U - 1)
746- let fm = valueOrElse(getInteger(X(fl)), dJ)
747- let fn = valueOrElse(getInteger(Y(fl)), 0)
748- let fo = valueOrElse(getInteger(T(P, fl)), 0)
749- if ((0 >= fo))
743+ let fk = (U - 1)
744+ let fl = valueOrElse(getInteger(X(fk)), dJ)
745+ let fm = valueOrElse(getInteger(Y(fk)), 0)
746+ let fn = valueOrElse(getInteger(T(P, fk)), 0)
747+ if ((0 >= fn))
750748 then $Tuple2(nil, unit)
751749 else {
752- let fp = valueOrElse(getInteger(V(fl)), 0)
753- if ((0 >= fp))
754- then $Tuple2([DeleteEntry(T(P, fl))], unit)
750+ let fo = valueOrElse(getInteger(V(fk)), 0)
751+ if ((0 >= fo))
752+ then $Tuple2([DeleteEntry(T(P, fk))], unit)
755753 else {
756754 let aG = value(value(blockInfoByHeight((U * i))).vrf)
757755 let aF = fromBase58String(split(valueOrElse(getString(K, O(P)), "42_DEFAULT"), "_")[1])
758- let fq = aD(fp, aF, aG)
759- if (((fo * fm) > fq))
756+ let fp = aD(fo, aF, aG)
757+ if (((fn * fl) > fp))
760758 then {
761- let fr = invoke(K, "issuePickC1", [P], nil)
762- let fs = getString(Z(fl))
763- let ft = if (isDefined(fs))
764- then ((value(fs) + "_") + P)
759+ let fq = invoke(K, "issuePickC1", [P], nil)
760+ let fr = getString(Z(fk))
761+ let fs = if (isDefined(fr))
762+ then ((value(fr) + "_") + P)
765763 else P
766- $Tuple2([IntegerEntry(Y(fl), (fn + 1)), DeleteEntry(T(P, fl)), StringEntry(Z(fl), ft)], fr)
764+ $Tuple2([IntegerEntry(Y(fk), (fm + 1)), DeleteEntry(T(P, fk)), StringEntry(Z(fk), fs)], fq)
767765 }
768766 else {
769- let fu = (aD(9, (base58'29' + aF), aG) + 1)
770- let fv = fraction(fo, fu, 10)
771- let fw = T(P, U)
772- let fx = valueOrElse(getInteger(fw), 0)
773- $Tuple2(((if ((fv == 0))
767+ let ft = (aD(9, (base58'29' + aF), aG) + 1)
768+ let fu = fraction(fn, ft, 10)
769+ let fv = T(P, U)
770+ let fw = valueOrElse(getInteger(fv), 0)
771+ $Tuple2(((if ((fu == 0))
774772 then nil
775773 else {
776- let fy = [IntegerEntry(V(U), (valueOrElse(getInteger(V(U)), 0) + fv)), IntegerEntry(fw, (fx + fv))]
777- if ((fx > 0))
778- then fy
779- else (fy :+ IntegerEntry(W(U), (valueOrElse(getInteger(W(U)), 0) + 1)))
780- }) :+ DeleteEntry(T(P, fl))), fv)
774+ let fx = [IntegerEntry(V(U), (valueOrElse(getInteger(V(U)), 0) + fu)), IntegerEntry(fv, (fw + fu))]
775+ if ((fw > 0))
776+ then fx
777+ else (fx :+ IntegerEntry(W(U), (valueOrElse(getInteger(W(U)), 0) + 1)))
778+ }) :+ DeleteEntry(T(P, fk))), fu)
781779 }
782780 }
783781 }
784782 }
785783
786784
787-func fz (P,fA) = {
785+func fy (P,fz) = {
788786 let U = (height / i)
789- let fw = T(P, U)
790- let fB = split(fA, "_")
791- let fC = valueOrElse(getInteger(V(U)), 0)
792- let fx = valueOrElse(getInteger(fw), 0)
793- let fD = if ((aa(parseIntValue(fB[0])) == parseIntValue(fB[1])))
787+ let fv = T(P, U)
788+ let fA = split(fz, "_")
789+ let fB = valueOrElse(getInteger(V(U)), 0)
790+ let fw = valueOrElse(getInteger(fv), 0)
791+ let fC = if ((aa(parseIntValue(fA[0])) == parseIntValue(fA[1])))
794792 then 1
795793 else 0
796- let fE = valueOrElse(getInteger(W(U)), 0)
797- let fF = if (if ((fx == 0))
798- then (fD == 1)
794+ let fD = valueOrElse(getInteger(W(U)), 0)
795+ let fE = if (if ((fw == 0))
796+ then (fC == 1)
799797 else false)
800- then [IntegerEntry(W(U), (fE + 1))]
798+ then [IntegerEntry(W(U), (fD + 1))]
801799 else nil
802- $Tuple2(if ((fD == 0))
800+ $Tuple2(if ((fC == 0))
803801 then nil
804- else ((fF :+ IntegerEntry(fw, (fx + fD))) :+ IntegerEntry(V(U), (fC + fD))), fD)
802+ else ((fE :+ IntegerEntry(fv, (fw + fC))) :+ IntegerEntry(V(U), (fB + fC))), fC)
805803 }
806804
807805
808-@Callable(fG)
809-func constructorV1 (fH,fI,cy,fJ) = if ((fG.caller != this))
806+@Callable(fF)
807+func constructorV1 (fG,fH,cy,fI) = if ((fF.caller != this))
810808 then throw("Permission denied")
811809 else if (isDefined(getBinary(Q)))
812810 then throw("Already initialized")
813811 else {
814812 let cj = aY
815- let fK = Issue("WLGOLD", "WavesLands Gold investment token", cj, 8, true, unit, 0)
816- let fL = calculateAssetId(fK)
817-[fK, IntegerEntry(bs, lastBlock.timestamp), IntegerEntry(bt, cj), IntegerEntry(ey, 0), IntegerEntry(bm, fraction(aY, bb, b)), BinaryEntry(Q, fL), StringEntry(x(), fH), StringEntry(do, fI), StringEntry(bh, cy), StringEntry(ex, fJ)]
813+ let fJ = Issue("WLGOLD", "WavesLands Gold investment token", cj, 8, true, unit, 0)
814+ let fK = calculateAssetId(fJ)
815+[fJ, IntegerEntry(bs, lastBlock.timestamp), IntegerEntry(bt, cj), IntegerEntry(ey, 0), IntegerEntry(bm, fraction(aY, bb, b)), BinaryEntry(Q, fK), StringEntry(x(), fG), StringEntry(do, fH), StringEntry(bh, cy), StringEntry(ex, fI)]
818816 }
819817
820818
821819
822-@Callable(fG)
823-func constructorV2 (fM) = if ((fG.caller != this))
820+@Callable(fF)
821+func constructorV2 (fL) = if ((fF.caller != this))
824822 then throw("Permission denied")
825- else [StringEntry(w(), fM)]
823+ else [StringEntry(w(), fL)]
826824
827825
828826
829-@Callable(fG)
830-func buyWlg (fN) = {
831- let fO = eA()
832- if ((fO == fO))
833- then if ((size(fG.payments) != 1))
827+@Callable(fF)
828+func buyWlg (fM) = {
829+ let fN = eA()
830+ if ((fN == fN))
831+ then if ((size(fF.payments) != 1))
834832 then throw("exactly 1 payment must be attached")
835833 else {
836- let fP = fG.payments[0]
837- let fQ = fP.amount
838- if (if (!(isDefined(fP.assetId)))
834+ let fO = fF.payments[0]
835+ let fP = fO.amount
836+ if (if (!(isDefined(fO.assetId)))
839837 then true
840- else (value(fP.assetId) != k))
838+ else (value(fO.assetId) != k))
841839 then throw("USDT payments only!")
842840 else {
843- let eP = fG.caller
844- let P = toString(eP)
845- if ((d > fQ))
841+ let eO = fF.caller
842+ let P = toString(eO)
843+ if ((d > fP))
846844 then throw((("You can trade min " + ax(d, 6)) + " USDT"))
847845 else {
848- let eR = eg("", [J, K, L, M, N], k, fQ)
849- let fR = eR[ae]
850- let fS = eR[ag]
851- let fT = fraction(fS, 6, 5, CEILING)
852- let fU = fraction(fQ, c, fT)
853- let fV = eB(P)
854- if ((fU > fV))
855- then throw((("You can get max " + ax(fV, 8)) + " WLGOLD at the moment"))
856- else if ((fN > fU))
846+ let eQ = eg("", [J, K, L, M, N], k, fP)
847+ let fQ = eQ[ae]
848+ let fR = eQ[ag]
849+ let fS = fraction(fR, 6, 5, CEILING)
850+ let fT = fraction(fP, c, fS)
851+ let fU = eB(P)
852+ if ((fT > fU))
853+ then throw((("You can get max " + ax(fU, 8)) + " WLGOLD at the moment"))
854+ else if ((fM > fT))
857855 then throw("Price changed during operation, please try again")
858856 else {
859- let fW = (fQ / 6)
860- $Tuple2([Reissue(R, fU, true), IntegerEntry(bt, (fR + fU)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fV - fU)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fW, k), ScriptTransfer(eP, fU, R)], fO)
857+ let fV = (fP / 6)
858+ $Tuple2([Reissue(R, fT, true), IntegerEntry(bt, (fQ + fT)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fU - fT)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fV, k), ScriptTransfer(eO, fT, R)], fN)
861859 }
862860 }
863861 }
867865
868866
869867
870-@Callable(fG)
871-func buyWlgREADONLY (p,fQ) = {
872- let eR = eg("", [J, K, L, M, N], k, fQ)
873- let fS = eR[ag]
874- let fT = fraction(fS, 6, 5, CEILING)
875- let fU = fraction(fQ, c, fT)
876- let fV = eB(p)
877- let fX = fraction(fV, fT, c)
878- let fW = (fQ / 6)
879- $Tuple2(nil, [fU, d, fX, fW])
868+@Callable(fF)
869+func buyWlgREADONLY (p,fP) = {
870+ let eQ = eg("", [J, K, L, M, N], k, fP)
871+ let fR = eQ[ag]
872+ let fS = fraction(fR, 6, 5, CEILING)
873+ let fT = fraction(fP, c, fS)
874+ let fU = eB(p)
875+ let fW = fraction(fU, fS, c)
876+ let fV = (fP / 6)
877+ $Tuple2(nil, [fT, d, fW, fV])
880878 }
881879
882880
883881
884-@Callable(fG)
885-func sellWlg (fY) = {
886- let fO = eA()
887- if ((fO == fO))
888- then if ((size(fG.payments) != 1))
882+@Callable(fF)
883+func sellWlg (fX) = {
884+ let fN = eA()
885+ if ((fN == fN))
886+ then if ((size(fF.payments) != 1))
889887 then throw("exactly 1 payment must be attached")
890888 else {
891- let fP = fG.payments[0]
892- let fZ = fP.amount
893- let eP = fG.caller
894- let P = toString(eP)
895- let fV = eB(P)
896- if ((fZ > fV))
897- then throw((("You can spend max " + ax(fV, 8)) + " WLGOLD at the moment"))
898- else if (if (!(isDefined(fP.assetId)))
889+ let fO = fF.payments[0]
890+ let fY = fO.amount
891+ let eO = fF.caller
892+ let P = toString(eO)
893+ let fU = eB(P)
894+ if ((fY > fU))
895+ then throw((("You can spend max " + ax(fU, 8)) + " WLGOLD at the moment"))
896+ else if (if (!(isDefined(fO.assetId)))
899897 then true
900- else (value(fP.assetId) != R))
898+ else (value(fO.assetId) != R))
901899 then throw("WLGOLD payments only!")
902900 else {
903- let eR = eg("", [J, K, L, M, N], k, 0)
904- let fR = eR[ae]
905- let ga = (eR[ag] / 2)
906- let fQ = fraction(fZ, ga, c)
907- if ((d > fQ))
901+ let eQ = eg("", [J, K, L, M, N], k, 0)
902+ let fQ = eQ[ae]
903+ let fZ = (eQ[ag] / 2)
904+ let fP = fraction(fY, fZ, c)
905+ if ((d > fP))
908906 then throw((("You can trade min " + ax(d, 6)) + " USDT"))
909- else if ((fY > fQ))
907+ else if ((fX > fP))
910908 then throw("Price changed during operation, please try again")
911909 else {
912- let fW = (fQ / 5)
913- $Tuple2([Burn(R, fZ), IntegerEntry(bt, (fR - fZ)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fV - fZ)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fW, k), ScriptTransfer(eP, fQ, k)], fO)
910+ let fV = (fP / 5)
911+ $Tuple2([Burn(R, fY), IntegerEntry(bt, (fQ - fY)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fU - fY)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fV, k), ScriptTransfer(eO, fP, k)], fN)
914912 }
915913 }
916914 }
919917
920918
921919
922-@Callable(fG)
923-func sellWlgREADONLY (p,fZ) = {
924- let fV = eB(p)
925- let eR = eg("", [J, K, L, M, N], k, 0)
926- let ga = (eR[ag] / 2)
927- let fQ = fraction(fZ, ga, c)
928- let gb = fraction(d, c, ga)
929- let fW = (fQ / 5)
930- $Tuple2(nil, [fQ, gb, fV, fW])
920+@Callable(fF)
921+func sellWlgREADONLY (p,fY) = {
922+ let fU = eB(p)
923+ let eQ = eg("", [J, K, L, M, N], k, 0)
924+ let fZ = (eQ[ag] / 2)
925+ let fP = fraction(fY, fZ, c)
926+ let ga = fraction(d, c, fZ)
927+ let fV = (fP / 5)
928+ $Tuple2(nil, [fP, ga, fU, fV])
931929 }
932930
933931
934932
935-@Callable(fG)
933+@Callable(fF)
936934 func claim () = {
937- let fO = eA()
938- if ((fO == fO))
939- then if ((size(fG.payments) != 0))
935+ let fN = eA()
936+ if ((fN == fN))
937+ then if ((size(fF.payments) != 0))
940938 then throw("No payments required")
941939 else {
942- let gc = eX(toString(fG.caller))
943- let gd = gc._1
944- let ge = gc._2
945- $Tuple2((gd :+ ScriptTransfer(fG.caller, ge, R)), fO)
940+ let gb = eW(toString(fF.caller))
941+ let gc = gb._1
942+ let gd = gb._2
943+ $Tuple2((gc :+ ScriptTransfer(fF.caller, gd, R)), fN)
946944 }
947945 else throw("Strict value is not equal to itself.")
948946 }
949947
950948
951949
952-@Callable(fG)
953-func onStakeUnstakeLand (P) = if (if (if ((fG.caller != H))
954- then (fG.caller != I)
950+@Callable(fF)
951+func onStakeUnstakeLand (P) = if (if (if ((fF.caller != H))
952+ then (fF.caller != I)
955953 else false)
956- then (fG.caller != K)
954+ then (fF.caller != K)
957955 else false)
958956 then throw("Permission denied")
959957 else {
960- let gf = eX(P)
961- if ((gf == gf))
958+ let ge = eW(P)
959+ if ((ge == ge))
962960 then {
963- let ge = gf._2
964- let gd = gf._1
965- $Tuple2(if ((ge > 0))
966- then (gd :+ ScriptTransfer(addressFromStringValue(P), ge, R))
967- else gd, ge)
961+ let gd = ge._2
962+ let gc = ge._1
963+ $Tuple2(if ((gd > 0))
964+ then (gc :+ ScriptTransfer(addressFromStringValue(P), gd, R))
965+ else gc, gd)
968966 }
969967 else throw("Strict value is not equal to itself.")
970968 }
971969
972970
973971
974-@Callable(fG)
975-func onStakeUnstakeLandOld (P) = if (if (if ((fG.caller != H))
976- then (fG.caller != I)
972+@Callable(fF)
973+func onStakeUnstakeLandOld (P) = if (if (if ((fF.caller != H))
974+ then (fF.caller != I)
977975 else false)
978- then (fG.caller != K)
976+ then (fF.caller != K)
979977 else false)
980978 then throw("Permission denied")
981979 else {
982- let gg = eO(P)
983- if ((gg == gg))
980+ let gf = eN(P)
981+ if ((gf == gf))
984982 then {
985- let ge = gg._2
986- let gd = gg._1
987- $Tuple2(if ((ge > 0))
988- then (gd :+ ScriptTransfer(addressFromStringValue(P), ge, R))
989- else nil, ge)
983+ let gd = gf._2
984+ let gc = gf._1
985+ $Tuple2(if ((gd > 0))
986+ then (gc :+ ScriptTransfer(addressFromStringValue(P), gd, R))
987+ else nil, gd)
990988 }
991989 else throw("Strict value is not equal to itself.")
992990 }
993991
994992
995993
996-@Callable(fG)
997-func burnWlgold (fZ) = if ((fG.caller != K))
994+@Callable(fF)
995+func burnWlgold (fY) = if ((fF.caller != K))
998996 then throw("Permission denied")
999997 else {
1000- let eR = eg("", [J, K, L, M, N], k, 0)
1001- if ((fZ > eR[af]))
1002- then throw(((("Only " + ax(eR[af], 8)) + " WLGOLD left on contract, can't burn ") + ax(fZ, 8)))
998+ let eQ = eg("", [J, K, L, M, N], k, 0)
999+ if ((fY > eQ[af]))
1000+ then throw(((("Only " + ax(eQ[af], 8)) + " WLGOLD left on contract, can't burn ") + ax(fY, 8)))
10031001 else {
1004- let gh = (eR[ae] - fZ)
1005- $Tuple2([Burn(R, fZ), IntegerEntry(bt, gh)], gh)
1002+ let gg = (eQ[ae] - fY)
1003+ $Tuple2([Burn(R, fY), IntegerEntry(bt, gg)], gg)
10061004 }
10071005 }
10081006
10091007
10101008
1011-@Callable(fG)
1012-func betForTicket (gi) = {
1013- let fO = eA()
1014- if ((fO == fO))
1015- then if ((size(fG.payments) != 0))
1009+@Callable(fF)
1010+func betForTicket (gh) = {
1011+ let fN = eA()
1012+ if ((fN == fN))
1013+ then if ((size(fF.payments) != 0))
10161014 then throw("No payments required")
10171015 else {
1018- let P = toString(fG.caller)
1019- let fl = ((height / i) - 1)
1020- let fo = valueOrElse(getInteger(T(P, fl)), 0)
1021- let fp = valueOrElse(getInteger(V(fl)), 0)
1022- if (if ((fo > 0))
1023- then (fp > 0)
1016+ let P = toString(fF.caller)
1017+ let fk = ((height / i) - 1)
1018+ let fn = valueOrElse(getInteger(T(P, fk)), 0)
1019+ let fo = valueOrElse(getInteger(V(fk)), 0)
1020+ if (if ((fn > 0))
1021+ then (fo > 0)
10241022 else false)
10251023 then throw("Please open the chest first")
1026- else if (((gi / 4) != 0))
1024+ else if (((gh / 4) != 0))
10271025 then throw("Invalid bet: should be 0..3")
10281026 else {
1029- let gj = (height % g)
1030- if ((gj > (g - 3)))
1031- then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - gj))) + " blocks"))
1027+ let gi = (height % g)
1028+ if ((gi > (g - 3)))
1029+ then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - gi))) + " blocks"))
10321030 else {
1033- let gk = valueOrElse(getInteger(K, dB(P)), 0)
1034- if ((dK > gk))
1031+ let gj = valueOrElse(getInteger(K, dB(P)), 0)
1032+ if ((dK > gj))
10351033 then throw((("You need to stake at least " + ax(dK, 8)) + " ACRES to bet"))
10361034 else {
1037- let gl = ((height / g) + 1)
1038- let gm = S(P)
1039- let gn = getString(gm)
1040- let go = StringEntry(gm, ((toString(gl) + "_") + toString(gi)))
1041- if (isDefined(gn))
1035+ let gk = ((height / g) + 1)
1036+ let gl = S(P)
1037+ let gm = getString(gl)
1038+ let gn = StringEntry(gl, ((toString(gk) + "_") + toString(gh)))
1039+ if (isDefined(gm))
10421040 then {
1043- let gp = value(gn)
1044- if ((split(gp, "_")[0] == toString(gl)))
1041+ let go = value(gm)
1042+ if ((split(go, "_")[0] == toString(gk)))
10451043 then throw("You already bet for tomorrow")
10461044 else {
1047- let gq = fz(P, gp)
1048- $Tuple2((gq._1 :+ go), gq._2)
1045+ let gp = fy(P, go)
1046+ $Tuple2((gp._1 :+ gn), gp._2)
10491047 }
10501048 }
1051- else $Tuple2([go], 0)
1049+ else $Tuple2([gn], 0)
10521050 }
10531051 }
10541052 }
10581056
10591057
10601058
1061-@Callable(fG)
1062-func takeWlgXp (P) = if ((fG.caller != H))
1059+@Callable(fF)
1060+func takeWlgXp (P) = if ((fF.caller != H))
10631061 then throw("Permission denied")
10641062 else {
1065- let gr = fe(P, 0)
1066- let gd = gr._1
1067- let aR = gr._2
1068- $Tuple2(gd, aR)
1063+ let gq = fd(P, 0)
1064+ let gc = gq._1
1065+ let aR = gq._2
1066+ $Tuple2(gc, aR)
10691067 }
10701068
10711069
10721070
1073-@Callable(fG)
1071+@Callable(fF)
10741072 func checkWlgXpREADONLY (P) = {
1075- let gs = fe(P, 0)
1076- let gt = gs._1
1077- let gu = gs._2
1078- let aU = (valueOrElse(getInteger(H, aN(P)), 0) + gu)
1079- let gv = aS(valueOrElse(getInteger(H, aO(P)), 0), aU)
1080- $Tuple2(nil, (gv :+ aU))
1073+ let gr = fd(P, 0)
1074+ let gs = gr._1
1075+ let gt = gr._2
1076+ let aU = (valueOrElse(getInteger(H, aN(P)), 0) + gt)
1077+ let gu = aS(valueOrElse(getInteger(H, aO(P)), 0), aU)
1078+ $Tuple2(nil, (gu :+ aU))
10811079 }
10821080
10831081
10841082
1085-@Callable(fG)
1086-func setNumPrizes (fm) = if ((fG.caller != this))
1083+@Callable(fF)
1084+func setNumPrizes (fl) = if ((fF.caller != this))
10871085 then throw("Permission denied")
10881086 else {
10891087 let U = (height / i)
1090- $Tuple2([IntegerEntry(X(U), fm)], fm)
1088+ $Tuple2([IntegerEntry(X(U), fl)], fl)
10911089 }
10921090
10931091
10941092
1095-@Callable(fG)
1093+@Callable(fF)
10961094 func openChest () = {
1097- let fO = eA()
1098- if ((fO == fO))
1099- then if ((size(fG.payments) != 0))
1095+ let fN = eA()
1096+ if ((fN == fN))
1097+ then if ((size(fF.payments) != 0))
11001098 then throw("No payments required")
11011099 else {
1102- let fl = ((height / i) - 1)
1103- let P = toString(fG.caller)
1104- let fo = valueOrElse(getInteger(T(P, fl)), 0)
1105- if ((0 >= fo))
1100+ let fk = ((height / i) - 1)
1101+ let P = toString(fF.caller)
1102+ let fn = valueOrElse(getInteger(T(P, fk)), 0)
1103+ if ((0 >= fn))
11061104 then throw("No gems to open the chest")
1107- else fk(P)
1105+ else fj(P)
11081106 }
11091107 else throw("Strict value is not equal to itself.")
11101108 }
11111109
11121110
11131111
1114-@Callable(fG)
1115-func addGemsFor (P,fD) = if ((fG.caller != this))
1112+@Callable(fF)
1113+func addGemsFor (P,fC) = if ((fF.caller != this))
11161114 then throw("Permission denied")
11171115 else {
11181116 let U = (height / i)
1119- let fw = T(P, U)
1120- let fC = valueOrElse(getInteger(V(U)), 0)
1121- let fx = valueOrElse(getInteger(fw), 0)
1122- let fE = valueOrElse(getInteger(W(U)), 0)
1123- let fF = if (if ((fx == 0))
1124- then (fD == 1)
1117+ let fv = T(P, U)
1118+ let fB = valueOrElse(getInteger(V(U)), 0)
1119+ let fw = valueOrElse(getInteger(fv), 0)
1120+ let fD = valueOrElse(getInteger(W(U)), 0)
1121+ let fE = if (if ((fw == 0))
1122+ then (fC == 1)
11251123 else false)
1126- then [IntegerEntry(W(U), (fE + 1))]
1124+ then [IntegerEntry(W(U), (fD + 1))]
11271125 else nil
1128- $Tuple2(((fF :+ IntegerEntry(fw, (fx + fD))) :+ IntegerEntry(V(U), (fC + fD))), fD)
1126+ $Tuple2(((fE :+ IntegerEntry(fv, (fw + fC))) :+ IntegerEntry(V(U), (fB + fC))), fC)
11291127 }
11301128
11311129
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 let n = {
7171 let h = f
7272 if ((base58'2W' == h))
7373 then "3P2sk1KncSxRaZs8b4CWGPw2jkvvav74u4D"
7474 else if ((base58'2T' == h))
7575 then "3N8y4wxX3JC4TdrCJBXX16SjWf6X256hrep"
7676 else throw("Unknown chain")
7777 }
7878
7979 func o (p,q) = valueOrErrorMessage(getString(p, q), makeString(["mandatory ", toString(p), ".", q, " is not defined"], ""))
8080
8181
8282 let r = 1
8383
8484 let s = 2
8585
8686 let t = 4
8787
8888 let u = 5
8989
9090 func v () = "%s__restConfig"
9191
9292
9393 func w () = "%s__rest2Addr"
9494
9595
9696 func x () = "%s__restAddr"
9797
9898
9999 let y = addressFromStringValue(valueOrElse(getString(this, x()), m))
100100
101101 func z (A) = split_4C(o(A, v()), a)
102102
103103
104104 func B (C,D) = valueOrErrorMessage(addressFromString(C[D]), ("Rest cfg doesn't contain address at index " + toString(D)))
105105
106106
107107 let E = 1
108108
109109 let F = 8
110110
111111 let G = z(y)
112112
113113 let H = B(G, E)
114114
115115 let I = B(G, F)
116116
117117 let J = addressFromStringValue(valueOrElse(getString(this, w()), l))
118118
119119 let C = z(J)
120120
121121 let K = B(C, r)
122122
123123 let L = B(C, s)
124124
125125 let M = B(C, t)
126126
127127 let N = B(C, u)
128128
129129 func O (P) = ("lastWeekTxIdByUser_" + P)
130130
131131
132132 let Q = "wlg_assetId"
133133
134134 let R = valueOrErrorMessage(getBinary(L, Q), "WLGOLD is not issued yet")
135135
136136 func S (P) = ("userBet_" + P)
137137
138138
139139 func T (P,U) = ((("userWeekTickets_" + P) + "_") + toString(U))
140140
141141
142142 func V (U) = ("totalWeekTickets_" + toString(U))
143143
144144
145145 func W (U) = ("totalWeekParticipants_" + toString(U))
146146
147147
148148 func X (U) = ("numNFT2Draw_" + toString(U))
149149
150150
151151 func Y (U) = ("numNFTDrawn_" + toString(U))
152152
153153
154154 func Z (U) = ("weekWinners_" + toString(U))
155155
156156
157157 func aa (ab) = {
158158 let ac = (ab * g)
159159 let ad = if ((ac > j))
160160 then ac
161161 else (ac + j)
162162 (toInt(value(value(blockInfoByHeight(ad)).vrf)) % 4)
163163 }
164164
165165
166166 let ae = 0
167167
168168 let af = 1
169169
170170 let ag = 2
171171
172172 let ah = 8
173173
174174 let ai = 11
175175
176176 let aj = 12
177177
178178 let ak = 15
179179
180180 let al = 16
181181
182182 let am = 19
183183
184184 let an = 23
185185
186186 let ao = 24
187187
188188 let ap = 25
189189
190190 let aq = 26
191191
192192 let ar = 27
193193
194194 let as = 28
195195
196196 let at = 29
197197
198198 func au (av) = {
199199 let h = av
200200 if ($isInstanceOf(h, "Int"))
201201 then {
202202 let aw = h
203203 aw
204204 }
205205 else throw("fail to cast into Int")
206206 }
207207
208208
209209 func ax (ay,az) = {
210210 let aA = pow(10, 0, az, 0, 0, DOWN)
211211 let aB = toString((ay % aA))
212212 let aC = drop(toString(aA), (1 + size(aB)))
213213 (((toString((ay / aA)) + ".") + aC) + aB)
214214 }
215215
216216
217217 func aD (aE,aF,aG) = if ((0 >= aE))
218218 then throw("maxValue should be > 0")
219219 else {
220220 let aH = sha256_16Kb((aF + aG))
221221 (toInt(aH) % aE)
222222 }
223223
224224
225225 let aI = 100000000
226226
227227 let aJ = 3200
228228
229229 let aK = 4000
230230
231231 let aL = 3
232232
233233 let aM = 100000000000
234234
235235 func aN (P) = ("userXP_" + P)
236236
237237
238238 func aO (P) = ("userLevel_" + P)
239239
240240
241241 let aP = 10000
242242
243243 func aQ (aR) = fraction(aJ, pow(aR, 4, aK, 4, 4, DOWN), aI)
244244
245245
246246 func aS (aT,aU) = {
247247 let aV = aQ(aU)
248248 [aV, (aL * (aV - aT))]
249249 }
250250
251251
252252 let aW = 1000000
253253
254254 let aX = 100000000
255255
256256 let aY = 100000000000000
257257
258258 let aZ = 200000
259259
260260 let ba = 100000
261261
262262 let bb = 400000
263263
264264 let bc = 31557600000
265265
266266 let bd = 86400000
267267
268268 let be = 50000
269269
270270 let bf = take(drop(this.bytes, 1), 1)
271271
272272 let bg = {
273273 let h = bf
274274 if ((base58'2W' == h))
275275 then 1208630000
276276 else if ((base58'2T' == h))
277277 then 0
278278 else throw("Unknown chain")
279279 }
280280
281281 let bh = "teamAddr"
282282
283283 let bi = "lastClaimedTime_team"
284284
285285 let bj = "teamAmountLeft"
286286
287287 let bk = "lastClaimedTime_activities"
288288
289289 let bl = "activitiesAmountLeft"
290290
291291 let bm = "stakersAmountLeft"
292292
293293 func bn (P) = ("lastClaimedTimeUserOld_" + P)
294294
295295
296296 func bo (P) = ("lastArbTimeUser_" + P)
297297
298298
299299 func bp (P) = ("lastWlgLimitUser_" + P)
300300
301301
302302 func bq (br) = fraction(aY, (bb * (br + 1)), (6 * aW))
303303
304304
305305 let bs = "wlg_issueTime"
306306
307307 let bt = "wlg_issuedAmount"
308308
309309 let bu = "zbill_issuedAmount"
310310
311311 func bv (P) = ("acresStakedAmountByUser_" + P)
312312
313313
314314 let bw = "acresStakedAmountTotal"
315315
316316 func bx (P) = ("wlgStakedAmountByUser_" + P)
317317
318318
319319 let by = "wlgStakedAmountTotal"
320320
321321 func bz (P) = ("wlgStakedTimeByUser_" + P)
322322
323323
324324 let bA = 0
325325
326326 let bB = 1
327327
328328 let bC = 2
329329
330330 let bD = 3
331331
332332 let bE = 4
333333
334334 let bF = 5
335335
336336 let bG = 6
337337
338338 func bH (bI,H,I) = {
339339 let bJ = split(valueOrElse(getString(H, "resTypesProportions"), "0_0_0_0_0_0"), "_")
340340 func bK (bL,bM) = (bL + parseIntValue(bM))
341341
342342 let bN = {
343343 let bO = bJ
344344 let bP = size(bO)
345345 let bQ = 0
346346 func bR (bS,bT) = if ((bT >= bP))
347347 then bS
348348 else bK(bS, bO[bT])
349349
350350 func bU (bS,bT) = if ((bT >= bP))
351351 then bS
352352 else throw("List size exceeds 6")
353353
354354 bU(bR(bR(bR(bR(bR(bR(bQ, 0), 1), 2), 3), 4), 5), 6)
355355 }
356356 let bV = valueOrElse(getInteger(H, ("stakedPiecesByOwner_" + bI)), 0)
357357 let bW = valueOrElse(getInteger(I, bw), 0)
358358 let bX = valueOrElse(getInteger(I, bv(bI)), 0)
359359 [bN, bV, bW, bX]
360360 }
361361
362362
363363 let bY = 0
364364
365365 let bZ = 1
366366
367367 let ca = 2
368368
369369 let cb = 3
370370
371371 let cc = 1733346000000
372372
373373 func cd (ce,cf,cg,ch,ci) = {
374374 let cj = valueOrErrorMessage(getInteger(cf[bD], bt), "WLGOLD is not issued yet")
375375 let ck = assetBalance(cf[bC], cg)
376376 let cl = assetBalance(cf[bA], cg)
377377 let cm = (assetBalance(cf[bD], cg) - ch)
378378 let cn = assetBalance(cf[bE], cg)
379379 let co = cf[bF]
380380 let cp = (assetBalance(co, cg) + valueOrElse(getInteger(co, bu), 0))
381381 let cq = ((ck + cm) + cp)
382382 let cr = valueOrErrorMessage(getBinary(cf[bD], "wlg_assetId"), "Not initialized yet")
383383 let cs = lastBlock.timestamp
384384 let ct = valueOrErrorMessage(getInteger(cf[bD], bs), "Not initialized")
385385 let cu = assetBalance(cf[bB], cr)
386386 let cv = fraction(aY, aZ, aW)
387387 let cw = valueOrElse(getInteger(cf[bD], bj), cv)
388388 let cx = valueOrElse(getInteger(cf[bD], bi), ct)
389389 let cy = addressFromStringValue(value(getString(cf[bD], bh)))
390390 let cz = min([fraction(cv, (cs - cx), (3 * bc)), cw])
391391 let cA = assetBalance(cy, cr)
392392 let cB = fraction(aY, ba, aW)
393393 let cC = valueOrElse(getInteger(cf[bD], bl), cB)
394394 let cD = valueOrElse(getInteger(cf[bD], bk), ct)
395395 let cE = min([fraction(cB, (cs - cD), (3 * bc)), cC])
396396 let cF = assetBalance(cf[bA], cr)
397397 let cG = valueOrElse(getInteger(cf[bD], bn(ce)), ct)
398398 let cH = ((cG - ct) / bc)
399399 let cI = min([min([cs, (ct + (3 * bc))]), cc])
400400 let cJ = min([((cs - ct) / bc), 2])
401401 let cK = bH(ce, cf[bB], cf[bG])
402402 let cL = bq(cJ)
403403 let cM = if ((cH == cJ))
404404 then {
405405 let cN = fraction(cL, (cI - cG), bc)
406406 let cO = fraction(cN, ci, aW)
407407 let cP = (cG + fraction((cI - cG), ci, aW))
408408 $Tuple3(cO, cN, cP)
409409 }
410410 else if ((cH == (cJ - 1)))
411411 then {
412412 let cQ = fraction(bq((cJ - 1)), ((ct + (bc * cJ)) - cG), bc)
413413 let cN = fraction(cL, (cI - (ct + (bc * cJ))), bc)
414414 let cR = (cQ + cN)
415415 let cO = fraction(cR, ci, aW)
416416 let cP = if ((cQ >= cO))
417417 then (cG + fraction(bc, cO, bq((cJ - 1))))
418418 else ((ct + (bc * cJ)) + fraction(bc, (cO - cQ), cL))
419419 $Tuple3(cO, cR, cP)
420420 }
421421 else {
422422 let cS = fraction(bq((cJ - 2)), ((ct + (bc * (cJ - 1))) - cG), bc)
423423 let cQ = bq((cJ - 1))
424424 let cN = fraction(cL, (cI - (ct + (bc * cJ))), bc)
425425 let cR = ((cS + cQ) + cN)
426426 let cO = fraction(cR, ci, aW)
427427 let cP = if ((cS >= cO))
428428 then (cG + fraction(bc, cO, bq((cJ - 2))))
429429 else if (((cS + cQ) >= cO))
430430 then ((ct + (bc * (cJ - 1))) + fraction(bc, (cO - cS), bq((cJ - 1))))
431431 else ((ct + (bc * cJ)) + fraction(bc, ((cO - cS) - cQ), cL))
432432 $Tuple3(cO, cR, cP)
433433 }
434434 let cT = cM._1
435435 let cU = cM._2
436436 let cV = cM._3
437437 let cW = fraction(fraction(cL, bd, bc), 25, cK[bY])
438438 let cX = valueOrElse(getInteger(cf[bD], bm), 0)
439439 let cY = fraction(cT, ((cK[bZ] * aX) + cK[cb]), ((cK[bY] * aX) + cK[ca]))
440440 let cZ = fraction(cY, be, aW)
441441 let da = (cY - cZ)
442442 let db = fraction(cU, ((cK[bZ] * aX) + cK[cb]), ((cK[bY] * aX) + cK[ca]))
443443 [cj, fraction((cq - bg), aX, cj), cq, ck, cl, cm, cn, ct, cx, cv, cw, cz, cA, cB, cC, cE, cF, cJ, cX, cL, cG, da, cW, cp, db, cV, cu]
444444 }
445445
446446
447447 let dc = 1000000
448448
449449 let dd = 100000000
450450
451451 let de = 200000
452452
453453 let df = 100000
454454
455455 let dg = 400000
456456
457457 let dh = 31557600000
458458
459459 let di = 86400000
460460
461461 let dj = 1000000000
462462
463463 let dk = 800000
464464
465465 let dl = 100000
466466
467467 let dm = 100000
468468
469469 let dn = 1731279600000
470470
471471 let do = "marketingAddr"
472472
473473 let dp = "teamAddr"
474474
475475 let dq = "lastClaimedTime_team"
476476
477477 let dr = "teamAmountLeft"
478478
479479 let ds = "lastClaimedTime_activities"
480480
481481 let dt = "activitiesAmountLeft"
482482
483483 let du = "stakersAmountLeft"
484484
485485 func dv (P) = ("lastClaimedTimeUser_" + P)
486486
487487
488488 func dw (cj,br) = fraction(cj, (dg * (br + 1)), (6 * dc))
489489
490490
491491 let dx = "wlg_issue10Time"
492492
493493 let dy = "wlg_issueTime"
494494
495495 let dz = "wlg_issuedAmount"
496496
497497 let dA = "zbill_issuedAmount"
498498
499499 func dB (P) = ("acresStakedAmountByUser_" + P)
500500
501501
502502 let dC = "acresStakedAmountTotal"
503503
504504 let dD = "totalFarmingPower"
505505
506506 let dE = 0
507507
508508 let dF = 1
509509
510510 let dG = 2
511511
512512 let dH = 3
513513
514514 let dI = 4
515515
516516 let dJ = 5
517517
518518 let dK = 100000000
519519
520520 let dL = "nftTotalIssued"
521521
522522 let dM = "nftTotalBurned"
523523
524524 let dN = "WlNftTotalStaked"
525525
526526 func dO (P) = ("userWlNftNumber_" + P)
527527
528528
529529 func dP (P) = ("userFullBonus_" + P)
530530
531531
532532 let dQ = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
533533
534534 func dR (dS) = {
535535 let dT = ((dS + 99999999) / dd)
536536 func dU (bL,bM) = if ((bM >= dT))
537537 then bL
538538 else (bL + 1)
539539
540540 let bO = dQ
541541 let bP = size(bO)
542542 let bQ = 0
543543 func bR (bS,bT) = if ((bT >= bP))
544544 then bS
545545 else dU(bS, bO[bT])
546546
547547 func bU (bS,bT) = if ((bT >= bP))
548548 then bS
549549 else throw("List size exceeds 10")
550550
551551 bU(bR(bR(bR(bR(bR(bR(bR(bR(bR(bR(bQ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
552552 }
553553
554554
555555 func dV (dS) = ((dS * 20) * (dR(dS) + 4))
556556
557557
558558 func dW (dS,dX) = {
559559 let dY = dV(dS)
560560 $Tuple2(fraction(dY, (dc + dX), dc), dY)
561561 }
562562
563563
564564 func dZ (bI,K) = {
565565 let ea = valueOrElse(getInteger(K, dD), 0)
566566 let bX = valueOrElse(getInteger(K, dB(bI)), 0)
567567 let eb = valueOrElse(getInteger(K, dP(bI)), 0)
568568 let cM = dW(bX, eb)
569569 let ec = cM._1
570570 let ed = cM._2
571571 [ea, ec, ed, eb]
572572 }
573573
574574
575575 let ee = 0
576576
577577 let ef = 1
578578
579579 func eg (ce,cf,cg,ch) = {
580580 let cj = valueOrErrorMessage(getInteger(cf[dG], dz), "WLGOLD is not issued yet")
581581 let cl = assetBalance(cf[dE], cg)
582582 let cm = (assetBalance(cf[dG], cg) - ch)
583583 let cn = assetBalance(cf[dH], cg)
584584 let eh = assetBalance(cf[dF], cg)
585585 let co = cf[dI]
586586 let cp = (assetBalance(co, cg) + valueOrElse(getInteger(co, dA), 0))
587587 let cq = ((eh + cm) + cp)
588588 let cr = valueOrErrorMessage(getBinary(cf[dG], "wlg_assetId"), "Not initialized yet")
589589 let cs = lastBlock.timestamp
590590 let ct = valueOrErrorMessage(getInteger(cf[dG], dy), "Not initialized")
591591 let ei = assetBalance(cf[dG], cr)
592592 let cv = fraction(cj, de, dc)
593593 let cw = valueOrElse(getInteger(cf[dG], dr), cv)
594594 let cx = valueOrElse(getInteger(cf[dG], dq), ct)
595595 let cy = addressFromStringValue(value(getString(cf[dG], dp)))
596596 let cz = min([fraction(cv, (cs - cx), (3 * dh)), cw])
597597 let cA = assetBalance(cy, cr)
598598 let cB = fraction(cj, df, dc)
599599 let cC = valueOrElse(getInteger(cf[dG], dt), cB)
600600 let cD = valueOrElse(getInteger(cf[dG], ds), ct)
601601 let cE = min([fraction(cB, (cs - cD), (3 * dh)), cC])
602602 let cF = assetBalance(cf[dE], cr)
603603 let cG = valueOrElse(getInteger(cf[dG], dv(ce)), ct)
604604 let cH = ((cG - ct) / dh)
605605 let cI = min([cs, (ct + (3 * dh))])
606606 let cJ = min([((cs - ct) / dh), 2])
607607 let cK = dZ(ce, cf[dF])
608608 let cL = dw(cj, cJ)
609609 let ej = (ct + (dh * cJ))
610610 let ek = (ct + (dh * (cJ - 1)))
611611 let cN = fraction(cL, (cI - cG), dh)
612612 let cU = if ((cH == cJ))
613613 then cN
614614 else if ((cH == (cJ - 1)))
615615 then {
616616 let cQ = fraction(dw(cj, (cJ - 1)), (ej - cG), dh)
617617 (cQ + cN)
618618 }
619619 else {
620620 let cS = fraction(dw(cj, (cJ - 2)), (ek - cG), dh)
621621 let cQ = dw(cj, (cJ - 1))
622622 ((cS + cQ) + cN)
623623 }
624624 let cX = valueOrElse(getInteger(cf[dG], du), 0)
625625 let cT = if ((cK[ee] != 0))
626626 then fraction(cU, cK[ef], cK[ee])
627627 else 0
628628 let el = valueOrElse(getInteger(cf[dG], dx), dn)
629629 let em = fraction(dj, max([(cs - el), 0]), di)
630630 let en = fraction(em, dl, dc)
631631 let eo = fraction(em, dm, dc)
632632 let ep = max([(cs - max([dn, cG])), 0])
633633 let eq = if ((cK[ee] != 0))
634634 then fraction(fraction(fraction(dj, ep, di), cK[ef], cK[ee]), dk, dc)
635635 else 0
636636 let er = max([dn, cs])
637637 let es = valueOrElse(getInteger(cf[dF], dC), 0)
638638 let et = valueOrElse(getInteger(cf[dF], dL), 0)
639639 let eu = valueOrElse(getInteger(cf[dF], dM), 0)
640640 let ev = valueOrElse(getInteger(cf[dF], dN), 0)
641641 let ew = valueOrElse(getInteger(cf[dF], dO(valueOrElse(ce, ""))), 0)
642642 [cj, ei, fraction(cq, dd, cj), cq, cl, eh, cm, cn, ct, cx, cv, cw, cz, cA, cB, cC, cE, cF, cJ, cX, cL, cG, cp, cT, cI, em, en, eo, eq, er, cK[ee], es, et, eu, ev, ew]
643643 }
644644
645645
646646 let ex = "profitAddr"
647647
648648 let ey = "stakersAmountPaidTotal"
649649
650650 func ez (P) = ("stakersAmountPaidUser_" + P)
651651
652652
653653 func eA () = au(reentrantInvoke(K, "saveLastTx", nil, nil))
654654
655655
656656 func eB (P) = {
657657 let eC = valueOrElse(getInteger(bo(P)), 0)
658658 let eD = valueOrElse(getInteger(K, bv(P)), 0)
659659 let eE = valueOrElse(getInteger(bp(P)), eD)
660660 let eF = (eE + fraction(eD, (lastBlock.timestamp - eC), e))
661661 min([eF, eD])
662662 }
663663
664664
665665 let eG = 10
666666
667667 let eH = 11
668668
669669 let eI = 14
670670
671671 let eJ = 15
672672
673673 let eK = 18
674674
675-let eL = 21
675+let eL = 24
676676
677-let eM = 24
677+let eM = 25
678678
679-let eN = 25
680-
681-func eO (P) = {
682- let eP = addressFromStringValue(P)
683- let eQ = addressFromStringValue(n)
684- let eR = cd(P, [y, H, eQ, L, M, N, I], k, 0, b)
679+func eN (P) = {
680+ let eO = addressFromStringValue(P)
681+ let eP = addressFromStringValue(n)
682+ let eQ = cd(P, [y, H, eP, L, M, N, I], k, 0, b)
685683 let cs = lastBlock.timestamp
686- let cw = eR[eG]
687- let eS = eR[eH]
688- let cC = eR[eI]
689- let eT = eR[eJ]
690- let cT = eR[eL]
691- let eU = ez(P)
692- let eV = eR[eM]
693- let eW = eR[eN]
694- $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(bh))), eS, R), ScriptTransfer(y, eT, R), IntegerEntry(eU, (valueOrElse(getInteger(eU), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + eV)), IntegerEntry(bm, (eR[eK] - eV)), IntegerEntry(bj, (cw - eS)), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eT)), IntegerEntry(bk, cs), IntegerEntry(bn(P), eW)], cT)
684+ let cw = eQ[eG]
685+ let eR = eQ[eH]
686+ let cC = eQ[eI]
687+ let eS = eQ[eJ]
688+ let cT = eQ[eL]
689+ let eT = ez(P)
690+ let eU = eQ[eL]
691+ let eV = eQ[eM]
692+ $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(bh))), eR, R), ScriptTransfer(y, eS, R), IntegerEntry(eT, (valueOrElse(getInteger(eT), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + eU)), IntegerEntry(bm, (eQ[eK] - eU)), IntegerEntry(bj, (cw - eR)), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eS)), IntegerEntry(bk, cs), IntegerEntry(bn(P), eV)], cT)
695693 }
696694
697695
698-func eX (P) = {
699- let eR = eg(P, [J, K, L, M, N], k, 0)
700- let eY = dv(P)
701- let cG = valueOrElse(getInteger(eY), 0)
702- let eW = eR[ao]
703- if ((cG == eW))
696+func eW (P) = {
697+ let eQ = eg(P, [J, K, L, M, N], k, 0)
698+ let eX = dv(P)
699+ let cG = valueOrElse(getInteger(eX), 0)
700+ let eV = eQ[ao]
701+ if ((cG == eV))
704702 then $Tuple2(nil, 0)
705703 else {
706704 let cs = lastBlock.timestamp
707- let ct = eR[ah]
708- let cw = eR[ai]
709- let eS = (eR[aj] + eR[ar])
705+ let ct = eQ[ah]
706+ let cw = eQ[ai]
707+ let eR = (eQ[aj] + eQ[ar])
708+ let eY = if ((eR > 0))
709+ then [ScriptTransfer(addressFromStringValue(value(getString(bh))), eR, R)]
710+ else nil
711+ let cC = eQ[ak]
712+ let eS = eQ[al]
710713 let eZ = if ((eS > 0))
711- then [ScriptTransfer(addressFromStringValue(value(getString(bh))), eS, R)]
714+ then [ScriptTransfer(y, eS, R)]
712715 else nil
713- let cC = eR[ak]
714- let eT = eR[al]
715- let fa = if ((eT > 0))
716- then [ScriptTransfer(y, eT, R)]
716+ let fa = eQ[aq]
717+ let fb = if ((fa > 0))
718+ then [ScriptTransfer(addressFromStringValue(value(getString(do))), fa, R)]
717719 else nil
718- let fb = eR[aq]
719- let fc = if ((fb > 0))
720- then [ScriptTransfer(addressFromStringValue(value(getString(do))), fb, R)]
721- else nil
722- let cT = eR[an]
723- let eU = ez(P)
724- let eV = (cT + eR[as])
725- let fd = eR[ap]
726- $Tuple2(((([Reissue(R, fd, true), IntegerEntry(bt, (eR[ae] + fd)), IntegerEntry(dx, eR[at]), IntegerEntry(eU, (valueOrElse(getInteger(eU), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + cT)), IntegerEntry(bm, (eR[am] - cT)), IntegerEntry(bj, ((cw - eS) + eR[ar])), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eT)), IntegerEntry(bk, cs), IntegerEntry(eY, eW)] ++ eZ) ++ fa) ++ fc), eV)
720+ let cT = eQ[an]
721+ let eT = ez(P)
722+ let eU = (cT + eQ[as])
723+ let fc = eQ[ap]
724+ $Tuple2(((([Reissue(R, fc, true), IntegerEntry(bt, (eQ[ae] + fc)), IntegerEntry(dx, eQ[at]), IntegerEntry(eT, (valueOrElse(getInteger(eT), 0) + cT)), IntegerEntry(ey, (valueOrElse(getInteger(ey), 0) + cT)), IntegerEntry(bm, (eQ[am] - cT)), IntegerEntry(bj, ((cw - eR) + eQ[ar])), IntegerEntry(bi, cs), IntegerEntry(bl, (cC - eS)), IntegerEntry(bk, cs), IntegerEntry(eX, eV)] ++ eY) ++ eZ) ++ fb), eU)
727725 }
728726 }
729727
730728
731-func fe (P,ff) = {
729+func fd (P,fe) = {
732730 let cs = lastBlock.timestamp
733- let fg = bz(P)
734- let fh = bx(P)
735- let eC = valueOrElse(getInteger(fg), 0)
736- let fi = valueOrElse(getInteger(fh), 0)
737- let fj = valueOrElse(getInteger(by), 0)
738- let aR = fraction(fraction(aP, fi, aM), (eC - cs), bd)
739- $Tuple3([IntegerEntry(fg, cs), IntegerEntry(fh, (fi + ff)), IntegerEntry(by, (fj + ff))], aR, fi)
731+ let ff = bz(P)
732+ let fg = bx(P)
733+ let eC = valueOrElse(getInteger(ff), 0)
734+ let fh = valueOrElse(getInteger(fg), 0)
735+ let fi = valueOrElse(getInteger(by), 0)
736+ let aR = fraction(fraction(aP, fh, aM), (eC - cs), bd)
737+ $Tuple3([IntegerEntry(ff, cs), IntegerEntry(fg, (fh + fe)), IntegerEntry(by, (fi + fe))], aR, fh)
740738 }
741739
742740
743-func fk (P) = {
741+func fj (P) = {
744742 let U = (height / i)
745- let fl = (U - 1)
746- let fm = valueOrElse(getInteger(X(fl)), dJ)
747- let fn = valueOrElse(getInteger(Y(fl)), 0)
748- let fo = valueOrElse(getInteger(T(P, fl)), 0)
749- if ((0 >= fo))
743+ let fk = (U - 1)
744+ let fl = valueOrElse(getInteger(X(fk)), dJ)
745+ let fm = valueOrElse(getInteger(Y(fk)), 0)
746+ let fn = valueOrElse(getInteger(T(P, fk)), 0)
747+ if ((0 >= fn))
750748 then $Tuple2(nil, unit)
751749 else {
752- let fp = valueOrElse(getInteger(V(fl)), 0)
753- if ((0 >= fp))
754- then $Tuple2([DeleteEntry(T(P, fl))], unit)
750+ let fo = valueOrElse(getInteger(V(fk)), 0)
751+ if ((0 >= fo))
752+ then $Tuple2([DeleteEntry(T(P, fk))], unit)
755753 else {
756754 let aG = value(value(blockInfoByHeight((U * i))).vrf)
757755 let aF = fromBase58String(split(valueOrElse(getString(K, O(P)), "42_DEFAULT"), "_")[1])
758- let fq = aD(fp, aF, aG)
759- if (((fo * fm) > fq))
756+ let fp = aD(fo, aF, aG)
757+ if (((fn * fl) > fp))
760758 then {
761- let fr = invoke(K, "issuePickC1", [P], nil)
762- let fs = getString(Z(fl))
763- let ft = if (isDefined(fs))
764- then ((value(fs) + "_") + P)
759+ let fq = invoke(K, "issuePickC1", [P], nil)
760+ let fr = getString(Z(fk))
761+ let fs = if (isDefined(fr))
762+ then ((value(fr) + "_") + P)
765763 else P
766- $Tuple2([IntegerEntry(Y(fl), (fn + 1)), DeleteEntry(T(P, fl)), StringEntry(Z(fl), ft)], fr)
764+ $Tuple2([IntegerEntry(Y(fk), (fm + 1)), DeleteEntry(T(P, fk)), StringEntry(Z(fk), fs)], fq)
767765 }
768766 else {
769- let fu = (aD(9, (base58'29' + aF), aG) + 1)
770- let fv = fraction(fo, fu, 10)
771- let fw = T(P, U)
772- let fx = valueOrElse(getInteger(fw), 0)
773- $Tuple2(((if ((fv == 0))
767+ let ft = (aD(9, (base58'29' + aF), aG) + 1)
768+ let fu = fraction(fn, ft, 10)
769+ let fv = T(P, U)
770+ let fw = valueOrElse(getInteger(fv), 0)
771+ $Tuple2(((if ((fu == 0))
774772 then nil
775773 else {
776- let fy = [IntegerEntry(V(U), (valueOrElse(getInteger(V(U)), 0) + fv)), IntegerEntry(fw, (fx + fv))]
777- if ((fx > 0))
778- then fy
779- else (fy :+ IntegerEntry(W(U), (valueOrElse(getInteger(W(U)), 0) + 1)))
780- }) :+ DeleteEntry(T(P, fl))), fv)
774+ let fx = [IntegerEntry(V(U), (valueOrElse(getInteger(V(U)), 0) + fu)), IntegerEntry(fv, (fw + fu))]
775+ if ((fw > 0))
776+ then fx
777+ else (fx :+ IntegerEntry(W(U), (valueOrElse(getInteger(W(U)), 0) + 1)))
778+ }) :+ DeleteEntry(T(P, fk))), fu)
781779 }
782780 }
783781 }
784782 }
785783
786784
787-func fz (P,fA) = {
785+func fy (P,fz) = {
788786 let U = (height / i)
789- let fw = T(P, U)
790- let fB = split(fA, "_")
791- let fC = valueOrElse(getInteger(V(U)), 0)
792- let fx = valueOrElse(getInteger(fw), 0)
793- let fD = if ((aa(parseIntValue(fB[0])) == parseIntValue(fB[1])))
787+ let fv = T(P, U)
788+ let fA = split(fz, "_")
789+ let fB = valueOrElse(getInteger(V(U)), 0)
790+ let fw = valueOrElse(getInteger(fv), 0)
791+ let fC = if ((aa(parseIntValue(fA[0])) == parseIntValue(fA[1])))
794792 then 1
795793 else 0
796- let fE = valueOrElse(getInteger(W(U)), 0)
797- let fF = if (if ((fx == 0))
798- then (fD == 1)
794+ let fD = valueOrElse(getInteger(W(U)), 0)
795+ let fE = if (if ((fw == 0))
796+ then (fC == 1)
799797 else false)
800- then [IntegerEntry(W(U), (fE + 1))]
798+ then [IntegerEntry(W(U), (fD + 1))]
801799 else nil
802- $Tuple2(if ((fD == 0))
800+ $Tuple2(if ((fC == 0))
803801 then nil
804- else ((fF :+ IntegerEntry(fw, (fx + fD))) :+ IntegerEntry(V(U), (fC + fD))), fD)
802+ else ((fE :+ IntegerEntry(fv, (fw + fC))) :+ IntegerEntry(V(U), (fB + fC))), fC)
805803 }
806804
807805
808-@Callable(fG)
809-func constructorV1 (fH,fI,cy,fJ) = if ((fG.caller != this))
806+@Callable(fF)
807+func constructorV1 (fG,fH,cy,fI) = if ((fF.caller != this))
810808 then throw("Permission denied")
811809 else if (isDefined(getBinary(Q)))
812810 then throw("Already initialized")
813811 else {
814812 let cj = aY
815- let fK = Issue("WLGOLD", "WavesLands Gold investment token", cj, 8, true, unit, 0)
816- let fL = calculateAssetId(fK)
817-[fK, IntegerEntry(bs, lastBlock.timestamp), IntegerEntry(bt, cj), IntegerEntry(ey, 0), IntegerEntry(bm, fraction(aY, bb, b)), BinaryEntry(Q, fL), StringEntry(x(), fH), StringEntry(do, fI), StringEntry(bh, cy), StringEntry(ex, fJ)]
813+ let fJ = Issue("WLGOLD", "WavesLands Gold investment token", cj, 8, true, unit, 0)
814+ let fK = calculateAssetId(fJ)
815+[fJ, IntegerEntry(bs, lastBlock.timestamp), IntegerEntry(bt, cj), IntegerEntry(ey, 0), IntegerEntry(bm, fraction(aY, bb, b)), BinaryEntry(Q, fK), StringEntry(x(), fG), StringEntry(do, fH), StringEntry(bh, cy), StringEntry(ex, fI)]
818816 }
819817
820818
821819
822-@Callable(fG)
823-func constructorV2 (fM) = if ((fG.caller != this))
820+@Callable(fF)
821+func constructorV2 (fL) = if ((fF.caller != this))
824822 then throw("Permission denied")
825- else [StringEntry(w(), fM)]
823+ else [StringEntry(w(), fL)]
826824
827825
828826
829-@Callable(fG)
830-func buyWlg (fN) = {
831- let fO = eA()
832- if ((fO == fO))
833- then if ((size(fG.payments) != 1))
827+@Callable(fF)
828+func buyWlg (fM) = {
829+ let fN = eA()
830+ if ((fN == fN))
831+ then if ((size(fF.payments) != 1))
834832 then throw("exactly 1 payment must be attached")
835833 else {
836- let fP = fG.payments[0]
837- let fQ = fP.amount
838- if (if (!(isDefined(fP.assetId)))
834+ let fO = fF.payments[0]
835+ let fP = fO.amount
836+ if (if (!(isDefined(fO.assetId)))
839837 then true
840- else (value(fP.assetId) != k))
838+ else (value(fO.assetId) != k))
841839 then throw("USDT payments only!")
842840 else {
843- let eP = fG.caller
844- let P = toString(eP)
845- if ((d > fQ))
841+ let eO = fF.caller
842+ let P = toString(eO)
843+ if ((d > fP))
846844 then throw((("You can trade min " + ax(d, 6)) + " USDT"))
847845 else {
848- let eR = eg("", [J, K, L, M, N], k, fQ)
849- let fR = eR[ae]
850- let fS = eR[ag]
851- let fT = fraction(fS, 6, 5, CEILING)
852- let fU = fraction(fQ, c, fT)
853- let fV = eB(P)
854- if ((fU > fV))
855- then throw((("You can get max " + ax(fV, 8)) + " WLGOLD at the moment"))
856- else if ((fN > fU))
846+ let eQ = eg("", [J, K, L, M, N], k, fP)
847+ let fQ = eQ[ae]
848+ let fR = eQ[ag]
849+ let fS = fraction(fR, 6, 5, CEILING)
850+ let fT = fraction(fP, c, fS)
851+ let fU = eB(P)
852+ if ((fT > fU))
853+ then throw((("You can get max " + ax(fU, 8)) + " WLGOLD at the moment"))
854+ else if ((fM > fT))
857855 then throw("Price changed during operation, please try again")
858856 else {
859- let fW = (fQ / 6)
860- $Tuple2([Reissue(R, fU, true), IntegerEntry(bt, (fR + fU)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fV - fU)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fW, k), ScriptTransfer(eP, fU, R)], fO)
857+ let fV = (fP / 6)
858+ $Tuple2([Reissue(R, fT, true), IntegerEntry(bt, (fQ + fT)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fU - fT)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fV, k), ScriptTransfer(eO, fT, R)], fN)
861859 }
862860 }
863861 }
864862 }
865863 else throw("Strict value is not equal to itself.")
866864 }
867865
868866
869867
870-@Callable(fG)
871-func buyWlgREADONLY (p,fQ) = {
872- let eR = eg("", [J, K, L, M, N], k, fQ)
873- let fS = eR[ag]
874- let fT = fraction(fS, 6, 5, CEILING)
875- let fU = fraction(fQ, c, fT)
876- let fV = eB(p)
877- let fX = fraction(fV, fT, c)
878- let fW = (fQ / 6)
879- $Tuple2(nil, [fU, d, fX, fW])
868+@Callable(fF)
869+func buyWlgREADONLY (p,fP) = {
870+ let eQ = eg("", [J, K, L, M, N], k, fP)
871+ let fR = eQ[ag]
872+ let fS = fraction(fR, 6, 5, CEILING)
873+ let fT = fraction(fP, c, fS)
874+ let fU = eB(p)
875+ let fW = fraction(fU, fS, c)
876+ let fV = (fP / 6)
877+ $Tuple2(nil, [fT, d, fW, fV])
880878 }
881879
882880
883881
884-@Callable(fG)
885-func sellWlg (fY) = {
886- let fO = eA()
887- if ((fO == fO))
888- then if ((size(fG.payments) != 1))
882+@Callable(fF)
883+func sellWlg (fX) = {
884+ let fN = eA()
885+ if ((fN == fN))
886+ then if ((size(fF.payments) != 1))
889887 then throw("exactly 1 payment must be attached")
890888 else {
891- let fP = fG.payments[0]
892- let fZ = fP.amount
893- let eP = fG.caller
894- let P = toString(eP)
895- let fV = eB(P)
896- if ((fZ > fV))
897- then throw((("You can spend max " + ax(fV, 8)) + " WLGOLD at the moment"))
898- else if (if (!(isDefined(fP.assetId)))
889+ let fO = fF.payments[0]
890+ let fY = fO.amount
891+ let eO = fF.caller
892+ let P = toString(eO)
893+ let fU = eB(P)
894+ if ((fY > fU))
895+ then throw((("You can spend max " + ax(fU, 8)) + " WLGOLD at the moment"))
896+ else if (if (!(isDefined(fO.assetId)))
899897 then true
900- else (value(fP.assetId) != R))
898+ else (value(fO.assetId) != R))
901899 then throw("WLGOLD payments only!")
902900 else {
903- let eR = eg("", [J, K, L, M, N], k, 0)
904- let fR = eR[ae]
905- let ga = (eR[ag] / 2)
906- let fQ = fraction(fZ, ga, c)
907- if ((d > fQ))
901+ let eQ = eg("", [J, K, L, M, N], k, 0)
902+ let fQ = eQ[ae]
903+ let fZ = (eQ[ag] / 2)
904+ let fP = fraction(fY, fZ, c)
905+ if ((d > fP))
908906 then throw((("You can trade min " + ax(d, 6)) + " USDT"))
909- else if ((fY > fQ))
907+ else if ((fX > fP))
910908 then throw("Price changed during operation, please try again")
911909 else {
912- let fW = (fQ / 5)
913- $Tuple2([Burn(R, fZ), IntegerEntry(bt, (fR - fZ)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fV - fZ)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fW, k), ScriptTransfer(eP, fQ, k)], fO)
910+ let fV = (fP / 5)
911+ $Tuple2([Burn(R, fY), IntegerEntry(bt, (fQ - fY)), IntegerEntry(bo(P), lastBlock.timestamp), IntegerEntry(bp(P), (fU - fY)), ScriptTransfer(addressFromStringValue(value(getString(ex))), fV, k), ScriptTransfer(eO, fP, k)], fN)
914912 }
915913 }
916914 }
917915 else throw("Strict value is not equal to itself.")
918916 }
919917
920918
921919
922-@Callable(fG)
923-func sellWlgREADONLY (p,fZ) = {
924- let fV = eB(p)
925- let eR = eg("", [J, K, L, M, N], k, 0)
926- let ga = (eR[ag] / 2)
927- let fQ = fraction(fZ, ga, c)
928- let gb = fraction(d, c, ga)
929- let fW = (fQ / 5)
930- $Tuple2(nil, [fQ, gb, fV, fW])
920+@Callable(fF)
921+func sellWlgREADONLY (p,fY) = {
922+ let fU = eB(p)
923+ let eQ = eg("", [J, K, L, M, N], k, 0)
924+ let fZ = (eQ[ag] / 2)
925+ let fP = fraction(fY, fZ, c)
926+ let ga = fraction(d, c, fZ)
927+ let fV = (fP / 5)
928+ $Tuple2(nil, [fP, ga, fU, fV])
931929 }
932930
933931
934932
935-@Callable(fG)
933+@Callable(fF)
936934 func claim () = {
937- let fO = eA()
938- if ((fO == fO))
939- then if ((size(fG.payments) != 0))
935+ let fN = eA()
936+ if ((fN == fN))
937+ then if ((size(fF.payments) != 0))
940938 then throw("No payments required")
941939 else {
942- let gc = eX(toString(fG.caller))
943- let gd = gc._1
944- let ge = gc._2
945- $Tuple2((gd :+ ScriptTransfer(fG.caller, ge, R)), fO)
940+ let gb = eW(toString(fF.caller))
941+ let gc = gb._1
942+ let gd = gb._2
943+ $Tuple2((gc :+ ScriptTransfer(fF.caller, gd, R)), fN)
946944 }
947945 else throw("Strict value is not equal to itself.")
948946 }
949947
950948
951949
952-@Callable(fG)
953-func onStakeUnstakeLand (P) = if (if (if ((fG.caller != H))
954- then (fG.caller != I)
950+@Callable(fF)
951+func onStakeUnstakeLand (P) = if (if (if ((fF.caller != H))
952+ then (fF.caller != I)
955953 else false)
956- then (fG.caller != K)
954+ then (fF.caller != K)
957955 else false)
958956 then throw("Permission denied")
959957 else {
960- let gf = eX(P)
961- if ((gf == gf))
958+ let ge = eW(P)
959+ if ((ge == ge))
962960 then {
963- let ge = gf._2
964- let gd = gf._1
965- $Tuple2(if ((ge > 0))
966- then (gd :+ ScriptTransfer(addressFromStringValue(P), ge, R))
967- else gd, ge)
961+ let gd = ge._2
962+ let gc = ge._1
963+ $Tuple2(if ((gd > 0))
964+ then (gc :+ ScriptTransfer(addressFromStringValue(P), gd, R))
965+ else gc, gd)
968966 }
969967 else throw("Strict value is not equal to itself.")
970968 }
971969
972970
973971
974-@Callable(fG)
975-func onStakeUnstakeLandOld (P) = if (if (if ((fG.caller != H))
976- then (fG.caller != I)
972+@Callable(fF)
973+func onStakeUnstakeLandOld (P) = if (if (if ((fF.caller != H))
974+ then (fF.caller != I)
977975 else false)
978- then (fG.caller != K)
976+ then (fF.caller != K)
979977 else false)
980978 then throw("Permission denied")
981979 else {
982- let gg = eO(P)
983- if ((gg == gg))
980+ let gf = eN(P)
981+ if ((gf == gf))
984982 then {
985- let ge = gg._2
986- let gd = gg._1
987- $Tuple2(if ((ge > 0))
988- then (gd :+ ScriptTransfer(addressFromStringValue(P), ge, R))
989- else nil, ge)
983+ let gd = gf._2
984+ let gc = gf._1
985+ $Tuple2(if ((gd > 0))
986+ then (gc :+ ScriptTransfer(addressFromStringValue(P), gd, R))
987+ else nil, gd)
990988 }
991989 else throw("Strict value is not equal to itself.")
992990 }
993991
994992
995993
996-@Callable(fG)
997-func burnWlgold (fZ) = if ((fG.caller != K))
994+@Callable(fF)
995+func burnWlgold (fY) = if ((fF.caller != K))
998996 then throw("Permission denied")
999997 else {
1000- let eR = eg("", [J, K, L, M, N], k, 0)
1001- if ((fZ > eR[af]))
1002- then throw(((("Only " + ax(eR[af], 8)) + " WLGOLD left on contract, can't burn ") + ax(fZ, 8)))
998+ let eQ = eg("", [J, K, L, M, N], k, 0)
999+ if ((fY > eQ[af]))
1000+ then throw(((("Only " + ax(eQ[af], 8)) + " WLGOLD left on contract, can't burn ") + ax(fY, 8)))
10031001 else {
1004- let gh = (eR[ae] - fZ)
1005- $Tuple2([Burn(R, fZ), IntegerEntry(bt, gh)], gh)
1002+ let gg = (eQ[ae] - fY)
1003+ $Tuple2([Burn(R, fY), IntegerEntry(bt, gg)], gg)
10061004 }
10071005 }
10081006
10091007
10101008
1011-@Callable(fG)
1012-func betForTicket (gi) = {
1013- let fO = eA()
1014- if ((fO == fO))
1015- then if ((size(fG.payments) != 0))
1009+@Callable(fF)
1010+func betForTicket (gh) = {
1011+ let fN = eA()
1012+ if ((fN == fN))
1013+ then if ((size(fF.payments) != 0))
10161014 then throw("No payments required")
10171015 else {
1018- let P = toString(fG.caller)
1019- let fl = ((height / i) - 1)
1020- let fo = valueOrElse(getInteger(T(P, fl)), 0)
1021- let fp = valueOrElse(getInteger(V(fl)), 0)
1022- if (if ((fo > 0))
1023- then (fp > 0)
1016+ let P = toString(fF.caller)
1017+ let fk = ((height / i) - 1)
1018+ let fn = valueOrElse(getInteger(T(P, fk)), 0)
1019+ let fo = valueOrElse(getInteger(V(fk)), 0)
1020+ if (if ((fn > 0))
1021+ then (fo > 0)
10241022 else false)
10251023 then throw("Please open the chest first")
1026- else if (((gi / 4) != 0))
1024+ else if (((gh / 4) != 0))
10271025 then throw("Invalid bet: should be 0..3")
10281026 else {
1029- let gj = (height % g)
1030- if ((gj > (g - 3)))
1031- then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - gj))) + " blocks"))
1027+ let gi = (height % g)
1028+ if ((gi > (g - 3)))
1029+ then throw((("Cannot bet: the day is almost ended, please wait " + toString((g - gi))) + " blocks"))
10321030 else {
1033- let gk = valueOrElse(getInteger(K, dB(P)), 0)
1034- if ((dK > gk))
1031+ let gj = valueOrElse(getInteger(K, dB(P)), 0)
1032+ if ((dK > gj))
10351033 then throw((("You need to stake at least " + ax(dK, 8)) + " ACRES to bet"))
10361034 else {
1037- let gl = ((height / g) + 1)
1038- let gm = S(P)
1039- let gn = getString(gm)
1040- let go = StringEntry(gm, ((toString(gl) + "_") + toString(gi)))
1041- if (isDefined(gn))
1035+ let gk = ((height / g) + 1)
1036+ let gl = S(P)
1037+ let gm = getString(gl)
1038+ let gn = StringEntry(gl, ((toString(gk) + "_") + toString(gh)))
1039+ if (isDefined(gm))
10421040 then {
1043- let gp = value(gn)
1044- if ((split(gp, "_")[0] == toString(gl)))
1041+ let go = value(gm)
1042+ if ((split(go, "_")[0] == toString(gk)))
10451043 then throw("You already bet for tomorrow")
10461044 else {
1047- let gq = fz(P, gp)
1048- $Tuple2((gq._1 :+ go), gq._2)
1045+ let gp = fy(P, go)
1046+ $Tuple2((gp._1 :+ gn), gp._2)
10491047 }
10501048 }
1051- else $Tuple2([go], 0)
1049+ else $Tuple2([gn], 0)
10521050 }
10531051 }
10541052 }
10551053 }
10561054 else throw("Strict value is not equal to itself.")
10571055 }
10581056
10591057
10601058
1061-@Callable(fG)
1062-func takeWlgXp (P) = if ((fG.caller != H))
1059+@Callable(fF)
1060+func takeWlgXp (P) = if ((fF.caller != H))
10631061 then throw("Permission denied")
10641062 else {
1065- let gr = fe(P, 0)
1066- let gd = gr._1
1067- let aR = gr._2
1068- $Tuple2(gd, aR)
1063+ let gq = fd(P, 0)
1064+ let gc = gq._1
1065+ let aR = gq._2
1066+ $Tuple2(gc, aR)
10691067 }
10701068
10711069
10721070
1073-@Callable(fG)
1071+@Callable(fF)
10741072 func checkWlgXpREADONLY (P) = {
1075- let gs = fe(P, 0)
1076- let gt = gs._1
1077- let gu = gs._2
1078- let aU = (valueOrElse(getInteger(H, aN(P)), 0) + gu)
1079- let gv = aS(valueOrElse(getInteger(H, aO(P)), 0), aU)
1080- $Tuple2(nil, (gv :+ aU))
1073+ let gr = fd(P, 0)
1074+ let gs = gr._1
1075+ let gt = gr._2
1076+ let aU = (valueOrElse(getInteger(H, aN(P)), 0) + gt)
1077+ let gu = aS(valueOrElse(getInteger(H, aO(P)), 0), aU)
1078+ $Tuple2(nil, (gu :+ aU))
10811079 }
10821080
10831081
10841082
1085-@Callable(fG)
1086-func setNumPrizes (fm) = if ((fG.caller != this))
1083+@Callable(fF)
1084+func setNumPrizes (fl) = if ((fF.caller != this))
10871085 then throw("Permission denied")
10881086 else {
10891087 let U = (height / i)
1090- $Tuple2([IntegerEntry(X(U), fm)], fm)
1088+ $Tuple2([IntegerEntry(X(U), fl)], fl)
10911089 }
10921090
10931091
10941092
1095-@Callable(fG)
1093+@Callable(fF)
10961094 func openChest () = {
1097- let fO = eA()
1098- if ((fO == fO))
1099- then if ((size(fG.payments) != 0))
1095+ let fN = eA()
1096+ if ((fN == fN))
1097+ then if ((size(fF.payments) != 0))
11001098 then throw("No payments required")
11011099 else {
1102- let fl = ((height / i) - 1)
1103- let P = toString(fG.caller)
1104- let fo = valueOrElse(getInteger(T(P, fl)), 0)
1105- if ((0 >= fo))
1100+ let fk = ((height / i) - 1)
1101+ let P = toString(fF.caller)
1102+ let fn = valueOrElse(getInteger(T(P, fk)), 0)
1103+ if ((0 >= fn))
11061104 then throw("No gems to open the chest")
1107- else fk(P)
1105+ else fj(P)
11081106 }
11091107 else throw("Strict value is not equal to itself.")
11101108 }
11111109
11121110
11131111
1114-@Callable(fG)
1115-func addGemsFor (P,fD) = if ((fG.caller != this))
1112+@Callable(fF)
1113+func addGemsFor (P,fC) = if ((fF.caller != this))
11161114 then throw("Permission denied")
11171115 else {
11181116 let U = (height / i)
1119- let fw = T(P, U)
1120- let fC = valueOrElse(getInteger(V(U)), 0)
1121- let fx = valueOrElse(getInteger(fw), 0)
1122- let fE = valueOrElse(getInteger(W(U)), 0)
1123- let fF = if (if ((fx == 0))
1124- then (fD == 1)
1117+ let fv = T(P, U)
1118+ let fB = valueOrElse(getInteger(V(U)), 0)
1119+ let fw = valueOrElse(getInteger(fv), 0)
1120+ let fD = valueOrElse(getInteger(W(U)), 0)
1121+ let fE = if (if ((fw == 0))
1122+ then (fC == 1)
11251123 else false)
1126- then [IntegerEntry(W(U), (fE + 1))]
1124+ then [IntegerEntry(W(U), (fD + 1))]
11271125 else nil
1128- $Tuple2(((fF :+ IntegerEntry(fw, (fx + fD))) :+ IntegerEntry(V(U), (fC + fD))), fD)
1126+ $Tuple2(((fE :+ IntegerEntry(fv, (fw + fC))) :+ IntegerEntry(V(U), (fB + fC))), fC)
11291127 }
11301128
11311129

github/deemru/w8io/169f3d6 
230.56 ms