tx · 4n8s95tBrs6Wx1NnHoZutEfWbZ3GtePoRebaXCYcMVmB 3MvJDKBFzztnd7KCU78zgJ8qUuzVux4c9yw: -0.03900000 Waves 2022.10.24 14:58 [2286464] smart account 3MvJDKBFzztnd7KCU78zgJ8qUuzVux4c9yw > SELF 0.00000000 Waves
{ "type": 13, "id": "4n8s95tBrs6Wx1NnHoZutEfWbZ3GtePoRebaXCYcMVmB", "fee": 3900000, "feeAssetId": null, "timestamp": 1666612759069, "version": 2, "chainId": 84, "sender": "3MvJDKBFzztnd7KCU78zgJ8qUuzVux4c9yw", "senderPublicKey": "9gVuyFNzke49pnadJxJ312ZWhYudDhdcqP5hsm5pGQw6", "proofs": [ "213H4PX2qrawLo9SVjJtPQfvz71UXGmuf5NZ2pj9NtazNvyTahyziuZphswe8xRBnErVQnsYBj3PMH1oBk37AmRZ" ], "script": "base64:BgJCCAISAwoBCBIDCgEIEgYKBAgBAQgSBQoDCAEIEgUKAwgIARIECgIIARIDCgEIEgMKAQgSABIECgIIBBIECgIIBBIANAAJdW5kZWZpbmVkAgl1bmRlZmluZWQACXNlcGFyYXRvcgIBOwAQY29uZmlnQWRkcmVzc0tleQIGY29uZmlnABNjb2xsZWN0b3JBZGRyZXNzS2V5AhFjb2xsZWN0b3JfYWRkcmVzcwARaGlzdG9yeUFkZHJlc3NLZXkCD2hpc3RvcnlfYWRkcmVzcwAScGF5bWFrZXJBZGRyZXNzS2V5AhBwYXltYWtlcl9hZGRyZXNzAAlhZG1pbnNLZXkCBmFkbWlucwANY29uZmlnQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUQY29uZmlnQWRkcmVzc0tleQAQY29sbGVjdG9yQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUNY29uZmlnQWRkcmVzcwUTY29sbGVjdG9yQWRkcmVzc0tleQAOaGlzdG9yeUFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MFEWhpc3RvcnlBZGRyZXNzS2V5AA9wYXltYWtlckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MFEnBheW1ha2VyQWRkcmVzc0tleQEHaXNBZG1pbgEGY2FsbGVyBAZhZG1Sb3cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwUJYWRtaW5zS2V5AgADAwkAAAIFBmNhbGxlcgUEdGhpcwYJAQhjb250YWlucwIFBmFkbVJvdwkApQgBBQZjYWxsZXIGBwENZ2V0Q2hlY2tlcktleQEHY2hlY2tlcgkArAICAghjaGVja2VyXwUHY2hlY2tlcgEJaXNDaGVja2VyAQdjaGVja2VyBAhpc0V4aXN0cwkBCWlzRGVmaW5lZAEJAJsIAgUNY29uZmlnQWRkcmVzcwkBDWdldENoZWNrZXJLZXkBBQdjaGVja2VyBQhpc0V4aXN0cwAEVVNETgEgGGZ0QdDy2SHIR4lDSQpxrV4T1zujQWaCMAUlxPMvs9AACW1pbkFtb3VudACAreIEAAxmZWVOdW1lcmF0b3IABQAOZmVlRGVub21pbmF0b3IAZAAObWF4QmV0c09uUHJpY2UAAwANZmlyc3RFdmVudEtleQILZmlyc3RfZXZlbnQADGxhc3RFdmVudEtleQIKbGFzdF9ldmVudAAVZmlzcnRGaW5pc2hlZEV2ZW50S2V5AhRmaXJzdF9maW5pc2hlZF9ldmVudAAUbGFzdEZpbmlzaGVkRXZlbnRLZXkCE2xhc3RfZmluaXNoZWRfZXZlbnQAE2Zpc3J0QWN0aXZlRXZlbnRLZXkCEmZpcnN0X2FjdGl2ZV9ldmVudAASbGFzdEFjdGl2ZUV2ZW50S2V5AhFsYXN0X2FjdGl2ZV9ldmVudAEQZ2V0U3RhcnRCbG9ja0tleQEHZXZlbnRJZAkArAICBQdldmVudElkAgxfc3RhcnRfYmxvY2sBDmdldEVuZEJsb2NrS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCCl9lbmRfYmxvY2sBDmdldEZpbmlzaEF0S2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCEF9maW5pc2hfYXRfYmxvY2sBCGdldElkS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCA19pZAEMZ2V0U3RhdHVzS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCB19zdGF0dXMBCmdldERlc2NLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIMX2Rlc2NyaXB0aW9uAQ9nZXRQcmV2RXZlbnRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAILX3ByZXZfZXZlbnQBD2dldE5leHRFdmVudEtleQEHZXZlbnRJZAkArAICBQdldmVudElkAgtfbmV4dF9ldmVudAENZ2V0QXNzZXRJZEtleQEHZXZlbnRJZAkArAICBQdldmVudElkAglfYXNzZXRfaWQBEWdldFRvdGFsQW1vdW50S2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCDV90b3RhbF9hbW91bnQBF2dldFByaWNlc0dyb3Vwc0NvdW50S2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCE19wcmljZXNfZ3JvdXBfY291bnQBFmdldFByaWNlc0xpc3RzQ291bnRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAISX3ByaWNlc19saXN0X2NvdW50ARFnZXRQcmljZXNMaXN0TktleQIHZXZlbnRJZAFuCQCsAgIJAKwCAgUHZXZlbnRJZAINX3ByaWNlc19saXN0XwkApAMBBQFuARFnZXRQcmljZUJldHNDb3VudAIHZXZlbnRJZAVwcmljZQkArAICCQCsAgIJAKwCAgUHZXZlbnRJZAIBXwkApAMBBQVwcmljZQILX2JldHNfY291bnQBEmdldFByaWNlQWRkcmVzc0tleQIHZXZlbnRJZAdhZGRyZXNzCQCsAgIJAKwCAgkArAICBQdldmVudElkAgFfBQdhZGRyZXNzAgZfcHJpY2UBEWdldFJlc3VsdFByaWNlS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCDV9wcmljZV9yZXN1bHQBE2dldFRlbXBXaW5QcmljZXNLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIQX3ByaWNlc193aW5fdGVtcAEPZ2V0V2luUHJpY2VzS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCC19wcmljZXNfd2luARhnZXRXaW5QcmljZXNDb21wbGV0ZWRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIVX3ByaWNlc193aW5fY29tcGxldGVkASBnZXRQcmljZXNHcm91cHNDb21wbGV0ZWRDb3VudEtleQEHZXZlbnRJZAkArAICBQdldmVudElkAh1fcHJpY2VzX2dyb3VwX2NvbXBsZXRlZF9jb3VudAEYZ2V0V2luUHJpY2VQZXJjZW50YWdlS2V5AgdldmVudElkBXByaWNlCQCsAgIJAKwCAgkArAICBQdldmVudElkAgVfd2luXwkApAMBBQVwcmljZQILX3BlcmNlbnRhZ2UBEmdldFBlcmNlbnRhZ2VDb3VudAIHZXZlbnRJZAdwZXJjZW50CQCsAgIJAKwCAgkArAICBQdldmVudElkAgFfCQCkAwEFB3BlcmNlbnQCDl9wZXJjZW50X2NvdW50AQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAgQjZXJyAQhhc1N0cmluZwEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgJAAIBAgQjZXJyAQxnZXRBc3NldEluZm8BCGFzc2V0U3RyBAdhc3NldElkCQDZBAEFCGFzc2V0U3RyBAF4BAckbWF0Y2gwCQDsBwEFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQCUCgIFCGFzc2V0U3RyCAUFYXNzZXQIZGVjaW1hbHMJAJQKAgIFV0FWRVMAAAUBeAEJZ2V0U3RhdHVzAQdldmVudElkBAZzdGF0dXMJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAQxnZXRTdGF0dXNLZXkBBQdldmVudElkAwMDCQAAAgUGc3RhdHVzAghmaW5pc2hlZAYJAAACBQZzdGF0dXMCASMGCQAAAgUGc3RhdHVzAgVlbmRlZAUGc3RhdHVzBAhmaW5pc2hBdAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBDmdldEZpbmlzaEF0S2V5AQUHZXZlbnRJZAQKc3RhcnRCbG9jawkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBEGdldFN0YXJ0QmxvY2tLZXkBBQdldmVudElkBAhlbmRCbG9jawkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBDmdldEVuZEJsb2NrS2V5AQUHZXZlbnRJZAMJAGYCBQpzdGFydEJsb2NrBQZoZWlnaHQCCGF3YWl0aW5nAwMJAGcCBQZoZWlnaHQFCnN0YXJ0QmxvY2sJAGcCBQhlbmRCbG9jawUGaGVpZ2h0BwIGYWN0aXZlAwMJAGYCBQZoZWlnaHQFCGVuZEJsb2NrCQBnAgUIZmluaXNoQXQFBmhlaWdodAcCDGNvbmZpcm1hdGlvbgMJAGYCBQZoZWlnaHQFCGZpbmlzaEF0AghmaW5pc2hlZAkAAgECDnVua25vd24gc3RhdHVzAQ1yZWdpc3RlckV2ZW50BgR0eGlkBGRlc2MKc3RhcnRCbG9jawhlbmRCbG9jawhmaW5pc2hBdAhhc3NldFN0cgQHZXZlbnRJZAUEdHhpZAQGaW5zZXJ0CQD8BwQFBHRoaXMCDGluc2VydFRvTGlzdAkAzAgCBQdldmVudElkCQDMCAIGBQNuaWwFA25pbAMJAAACBQZpbnNlcnQFBmluc2VydAQGY29uY2F0CQD8BwQFBHRoaXMCC2NvbmNhdExpc3RzBQNuaWwFA25pbAMJAAACBQZjb25jYXQFBmNvbmNhdAQLJHQwNTQ0MDU0OTMJAQxnZXRBc3NldEluZm8BBQhhc3NldFN0cgQHYXNzZXRJZAgFCyR0MDU0NDA1NDkzAl8xBA1hc3NldERlY2ltYWxzCAULJHQwNTQ0MDU0OTMCXzIJAMwIAgkBDEludGVnZXJFbnRyeQIJARBnZXRTdGFydEJsb2NrS2V5AQUHZXZlbnRJZAUKc3RhcnRCbG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmdldEVuZEJsb2NrS2V5AQUHZXZlbnRJZAUIZW5kQmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRGaW5pc2hBdEtleQEFB2V2ZW50SWQFCGZpbmlzaEF0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQpnZXREZXNjS2V5AQUHZXZlbnRJZAUEZGVzYwkAzAgCCQELU3RyaW5nRW50cnkCCQEMZ2V0U3RhdHVzS2V5AQUHZXZlbnRJZAIDbmV3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQhnZXRJZEtleQEFB2V2ZW50SWQFB2V2ZW50SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWdldEFzc2V0SWRLZXkBBQdldmVudElkBQdhc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4MAWkBBGluaXQBBmNvbmZpZwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEG9ubHkgbWFpbiBjYW4gZG8ECGlzRXhpc3RzCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBRBjb25maWdBZGRyZXNzS2V5AwkBASEBBQhpc0V4aXN0cwkAzAgCCQELU3RyaW5nRW50cnkCBRBjb25maWdBZGRyZXNzS2V5BQZjb25maWcFA25pbAkAAgECDmFscmVhZHkgaW5pdGVkAWkBDWFwcGVuZEV2ZW50ZXIBBGRlc2MDCQEBIQEJAQdpc0FkbWluAQgFAWkGY2FsbGVyCQACAQIRb25seSBhZG1pbiBjYW4gZG8EA2ludgkA/AcEBQ1jb25maWdBZGRyZXNzAgpzZXRFdmVudGVyCQDMCAIJAKUIAQUEdGhpcwkAzAgCBQRkZXNjBQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWZ1bGxSZWdpc3RlckV2ZW50BARkZXNjCnN0YXJ0QmxvY2sIZHVyYXRpb24IYXNzZXRTdHIEDW5ld1N0YXJ0QmxvY2sDCQAAAgUKc3RhcnRCbG9jawAABQZoZWlnaHQFCnN0YXJ0QmxvY2sECGVuZEJsb2NrCQBkAgUNbmV3U3RhcnRCbG9jawUIZHVyYXRpb24ECGZpbmlzaEF0CQBkAgUIZW5kQmxvY2sAoAsDCQEBIQEJAQdpc0FkbWluAQgFAWkGY2FsbGVyCQACAQIRb25seSBhZG1pbiBjYW4gZG8EBHR4aWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkBDXJlZ2lzdGVyRXZlbnQGBQR0eGlkBQRkZXNjBQ1uZXdTdGFydEJsb2NrBQhlbmRCbG9jawUIZmluaXNoQXQFCGFzc2V0U3RyAWkBBmNob2ljZQMHZXZlbnRJZAVwcmljZQdhZGRyZXNzBAZzdGF0dXMJAQlnZXRTdGF0dXMBBQdldmVudElkAwkAAAIFBnN0YXR1cwIGYWN0aXZlBAxuZWVkZWRBbW91bnQAgK3iBAQLbmVlZGVkQXNzZXQFBFVTRE4DAwMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFC25lZWRlZEFzc2V0BwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQxuZWVkZWRBbW91bnQHBAlpbnZBcHBlbmQJAPwHBAUEdGhpcwIOYXBwZW5kQmV0c0xpc3QJAMwIAgUHZXZlbnRJZAkAzAgCBQdhZGRyZXNzCQDMCAIFBXByaWNlBQNuaWwFA25pbAMJAAACBQlpbnZBcHBlbmQFCWludkFwcGVuZAQMY3VycmVudFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARFnZXRUb3RhbEFtb3VudEtleQEFB2V2ZW50SWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEWdldFRvdGFsQW1vdW50S2V5AQUHZXZlbnRJZAkAZAIFDGN1cnJlbnRUb3RhbAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC0JhZCBwYXltZW50CQACAQIPWW91IGNhbmB0IGRvIGl0AWkBDmFwcGVuZEJldHNMaXN0AwdldmVudElkCmFkZHJlc3NTdHIFcHJpY2UDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhBvbmx5IG1haW4gY2FuIGRvAwkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwkBEmdldFByaWNlQWRkcmVzc0tleQIFB2V2ZW50SWQFCmFkZHJlc3NTdHIJAAIBAiNiZXR0aW5nIGZyb20gdGhpcyBhZGRyZXNzIGlzIGV4aXN0cwQOY291bnRCZXRzUHJpY2UJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBEWdldFByaWNlQmV0c0NvdW50AgUHZXZlbnRJZAUFcHJpY2UAAAMJAGcCBQ5jb3VudEJldHNQcmljZQUObWF4QmV0c09uUHJpY2UJAAIBAgx0byBtYW55IGJldHMECWxpc3RJbmRleAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEWZ2V0UHJpY2VzTGlzdHNDb3VudEtleQEFB2V2ZW50SWQAAQQNY3VycmVudFByaWNlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQERZ2V0UHJpY2VzTGlzdE5LZXkCBQdldmVudElkBQlsaXN0SW5kZXgCAAQRY3VycmVudFByaWNlc0xpc3QJALwJAgUNY3VycmVudFByaWNlcwUJc2VwYXJhdG9yBAhsaXN0U2l6ZQkAkAMBBRFjdXJyZW50UHJpY2VzTGlzdAQJbmV3UHJpY2VzAwkAAAIFDmNvdW50QmV0c1ByaWNlAAADCQBmAgBkBQhsaXN0U2l6ZQMJAAACCQCxAgEFDWN1cnJlbnRQcmljZXMAAAkApAMBBQVwcmljZQkArAICCQCsAgIFDWN1cnJlbnRQcmljZXMFCXNlcGFyYXRvcgkApAMBBQVwcmljZQkApAMBBQVwcmljZQUNY3VycmVudFByaWNlcwQMbmV3TGlzdEluZGV4AwMJAGcCBQhsaXN0U2l6ZQBkCQAAAgUOY291bnRCZXRzUHJpY2UAAAcJAGQCBQlsaXN0SW5kZXgAAQUJbGlzdEluZGV4BA5uZXdHcm91cHNDb3VudAkAZAIJAGkCCQBlAgUMbmV3TGlzdEluZGV4AAEACgABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0UHJpY2VBZGRyZXNzS2V5AgUHZXZlbnRJZAUKYWRkcmVzc1N0cgUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARZnZXRQcmljZXNMaXN0c0NvdW50S2V5AQUHZXZlbnRJZAUMbmV3TGlzdEluZGV4CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEXZ2V0UHJpY2VzR3JvdXBzQ291bnRLZXkBBQdldmVudElkBQ5uZXdHcm91cHNDb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEWdldFByaWNlQmV0c0NvdW50AgUHZXZlbnRJZAUFcHJpY2UJAGQCBQ5jb3VudEJldHNQcmljZQABCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQFDG5ld0xpc3RJbmRleAUJbmV3UHJpY2VzBQNuaWwBaQELc2V0V2luUHJpY2UCB2V2ZW50SWQFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARFnZXRSZXN1bHRQcmljZUtleQEFB2V2ZW50SWQFBXByaWNlBQNuaWwBaQEQdmFsaWRhdGVCZXRzTGlzdAEHZXZlbnRJZAQLcmVzdWx0UHJpY2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzCQERZ2V0UmVzdWx0UHJpY2VLZXkBBQdldmVudElkAhRSZXN1bHQgcHJpY2Ugbm90IHNldAQPZ3JvdXBzQ29tcGxldGVkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJASBnZXRQcmljZXNHcm91cHNDb21wbGV0ZWRDb3VudEtleQEFB2V2ZW50SWQAAAQOc3RhcnRMaXN0SW5kZXgJAGQCCQBoAgUPZ3JvdXBzQ29tcGxldGVkAAoAAQQEbHN0MQkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAAAgAFCXNlcGFyYXRvcgQEbHN0MgkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAABAgAFCXNlcGFyYXRvcgQEbHN0MwkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAACAgAFCXNlcGFyYXRvcgQEbHN0NAkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAADAgAFCXNlcGFyYXRvcgQEbHN0NQkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAEAgAFCXNlcGFyYXRvcgQEbHN0NgkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAFAgAFCXNlcGFyYXRvcgQEbHN0NwkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAGAgAFCXNlcGFyYXRvcgQEbHN0OAkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAHAgAFCXNlcGFyYXRvcgQEbHN0OQkAvAkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAIAgAFCXNlcGFyYXRvcgQFbHN0MTAJALwJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQERZ2V0UHJpY2VzTGlzdE5LZXkCBQdldmVudElkCQBkAgUOc3RhcnRMaXN0SW5kZXgACQIABQlzZXBhcmF0b3IEA2xzdAkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgUEbHN0MQUEbHN0MgUEbHN0MwUEbHN0NAUEbHN0NQUEbHN0NgUEbHN0NwUEbHN0OAUEbHN0OQUFbHN0MTAKAQxmb2xkVmFsaWRhdGUCBWFjY3VtBG5leHQEA3ZhbAkBDXBhcnNlSW50VmFsdWUBBQRuZXh0BAVkZWx0YQMJAGcCBQN2YWwFC3Jlc3VsdFByaWNlCQBlAgUDdmFsBQtyZXN1bHRQcmljZQkAZQIFC3Jlc3VsdFByaWNlBQN2YWwDCQEPY29udGFpbnNFbGVtZW50AgUFYWNjdW0FBWRlbHRhBQVhY2N1bQkAzQgCBQVhY2N1bQUFZGVsdGEEEmZvbGRWYWxpZGF0ZVJlc3VsdAoAAiRsBQNsc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGZvbGRWYWxpZGF0ZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIWTGlzdCBzaXplIGV4Y2VlZHMgMTAwMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAewB8AH0AfgB/AIABAIEBAIIBAIMBAIQBAIUBAIYBAIcBAIgBAIkBAIoBAIsBAIwBAI0BAI4BAI8BAJABAJEBAJIBAJMBAJQBAJUBAJYBAJcBAJgBAJkBAJoBAJsBAJwBAJ0BAJ4BAJ8BAKABAKEBAKIBAKMBAKQBAKUBAKYBAKcBAKgBAKkBAKoBAKsBAKwBAK0BAK4BAK8BALABALEBALIBALMBALQBALUBALYBALcBALgBALkBALoBALsBALwBAL0BAL4BAL8BAMABAMEBAMIBAMMBAMQBAMUBAMYBAMcBAMgBAMkBAMoBAMsBAMwBAM0BAM4BAM8BANABANEBANIBANMBANQBANUBANYBANcBANgBANkBANoBANsBANwBAN0BAN4BAN8BAOABAOEBAOIBAOMBAOQBAOUBAOYBAOcBAOgBAOkBAOoBAOsBAOwBAO0BAO4BAO8BAPABAPEBAPIBAPMBAPQBAPUBAPYBAPcBAPgBAPkBAPoBAPsBAPwBAP0BAP4BAP8BAIACAIECAIICAIMCAIQCAIUCAIYCAIcCAIgCAIkCAIoCAIsCAIwCAI0CAI4CAI8CAJACAJECAJICAJMCAJQCAJUCAJYCAJcCAJgCAJkCAJoCAJsCAJwCAJ0CAJ4CAJ8CAKACAKECAKICAKMCAKQCAKUCAKYCAKcCAKgCAKkCAKoCAKsCAKwCAK0CAK4CAK8CALACALECALICALMCALQCALUCALYCALcCALgCALkCALoCALsCALwCAL0CAL4CAL8CAMACAMECAMICAMMCAMQCAMUCAMYCAMcCAMgCAMkCAMoCAMsCAMwCAM0CAM4CAM8CANACANECANICANMCANQCANUCANYCANcCANgCANkCANoCANsCANwCAN0CAN4CAN8CAOACAOECAOICAOMCAOQCAOUCAOYCAOcCAOgCAOkCAOoCAOsCAOwCAO0CAO4CAO8CAPACAPECAPICAPMCAPQCAPUCAPYCAPcCAPgCAPkCAPoCAPsCAPwCAP0CAP4CAP8CAIADAIEDAIIDAIMDAIQDAIUDAIYDAIcDAIgDAIkDAIoDAIsDAIwDAI0DAI4DAI8DAJADAJEDAJIDAJMDAJQDAJUDAJYDAJcDAJgDAJkDAJoDAJsDAJwDAJ0DAJ4DAJ8DAKADAKEDAKIDAKMDAKQDAKUDAKYDAKcDAKgDAKkDAKoDAKsDAKwDAK0DAK4DAK8DALADALEDALIDALMDALQDALUDALYDALcDALgDALkDALoDALsDALwDAL0DAL4DAL8DAMADAMEDAMIDAMMDAMQDAMUDAMYDAMcDAMgDAMkDAMoDAMsDAMwDAM0DAM4DAM8DANADANEDANIDANMDANQDANUDANYDANcDANgDANkDANoDANsDANwDAN0DAN4DAN8DAOADAOEDAOIDAOMDAOQDAOUDAOYDAOcDAOgDAOkDAOoDAOsDAOwDAO0DAO4DAO8DAPADAPEDAPIDAPMDAPQDAPUDAPYDAPcDAPgDAPkDAPoDAPsDAPwDAP0DAP4DAP8DAIAEAIEEAIIEAIMEAIQEAIUEAIYEAIcEAIgEAIkEAIoEAIsEAIwEAI0EAI4EAI8EAJAEAJEEAJIEAJMEAJQEAJUEAJYEAJcEAJgEAJkEAJoEAJsEAJwEAJ0EAJ4EAJ8EAKAEAKEEAKIEAKMEAKQEAKUEAKYEAKcEAKgEAKkEAKoEAKsEAKwEAK0EAK4EAK8EALAEALEEALIEALMEALQEALUEALYEALcEALgEALkEALoEALsEALwEAL0EAL4EAL8EAMAEAMEEAMIEAMMEAMQEAMUEAMYEAMcEAMgEAMkEAMoEAMsEAMwEAM0EAM4EAM8EANAEANEEANIEANMEANQEANUEANYEANcEANgEANkEANoEANsEANwEAN0EAN4EAN8EAOAEAOEEAOIEAOMEAOQEAOUEAOYEAOcEAOgEAOkEAOoEAOsEAOwEAO0EAO4EAO8EAPAEAPEEAPIEAPMEAPQEAPUEAPYEAPcEAPgEAPkEAPoEAPsEAPwEAP0EAP4EAP8EAIAFAIEFAIIFAIMFAIQFAIUFAIYFAIcFAIgFAIkFAIoFAIsFAIwFAI0FAI4FAI8FAJAFAJEFAJIFAJMFAJQFAJUFAJYFAJcFAJgFAJkFAJoFAJsFAJwFAJ0FAJ4FAJ8FAKAFAKEFAKIFAKMFAKQFAKUFAKYFAKcFAKgFAKkFAKoFAKsFAKwFAK0FAK4FAK8FALAFALEFALIFALMFALQFALUFALYFALcFALgFALkFALoFALsFALwFAL0FAL4FAL8FAMAFAMEFAMIFAMMFAMQFAMUFAMYFAMcFAMgFAMkFAMoFAMsFAMwFAM0FAM4FAM8FANAFANEFANIFANMFANQFANUFANYFANcFANgFANkFANoFANsFANwFAN0FAN4FAN8FAOAFAOEFAOIFAOMFAOQFAOUFAOYFAOcFAOgFAOkFAOoFAOsFAOwFAO0FAO4FAO8FAPAFAPEFAPIFAPMFAPQFAPUFAPYFAPcFAPgFAPkFAPoFAPsFAPwFAP0FAP4FAP8FAIAGAIEGAIIGAIMGAIQGAIUGAIYGAIcGAIgGAIkGAIoGAIsGAIwGAI0GAI4GAI8GAJAGAJEGAJIGAJMGAJQGAJUGAJYGAJcGAJgGAJkGAJoGAJsGAJwGAJ0GAJ4GAJ8GAKAGAKEGAKIGAKMGAKQGAKUGAKYGAKcGAKgGAKkGAKoGAKsGAKwGAK0GAK4GAK8GALAGALEGALIGALMGALQGALUGALYGALcGALgGALkGALoGALsGALwGAL0GAL4GAL8GAMAGAMEGAMIGAMMGAMQGAMUGAMYGAMcGAMgGAMkGAMoGAMsGAMwGAM0GAM4GAM8GANAGANEGANIGANMGANQGANUGANYGANcGANgGANkGANoGANsGANwGAN0GAN4GAN8GAOAGAOEGAOIGAOMGAOQGAOUGAOYGAOcGAOgGAOkGAOoGAOsGAOwGAO0GAO4GAO8GAPAGAPEGAPIGAPMGAPQGAPUGAPYGAPcGAPgGAPkGAPoGAPsGAPwGAP0GAP4GAP8GAIAHAIEHAIIHAIMHAIQHAIUHAIYHAIcHAIgHAIkHAIoHAIsHAIwHAI0HAI4HAI8HAJAHAJEHAJIHAJMHAJQHAJUHAJYHAJcHAJgHAJkHAJoHAJsHAJwHAJ0HAJ4HAJ8HAKAHAKEHAKIHAKMHAKQHAKUHAKYHAKcHAKgHAKkHAKoHAKsHAKwHAK0HAK4HAK8HALAHALEHALIHALMHALQHALUHALYHALcHALgHALkHALoHALsHALwHAL0HAL4HAL8HAMAHAMEHAMIHAMMHAMQHAMUHAMYHAMcHAMgHAMkHAMoHAMsHAMwHAM0HAM4HAM8HANAHANEHANIHANMHANQHANUHANYHANcHANgHANkHANoHANsHANwHAN0HAN4HAN8HAOAHAOEHAOIHAOMHAOQHAOUHAOYHAOcHAOgHCgEIZm9sZFNvcnQCBWFjY3VtBG5leHQEDSR0MDExNTQ5MTE1ODAFBWFjY3VtBAhpbml0TGlzdAgFDSR0MDExNTQ5MTE1ODACXzEEB25ld0xpc3QIBQ0kdDAxMTU0OTExNTgwAl8yBAhtaW5WYWx1ZQkAlwMBBQhpbml0TGlzdAkAlAoCCQDRCAIFCGluaXRMaXN0CQEFYXNJbnQBCQDPCAIFCGluaXRMaXN0BQhtaW5WYWx1ZQkAzQgCBQduZXdMaXN0BQhtaW5WYWx1ZQQOZm9sZFNvcnRSZXN1bHQKAAIkbAUSZm9sZFZhbGlkYXRlUmVzdWx0CgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBRJmb2xkVmFsaWRhdGVSZXN1bHQFA25pbAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZFNvcnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAZtaW5Mc3QIBQ5mb2xkU29ydFJlc3VsdAJfMgQNdGVtcFdpblByaWNlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQETZ2V0VGVtcFdpblByaWNlc0tleQEFB2V2ZW50SWQCAAQQbmV3VGVtcFdpblByaWNlcwMJAAACCQCxAgEFDXRlbXBXaW5QcmljZXMAAAkAugkCBQZtaW5Mc3QFCXNlcGFyYXRvcgkArAICCQCsAgIFDXRlbXBXaW5QcmljZXMFCXNlcGFyYXRvcgkAugkCBQZtaW5Mc3QFCXNlcGFyYXRvcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBIGdldFByaWNlc0dyb3Vwc0NvbXBsZXRlZENvdW50S2V5AQUHZXZlbnRJZAkAZAIFD2dyb3Vwc0NvbXBsZXRlZAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNnZXRUZW1wV2luUHJpY2VzS2V5AQUHZXZlbnRJZAUQbmV3VGVtcFdpblByaWNlcwUDbmlsAWkBCnNldFdpbm5lcnMBB2V2ZW50SWQEC2dyb3Vwc0NvdW50CQCaCAIFBHRoaXMJARdnZXRQcmljZXNHcm91cHNDb3VudEtleQEFB2V2ZW50SWQED2dyb3Vwc0NvbXBsZXRlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEgZ2V0UHJpY2VzR3JvdXBzQ29tcGxldGVkQ291bnRLZXkBBQdldmVudElkAAADCQECIT0CBQ9ncm91cHNDb21wbGV0ZWQFC2dyb3Vwc0NvdW50CQACAQIYdmFsaWRhdGUgaXMgbm90IGNvbXBsZXRlBAtyZXN1bHRQcmljZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMJARFnZXRSZXN1bHRQcmljZUtleQEFB2V2ZW50SWQCFFJlc3VsdCBwcmljZSBub3Qgc2V0BA10ZW1wV2luUHJpY2VzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwkBE2dldFRlbXBXaW5QcmljZXNLZXkBBQdldmVudElkAhl0ZW1wIHdpbiBwcmljZXMgbm90IGZvdW5kBBB0ZW1wV2luUHJpY2VzTHN0CQC8CQIFDXRlbXBXaW5QcmljZXMFCXNlcGFyYXRvcgoBCWZvbGRUb0ludAIFYWNjdW0EbmV4dAQDdmFsCQENcGFyc2VJbnRWYWx1ZQEFBG5leHQJAM0IAgUFYWNjdW0FA3ZhbAQTdGVtcFdpblByaWNlc0xzdEludAoAAiRsBRB0ZW1wV2luUHJpY2VzTHN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlmb2xkVG9JbnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFkxpc3Qgc2l6ZSBleGNlZWRzIDEwMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAQCBAQCCAQCDAQCEAQCFAQCGAQCHAQCIAQCJAQCKAQCLAQCMAQCNAQCOAQCPAQCQAQCRAQCSAQCTAQCUAQCVAQCWAQCXAQCYAQCZAQCaAQCbAQCcAQCdAQCeAQCfAQCgAQChAQCiAQCjAQCkAQClAQCmAQCnAQCoAQCpAQCqAQCrAQCsAQCtAQCuAQCvAQCwAQCxAQCyAQCzAQC0AQC1AQC2AQC3AQC4AQC5AQC6AQC7AQC8AQC9AQC+AQC/AQDAAQDBAQDCAQDDAQDEAQDFAQDGAQDHAQDIAQDJAQDKAQDLAQDMAQDNAQDOAQDPAQDQAQDRAQDSAQDTAQDUAQDVAQDWAQDXAQDYAQDZAQDaAQDbAQDcAQDdAQDeAQDfAQDgAQDhAQDiAQDjAQDkAQDlAQDmAQDnAQDoAQDpAQDqAQDrAQDsAQDtAQDuAQDvAQDwAQDxAQDyAQDzAQD0AQD1AQD2AQD3AQD4AQD5AQD6AQD7AQD8AQD9AQD+AQD/AQCAAgCBAgCCAgCDAgCEAgCFAgCGAgCHAgCIAgCJAgCKAgCLAgCMAgCNAgCOAgCPAgCQAgCRAgCSAgCTAgCUAgCVAgCWAgCXAgCYAgCZAgCaAgCbAgCcAgCdAgCeAgCfAgCgAgChAgCiAgCjAgCkAgClAgCmAgCnAgCoAgCpAgCqAgCrAgCsAgCtAgCuAgCvAgCwAgCxAgCyAgCzAgC0AgC1AgC2AgC3AgC4AgC5AgC6AgC7AgC8AgC9AgC+AgC/AgDAAgDBAgDCAgDDAgDEAgDFAgDGAgDHAgDIAgDJAgDKAgDLAgDMAgDNAgDOAgDPAgDQAgDRAgDSAgDTAgDUAgDVAgDWAgDXAgDYAgDZAgDaAgDbAgDcAgDdAgDeAgDfAgDgAgDhAgDiAgDjAgDkAgDlAgDmAgDnAgDoAgDpAgDqAgDrAgDsAgDtAgDuAgDvAgDwAgDxAgDyAgDzAgD0AgD1AgD2AgD3AgD4AgD5AgD6AgD7AgD8AgD9AgD+AgD/AgCAAwCBAwCCAwCDAwCEAwCFAwCGAwCHAwCIAwCJAwCKAwCLAwCMAwCNAwCOAwCPAwCQAwCRAwCSAwCTAwCUAwCVAwCWAwCXAwCYAwCZAwCaAwCbAwCcAwCdAwCeAwCfAwCgAwChAwCiAwCjAwCkAwClAwCmAwCnAwCoAwCpAwCqAwCrAwCsAwCtAwCuAwCvAwCwAwCxAwCyAwCzAwC0AwC1AwC2AwC3AwC4AwC5AwC6AwC7AwC8AwC9AwC+AwC/AwDAAwDBAwDCAwDDAwDEAwDFAwDGAwDHAwDIAwDJAwDKAwDLAwDMAwDNAwDOAwDPAwDQAwDRAwDSAwDTAwDUAwDVAwDWAwDXAwDYAwDZAwDaAwDbAwDcAwDdAwDeAwDfAwDgAwDhAwDiAwDjAwDkAwDlAwDmAwDnAwDoAwDpAwDqAwDrAwDsAwDtAwDuAwDvAwDwAwDxAwDyAwDzAwD0AwD1AwD2AwD3AwD4AwD5AwD6AwD7AwD8AwD9AwD+AwD/AwCABACBBACCBACDBACEBACFBACGBACHBACIBACJBACKBACLBACMBACNBACOBACPBACQBACRBACSBACTBACUBACVBACWBACXBACYBACZBACaBACbBACcBACdBACeBACfBACgBAChBACiBACjBACkBAClBACmBACnBACoBACpBACqBACrBACsBACtBACuBACvBACwBACxBACyBACzBAC0BAC1BAC2BAC3BAC4BAC5BAC6BAC7BAC8BAC9BAC+BAC/BADABADBBADCBADDBADEBADFBADGBADHBADIBADJBADKBADLBADMBADNBADOBADPBADQBADRBADSBADTBADUBADVBADWBADXBADYBADZBADaBADbBADcBADdBADeBADfBADgBADhBADiBADjBADkBADlBADmBADnBADoBADpBADqBADrBADsBADtBADuBADvBADwBADxBADyBADzBAD0BAD1BAD2BAD3BAD4BAD5BAD6BAD7BAD8BAD9BAD+BAD/BACABQCBBQCCBQCDBQCEBQCFBQCGBQCHBQCIBQCJBQCKBQCLBQCMBQCNBQCOBQCPBQCQBQCRBQCSBQCTBQCUBQCVBQCWBQCXBQCYBQCZBQCaBQCbBQCcBQCdBQCeBQCfBQCgBQChBQCiBQCjBQCkBQClBQCmBQCnBQCoBQCpBQCqBQCrBQCsBQCtBQCuBQCvBQCwBQCxBQCyBQCzBQC0BQC1BQC2BQC3BQC4BQC5BQC6BQC7BQC8BQC9BQC+BQC/BQDABQDBBQDCBQDDBQDEBQDFBQDGBQDHBQDIBQDJBQDKBQDLBQDMBQDNBQDOBQDPBQDQBQDRBQDSBQDTBQDUBQDVBQDWBQDXBQDYBQDZBQDaBQDbBQDcBQDdBQDeBQDfBQDgBQDhBQDiBQDjBQDkBQDlBQDmBQDnBQDoBQDpBQDqBQDrBQDsBQDtBQDuBQDvBQDwBQDxBQDyBQDzBQD0BQD1BQD2BQD3BQD4BQD5BQD6BQD7BQD8BQD9BQD+BQD/BQCABgCBBgCCBgCDBgCEBgCFBgCGBgCHBgCIBgCJBgCKBgCLBgCMBgCNBgCOBgCPBgCQBgCRBgCSBgCTBgCUBgCVBgCWBgCXBgCYBgCZBgCaBgCbBgCcBgCdBgCeBgCfBgCgBgChBgCiBgCjBgCkBgClBgCmBgCnBgCoBgCpBgCqBgCrBgCsBgCtBgCuBgCvBgCwBgCxBgCyBgCzBgC0BgC1BgC2BgC3BgC4BgC5BgC6BgC7BgC8BgC9BgC+BgC/BgDABgDBBgDCBgDDBgDEBgDFBgDGBgDHBgDIBgDJBgDKBgDLBgDMBgDNBgDOBgDPBgDQBgDRBgDSBgDTBgDUBgDVBgDWBgDXBgDYBgDZBgDaBgDbBgDcBgDdBgDeBgDfBgDgBgDhBgDiBgDjBgDkBgDlBgDmBgDnBgDoBgDpBgDqBgDrBgDsBgDtBgDuBgDvBgDwBgDxBgDyBgDzBgD0BgD1BgD2BgD3BgD4BgD5BgD6BgD7BgD8BgD9BgD+BgD/BgCABwCBBwCCBwCDBwCEBwCFBwCGBwCHBwCIBwCJBwCKBwCLBwCMBwCNBwCOBwCPBwCQBwCRBwCSBwCTBwCUBwCVBwCWBwCXBwCYBwCZBwCaBwCbBwCcBwCdBwCeBwCfBwCgBwChBwCiBwCjBwCkBwClBwCmBwCnBwCoBwCpBwCqBwCrBwCsBwCtBwCuBwCvBwCwBwCxBwCyBwCzBwC0BwC1BwC2BwC3BwC4BwC5BwC6BwC7BwC8BwC9BwC+BwC/BwDABwDBBwDCBwDDBwDEBwDFBwDGBwDHBwDIBwDJBwDKBwDLBwDMBwDNBwDOBwDPBwDQBwDRBwDSBwDTBwDUBwDVBwDWBwDXBwDYBwDZBwDaBwDbBwDcBwDdBwDeBwDfBwDgBwDhBwDiBwDjBwDkBwDlBwDmBwDnBwDoBwMJAAACBRN0ZW1wV2luUHJpY2VzTHN0SW50BRN0ZW1wV2luUHJpY2VzTHN0SW50CgEOZm9sZEdldFdpbm5lcnMCBWFjY3VtBG5leHQEDSR0MDEzMTM3MTMxNzkFBWFjY3VtBAdpbml0THN0CAUNJHQwMTMxMzcxMzE3OQJfMQQGbmV3THN0CAUNJHQwMTMxMzcxMzE3OQJfMgQGc3RhdGVzCAUNJHQwMTMxMzcxMzE3OQJfMwQDaW5kCAUNJHQwMTMxMzcxMzE3OQJfNAQFZGVsdGEJAJcDAQUHaW5pdExzdAQKbmV3SW5pdExzdAkA0QgCBQdpbml0THN0CQEFYXNJbnQBCQDPCAIFB2luaXRMc3QFBWRlbHRhAwkAZgIADQUDaW5kBApwZXJjZW50YWdlAwkAZgIAAwUDaW5kAEEACgMJAAACBQVkZWx0YQAABAliZXRzQ291bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJARFnZXRQcmljZUJldHNDb3VudAIFB2V2ZW50SWQFC3Jlc3VsdFByaWNlBAluZXdTdGF0ZXMJAM4IAgUGc3RhdGVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYZ2V0V2luUHJpY2VQZXJjZW50YWdlS2V5AgUHZXZlbnRJZAULcmVzdWx0UHJpY2UFCnBlcmNlbnRhZ2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARJnZXRQZXJjZW50YWdlQ291bnQCBQdldmVudElkBQpwZXJjZW50YWdlCQBkAgkAZAIFA2luZAUJYmV0c0NvdW50AAEFA25pbAQJbmV3TmV3THN0CQDNCAIFBm5ld0xzdAULcmVzdWx0UHJpY2UJAJYKBAUKbmV3SW5pdExzdAUJbmV3TmV3THN0BQluZXdTdGF0ZXMJAGQCBQNpbmQFCWJldHNDb3VudAQKcEJldHNDb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQERZ2V0UHJpY2VCZXRzQ291bnQCBQdldmVudElkCQBkAgULcmVzdWx0UHJpY2UFBWRlbHRhAAAECm5CZXRzQ291bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBEWdldFByaWNlQmV0c0NvdW50AgUHZXZlbnRJZAkAZQIFC3Jlc3VsdFByaWNlBQVkZWx0YQAABAluZXdTdGF0ZXMJAM4IAgUGc3RhdGVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYZ2V0V2luUHJpY2VQZXJjZW50YWdlS2V5AgUHZXZlbnRJZAULcmVzdWx0UHJpY2UFCnBlcmNlbnRhZ2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARJnZXRQZXJjZW50YWdlQ291bnQCBQdldmVudElkBQpwZXJjZW50YWdlCQBkAgkAZAIJAGQCBQNpbmQFCnBCZXRzQ291bnQFCm5CZXRzQ291bnQAAQUDbmlsBAluZXdOZXdMc3QJAM0IAgUGbmV3THN0BQtyZXN1bHRQcmljZQkAlgoEBQpuZXdJbml0THN0BQluZXdOZXdMc3QFCW5ld1N0YXRlcwkAZAIJAGQCBQNpbmQFCnBCZXRzQ291bnQFCm5CZXRzQ291bnQJAJYKBAUKbmV3SW5pdExzdAUGbmV3THN0BQZzdGF0ZXMFA2luZAQUZm9sZEdldFdpbm5lcnNSZXN1bHQKAAIkbAUTdGVtcFdpblByaWNlc0xzdEludAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJYKBAUTdGVtcFdpblByaWNlc0xzdEludAUDbmlsBQNuaWwAAAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEOZm9sZEdldFdpbm5lcnMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAZzdGF0ZXMIBRRmb2xkR2V0V2lubmVyc1Jlc3VsdAJfMwQJd2luUHJpY2VzCQC6CQIIBRRmb2xkR2V0V2lubmVyc1Jlc3VsdAJfMgUJc2VwYXJhdG9yBAluZXdTdGF0ZXMJAM4IAgUGc3RhdGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9nZXRXaW5QcmljZXNLZXkBBQdldmVudElkBQl3aW5QcmljZXMJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARhnZXRXaW5QcmljZXNDb21wbGV0ZWRLZXkBBQdldmVudElkBgUDbmlsBQluZXdTdGF0ZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJcmVzZXRMaXN0AAMJAQEhAQkBB2lzQWRtaW4BCAUBaQZjYWxsZXIJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwkAzAgCCQELU3RyaW5nRW50cnkCBQ1maXJzdEV2ZW50S2V5BQl1bmRlZmluZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUMbGFzdEV2ZW50S2V5BQl1bmRlZmluZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUTZmlzcnRBY3RpdmVFdmVudEtleQUJdW5kZWZpbmVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFEmxhc3RBY3RpdmVFdmVudEtleQUJdW5kZWZpbmVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFFWZpc3J0RmluaXNoZWRFdmVudEtleQUJdW5kZWZpbmVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFFGxhc3RGaW5pc2hlZEV2ZW50S2V5BQl1bmRlZmluZWQFA25pbAFpAQxpbnNlcnRUb0xpc3QCB2V2ZW50SWQIaXNBY3RpdmUDCQECIT0CBQR0aGlzCAUBaQZjYWxsZXIJAAIBAhBvbmx5IG1haW4gY2FuIGRvBAdsYXN0S2V5AwUIaXNBY3RpdmUFEmxhc3RBY3RpdmVFdmVudEtleQUUbGFzdEZpbmlzaGVkRXZlbnRLZXkECGZpcnN0S2V5AwUIaXNBY3RpdmUFE2Zpc3J0QWN0aXZlRXZlbnRLZXkFFWZpc3J0RmluaXNoZWRFdmVudEtleQQKZmlyc3RFdmVudAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQhmaXJzdEtleQUJdW5kZWZpbmVkBAlsYXN0RXZlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUHbGFzdEtleQUJdW5kZWZpbmVkBBBuZXdMYXN0T3JQcmV2S2V5AwkAAAIFCWxhc3RFdmVudAUJdW5kZWZpbmVkBQdsYXN0S2V5CQEPZ2V0UHJldkV2ZW50S2V5AQUKZmlyc3RFdmVudAkAzAgCCQELU3RyaW5nRW50cnkCBQhmaXJzdEtleQUHZXZlbnRJZAkAzAgCCQELU3RyaW5nRW50cnkCBRBuZXdMYXN0T3JQcmV2S2V5BQdldmVudElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9nZXROZXh0RXZlbnRLZXkBBQdldmVudElkBQpmaXJzdEV2ZW50BQNuaWwBaQEOZGVsZXRlRnJvbUxpc3QCB2V2ZW50SWQIaXNBY3RpdmUDCQECIT0CBQR0aGlzCAUBaQZjYWxsZXIJAAIBAhBvbmx5IG1haW4gY2FuIGRvBAdsYXN0S2V5AwUIaXNBY3RpdmUFEmxhc3RBY3RpdmVFdmVudEtleQUUbGFzdEZpbmlzaGVkRXZlbnRLZXkECGZpcnN0S2V5AwUIaXNBY3RpdmUFE2Zpc3J0QWN0aXZlRXZlbnRLZXkFFWZpc3J0RmluaXNoZWRFdmVudEtleQQKZmlyc3RFdmVudAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQhmaXJzdEtleQUJdW5kZWZpbmVkBAlsYXN0RXZlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUHbGFzdEtleQUJdW5kZWZpbmVkBA1wcmV2RXZlbnRUZW1wCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9nZXRQcmV2RXZlbnRLZXkBBQdldmVudElkBQl1bmRlZmluZWQEDW5leHRFdmVudFRlbXAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2dldE5leHRFdmVudEtleQEFB2V2ZW50SWQFCXVuZGVmaW5lZAQJcHJldkV2ZW50AwkAAAIFB2V2ZW50SWQFCmZpcnN0RXZlbnQFCXVuZGVmaW5lZAUNcHJldkV2ZW50VGVtcAQJbmV4dEV2ZW50AwkAAAIFB2V2ZW50SWQFCWxhc3RFdmVudAUJdW5kZWZpbmVkBQ1uZXh0RXZlbnRUZW1wAwMJAAACBQlwcmV2RXZlbnQFCXVuZGVmaW5lZAkAAAIFCW5leHRFdmVudAUJdW5kZWZpbmVkBwkAzAgCCQELU3RyaW5nRW50cnkCBQhmaXJzdEtleQUJdW5kZWZpbmVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2xhc3RLZXkFCXVuZGVmaW5lZAUDbmlsAwMJAQIhPQIFCXByZXZFdmVudAUJdW5kZWZpbmVkCQECIT0CBQluZXh0RXZlbnQFCXVuZGVmaW5lZAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldFByZXZFdmVudEtleQEFCW5leHRFdmVudAUJcHJldkV2ZW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9nZXROZXh0RXZlbnRLZXkBBQlwcmV2RXZlbnQFCW5leHRFdmVudAUDbmlsAwkBAiE9AgUJcHJldkV2ZW50BQl1bmRlZmluZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUHbGFzdEtleQUJcHJldkV2ZW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9nZXROZXh0RXZlbnRLZXkBBQlwcmV2RXZlbnQFCXVuZGVmaW5lZAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIFCGZpcnN0S2V5BQluZXh0RXZlbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldFByZXZFdmVudEtleQEFCW5leHRFdmVudAUJdW5kZWZpbmVkBQNuaWwBaQELY29uY2F0TGlzdHMAAwkBASEBCQEHaXNBZG1pbgEIBQFpBmNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvBBBmaXJzdEFjdGl2ZUV2ZW50CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFE2Zpc3J0QWN0aXZlRXZlbnRLZXkFCXVuZGVmaW5lZAQPbGFzdEFjdGl2ZUV2ZW50CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEmxhc3RBY3RpdmVFdmVudEtleQUJdW5kZWZpbmVkBBJmaXJzdEZpbmlzaGVkRXZlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUVZmlzcnRGaW5pc2hlZEV2ZW50S2V5BQl1bmRlZmluZWQEEWxhc3RGaW5pc2hlZEV2ZW50CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFFGxhc3RGaW5pc2hlZEV2ZW50S2V5BQl1bmRlZmluZWQECmZpcnN0RXZlbnQDCQECIT0CBRBmaXJzdEFjdGl2ZUV2ZW50BQl1bmRlZmluZWQFEGZpcnN0QWN0aXZlRXZlbnQFEmZpcnN0RmluaXNoZWRFdmVudAQJbGFzdEV2ZW50AwkBAiE9AgURbGFzdEZpbmlzaGVkRXZlbnQFCXVuZGVmaW5lZAURbGFzdEZpbmlzaGVkRXZlbnQFD2xhc3RBY3RpdmVFdmVudAMDCQECIT0CBRJmaXJzdEZpbmlzaGVkRXZlbnQFCXVuZGVmaW5lZAkBAiE9AgUPbGFzdEFjdGl2ZUV2ZW50BQl1bmRlZmluZWQHCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWZpcnN0RXZlbnRLZXkFCmZpcnN0RXZlbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgUMbGFzdEV2ZW50S2V5BQlsYXN0RXZlbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldE5leHRFdmVudEtleQEFD2xhc3RBY3RpdmVFdmVudAUSZmlyc3RGaW5pc2hlZEV2ZW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9nZXRQcmV2RXZlbnRLZXkBBRJmaXJzdEZpbmlzaGVkRXZlbnQFD2xhc3RBY3RpdmVFdmVudAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWZpcnN0RXZlbnRLZXkFCmZpcnN0RXZlbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgUMbGFzdEV2ZW50S2V5BQlsYXN0RXZlbnQFA25pbADDJdwE", "height": 2286464, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 62hNWXLTe1uXx2fyH8UUaPACY8Kw2GmLdrNecuuspgxk Next: 76cVVS89iDxMMpVJw42VMqWT7rkrwQwLppHpv91jWsba Diff:
Old | New | Differences | |
---|---|---|---|
109 | 109 | func getPriceAddressKey (eventId,address) = (((eventId + "_") + address) + "_price") | |
110 | 110 | ||
111 | 111 | ||
112 | + | func getResultPriceKey (eventId) = (eventId + "_price_result") | |
113 | + | ||
114 | + | ||
115 | + | func getTempWinPricesKey (eventId) = (eventId + "_prices_win_temp") | |
116 | + | ||
117 | + | ||
118 | + | func getWinPricesKey (eventId) = (eventId + "_prices_win") | |
119 | + | ||
120 | + | ||
121 | + | func getWinPricesCompletedKey (eventId) = (eventId + "_prices_win_completed") | |
122 | + | ||
123 | + | ||
124 | + | func getPricesGroupsCompletedCountKey (eventId) = (eventId + "_prices_group_completed_count") | |
125 | + | ||
126 | + | ||
127 | + | func getWinPricePercentageKey (eventId,price) = (((eventId + "_win_") + toString(price)) + "_percentage") | |
128 | + | ||
129 | + | ||
130 | + | func getPercentageCount (eventId,percent) = (((eventId + "_") + toString(percent)) + "_percent_count") | |
131 | + | ||
132 | + | ||
112 | 133 | func asInt (v) = match v { | |
113 | 134 | case x: Int => | |
114 | 135 | x | |
174 | 195 | let concat = invoke(this, "concatLists", nil, nil) | |
175 | 196 | if ((concat == concat)) | |
176 | 197 | then { | |
177 | - | let $ | |
178 | - | let assetId = $ | |
179 | - | let assetDecimals = $ | |
198 | + | let $t054405493 = getAssetInfo(assetStr) | |
199 | + | let assetId = $t054405493._1 | |
200 | + | let assetDecimals = $t054405493._2 | |
180 | 201 | [IntegerEntry(getStartBlockKey(eventId), startBlock), IntegerEntry(getEndBlockKey(eventId), endBlock), IntegerEntry(getFinishAtKey(eventId), finishAt), StringEntry(getDescKey(eventId), desc), StringEntry(getStatusKey(eventId), "new"), StringEntry(getIdKey(eventId), eventId), StringEntry(getAssetIdKey(eventId), assetId)] | |
181 | 202 | } | |
182 | 203 | else throw("Strict value is not equal to itself.") | |
288 | 309 | ||
289 | 310 | ||
290 | 311 | @Callable(i) | |
312 | + | func setWinPrice (eventId,price) = [IntegerEntry(getResultPriceKey(eventId), price)] | |
313 | + | ||
314 | + | ||
315 | + | ||
316 | + | @Callable(i) | |
317 | + | func validateBetsList (eventId) = { | |
318 | + | let resultPrice = valueOrErrorMessage(getInteger(this, getResultPriceKey(eventId)), "Result price not set") | |
319 | + | let groupsCompleted = valueOrElse(getInteger(this, getPricesGroupsCompletedCountKey(eventId)), 0) | |
320 | + | let startListIndex = ((groupsCompleted * 10) + 1) | |
321 | + | let lst1 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 0))), ""), separator) | |
322 | + | let lst2 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 1))), ""), separator) | |
323 | + | let lst3 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 2))), ""), separator) | |
324 | + | let lst4 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 3))), ""), separator) | |
325 | + | let lst5 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 4))), ""), separator) | |
326 | + | let lst6 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 5))), ""), separator) | |
327 | + | let lst7 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 6))), ""), separator) | |
328 | + | let lst8 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 7))), ""), separator) | |
329 | + | let lst9 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 8))), ""), separator) | |
330 | + | let lst10 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 9))), ""), separator) | |
331 | + | let lst = (((((((((lst1 ++ lst2) ++ lst3) ++ lst4) ++ lst5) ++ lst6) ++ lst7) ++ lst8) ++ lst9) ++ lst10) | |
332 | + | func foldValidate (accum,next) = { | |
333 | + | let val = parseIntValue(next) | |
334 | + | let delta = if ((val >= resultPrice)) | |
335 | + | then (val - resultPrice) | |
336 | + | else (resultPrice - val) | |
337 | + | if (containsElement(accum, delta)) | |
338 | + | then accum | |
339 | + | else (accum :+ delta) | |
340 | + | } | |
341 | + | ||
342 | + | let foldValidateResult = { | |
343 | + | let $l = lst | |
344 | + | let $s = size($l) | |
345 | + | let $acc0 = nil | |
346 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
347 | + | then $a | |
348 | + | else foldValidate($a, $l[$i]) | |
349 | + | ||
350 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
351 | + | then $a | |
352 | + | else throw("List size exceeds 1000") | |
353 | + | ||
354 | + | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200), 201), 202), 203), 204), 205), 206), 207), 208), 209), 210), 211), 212), 213), 214), 215), 216), 217), 218), 219), 220), 221), 222), 223), 224), 225), 226), 227), 228), 229), 230), 231), 232), 233), 234), 235), 236), 237), 238), 239), 240), 241), 242), 243), 244), 245), 246), 247), 248), 249), 250), 251), 252), 253), 254), 255), 256), 257), 258), 259), 260), 261), 262), 263), 264), 265), 266), 267), 268), 269), 270), 271), 272), 273), 274), 275), 276), 277), 278), 279), 280), 281), 282), 283), 284), 285), 286), 287), 288), 289), 290), 291), 292), 293), 294), 295), 296), 297), 298), 299), 300), 301), 302), 303), 304), 305), 306), 307), 308), 309), 310), 311), 312), 313), 314), 315), 316), 317), 318), 319), 320), 321), 322), 323), 324), 325), 326), 327), 328), 329), 330), 331), 332), 333), 334), 335), 336), 337), 338), 339), 340), 341), 342), 343), 344), 345), 346), 347), 348), 349), 350), 351), 352), 353), 354), 355), 356), 357), 358), 359), 360), 361), 362), 363), 364), 365), 366), 367), 368), 369), 370), 371), 372), 373), 374), 375), 376), 377), 378), 379), 380), 381), 382), 383), 384), 385), 386), 387), 388), 389), 390), 391), 392), 393), 394), 395), 396), 397), 398), 399), 400), 401), 402), 403), 404), 405), 406), 407), 408), 409), 410), 411), 412), 413), 414), 415), 416), 417), 418), 419), 420), 421), 422), 423), 424), 425), 426), 427), 428), 429), 430), 431), 432), 433), 434), 435), 436), 437), 438), 439), 440), 441), 442), 443), 444), 445), 446), 447), 448), 449), 450), 451), 452), 453), 454), 455), 456), 457), 458), 459), 460), 461), 462), 463), 464), 465), 466), 467), 468), 469), 470), 471), 472), 473), 474), 475), 476), 477), 478), 479), 480), 481), 482), 483), 484), 485), 486), 487), 488), 489), 490), 491), 492), 493), 494), 495), 496), 497), 498), 499), 500), 501), 502), 503), 504), 505), 506), 507), 508), 509), 510), 511), 512), 513), 514), 515), 516), 517), 518), 519), 520), 521), 522), 523), 524), 525), 526), 527), 528), 529), 530), 531), 532), 533), 534), 535), 536), 537), 538), 539), 540), 541), 542), 543), 544), 545), 546), 547), 548), 549), 550), 551), 552), 553), 554), 555), 556), 557), 558), 559), 560), 561), 562), 563), 564), 565), 566), 567), 568), 569), 570), 571), 572), 573), 574), 575), 576), 577), 578), 579), 580), 581), 582), 583), 584), 585), 586), 587), 588), 589), 590), 591), 592), 593), 594), 595), 596), 597), 598), 599), 600), 601), 602), 603), 604), 605), 606), 607), 608), 609), 610), 611), 612), 613), 614), 615), 616), 617), 618), 619), 620), 621), 622), 623), 624), 625), 626), 627), 628), 629), 630), 631), 632), 633), 634), 635), 636), 637), 638), 639), 640), 641), 642), 643), 644), 645), 646), 647), 648), 649), 650), 651), 652), 653), 654), 655), 656), 657), 658), 659), 660), 661), 662), 663), 664), 665), 666), 667), 668), 669), 670), 671), 672), 673), 674), 675), 676), 677), 678), 679), 680), 681), 682), 683), 684), 685), 686), 687), 688), 689), 690), 691), 692), 693), 694), 695), 696), 697), 698), 699), 700), 701), 702), 703), 704), 705), 706), 707), 708), 709), 710), 711), 712), 713), 714), 715), 716), 717), 718), 719), 720), 721), 722), 723), 724), 725), 726), 727), 728), 729), 730), 731), 732), 733), 734), 735), 736), 737), 738), 739), 740), 741), 742), 743), 744), 745), 746), 747), 748), 749), 750), 751), 752), 753), 754), 755), 756), 757), 758), 759), 760), 761), 762), 763), 764), 765), 766), 767), 768), 769), 770), 771), 772), 773), 774), 775), 776), 777), 778), 779), 780), 781), 782), 783), 784), 785), 786), 787), 788), 789), 790), 791), 792), 793), 794), 795), 796), 797), 798), 799), 800), 801), 802), 803), 804), 805), 806), 807), 808), 809), 810), 811), 812), 813), 814), 815), 816), 817), 818), 819), 820), 821), 822), 823), 824), 825), 826), 827), 828), 829), 830), 831), 832), 833), 834), 835), 836), 837), 838), 839), 840), 841), 842), 843), 844), 845), 846), 847), 848), 849), 850), 851), 852), 853), 854), 855), 856), 857), 858), 859), 860), 861), 862), 863), 864), 865), 866), 867), 868), 869), 870), 871), 872), 873), 874), 875), 876), 877), 878), 879), 880), 881), 882), 883), 884), 885), 886), 887), 888), 889), 890), 891), 892), 893), 894), 895), 896), 897), 898), 899), 900), 901), 902), 903), 904), 905), 906), 907), 908), 909), 910), 911), 912), 913), 914), 915), 916), 917), 918), 919), 920), 921), 922), 923), 924), 925), 926), 927), 928), 929), 930), 931), 932), 933), 934), 935), 936), 937), 938), 939), 940), 941), 942), 943), 944), 945), 946), 947), 948), 949), 950), 951), 952), 953), 954), 955), 956), 957), 958), 959), 960), 961), 962), 963), 964), 965), 966), 967), 968), 969), 970), 971), 972), 973), 974), 975), 976), 977), 978), 979), 980), 981), 982), 983), 984), 985), 986), 987), 988), 989), 990), 991), 992), 993), 994), 995), 996), 997), 998), 999), 1000) | |
355 | + | } | |
356 | + | func foldSort (accum,next) = { | |
357 | + | let $t01154911580 = accum | |
358 | + | let initList = $t01154911580._1 | |
359 | + | let newList = $t01154911580._2 | |
360 | + | let minValue = min(initList) | |
361 | + | $Tuple2(removeByIndex(initList, asInt(indexOf(initList, minValue))), (newList :+ minValue)) | |
362 | + | } | |
363 | + | ||
364 | + | let foldSortResult = { | |
365 | + | let $l = foldValidateResult | |
366 | + | let $s = size($l) | |
367 | + | let $acc0 = $Tuple2(foldValidateResult, nil) | |
368 | + | func $f1_1 ($a,$i) = if (($i >= $s)) | |
369 | + | then $a | |
370 | + | else foldSort($a, $l[$i]) | |
371 | + | ||
372 | + | func $f1_2 ($a,$i) = if (($i >= $s)) | |
373 | + | then $a | |
374 | + | else throw("List size exceeds 15") | |
375 | + | ||
376 | + | $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15) | |
377 | + | } | |
378 | + | let minLst = foldSortResult._2 | |
379 | + | let tempWinPrices = valueOrElse(getString(this, getTempWinPricesKey(eventId)), "") | |
380 | + | let newTempWinPrices = if ((size(tempWinPrices) == 0)) | |
381 | + | then makeString_2C(minLst, separator) | |
382 | + | else ((tempWinPrices + separator) + makeString_2C(minLst, separator)) | |
383 | + | [IntegerEntry(getPricesGroupsCompletedCountKey(eventId), (groupsCompleted + 1)), StringEntry(getTempWinPricesKey(eventId), newTempWinPrices)] | |
384 | + | } | |
385 | + | ||
386 | + | ||
387 | + | ||
388 | + | @Callable(i) | |
389 | + | func setWinners (eventId) = { | |
390 | + | let groupsCount = getInteger(this, getPricesGroupsCountKey(eventId)) | |
391 | + | let groupsCompleted = valueOrElse(getInteger(this, getPricesGroupsCompletedCountKey(eventId)), 0) | |
392 | + | if ((groupsCompleted != groupsCount)) | |
393 | + | then throw("validate is not complete") | |
394 | + | else { | |
395 | + | let resultPrice = valueOrErrorMessage(getInteger(this, getResultPriceKey(eventId)), "Result price not set") | |
396 | + | let tempWinPrices = valueOrErrorMessage(getString(this, getTempWinPricesKey(eventId)), "temp win prices not found") | |
397 | + | let tempWinPricesLst = split_4C(tempWinPrices, separator) | |
398 | + | func foldToInt (accum,next) = { | |
399 | + | let val = parseIntValue(next) | |
400 | + | (accum :+ val) | |
401 | + | } | |
402 | + | ||
403 | + | let tempWinPricesLstInt = { | |
404 | + | let $l = tempWinPricesLst | |
405 | + | let $s = size($l) | |
406 | + | let $acc0 = nil | |
407 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
408 | + | then $a | |
409 | + | else foldToInt($a, $l[$i]) | |
410 | + | ||
411 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
412 | + | then $a | |
413 | + | else throw("List size exceeds 1000") | |
414 | + | ||
415 | + | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200), 201), 202), 203), 204), 205), 206), 207), 208), 209), 210), 211), 212), 213), 214), 215), 216), 217), 218), 219), 220), 221), 222), 223), 224), 225), 226), 227), 228), 229), 230), 231), 232), 233), 234), 235), 236), 237), 238), 239), 240), 241), 242), 243), 244), 245), 246), 247), 248), 249), 250), 251), 252), 253), 254), 255), 256), 257), 258), 259), 260), 261), 262), 263), 264), 265), 266), 267), 268), 269), 270), 271), 272), 273), 274), 275), 276), 277), 278), 279), 280), 281), 282), 283), 284), 285), 286), 287), 288), 289), 290), 291), 292), 293), 294), 295), 296), 297), 298), 299), 300), 301), 302), 303), 304), 305), 306), 307), 308), 309), 310), 311), 312), 313), 314), 315), 316), 317), 318), 319), 320), 321), 322), 323), 324), 325), 326), 327), 328), 329), 330), 331), 332), 333), 334), 335), 336), 337), 338), 339), 340), 341), 342), 343), 344), 345), 346), 347), 348), 349), 350), 351), 352), 353), 354), 355), 356), 357), 358), 359), 360), 361), 362), 363), 364), 365), 366), 367), 368), 369), 370), 371), 372), 373), 374), 375), 376), 377), 378), 379), 380), 381), 382), 383), 384), 385), 386), 387), 388), 389), 390), 391), 392), 393), 394), 395), 396), 397), 398), 399), 400), 401), 402), 403), 404), 405), 406), 407), 408), 409), 410), 411), 412), 413), 414), 415), 416), 417), 418), 419), 420), 421), 422), 423), 424), 425), 426), 427), 428), 429), 430), 431), 432), 433), 434), 435), 436), 437), 438), 439), 440), 441), 442), 443), 444), 445), 446), 447), 448), 449), 450), 451), 452), 453), 454), 455), 456), 457), 458), 459), 460), 461), 462), 463), 464), 465), 466), 467), 468), 469), 470), 471), 472), 473), 474), 475), 476), 477), 478), 479), 480), 481), 482), 483), 484), 485), 486), 487), 488), 489), 490), 491), 492), 493), 494), 495), 496), 497), 498), 499), 500), 501), 502), 503), 504), 505), 506), 507), 508), 509), 510), 511), 512), 513), 514), 515), 516), 517), 518), 519), 520), 521), 522), 523), 524), 525), 526), 527), 528), 529), 530), 531), 532), 533), 534), 535), 536), 537), 538), 539), 540), 541), 542), 543), 544), 545), 546), 547), 548), 549), 550), 551), 552), 553), 554), 555), 556), 557), 558), 559), 560), 561), 562), 563), 564), 565), 566), 567), 568), 569), 570), 571), 572), 573), 574), 575), 576), 577), 578), 579), 580), 581), 582), 583), 584), 585), 586), 587), 588), 589), 590), 591), 592), 593), 594), 595), 596), 597), 598), 599), 600), 601), 602), 603), 604), 605), 606), 607), 608), 609), 610), 611), 612), 613), 614), 615), 616), 617), 618), 619), 620), 621), 622), 623), 624), 625), 626), 627), 628), 629), 630), 631), 632), 633), 634), 635), 636), 637), 638), 639), 640), 641), 642), 643), 644), 645), 646), 647), 648), 649), 650), 651), 652), 653), 654), 655), 656), 657), 658), 659), 660), 661), 662), 663), 664), 665), 666), 667), 668), 669), 670), 671), 672), 673), 674), 675), 676), 677), 678), 679), 680), 681), 682), 683), 684), 685), 686), 687), 688), 689), 690), 691), 692), 693), 694), 695), 696), 697), 698), 699), 700), 701), 702), 703), 704), 705), 706), 707), 708), 709), 710), 711), 712), 713), 714), 715), 716), 717), 718), 719), 720), 721), 722), 723), 724), 725), 726), 727), 728), 729), 730), 731), 732), 733), 734), 735), 736), 737), 738), 739), 740), 741), 742), 743), 744), 745), 746), 747), 748), 749), 750), 751), 752), 753), 754), 755), 756), 757), 758), 759), 760), 761), 762), 763), 764), 765), 766), 767), 768), 769), 770), 771), 772), 773), 774), 775), 776), 777), 778), 779), 780), 781), 782), 783), 784), 785), 786), 787), 788), 789), 790), 791), 792), 793), 794), 795), 796), 797), 798), 799), 800), 801), 802), 803), 804), 805), 806), 807), 808), 809), 810), 811), 812), 813), 814), 815), 816), 817), 818), 819), 820), 821), 822), 823), 824), 825), 826), 827), 828), 829), 830), 831), 832), 833), 834), 835), 836), 837), 838), 839), 840), 841), 842), 843), 844), 845), 846), 847), 848), 849), 850), 851), 852), 853), 854), 855), 856), 857), 858), 859), 860), 861), 862), 863), 864), 865), 866), 867), 868), 869), 870), 871), 872), 873), 874), 875), 876), 877), 878), 879), 880), 881), 882), 883), 884), 885), 886), 887), 888), 889), 890), 891), 892), 893), 894), 895), 896), 897), 898), 899), 900), 901), 902), 903), 904), 905), 906), 907), 908), 909), 910), 911), 912), 913), 914), 915), 916), 917), 918), 919), 920), 921), 922), 923), 924), 925), 926), 927), 928), 929), 930), 931), 932), 933), 934), 935), 936), 937), 938), 939), 940), 941), 942), 943), 944), 945), 946), 947), 948), 949), 950), 951), 952), 953), 954), 955), 956), 957), 958), 959), 960), 961), 962), 963), 964), 965), 966), 967), 968), 969), 970), 971), 972), 973), 974), 975), 976), 977), 978), 979), 980), 981), 982), 983), 984), 985), 986), 987), 988), 989), 990), 991), 992), 993), 994), 995), 996), 997), 998), 999), 1000) | |
416 | + | } | |
417 | + | if ((tempWinPricesLstInt == tempWinPricesLstInt)) | |
418 | + | then { | |
419 | + | func foldGetWinners (accum,next) = { | |
420 | + | let $t01313713179 = accum | |
421 | + | let initLst = $t01313713179._1 | |
422 | + | let newLst = $t01313713179._2 | |
423 | + | let states = $t01313713179._3 | |
424 | + | let ind = $t01313713179._4 | |
425 | + | let delta = min(initLst) | |
426 | + | let newInitLst = removeByIndex(initLst, asInt(indexOf(initLst, delta))) | |
427 | + | if ((13 > ind)) | |
428 | + | then { | |
429 | + | let percentage = if ((3 > ind)) | |
430 | + | then 65 | |
431 | + | else 10 | |
432 | + | if ((delta == 0)) | |
433 | + | then { | |
434 | + | let betsCount = getIntegerValue(this, getPriceBetsCount(eventId, resultPrice)) | |
435 | + | let newStates = (states ++ [IntegerEntry(getWinPricePercentageKey(eventId, resultPrice), percentage), IntegerEntry(getPercentageCount(eventId, percentage), ((ind + betsCount) + 1))]) | |
436 | + | let newNewLst = (newLst :+ resultPrice) | |
437 | + | $Tuple4(newInitLst, newNewLst, newStates, (ind + betsCount)) | |
438 | + | } | |
439 | + | else { | |
440 | + | let pBetsCount = valueOrElse(getInteger(this, getPriceBetsCount(eventId, (resultPrice + delta))), 0) | |
441 | + | let nBetsCount = valueOrElse(getInteger(this, getPriceBetsCount(eventId, (resultPrice - delta))), 0) | |
442 | + | let newStates = (states ++ [IntegerEntry(getWinPricePercentageKey(eventId, resultPrice), percentage), IntegerEntry(getPercentageCount(eventId, percentage), (((ind + pBetsCount) + nBetsCount) + 1))]) | |
443 | + | let newNewLst = (newLst :+ resultPrice) | |
444 | + | $Tuple4(newInitLst, newNewLst, newStates, ((ind + pBetsCount) + nBetsCount)) | |
445 | + | } | |
446 | + | } | |
447 | + | else $Tuple4(newInitLst, newLst, states, ind) | |
448 | + | } | |
449 | + | ||
450 | + | let foldGetWinnersResult = { | |
451 | + | let $l = tempWinPricesLstInt | |
452 | + | let $s = size($l) | |
453 | + | let $acc0 = $Tuple4(tempWinPricesLstInt, nil, nil, 0) | |
454 | + | func $f1_1 ($a,$i) = if (($i >= $s)) | |
455 | + | then $a | |
456 | + | else foldGetWinners($a, $l[$i]) | |
457 | + | ||
458 | + | func $f1_2 ($a,$i) = if (($i >= $s)) | |
459 | + | then $a | |
460 | + | else throw("List size exceeds 15") | |
461 | + | ||
462 | + | $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15) | |
463 | + | } | |
464 | + | let states = foldGetWinnersResult._3 | |
465 | + | let winPrices = makeString_2C(foldGetWinnersResult._2, separator) | |
466 | + | let newStates = (states ++ [StringEntry(getWinPricesKey(eventId), winPrices), BooleanEntry(getWinPricesCompletedKey(eventId), true)]) | |
467 | + | newStates | |
468 | + | } | |
469 | + | else throw("Strict value is not equal to itself.") | |
470 | + | } | |
471 | + | } | |
472 | + | ||
473 | + | ||
474 | + | ||
475 | + | @Callable(i) | |
291 | 476 | func resetList () = if (!(isAdmin(i.caller))) | |
292 | 477 | then throw("only admin can do") | |
293 | 478 | else [StringEntry(firstEventKey, undefined), StringEntry(lastEventKey, undefined), StringEntry(fisrtActiveEventKey, undefined), StringEntry(lastActiveEventKey, undefined), StringEntry(fisrtFinishedEventKey, undefined), StringEntry(lastFinishedEventKey, undefined)] |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let undefined = "undefined" | |
5 | 5 | ||
6 | 6 | let separator = ";" | |
7 | 7 | ||
8 | 8 | let configAddressKey = "config" | |
9 | 9 | ||
10 | 10 | let collectorAddressKey = "collector_address" | |
11 | 11 | ||
12 | 12 | let historyAddressKey = "history_address" | |
13 | 13 | ||
14 | 14 | let paymakerAddressKey = "paymaker_address" | |
15 | 15 | ||
16 | 16 | let adminsKey = "admins" | |
17 | 17 | ||
18 | 18 | let configAddress = addressFromStringValue(getStringValue(this, configAddressKey)) | |
19 | 19 | ||
20 | 20 | let collectorAddress = addressFromStringValue(getStringValue(configAddress, collectorAddressKey)) | |
21 | 21 | ||
22 | 22 | let historyAddress = addressFromStringValue(getStringValue(configAddress, historyAddressKey)) | |
23 | 23 | ||
24 | 24 | let paymakerAddress = addressFromStringValue(getStringValue(configAddress, paymakerAddressKey)) | |
25 | 25 | ||
26 | 26 | func isAdmin (caller) = { | |
27 | 27 | let admRow = valueOrElse(getString(configAddress, adminsKey), "") | |
28 | 28 | if (if ((caller == this)) | |
29 | 29 | then true | |
30 | 30 | else contains(admRow, toString(caller))) | |
31 | 31 | then true | |
32 | 32 | else false | |
33 | 33 | } | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func getCheckerKey (checker) = ("checker_" + checker) | |
37 | 37 | ||
38 | 38 | ||
39 | 39 | func isChecker (checker) = { | |
40 | 40 | let isExists = isDefined(getBoolean(configAddress, getCheckerKey(checker))) | |
41 | 41 | isExists | |
42 | 42 | } | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | let USDN = base58'2eFPx8M5qwNFRbW91pzsyBKMz1FZmYMUW3BVZzTQmbFD' | |
46 | 46 | ||
47 | 47 | let minAmount = 10000000 | |
48 | 48 | ||
49 | 49 | let feeNumerator = 5 | |
50 | 50 | ||
51 | 51 | let feeDenominator = 100 | |
52 | 52 | ||
53 | 53 | let maxBetsOnPrice = 3 | |
54 | 54 | ||
55 | 55 | let firstEventKey = "first_event" | |
56 | 56 | ||
57 | 57 | let lastEventKey = "last_event" | |
58 | 58 | ||
59 | 59 | let fisrtFinishedEventKey = "first_finished_event" | |
60 | 60 | ||
61 | 61 | let lastFinishedEventKey = "last_finished_event" | |
62 | 62 | ||
63 | 63 | let fisrtActiveEventKey = "first_active_event" | |
64 | 64 | ||
65 | 65 | let lastActiveEventKey = "last_active_event" | |
66 | 66 | ||
67 | 67 | func getStartBlockKey (eventId) = (eventId + "_start_block") | |
68 | 68 | ||
69 | 69 | ||
70 | 70 | func getEndBlockKey (eventId) = (eventId + "_end_block") | |
71 | 71 | ||
72 | 72 | ||
73 | 73 | func getFinishAtKey (eventId) = (eventId + "_finish_at_block") | |
74 | 74 | ||
75 | 75 | ||
76 | 76 | func getIdKey (eventId) = (eventId + "_id") | |
77 | 77 | ||
78 | 78 | ||
79 | 79 | func getStatusKey (eventId) = (eventId + "_status") | |
80 | 80 | ||
81 | 81 | ||
82 | 82 | func getDescKey (eventId) = (eventId + "_description") | |
83 | 83 | ||
84 | 84 | ||
85 | 85 | func getPrevEventKey (eventId) = (eventId + "_prev_event") | |
86 | 86 | ||
87 | 87 | ||
88 | 88 | func getNextEventKey (eventId) = (eventId + "_next_event") | |
89 | 89 | ||
90 | 90 | ||
91 | 91 | func getAssetIdKey (eventId) = (eventId + "_asset_id") | |
92 | 92 | ||
93 | 93 | ||
94 | 94 | func getTotalAmountKey (eventId) = (eventId + "_total_amount") | |
95 | 95 | ||
96 | 96 | ||
97 | 97 | func getPricesGroupsCountKey (eventId) = (eventId + "_prices_group_count") | |
98 | 98 | ||
99 | 99 | ||
100 | 100 | func getPricesListsCountKey (eventId) = (eventId + "_prices_list_count") | |
101 | 101 | ||
102 | 102 | ||
103 | 103 | func getPricesListNKey (eventId,n) = ((eventId + "_prices_list_") + toString(n)) | |
104 | 104 | ||
105 | 105 | ||
106 | 106 | func getPriceBetsCount (eventId,price) = (((eventId + "_") + toString(price)) + "_bets_count") | |
107 | 107 | ||
108 | 108 | ||
109 | 109 | func getPriceAddressKey (eventId,address) = (((eventId + "_") + address) + "_price") | |
110 | 110 | ||
111 | 111 | ||
112 | + | func getResultPriceKey (eventId) = (eventId + "_price_result") | |
113 | + | ||
114 | + | ||
115 | + | func getTempWinPricesKey (eventId) = (eventId + "_prices_win_temp") | |
116 | + | ||
117 | + | ||
118 | + | func getWinPricesKey (eventId) = (eventId + "_prices_win") | |
119 | + | ||
120 | + | ||
121 | + | func getWinPricesCompletedKey (eventId) = (eventId + "_prices_win_completed") | |
122 | + | ||
123 | + | ||
124 | + | func getPricesGroupsCompletedCountKey (eventId) = (eventId + "_prices_group_completed_count") | |
125 | + | ||
126 | + | ||
127 | + | func getWinPricePercentageKey (eventId,price) = (((eventId + "_win_") + toString(price)) + "_percentage") | |
128 | + | ||
129 | + | ||
130 | + | func getPercentageCount (eventId,percent) = (((eventId + "_") + toString(percent)) + "_percent_count") | |
131 | + | ||
132 | + | ||
112 | 133 | func asInt (v) = match v { | |
113 | 134 | case x: Int => | |
114 | 135 | x | |
115 | 136 | case t => | |
116 | 137 | throw("#err") | |
117 | 138 | } | |
118 | 139 | ||
119 | 140 | ||
120 | 141 | func asString (v) = match v { | |
121 | 142 | case x: String => | |
122 | 143 | x | |
123 | 144 | case _ => | |
124 | 145 | throw("#err") | |
125 | 146 | } | |
126 | 147 | ||
127 | 148 | ||
128 | 149 | func getAssetInfo (assetStr) = { | |
129 | 150 | let assetId = fromBase58String(assetStr) | |
130 | 151 | let x = match assetInfo(assetId) { | |
131 | 152 | case asset: Asset => | |
132 | 153 | $Tuple2(assetStr, asset.decimals) | |
133 | 154 | case _ => | |
134 | 155 | $Tuple2("WAVES", 0) | |
135 | 156 | } | |
136 | 157 | x | |
137 | 158 | } | |
138 | 159 | ||
139 | 160 | ||
140 | 161 | func getStatus (eventId) = { | |
141 | 162 | let status = getStringValue(this, getStatusKey(eventId)) | |
142 | 163 | if (if (if ((status == "finished")) | |
143 | 164 | then true | |
144 | 165 | else (status == "#")) | |
145 | 166 | then true | |
146 | 167 | else (status == "ended")) | |
147 | 168 | then status | |
148 | 169 | else { | |
149 | 170 | let finishAt = getIntegerValue(this, getFinishAtKey(eventId)) | |
150 | 171 | let startBlock = getIntegerValue(this, getStartBlockKey(eventId)) | |
151 | 172 | let endBlock = getIntegerValue(this, getEndBlockKey(eventId)) | |
152 | 173 | if ((startBlock > height)) | |
153 | 174 | then "awaiting" | |
154 | 175 | else if (if ((height >= startBlock)) | |
155 | 176 | then (endBlock >= height) | |
156 | 177 | else false) | |
157 | 178 | then "active" | |
158 | 179 | else if (if ((height > endBlock)) | |
159 | 180 | then (finishAt >= height) | |
160 | 181 | else false) | |
161 | 182 | then "confirmation" | |
162 | 183 | else if ((height > finishAt)) | |
163 | 184 | then "finished" | |
164 | 185 | else throw("unknown status") | |
165 | 186 | } | |
166 | 187 | } | |
167 | 188 | ||
168 | 189 | ||
169 | 190 | func registerEvent (txid,desc,startBlock,endBlock,finishAt,assetStr) = { | |
170 | 191 | let eventId = txid | |
171 | 192 | let insert = invoke(this, "insertToList", [eventId, true], nil) | |
172 | 193 | if ((insert == insert)) | |
173 | 194 | then { | |
174 | 195 | let concat = invoke(this, "concatLists", nil, nil) | |
175 | 196 | if ((concat == concat)) | |
176 | 197 | then { | |
177 | - | let $ | |
178 | - | let assetId = $ | |
179 | - | let assetDecimals = $ | |
198 | + | let $t054405493 = getAssetInfo(assetStr) | |
199 | + | let assetId = $t054405493._1 | |
200 | + | let assetDecimals = $t054405493._2 | |
180 | 201 | [IntegerEntry(getStartBlockKey(eventId), startBlock), IntegerEntry(getEndBlockKey(eventId), endBlock), IntegerEntry(getFinishAtKey(eventId), finishAt), StringEntry(getDescKey(eventId), desc), StringEntry(getStatusKey(eventId), "new"), StringEntry(getIdKey(eventId), eventId), StringEntry(getAssetIdKey(eventId), assetId)] | |
181 | 202 | } | |
182 | 203 | else throw("Strict value is not equal to itself.") | |
183 | 204 | } | |
184 | 205 | else throw("Strict value is not equal to itself.") | |
185 | 206 | } | |
186 | 207 | ||
187 | 208 | ||
188 | 209 | @Callable(i) | |
189 | 210 | func init (config) = if ((i.caller != this)) | |
190 | 211 | then throw("only main can do") | |
191 | 212 | else { | |
192 | 213 | let isExists = isDefined(getString(this, configAddressKey)) | |
193 | 214 | if (!(isExists)) | |
194 | 215 | then [StringEntry(configAddressKey, config)] | |
195 | 216 | else throw("already inited") | |
196 | 217 | } | |
197 | 218 | ||
198 | 219 | ||
199 | 220 | ||
200 | 221 | @Callable(i) | |
201 | 222 | func appendEventer (desc) = if (!(isAdmin(i.caller))) | |
202 | 223 | then throw("only admin can do") | |
203 | 224 | else { | |
204 | 225 | let inv = invoke(configAddress, "setEventer", [toString(this), desc], nil) | |
205 | 226 | if ((inv == inv)) | |
206 | 227 | then nil | |
207 | 228 | else throw("Strict value is not equal to itself.") | |
208 | 229 | } | |
209 | 230 | ||
210 | 231 | ||
211 | 232 | ||
212 | 233 | @Callable(i) | |
213 | 234 | func fullRegisterEvent (desc,startBlock,duration,assetStr) = { | |
214 | 235 | let newStartBlock = if ((startBlock == 0)) | |
215 | 236 | then height | |
216 | 237 | else startBlock | |
217 | 238 | let endBlock = (newStartBlock + duration) | |
218 | 239 | let finishAt = (endBlock + 1440) | |
219 | 240 | if (!(isAdmin(i.caller))) | |
220 | 241 | then throw("only admin can do") | |
221 | 242 | else { | |
222 | 243 | let txid = toBase58String(i.transactionId) | |
223 | 244 | registerEvent(txid, desc, newStartBlock, endBlock, finishAt, assetStr) | |
224 | 245 | } | |
225 | 246 | } | |
226 | 247 | ||
227 | 248 | ||
228 | 249 | ||
229 | 250 | @Callable(i) | |
230 | 251 | func choice (eventId,price,address) = { | |
231 | 252 | let status = getStatus(eventId) | |
232 | 253 | if ((status == "active")) | |
233 | 254 | then { | |
234 | 255 | let neededAmount = 10000000 | |
235 | 256 | let neededAsset = USDN | |
236 | 257 | if (if (if ((size(i.payments) == 1)) | |
237 | 258 | then (i.payments[0].assetId == neededAsset) | |
238 | 259 | else false) | |
239 | 260 | then (i.payments[0].amount == neededAmount) | |
240 | 261 | else false) | |
241 | 262 | then { | |
242 | 263 | let invAppend = invoke(this, "appendBetsList", [eventId, address, price], nil) | |
243 | 264 | if ((invAppend == invAppend)) | |
244 | 265 | then { | |
245 | 266 | let currentTotal = valueOrElse(getInteger(this, getTotalAmountKey(eventId)), 0) | |
246 | 267 | [IntegerEntry(getTotalAmountKey(eventId), (currentTotal + i.payments[0].amount))] | |
247 | 268 | } | |
248 | 269 | else throw("Strict value is not equal to itself.") | |
249 | 270 | } | |
250 | 271 | else throw("Bad payment") | |
251 | 272 | } | |
252 | 273 | else throw("You can`t do it") | |
253 | 274 | } | |
254 | 275 | ||
255 | 276 | ||
256 | 277 | ||
257 | 278 | @Callable(i) | |
258 | 279 | func appendBetsList (eventId,addressStr,price) = if ((i.caller != this)) | |
259 | 280 | then throw("only main can do") | |
260 | 281 | else if (isDefined(getInteger(this, getPriceAddressKey(eventId, addressStr)))) | |
261 | 282 | then throw("betting from this address is exists") | |
262 | 283 | else { | |
263 | 284 | let countBetsPrice = valueOrElse(getInteger(this, getPriceBetsCount(eventId, price)), 0) | |
264 | 285 | if ((countBetsPrice >= maxBetsOnPrice)) | |
265 | 286 | then throw("to many bets") | |
266 | 287 | else { | |
267 | 288 | let listIndex = valueOrElse(getInteger(this, getPricesListsCountKey(eventId)), 1) | |
268 | 289 | let currentPrices = valueOrElse(getString(this, getPricesListNKey(eventId, listIndex)), "") | |
269 | 290 | let currentPricesList = split_4C(currentPrices, separator) | |
270 | 291 | let listSize = size(currentPricesList) | |
271 | 292 | let newPrices = if ((countBetsPrice == 0)) | |
272 | 293 | then if ((100 > listSize)) | |
273 | 294 | then if ((size(currentPrices) == 0)) | |
274 | 295 | then toString(price) | |
275 | 296 | else ((currentPrices + separator) + toString(price)) | |
276 | 297 | else toString(price) | |
277 | 298 | else currentPrices | |
278 | 299 | let newListIndex = if (if ((listSize >= 100)) | |
279 | 300 | then (countBetsPrice == 0) | |
280 | 301 | else false) | |
281 | 302 | then (listIndex + 1) | |
282 | 303 | else listIndex | |
283 | 304 | let newGroupsCount = (((newListIndex - 1) / 10) + 1) | |
284 | 305 | [IntegerEntry(getPriceAddressKey(eventId, addressStr), price), IntegerEntry(getPricesListsCountKey(eventId), newListIndex), IntegerEntry(getPricesGroupsCountKey(eventId), newGroupsCount), IntegerEntry(getPriceBetsCount(eventId, price), (countBetsPrice + 1)), StringEntry(getPricesListNKey(eventId, newListIndex), newPrices)] | |
285 | 306 | } | |
286 | 307 | } | |
287 | 308 | ||
288 | 309 | ||
289 | 310 | ||
290 | 311 | @Callable(i) | |
312 | + | func setWinPrice (eventId,price) = [IntegerEntry(getResultPriceKey(eventId), price)] | |
313 | + | ||
314 | + | ||
315 | + | ||
316 | + | @Callable(i) | |
317 | + | func validateBetsList (eventId) = { | |
318 | + | let resultPrice = valueOrErrorMessage(getInteger(this, getResultPriceKey(eventId)), "Result price not set") | |
319 | + | let groupsCompleted = valueOrElse(getInteger(this, getPricesGroupsCompletedCountKey(eventId)), 0) | |
320 | + | let startListIndex = ((groupsCompleted * 10) + 1) | |
321 | + | let lst1 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 0))), ""), separator) | |
322 | + | let lst2 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 1))), ""), separator) | |
323 | + | let lst3 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 2))), ""), separator) | |
324 | + | let lst4 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 3))), ""), separator) | |
325 | + | let lst5 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 4))), ""), separator) | |
326 | + | let lst6 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 5))), ""), separator) | |
327 | + | let lst7 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 6))), ""), separator) | |
328 | + | let lst8 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 7))), ""), separator) | |
329 | + | let lst9 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 8))), ""), separator) | |
330 | + | let lst10 = split_4C(valueOrElse(getString(this, getPricesListNKey(eventId, (startListIndex + 9))), ""), separator) | |
331 | + | let lst = (((((((((lst1 ++ lst2) ++ lst3) ++ lst4) ++ lst5) ++ lst6) ++ lst7) ++ lst8) ++ lst9) ++ lst10) | |
332 | + | func foldValidate (accum,next) = { | |
333 | + | let val = parseIntValue(next) | |
334 | + | let delta = if ((val >= resultPrice)) | |
335 | + | then (val - resultPrice) | |
336 | + | else (resultPrice - val) | |
337 | + | if (containsElement(accum, delta)) | |
338 | + | then accum | |
339 | + | else (accum :+ delta) | |
340 | + | } | |
341 | + | ||
342 | + | let foldValidateResult = { | |
343 | + | let $l = lst | |
344 | + | let $s = size($l) | |
345 | + | let $acc0 = nil | |
346 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
347 | + | then $a | |
348 | + | else foldValidate($a, $l[$i]) | |
349 | + | ||
350 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
351 | + | then $a | |
352 | + | else throw("List size exceeds 1000") | |
353 | + | ||
354 | + | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200), 201), 202), 203), 204), 205), 206), 207), 208), 209), 210), 211), 212), 213), 214), 215), 216), 217), 218), 219), 220), 221), 222), 223), 224), 225), 226), 227), 228), 229), 230), 231), 232), 233), 234), 235), 236), 237), 238), 239), 240), 241), 242), 243), 244), 245), 246), 247), 248), 249), 250), 251), 252), 253), 254), 255), 256), 257), 258), 259), 260), 261), 262), 263), 264), 265), 266), 267), 268), 269), 270), 271), 272), 273), 274), 275), 276), 277), 278), 279), 280), 281), 282), 283), 284), 285), 286), 287), 288), 289), 290), 291), 292), 293), 294), 295), 296), 297), 298), 299), 300), 301), 302), 303), 304), 305), 306), 307), 308), 309), 310), 311), 312), 313), 314), 315), 316), 317), 318), 319), 320), 321), 322), 323), 324), 325), 326), 327), 328), 329), 330), 331), 332), 333), 334), 335), 336), 337), 338), 339), 340), 341), 342), 343), 344), 345), 346), 347), 348), 349), 350), 351), 352), 353), 354), 355), 356), 357), 358), 359), 360), 361), 362), 363), 364), 365), 366), 367), 368), 369), 370), 371), 372), 373), 374), 375), 376), 377), 378), 379), 380), 381), 382), 383), 384), 385), 386), 387), 388), 389), 390), 391), 392), 393), 394), 395), 396), 397), 398), 399), 400), 401), 402), 403), 404), 405), 406), 407), 408), 409), 410), 411), 412), 413), 414), 415), 416), 417), 418), 419), 420), 421), 422), 423), 424), 425), 426), 427), 428), 429), 430), 431), 432), 433), 434), 435), 436), 437), 438), 439), 440), 441), 442), 443), 444), 445), 446), 447), 448), 449), 450), 451), 452), 453), 454), 455), 456), 457), 458), 459), 460), 461), 462), 463), 464), 465), 466), 467), 468), 469), 470), 471), 472), 473), 474), 475), 476), 477), 478), 479), 480), 481), 482), 483), 484), 485), 486), 487), 488), 489), 490), 491), 492), 493), 494), 495), 496), 497), 498), 499), 500), 501), 502), 503), 504), 505), 506), 507), 508), 509), 510), 511), 512), 513), 514), 515), 516), 517), 518), 519), 520), 521), 522), 523), 524), 525), 526), 527), 528), 529), 530), 531), 532), 533), 534), 535), 536), 537), 538), 539), 540), 541), 542), 543), 544), 545), 546), 547), 548), 549), 550), 551), 552), 553), 554), 555), 556), 557), 558), 559), 560), 561), 562), 563), 564), 565), 566), 567), 568), 569), 570), 571), 572), 573), 574), 575), 576), 577), 578), 579), 580), 581), 582), 583), 584), 585), 586), 587), 588), 589), 590), 591), 592), 593), 594), 595), 596), 597), 598), 599), 600), 601), 602), 603), 604), 605), 606), 607), 608), 609), 610), 611), 612), 613), 614), 615), 616), 617), 618), 619), 620), 621), 622), 623), 624), 625), 626), 627), 628), 629), 630), 631), 632), 633), 634), 635), 636), 637), 638), 639), 640), 641), 642), 643), 644), 645), 646), 647), 648), 649), 650), 651), 652), 653), 654), 655), 656), 657), 658), 659), 660), 661), 662), 663), 664), 665), 666), 667), 668), 669), 670), 671), 672), 673), 674), 675), 676), 677), 678), 679), 680), 681), 682), 683), 684), 685), 686), 687), 688), 689), 690), 691), 692), 693), 694), 695), 696), 697), 698), 699), 700), 701), 702), 703), 704), 705), 706), 707), 708), 709), 710), 711), 712), 713), 714), 715), 716), 717), 718), 719), 720), 721), 722), 723), 724), 725), 726), 727), 728), 729), 730), 731), 732), 733), 734), 735), 736), 737), 738), 739), 740), 741), 742), 743), 744), 745), 746), 747), 748), 749), 750), 751), 752), 753), 754), 755), 756), 757), 758), 759), 760), 761), 762), 763), 764), 765), 766), 767), 768), 769), 770), 771), 772), 773), 774), 775), 776), 777), 778), 779), 780), 781), 782), 783), 784), 785), 786), 787), 788), 789), 790), 791), 792), 793), 794), 795), 796), 797), 798), 799), 800), 801), 802), 803), 804), 805), 806), 807), 808), 809), 810), 811), 812), 813), 814), 815), 816), 817), 818), 819), 820), 821), 822), 823), 824), 825), 826), 827), 828), 829), 830), 831), 832), 833), 834), 835), 836), 837), 838), 839), 840), 841), 842), 843), 844), 845), 846), 847), 848), 849), 850), 851), 852), 853), 854), 855), 856), 857), 858), 859), 860), 861), 862), 863), 864), 865), 866), 867), 868), 869), 870), 871), 872), 873), 874), 875), 876), 877), 878), 879), 880), 881), 882), 883), 884), 885), 886), 887), 888), 889), 890), 891), 892), 893), 894), 895), 896), 897), 898), 899), 900), 901), 902), 903), 904), 905), 906), 907), 908), 909), 910), 911), 912), 913), 914), 915), 916), 917), 918), 919), 920), 921), 922), 923), 924), 925), 926), 927), 928), 929), 930), 931), 932), 933), 934), 935), 936), 937), 938), 939), 940), 941), 942), 943), 944), 945), 946), 947), 948), 949), 950), 951), 952), 953), 954), 955), 956), 957), 958), 959), 960), 961), 962), 963), 964), 965), 966), 967), 968), 969), 970), 971), 972), 973), 974), 975), 976), 977), 978), 979), 980), 981), 982), 983), 984), 985), 986), 987), 988), 989), 990), 991), 992), 993), 994), 995), 996), 997), 998), 999), 1000) | |
355 | + | } | |
356 | + | func foldSort (accum,next) = { | |
357 | + | let $t01154911580 = accum | |
358 | + | let initList = $t01154911580._1 | |
359 | + | let newList = $t01154911580._2 | |
360 | + | let minValue = min(initList) | |
361 | + | $Tuple2(removeByIndex(initList, asInt(indexOf(initList, minValue))), (newList :+ minValue)) | |
362 | + | } | |
363 | + | ||
364 | + | let foldSortResult = { | |
365 | + | let $l = foldValidateResult | |
366 | + | let $s = size($l) | |
367 | + | let $acc0 = $Tuple2(foldValidateResult, nil) | |
368 | + | func $f1_1 ($a,$i) = if (($i >= $s)) | |
369 | + | then $a | |
370 | + | else foldSort($a, $l[$i]) | |
371 | + | ||
372 | + | func $f1_2 ($a,$i) = if (($i >= $s)) | |
373 | + | then $a | |
374 | + | else throw("List size exceeds 15") | |
375 | + | ||
376 | + | $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15) | |
377 | + | } | |
378 | + | let minLst = foldSortResult._2 | |
379 | + | let tempWinPrices = valueOrElse(getString(this, getTempWinPricesKey(eventId)), "") | |
380 | + | let newTempWinPrices = if ((size(tempWinPrices) == 0)) | |
381 | + | then makeString_2C(minLst, separator) | |
382 | + | else ((tempWinPrices + separator) + makeString_2C(minLst, separator)) | |
383 | + | [IntegerEntry(getPricesGroupsCompletedCountKey(eventId), (groupsCompleted + 1)), StringEntry(getTempWinPricesKey(eventId), newTempWinPrices)] | |
384 | + | } | |
385 | + | ||
386 | + | ||
387 | + | ||
388 | + | @Callable(i) | |
389 | + | func setWinners (eventId) = { | |
390 | + | let groupsCount = getInteger(this, getPricesGroupsCountKey(eventId)) | |
391 | + | let groupsCompleted = valueOrElse(getInteger(this, getPricesGroupsCompletedCountKey(eventId)), 0) | |
392 | + | if ((groupsCompleted != groupsCount)) | |
393 | + | then throw("validate is not complete") | |
394 | + | else { | |
395 | + | let resultPrice = valueOrErrorMessage(getInteger(this, getResultPriceKey(eventId)), "Result price not set") | |
396 | + | let tempWinPrices = valueOrErrorMessage(getString(this, getTempWinPricesKey(eventId)), "temp win prices not found") | |
397 | + | let tempWinPricesLst = split_4C(tempWinPrices, separator) | |
398 | + | func foldToInt (accum,next) = { | |
399 | + | let val = parseIntValue(next) | |
400 | + | (accum :+ val) | |
401 | + | } | |
402 | + | ||
403 | + | let tempWinPricesLstInt = { | |
404 | + | let $l = tempWinPricesLst | |
405 | + | let $s = size($l) | |
406 | + | let $acc0 = nil | |
407 | + | func $f0_1 ($a,$i) = if (($i >= $s)) | |
408 | + | then $a | |
409 | + | else foldToInt($a, $l[$i]) | |
410 | + | ||
411 | + | func $f0_2 ($a,$i) = if (($i >= $s)) | |
412 | + | then $a | |
413 | + | else throw("List size exceeds 1000") | |
414 | + | ||
415 | + | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200), 201), 202), 203), 204), 205), 206), 207), 208), 209), 210), 211), 212), 213), 214), 215), 216), 217), 218), 219), 220), 221), 222), 223), 224), 225), 226), 227), 228), 229), 230), 231), 232), 233), 234), 235), 236), 237), 238), 239), 240), 241), 242), 243), 244), 245), 246), 247), 248), 249), 250), 251), 252), 253), 254), 255), 256), 257), 258), 259), 260), 261), 262), 263), 264), 265), 266), 267), 268), 269), 270), 271), 272), 273), 274), 275), 276), 277), 278), 279), 280), 281), 282), 283), 284), 285), 286), 287), 288), 289), 290), 291), 292), 293), 294), 295), 296), 297), 298), 299), 300), 301), 302), 303), 304), 305), 306), 307), 308), 309), 310), 311), 312), 313), 314), 315), 316), 317), 318), 319), 320), 321), 322), 323), 324), 325), 326), 327), 328), 329), 330), 331), 332), 333), 334), 335), 336), 337), 338), 339), 340), 341), 342), 343), 344), 345), 346), 347), 348), 349), 350), 351), 352), 353), 354), 355), 356), 357), 358), 359), 360), 361), 362), 363), 364), 365), 366), 367), 368), 369), 370), 371), 372), 373), 374), 375), 376), 377), 378), 379), 380), 381), 382), 383), 384), 385), 386), 387), 388), 389), 390), 391), 392), 393), 394), 395), 396), 397), 398), 399), 400), 401), 402), 403), 404), 405), 406), 407), 408), 409), 410), 411), 412), 413), 414), 415), 416), 417), 418), 419), 420), 421), 422), 423), 424), 425), 426), 427), 428), 429), 430), 431), 432), 433), 434), 435), 436), 437), 438), 439), 440), 441), 442), 443), 444), 445), 446), 447), 448), 449), 450), 451), 452), 453), 454), 455), 456), 457), 458), 459), 460), 461), 462), 463), 464), 465), 466), 467), 468), 469), 470), 471), 472), 473), 474), 475), 476), 477), 478), 479), 480), 481), 482), 483), 484), 485), 486), 487), 488), 489), 490), 491), 492), 493), 494), 495), 496), 497), 498), 499), 500), 501), 502), 503), 504), 505), 506), 507), 508), 509), 510), 511), 512), 513), 514), 515), 516), 517), 518), 519), 520), 521), 522), 523), 524), 525), 526), 527), 528), 529), 530), 531), 532), 533), 534), 535), 536), 537), 538), 539), 540), 541), 542), 543), 544), 545), 546), 547), 548), 549), 550), 551), 552), 553), 554), 555), 556), 557), 558), 559), 560), 561), 562), 563), 564), 565), 566), 567), 568), 569), 570), 571), 572), 573), 574), 575), 576), 577), 578), 579), 580), 581), 582), 583), 584), 585), 586), 587), 588), 589), 590), 591), 592), 593), 594), 595), 596), 597), 598), 599), 600), 601), 602), 603), 604), 605), 606), 607), 608), 609), 610), 611), 612), 613), 614), 615), 616), 617), 618), 619), 620), 621), 622), 623), 624), 625), 626), 627), 628), 629), 630), 631), 632), 633), 634), 635), 636), 637), 638), 639), 640), 641), 642), 643), 644), 645), 646), 647), 648), 649), 650), 651), 652), 653), 654), 655), 656), 657), 658), 659), 660), 661), 662), 663), 664), 665), 666), 667), 668), 669), 670), 671), 672), 673), 674), 675), 676), 677), 678), 679), 680), 681), 682), 683), 684), 685), 686), 687), 688), 689), 690), 691), 692), 693), 694), 695), 696), 697), 698), 699), 700), 701), 702), 703), 704), 705), 706), 707), 708), 709), 710), 711), 712), 713), 714), 715), 716), 717), 718), 719), 720), 721), 722), 723), 724), 725), 726), 727), 728), 729), 730), 731), 732), 733), 734), 735), 736), 737), 738), 739), 740), 741), 742), 743), 744), 745), 746), 747), 748), 749), 750), 751), 752), 753), 754), 755), 756), 757), 758), 759), 760), 761), 762), 763), 764), 765), 766), 767), 768), 769), 770), 771), 772), 773), 774), 775), 776), 777), 778), 779), 780), 781), 782), 783), 784), 785), 786), 787), 788), 789), 790), 791), 792), 793), 794), 795), 796), 797), 798), 799), 800), 801), 802), 803), 804), 805), 806), 807), 808), 809), 810), 811), 812), 813), 814), 815), 816), 817), 818), 819), 820), 821), 822), 823), 824), 825), 826), 827), 828), 829), 830), 831), 832), 833), 834), 835), 836), 837), 838), 839), 840), 841), 842), 843), 844), 845), 846), 847), 848), 849), 850), 851), 852), 853), 854), 855), 856), 857), 858), 859), 860), 861), 862), 863), 864), 865), 866), 867), 868), 869), 870), 871), 872), 873), 874), 875), 876), 877), 878), 879), 880), 881), 882), 883), 884), 885), 886), 887), 888), 889), 890), 891), 892), 893), 894), 895), 896), 897), 898), 899), 900), 901), 902), 903), 904), 905), 906), 907), 908), 909), 910), 911), 912), 913), 914), 915), 916), 917), 918), 919), 920), 921), 922), 923), 924), 925), 926), 927), 928), 929), 930), 931), 932), 933), 934), 935), 936), 937), 938), 939), 940), 941), 942), 943), 944), 945), 946), 947), 948), 949), 950), 951), 952), 953), 954), 955), 956), 957), 958), 959), 960), 961), 962), 963), 964), 965), 966), 967), 968), 969), 970), 971), 972), 973), 974), 975), 976), 977), 978), 979), 980), 981), 982), 983), 984), 985), 986), 987), 988), 989), 990), 991), 992), 993), 994), 995), 996), 997), 998), 999), 1000) | |
416 | + | } | |
417 | + | if ((tempWinPricesLstInt == tempWinPricesLstInt)) | |
418 | + | then { | |
419 | + | func foldGetWinners (accum,next) = { | |
420 | + | let $t01313713179 = accum | |
421 | + | let initLst = $t01313713179._1 | |
422 | + | let newLst = $t01313713179._2 | |
423 | + | let states = $t01313713179._3 | |
424 | + | let ind = $t01313713179._4 | |
425 | + | let delta = min(initLst) | |
426 | + | let newInitLst = removeByIndex(initLst, asInt(indexOf(initLst, delta))) | |
427 | + | if ((13 > ind)) | |
428 | + | then { | |
429 | + | let percentage = if ((3 > ind)) | |
430 | + | then 65 | |
431 | + | else 10 | |
432 | + | if ((delta == 0)) | |
433 | + | then { | |
434 | + | let betsCount = getIntegerValue(this, getPriceBetsCount(eventId, resultPrice)) | |
435 | + | let newStates = (states ++ [IntegerEntry(getWinPricePercentageKey(eventId, resultPrice), percentage), IntegerEntry(getPercentageCount(eventId, percentage), ((ind + betsCount) + 1))]) | |
436 | + | let newNewLst = (newLst :+ resultPrice) | |
437 | + | $Tuple4(newInitLst, newNewLst, newStates, (ind + betsCount)) | |
438 | + | } | |
439 | + | else { | |
440 | + | let pBetsCount = valueOrElse(getInteger(this, getPriceBetsCount(eventId, (resultPrice + delta))), 0) | |
441 | + | let nBetsCount = valueOrElse(getInteger(this, getPriceBetsCount(eventId, (resultPrice - delta))), 0) | |
442 | + | let newStates = (states ++ [IntegerEntry(getWinPricePercentageKey(eventId, resultPrice), percentage), IntegerEntry(getPercentageCount(eventId, percentage), (((ind + pBetsCount) + nBetsCount) + 1))]) | |
443 | + | let newNewLst = (newLst :+ resultPrice) | |
444 | + | $Tuple4(newInitLst, newNewLst, newStates, ((ind + pBetsCount) + nBetsCount)) | |
445 | + | } | |
446 | + | } | |
447 | + | else $Tuple4(newInitLst, newLst, states, ind) | |
448 | + | } | |
449 | + | ||
450 | + | let foldGetWinnersResult = { | |
451 | + | let $l = tempWinPricesLstInt | |
452 | + | let $s = size($l) | |
453 | + | let $acc0 = $Tuple4(tempWinPricesLstInt, nil, nil, 0) | |
454 | + | func $f1_1 ($a,$i) = if (($i >= $s)) | |
455 | + | then $a | |
456 | + | else foldGetWinners($a, $l[$i]) | |
457 | + | ||
458 | + | func $f1_2 ($a,$i) = if (($i >= $s)) | |
459 | + | then $a | |
460 | + | else throw("List size exceeds 15") | |
461 | + | ||
462 | + | $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15) | |
463 | + | } | |
464 | + | let states = foldGetWinnersResult._3 | |
465 | + | let winPrices = makeString_2C(foldGetWinnersResult._2, separator) | |
466 | + | let newStates = (states ++ [StringEntry(getWinPricesKey(eventId), winPrices), BooleanEntry(getWinPricesCompletedKey(eventId), true)]) | |
467 | + | newStates | |
468 | + | } | |
469 | + | else throw("Strict value is not equal to itself.") | |
470 | + | } | |
471 | + | } | |
472 | + | ||
473 | + | ||
474 | + | ||
475 | + | @Callable(i) | |
291 | 476 | func resetList () = if (!(isAdmin(i.caller))) | |
292 | 477 | then throw("only admin can do") | |
293 | 478 | else [StringEntry(firstEventKey, undefined), StringEntry(lastEventKey, undefined), StringEntry(fisrtActiveEventKey, undefined), StringEntry(lastActiveEventKey, undefined), StringEntry(fisrtFinishedEventKey, undefined), StringEntry(lastFinishedEventKey, undefined)] | |
294 | 479 | ||
295 | 480 | ||
296 | 481 | ||
297 | 482 | @Callable(i) | |
298 | 483 | func insertToList (eventId,isActive) = if ((this != i.caller)) | |
299 | 484 | then throw("only main can do") | |
300 | 485 | else { | |
301 | 486 | let lastKey = if (isActive) | |
302 | 487 | then lastActiveEventKey | |
303 | 488 | else lastFinishedEventKey | |
304 | 489 | let firstKey = if (isActive) | |
305 | 490 | then fisrtActiveEventKey | |
306 | 491 | else fisrtFinishedEventKey | |
307 | 492 | let firstEvent = valueOrElse(getString(this, firstKey), undefined) | |
308 | 493 | let lastEvent = valueOrElse(getString(this, lastKey), undefined) | |
309 | 494 | let newLastOrPrevKey = if ((lastEvent == undefined)) | |
310 | 495 | then lastKey | |
311 | 496 | else getPrevEventKey(firstEvent) | |
312 | 497 | [StringEntry(firstKey, eventId), StringEntry(newLastOrPrevKey, eventId), StringEntry(getNextEventKey(eventId), firstEvent)] | |
313 | 498 | } | |
314 | 499 | ||
315 | 500 | ||
316 | 501 | ||
317 | 502 | @Callable(i) | |
318 | 503 | func deleteFromList (eventId,isActive) = if ((this != i.caller)) | |
319 | 504 | then throw("only main can do") | |
320 | 505 | else { | |
321 | 506 | let lastKey = if (isActive) | |
322 | 507 | then lastActiveEventKey | |
323 | 508 | else lastFinishedEventKey | |
324 | 509 | let firstKey = if (isActive) | |
325 | 510 | then fisrtActiveEventKey | |
326 | 511 | else fisrtFinishedEventKey | |
327 | 512 | let firstEvent = valueOrElse(getString(this, firstKey), undefined) | |
328 | 513 | let lastEvent = valueOrElse(getString(this, lastKey), undefined) | |
329 | 514 | let prevEventTemp = valueOrElse(getString(this, getPrevEventKey(eventId)), undefined) | |
330 | 515 | let nextEventTemp = valueOrElse(getString(this, getNextEventKey(eventId)), undefined) | |
331 | 516 | let prevEvent = if ((eventId == firstEvent)) | |
332 | 517 | then undefined | |
333 | 518 | else prevEventTemp | |
334 | 519 | let nextEvent = if ((eventId == lastEvent)) | |
335 | 520 | then undefined | |
336 | 521 | else nextEventTemp | |
337 | 522 | if (if ((prevEvent == undefined)) | |
338 | 523 | then (nextEvent == undefined) | |
339 | 524 | else false) | |
340 | 525 | then [StringEntry(firstKey, undefined), StringEntry(lastKey, undefined)] | |
341 | 526 | else if (if ((prevEvent != undefined)) | |
342 | 527 | then (nextEvent != undefined) | |
343 | 528 | else false) | |
344 | 529 | then [StringEntry(getPrevEventKey(nextEvent), prevEvent), StringEntry(getNextEventKey(prevEvent), nextEvent)] | |
345 | 530 | else if ((prevEvent != undefined)) | |
346 | 531 | then [StringEntry(lastKey, prevEvent), StringEntry(getNextEventKey(prevEvent), undefined)] | |
347 | 532 | else [StringEntry(firstKey, nextEvent), StringEntry(getPrevEventKey(nextEvent), undefined)] | |
348 | 533 | } | |
349 | 534 | ||
350 | 535 | ||
351 | 536 | ||
352 | 537 | @Callable(i) | |
353 | 538 | func concatLists () = if (!(isAdmin(i.caller))) | |
354 | 539 | then throw("only admin can do") | |
355 | 540 | else { | |
356 | 541 | let firstActiveEvent = valueOrElse(getString(this, fisrtActiveEventKey), undefined) | |
357 | 542 | let lastActiveEvent = valueOrElse(getString(this, lastActiveEventKey), undefined) | |
358 | 543 | let firstFinishedEvent = valueOrElse(getString(this, fisrtFinishedEventKey), undefined) | |
359 | 544 | let lastFinishedEvent = valueOrElse(getString(this, lastFinishedEventKey), undefined) | |
360 | 545 | let firstEvent = if ((firstActiveEvent != undefined)) | |
361 | 546 | then firstActiveEvent | |
362 | 547 | else firstFinishedEvent | |
363 | 548 | let lastEvent = if ((lastFinishedEvent != undefined)) | |
364 | 549 | then lastFinishedEvent | |
365 | 550 | else lastActiveEvent | |
366 | 551 | if (if ((firstFinishedEvent != undefined)) | |
367 | 552 | then (lastActiveEvent != undefined) | |
368 | 553 | else false) | |
369 | 554 | then [StringEntry(firstEventKey, firstEvent), StringEntry(lastEventKey, lastEvent), StringEntry(getNextEventKey(lastActiveEvent), firstFinishedEvent), StringEntry(getPrevEventKey(firstFinishedEvent), lastActiveEvent)] | |
370 | 555 | else [StringEntry(firstEventKey, firstEvent), StringEntry(lastEventKey, lastEvent)] | |
371 | 556 | } | |
372 | 557 | ||
373 | 558 |
github/deemru/w8io/fabc49c 137.10 ms ◑