tx · 8P1pEmSQqoJ92cFs3UFAwVwkgSo5Yi7fuxCRdpb8p4xK

3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy:  -0.04800000 Waves

2023.11.17 21:21 [2847712] smart account 3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy > SELF 0.00000000 Waves

{ "type": 13, "id": "8P1pEmSQqoJ92cFs3UFAwVwkgSo5Yi7fuxCRdpb8p4xK", "fee": 4800000, "feeAssetId": null, "timestamp": 1700245267633, "version": 2, "chainId": 84, "sender": "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy", "senderPublicKey": "C3PaRKeL8AUKbwUqdniMQtThgcTh5DYHV1777Hkxy7rp", "proofs": [ "4gM3rQMUG7xRGkFhoX1HjaTvawhTMUzzsqodBZ2m2pi8JRrprZC4gmFTW3ZmLUuybkBtoox2QdooU6H8wGacZxw2" ], "script": "base64:BgJtCAISAwoBGBIDCgEIEgMKAQgSAwoBCBIDCgEYEgMKAQgSAwoBCBIDCgEYEgMKAQgSAwoBGBIDCgEYEgUKAxgBARIDCgEIEgASAwoBCBIDCgEBEgASBAoCAQgSAwoBCBIGCgQYGAEBEgMKAQgSAOgBAAJNNgDAhD0AAk04AIDC1y8ACE1JTExJT042AICA6YOx3hYADk1BUktFVElOR1NIQVJFAKCNBgAJVEVBTVNIQVJFAMCaDAANQUNUSVZJVFlTSEFSRQCgjQYAC1BMQVlFUlNIQVJFAIC1GAAKWUVBUk1JTExJUwCAhuvHdQAJREFZTUlMTElTAIC4mSkAEG1hcmtldGluZ0FkZHJLZXkCDW1hcmtldGluZ0FkZHIAC3RlYW1BZGRyS2V5Agh0ZWFtQWRkcgAUbGFzdE1hcmtldGluZ1RpbWVLZXkCGWxhc3RDbGFpbWVkVGltZV9tYXJrZXRpbmcAFm1hcmtldGluZ0Ftb3VudExlZnRLZXkCE21hcmtldGluZ0Ftb3VudExlZnQAD2xhc3RUZWFtVGltZUtleQIUbGFzdENsYWltZWRUaW1lX3RlYW0AEXRlYW1BbW91bnRMZWZ0S2V5Ag50ZWFtQW1vdW50TGVmdAAVbGFzdEFjdGl2aXRpZXNUaW1lS2V5AhpsYXN0Q2xhaW1lZFRpbWVfYWN0aXZpdGllcwAQYWN0QW1vdW50TGVmdEtleQIUYWN0aXZpdGllc0Ftb3VudExlZnQAFHN0YWtlcnNBbW91bnRMZWZ0S2V5AhFzdGFrZXJzQW1vdW50TGVmdAEYa2V5TGFzdENsYWltZWRUaW1lQnlVc2VyAQRhZGRyCQCsAgICFGxhc3RDbGFpbWVkVGltZVVzZXJfBQRhZGRyARRkaXN0cmlidXRpb25CeVBlcmlvZAEGcGVyaW9kCQBrAwUITUlMTElPTjYJAGgCBQtQTEFZRVJTSEFSRQkAZAIFBnBlcmlvZAABCQBoAgAGBQJNNgAPd2xnSXNzdWVUaW1lS2V5Ag13bGdfaXNzdWVUaW1lABJ3bGdJc3N1ZWRBbW91bnRLZXkCEHdsZ19pc3N1ZWRBbW91bnQAEXpiSXNzdWVkQW1vdW50S2V5AhJ6YmlsbF9pc3N1ZWRBbW91bnQBGmtleUFjcmVzU3Rha2VkQW1vdW50QnlVc2VyAQRhZGRyCQCsAgICGGFjcmVzU3Rha2VkQW1vdW50QnlVc2VyXwUEYWRkcgEaa2V5QWNyZXNMb2NrZWRBbW91bnRCeVVzZXIBBGFkZHIJAKwCAgIYYWNyZXNMb2NrZWRBbW91bnRCeVVzZXJfBQRhZGRyARdrZXlBY3Jlc0xvY2tlZEV0YUJ5VXNlcgEEYWRkcgkArAICAhVhY3Jlc0xvY2tlZEV0YUJ5VXNlcl8FBGFkZHIAE2FjcmVzU3Rha2VkVG90YWxLZXkCFmFjcmVzU3Rha2VkQW1vdW50VG90YWwBGGtleVdsZ1N0YWtlZEFtb3VudEJ5VXNlcgEEYWRkcgkArAICAhZ3bGdTdGFrZWRBbW91bnRCeVVzZXJfBQRhZGRyAAhkYXBwUmVzdAAAAAtkYXBwU3Rha2luZwABAAtkYXBwRWNvbm9teQACAAdkYXBwV2xnAAMACmRhcHBQdXp6bGUABAAOZGFwcEludmVzdEZ1bmQABQAJZGFwcEFjcmVzAAYBCGdldExhbmRzAxJ1c2VyQWRkclN0ck9yRW1wdHkPc3Rha2luZ0NvbnRyYWN0DWFjcmVzQ29udHJhY3QEBXByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0AhNyZXNUeXBlc1Byb3BvcnRpb25zAgswXzBfMF8wXzBfMAIBXwoBBWFkZGVyAgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAt0b3RhbFBpZWNlcwoAAiRsBQVwcm9wcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFYWRkZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYECnVzZXJQaWVjZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQCsAgICFHN0YWtlZFBpZWNlc0J5T3duZXJfBRJ1c2VyQWRkclN0ck9yRW1wdHkAAAQKdG90YWxBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1hY3Jlc0NvbnRyYWN0BRNhY3Jlc1N0YWtlZFRvdGFsS2V5AAAECXVzZXJBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1hY3Jlc0NvbnRyYWN0CQEaa2V5QWNyZXNTdGFrZWRBbW91bnRCeVVzZXIBBRJ1c2VyQWRkclN0ck9yRW1wdHkAAAkAzAgCBQt0b3RhbFBpZWNlcwkAzAgCBQp1c2VyUGllY2VzCQDMCAIFCnRvdGFsQWNyZXMJAMwIAgUJdXNlckFjcmVzBQNuaWwADmlkeFRvdGFsUGllY2VzAAAADWlkeFVzZXJQaWVjZXMAAQANaWR4VG90YWxBY3JlcwACAAxpZHhVc2VyQWNyZXMAAwELZ2V0V2xnU3RhdHMFC3VzZXJBZGRyT3B0CWNvbnRyYWN0cwZ1c2R0SWQVdXNkdEJhbGFuY2VDb3JyZWN0aW9uD3VzZXJQcm9wb3J0aW9uNgQMaXNzdWVkQW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEndsZ0lzc3VlZEFtb3VudEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0BAplY29ub215VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQtkYXBwRWNvbm9teQUGdXNkdElkBAdyZXN0VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwUmVzdAUGdXNkdElkBAZ3bGdVc2QJAGUCCQDwBwIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQZ1c2R0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQJcHV6emxlVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQpkYXBwUHV6emxlBQZ1c2R0SWQEEmludmVzdEZ1bmRDb250cmFjdAkAkQMCBQljb250cmFjdHMFDmRhcHBJbnZlc3RGdW5kBA9pbnZlc3RGdW5kVG90YWwJAGQCCQDwBwIFEmludmVzdEZ1bmRDb250cmFjdAUGdXNkdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEmludmVzdEZ1bmRDb250cmFjdAURemJJc3N1ZWRBbW91bnRLZXkAAAQNdG90YWxGdW5kc1VzZAkAZAIJAGQCBQplY29ub215VXNkBQZ3bGdVc2QFD2ludmVzdEZ1bmRUb3RhbAQFd2xnSWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwILd2xnX2Fzc2V0SWQCE05vdCBpbml0aWFsaXplZCB5ZXQEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAECWlzc3VlVGltZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQ93bGdJc3N1ZVRpbWVLZXkCD05vdCBpbml0aWFsaXplZAQObWFya2V0aW5nVG90YWwJAGsDBQhNSUxMSU9ONgUOTUFSS0VUSU5HU0hBUkUFAk02BBNtYXJrZXRpbmdBbW91bnRMZWZ0CQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRZtYXJrZXRpbmdBbW91bnRMZWZ0S2V5BQ5tYXJrZXRpbmdUb3RhbAQRbGFzdE1hcmtldGluZ1RpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFFGxhc3RNYXJrZXRpbmdUaW1lS2V5BQlpc3N1ZVRpbWUEDW1hcmtldGluZ0FkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEG1hcmtldGluZ0FkZHJLZXkEG21hcmtldGluZ0Ftb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQ5tYXJrZXRpbmdUb3RhbAkAZQIFA25vdwURbGFzdE1hcmtldGluZ1RpbWUFCllFQVJNSUxMSVMJAMwIAgUTbWFya2V0aW5nQW1vdW50TGVmdAUDbmlsBA9tYXJrZXRpbmdXbGdvbGQJAPAHAgUNbWFya2V0aW5nQWRkcgUFd2xnSWQECXRlYW1Ub3RhbAkAawMFCE1JTExJT042BQlURUFNU0hBUkUFAk02BA50ZWFtQW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwURdGVhbUFtb3VudExlZnRLZXkFCXRlYW1Ub3RhbAQMbGFzdFRlYW1UaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQ9sYXN0VGVhbVRpbWVLZXkFCWlzc3VlVGltZQQIdGVhbUFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFC3RlYW1BZGRyS2V5BBZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCXRlYW1Ub3RhbAkAZQIFA25vdwUMbGFzdFRlYW1UaW1lCQBoAgADBQpZRUFSTUlMTElTCQDMCAIFDnRlYW1BbW91bnRMZWZ0BQNuaWwECnRlYW1XbGdvbGQJAPAHAgUIdGVhbUFkZHIFBXdsZ0lkBAhhY3RUb3RhbAkAawMFCE1JTExJT042BQ1BQ1RJVklUWVNIQVJFBQJNNgQNYWN0QW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUQYWN0QW1vdW50TGVmdEtleQUIYWN0VG90YWwEEmxhc3RBY3Rpdml0aWVzVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUVbGFzdEFjdGl2aXRpZXNUaW1lS2V5BQlpc3N1ZVRpbWUEFWFjdEFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQhhY3RUb3RhbAkAZQIFA25vdwUSbGFzdEFjdGl2aXRpZXNUaW1lCQBoAgADBQpZRUFSTUlMTElTCQDMCAIFDWFjdEFtb3VudExlZnQFA25pbAQJYWN0V2xnb2xkCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwUmVzdAUFd2xnSWQEDGxhc3RVc2VyVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwkBGGtleUxhc3RDbGFpbWVkVGltZUJ5VXNlcgEFC3VzZXJBZGRyT3B0BQlpc3N1ZVRpbWUEDmxhc3RVc2VyUGVyaW9kCQBpAgkAZQIFDGxhc3RVc2VyVGltZQUJaXNzdWVUaW1lBQpZRUFSTUlMTElTBApub3dMaW1pdGVkCQCXAwEJAMwIAgUDbm93CQDMCAIJAGQCBQlpc3N1ZVRpbWUJAGgCAAMFCllFQVJNSUxMSVMFA25pbAQJY3VyUGVyaW9kCQCXAwEJAMwIAgkAaQIJAGUCBQNub3cFCWlzc3VlVGltZQUKWUVBUk1JTExJUwkAzAgCAAIFA25pbAQDZWZmCQEIZ2V0TGFuZHMDBQt1c2VyQWRkck9wdAkAkQMCBQljb250cmFjdHMFC2RhcHBTdGFraW5nCQCRAwIFCWNvbnRyYWN0cwUJZGFwcEFjcmVzBBVjdXJQZXJpb2REaXN0cmlidXRpb24JARRkaXN0cmlidXRpb25CeVBlcmlvZAEFCWN1clBlcmlvZAQIJHQwNzkxNDIDCQAAAgUObGFzdFVzZXJQZXJpb2QFCWN1clBlcmlvZAQCYTAJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkBQxsYXN0VXNlclRpbWUFCllFQVJNSUxMSVMECHVzZXJQYXJ0CQBrAwUCYTAFD3VzZXJQcm9wb3J0aW9uNgUCTTYEB2VmZlRpbWUJAGQCBQxsYXN0VXNlclRpbWUJAGsDCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQ91c2VyUHJvcG9ydGlvbjYFAk02CQCVCgMFCHVzZXJQYXJ0BQJhMAUHZWZmVGltZQMJAAACBQ5sYXN0VXNlclBlcmlvZAkAZQIFCWN1clBlcmlvZAABBAJhMQkAawMJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAQkAZQIJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTBQljdXJQZXJpb2QFDGxhc3RVc2VyVGltZQUKWUVBUk1JTExJUwQCYTAJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQpZRUFSTUlMTElTBAVhdmFpbAkAZAIFAmExBQJhMAQIdXNlclBhcnQJAGsDBQVhdmFpbAUPdXNlclByb3BvcnRpb242BQJNNgQHZWZmVGltZQMJAGcCBQJhMQUIdXNlclBhcnQJAGQCBQxsYXN0VXNlclRpbWUJAGsDBQpZRUFSTUlMTElTBQh1c2VyUGFydAkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAABCQBkAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAkAawMFCllFQVJNSUxMSVMJAGUCBQh1c2VyUGFydAUCYTEFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAlQoDBQh1c2VyUGFydAUFYXZhaWwFB2VmZlRpbWUEAmEyCQBrAwkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAACCQBlAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMJAGUCBQljdXJQZXJpb2QAAQUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTBAJhMQkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAABBAJhMAkAawMFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAZQIFCm5vd0xpbWl0ZWQJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTBQljdXJQZXJpb2QFCllFQVJNSUxMSVMEBWF2YWlsCQBkAgkAZAIFAmEyBQJhMQUCYTAECHVzZXJQYXJ0CQBrAwUFYXZhaWwFD3VzZXJQcm9wb3J0aW9uNgUCTTYEB2VmZlRpbWUDCQBnAgUCYTIFCHVzZXJQYXJ0CQBkAgUMbGFzdFVzZXJUaW1lCQBrAwUKWUVBUk1JTExJUwUIdXNlclBhcnQJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAgMJAGcCCQBkAgUCYTIFAmExBQh1c2VyUGFydAkAZAIJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTCQBlAgUJY3VyUGVyaW9kAAEJAGsDBQpZRUFSTUlMTElTCQBlAgUIdXNlclBhcnQFAmEyCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAEJAGQCCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kCQBrAwUKWUVBUk1JTExJUwkAZQIJAGUCBQh1c2VyUGFydAUCYTIFAmExBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAJUKAwUIdXNlclBhcnQFBWF2YWlsBQdlZmZUaW1lBAp1c2VyQW1vdW50CAUIJHQwNzkxNDICXzEEDXVzZXJBdmFpbGFibGUIBQgkdDA3OTE0MgJfMgQLZWZmTGFzdFRpbWUIBQgkdDA3OTE0MgJfMwQQc0xhbmREYWlseUFtb3VudAkAawMJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24FCURBWU1JTExJUwUKWUVBUk1JTExJUwAZCQCRAwIFA2VmZgUOaWR4VG90YWxQaWVjZXMED2Ftb3VudExlZnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUUc3Rha2Vyc0Ftb3VudExlZnRLZXkAAAQKcm9iYmVkVXNlcgkAawMFCnVzZXJBbW91bnQJAGQCCQBoAgkAkQMCBQNlZmYFDWlkeFVzZXJQaWVjZXMFAk04CQCRAwIFA2VmZgUMaWR4VXNlckFjcmVzCQBkAgkAaAIJAJEDAgUDZWZmBQ5pZHhUb3RhbFBpZWNlcwUCTTgJAJEDAgUDZWZmBQ1pZHhUb3RhbEFjcmVzBAx1bnJvYmJlZFVzZXIJAGsDBQ11c2VyQXZhaWxhYmxlCQBkAgkAaAIJAJEDAgUDZWZmBQ1pZHhVc2VyUGllY2VzBQJNOAkAkQMCBQNlZmYFDGlkeFVzZXJBY3JlcwkAZAIJAGgCCQCRAwIFA2VmZgUOaWR4VG90YWxQaWVjZXMFAk04CQCRAwIFA2VmZgUNaWR4VG90YWxBY3JlcwkAzAgCBQxpc3N1ZWRBbW91bnQJAMwIAgkAawMFDXRvdGFsRnVuZHNVc2QFAk04BQxpc3N1ZWRBbW91bnQJAMwIAgUNdG90YWxGdW5kc1VzZAkAzAgCBQplY29ub215VXNkCQDMCAIFB3Jlc3RVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgURbGFzdE1hcmtldGluZ1RpbWUJAMwIAgUObWFya2V0aW5nVG90YWwJAMwIAgUTbWFya2V0aW5nQW1vdW50TGVmdAkAzAgCBRttYXJrZXRpbmdBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUPbWFya2V0aW5nV2xnb2xkCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQpyb2JiZWRVc2VyCQDMCAIFEHNMYW5kRGFpbHlBbW91bnQJAMwIAgUPaW52ZXN0RnVuZFRvdGFsCQDMCAIFDHVucm9iYmVkVXNlcgkAzAgCBQtlZmZMYXN0VGltZQUDbmlsAAZTQ0FMRTgAgMLXLwAOcm9iYmVyeUNvc3RNaW4AgMLXLwAUcm9iYmVyeUNvb2xkb3duQ29lZmYAkAMADWNoYXJJbnRlbGxlY3QAAgANY2hhckVuZHVyYW5jZQADAA1jaGFyRGV4dGVyaXR5AAQAB3NlZ0JhY2sAAQAHc2VnQmVsdAACAA1sYW5kUm9iU3RhdGVzCQDMCAICBGZyZWUJAMwIAgIGbG9ja2VkCQDMCAICEWFmdGVyTG9ja0Nvb2xkb3duCQDMCAICDnJvYmJlZENvb2xkb3duCQDMCAICEGRlZmVuZGVkQ29vbGRvd24FA25pbAANZHVja1JvYlN0YXRlcwkAzAgCAgRmcmVlCQDMCAICDHByZXBhcmluZ1JvYgUDbmlsAQ1rZXlEdWNrSGVhbHRoAQtkdWNrQXNzZXRJZAkArAICAgtkdWNrSGVhbHRoXwULZHVja0Fzc2V0SWQBDGtleUR1Y2tDaGFycwELZHVja0Fzc2V0SWQJAKwCAgIKZHVja0NoYXJzXwULZHVja0Fzc2V0SWQBCWtleUR1Y2tYUAELZHVja0Fzc2V0SWQJAKwCAgIHZHVja1hQXwULZHVja0Fzc2V0SWQBDGtleUR1Y2tMZXZlbAELZHVja0Fzc2V0SWQJAKwCAgIKZHVja0xldmVsXwULZHVja0Fzc2V0SWQBEWtleUR1Y2tGcmVlUG9pbnRzAQtkdWNrQXNzZXRJZAkArAICAg9kdWNrRnJlZVBvaW50c18FC2R1Y2tBc3NldElkARBrZXlEdWNrRXF1aXBtZW50AQtkdWNrQXNzZXRJZAkArAICAg5kdWNrRXF1aXBtZW50XwULZHVja0Fzc2V0SWQBCWtleVVzZXJYUAEEYWRkcgkArAICAgd1c2VyWFBfBQRhZGRyAQxrZXlVc2VyTGV2ZWwBBGFkZHIJAKwCAgIKdXNlckxldmVsXwUEYWRkcgERa2V5VXNlckZyZWVQb2ludHMBBGFkZHIJAKwCAgIPdXNlckZyZWVQb2ludHNfBQRhZGRyAQxrZXlEdWNrQnVmZnMBC2R1Y2tBc3NldElkCQCsAgICCmR1Y2tCdWZmc18FC2R1Y2tBc3NldElkARhrZXlMYXN0Um9iYmVyeVRpbWVCeUR1Y2sBC2R1Y2tBc3NldElkCQCsAgICEGxhc3RSb2JiZXJ5VGltZV8FC2R1Y2tBc3NldElkARhrZXlMYXN0Um9iYmVyeUNvc3RCeUR1Y2sBC2R1Y2tBc3NldElkCQCsAgICEGxhc3RSb2JiZXJ5Q29zdF8FC2R1Y2tBc3NldElkARNrZXlMYW5kUm9iYmVyeVN0YXRlAQtsYW5kQXNzZXRJZAkArAICAhFsYW5kUm9iYmVyeVN0YXRlXwULbGFuZEFzc2V0SWQBEmtleUxhbmRDb29sZG93bkVUQQELbGFuZEFzc2V0SWQJAKwCAgIQbGFuZENvb2xkb3duRVRBXwULbGFuZEFzc2V0SWQBE2tleUR1Y2tSb2JiZXJ5U3RhdGUBC2R1Y2tBc3NldElkCQCsAgICEWR1Y2tSb2JiZXJ5U3RhdGVfBQtkdWNrQXNzZXRJZAETa2V5TG9ja2VkTGFuZEJ5RHVjawELZHVja0Fzc2V0SWQJAKwCAgIRbG9ja2VkTGFuZEJ5RHVja18FC2R1Y2tBc3NldElkARZrZXlEZWxpdmVyeURlbGF5QnlEdWNrAQtkdWNrQXNzZXRJZAkArAICAhRkZWxpdmVyeURlbGF5QnlEdWNrXwULZHVja0Fzc2V0SWQBFGtleVVzZXJEZWxpdmVyeUNvdW50AQRhZGRyCQCsAgICEnVzZXJEZWxpdmVyeUNvdW50XwUEYWRkcgEWa2V5VXNlckxhc3REZWxpdmVyeURheQEEYWRkcgkArAICAhR1c2VyTGFzdERlbGl2ZXJ5RGF5XwUEYWRkcgEJbWF4SGVhbHRoAQVsZXZlbAkAZAIAZAUFbGV2ZWwBDmdldFJvYmJlcnlEYXRhAg9zdGFraW5nQ29udHJhY3QLZHVja0Fzc2V0SWQEC2xhc3RSb2JDb3N0CQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBGGtleUxhc3RSb2JiZXJ5Q29zdEJ5RHVjawEFC2R1Y2tBc3NldElkAAAEC2xhc3RSb2JUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBGGtleUxhc3RSb2JiZXJ5VGltZUJ5RHVjawEFC2R1Y2tBc3NldElkAAAEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAEB3JvYkNvc3QJAJYDAQkAzAgCBQ5yb2JiZXJ5Q29zdE1pbgkAzAgCCQBlAgULbGFzdFJvYkNvc3QJAGgCBRRyb2JiZXJ5Q29vbGRvd25Db2VmZgkAZQIFA25vdwULbGFzdFJvYlRpbWUFA25pbAQJZHVja1N0YXRlCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBE2tleUR1Y2tSb2JiZXJ5U3RhdGUBBQtkdWNrQXNzZXRJZAAABApsb2NrZWRMYW5kCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBE2tleUxvY2tlZExhbmRCeUR1Y2sBBQtkdWNrQXNzZXRJZAIABAdsYW5kRVRBCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBEmtleUxhbmRDb29sZG93bkVUQQEFCmxvY2tlZExhbmQAAAkAlwoFBQdyb2JDb3N0BQtsYXN0Um9iVGltZQUJZHVja1N0YXRlBQpsb2NrZWRMYW5kBQdsYW5kRVRBAQR0YW5oAQF2BAZkb3VibGUJAGgCAAIFAXYEBGV4cDIJAGwGANeJz4EBAAgFBmRvdWJsZQAIAAgFBkhBTEZVUAkAbgQJAGUCBQRleHAyBQZTQ0FMRTgFBlNDQUxFOAkAZAIFBGV4cDIFBlNDQUxFOAUGSEFMRlVQARBkb2RnZVByb2JhYmlsaXR5AwVjaGFycwVidWZmcw1lcXVpcG1lbnRQZXJjBAVpbnRlbAkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckludGVsbGVjdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWJ1ZmZzBQ1jaGFySW50ZWxsZWN0BANkZXgJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFY2hhcnMFDWNoYXJEZXh0ZXJpdHkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVidWZmcwUNY2hhckRleHRlcml0eQQGZmlyc3Q4CQBpAgkBBHRhbmgBCQBrAwUDZGV4BQZTQ0FMRTgAyAEABAQHc2Vjb25kOAkAbgQFDWVxdWlwbWVudFBlcmMJAGQCBQZTQ0FMRTgJAG4EAMCfqwMFBWludGVsCQBkAgABBQVpbnRlbAUGSEFMRlVQAGQFBkhBTEZVUAkAZAIFBmZpcnN0OAUHc2Vjb25kOAEQZGFtYWdlQWJzb3JwdGlvbgMFY2hhcnMFYnVmZnMOZXF1aXBtZW50QWJzb3IEBWludGVsCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWNoYXJzBQ1jaGFySW50ZWxsZWN0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFYnVmZnMFDWNoYXJJbnRlbGxlY3QEBWVuZHVyCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWNoYXJzBQ1jaGFyRW5kdXJhbmNlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFYnVmZnMFDWNoYXJFbmR1cmFuY2UEA2RleAkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckRleHRlcml0eQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWJ1ZmZzBQ1jaGFyRGV4dGVyaXR5BAZmaXJzdDgJAGgCBQ5lcXVpcG1lbnRBYnNvcgkAZAIFBlNDQUxFOAkAbgQAgL/WBgUFaW50ZWwJAGQCAAEFBWludGVsBQZIQUxGVVAEB3NlY29uZDgJAGkCCQEEc3FydAQFA2RleAAAAAgFBkhBTEZVUAAKBAZ0aGlyZDgJAGgCCQBpAgUGU0NBTEU4AAUFBWVuZHVyCQBkAgkAZAIFBmZpcnN0OAUHc2Vjb25kOAUGdGhpcmQ4AApBUlRQUkVTQUxFAgdQUkVTQUxFAApBUlRPTkJPQVJEAgdPTkJPQVJEAAZOVU1SRVMABgAPREFJTFlSRVNCWVBJRUNFAID40gEADFdITVVMVElQTElFUgCAyK+gJQAQUkVTT1VSQ0VQUklDRU1JTgDVtQIADUVTTUFYUEFDS0FHRVMACgAJRVNCVVlDT0VGAAQACkVTU0VMTENPRUYACgAJQ09FRkYyTUFUAICt4gQAEHByb2R1Y3Rpb25NYXRyaXgJAMwIAgIlOF84XzhfMTdfMTdfNDJfMTJfMF8zMF8wLDAsMCwwLDAsMCwwXwkAzAgCAiU4XzhfOF8xN18xN180Ml8yNF8wXzYwXzAsMCw1LDIsMCwwLDBfCQDMCAICJzhfOF84XzE3XzE3XzQyXzM2XzBfMTIwXzAsMCwxMCw0LDAsMCwwXwkAzAgCAik4XzE5XzE5XzhfMjdfMTlfMjZfMV8yMF8wLDAsMCwwLDAsMCwwXzAwMQkAzAgCAik4XzE5XzE5XzhfMjdfMTlfNTJfMV80MF8wLDAsMCwwLDAsMCwwXzAwMQkAzAgCAik4XzE5XzE5XzhfMjdfMTlfNzhfMV84MF8wLDAsMCwwLDAsMCwwXzAwMQkAzAgCAiU4XzhfOF84XzhfNjBfMTNfMl8yXzAsMCwwLDAsMCwwLDBfMDExCQDMCAICJThfOF84XzhfOF82MF8yNl8yXzRfMCwwLDAsMCwwLDAsMF8wMTEJAMwIAgIlOF84XzhfOF84XzYwXzM5XzJfOF8wLDAsMCwwLDAsMCwwXzAxMQkAzAgCAikzMF8zMF8zXzE3XzE3XzNfMzBfM18zMF8wLDAsMCwwLDAsMCwwXzExMQkAzAgCAikzMF8zMF8zXzE3XzE3XzNfNjBfM181MF8wLDAsMCwwLDAsMCwwXzExMQkAzAgCAikzMF8zMF8zXzE3XzE3XzNfOTBfM183MF8wLDAsMCwwLDAsMCwwXzExMQkAzAgCAisxOF8xOF8xMF8xOF8xOF8xOF8xMV80XzEwXzAsMCwwLDAsMCwwLDBfMjAxCQDMCAICKzE4XzE4XzEwXzE4XzE4XzE4XzIyXzRfMjBfMCwwLDAsMCwwLDAsMF8yMDEJAMwIAgIrMThfMThfMTBfMThfMThfMThfMzNfNF8zMF8wLDAsMCwwLDAsMCwwXzIwMQkAzAgCAio0XzEzXzIyXzRfMzVfMjJfMjNfMF81MCwxLDBfMCwwLDAsMCwwLDAsMF8JAMwIAgIqNF8xM18yMl80XzM1XzIyXzQ2XzBfNTAsMSwxXzAsMiw1LDAsMCwwLDBfCQDMCAICKzRfMTNfMjJfNF8zNV8yMl82OV8wXzUwLDIsMV8wLDUsMTAsMCwwLDAsMF8JAMwIAgIqNV8yNV80MF81XzEwXzE1XzIwXzFfMzAsMSwxXzAsMCwwLDAsMCwwLDBfCQDMCAICKjVfMjVfNDBfNV8xMF8xNV80MF8xXzMwLDEsMl8yLDEsMywwLDAsMCwwXwkAzAgCAio1XzI1XzQwXzVfMTBfMTVfNjBfMV8zMCwxLDNfNSwyLDgsMCwwLDAsMF8JAMwIAgIlMjNfMjNfNV8yMF8yM182XzM1XzJfMF8wLDAsMCwwLDAsMCwwXwkAzAgCAiUyM18yM181XzIwXzIzXzZfNzBfMl8wXzAsMCwwLDAsMCwwLDBfCQDMCAICJjIzXzIzXzVfMjBfMjNfNl8xMDVfMl8wXzAsMCwwLDAsMCwwLDBfBQNuaWwACXJJZHhDb2VmZgAGAApySWR4RWZmZWN0AAgADlBST0RVQ1RQS0dTSVpFAAoBFWtleUxhbmRBc3NldElkVG9Pd25lcgEHYXNzZXRJZAkArAICAgNub18FB2Fzc2V0SWQBGmtleUxhbmRBc3NldElkVG9DdXN0b21OYW1lAQdhc3NldElkCQCsAgICBWxjbmFfBQdhc3NldElkARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQdhc3NldElkCQCsAgICA3N0XwUHYXNzZXRJZAEga2V5TGFuZEFydFN0YXR1c0J5VHlwZUFuZEFzc2V0SWQCBHR5cGUHYXNzZXRJZAkAuQkCCQDMCAICA2xhcwkAzAgCBQR0eXBlCQDMCAIFB2Fzc2V0SWQFA25pbAIBXwESa2V5V2FyZWhvdXNlQnlMYW5kAQtsYW5kQXNzZXRJZAkArAICAgN3aF8FC2xhbmRBc3NldElkARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQdhc3NldElkCQCsAgICC2luZnJhTGV2ZWxfBQdhc3NldElkARdrZXlGb3J0aWZpY2F0aW9uc0J5TGFuZAELbGFuZEFzc2V0SWQJAKwCAgIPZm9ydGlmaWNhdGlvbnNfBQtsYW5kQXNzZXRJZAEaa2V5RHVja0Fzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIYZHVja0N1c3RvbU5hbWVCeUFzc2V0SWRfBQdhc3NldElkARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQRhZGRyCQCsAgICGGFjY291bnRDdXN0b21OYW1lQnlBZGRyXwUEYWRkcgEPa2V5QWRkcmVzc1JlZkJ5AQRhZGRyCQCsAgICCWFjY1JlZkJ5XwUEYWRkcgEca2V5T25ib2FyZEFydER1Y2tBY3RpdmF0ZWRCeQEEYWRkcgkArAICAhpvbmJvYXJkQXJ0QWN0aXZhdGVkRHVja0J5XwUEYWRkcgETa2V5QWRkcmVzc1JlZmVycmFscwEEYWRkcgkArAICAg1hY2NSZWZlcnJhbHNfBQRhZGRyARBrZXlEdWNrSWRUb093bmVyAQdhc3NldElkCQCsAgICCmR1Y2tPd25lcl8FB2Fzc2V0SWQBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBD2tleUR1Y2tMb2NhdGlvbgELZHVja0Fzc2V0SWQJAKwCAgINZHVja0xvY2F0aW9uXwULZHVja0Fzc2V0SWQBDmtleU9yZGVyQnlMYW5kAQtsYW5kQXNzZXRJZAkArAICAgpsYW5kT3JkZXJfBQtsYW5kQXNzZXRJZAEOa2V5RXNXYXJlaG91c2UAAhplbWVyZ2VuY3lXYXJlaG91c2VQcm9kdWN0cwANbGFzdFRvdXJJZEtleQIOJXNfX2xhc3RUb3VySWQBFWtleVRvdXJTdGF0aWNEYXRhQnlJZAEDdElkCQCsAgICFiVzJWRfX3RvdXJTdGF0aWNEYXRhX18JAKQDAQUDdElkARZrZXlUb3VyRHluYW1pY0RhdGFCeUlkAQN0SWQJAKwCAgIXJXMlZF9fdG91ckR5bmFtaWNEYXRhX18JAKQDAQUDdElkARNrZXlTY29yZUJvYXJkQnlUb3VyAQN0SWQJAKwCAgISJXMlZF9fc2NvcmVCb2FyZF9fCQCkAwEFA3RJZAEca2V5SXNSZWdpc3RlcmVkQnlUb3VyQW5kRHVjawIDdElkC2R1Y2tBc3NldElkCQC5CQIJAMwIAgIhJXMlZCVzX19pc1JlZ2lzdGVyZWRCeVRvdXJBbmREdWNrCQDMCAIJAKQDAQUDdElkCQDMCAIFC2R1Y2tBc3NldElkBQNuaWwCAl9fARlrZXlJc0F3YXJkZWRCeVRvdXJBbmREdWNrAgN0SWQLZHVja0Fzc2V0SWQJALkJAgkAzAgCAh4lcyVkJXNfX2lzQXdhcmRlZEJ5VG91ckFuZER1Y2sJAMwIAgkApAMBBQN0SWQJAMwIAgULZHVja0Fzc2V0SWQFA25pbAICX18BG2tleUxhc3RBdHRlbXB0QnlUb3VyQW5kRHVjawIDdElkC2R1Y2tBc3NldElkCQC5CQIJAMwIAgIgJXMlZCVzX19sYXN0QXR0ZW1wdEJ5VG91ckFuZER1Y2sJAMwIAgkApAMBBQN0SWQJAMwIAgULZHVja0Fzc2V0SWQFA25pbAICX18BGmtleUJlc3RSZXN1bHRCeVRvdXJBbmREdWNrAgN0SWQLZHVja0Fzc2V0SWQJALkJAgkAzAgCAh8lcyVkJXNfX2Jlc3RSZXN1bHRCeVRvdXJBbmREdWNrCQDMCAIJAKQDAQUDdElkCQDMCAIFC2R1Y2tBc3NldElkBQNuaWwCAl9fARZrZXlCZXN0VHhCeVRvdXJBbmREdWNrAgN0SWQLZHVja0Fzc2V0SWQJALkJAgkAzAgCAhslcyVkJXNfX2Jlc3RUeEJ5VG91ckFuZER1Y2sJAMwIAgkApAMBBQN0SWQJAMwIAgULZHVja0Fzc2V0SWQFA25pbAICX18ACWlkeFN0YXRpYwAAAAppZHhEeW5hbWljAAEAE3RTdGF0aWNSZWdpc3RlckNvc3QAAgASdFN0YXRpY0F0dGVtcHRDb3N0AAMADHRTdGF0aWNTdGFydAAFAAp0U3RhdGljRW5kAAYAEHRTdGF0aWNOdW1HcmFuZHMABwAQdFN0YXRpY1ByaXplRnVuZAAIAAx0U3RhdGljQXNzZXQACQAOdER5bmFtaWNTdGF0dXMAAQAPdER5bmFtaWNMZWFkZXJzAAIAEXREeW5hbWljV2luUmVzdWx0AAMAFXREeW5hbWljVG90YWxSZWdDb3VudAAEABV0RHluYW1pY1RvdGFsQXR0ZW1wdHMABQELZ2V0VG91ckRhdGECDHRvdXJDb250cmFjdAN0SWQEBnN0YXRpYwkAtQkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUMdG91ckNvbnRyYWN0CQEVa2V5VG91clN0YXRpY0RhdGFCeUlkAQUDdElkCQCsAgIJAKwCAgIZRXJyb3IgcmVhZGluZyB0b3VybmFtZW50IAkApAMBBQN0SWQCBSBkYXRhAgJfXwQHZHluYW1pYwkAvAkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUMdG91ckNvbnRyYWN0CQEWa2V5VG91ckR5bmFtaWNEYXRhQnlJZAEFA3RJZAkArAICCQCsAgICGUVycm9yIHJlYWRpbmcgdG91cm5hbWVudCAJAKQDAQUDdElkAgUgZGF0YQICX18JAMwIAgUGc3RhdGljCQDMCAIFB2R5bmFtaWMFA25pbAESZ2V0UmVjaXBlTWF0ZXJpYWxzAQZyZWNpcGUJAGgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGcmVjaXBlBQlySWR4Q29lZmYFCUNPRUZGMk1BVAAWS1NfU0VQQVJBVEVfUFVCTElDX0tFWQcABWNoYWluCQDJAQIJAMoBAggFBHRoaXMFYnl0ZXMAAQABAANwdWIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDADBRZLU19TRVBBUkFURV9QVUJMSUNfS0VZASCrF1ePFWfjWVRBsNZy62abxKPTZl7VmYZQ35g3H7IJCAEgT1PiGj9UqNadUk4THUYnVb2zU/Mse8lUVLD/Q8G0FCgDCQAAAgEBVAUHJG1hdGNoMAEgT1PiGj9UqNadUk4THUYnVb2zU/Mse8lUVLD/Q8G0FCgJAAIBAg1Vbmtub3duIGNoYWluAAt1c2R0QXNzZXRJZAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kDCQAAAgEBVAUHJG1hdGNoMAEgVbHYn3KHgu/l41uNrAWrZd6aQ6EvFrsF8xq3h6XxxRgJAAIBAg1Vbmtub3duIGNoYWluABVkZWZhdWx0UmVzdEFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQUUN1dkZidmg0TGtQVW5yblUxejNqbmJBMXA5bTNXTmh2AwkAAAIBAVQFByRtYXRjaDACIzNNdW1rR0d6dENLQVhwV0RxeGtkZG9mcVhTVWJxUWt2U0p5CQACAQINVW5rbm93biBjaGFpbgARSW5mcmFVcGdyYWRlQ29zdFMEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAgMivoCUDCQAAAgEBVAUHJG1hdGNoMACAwtcvCQACAQINVW5rbm93biBjaGFpbgADU0VQAgJfXwAFTVVMVDYAwIQ9AAVNVUxUOACAwtcvAAVTU0laRQAZAAVNU0laRQBkAAVMU0laRQDhAQAGWExTSVpFAJADAAdYWExTSVpFAPEEAQ9nZXRTdHJpbmdPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAARSWR4Q2ZnU3Rha2luZ0RhcHAAAQARSWR4Q2ZnRWNvbm9teURhcHAAAgANSWR4Q2ZnV2xnRGFwcAAEABRJZHhDZmdQdXp6bGVQb29sRGFwcAAFABRJZHhDZmdJbnZlc3RGdW5kRGFwcAAGABRJZHhDZmdUb3VybmFtZW50RGFwcAAHAA9JZHhDZmdBY3Jlc0RhcHAACAEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ5rZXlSZXN0QWRkcmVzcwACDCVzX19yZXN0QWRkcgERcmVhZFJlc3RDZmdPckZhaWwBBHJlc3QJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHJlc3QJAQprZXlSZXN0Q2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCB3Jlc3RDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQdyZXN0Q2ZnBQNpZHgJAKwCAgIqUmVzdCBjZmcgZG9lc24ndCBjb250YWluIGFkZHJlc3MgYXQgaW5kZXggCQCkAwEFA2lkeAAMcmVzdENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlSZXN0QWRkcmVzcwAFFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgAHcmVzdENmZwkBEXJlYWRSZXN0Q2ZnT3JGYWlsAQUMcmVzdENvbnRyYWN0AA9zdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdTdGFraW5nRGFwcAAPZWNvbm9teUNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwURSWR4Q2ZnRWNvbm9teURhcHAAC3dsZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUNSWR4Q2ZnV2xnRGFwcAAScHV6emxlUG9vbENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUUSWR4Q2ZnUHV6emxlUG9vbERhcHAAEmludmVzdEZ1bmRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFFElkeENmZ0ludmVzdEZ1bmREYXBwABJ0b3VybmFtZW50Q29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRRJZHhDZmdUb3VybmFtZW50RGFwcAANYWNyZXNDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFD0lkeENmZ0FjcmVzRGFwcAAKcmVjTGFuZE51bQAAAAtyZWNMYW5kU2l6ZQABAAtyZWNUZXJyYWlucwACAAxyZWNDb250aW5lbnQAAwANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0ABRhY3Jlc0lzc3VlZEFtb3VudEtleQIRYWNyZXNJc3N1ZWRBbW91bnQAD2FjcmVzQXNzZXRJZEtleQIMYWNyZXNBc3NldElkAAxhY3Jlc0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQ1hY3Jlc0NvbnRyYWN0BQ9hY3Jlc0Fzc2V0SWRLZXkCF0FDUkVTIGlzIG5vdCBpc3N1ZWQgeWV0AAxpZHhXbGdBbW91bnQAAAALaWR4V2xnUHJpY2UAAQALaWR4V2xnRnVuZHMAAgANaWR4V2xnRWNvbm9teQADAA5pZHhXbGdBY3Rpdml0eQAEAA9pZHhXbGdBcmJpdHJhZ2UABQAKaWR4V2xnUG9vbAAGAA9pZHhXbGdJc3N1ZVRpbWUABwARaWR4V2xnTGFzdE1UQVRpbWUACAAUaWR4V2xnTWFya2V0aW5nVG90YWwACQAVaWR4V2xnTWFya2V0aW5nQW1MZWZ0AAoAGWlkeFdsZ01hcmtldGluZ0FtQXZhaWxOb3cACwAVaWR4V2xnTWFya2V0aW5nV2xnb2xkAAwAD2lkeFdsZ1RlYW1Ub3RhbAANABBpZHhXbGdUZWFtQW1MZWZ0AA4AFGlkeFdsZ1RlYW1BbUF2YWlsTm93AA8AEGlkeFdsZ1RlYW1XbGdvbGQAEAAOaWR4V2xnQWN0VG90YWwAEQAPaWR4V2xnQWN0QW1MZWZ0ABIAE2lkeFdsZ0FjdEFtQXZhaWxOb3cAEwAPaWR4V2xnQWN0V2xnb2xkABQAD2lkeFdsZ0N1clBlcmlvZAAVABFpZHhXbGdBbUxlZnRUb3RhbAAWABtpZHhXbGdDdXJQZXJpb2REaXN0cmlidXRpb24AFwASaWR4V2xnTGFzdFVzZXJUaW1lABgAFGlkeFdsZ1VzZXJBbUF2YWlsTm93ABkAFmlkeFdsZ1NMYW5kRGFpbHlBbW91bnQAGgAWaWR4V2xnSW52ZXN0RnVuZEFtb3VudAAbABRpZHhXbGdVc2VyVG90YWxBdmFpbAAcABFpZHhXbGdFZmZVc2VyVGltZQAdAApJZHhFZmZVc2VyAAEBEWtleVJlc1Byb3BvcnRpb25zAAITcmVzVHlwZXNQcm9wb3J0aW9ucwEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQlvd25lckFkZHIJAKwCAgITc3Rha2VkTGFuZHNCeU93bmVyXwUJb3duZXJBZGRyARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQlvd25lckFkZHIJAKwCAgIUc3Rha2VkUGllY2VzQnlPd25lcl8FCW93bmVyQWRkcgEIYXNTdHJpbmcBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAW4FByRtYXRjaDAFAW4JAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBCWFzQW55TGlzdAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAglMaXN0W0FueV0EAWwFByRtYXRjaDAFAWwJAAIBAhtmYWlsIHRvIGNhc3QgaW50byBMaXN0W0FueV0BD251bVBpZWNlc0J5U2l6ZQEIbGFuZFNpemUEByRtYXRjaDAFCGxhbmRTaXplAwkAAAICAVMFByRtYXRjaDAFBVNTSVpFAwkAAAICAU0FByRtYXRjaDAFBU1TSVpFAwkAAAICAUwFByRtYXRjaDAFBUxTSVpFAwkAAAICAlhMBQckbWF0Y2gwBQZYTFNJWkUDCQAAAgIDWFhMBQckbWF0Y2gwBQdYWExTSVpFCQACAQIRVW5rbm93biBsYW5kIHNpemUBCmtleUJsb2NrZWQAAhBjb250cmFjdHNCbG9ja2VkARFrZXlMYXN0VHhJZEJ5VXNlcgEEYWRkcgkArAICAg9sYXN0VHhJZEJ5VXNlcl8FBGFkZHIBDmdldFZvdGluZ1Bvd2VyARJ1c2VyQWRkclN0ck9yRW1wdHkEBXByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQERa2V5UmVzUHJvcG9ydGlvbnMAAgswXzBfMF8wXzBfMAIBXwoBBWFkZGVyAgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAp0b3RhbFBvd2VyCgACJGwFBXByb3BzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQVhZGRlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgQKdXNlcnNQb3dlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQUSdXNlckFkZHJTdHJPckVtcHR5AAAJAMwIAgUKdG90YWxQb3dlcgkAzAgCBQp1c2Vyc1Bvd2VyBQNuaWwADVVTRFRQUklaRVBBUlQAoMIeARJhc0xpc3RJbnRDb21wYWN0ZWQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQKdmFsQW55TGlzdAUHJG1hdGNoMAMJAQIhPQIJAJADAQUKdmFsQW55TGlzdAUGTlVNUkVTCQACAQkArAICAg5BcnJheSBzaXplIGlzIAkApAMBCQCQAwEFCnZhbEFueUxpc3QKAQRjb252AgNhY2MEaXRlbQQHJG1hdGNoMQUEaXRlbQMJAAECBQckbWF0Y2gxAgNJbnQEAml0BQckbWF0Y2gxCQDNCAIFA2FjYwkApAMBBQJpdAkAAgECFExpc3QgdHlwZSBpcyBub3QgSW50BAFyCgACJGwFCnZhbEFueUxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGNvbnYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYJALkJAgUBcgIBXwkAAgECFmZhaWwgdG8gY2FzdCBpbnRvIExpc3QBDWFzU3BsaXRSZXN1bHQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACFihMaXN0W0FueV0sIExpc3RbQW55XSkEAnQyBQckbWF0Y2gwCQCUCgIJARJhc0xpc3RJbnRDb21wYWN0ZWQBCAUCdDICXzEJARJhc0xpc3RJbnRDb21wYWN0ZWQBCAUCdDICXzIJAAIBAh5mYWlsIHRvIGNhc3QgaW50byAoTGlzdCwgTGlzdCkBE2FzQ2FuY2VsT3JkZXJSZXN1bHQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACEShCb29sZWFuLCBTdHJpbmcpBAJ0MgUHJG1hdGNoMAUCdDIJAAIBAiNmYWlsIHRvIGNhc3QgaW50byAoQm9vbGVhbiwgU3RyaW5nKQEOd2FsbGV0SW50ZXJuYWwBDnVzZXJBZGRyZXNzT3B0BARhZGRyCQCmCAEFDnVzZXJBZGRyZXNzT3B0BAdiYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAO8HAQkBBXZhbHVlAQUEYWRkcgkBDkJhbGFuY2VEZXRhaWxzBAAAAAAAAAAABAt1c2R0QmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDwBwIJAQV2YWx1ZQEFBGFkZHIFC3VzZHRBc3NldElkAAAEDXdsZ29sZEJhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQp3bGdBc3NldElkAAAECmN1c3RvbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5QWRkcmVzc1RvQ3VzdG9tTmFtZQEFDnVzZXJBZGRyZXNzT3B0BQ51c2VyQWRkcmVzc09wdAQIcmVmQnlLZXkJAQ9rZXlBZGRyZXNzUmVmQnkBBQ51c2VyQWRkcmVzc09wdAQFcmVmQnkJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0BQhyZWZCeUtleQQEcmVmcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARNrZXlBZGRyZXNzUmVmZXJyYWxzAQUOdXNlckFkZHJlc3NPcHQCAAQIbGFzdFR4SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQERa2V5TGFzdFR4SWRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAIABAZwaWVjZXMJAJEDAgkBDmdldFZvdGluZ1Bvd2VyAQUOdXNlckFkZHJlc3NPcHQFCklkeEVmZlVzZXIEAnhwCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBCWtleVVzZXJYUAEFDnVzZXJBZGRyZXNzT3B0AAAEA2x2bAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQxrZXlVc2VyTGV2ZWwBBQ51c2VyQWRkcmVzc09wdAAABApmcmVlUG9pbnRzCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBEWtleVVzZXJGcmVlUG9pbnRzAQUOdXNlckFkZHJlc3NPcHQAAAQLdmlydFdsZ0RhdGEKAAFACQD8BwQFC3dsZ0NvbnRyYWN0AhJjaGVja1dsZ1hwUkVBRE9OTFkJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsAwkAAQIFAUACCUxpc3RbQW55XQUBQAkAAgEJAKwCAgkAAwEFAUACHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQQMc3Rha2VkV2xnb2xkCQELdmFsdWVPckVsc2UCCQCaCAIFC3dsZ0NvbnRyYWN0CQEYa2V5V2xnU3Rha2VkQW1vdW50QnlVc2VyAQUOdXNlckFkZHJlc3NPcHQAAAQHb25ib2FyZAMJAQlpc0RlZmluZWQBBQVyZWZCeQkArAICBQpBUlRPTkJPQVJEAwMJAQlpc0RlZmluZWQBBQRhZGRyCQEJaXNEZWZpbmVkAQkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARxrZXlPbmJvYXJkQXJ0RHVja0FjdGl2YXRlZEJ5AQUOdXNlckFkZHJlc3NPcHQHAgI6MQICOjACAAQMYWNyZXNCYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAPAHAgkBBXZhbHVlAQUEYWRkcgUMYWNyZXNBc3NldElkAAAEC3N0YWtlZEFjcmVzCQELdmFsdWVPckVsc2UCCQCaCAIFDWFjcmVzQ29udHJhY3QJARprZXlBY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcgEFDnVzZXJBZGRyZXNzT3B0AAAECmRlbGl2Q291bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEUa2V5VXNlckRlbGl2ZXJ5Q291bnQBBQ51c2VyQWRkcmVzc09wdAAABAxsYXN0RGVsaXZEYXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5VXNlckxhc3REZWxpdmVyeURheQEFDnVzZXJBZGRyZXNzT3B0AAAJAMwIAgkArAICAhIlcyVzX19jdXN0b21OYW1lX18FCmN1c3RvbU5hbWUJAMwIAgkArAICAhIlcyVzX19yZWZlcnJlZEJ5X18JAQt2YWx1ZU9yRWxzZQIFBXJlZkJ5AgAJAMwIAgkArAICAhElcyVzX19yZWZlcnJhbHNfXwUEcmVmcwkAzAgCCQCsAgICECVzJXNfX2xhc3RUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgIUJXMlZF9fd2F2ZXNCYWxhbmNlX18JAKQDAQgFB2JhbGFuY2UJYXZhaWxhYmxlCQDMCAIJAKwCAgIVJXMlZF9fd2xnb2xkQmFsYW5jZV9fCQCkAwEFDXdsZ29sZEJhbGFuY2UJAMwIAgkArAICAhMlcyVkX191c2R0QmFsYW5jZV9fCQCkAwEFC3VzZHRCYWxhbmNlCQDMCAIJAKwCAgIUJXMlZF9fc3Rha2VkUGllY2VzX18JAKQDAQUGcGllY2VzCQDMCAIJAKwCAgIUJXMlZF9fYWNyZXNCYWxhbmNlX18JAKQDAQUMYWNyZXNCYWxhbmNlCQDMCAIJAKwCAgITJXMlZF9fc3Rha2VkQWNyZXNfXwkApAMBBQtzdGFrZWRBY3JlcwkAzAgCCQCsAgICESVzJWRfX2N1cnJlbnRYcF9fCQCkAwEFAnhwCQDMCAIJAKwCAgISJXMlZF9fY3VycmVudEx2bF9fCQCkAwEFA2x2bAkAzAgCCQCsAgICGiVzJWRfX3BvaW50c1RvRGlzdHJpYnV0ZV9fCQCkAwEFCmZyZWVQb2ludHMJAMwIAgkArAICAhclcyVzX193YWxsZXRBcnRlZmFjdHNfXwUHb25ib2FyZAkAzAgCCQCsAgICFCVzJWRfX3N0YWtlZFdsZ29sZF9fCQCkAwEFDHN0YWtlZFdsZ29sZAkAzAgCCQCsAgICESVzJWRfX3ZpcnRMZXZlbF9fCQCkAwEKAAFACQCRAwIFC3ZpcnRXbGdEYXRhAAADCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQDMCAIJAKwCAgISJXMlZF9fdmlydFBvaW50c19fCQCkAwEKAAFACQCRAwIFC3ZpcnRXbGdEYXRhAAEDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQDMCAIJAKwCAgIOJXMlZF9fdmlydFhQX18JAKQDAQoAAUAJAJEDAgULdmlydFdsZ0RhdGEAAgMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAMwIAgkArAICAhklcyVkX191c2VyRGVsaXZlcnlDb3VudF9fCQCkAwEFCmRlbGl2Q291bnQJAMwIAgkArAICAhslcyVkX191c2VyTGFzdERlbGl2ZXJ5RGF5X18JAKQDAQUMbGFzdERlbGl2RGF5CQDMCAIJAKwCAgITJXMlZF9fbG9ja2VkQWNyZXNfXwkApAMBCQELdmFsdWVPckVsc2UCCQCaCAIFDWFjcmVzQ29udHJhY3QJARprZXlBY3Jlc0xvY2tlZEFtb3VudEJ5VXNlcgEFDnVzZXJBZGRyZXNzT3B0AAAJAMwIAgkArAICAhYlcyVkX19FVEFMb2NrZWRBY3Jlc19fCQCkAwEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUNYWNyZXNDb250cmFjdAkBF2tleUFjcmVzTG9ja2VkRXRhQnlVc2VyAQUOdXNlckFkZHJlc3NPcHQAAAUDbmlsAQxhcHBseUJvbnVzZXMCC2xhbmRBc3NldElkBnBpZWNlcwQKaW5mcmFMZXZlbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAQJYXJ0UGllY2VzCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBIGtleUxhbmRBcnRTdGF0dXNCeVR5cGVBbmRBc3NldElkAgUKQVJUUFJFU0FMRQULbGFuZEFzc2V0SWQAAAQEYWRkNgkAaQIFCmluZnJhTGV2ZWwABgQEYWRkNwkAaQIFCmluZnJhTGV2ZWwABwkAlQoDBQppbmZyYUxldmVsBQlhcnRQaWVjZXMJAGQCCQBkAgUPREFJTFlSRVNCWVBJRUNFCQBrAwUPREFJTFlSRVNCWVBJRUNFCQBkAgkAZAIFCmluZnJhTGV2ZWwFBGFkZDYJAGgCAAIFBGFkZDcABQkAawMFD0RBSUxZUkVTQllQSUVDRQUJYXJ0UGllY2VzCQBoAgUGcGllY2VzAAUBF2dldFdhcmVob3VzZVRvdGFsVm9sdW1lAQl2b2xQcmVmaXgEBXBhcnRzCQC1CQIFCXZvbFByZWZpeAIBXwkAaAIJAGgCBQxXSE1VTFRJUExJRVIJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAQABCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAAEMZ2V0V2FyZWhvdXNlAwV3aEtleQlsYW5kSW5kZXgKaW5mcmFMZXZlbAQJdm9sUHJlZml4CQCsAgIJAKwCAgkApAMBBQlsYW5kSW5kZXgCAV8JAKQDAQUKaW5mcmFMZXZlbAQEdG90UwkApAMBCQEXZ2V0V2FyZWhvdXNlVG90YWxWb2x1bWUBBQl2b2xQcmVmaXgEBXdoU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAUFd2hLZXkJAKwCAgkArAICCQCsAgIJAKwCAgUJdm9sUHJlZml4Ah46MF8wXzBfMF8wXzA6MF8wXzBfMF8wXzA6OjBfMF8FBHRvdFMCAV8FBHRvdFMJALUJAgUFd2hTdHICAToBDWR1Y2tJbmZvVHVwbGUBC2R1Y2tBc3NldElkBAVtYXhIUAkBCW1heEhlYWx0aAEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEMa2V5RHVja0xldmVsAQULZHVja0Fzc2V0SWQAAAkAlwoFCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtkdWNrQXNzZXRJZAD///////////8BCAkBBXZhbHVlAQkA7AcBCQDZBAEFC2R1Y2tBc3NldElkBG5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQCAAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQ1rZXlEdWNrSGVhbHRoAQULZHVja0Fzc2V0SWQFBW1heEhQCQEIYXNTdHJpbmcBCQD8BwQFD3N0YWtpbmdDb250cmFjdAITZ2V0QmFja3BhY2tSRUFET05MWQkAzAgCBQtkdWNrQXNzZXRJZAUDbmlsBQNuaWwBDWR1Y2tJbmZvQXJyYXkDC2R1Y2tBc3NldElkBW93bmVyB2R1Y2tJbmYECmN1c3RvbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEaa2V5RHVja0Fzc2V0SWRUb0N1c3RvbU5hbWUBBQtkdWNrQXNzZXRJZAgFB2R1Y2tJbmYCXzIEBWNoYXJzCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBDGtleUR1Y2tDaGFycwEFC2R1Y2tBc3NldElkAgkwXzBfMF8wXzAEAnhwCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBCWtleUR1Y2tYUAEFC2R1Y2tBc3NldElkAAAEA2x2bAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQxrZXlEdWNrTGV2ZWwBBQtkdWNrQXNzZXRJZAAABApmcmVlUG9pbnRzCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBEWtleUR1Y2tGcmVlUG9pbnRzAQULZHVja0Fzc2V0SWQAAAQGZXF1aXBtCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBEGtleUR1Y2tFcXVpcG1lbnQBBQtkdWNrQXNzZXRJZAILO187XztfO187XzsEBWJ1ZmZzCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBDGtleUR1Y2tCdWZmcwEFC2R1Y2tBc3NldElkAgkwXzBfMF8wXzAECyR0MDcxMzY3MjQxCQEOZ2V0Um9iYmVyeURhdGECBQ9zdGFraW5nQ29udHJhY3QFC2R1Y2tBc3NldElkBAdyb2JDb3N0CAULJHQwNzEzNjcyNDECXzEEC2xhc3RSb2JUaW1lCAULJHQwNzEzNjcyNDECXzIECWR1Y2tTdGF0ZQgFCyR0MDcxMzY3MjQxAl8zBApsb2NrZWRMYW5kCAULJHQwNzEzNjcyNDECXzQEB2xhbmRFVEEIBQskdDA3MTM2NzI0MQJfNQQQZGVsaXZlcnlEZWxheUVUQQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlEZWxpdmVyeURlbGF5QnlEdWNrAQULZHVja0Fzc2V0SWQAAAkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULZHVja0Fzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJWRfX3N0YWtlZFRpbWVfXwkApAMBCAUHZHVja0luZgJfMQkAzAgCCQCsAgICDCVzJXNfX25hbWVfXwgFB2R1Y2tJbmYCXzIJAMwIAgkArAICAhAlcyVzX19sb2NhdGlvbl9fCAUHZHVja0luZgJfMwkAzAgCCQCsAgICDiVzJWRfX2hlYWx0aF9fCQCkAwEIBQdkdWNrSW5mAl80CQDMCAIJAKwCAgIRJXMlZF9fbWF4SGVhbHRoX18JAKQDAQkBCW1heEhlYWx0aAEFA2x2bAkAzAgCCQCsAgICFyVzJXNfX2NoYXJhY3RlcmlzdGljc19fBQVjaGFycwkAzAgCCQCsAgICESVzJWRfX2N1cnJlbnRYcF9fCQCkAwEFAnhwCQDMCAIJAKwCAgISJXMlZF9fY3VycmVudEx2bF9fCQCkAwEFA2x2bAkAzAgCCQCsAgICGiVzJWRfX3BvaW50c1RvRGlzdHJpYnV0ZV9fCQCkAwEFCmZyZWVQb2ludHMJAMwIAgkArAICAhAlcyVzX19iYWNrUGFja19fCAUHZHVja0luZgJfNQkAzAgCCQCsAgICESVzJXNfX2VxdWlwbWVudF9fBQZlcXVpcG0JAMwIAgkArAICAg0lcyVzX19idWZmc19fBQVidWZmcwkAzAgCCQCsAgICEyVzJWRfX3JvYmJlcnlDb3N0X18JAKQDAQUHcm9iQ29zdAkAzAgCCQCsAgICEyVzJWRfX3JvYmJlcnlUaW1lX18JAKQDAQULbGFzdFJvYlRpbWUJAMwIAgkArAICAhQlcyVzX19yb2JiZXJ5U3RhdGVfXwkAkQMCBQ1kdWNrUm9iU3RhdGVzBQlkdWNrU3RhdGUJAMwIAgkArAICAhclcyVzX19yb2JiZXJ5TGFzdExhbmRfXwUKbG9ja2VkTGFuZAkAzAgCCQCsAgICIiVzJWRfX3JvYmJlcnlMYXN0TGFuZFJlbGVhc2VUaW1lX18JAKQDAQUHbGFuZEVUQQkAzAgCCQCsAgICFSVzJWRfX2RlbGl2ZXJ5RGVsYXlfXwkApAMBBRBkZWxpdmVyeURlbGF5RVRBBQNuaWwBDWxhbmRJbmZvQXJyYXkDC2xhbmRBc3NldElkBW93bmVyCnN0YWtlZFRpbWUDCQAAAgULbGFuZEFzc2V0SWQCAAkAAgECF2xhbmRBc3NldElkIGlzIHJlcXVpcmVkBAFhCQEFdmFsdWUBCQDsBwEJANkEAQULbGFuZEFzc2V0SWQEAWQJALUJAggFAWELZGVzY3JpcHRpb24CAV8EB2xhbmROdW0DCQBmAggFAWEIcXVhbnRpdHkAAAkAkQMCBQFkBQpyZWNMYW5kTnVtCQCsAgICAS0JAJEDAgUBZAUKcmVjTGFuZE51bQQGcGllY2VzCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCBQFkBQtyZWNMYW5kU2l6ZQQMcHJvZHVjdGl2aXR5CQEMYXBwbHlCb251c2VzAgULbGFuZEFzc2V0SWQFBnBpZWNlcwQJZGVsdGFUaW1lCQBlAggFCWxhc3RCbG9jawl0aW1lc3RhbXAFCnN0YWtlZFRpbWUECGF2YWlsUmVzAwkAZgIFCnN0YWtlZFRpbWUAAAkAawMFCWRlbHRhVGltZQkAaAIIBQxwcm9kdWN0aXZpdHkCXzMFBnBpZWNlcwUJREFZTUlMTElTAAAEB25lZWRNYXQJAGsDBRFJbmZyYVVwZ3JhZGVDb3N0UwkAaAIFBnBpZWNlcwkAZAIIBQxwcm9kdWN0aXZpdHkCXzEAAQUFU1NJWkUEDmdsb2JhbEFuZExvY2FsAwkAZgIFCnN0YWtlZFRpbWUAAAkBDWFzU3BsaXRSZXN1bHQBCQD8BwQFD3N0YWtpbmdDb250cmFjdAIkc3BsaXRCeUdsb2JhbEFuZExvY2FsV2VpZ2h0c1JFQURPTkxZCQDMCAIFB25lZWRNYXQJAMwIAgUIYXZhaWxSZXMJAMwIAgkAkQMCBQFkBQtyZWNUZXJyYWlucwUDbmlsBQNuaWwJAJQKAgkBEmFzTGlzdEludENvbXBhY3RlZAEJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AhxzcGxpdEJ5R2xvYmFsV2VpZ2h0c1JFQURPTkxZCQDMCAIFB25lZWRNYXQFA25pbAUDbmlsAgAECmN1c3RvbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEaa2V5TGFuZEFzc2V0SWRUb0N1c3RvbU5hbWUBBQtsYW5kQXNzZXRJZAkArAICCQCsAgIJAJEDAgUBZAUMcmVjQ29udGluZW50AgEtCQCRAwIFAWQFCnJlY0xhbmROdW0EBGZvcnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEXa2V5Rm9ydGlmaWNhdGlvbnNCeUxhbmQBBQtsYW5kQXNzZXRJZAIMOjBfMTU6MF8xODowBAVzdGF0ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARNrZXlMYW5kUm9iYmVyeVN0YXRlAQULbGFuZEFzc2V0SWQAAAQLY29vbGRvd25FVEEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQESa2V5TGFuZENvb2xkb3duRVRBAQULbGFuZEFzc2V0SWQAAAkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULbGFuZEFzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJWRfX3N0YWtlZFRpbWVfXwkApAMBBQpzdGFrZWRUaW1lCQDMCAIJAKwCAgITJXMlc19fZGVzY3JpcHRpb25fXwkAuQkCCQDMCAIFB2xhbmROdW0JAMwIAgkAkQMCBQFkBQtyZWNMYW5kU2l6ZQkAzAgCCQCRAwIFAWQFC3JlY1RlcnJhaW5zCQDMCAIJAJEDAgUBZAUMcmVjQ29udGluZW50BQNuaWwCAV8JAMwIAgkArAICAhIlcyVkX19pbmZyYUxldmVsX18JAKQDAQgFDHByb2R1Y3Rpdml0eQJfMQkAzAgCCQCsAgICFiVzJXNfX2F2YWlsUmVzQnlUeXBlX18IBQ5nbG9iYWxBbmRMb2NhbAJfMgkAzAgCCQCsAgICFSVzJWRfX2F2YWlsUmVzVG90YWxfXwkApAMBBQhhdmFpbFJlcwkAzAgCCQCsAgICFCVzJXNfX25lZWRNYXRlcmlhbF9fCAUOZ2xvYmFsQW5kTG9jYWwCXzEJAMwIAgkArAICAh0lcyVzX19sYW5kQXJ0ZWZhY3RzX19QUkVTQUxFOgkApAMBCAUMcHJvZHVjdGl2aXR5Al8yCQDMCAIJAKwCAgIRJXMlc19fd2FyZWhvdXNlX18JALkJAgkBDGdldFdhcmVob3VzZQMJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAkAaQIFBnBpZWNlcwUFU1NJWkUIBQxwcm9kdWN0aXZpdHkCXzECAToJAMwIAgkArAICAhElcyVzX19sYW5kT3JkZXJfXwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9lY29ub215Q29udHJhY3QJAQ5rZXlPcmRlckJ5TGFuZAEFC2xhbmRBc3NldElkAjAwQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDowQDBfMEAwXzBAMF8wQDBfMEAwXzBAMDoJAMwIAgkArAICAhYlcyVzX19mb3J0aWZpY2F0aW9uc19fBQRmb3J0CQDMCAIJAKwCAgIUJXMlc19fcm9iYmVyeVN0YXRlX18JAJEDAgUNbGFuZFJvYlN0YXRlcwUFc3RhdGUJAMwIAgkArAICAhglcyVkX19jYW5CZVJvYmJlZEFmdGVyX18JAKQDAQULY29vbGRvd25FVEEFA25pbAESbGFuZE9yZGVySW5mb0FycmF5AgtsYW5kQXNzZXRJZAVvd25lcgMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAWEJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQBZAkAtQkCCAUBYQtkZXNjcmlwdGlvbgIBXwQGcGllY2VzCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCBQFkBQtyZWNMYW5kU2l6ZQQMcHJvZHVjdGl2aXR5CQEMYXBwbHlCb251c2VzAgULbGFuZEFzc2V0SWQFBnBpZWNlcwkAzAgCCQCsAgICDyVzJXNfX2Fzc2V0SWRfXwULbGFuZEFzc2V0SWQJAMwIAgkArAICAg0lcyVzX19vd25lcl9fBQVvd25lcgkAzAgCCQCsAgICESVzJXNfX3dhcmVob3VzZV9fCQC5CQIJAQxnZXRXYXJlaG91c2UDCQESa2V5V2FyZWhvdXNlQnlMYW5kAQULbGFuZEFzc2V0SWQJAGkCBQZwaWVjZXMFBVNTSVpFCAUMcHJvZHVjdGl2aXR5Al8xAgE6CQDMCAIJAKwCAgIRJXMlc19fbGFuZE9yZGVyX18JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPZWNvbm9teUNvbnRyYWN0CQEOa2V5T3JkZXJCeUxhbmQBBQtsYW5kQXNzZXRJZAIwMEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6MEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6BQNuaWwBCnNsb3RFZmZlY3QBBHNsb3QDCQAAAgUEc2xvdAIAAAAEBXNsb3QwCQCRAwIJALUJAgUEc2xvdAIBLAAAAwkAAAIFBXNsb3QwAgAAAAQEcHJvZAkAtQkCBQVzbG90MAIBOgMDCQAAAgkAkQMCBQRwcm9kAAECAAYJAAACCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEcHJvZAABAAAAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkAkQMCBRBwcm9kdWN0aW9uTWF0cml4CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEcHJvZAAAAgFfBQpySWR4RWZmZWN0AQ90b3VyU3RhdHNDb21tb24BDHRvdXJuYW1lbnRJZAQFdERhdGEJAQtnZXRUb3VyRGF0YQIFEnRvdXJuYW1lbnRDb250cmFjdAUMdG91cm5hbWVudElkBAZzdGF0aWMJAJEDAgUFdERhdGEFCWlkeFN0YXRpYwQHZHluYW1pYwkAkQMCBQV0RGF0YQUKaWR4RHluYW1pYwQHbGVhZGVycwMJAAACCQCRAwIFB2R5bmFtaWMFD3REeW5hbWljTGVhZGVycwIAAgEgCQCRAwIFB2R5bmFtaWMFD3REeW5hbWljTGVhZGVycwQKc2NvcmVCb2FyZAkBC3ZhbHVlT3JFbHNlAgkAnQgCBRJ0b3VybmFtZW50Q29udHJhY3QJARNrZXlTY29yZUJvYXJkQnlUb3VyAQUMdG91cm5hbWVudElkAgAECW51bUdyYW5kcwMJAGYCCQCQAwEFBnN0YXRpYwUQdFN0YXRpY051bUdyYW5kcwkAkQMCBQZzdGF0aWMFEHRTdGF0aWNOdW1HcmFuZHMCATAECXByaXplRnVuZAMJAGYCCQCQAwEFBnN0YXRpYwUQdFN0YXRpY1ByaXplRnVuZAkAkQMCBQZzdGF0aWMFEHRTdGF0aWNQcml6ZUZ1bmQCATAEB2Fzc2V0SWQDCQBmAgkAkAMBBQZzdGF0aWMFDHRTdGF0aWNBc3NldAkA2QQBCQCRAwIFBnN0YXRpYwUMdFN0YXRpY0Fzc2V0BQp3bGdBc3NldElkBAlhc3NldE5hbWUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUHYXNzZXRJZAIWTm8gYXNzZXRJbmZvIGF2YWlsYWJsZQRuYW1lCQDMCAIJAKwCAgIcJXMlc19fdG91cm5hbWVudFN0YXRpY0RhdGFfXwkAuQkCCQDMCAIJAJEDAgUGc3RhdGljBRN0U3RhdGljUmVnaXN0ZXJDb3N0CQDMCAIJAJEDAgUGc3RhdGljBRJ0U3RhdGljQXR0ZW1wdENvc3QJAMwIAgkAkQMCBQZzdGF0aWMFDHRTdGF0aWNTdGFydAkAzAgCCQCRAwIFBnN0YXRpYwUKdFN0YXRpY0VuZAkAzAgCBQludW1HcmFuZHMJAMwIAgUJcHJpemVGdW5kCQDMCAIFCWFzc2V0TmFtZQUDbmlsAgFfCQDMCAIJAKwCAgIdJXMlc19fdG91cm5hbWVudER5bmFtaWNEYXRhX18JALoJAgkAzAgCCQCRAwIFB2R5bmFtaWMFDnREeW5hbWljU3RhdHVzCQDMCAIFB2xlYWRlcnMJAMwIAgkAkQMCBQdkeW5hbWljBRF0RHluYW1pY1dpblJlc3VsdAkAzAgCCQCRAwIFB2R5bmFtaWMFFXREeW5hbWljVG90YWxSZWdDb3VudAkAzAgCCQCRAwIFB2R5bmFtaWMFFXREeW5hbWljVG90YWxBdHRlbXB0cwUDbmlsAgFfCQDMCAIJAKwCAgIcJXMlc19fdG91cm5hbWVudFNjb3JlQm9hcmRfXwUKc2NvcmVCb2FyZAUDbmlsAQpnZXRBbnlEYXRhAgRhZGRyA2tleQQEYm9vbAkAmwgCBQRhZGRyBQNrZXkDCQEJaXNEZWZpbmVkAQUEYm9vbAkBBXZhbHVlAQUEYm9vbAQDYmluCQCcCAIFBGFkZHIFA2tleQMJAQlpc0RlZmluZWQBBQNiaW4JAQV2YWx1ZQEFA2JpbgQDaW50CQCaCAIFBGFkZHIFA2tleQMJAQlpc0RlZmluZWQBBQNpbnQJAQV2YWx1ZQEFA2ludAkAnQgCBQRhZGRyBQNrZXkBD2dlbmVyaWNSRUFET05MWQEHcXVlcmllcwoBBGNhbGwCA2FjYwVxdWVyeQQEYWRkcgkBB0FkZHJlc3MBCQDZBAEIBQVxdWVyeQJfMQQJZnVuY09yS2V5CAUFcXVlcnkCXzIEBnJlc3VsdAQHJG1hdGNoMAUFcXVlcnkDCQABAgUHJG1hdGNoMAIbKFN0cmluZywgU3RyaW5nLCBMaXN0W0FueV0pBANpbnYFByRtYXRjaDAJAPwHBAUEYWRkcgUJZnVuY09yS2V5CAUDaW52Al8zBQNuaWwJAQpnZXRBbnlEYXRhAgUEYWRkcgUJZnVuY09yS2V5CQDNCAIFA2FjYwUGcmVzdWx0CgACJGwFB3F1ZXJpZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGNhbGwCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoWAWkBDWNvbnN0cnVjdG9yVjEBCWNvbnRyYWN0cwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEnBlcm1pc3Npb25zIGRlbmllZAoBCmRlc2NyaXB0b3ICA2FjYwtpZ25vcmVkSXRlbQkArAICBQNhY2MCAiVzBAVkZXNjcgoAAiRsBQljb250cmFjdHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAgAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmRlc2NyaXB0b3ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleVJlc3RDZmcACQC5CQIJAMwIAgUFZGVzY3IFCWNvbnRyYWN0cwUDU0VQCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlSZXN0QWRkcmVzcwAJAKUIAQUEdGhpcwUDbmlsAWkBEndhbGxldEluZm9SRUFET05MWQEOdXNlckFkZHJlc3NPcHQJAJQKAgUDbmlsCQEOd2FsbGV0SW50ZXJuYWwBBQ51c2VyQWRkcmVzc09wdAFpARdkdWNrQnlPd25lckluZm9SRUFET05MWQELdXNlckFkZHJlc3MECnN0YWtlZER1Y2sJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQt1c2VyQWRkcmVzcwkAlAoCBQNuaWwDAwkBCWlzRGVmaW5lZAEJAKYIAQULdXNlckFkZHJlc3MJAQlpc0RlZmluZWQBBQpzdGFrZWREdWNrBwQLZHVja0Fzc2V0SWQJAQV2YWx1ZQEFCnN0YWtlZER1Y2sJAQ1kdWNrSW5mb0FycmF5AwULZHVja0Fzc2V0SWQFC3VzZXJBZGRyZXNzCQENZHVja0luZm9UdXBsZQEFC2R1Y2tBc3NldElkCQENZHVja0luZm9BcnJheQMCAAULdXNlckFkZHJlc3MJAJcKBQD///////////8BAgACAAD///////////8BAgABaQEZZHVja0J5QXNzZXRJZEluZm9SRUFET05MWQELZHVja0Fzc2V0SWQEBW93bmVyCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBEGtleUR1Y2tJZFRvT3duZXIBBQtkdWNrQXNzZXRJZAkAlAoCBQNuaWwJAQ1kdWNrSW5mb0FycmF5AwULZHVja0Fzc2V0SWQDCQEJaXNEZWZpbmVkAQUFb3duZXIJAQV2YWx1ZQEFBW93bmVyAgAJAQ1kdWNrSW5mb1R1cGxlAQULZHVja0Fzc2V0SWQBaQEWZHVja3NCeUlkc0luZm9SRUFET05MWQEMZHVja0Fzc2V0SWRzCgEHb25lRHVjawIDYWNjC2R1Y2tBc3NldElkAwkAAAIFC2R1Y2tBc3NldElkAgAJAAIBAhdkdWNrQXNzZXRJZCBpcyByZXF1aXJlZAQKc3Rha2VkVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULZHVja0Fzc2V0SWQA////////////AQQFb3duZXIDCQBmAgUKc3Rha2VkVGltZQAACQEFdmFsdWUBCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBEGtleUR1Y2tJZFRvT3duZXIBBQtkdWNrQXNzZXRJZAIACQDNCAIFA2FjYwkBDWR1Y2tJbmZvQXJyYXkDBQtkdWNrQXNzZXRJZAUFb3duZXIJAQ1kdWNrSW5mb1R1cGxlAQULZHVja0Fzc2V0SWQEAXIKAAIkbAUMZHVja0Fzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdvbmVEdWNrAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhVMaXN0IHNpemUgZXhjZWVkcyAxMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZAkAlAoCBQNuaWwFAXIBaQEZbGFuZEJ5QXNzZXRJZEluZm9SRUFET05MWQELbGFuZEFzc2V0SWQDCQAAAgULbGFuZEFzc2V0SWQCAAkAAgECF2xhbmRBc3NldElkIGlzIHJlcXVpcmVkBApzdGFrZWRUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAD///////////8BBAVvd25lcgMJAGYCBQpzdGFrZWRUaW1lAAAJAQV2YWx1ZQEJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQULbGFuZEFzc2V0SWQCAAkAlAoCBQNuaWwJAQ1sYW5kSW5mb0FycmF5AwULbGFuZEFzc2V0SWQFBW93bmVyBQpzdGFrZWRUaW1lAWkBHnN0YWtlZExhbmRzQnlPd25lckluZm9SRUFET05MWQEQbGFuZE93bmVyQWRkcmVzcwMJAAACBRBsYW5kT3duZXJBZGRyZXNzAgAJAAIBAhxsYW5kT3duZXJBZGRyZXNzIGlzIHJlcXVpcmVkBAhsYW5kc1N0cgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBBRBsYW5kT3duZXJBZGRyZXNzBAVsYW5kcwMJAQlpc0RlZmluZWQBBQhsYW5kc1N0cgkAvQkCCQEFdmFsdWUBBQhsYW5kc1N0cgIBXwUDbmlsCgEHb25lTGFuZAIDYWNjC2xhbmRBc3NldElkAwkAAAIFC2xhbmRBc3NldElkAgAJAAIBAhdsYW5kQXNzZXRJZCBpcyByZXF1aXJlZAQKc3Rha2VkVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQA////////////AQkAzQgCBQNhY2MJAQ1sYW5kSW5mb0FycmF5AwULbGFuZEFzc2V0SWQFEGxhbmRPd25lckFkZHJlc3MFCnN0YWtlZFRpbWUEAXIKAAIkbAUFbGFuZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB29uZUxhbmQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFUxpc3Qgc2l6ZSBleGNlZWRzIDEwMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkCQCUCgIFA25pbAUBcgFpARZsYW5kc0J5SWRzSW5mb1JFQURPTkxZAQxsYW5kQXNzZXRJZHMKAQdvbmVMYW5kAgNhY2MLbGFuZEFzc2V0SWQDCQAAAgULbGFuZEFzc2V0SWQCAAkAAgECF2xhbmRBc3NldElkIGlzIHJlcXVpcmVkBApzdGFrZWRUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAD///////////8BBAVvd25lcgMJAGYCBQpzdGFrZWRUaW1lAAAJAQV2YWx1ZQEJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQULbGFuZEFzc2V0SWQCAAkAzQgCBQNhY2MJAQ1sYW5kSW5mb0FycmF5AwULbGFuZEFzc2V0SWQFBW93bmVyBQpzdGFrZWRUaW1lBAFyCgACJGwFDGxhbmRBc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHb25lTGFuZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQJAJQKAgUDbmlsBQFyAWkBI3dhcmVob3VzZU9yZGVyQnlBc3NldElkSW5mb1JFQURPTkxZAQtsYW5kQXNzZXRJZAMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQECnN0YWtlZFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAP///////////wEEBW93bmVyAwkAZgIFCnN0YWtlZFRpbWUAAAkBBXZhbHVlAQkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARVrZXlMYW5kQXNzZXRJZFRvT3duZXIBBQtsYW5kQXNzZXRJZAIACQCUCgIFA25pbAkBEmxhbmRPcmRlckluZm9BcnJheQIFC2xhbmRBc3NldElkBQVvd25lcgFpARtvcmRlcnNCeUxhbmRJZHNJbmZvUkVBRE9OTFkBDGxhbmRBc3NldElkcwoBB29uZUxhbmQCA2FjYwtsYW5kQXNzZXRJZAMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQECnN0YWtlZFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAP///////////wEEBW93bmVyAwkAZgIFCnN0YWtlZFRpbWUAAAkBBXZhbHVlAQkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARVrZXlMYW5kQXNzZXRJZFRvT3duZXIBBQtsYW5kQXNzZXRJZAIACQDNCAIFA2FjYwkBEmxhbmRPcmRlckluZm9BcnJheQIFC2xhbmRBc3NldElkBQVvd25lcgQBcgoAAiRsBQxsYW5kQXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB29uZUxhbmQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDQwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgJAJQKAgUDbmlsBQFyAWkBFWNhbmNlbFdhcmVob3VzZU9yZGVycwEMbGFuZEFzc2V0SWRzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRcGVybWlzc2lvbiBkZW5pZWQEB2Jsb2NrZWQJAJsIAgUPc3Rha2luZ0NvbnRyYWN0CQEKa2V5QmxvY2tlZAADAwkBASEBCQEJaXNEZWZpbmVkAQUHYmxvY2tlZAYJAAACCQEFdmFsdWUBBQdibG9ja2VkBwkAAgECM0NvbnRyYWN0cyBzaG91bGQgYmUgYmxvY2tlZCBiZWZvcmUgY2FuY2VsaW5nIG9yZGVycwoBB29uZUxhbmQCAWELbGFuZEFzc2V0SWQDCQAAAgULbGFuZEFzc2V0SWQCAAkAAgECF2xhbmRBc3NldElkIGlzIHJlcXVpcmVkBAFjCAkBE2FzQ2FuY2VsT3JkZXJSZXN1bHQBCQD8BwQFD2Vjb25vbXlDb250cmFjdAIRc2V0V2FyZWhvdXNlT3JkZXIJAMwIAgIwMEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6MEAwXzBAMF8wQDBfMEAwXzBAMF8wQDA6CQDMCAIFC2xhbmRBc3NldElkBQNuaWwFA25pbAJfMQMDBQFhBgUBYwkBASEBAwUBYQUBYwcHBAFyCgACJGwFDGxhbmRBc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAHCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdvbmVMYW5kAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAzMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgkAlAoCBQNuaWwFAXIBaQEVZGlzdHJpYnV0ZUxvY2tlZEFjcmVzAwV1c2VycwZhbW91bnQIbG9ja0RheXMDAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQECIT0CCAUBaQ9jYWxsZXJQdWJsaWNLZXkFA3B1YgcJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAMJAGcCAAAFBmFtb3VudAkAAgECGWFtb3VudCBzaG91bGQgYmUgcG9zaXRpdmUDCQBmAgAABQhsb2NrRGF5cwkAAgECH2xvY2tEYXlzIHNob3VsZCBiZSBub24tbmVnYXRpdmUKAQdvbmVVc2VyAgNhY2MEYWRkcgMJAAACBQRhZGRyAgAJAAIBAhNhZGRyZXNzIGlzIHJlcXVpcmVkCQBkAgUDYWNjCQEFYXNJbnQBCQD8BwQFDWFjcmVzQ29udHJhY3QCD3NlbmRMb2NrZWRBY3JlcwkAzAgCBQRhZGRyCQDMCAIFBmFtb3VudAkAzAgCBQhsb2NrRGF5cwUDbmlsBQNuaWwECnRvdGFsQWNyZXMKAAIkbAUFdXNlcnMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB29uZVVzZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDIwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAkAlAoCBQNuaWwFCnRvdGFsQWNyZXMBaQENc2VuZFVzZHRQcml6ZQELdXNlckFkZHJlc3MDCQECIT0CCAUBaQZjYWxsZXIFD3N0YWtpbmdDb250cmFjdAkAAgECEXBlcm1pc3Npb24gZGVuaWVkBANhbXQJAGsDCQDwBwIFBHRoaXMFC3VzZHRBc3NldElkBQ1VU0RUUFJJWkVQQVJUBQVNVUxUNgkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3VzZXJBZGRyZXNzBQNhbXQFC3VzZHRBc3NldElkBQNuaWwFA2FtdAFpAR9nZXRFbWVyZ2VuY3lTZXJ2aWNlRGF0YVJFQURPTkxZAAQIZXhpc3RTdHIJAJ0IAgUPZWNvbm9teUNvbnRyYWN0CQEOa2V5RXNXYXJlaG91c2UABAxleGlzdEFtb3VudHMDCQEJaXNEZWZpbmVkAQUIZXhpc3RTdHIJALwJAgkBBXZhbHVlAQUIZXhpc3RTdHICAV8FA25pbAoBCnNpbmdsZVByb2QCA2FjYwlyZWNpcGVTdHIEAW4IBQNhY2MCXzIEBnJlY2lwZQkAtQkCBQlyZWNpcGVTdHICAV8ECW1heEFtb3VudAMJAAACBQFuAAAJAGgCBQ1FU01BWFBBQ0tBR0VTBQ5QUk9EVUNUUEtHU0laRQAABAtleGlzdEFtb3VudAMJAGYCCQCQAwEFDGV4aXN0QW1vdW50cwUBbgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDGV4aXN0QW1vdW50cwUBbgAABAh0b3RhbE1hdAkBEmdldFJlY2lwZU1hdGVyaWFscwEFBnJlY2lwZQQIYnV5UHJpY2UJAGsDCQBoAgUIdG90YWxNYXQFCUVTQlVZQ09FRgUQUkVTT1VSQ0VQUklDRU1JTgkAaAIFBU1VTFQ4BQ5QUk9EVUNUUEtHU0laRQQJc2VsbFByaWNlCQBrAwkAaAIFCHRvdGFsTWF0BQpFU1NFTExDT0VGBRBSRVNPVVJDRVBSSUNFTUlOCQBoAgUFTVVMVDgFDlBST0RVQ1RQS0dTSVpFBAF5CQC5CQIJAMwIAgkApAMBBQltYXhBbW91bnQJAMwIAgkApAMBBQtleGlzdEFtb3VudAkAzAgCCQCkAwEFCGJ1eVByaWNlCQDMCAIJAKQDAQUJc2VsbFByaWNlBQNuaWwCAV8JAJQKAgkAzQgCCAUDYWNjAl8xBQF5CQBkAgUBbgABBAFzCQC6CQIICgACJGwFEHByb2R1Y3Rpb25NYXRyaXgKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpzaW5nbGVQcm9kAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA1MAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADICXzECAToEBnJlc3VsdAkArAICAhwlcyVzX19lbWVyZ2VuY3lTZXJ2aWNlRGF0YV9fBQFzCQCUCgIFA25pbAUGcmVzdWx0AWkBEHdsZ1N0YXRzUkVBRE9OTFkBC3VzZXJBZGRyT3B0BAhjdXJTdGF0cwkBC2dldFdsZ1N0YXRzBQULdXNlckFkZHJPcHQJAMwIAgUMcmVzdENvbnRyYWN0CQDMCAIFD3N0YWtpbmdDb250cmFjdAkAzAgCBQ9lY29ub215Q29udHJhY3QJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUScHV6emxlUG9vbENvbnRyYWN0CQDMCAIFEmludmVzdEZ1bmRDb250cmFjdAkAzAgCBQ1hY3Jlc0NvbnRyYWN0BQNuaWwFC3VzZHRBc3NldElkAAAFBU1VTFQ2CQCUCgIFA25pbAkAzAgCCQCsAgICESVzJWRfX3dsZ0Ftb3VudF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDGlkeFdsZ0Ftb3VudAkAzAgCCQCsAgICECVzJWRfX3dsZ1ByaWNlX18JAKQDAQkAkQMCBQhjdXJTdGF0cwULaWR4V2xnUHJpY2UJAMwIAgkArAICAhElcyVkX191c2R0RnVuZHNfXwkApAMBCQCRAwIFCGN1clN0YXRzBQtpZHhXbGdGdW5kcwkAzAgCCQCsAgICEyVzJWRfX3VzZHRFY29ub215X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUNaWR4V2xnRWNvbm9teQkAzAgCCQCsAgICFCVzJWRfX3VzZHRBY3Rpdml0eV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDmlkeFdsZ0FjdGl2aXR5CQDMCAIJAKwCAgIVJXMlZF9fdXNkdEFyYml0cmFnZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2lkeFdsZ0FyYml0cmFnZQkAzAgCCQCsAgICECVzJWRfX3VzZHRQb29sX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUKaWR4V2xnUG9vbAkAzAgCCQCsAgICFCVzJWRfX3dsZ0lzc3VlVGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2lkeFdsZ0lzc3VlVGltZQkAzAgCCQCsAgICIyVzJWRfX3dsZ0xhc3RNYXJrZXRpbmdUZWFtQWN0VGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEWlkeFdsZ0xhc3RNVEFUaW1lCQDMCAIJAKwCAgIZJXMlZF9fd2xnTWFya2V0aW5nVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRRpZHhXbGdNYXJrZXRpbmdUb3RhbAkAzAgCCQCsAgICGiVzJWRfX3dsZ01hcmtldGluZ0FtTGVmdF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFWlkeFdsZ01hcmtldGluZ0FtTGVmdAkAzAgCCQCsAgICHiVzJWRfX3dsZ01hcmtldGluZ0FtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRlpZHhXbGdNYXJrZXRpbmdBbUF2YWlsTm93CQDMCAIJAKwCAgIaJXMlZF9fd2xnTWFya2V0aW5nV2xnb2xkX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaWR4V2xnTWFya2V0aW5nV2xnb2xkCQDMCAIJAKwCAgIUJXMlZF9fd2xnVGVhbVRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnVGVhbVRvdGFsCQDMCAIJAKwCAgIVJXMlZF9fd2xnVGVhbUFtTGVmdF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEGlkeFdsZ1RlYW1BbUxlZnQJAMwIAgkArAICAhklcyVkX193bGdUZWFtQW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1RlYW1BbUF2YWlsTm93CQDMCAIJAKwCAgIVJXMlZF9fd2xnVGVhbVdsZ29sZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEGlkeFdsZ1RlYW1XbGdvbGQJAMwIAgkArAICAhMlcyVkX193bGdBY3RUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDmlkeFdsZ0FjdFRvdGFsCQDMCAIJAKwCAgIUJXMlZF9fd2xnQWN0QW1MZWZ0X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnQWN0QW1MZWZ0CQDMCAIJAKwCAgIYJXMlZF9fd2xnQWN0QW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFE2lkeFdsZ0FjdEFtQXZhaWxOb3cJAMwIAgkArAICAhQlcyVkX193bGdBY3RXbGdvbGRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdBY3RXbGdvbGQJAMwIAgkArAICAhQlcyVkX193bGdDdXJQZXJpb2RfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdDdXJQZXJpb2QJAMwIAgkArAICAhYlcyVkX193bGdBbUxlZnRUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEWlkeFdsZ0FtTGVmdFRvdGFsCQDMCAIJAKwCAgIgJXMlZF9fd2xnQ3VyUGVyaW9kRGlzdHJpYnV0aW9uX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUbaWR4V2xnQ3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIJAKwCAgIXJXMlZF9fd2xnTGFzdFVzZXJUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUSaWR4V2xnTGFzdFVzZXJUaW1lCQDMCAIJAKwCAgIZJXMlZF9fd2xnVXNlckFtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRRpZHhXbGdVc2VyQW1BdmFpbE5vdwkAzAgCCQCsAgICGiVzJWRfX3dsZ0d1ZXN0U0xhbmREYWlseV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFmlkeFdsZ1NMYW5kRGFpbHlBbW91bnQJAMwIAgkArAICAholcyVkX193bGdJbnZlc3RGdW5kVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRZpZHhXbGdJbnZlc3RGdW5kQW1vdW50CQDMCAIJAKwCAgIZJXMlZF9fd2xnVXNlclRvdGFsQXZhaWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRRpZHhXbGdVc2VyVG90YWxBdmFpbAkAzAgCCQCsAgICFiVzJWRfX3dsZ0VmZlVzZXJUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwURaWR4V2xnRWZmVXNlclRpbWUFA25pbAFpARd0b3VybmFtZW50U3RhdHNSRUFET05MWQEMdG91cm5hbWVudElkCQCUCgIFA25pbAkBD3RvdXJTdGF0c0NvbW1vbgEFDHRvdXJuYW1lbnRJZAFpARtsYXN0VG91cm5hbWVudFN0YXRzUkVBRE9OTFkABAx0b3VybmFtZW50SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSdG91cm5hbWVudENvbnRyYWN0BQ1sYXN0VG91cklkS2V5AAAJAJQKAgUDbmlsCQDMCAIJAKwCAgIYJXMlc19fbGFzdFRvdXJuYW1lbnRJZF9fCQCkAwEFDHRvdXJuYW1lbnRJZAkBD3RvdXJTdGF0c0NvbW1vbgEFDHRvdXJuYW1lbnRJZAFpARt0b3VybmFtZW50RHVja1N0YXRzUkVBRE9OTFkCA3RJZAtkdWNrQXNzZXRJZAQJaXNEdWNrUmVnCQELdmFsdWVPckVsc2UCCQCbCAIFEnRvdXJuYW1lbnRDb250cmFjdAkBHGtleUlzUmVnaXN0ZXJlZEJ5VG91ckFuZER1Y2sCBQN0SWQFC2R1Y2tBc3NldElkBwQPbGFzdER1Y2tBdHRlbXB0CQELdmFsdWVPckVsc2UCCQCaCAIFEnRvdXJuYW1lbnRDb250cmFjdAkBG2tleUxhc3RBdHRlbXB0QnlUb3VyQW5kRHVjawIFA3RJZAULZHVja0Fzc2V0SWQA////////////AQQOYmVzdER1Y2tSZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSdG91cm5hbWVudENvbnRyYWN0CQEaa2V5QmVzdFJlc3VsdEJ5VG91ckFuZER1Y2sCBQN0SWQFC2R1Y2tBc3NldElkAAAECmJlc3REdWNrVHgJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUSdG91cm5hbWVudENvbnRyYWN0CQEWa2V5QmVzdFR4QnlUb3VyQW5kRHVjawIFA3RJZAULZHVja0Fzc2V0SWQCAAQJaXNBd2FyZGVkCQELdmFsdWVPckVsc2UCCQCbCAIFEnRvdXJuYW1lbnRDb250cmFjdAkBGWtleUlzQXdhcmRlZEJ5VG91ckFuZER1Y2sCBQN0SWQFC2R1Y2tBc3NldElkBwkAlAoCBQNuaWwJAMwIAgkArAICAhslcyVzX190b3VybmFtZW50RHVja1N0YXRzX18JALkJAgkAzAgCCQClAwEFCWlzRHVja1JlZwkAzAgCCQCkAwEFD2xhc3REdWNrQXR0ZW1wdAkAzAgCCQCkAwEFDmJlc3REdWNrUmVzdWx0CQDMCAIFCmJlc3REdWNrVHgJAMwIAgkApQMBBQlpc0F3YXJkZWQFA25pbAIBXwUDbmlsAWkBG2R1Y2tTdGF0c0NhbGN1bGF0b3JSRUFET05MWQELZHVja0Fzc2V0SWQEBWNoYXJzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEMa2V5RHVja0NoYXJzAQULZHVja0Fzc2V0SWQCCTBfMF8wXzBfMAIBXwQFYnVmZnMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJAQxrZXlEdWNrQnVmZnMBBQtkdWNrQXNzZXRJZAIJMF8wXzBfMF8wAgFfBAZlcXVpcG0JALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARBrZXlEdWNrRXF1aXBtZW50AQULZHVja0Fzc2V0SWQCCztfO187XztfO187AgFfBA1lcXVpcG1lbnRQZXJjCQEKc2xvdEVmZmVjdAEJAJEDAgkAtQkCCQCRAwIFBmVxdWlwbQUHc2VnQmFjawIBOwABBA5lcXVpcG1lbnRBYnNvcgkBCnNsb3RFZmZlY3QBCQCRAwIJALUJAgkAkQMCBQZlcXVpcG0FB3NlZ0JlbHQCATsAAAQFZG9kZ2UJARBkb2RnZVByb2JhYmlsaXR5AwUFY2hhcnMFBWJ1ZmZzBQ1lcXVpcG1lbnRQZXJjBAZhYnNvcmIJARBkYW1hZ2VBYnNvcnB0aW9uAwUFY2hhcnMFBWJ1ZmZzBQ5lcXVpcG1lbnRBYnNvcgkAlAoCBQNuaWwJAMwIAgkArAICAhglcyVkX19kb2RnZVByb2JhYmlsaXR5X18JAKQDAQUFZG9kZ2UJAMwIAgkArAICAhglcyVkX19kYW1hZ2VBYnNvcnB0aW9uX18JAKQDAQUGYWJzb3JiBQNuaWwBaQEhY3VzdG9tRHVja1N0YXRzQ2FsY3VsYXRvclJFQURPTkxZBAVjaGFycwVidWZmcw1lcXVpcG1lbnRQZXJjDmVxdWlwbWVudEFic29yBAVkb2RnZQkBEGRvZGdlUHJvYmFiaWxpdHkDBQVjaGFycwUFYnVmZnMFDWVxdWlwbWVudFBlcmMEBmFic29yYgkBEGRhbWFnZUFic29ycHRpb24DBQVjaGFycwUFYnVmZnMFDmVxdWlwbWVudEFic29yCQCUCgIFA25pbAkAzAgCCQCsAgICGCVzJWRfX2RvZGdlUHJvYmFiaWxpdHlfXwkApAMBBQVkb2RnZQkAzAgCCQCsAgICGCVzJWRfX2RhbWFnZUFic29ycHRpb25fXwkApAMBBQZhYnNvcmIFA25pbAFpARJhY3Jlc1N0YXRzUkVBRE9OTFkBC3VzZXJBZGRyT3B0BAl1c2VyQ2xhaW0JAQlhc0FueUxpc3QBCQD8BwQFDWFjcmVzQ29udHJhY3QCEmNsYWltQWNyZXNSRUFET05MWQkAzAgCBQt1c2VyQWRkck9wdAUDbmlsBQNuaWwEDXVzZXJDbGFpbWFibGUJAQVhc0ludAEJAJEDAgUJdXNlckNsYWltAAAEDHVzZXJMYXN0VGltZQkBBWFzSW50AQkAkQMCBQl1c2VyQ2xhaW0AAQkAlAoCBQNuaWwJAMwIAgkArAICAhglcyVkX19hY3Jlc0lzc3VlZFRvdGFsX18JAKQDAQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1hY3Jlc0NvbnRyYWN0BRRhY3Jlc0lzc3VlZEFtb3VudEtleQAACQDMCAIJAKwCAgITJXMlZF9fYWNyZXNVbnNvbGRfXwkApAMBCQDwBwIFDWFjcmVzQ29udHJhY3QFDGFjcmVzQXNzZXRJZAkAzAgCCQCsAgICGCVzJWRfX2FjcmVzU3Rha2VkVG90YWxfXwkApAMBCQELdmFsdWVPckVsc2UCCQCaCAIFDWFjcmVzQ29udHJhY3QFE2FjcmVzU3Rha2VkVG90YWxLZXkAAAkAzAgCCQCsAgICGSVzJWRfX2FjcmVzU3Rha2VkQnlVc2VyX18JAKQDAQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1hY3Jlc0NvbnRyYWN0CQEaa2V5QWNyZXNTdGFrZWRBbW91bnRCeVVzZXIBBQt1c2VyQWRkck9wdAAACQDMCAIJAKwCAgIcJXMlZF9fYWNyZXNDbGFpbWFibGVCeVVzZXJfXwkApAMBBQ11c2VyQ2xhaW1hYmxlCQDMCAIJAKwCAgIgJXMlZF9fYWNyZXNMYXN0Q2xhaW1UaW1lQnlVc2VyX18JAKQDAQUMdXNlckxhc3RUaW1lCQDMCAIJAKwCAgIZJXMlZF9fYWNyZXNMb2NrZWRCeVVzZXJfXwkApAMBCQELdmFsdWVPckVsc2UCCQCaCAIFDWFjcmVzQ29udHJhY3QJARprZXlBY3Jlc0xvY2tlZEFtb3VudEJ5VXNlcgEFC3VzZXJBZGRyT3B0AAAJAMwIAgkArAICAhwlcyVkX19hY3Jlc0xvY2tlZEV0YUJ5VXNlcl9fCQCkAwEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUNYWNyZXNDb250cmFjdAkBF2tleUFjcmVzTG9ja2VkRXRhQnlVc2VyAQULdXNlckFkZHJPcHQAAAUDbmlsAWkBBnRlc3RWNAAJAJQKAgUDbmlsCQEPZ2VuZXJpY1JFQURPTkxZAQUDbmlsAAtSk2E=", "height": 2847712, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 93nT4XMn6yUeFjoenyCCLCYHP5vNKtAW2NU6cesUwC5V Next: 55YbUCouTszX1LiXfh85bC3hGEaFxNdy5vr6R1DXViW2 Diff:
OldNewDifferences
449449 func dy (dz) = (parseIntValue(dz[cz]) * cx)
450450
451451
452-let dA = take(drop(this.bytes, 1), 1)
452+let dA = false
453453
454-let dB = {
455- let dC = dA
456- if ((base58'2W' == dC))
454+let dB = take(drop(this.bytes, 1), 1)
455+
456+let dC = {
457+ let dD = dB
458+ if ((base58'2W' == dD))
459+ then if (dA)
460+ then base58'CWsMtTZC5BjjoL4Q1ayW4Wwb1ehGACQB6DrKyPgotKfm'
461+ else base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
462+ else if ((base58'2T' == dD))
463+ then base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
464+ else throw("Unknown chain")
465+ }
466+
467+let dE = {
468+ let dD = dB
469+ if ((base58'2W' == dD))
457470 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
458- else if ((base58'2T' == dC))
471+ else if ((base58'2T' == dD))
459472 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
460473 else throw("Unknown chain")
461474 }
462475
463-let dD = {
464- let dC = dA
465- if ((base58'2W' == dC))
476+let dF = {
477+ let dD = dB
478+ if ((base58'2W' == dD))
466479 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
467- else if ((base58'2T' == dC))
480+ else if ((base58'2T' == dD))
468481 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
469482 else throw("Unknown chain")
470483 }
471484
472-let dE = {
473- let dC = dA
474- if ((base58'2W' == dC))
485+let dG = {
486+ let dD = dB
487+ if ((base58'2W' == dD))
475488 then 10000000000
476- else if ((base58'2T' == dC))
489+ else if ((base58'2T' == dD))
477490 then 100000000
478491 else throw("Unknown chain")
479492 }
480493
481-let dF = "__"
494+let dH = "__"
482495
483-let dG = 1000000
496+let dI = 1000000
484497
485-let dH = 100000000
498+let dJ = 100000000
486499
487-let dI = 25
500+let dK = 25
488501
489-let dJ = 100
502+let dL = 100
490503
491-let dK = 225
504+let dM = 225
492505
493-let dL = 400
506+let dN = 400
494507
495-let dM = 625
508+let dO = 625
496509
497-func dN (dO,dP) = valueOrErrorMessage(getString(dO, dP), makeString(["mandatory ", toString(dO), ".", dP, " is not defined"], ""))
510+func dP (dQ,dR) = valueOrErrorMessage(getString(dQ, dR), makeString(["mandatory ", toString(dQ), ".", dR, " is not defined"], ""))
498511
499512
500-let dQ = 1
513+let dS = 1
501514
502-let dR = 2
515+let dT = 2
503516
504-let dS = 4
517+let dU = 4
505518
506-let dT = 5
519+let dV = 5
507520
508-let dU = 6
521+let dW = 6
509522
510-let dV = 7
523+let dX = 7
511524
512-let dW = 8
525+let dY = 8
513526
514-func dX () = "%s__restConfig"
527+func dZ () = "%s__restConfig"
515528
516529
517-func dY () = "%s__restAddr"
530+func ea () = "%s__restAddr"
518531
519532
520-func dZ (ea) = split_4C(dN(ea, dX()), dF)
533+func eb (ec) = split_4C(dP(ec, dZ()), dH)
521534
522535
523-func eb (ec,ed) = valueOrErrorMessage(addressFromString(ec[ed]), ("Rest cfg doesn't contain address at index " + toString(ed)))
536+func ed (ee,ef) = valueOrErrorMessage(addressFromString(ee[ef]), ("Rest cfg doesn't contain address at index " + toString(ef)))
524537
525538
526-let ee = addressFromStringValue(valueOrElse(getString(this, dY()), dD))
539+let eg = addressFromStringValue(valueOrElse(getString(this, ea()), dF))
527540
528-let ec = dZ(ee)
541+let ee = eb(eg)
529542
530-let N = eb(ec, dQ)
543+let N = ed(ee, dS)
531544
532-let ef = eb(ec, dR)
545+let eh = ed(ee, dT)
533546
534-let eg = eb(ec, dS)
547+let ei = ed(ee, dU)
535548
536-let eh = eb(ec, dT)
549+let ej = ed(ee, dV)
537550
538-let at = eb(ec, dU)
551+let at = ed(ee, dW)
539552
540-let ei = eb(ec, dV)
553+let ek = ed(ee, dX)
541554
542-let O = eb(ec, dW)
555+let O = ed(ee, dY)
543556
544-let ej = 0
557+let el = 0
545558
546-let ek = 1
559+let em = 1
547560
548-let el = 2
561+let en = 2
549562
550-let em = 3
563+let eo = 3
551564
552-let en = "wlg_assetId"
565+let ep = "wlg_assetId"
553566
554-let eo = valueOrErrorMessage(getBinary(eg, en), "WLGOLD is not issued yet")
567+let eq = valueOrErrorMessage(getBinary(ei, ep), "WLGOLD is not issued yet")
555568
556-let ep = "acresIssuedAmount"
569+let er = "acresIssuedAmount"
557570
558-let eq = "acresAssetId"
571+let es = "acresAssetId"
559572
560-let er = valueOrErrorMessage(getBinary(O, eq), "ACRES is not issued yet")
573+let et = valueOrErrorMessage(getBinary(O, es), "ACRES is not issued yet")
561574
562-let es = 0
575+let eu = 0
563576
564-let et = 1
577+let ev = 1
565578
566-let eu = 2
579+let ew = 2
567580
568-let ev = 3
581+let ex = 3
569582
570-let ew = 4
583+let ey = 4
571584
572-let ex = 5
585+let ez = 5
573586
574-let ey = 6
587+let eA = 6
575588
576-let ez = 7
589+let eB = 7
577590
578-let eA = 8
591+let eC = 8
579592
580-let eB = 9
593+let eD = 9
581594
582-let eC = 10
595+let eE = 10
583596
584-let eD = 11
597+let eF = 11
585598
586-let eE = 12
599+let eG = 12
587600
588-let eF = 13
601+let eH = 13
589602
590-let eG = 14
603+let eI = 14
591604
592-let eH = 15
605+let eJ = 15
593606
594-let eI = 16
607+let eK = 16
595608
596-let eJ = 17
609+let eL = 17
597610
598-let eK = 18
611+let eM = 18
599612
600-let eL = 19
613+let eN = 19
601614
602-let eM = 20
615+let eO = 20
603616
604-let eN = 21
617+let eP = 21
605618
606-let eO = 22
619+let eQ = 22
607620
608-let eP = 23
621+let eR = 23
609622
610-let eQ = 24
623+let eS = 24
611624
612-let eR = 25
625+let eT = 25
613626
614-let eS = 26
627+let eU = 26
615628
616-let eT = 27
629+let eV = 27
617630
618-let eU = 28
631+let eW = 28
619632
620-let eV = 29
633+let eX = 29
621634
622-let eW = 1
635+let eY = 1
623636
624-func eX () = "resTypesProportions"
637+func eZ () = "resTypesProportions"
625638
626639
627-func eY (cS) = ("stakedLandsByOwner_" + cS)
640+func fa (cS) = ("stakedLandsByOwner_" + cS)
628641
629642
630-func eZ (cS) = ("stakedPiecesByOwner_" + cS)
643+func fb (cS) = ("stakedPiecesByOwner_" + cS)
631644
632645
633-func fa (bZ) = {
634- let dC = bZ
635- if ($isInstanceOf(dC, "String"))
646+func fc (bZ) = {
647+ let dD = bZ
648+ if ($isInstanceOf(dD, "String"))
636649 then {
637- let fb = dC
638- fb
650+ let fd = dD
651+ fd
639652 }
640653 else throw("fail to cast into String")
641654 }
642655
643656
644-func fc (bZ) = {
645- let dC = bZ
646- if ($isInstanceOf(dC, "Int"))
657+func fe (bZ) = {
658+ let dD = bZ
659+ if ($isInstanceOf(dD, "Int"))
647660 then {
648- let fd = dC
649- fd
661+ let ff = dD
662+ ff
650663 }
651664 else throw("fail to cast into Int")
652665 }
653666
654667
655-func fe (bZ) = {
656- let dC = bZ
657- if ($isInstanceOf(dC, "List[Any]"))
668+func fg (bZ) = {
669+ let dD = bZ
670+ if ($isInstanceOf(dD, "List[Any]"))
658671 then {
659- let ff = dC
660- ff
672+ let fh = dD
673+ fh
661674 }
662675 else throw("fail to cast into List[Any]")
663676 }
664677
665678
666-func fg (fh) = {
667- let dC = fh
668- if (("S" == dC))
669- then dI
670- else if (("M" == dC))
671- then dJ
672- else if (("L" == dC))
673- then dK
674- else if (("XL" == dC))
675- then dL
676- else if (("XXL" == dC))
677- then dM
679+func fi (fj) = {
680+ let dD = fj
681+ if (("S" == dD))
682+ then dK
683+ else if (("M" == dD))
684+ then dL
685+ else if (("L" == dD))
686+ then dM
687+ else if (("XL" == dD))
688+ then dN
689+ else if (("XXL" == dD))
690+ then dO
678691 else throw("Unknown land size")
679692 }
680693
681694
682-func fi () = "contractsBlocked"
695+func fk () = "contractsBlocked"
683696
684697
685-func fj (t) = ("lastTxIdByUser_" + t)
698+func fl (t) = ("lastTxIdByUser_" + t)
686699
687700
688-func fk (M) = {
689- let P = split(valueOrElse(getString(N, eX()), "0_0_0_0_0_0"), "_")
701+func fm (M) = {
702+ let P = split(valueOrElse(getString(N, eZ()), "0_0_0_0_0_0"), "_")
690703 func Q (R,S) = (R + parseIntValue(S))
691704
692- let fl = {
705+ let fn = {
693706 let U = P
694707 let V = size(U)
695708 let W = 0
703716
704717 aa(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6)
705718 }
706- let fm = valueOrElse(getInteger(N, eZ(M)), 0)
707-[fl, fm]
719+ let fo = valueOrElse(getInteger(N, fb(M)), 0)
720+[fn, fo]
708721 }
709722
710723
711-let fn = 500000
724+let fp = 500000
712725
713-func fo (fp) = {
714- let dC = fp
715- if ($isInstanceOf(dC, "List[Any]"))
726+func fq (fr) = {
727+ let dD = fr
728+ if ($isInstanceOf(dD, "List[Any]"))
716729 then {
717- let fq = dC
718- if ((size(fq) != cq))
719- then throw(("Array size is " + toString(size(fq))))
730+ let fs = dD
731+ if ((size(fs) != cq))
732+ then throw(("Array size is " + toString(size(fs))))
720733 else {
721- func fr (R,S) = {
722- let fs = S
723- if ($isInstanceOf(fs, "Int"))
734+ func ft (R,S) = {
735+ let fu = S
736+ if ($isInstanceOf(fu, "Int"))
724737 then {
725- let ft = fs
726- (R :+ toString(ft))
738+ let fv = fu
739+ (R :+ toString(fv))
727740 }
728741 else throw("List type is not Int")
729742 }
730743
731- let fu = {
732- let U = fq
744+ let fw = {
745+ let U = fs
733746 let V = size(U)
734747 let W = nil
735748 func X (Y,Z) = if ((Z >= V))
736749 then Y
737- else fr(Y, U[Z])
750+ else ft(Y, U[Z])
738751
739752 func aa (Y,Z) = if ((Z >= V))
740753 then Y
742755
743756 aa(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6)
744757 }
745- makeString(fu, "_")
758+ makeString(fw, "_")
746759 }
747760 }
748761 else throw("fail to cast into List")
749762 }
750763
751764
752-func fv (fp) = {
753- let dC = fp
754- if ($isInstanceOf(dC, "(List[Any], List[Any])"))
765+func fx (fr) = {
766+ let dD = fr
767+ if ($isInstanceOf(dD, "(List[Any], List[Any])"))
755768 then {
756- let fw = dC
757- $Tuple2(fo(fw._1), fo(fw._2))
769+ let fy = dD
770+ $Tuple2(fq(fy._1), fq(fy._2))
758771 }
759772 else throw("fail to cast into (List, List)")
760773 }
761774
762775
763-func fx (fp) = {
764- let dC = fp
765- if ($isInstanceOf(dC, "(Boolean, String)"))
776+func fz (fr) = {
777+ let dD = fr
778+ if ($isInstanceOf(dD, "(Boolean, String)"))
766779 then {
767- let fw = dC
768- fw
780+ let fy = dD
781+ fy
769782 }
770783 else throw("fail to cast into (Boolean, String)")
771784 }
772785
773786
774-func fy (fz) = {
775- let t = addressFromString(fz)
776- let fA = if (isDefined(t))
787+func fA (fB) = {
788+ let t = addressFromString(fB)
789+ let fC = if (isDefined(t))
777790 then wavesBalance(value(t))
778791 else BalanceDetails(0, 0, 0, 0)
779- let fB = if (isDefined(t))
780- then assetBalance(value(t), dB)
792+ let fD = if (isDefined(t))
793+ then assetBalance(value(t), dE)
781794 else 0
782- let fC = if (isDefined(t))
783- then assetBalance(value(t), eo)
795+ let fE = if (isDefined(t))
796+ then assetBalance(value(t), eq)
784797 else 0
785- let fD = valueOrElse(getString(N, cM(fz)), fz)
786- let fE = cN(fz)
787- let fF = getString(N, fE)
788- let fG = valueOrElse(getString(N, cP(fz)), "")
789- let fH = valueOrElse(getString(N, fj(fz)), "")
790- let fI = fk(fz)[eW]
791- let fJ = valueOrElse(getInteger(N, bB(fz)), 0)
792- let fK = valueOrElse(getInteger(N, bC(fz)), 0)
793- let fL = valueOrElse(getInteger(N, bD(fz)), 0)
794- let fM = {
795- let fN = invoke(eg, "checkWlgXpREADONLY", [fz], nil)
796- if ($isInstanceOf(fN, "List[Any]"))
797- then fN
798- else throw(($getType(fN) + " couldn't be cast to List[Any]"))
798+ let fF = valueOrElse(getString(N, cM(fB)), fB)
799+ let fG = cN(fB)
800+ let fH = getString(N, fG)
801+ let fI = valueOrElse(getString(N, cP(fB)), "")
802+ let fJ = valueOrElse(getString(N, fl(fB)), "")
803+ let fK = fm(fB)[eY]
804+ let fL = valueOrElse(getInteger(N, bB(fB)), 0)
805+ let fM = valueOrElse(getInteger(N, bC(fB)), 0)
806+ let fN = valueOrElse(getInteger(N, bD(fB)), 0)
807+ let fO = {
808+ let fP = invoke(ei, "checkWlgXpREADONLY", [fB], nil)
809+ if ($isInstanceOf(fP, "List[Any]"))
810+ then fP
811+ else throw(($getType(fP) + " couldn't be cast to List[Any]"))
799812 }
800- let fO = valueOrElse(getInteger(eg, D(fz)), 0)
801- let fP = if (isDefined(fF))
813+ let fQ = valueOrElse(getInteger(ei, D(fB)), 0)
814+ let fR = if (isDefined(fH))
802815 then (cp + (if (if (isDefined(t))
803- then isDefined(getString(N, cO(fz)))
816+ then isDefined(getString(N, cO(fB)))
804817 else false)
805818 then ":1"
806819 else ":0"))
807820 else ""
808- let fQ = if (isDefined(t))
809- then assetBalance(value(t), er)
821+ let fS = if (isDefined(t))
822+ then assetBalance(value(t), et)
810823 else 0
811- let fR = valueOrElse(getInteger(O, z(fz)), 0)
812- let fS = valueOrElse(getInteger(N, bN(fz)), 0)
813- let fT = valueOrElse(getInteger(N, bO(fz)), 0)
814-[("%s%s__customName__" + fD), ("%s%s__referredBy__" + valueOrElse(fF, "")), ("%s%s__referrals__" + fG), ("%s%s__lastTxId__" + fH), ("%s%d__wavesBalance__" + toString(fA.available)), ("%s%d__wlgoldBalance__" + toString(fC)), ("%s%d__usdtBalance__" + toString(fB)), ("%s%d__stakedPieces__" + toString(fI)), ("%s%d__acresBalance__" + toString(fQ)), ("%s%d__stakedAcres__" + toString(fR)), ("%s%d__currentXp__" + toString(fJ)), ("%s%d__currentLvl__" + toString(fK)), ("%s%d__pointsToDistribute__" + toString(fL)), ("%s%s__walletArtefacts__" + fP), ("%s%d__stakedWlgold__" + toString(fO)), ("%s%d__virtLevel__" + toString({
815- let fN = fM[0]
816- if ($isInstanceOf(fN, "Int"))
817- then fN
818- else throw(($getType(fN) + " couldn't be cast to Int"))
824+ let fT = valueOrElse(getInteger(O, z(fB)), 0)
825+ let fU = valueOrElse(getInteger(N, bN(fB)), 0)
826+ let fV = valueOrElse(getInteger(N, bO(fB)), 0)
827+[("%s%s__customName__" + fF), ("%s%s__referredBy__" + valueOrElse(fH, "")), ("%s%s__referrals__" + fI), ("%s%s__lastTxId__" + fJ), ("%s%d__wavesBalance__" + toString(fC.available)), ("%s%d__wlgoldBalance__" + toString(fE)), ("%s%d__usdtBalance__" + toString(fD)), ("%s%d__stakedPieces__" + toString(fK)), ("%s%d__acresBalance__" + toString(fS)), ("%s%d__stakedAcres__" + toString(fT)), ("%s%d__currentXp__" + toString(fL)), ("%s%d__currentLvl__" + toString(fM)), ("%s%d__pointsToDistribute__" + toString(fN)), ("%s%s__walletArtefacts__" + fR), ("%s%d__stakedWlgold__" + toString(fQ)), ("%s%d__virtLevel__" + toString({
828+ let fP = fO[0]
829+ if ($isInstanceOf(fP, "Int"))
830+ then fP
831+ else throw(($getType(fP) + " couldn't be cast to Int"))
819832 })), ("%s%d__virtPoints__" + toString({
820- let fN = fM[1]
821- if ($isInstanceOf(fN, "Int"))
822- then fN
823- else throw(($getType(fN) + " couldn't be cast to Int"))
833+ let fP = fO[1]
834+ if ($isInstanceOf(fP, "Int"))
835+ then fP
836+ else throw(($getType(fP) + " couldn't be cast to Int"))
824837 })), ("%s%d__virtXP__" + toString({
825- let fN = fM[2]
826- if ($isInstanceOf(fN, "Int"))
827- then fN
828- else throw(($getType(fN) + " couldn't be cast to Int"))
829- })), ("%s%d__userDeliveryCount__" + toString(fS)), ("%s%d__userLastDeliveryDay__" + toString(fT)), ("%s%d__lockedAcres__" + toString(valueOrElse(getInteger(O, A(fz)), 0))), ("%s%d__ETALockedAcres__" + toString(valueOrElse(getInteger(O, B(fz)), 0)))]
838+ let fP = fO[2]
839+ if ($isInstanceOf(fP, "Int"))
840+ then fP
841+ else throw(($getType(fP) + " couldn't be cast to Int"))
842+ })), ("%s%d__userDeliveryCount__" + toString(fU)), ("%s%d__userLastDeliveryDay__" + toString(fV)), ("%s%d__lockedAcres__" + toString(valueOrElse(getInteger(O, A(fB)), 0))), ("%s%d__ETALockedAcres__" + toString(valueOrElse(getInteger(O, B(fB)), 0)))]
830843 }
831844
832845
833-func fU (bI,fI) = {
834- let fV = valueOrElse(getInteger(N, cJ(bI)), 0)
835- let fW = valueOrElse(getInteger(N, cG(co, bI)), 0)
836- let fX = (fV / 6)
837- let fY = (fV / 7)
838- $Tuple3(fV, fW, ((cr + fraction(cr, ((fV + fX) + (2 * fY)), 5)) + fraction(cr, fW, (fI * 5))))
846+func fW (bI,fK) = {
847+ let fX = valueOrElse(getInteger(N, cJ(bI)), 0)
848+ let fY = valueOrElse(getInteger(N, cG(co, bI)), 0)
849+ let fZ = (fX / 6)
850+ let ga = (fX / 7)
851+ $Tuple3(fX, fY, ((cr + fraction(cr, ((fX + fZ) + (2 * ga)), 5)) + fraction(cr, fY, (fK * 5))))
839852 }
840853
841854
842-func fZ (ga) = {
843- let gb = split(ga, "_")
844- ((cs * (parseIntValue(gb[1]) + 1)) * parseIntValue(gb[0]))
855+func gb (gc) = {
856+ let gd = split(gc, "_")
857+ ((cs * (parseIntValue(gd[1]) + 1)) * parseIntValue(gd[0]))
845858 }
846859
847860
848-func gc (gd,ge,fV) = {
849- let ga = ((toString(ge) + "_") + toString(fV))
850- let gf = toString(fZ(ga))
851- let gg = valueOrElse(getString(N, gd), ((((ga + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + gf) + "_") + gf))
852- split(gg, ":")
861+func ge (gf,gg,fX) = {
862+ let gc = ((toString(gg) + "_") + toString(fX))
863+ let gh = toString(gb(gc))
864+ let gi = valueOrElse(getString(N, gf), ((((gc + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + gh) + "_") + gh))
865+ split(gi, ":")
853866 }
854867
855868
856-func gh (bv) = {
857- let gi = bP(valueOrElse(getInteger(N, by(bv)), 0))
858- $Tuple5(valueOrElse(getInteger(N, cF(bv)), -1), value(assetInfo(fromBase58String(bv))).name, valueOrElse(getString(N, cT(bv)), ""), valueOrElse(getInteger(N, bu(bv)), gi), fa(invoke(N, "getBackpackREADONLY", [bv], nil)))
869+func gj (bv) = {
870+ let gk = bP(valueOrElse(getInteger(N, by(bv)), 0))
871+ $Tuple5(valueOrElse(getInteger(N, cF(bv)), -1), value(assetInfo(fromBase58String(bv))).name, valueOrElse(getString(N, cT(bv)), ""), valueOrElse(getInteger(N, bu(bv)), gk), fc(invoke(N, "getBackpackREADONLY", [bv], nil)))
859872 }
860873
861874
862-func gj (bv,gk,gl) = {
863- let fD = valueOrElse(getString(N, cL(bv)), gl._2)
875+func gl (bv,gm,gn) = {
876+ let fF = valueOrElse(getString(N, cL(bv)), gn._2)
864877 let cd = valueOrElse(getString(N, bw(bv)), "0_0_0_0_0")
865- let fJ = valueOrElse(getInteger(N, bx(bv)), 0)
866- let fK = valueOrElse(getInteger(N, by(bv)), 0)
867- let fL = valueOrElse(getInteger(N, bz(bv)), 0)
868- let gm = valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;")
878+ let fL = valueOrElse(getInteger(N, bx(bv)), 0)
879+ let fM = valueOrElse(getInteger(N, by(bv)), 0)
880+ let fN = valueOrElse(getInteger(N, bz(bv)), 0)
881+ let go = valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;")
869882 let ce = valueOrElse(getString(N, bE(bv)), "0_0_0_0_0")
870- let gn = bR(N, bv)
871- let bU = gn._1
872- let bT = gn._2
873- let bV = gn._3
874- let bW = gn._4
875- let bX = gn._5
876- let go = valueOrElse(getInteger(N, bM(bv)), 0)
877-[("%s%s__assetId__" + bv), ("%s%s__owner__" + gk), ("%s%s__customName__" + fD), ("%s%d__stakedTime__" + toString(gl._1)), ("%s%s__name__" + gl._2), ("%s%s__location__" + gl._3), ("%s%d__health__" + toString(gl._4)), ("%s%d__maxHealth__" + toString(bP(fK))), ("%s%s__characteristics__" + cd), ("%s%d__currentXp__" + toString(fJ)), ("%s%d__currentLvl__" + toString(fK)), ("%s%d__pointsToDistribute__" + toString(fL)), ("%s%s__backPack__" + gl._5), ("%s%s__equipment__" + gm), ("%s%s__buffs__" + ce), ("%s%d__robberyCost__" + toString(bU)), ("%s%d__robberyTime__" + toString(bT)), ("%s%s__robberyState__" + bt[bV]), ("%s%s__robberyLastLand__" + bW), ("%s%d__robberyLastLandReleaseTime__" + toString(bX)), ("%s%d__deliveryDelay__" + toString(go))]
883+ let gp = bR(N, bv)
884+ let bU = gp._1
885+ let bT = gp._2
886+ let bV = gp._3
887+ let bW = gp._4
888+ let bX = gp._5
889+ let gq = valueOrElse(getInteger(N, bM(bv)), 0)
890+[("%s%s__assetId__" + bv), ("%s%s__owner__" + gm), ("%s%s__customName__" + fF), ("%s%d__stakedTime__" + toString(gn._1)), ("%s%s__name__" + gn._2), ("%s%s__location__" + gn._3), ("%s%d__health__" + toString(gn._4)), ("%s%d__maxHealth__" + toString(bP(fM))), ("%s%s__characteristics__" + cd), ("%s%d__currentXp__" + toString(fL)), ("%s%d__currentLvl__" + toString(fM)), ("%s%d__pointsToDistribute__" + toString(fN)), ("%s%s__backPack__" + gn._5), ("%s%s__equipment__" + go), ("%s%s__buffs__" + ce), ("%s%d__robberyCost__" + toString(bU)), ("%s%d__robberyTime__" + toString(bT)), ("%s%s__robberyState__" + bt[bV]), ("%s%s__robberyLastLand__" + bW), ("%s%d__robberyLastLandReleaseTime__" + toString(bX)), ("%s%d__deliveryDelay__" + toString(gq))]
878891 }
879892
880893
881-func gp (bI,gk,gq) = if ((bI == ""))
894+func gr (bI,gm,gs) = if ((bI == ""))
882895 then throw("landAssetId is required")
883896 else {
884- let gr = value(assetInfo(fromBase58String(bI)))
885- let gs = split(gr.description, "_")
886- let gt = if ((gr.quantity > 0))
887- then gs[ej]
888- else ("-" + gs[ej])
889- let fI = fg(gs[ek])
890- let gu = fU(bI, fI)
891- let gv = (lastBlock.timestamp - gq)
892- let gw = if ((gq > 0))
893- then fraction(gv, (gu._3 * fI), i)
897+ let gt = value(assetInfo(fromBase58String(bI)))
898+ let gu = split(gt.description, "_")
899+ let gv = if ((gt.quantity > 0))
900+ then gu[el]
901+ else ("-" + gu[el])
902+ let fK = fi(gu[em])
903+ let gw = fW(bI, fK)
904+ let gx = (lastBlock.timestamp - gs)
905+ let gy = if ((gs > 0))
906+ then fraction(gx, (gw._3 * fK), i)
894907 else 0
895- let gx = fraction(dE, (fI * (gu._1 + 1)), dI)
896- let gy = if ((gq > 0))
897- then fv(invoke(N, "splitByGlobalAndLocalWeightsREADONLY", [gx, gw, gs[el]], nil))
898- else $Tuple2(fo(invoke(N, "splitByGlobalWeightsREADONLY", [gx], nil)), "")
899- let fD = valueOrElse(getString(N, cE(bI)), ((gs[em] + "-") + gs[ej]))
900- let gz = valueOrElse(getString(N, cK(bI)), ":0_15:0_18:0")
901- let gA = valueOrElse(getInteger(N, bH(bI)), 0)
902- let gB = valueOrElse(getInteger(N, bJ(bI)), 0)
903-[("%s%s__assetId__" + bI), ("%s%s__owner__" + gk), ("%s%s__customName__" + fD), ("%s%d__stakedTime__" + toString(gq)), ("%s%s__description__" + makeString([gt, gs[ek], gs[el], gs[em]], "_")), ("%s%d__infraLevel__" + toString(gu._1)), ("%s%s__availResByType__" + gy._2), ("%s%d__availResTotal__" + toString(gw)), ("%s%s__needMaterial__" + gy._1), ("%s%s__landArtefacts__PRESALE:" + toString(gu._2)), ("%s%s__warehouse__" + makeString(gc(cI(bI), (fI / dI), gu._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(ef, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:")), ("%s%s__fortifications__" + gz), ("%s%s__robberyState__" + bs[gA]), ("%s%d__canBeRobbedAfter__" + toString(gB))]
908+ let gz = fraction(dG, (fK * (gw._1 + 1)), dK)
909+ let gA = if ((gs > 0))
910+ then fx(invoke(N, "splitByGlobalAndLocalWeightsREADONLY", [gz, gy, gu[en]], nil))
911+ else $Tuple2(fq(invoke(N, "splitByGlobalWeightsREADONLY", [gz], nil)), "")
912+ let fF = valueOrElse(getString(N, cE(bI)), ((gu[eo] + "-") + gu[el]))
913+ let gB = valueOrElse(getString(N, cK(bI)), ":0_15:0_18:0")
914+ let gC = valueOrElse(getInteger(N, bH(bI)), 0)
915+ let gD = valueOrElse(getInteger(N, bJ(bI)), 0)
916+[("%s%s__assetId__" + bI), ("%s%s__owner__" + gm), ("%s%s__customName__" + fF), ("%s%d__stakedTime__" + toString(gs)), ("%s%s__description__" + makeString([gv, gu[em], gu[en], gu[eo]], "_")), ("%s%d__infraLevel__" + toString(gw._1)), ("%s%s__availResByType__" + gA._2), ("%s%d__availResTotal__" + toString(gy)), ("%s%s__needMaterial__" + gA._1), ("%s%s__landArtefacts__PRESALE:" + toString(gw._2)), ("%s%s__warehouse__" + makeString(ge(cI(bI), (fK / dK), gw._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(eh, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:")), ("%s%s__fortifications__" + gB), ("%s%s__robberyState__" + bs[gC]), ("%s%d__canBeRobbedAfter__" + toString(gD))]
904917 }
905918
906919
907-func gC (bI,gk) = if ((bI == ""))
920+func gE (bI,gm) = if ((bI == ""))
908921 then throw("landAssetId is required")
909922 else {
910- let gr = value(assetInfo(fromBase58String(bI)))
911- let gs = split(gr.description, "_")
912- let fI = fg(gs[ek])
913- let gu = fU(bI, fI)
914-[("%s%s__assetId__" + bI), ("%s%s__owner__" + gk), ("%s%s__warehouse__" + makeString(gc(cI(bI), (fI / dI), gu._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(ef, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
923+ let gt = value(assetInfo(fromBase58String(bI)))
924+ let gu = split(gt.description, "_")
925+ let fK = fi(gu[em])
926+ let gw = fW(bI, fK)
927+[("%s%s__assetId__" + bI), ("%s%s__owner__" + gm), ("%s%s__warehouse__" + makeString(ge(cI(bI), (fK / dK), gw._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(eh, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
915928 }
916929
917930
918-func gD (gE) = if ((gE == ""))
931+func gF (gG) = if ((gG == ""))
919932 then 0
920933 else {
921- let gF = split(gE, ",")[0]
922- if ((gF == ""))
934+ let gH = split(gG, ",")[0]
935+ if ((gH == ""))
923936 then 0
924937 else {
925- let gG = split(gF, ":")
926- if (if ((gG[1] == ""))
938+ let gI = split(gH, ":")
939+ if (if ((gI[1] == ""))
927940 then true
928- else (parseIntValue(gG[1]) == 0))
941+ else (parseIntValue(gI[1]) == 0))
929942 then 0
930- else parseIntValue(split(cy[parseIntValue(gG[0])], "_")[cA])
943+ else parseIntValue(split(cy[parseIntValue(gI[0])], "_")[cA])
931944 }
932945 }
933946
934947
935-func gH (gI) = {
936- let gJ = du(ei, gI)
937- let dw = gJ[dg]
938- let dx = gJ[dh]
939- let gK = if ((dx[dq] == ""))
948+func gJ (gK) = {
949+ let gL = du(ek, gK)
950+ let dw = gL[dg]
951+ let dx = gL[dh]
952+ let gM = if ((dx[dq] == ""))
940953 then " "
941954 else dx[dq]
942- let gL = valueOrElse(getString(ei, da(gI)), "")
943- let gM = if ((size(dw) > dm))
955+ let gN = valueOrElse(getString(ek, da(gK)), "")
956+ let gO = if ((size(dw) > dm))
944957 then dw[dm]
945958 else "0"
946- let gN = if ((size(dw) > dn))
959+ let gP = if ((size(dw) > dn))
947960 then dw[dn]
948961 else "0"
949962 let cD = if ((size(dw) > do))
950963 then fromBase58String(dw[do])
951- else eo
952- let gO = valueOrErrorMessage(assetInfo(cD), "No assetInfo available").name
953-[("%s%s__tournamentStaticData__" + makeString([dw[di], dw[dj], dw[dk], dw[dl], gM, gN, gO], "_")), ("%s%s__tournamentDynamicData__" + makeString_2C([dx[dp], gK, dx[dr], dx[ds], dx[dt]], "_")), ("%s%s__tournamentScoreBoard__" + gL)]
964+ else eq
965+ let gQ = valueOrErrorMessage(assetInfo(cD), "No assetInfo available").name
966+[("%s%s__tournamentStaticData__" + makeString([dw[di], dw[dj], dw[dk], dw[dl], gO, gP, gQ], "_")), ("%s%s__tournamentDynamicData__" + makeString_2C([dx[dp], gM, dx[dr], dx[ds], dx[dt]], "_")), ("%s%s__tournamentScoreBoard__" + gN)]
954967 }
955968
956969
957-func gP (t,dP) = {
958- let gQ = getBoolean(t, dP)
959- if (isDefined(gQ))
960- then value(gQ)
970+func gR (t,dR) = {
971+ let gS = getBoolean(t, dR)
972+ if (isDefined(gS))
973+ then value(gS)
961974 else {
962- let gR = getBinary(t, dP)
963- if (isDefined(gR))
964- then value(gR)
975+ let gT = getBinary(t, dR)
976+ if (isDefined(gT))
977+ then value(gT)
965978 else {
966- let gS = getInteger(t, dP)
967- if (isDefined(gS))
968- then value(gS)
969- else getString(t, dP)
979+ let gU = getInteger(t, dR)
980+ if (isDefined(gU))
981+ then value(gU)
982+ else getString(t, dR)
970983 }
971984 }
972985 }
973986
974987
975-func gT (gU) = {
976- func gV (R,gW) = {
977- let t = Address(fromBase58String(gW._1))
978- let gX = gW._2
979- let gY = {
980- let dC = gW
981- if ($isInstanceOf(dC, "(String, String, List[Any])"))
988+func gV (gW) = {
989+ func gX (R,gY) = {
990+ let t = Address(fromBase58String(gY._1))
991+ let gZ = gY._2
992+ let ha = {
993+ let dD = gY
994+ if ($isInstanceOf(dD, "(String, String, List[Any])"))
982995 then {
983- let gZ = dC
984- invoke(t, gX, gZ._3, nil)
996+ let hb = dD
997+ invoke(t, gZ, hb._3, nil)
985998 }
986- else gP(t, gX)
999+ else gR(t, gZ)
9871000 }
988- (R :+ gY)
1001+ (R :+ ha)
9891002 }
9901003
991- let U = gU
1004+ let U = gW
9921005 let V = size(U)
9931006 let W = nil
9941007 func X (Y,Z) = if ((Z >= V))
9951008 then Y
996- else gV(Y, U[Z])
1009+ else gX(Y, U[Z])
9971010
9981011 func aa (Y,Z) = if ((Z >= V))
9991012 then Y
10031016 }
10041017
10051018
1006-@Callable(ha)
1007-func constructorV1 (ak) = if ((ha.caller != this))
1019+@Callable(hc)
1020+func constructorV1 (ak) = if ((hc.caller != this))
10081021 then throw("permissions denied")
10091022 else {
1010- func hb (R,hc) = (R + "%s")
1023+ func hd (R,he) = (R + "%s")
10111024
1012- let hd = {
1025+ let hf = {
10131026 let U = ak
10141027 let V = size(U)
10151028 let W = ""
10161029 func X (Y,Z) = if ((Z >= V))
10171030 then Y
1018- else hb(Y, U[Z])
1031+ else hd(Y, U[Z])
10191032
10201033 func aa (Y,Z) = if ((Z >= V))
10211034 then Y
10231036
10241037 aa(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
10251038 }
1026-[StringEntry(dX(), makeString(hd :: ak, dF)), StringEntry(dY(), toString(this))]
1039+[StringEntry(dZ(), makeString(hf :: ak, dH)), StringEntry(ea(), toString(this))]
10271040 }
10281041
10291042
10301043
1031-@Callable(ha)
1032-func walletInfoREADONLY (fz) = $Tuple2(nil, fy(fz))
1044+@Callable(hc)
1045+func walletInfoREADONLY (fB) = $Tuple2(nil, fA(fB))
10331046
10341047
10351048
1036-@Callable(ha)
1037-func duckByOwnerInfoREADONLY (he) = {
1038- let hf = getString(N, cR(he))
1039- $Tuple2(nil, if (if (isDefined(addressFromString(he)))
1040- then isDefined(hf)
1049+@Callable(hc)
1050+func duckByOwnerInfoREADONLY (hg) = {
1051+ let hh = getString(N, cR(hg))
1052+ $Tuple2(nil, if (if (isDefined(addressFromString(hg)))
1053+ then isDefined(hh)
10411054 else false)
10421055 then {
1043- let bv = value(hf)
1044- gj(bv, he, gh(bv))
1056+ let bv = value(hh)
1057+ gl(bv, hg, gj(bv))
10451058 }
1046- else gj("", he, $Tuple5(-1, "", "", -1, "")))
1059+ else gl("", hg, $Tuple5(-1, "", "", -1, "")))
10471060 }
10481061
10491062
10501063
1051-@Callable(ha)
1064+@Callable(hc)
10521065 func duckByAssetIdInfoREADONLY (bv) = {
1053- let gk = getString(N, cQ(bv))
1054- $Tuple2(nil, gj(bv, if (isDefined(gk))
1055- then value(gk)
1056- else "", gh(bv)))
1066+ let gm = getString(N, cQ(bv))
1067+ $Tuple2(nil, gl(bv, if (isDefined(gm))
1068+ then value(gm)
1069+ else "", gj(bv)))
10571070 }
10581071
10591072
10601073
1061-@Callable(ha)
1062-func ducksByIdsInfoREADONLY (hg) = {
1063- func hh (R,bv) = if ((bv == ""))
1074+@Callable(hc)
1075+func ducksByIdsInfoREADONLY (hi) = {
1076+ func hj (R,bv) = if ((bv == ""))
10641077 then throw("duckAssetId is required")
10651078 else {
1066- let gq = valueOrElse(getInteger(N, cF(bv)), -1)
1067- let gk = if ((gq > 0))
1079+ let gs = valueOrElse(getInteger(N, cF(bv)), -1)
1080+ let gm = if ((gs > 0))
10681081 then value(getString(N, cQ(bv)))
10691082 else ""
1070- (R :+ gj(bv, gk, gh(bv)))
1083+ (R :+ gl(bv, gm, gj(bv)))
10711084 }
10721085
1073- let fu = {
1074- let U = hg
1086+ let fw = {
1087+ let U = hi
10751088 let V = size(U)
10761089 let W = nil
10771090 func X (Y,Z) = if ((Z >= V))
10781091 then Y
1079- else hh(Y, U[Z])
1092+ else hj(Y, U[Z])
10801093
10811094 func aa (Y,Z) = if ((Z >= V))
10821095 then Y
10841097
10851098 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
10861099 }
1087- $Tuple2(nil, fu)
1100+ $Tuple2(nil, fw)
10881101 }
10891102
10901103
10911104
1092-@Callable(ha)
1105+@Callable(hc)
10931106 func landByAssetIdInfoREADONLY (bI) = if ((bI == ""))
10941107 then throw("landAssetId is required")
10951108 else {
1096- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1097- let gk = if ((gq > 0))
1109+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1110+ let gm = if ((gs > 0))
10981111 then value(getString(N, cC(bI)))
10991112 else ""
1100- $Tuple2(nil, gp(bI, gk, gq))
1113+ $Tuple2(nil, gr(bI, gm, gs))
11011114 }
11021115
11031116
11041117
1105-@Callable(ha)
1106-func stakedLandsByOwnerInfoREADONLY (hi) = if ((hi == ""))
1118+@Callable(hc)
1119+func stakedLandsByOwnerInfoREADONLY (hk) = if ((hk == ""))
11071120 then throw("landOwnerAddress is required")
11081121 else {
1109- let hj = getString(N, eY(hi))
1110- let hk = if (isDefined(hj))
1111- then split_51C(value(hj), "_")
1122+ let hl = getString(N, fa(hk))
1123+ let hm = if (isDefined(hl))
1124+ then split_51C(value(hl), "_")
11121125 else nil
1113- func hl (R,bI) = if ((bI == ""))
1126+ func hn (R,bI) = if ((bI == ""))
11141127 then throw("landAssetId is required")
11151128 else {
1116- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1117- (R :+ gp(bI, hi, gq))
1129+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1130+ (R :+ gr(bI, hk, gs))
11181131 }
11191132
1120- let fu = {
1121- let U = hk
1133+ let fw = {
1134+ let U = hm
11221135 let V = size(U)
11231136 let W = nil
11241137 func X (Y,Z) = if ((Z >= V))
11251138 then Y
1126- else hl(Y, U[Z])
1139+ else hn(Y, U[Z])
11271140
11281141 func aa (Y,Z) = if ((Z >= V))
11291142 then Y
11311144
11321145 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
11331146 }
1134- $Tuple2(nil, fu)
1147+ $Tuple2(nil, fw)
11351148 }
11361149
11371150
11381151
1139-@Callable(ha)
1140-func landsByIdsInfoREADONLY (hm) = {
1141- func hl (R,bI) = if ((bI == ""))
1152+@Callable(hc)
1153+func landsByIdsInfoREADONLY (ho) = {
1154+ func hn (R,bI) = if ((bI == ""))
11421155 then throw("landAssetId is required")
11431156 else {
1144- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1145- let gk = if ((gq > 0))
1157+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1158+ let gm = if ((gs > 0))
11461159 then value(getString(N, cC(bI)))
11471160 else ""
1148- (R :+ gp(bI, gk, gq))
1161+ (R :+ gr(bI, gm, gs))
11491162 }
11501163
1151- let fu = {
1152- let U = hm
1164+ let fw = {
1165+ let U = ho
11531166 let V = size(U)
11541167 let W = nil
11551168 func X (Y,Z) = if ((Z >= V))
11561169 then Y
1157- else hl(Y, U[Z])
1170+ else hn(Y, U[Z])
11581171
11591172 func aa (Y,Z) = if ((Z >= V))
11601173 then Y
11621175
11631176 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
11641177 }
1165- $Tuple2(nil, fu)
1178+ $Tuple2(nil, fw)
11661179 }
11671180
11681181
11691182
1170-@Callable(ha)
1183+@Callable(hc)
11711184 func warehouseOrderByAssetIdInfoREADONLY (bI) = if ((bI == ""))
11721185 then throw("landAssetId is required")
11731186 else {
1174- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1175- let gk = if ((gq > 0))
1187+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1188+ let gm = if ((gs > 0))
11761189 then value(getString(N, cC(bI)))
11771190 else ""
1178- $Tuple2(nil, gC(bI, gk))
1191+ $Tuple2(nil, gE(bI, gm))
11791192 }
11801193
11811194
11821195
1183-@Callable(ha)
1184-func ordersByLandIdsInfoREADONLY (hm) = {
1185- func hl (R,bI) = if ((bI == ""))
1196+@Callable(hc)
1197+func ordersByLandIdsInfoREADONLY (ho) = {
1198+ func hn (R,bI) = if ((bI == ""))
11861199 then throw("landAssetId is required")
11871200 else {
1188- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1189- let gk = if ((gq > 0))
1201+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1202+ let gm = if ((gs > 0))
11901203 then value(getString(N, cC(bI)))
11911204 else ""
1192- (R :+ gC(bI, gk))
1205+ (R :+ gE(bI, gm))
11931206 }
11941207
1195- let fu = {
1196- let U = hm
1208+ let fw = {
1209+ let U = ho
11971210 let V = size(U)
11981211 let W = nil
11991212 func X (Y,Z) = if ((Z >= V))
12001213 then Y
1201- else hl(Y, U[Z])
1214+ else hn(Y, U[Z])
12021215
12031216 func aa (Y,Z) = if ((Z >= V))
12041217 then Y
12061219
12071220 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
12081221 }
1209- $Tuple2(nil, fu)
1222+ $Tuple2(nil, fw)
12101223 }
12111224
12121225
12131226
1214-@Callable(ha)
1215-func cancelWarehouseOrders (hm) = if ((ha.caller != this))
1227+@Callable(hc)
1228+func cancelWarehouseOrders (ho) = if ((hc.caller != this))
12161229 then throw("permission denied")
12171230 else {
1218- let hn = getBoolean(N, fi())
1219- if (if (!(isDefined(hn)))
1231+ let hp = getBoolean(N, fk())
1232+ if (if (!(isDefined(hp)))
12201233 then true
1221- else (value(hn) == false))
1234+ else (value(hp) == false))
12221235 then throw("Contracts should be blocked before canceling orders")
12231236 else {
1224- func hl (gr,bI) = if ((bI == ""))
1237+ func hn (gt,bI) = if ((bI == ""))
12251238 then throw("landAssetId is required")
12261239 else {
1227- let ho = fx(invoke(ef, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bI], nil))._1
1228- if (if (gr)
1240+ let hq = fz(invoke(eh, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bI], nil))._1
1241+ if (if (gt)
12291242 then true
1230- else ho)
1231- then !(if (gr)
1232- then ho
1243+ else hq)
1244+ then !(if (gt)
1245+ then hq
12331246 else false)
12341247 else false
12351248 }
12361249
1237- let fu = {
1238- let U = hm
1250+ let fw = {
1251+ let U = ho
12391252 let V = size(U)
12401253 let W = false
12411254 func X (Y,Z) = if ((Z >= V))
12421255 then Y
1243- else hl(Y, U[Z])
1256+ else hn(Y, U[Z])
12441257
12451258 func aa (Y,Z) = if ((Z >= V))
12461259 then Y
12481261
12491262 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
12501263 }
1251- $Tuple2(nil, fu)
1264+ $Tuple2(nil, fw)
12521265 }
12531266 }
12541267
12551268
12561269
1257-@Callable(ha)
1258-func sendUsdtPrize (he) = if ((ha.caller != N))
1270+@Callable(hc)
1271+func distributeLockedAcres (hr,hs,ht) = if (if ((hc.caller != this))
1272+ then (hc.callerPublicKey != dC)
1273+ else false)
1274+ then throw("Permission denied")
1275+ else if ((0 >= hs))
1276+ then throw("amount should be positive")
1277+ else if ((0 > ht))
1278+ then throw("lockDays should be non-negative")
1279+ else {
1280+ func hu (R,t) = if ((t == ""))
1281+ then throw("address is required")
1282+ else (R + fe(invoke(O, "sendLockedAcres", [t, hs, ht], nil)))
1283+
1284+ let ac = {
1285+ let U = hr
1286+ let V = size(U)
1287+ let W = 0
1288+ func X (Y,Z) = if ((Z >= V))
1289+ then Y
1290+ else hu(Y, U[Z])
1291+
1292+ func aa (Y,Z) = if ((Z >= V))
1293+ then Y
1294+ else throw("List size exceeds 20")
1295+
1296+ aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
1297+ }
1298+ $Tuple2(nil, ac)
1299+ }
1300+
1301+
1302+
1303+@Callable(hc)
1304+func sendUsdtPrize (hg) = if ((hc.caller != N))
12591305 then throw("permission denied")
12601306 else {
1261- let hp = fraction(assetBalance(this, dB), fn, dG)
1262- $Tuple2([ScriptTransfer(addressFromStringValue(he), hp, dB)], hp)
1307+ let hv = fraction(assetBalance(this, dE), fp, dI)
1308+ $Tuple2([ScriptTransfer(addressFromStringValue(hg), hv, dE)], hv)
12631309 }
12641310
12651311
12661312
1267-@Callable(ha)
1313+@Callable(hc)
12681314 func getEmergencyServiceDataREADONLY () = {
1269- let hq = getString(ef, cV())
1270- let hr = if (isDefined(hq))
1271- then split_4C(value(hq), "_")
1315+ let hw = getString(eh, cV())
1316+ let hx = if (isDefined(hw))
1317+ then split_4C(value(hw), "_")
12721318 else nil
1273- func hs (R,ht) = {
1274- let fd = R._2
1275- let dz = split(ht, "_")
1276- let hu = if ((fd == 0))
1319+ func hy (R,hz) = {
1320+ let ff = R._2
1321+ let dz = split(hz, "_")
1322+ let hA = if ((ff == 0))
12771323 then (cu * cB)
12781324 else 0
1279- let hv = if ((size(hr) > fd))
1280- then parseIntValue(hr[fd])
1325+ let hB = if ((size(hx) > ff))
1326+ then parseIntValue(hx[ff])
12811327 else 0
1282- let hw = dy(dz)
1283- let hx = fraction((hw * cv), ct, (dH * cB))
1284- let hy = fraction((hw * cw), ct, (dH * cB))
1285- let hz = makeString([toString(hu), toString(hv), toString(hx), toString(hy)], "_")
1286- $Tuple2((R._1 :+ hz), (fd + 1))
1328+ let hC = dy(dz)
1329+ let hD = fraction((hC * cv), ct, (dJ * cB))
1330+ let hE = fraction((hC * cw), ct, (dJ * cB))
1331+ let hF = makeString([toString(hA), toString(hB), toString(hD), toString(hE)], "_")
1332+ $Tuple2((R._1 :+ hF), (ff + 1))
12871333 }
12881334
1289- let fb = makeString_2C(( let U = cy
1335+ let fd = makeString_2C(( let U = cy
12901336 let V = size(U)
12911337 let W = $Tuple2(nil, 0)
12921338 func X (Y,Z) = if ((Z >= V))
12931339 then Y
1294- else hs(Y, U[Z])
1340+ else hy(Y, U[Z])
12951341
12961342 func aa (Y,Z) = if ((Z >= V))
12971343 then Y
12981344 else throw("List size exceeds 50")
12991345
13001346 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._1, ":")
1301- let gY = ("%s%s__emergencyServiceData__" + fb)
1302- $Tuple2(nil, gY)
1347+ let ha = ("%s%s__emergencyServiceData__" + fd)
1348+ $Tuple2(nil, ha)
13031349 }
13041350
13051351
13061352
1307-@Callable(ha)
1353+@Callable(hc)
13081354 func wlgStatsREADONLY (aj) = {
1309- let hA = ai(aj, [ee, N, ef, eg, eh, at, O], dB, 0, dG)
1310- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(hA[es])), ("%s%d__wlgPrice__" + toString(hA[et])), ("%s%d__usdtFunds__" + toString(hA[eu])), ("%s%d__usdtEconomy__" + toString(hA[ev])), ("%s%d__usdtActivity__" + toString(hA[ew])), ("%s%d__usdtArbitrage__" + toString(hA[ex])), ("%s%d__usdtPool__" + toString(hA[ey])), ("%s%d__wlgIssueTime__" + toString(hA[ez])), ("%s%d__wlgLastMarketingTeamActTime__" + toString(hA[eA])), ("%s%d__wlgMarketingTotal__" + toString(hA[eB])), ("%s%d__wlgMarketingAmLeft__" + toString(hA[eC])), ("%s%d__wlgMarketingAmAvailNow__" + toString(hA[eD])), ("%s%d__wlgMarketingWlgold__" + toString(hA[eE])), ("%s%d__wlgTeamTotal__" + toString(hA[eF])), ("%s%d__wlgTeamAmLeft__" + toString(hA[eG])), ("%s%d__wlgTeamAmAvailNow__" + toString(hA[eH])), ("%s%d__wlgTeamWlgold__" + toString(hA[eI])), ("%s%d__wlgActTotal__" + toString(hA[eJ])), ("%s%d__wlgActAmLeft__" + toString(hA[eK])), ("%s%d__wlgActAmAvailNow__" + toString(hA[eL])), ("%s%d__wlgActWlgold__" + toString(hA[eM])), ("%s%d__wlgCurPeriod__" + toString(hA[eN])), ("%s%d__wlgAmLeftTotal__" + toString(hA[eO])), ("%s%d__wlgCurPeriodDistribution__" + toString(hA[eP])), ("%s%d__wlgLastUserTime__" + toString(hA[eQ])), ("%s%d__wlgUserAmAvailNow__" + toString(hA[eR])), ("%s%d__wlgGuestSLandDaily__" + toString(hA[eS])), ("%s%d__wlgInvestFundTotal__" + toString(hA[eT])), ("%s%d__wlgUserTotalAvail__" + toString(hA[eU])), ("%s%d__wlgEffUserTime__" + toString(hA[eV]))])
1355+ let hG = ai(aj, [eg, N, eh, ei, ej, at, O], dE, 0, dI)
1356+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(hG[eu])), ("%s%d__wlgPrice__" + toString(hG[ev])), ("%s%d__usdtFunds__" + toString(hG[ew])), ("%s%d__usdtEconomy__" + toString(hG[ex])), ("%s%d__usdtActivity__" + toString(hG[ey])), ("%s%d__usdtArbitrage__" + toString(hG[ez])), ("%s%d__usdtPool__" + toString(hG[eA])), ("%s%d__wlgIssueTime__" + toString(hG[eB])), ("%s%d__wlgLastMarketingTeamActTime__" + toString(hG[eC])), ("%s%d__wlgMarketingTotal__" + toString(hG[eD])), ("%s%d__wlgMarketingAmLeft__" + toString(hG[eE])), ("%s%d__wlgMarketingAmAvailNow__" + toString(hG[eF])), ("%s%d__wlgMarketingWlgold__" + toString(hG[eG])), ("%s%d__wlgTeamTotal__" + toString(hG[eH])), ("%s%d__wlgTeamAmLeft__" + toString(hG[eI])), ("%s%d__wlgTeamAmAvailNow__" + toString(hG[eJ])), ("%s%d__wlgTeamWlgold__" + toString(hG[eK])), ("%s%d__wlgActTotal__" + toString(hG[eL])), ("%s%d__wlgActAmLeft__" + toString(hG[eM])), ("%s%d__wlgActAmAvailNow__" + toString(hG[eN])), ("%s%d__wlgActWlgold__" + toString(hG[eO])), ("%s%d__wlgCurPeriod__" + toString(hG[eP])), ("%s%d__wlgAmLeftTotal__" + toString(hG[eQ])), ("%s%d__wlgCurPeriodDistribution__" + toString(hG[eR])), ("%s%d__wlgLastUserTime__" + toString(hG[eS])), ("%s%d__wlgUserAmAvailNow__" + toString(hG[eT])), ("%s%d__wlgGuestSLandDaily__" + toString(hG[eU])), ("%s%d__wlgInvestFundTotal__" + toString(hG[eV])), ("%s%d__wlgUserTotalAvail__" + toString(hG[eW])), ("%s%d__wlgEffUserTime__" + toString(hG[eX]))])
13111357 }
13121358
13131359
13141360
1315-@Callable(ha)
1316-func tournamentStatsREADONLY (gI) = $Tuple2(nil, gH(gI))
1361+@Callable(hc)
1362+func tournamentStatsREADONLY (gK) = $Tuple2(nil, gJ(gK))
13171363
13181364
13191365
1320-@Callable(ha)
1366+@Callable(hc)
13211367 func lastTournamentStatsREADONLY () = {
1322- let gI = valueOrElse(getInteger(ei, cW), 0)
1323- $Tuple2(nil, [("%s%s__lastTournamentId__" + toString(gI)), gH(gI)])
1368+ let gK = valueOrElse(getInteger(ek, cW), 0)
1369+ $Tuple2(nil, [("%s%s__lastTournamentId__" + toString(gK)), gJ(gK)])
13241370 }
13251371
13261372
13271373
1328-@Callable(ha)
1374+@Callable(hc)
13291375 func tournamentDuckStatsREADONLY (cY,bv) = {
1330- let hB = valueOrElse(getBoolean(ei, db(cY, bv)), false)
1331- let hC = valueOrElse(getInteger(ei, dd(cY, bv)), -1)
1332- let hD = valueOrElse(getInteger(ei, de(cY, bv)), 0)
1333- let hE = valueOrElse(getString(ei, df(cY, bv)), "")
1334- let hF = valueOrElse(getBoolean(ei, dc(cY, bv)), false)
1335- $Tuple2(nil, [("%s%s__tournamentDuckStats__" + makeString([toString(hB), toString(hC), toString(hD), hE, toString(hF)], "_"))])
1376+ let hH = valueOrElse(getBoolean(ek, db(cY, bv)), false)
1377+ let hI = valueOrElse(getInteger(ek, dd(cY, bv)), -1)
1378+ let hJ = valueOrElse(getInteger(ek, de(cY, bv)), 0)
1379+ let hK = valueOrElse(getString(ek, df(cY, bv)), "")
1380+ let hL = valueOrElse(getBoolean(ek, dc(cY, bv)), false)
1381+ $Tuple2(nil, [("%s%s__tournamentDuckStats__" + makeString([toString(hH), toString(hI), toString(hJ), hK, toString(hL)], "_"))])
13361382 }
13371383
13381384
13391385
1340-@Callable(ha)
1386+@Callable(hc)
13411387 func duckStatsCalculatorREADONLY (bv) = {
13421388 let cd = split(valueOrElse(getString(N, bw(bv)), "0_0_0_0_0"), "_")
13431389 let ce = split(valueOrElse(getString(N, bE(bv)), "0_0_0_0_0"), "_")
1344- let gm = split(valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;"), "_")
1345- let cf = gD(split(gm[bq], ";")[1])
1346- let cl = gD(split(gm[br], ";")[0])
1347- let hG = cc(cd, ce, cf)
1348- let hH = ck(cd, ce, cl)
1349- $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hG)), ("%s%d__damageAbsorption__" + toString(hH))])
1390+ let go = split(valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;"), "_")
1391+ let cf = gF(split(go[bq], ";")[1])
1392+ let cl = gF(split(go[br], ";")[0])
1393+ let hM = cc(cd, ce, cf)
1394+ let hN = ck(cd, ce, cl)
1395+ $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hM)), ("%s%d__damageAbsorption__" + toString(hN))])
13501396 }
13511397
13521398
13531399
1354-@Callable(ha)
1400+@Callable(hc)
13551401 func customDuckStatsCalculatorREADONLY (cd,ce,cf,cl) = {
1356- let hG = cc(cd, ce, cf)
1357- let hH = ck(cd, ce, cl)
1358- $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hG)), ("%s%d__damageAbsorption__" + toString(hH))])
1402+ let hM = cc(cd, ce, cf)
1403+ let hN = ck(cd, ce, cl)
1404+ $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hM)), ("%s%d__damageAbsorption__" + toString(hN))])
13591405 }
13601406
13611407
13621408
1363-@Callable(ha)
1409+@Callable(hc)
13641410 func acresStatsREADONLY (aj) = {
1365- let hI = fe(invoke(O, "claimAcresREADONLY", [aj], nil))
1366- let hJ = fc(hI[0])
1367- let hK = fc(hI[1])
1368- $Tuple2(nil, [("%s%d__acresIssuedTotal__" + toString(valueOrElse(getInteger(O, ep), 0))), ("%s%d__acresUnsold__" + toString(assetBalance(O, er))), ("%s%d__acresStakedTotal__" + toString(valueOrElse(getInteger(O, C), 0))), ("%s%d__acresStakedByUser__" + toString(valueOrElse(getInteger(O, z(aj)), 0))), ("%s%d__acresClaimableByUser__" + toString(hJ)), ("%s%d__acresLastClaimTimeByUser__" + toString(hK)), ("%s%d__acresLockedByUser__" + toString(valueOrElse(getInteger(O, A(aj)), 0))), ("%s%d__acresLockedEtaByUser__" + toString(valueOrElse(getInteger(O, B(aj)), 0)))])
1411+ let hO = fg(invoke(O, "claimAcresREADONLY", [aj], nil))
1412+ let hP = fe(hO[0])
1413+ let hQ = fe(hO[1])
1414+ $Tuple2(nil, [("%s%d__acresIssuedTotal__" + toString(valueOrElse(getInteger(O, er), 0))), ("%s%d__acresUnsold__" + toString(assetBalance(O, et))), ("%s%d__acresStakedTotal__" + toString(valueOrElse(getInteger(O, C), 0))), ("%s%d__acresStakedByUser__" + toString(valueOrElse(getInteger(O, z(aj)), 0))), ("%s%d__acresClaimableByUser__" + toString(hP)), ("%s%d__acresLastClaimTimeByUser__" + toString(hQ)), ("%s%d__acresLockedByUser__" + toString(valueOrElse(getInteger(O, A(aj)), 0))), ("%s%d__acresLockedEtaByUser__" + toString(valueOrElse(getInteger(O, B(aj)), 0)))])
13691415 }
13701416
13711417
13721418
1373-@Callable(ha)
1374-func testV4 () = $Tuple2(nil, gT(nil))
1419+@Callable(hc)
1420+func testV4 () = $Tuple2(nil, gV(nil))
13751421
13761422
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000000
55
66 let b = 100000000
77
88 let c = 100000000000000
99
1010 let d = 100000
1111
1212 let e = 200000
1313
1414 let f = 100000
1515
1616 let g = 400000
1717
1818 let h = 31557600000
1919
2020 let i = 86400000
2121
2222 let j = "marketingAddr"
2323
2424 let k = "teamAddr"
2525
2626 let l = "lastClaimedTime_marketing"
2727
2828 let m = "marketingAmountLeft"
2929
3030 let n = "lastClaimedTime_team"
3131
3232 let o = "teamAmountLeft"
3333
3434 let p = "lastClaimedTime_activities"
3535
3636 let q = "activitiesAmountLeft"
3737
3838 let r = "stakersAmountLeft"
3939
4040 func s (t) = ("lastClaimedTimeUser_" + t)
4141
4242
4343 func u (v) = fraction(c, (g * (v + 1)), (6 * a))
4444
4545
4646 let w = "wlg_issueTime"
4747
4848 let x = "wlg_issuedAmount"
4949
5050 let y = "zbill_issuedAmount"
5151
5252 func z (t) = ("acresStakedAmountByUser_" + t)
5353
5454
5555 func A (t) = ("acresLockedAmountByUser_" + t)
5656
5757
5858 func B (t) = ("acresLockedEtaByUser_" + t)
5959
6060
6161 let C = "acresStakedAmountTotal"
6262
6363 func D (t) = ("wlgStakedAmountByUser_" + t)
6464
6565
6666 let E = 0
6767
6868 let F = 1
6969
7070 let G = 2
7171
7272 let H = 3
7373
7474 let I = 4
7575
7676 let J = 5
7777
7878 let K = 6
7979
8080 func L (M,N,O) = {
8181 let P = split(valueOrElse(getString(N, "resTypesProportions"), "0_0_0_0_0_0"), "_")
8282 func Q (R,S) = (R + parseIntValue(S))
8383
8484 let T = {
8585 let U = P
8686 let V = size(U)
8787 let W = 0
8888 func X (Y,Z) = if ((Z >= V))
8989 then Y
9090 else Q(Y, U[Z])
9191
9292 func aa (Y,Z) = if ((Z >= V))
9393 then Y
9494 else throw("List size exceeds 6")
9595
9696 aa(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6)
9797 }
9898 let ab = valueOrElse(getInteger(N, ("stakedPiecesByOwner_" + M)), 0)
9999 let ac = valueOrElse(getInteger(O, C), 0)
100100 let ad = valueOrElse(getInteger(O, z(M)), 0)
101101 [T, ab, ac, ad]
102102 }
103103
104104
105105 let ae = 0
106106
107107 let af = 1
108108
109109 let ag = 2
110110
111111 let ah = 3
112112
113113 func ai (aj,ak,al,am,an) = {
114114 let ao = valueOrErrorMessage(getInteger(ak[H], x), "WLGOLD is not issued yet")
115115 let ap = assetBalance(ak[G], al)
116116 let aq = assetBalance(ak[E], al)
117117 let ar = (assetBalance(ak[H], al) - am)
118118 let as = assetBalance(ak[I], al)
119119 let at = ak[J]
120120 let au = (assetBalance(at, al) + valueOrElse(getInteger(at, y), 0))
121121 let av = ((ap + ar) + au)
122122 let aw = valueOrErrorMessage(getBinary(ak[H], "wlg_assetId"), "Not initialized yet")
123123 let ax = lastBlock.timestamp
124124 let ay = valueOrErrorMessage(getInteger(ak[H], w), "Not initialized")
125125 let az = fraction(c, d, a)
126126 let aA = valueOrElse(getInteger(ak[H], m), az)
127127 let aB = valueOrElse(getInteger(ak[H], l), ay)
128128 let aC = addressFromStringValue(value(getString(ak[H], j)))
129129 let aD = min([fraction(az, (ax - aB), h), aA])
130130 let aE = assetBalance(aC, aw)
131131 let aF = fraction(c, e, a)
132132 let aG = valueOrElse(getInteger(ak[H], o), aF)
133133 let aH = valueOrElse(getInteger(ak[H], n), ay)
134134 let aI = addressFromStringValue(value(getString(ak[H], k)))
135135 let aJ = min([fraction(aF, (ax - aH), (3 * h)), aG])
136136 let aK = assetBalance(aI, aw)
137137 let aL = fraction(c, f, a)
138138 let aM = valueOrElse(getInteger(ak[H], q), aL)
139139 let aN = valueOrElse(getInteger(ak[H], p), ay)
140140 let aO = min([fraction(aL, (ax - aN), (3 * h)), aM])
141141 let aP = assetBalance(ak[E], aw)
142142 let aQ = valueOrElse(getInteger(ak[H], s(aj)), ay)
143143 let aR = ((aQ - ay) / h)
144144 let aS = min([ax, (ay + (3 * h))])
145145 let aT = min([((ax - ay) / h), 2])
146146 let aU = L(aj, ak[F], ak[K])
147147 let aV = u(aT)
148148 let aW = if ((aR == aT))
149149 then {
150150 let aX = fraction(aV, (aS - aQ), h)
151151 let aY = fraction(aX, an, a)
152152 let aZ = (aQ + fraction((aS - aQ), an, a))
153153 $Tuple3(aY, aX, aZ)
154154 }
155155 else if ((aR == (aT - 1)))
156156 then {
157157 let ba = fraction(u((aT - 1)), ((ay + (h * aT)) - aQ), h)
158158 let aX = fraction(aV, (aS - (ay + (h * aT))), h)
159159 let bb = (ba + aX)
160160 let aY = fraction(bb, an, a)
161161 let aZ = if ((ba >= aY))
162162 then (aQ + fraction(h, aY, u((aT - 1))))
163163 else ((ay + (h * aT)) + fraction(h, (aY - ba), aV))
164164 $Tuple3(aY, bb, aZ)
165165 }
166166 else {
167167 let bc = fraction(u((aT - 2)), ((ay + (h * (aT - 1))) - aQ), h)
168168 let ba = u((aT - 1))
169169 let aX = fraction(aV, (aS - (ay + (h * aT))), h)
170170 let bb = ((bc + ba) + aX)
171171 let aY = fraction(bb, an, a)
172172 let aZ = if ((bc >= aY))
173173 then (aQ + fraction(h, aY, u((aT - 2))))
174174 else if (((bc + ba) >= aY))
175175 then ((ay + (h * (aT - 1))) + fraction(h, (aY - bc), u((aT - 1))))
176176 else ((ay + (h * aT)) + fraction(h, ((aY - bc) - ba), aV))
177177 $Tuple3(aY, bb, aZ)
178178 }
179179 let bd = aW._1
180180 let be = aW._2
181181 let bf = aW._3
182182 let bg = fraction(fraction(aV, i, h), 25, aU[ae])
183183 let bh = valueOrElse(getInteger(ak[H], r), 0)
184184 let bi = fraction(bd, ((aU[af] * b) + aU[ah]), ((aU[ae] * b) + aU[ag]))
185185 let bj = fraction(be, ((aU[af] * b) + aU[ah]), ((aU[ae] * b) + aU[ag]))
186186 [ao, fraction(av, b, ao), av, ap, aq, ar, as, ay, aB, az, aA, aD, aE, aF, aG, aJ, aK, aL, aM, aO, aP, aT, bh, aV, aQ, bi, bg, au, bj, bf]
187187 }
188188
189189
190190 let bk = 100000000
191191
192192 let bl = 100000000
193193
194194 let bm = 400
195195
196196 let bn = 2
197197
198198 let bo = 3
199199
200200 let bp = 4
201201
202202 let bq = 1
203203
204204 let br = 2
205205
206206 let bs = ["free", "locked", "afterLockCooldown", "robbedCooldown", "defendedCooldown"]
207207
208208 let bt = ["free", "preparingRob"]
209209
210210 func bu (bv) = ("duckHealth_" + bv)
211211
212212
213213 func bw (bv) = ("duckChars_" + bv)
214214
215215
216216 func bx (bv) = ("duckXP_" + bv)
217217
218218
219219 func by (bv) = ("duckLevel_" + bv)
220220
221221
222222 func bz (bv) = ("duckFreePoints_" + bv)
223223
224224
225225 func bA (bv) = ("duckEquipment_" + bv)
226226
227227
228228 func bB (t) = ("userXP_" + t)
229229
230230
231231 func bC (t) = ("userLevel_" + t)
232232
233233
234234 func bD (t) = ("userFreePoints_" + t)
235235
236236
237237 func bE (bv) = ("duckBuffs_" + bv)
238238
239239
240240 func bF (bv) = ("lastRobberyTime_" + bv)
241241
242242
243243 func bG (bv) = ("lastRobberyCost_" + bv)
244244
245245
246246 func bH (bI) = ("landRobberyState_" + bI)
247247
248248
249249 func bJ (bI) = ("landCooldownETA_" + bI)
250250
251251
252252 func bK (bv) = ("duckRobberyState_" + bv)
253253
254254
255255 func bL (bv) = ("lockedLandByDuck_" + bv)
256256
257257
258258 func bM (bv) = ("deliveryDelayByDuck_" + bv)
259259
260260
261261 func bN (t) = ("userDeliveryCount_" + t)
262262
263263
264264 func bO (t) = ("userLastDeliveryDay_" + t)
265265
266266
267267 func bP (bQ) = (100 + bQ)
268268
269269
270270 func bR (N,bv) = {
271271 let bS = valueOrElse(getInteger(N, bG(bv)), 0)
272272 let bT = valueOrElse(getInteger(N, bF(bv)), 0)
273273 let ax = lastBlock.timestamp
274274 let bU = max([bl, (bS - (bm * (ax - bT)))])
275275 let bV = valueOrElse(getInteger(N, bK(bv)), 0)
276276 let bW = valueOrElse(getString(N, bL(bv)), "")
277277 let bX = valueOrElse(getInteger(N, bJ(bW)), 0)
278278 $Tuple5(bU, bT, bV, bW, bX)
279279 }
280280
281281
282282 func bY (bZ) = {
283283 let ca = (2 * bZ)
284284 let cb = pow(271828183, 8, ca, 8, 8, HALFUP)
285285 fraction((cb - bk), bk, (cb + bk), HALFUP)
286286 }
287287
288288
289289 func cc (cd,ce,cf) = {
290290 let cg = (parseIntValue(cd[bn]) + parseIntValue(ce[bn]))
291291 let ch = (parseIntValue(cd[bp]) + parseIntValue(ce[bp]))
292292 let ci = (bY(fraction(ch, bk, 200)) / 4)
293293 let cj = fraction(cf, (bk + fraction(7000000, cg, (1 + cg), HALFUP)), 100, HALFUP)
294294 (ci + cj)
295295 }
296296
297297
298298 func ck (cd,ce,cl) = {
299299 let cg = (parseIntValue(cd[bn]) + parseIntValue(ce[bn]))
300300 let cm = (parseIntValue(cd[bo]) + parseIntValue(ce[bo]))
301301 let ch = (parseIntValue(cd[bp]) + parseIntValue(ce[bp]))
302302 let ci = (cl * (bk + fraction(14000000, cg, (1 + cg), HALFUP)))
303303 let cj = (sqrt(ch, 0, 8, HALFUP) / 10)
304304 let cn = ((bk / 5) * cm)
305305 ((ci + cj) + cn)
306306 }
307307
308308
309309 let co = "PRESALE"
310310
311311 let cp = "ONBOARD"
312312
313313 let cq = 6
314314
315315 let cr = 3456000
316316
317317 let cs = 10000000000
318318
319319 let ct = 39637
320320
321321 let cu = 10
322322
323323 let cv = 4
324324
325325 let cw = 10
326326
327327 let cx = 10000000
328328
329329 let cy = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_011", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_011", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_011", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_10_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_20_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_30_0,0,0,0,0,0,0_201", "4_13_22_4_35_22_23_0_50,1,0_0,0,0,0,0,0,0_", "4_13_22_4_35_22_46_0_50,1,1_0,2,5,0,0,0,0_", "4_13_22_4_35_22_69_0_50,2,1_0,5,10,0,0,0,0_", "5_25_40_5_10_15_20_1_30,1,1_0,0,0,0,0,0,0_", "5_25_40_5_10_15_40_1_30,1,2_2,1,3,0,0,0,0_", "5_25_40_5_10_15_60_1_30,1,3_5,2,8,0,0,0,0_", "23_23_5_20_23_6_35_2_0_0,0,0,0,0,0,0_", "23_23_5_20_23_6_70_2_0_0,0,0,0,0,0,0_", "23_23_5_20_23_6_105_2_0_0,0,0,0,0,0,0_"]
330330
331331 let cz = 6
332332
333333 let cA = 8
334334
335335 let cB = 10
336336
337337 func cC (cD) = ("no_" + cD)
338338
339339
340340 func cE (cD) = ("lcna_" + cD)
341341
342342
343343 func cF (cD) = ("st_" + cD)
344344
345345
346346 func cG (cH,cD) = makeString(["las", cH, cD], "_")
347347
348348
349349 func cI (bI) = ("wh_" + bI)
350350
351351
352352 func cJ (cD) = ("infraLevel_" + cD)
353353
354354
355355 func cK (bI) = ("fortifications_" + bI)
356356
357357
358358 func cL (cD) = ("duckCustomNameByAssetId_" + cD)
359359
360360
361361 func cM (t) = ("accountCustomNameByAddr_" + t)
362362
363363
364364 func cN (t) = ("accRefBy_" + t)
365365
366366
367367 func cO (t) = ("onboardArtActivatedDuckBy_" + t)
368368
369369
370370 func cP (t) = ("accReferrals_" + t)
371371
372372
373373 func cQ (cD) = ("duckOwner_" + cD)
374374
375375
376376 func cR (cS) = ("stakedDuckByOwner_" + cS)
377377
378378
379379 func cT (bv) = ("duckLocation_" + bv)
380380
381381
382382 func cU (bI) = ("landOrder_" + bI)
383383
384384
385385 func cV () = "emergencyWarehouseProducts"
386386
387387
388388 let cW = "%s__lastTourId"
389389
390390 func cX (cY) = ("%s%d__tourStaticData__" + toString(cY))
391391
392392
393393 func cZ (cY) = ("%s%d__tourDynamicData__" + toString(cY))
394394
395395
396396 func da (cY) = ("%s%d__scoreBoard__" + toString(cY))
397397
398398
399399 func db (cY,bv) = makeString(["%s%d%s__isRegisteredByTourAndDuck", toString(cY), bv], "__")
400400
401401
402402 func dc (cY,bv) = makeString(["%s%d%s__isAwardedByTourAndDuck", toString(cY), bv], "__")
403403
404404
405405 func dd (cY,bv) = makeString(["%s%d%s__lastAttemptByTourAndDuck", toString(cY), bv], "__")
406406
407407
408408 func de (cY,bv) = makeString(["%s%d%s__bestResultByTourAndDuck", toString(cY), bv], "__")
409409
410410
411411 func df (cY,bv) = makeString(["%s%d%s__bestTxByTourAndDuck", toString(cY), bv], "__")
412412
413413
414414 let dg = 0
415415
416416 let dh = 1
417417
418418 let di = 2
419419
420420 let dj = 3
421421
422422 let dk = 5
423423
424424 let dl = 6
425425
426426 let dm = 7
427427
428428 let dn = 8
429429
430430 let do = 9
431431
432432 let dp = 1
433433
434434 let dq = 2
435435
436436 let dr = 3
437437
438438 let ds = 4
439439
440440 let dt = 5
441441
442442 func du (dv,cY) = {
443443 let dw = split(valueOrErrorMessage(getString(dv, cX(cY)), (("Error reading tournament " + toString(cY)) + " data")), "__")
444444 let dx = split_4C(valueOrErrorMessage(getString(dv, cZ(cY)), (("Error reading tournament " + toString(cY)) + " data")), "__")
445445 [dw, dx]
446446 }
447447
448448
449449 func dy (dz) = (parseIntValue(dz[cz]) * cx)
450450
451451
452-let dA = take(drop(this.bytes, 1), 1)
452+let dA = false
453453
454-let dB = {
455- let dC = dA
456- if ((base58'2W' == dC))
454+let dB = take(drop(this.bytes, 1), 1)
455+
456+let dC = {
457+ let dD = dB
458+ if ((base58'2W' == dD))
459+ then if (dA)
460+ then base58'CWsMtTZC5BjjoL4Q1ayW4Wwb1ehGACQB6DrKyPgotKfm'
461+ else base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
462+ else if ((base58'2T' == dD))
463+ then base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
464+ else throw("Unknown chain")
465+ }
466+
467+let dE = {
468+ let dD = dB
469+ if ((base58'2W' == dD))
457470 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
458- else if ((base58'2T' == dC))
471+ else if ((base58'2T' == dD))
459472 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
460473 else throw("Unknown chain")
461474 }
462475
463-let dD = {
464- let dC = dA
465- if ((base58'2W' == dC))
476+let dF = {
477+ let dD = dB
478+ if ((base58'2W' == dD))
466479 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
467- else if ((base58'2T' == dC))
480+ else if ((base58'2T' == dD))
468481 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
469482 else throw("Unknown chain")
470483 }
471484
472-let dE = {
473- let dC = dA
474- if ((base58'2W' == dC))
485+let dG = {
486+ let dD = dB
487+ if ((base58'2W' == dD))
475488 then 10000000000
476- else if ((base58'2T' == dC))
489+ else if ((base58'2T' == dD))
477490 then 100000000
478491 else throw("Unknown chain")
479492 }
480493
481-let dF = "__"
494+let dH = "__"
482495
483-let dG = 1000000
496+let dI = 1000000
484497
485-let dH = 100000000
498+let dJ = 100000000
486499
487-let dI = 25
500+let dK = 25
488501
489-let dJ = 100
502+let dL = 100
490503
491-let dK = 225
504+let dM = 225
492505
493-let dL = 400
506+let dN = 400
494507
495-let dM = 625
508+let dO = 625
496509
497-func dN (dO,dP) = valueOrErrorMessage(getString(dO, dP), makeString(["mandatory ", toString(dO), ".", dP, " is not defined"], ""))
510+func dP (dQ,dR) = valueOrErrorMessage(getString(dQ, dR), makeString(["mandatory ", toString(dQ), ".", dR, " is not defined"], ""))
498511
499512
500-let dQ = 1
513+let dS = 1
501514
502-let dR = 2
515+let dT = 2
503516
504-let dS = 4
517+let dU = 4
505518
506-let dT = 5
519+let dV = 5
507520
508-let dU = 6
521+let dW = 6
509522
510-let dV = 7
523+let dX = 7
511524
512-let dW = 8
525+let dY = 8
513526
514-func dX () = "%s__restConfig"
527+func dZ () = "%s__restConfig"
515528
516529
517-func dY () = "%s__restAddr"
530+func ea () = "%s__restAddr"
518531
519532
520-func dZ (ea) = split_4C(dN(ea, dX()), dF)
533+func eb (ec) = split_4C(dP(ec, dZ()), dH)
521534
522535
523-func eb (ec,ed) = valueOrErrorMessage(addressFromString(ec[ed]), ("Rest cfg doesn't contain address at index " + toString(ed)))
536+func ed (ee,ef) = valueOrErrorMessage(addressFromString(ee[ef]), ("Rest cfg doesn't contain address at index " + toString(ef)))
524537
525538
526-let ee = addressFromStringValue(valueOrElse(getString(this, dY()), dD))
539+let eg = addressFromStringValue(valueOrElse(getString(this, ea()), dF))
527540
528-let ec = dZ(ee)
541+let ee = eb(eg)
529542
530-let N = eb(ec, dQ)
543+let N = ed(ee, dS)
531544
532-let ef = eb(ec, dR)
545+let eh = ed(ee, dT)
533546
534-let eg = eb(ec, dS)
547+let ei = ed(ee, dU)
535548
536-let eh = eb(ec, dT)
549+let ej = ed(ee, dV)
537550
538-let at = eb(ec, dU)
551+let at = ed(ee, dW)
539552
540-let ei = eb(ec, dV)
553+let ek = ed(ee, dX)
541554
542-let O = eb(ec, dW)
555+let O = ed(ee, dY)
543556
544-let ej = 0
557+let el = 0
545558
546-let ek = 1
559+let em = 1
547560
548-let el = 2
561+let en = 2
549562
550-let em = 3
563+let eo = 3
551564
552-let en = "wlg_assetId"
565+let ep = "wlg_assetId"
553566
554-let eo = valueOrErrorMessage(getBinary(eg, en), "WLGOLD is not issued yet")
567+let eq = valueOrErrorMessage(getBinary(ei, ep), "WLGOLD is not issued yet")
555568
556-let ep = "acresIssuedAmount"
569+let er = "acresIssuedAmount"
557570
558-let eq = "acresAssetId"
571+let es = "acresAssetId"
559572
560-let er = valueOrErrorMessage(getBinary(O, eq), "ACRES is not issued yet")
573+let et = valueOrErrorMessage(getBinary(O, es), "ACRES is not issued yet")
561574
562-let es = 0
575+let eu = 0
563576
564-let et = 1
577+let ev = 1
565578
566-let eu = 2
579+let ew = 2
567580
568-let ev = 3
581+let ex = 3
569582
570-let ew = 4
583+let ey = 4
571584
572-let ex = 5
585+let ez = 5
573586
574-let ey = 6
587+let eA = 6
575588
576-let ez = 7
589+let eB = 7
577590
578-let eA = 8
591+let eC = 8
579592
580-let eB = 9
593+let eD = 9
581594
582-let eC = 10
595+let eE = 10
583596
584-let eD = 11
597+let eF = 11
585598
586-let eE = 12
599+let eG = 12
587600
588-let eF = 13
601+let eH = 13
589602
590-let eG = 14
603+let eI = 14
591604
592-let eH = 15
605+let eJ = 15
593606
594-let eI = 16
607+let eK = 16
595608
596-let eJ = 17
609+let eL = 17
597610
598-let eK = 18
611+let eM = 18
599612
600-let eL = 19
613+let eN = 19
601614
602-let eM = 20
615+let eO = 20
603616
604-let eN = 21
617+let eP = 21
605618
606-let eO = 22
619+let eQ = 22
607620
608-let eP = 23
621+let eR = 23
609622
610-let eQ = 24
623+let eS = 24
611624
612-let eR = 25
625+let eT = 25
613626
614-let eS = 26
627+let eU = 26
615628
616-let eT = 27
629+let eV = 27
617630
618-let eU = 28
631+let eW = 28
619632
620-let eV = 29
633+let eX = 29
621634
622-let eW = 1
635+let eY = 1
623636
624-func eX () = "resTypesProportions"
637+func eZ () = "resTypesProportions"
625638
626639
627-func eY (cS) = ("stakedLandsByOwner_" + cS)
640+func fa (cS) = ("stakedLandsByOwner_" + cS)
628641
629642
630-func eZ (cS) = ("stakedPiecesByOwner_" + cS)
643+func fb (cS) = ("stakedPiecesByOwner_" + cS)
631644
632645
633-func fa (bZ) = {
634- let dC = bZ
635- if ($isInstanceOf(dC, "String"))
646+func fc (bZ) = {
647+ let dD = bZ
648+ if ($isInstanceOf(dD, "String"))
636649 then {
637- let fb = dC
638- fb
650+ let fd = dD
651+ fd
639652 }
640653 else throw("fail to cast into String")
641654 }
642655
643656
644-func fc (bZ) = {
645- let dC = bZ
646- if ($isInstanceOf(dC, "Int"))
657+func fe (bZ) = {
658+ let dD = bZ
659+ if ($isInstanceOf(dD, "Int"))
647660 then {
648- let fd = dC
649- fd
661+ let ff = dD
662+ ff
650663 }
651664 else throw("fail to cast into Int")
652665 }
653666
654667
655-func fe (bZ) = {
656- let dC = bZ
657- if ($isInstanceOf(dC, "List[Any]"))
668+func fg (bZ) = {
669+ let dD = bZ
670+ if ($isInstanceOf(dD, "List[Any]"))
658671 then {
659- let ff = dC
660- ff
672+ let fh = dD
673+ fh
661674 }
662675 else throw("fail to cast into List[Any]")
663676 }
664677
665678
666-func fg (fh) = {
667- let dC = fh
668- if (("S" == dC))
669- then dI
670- else if (("M" == dC))
671- then dJ
672- else if (("L" == dC))
673- then dK
674- else if (("XL" == dC))
675- then dL
676- else if (("XXL" == dC))
677- then dM
679+func fi (fj) = {
680+ let dD = fj
681+ if (("S" == dD))
682+ then dK
683+ else if (("M" == dD))
684+ then dL
685+ else if (("L" == dD))
686+ then dM
687+ else if (("XL" == dD))
688+ then dN
689+ else if (("XXL" == dD))
690+ then dO
678691 else throw("Unknown land size")
679692 }
680693
681694
682-func fi () = "contractsBlocked"
695+func fk () = "contractsBlocked"
683696
684697
685-func fj (t) = ("lastTxIdByUser_" + t)
698+func fl (t) = ("lastTxIdByUser_" + t)
686699
687700
688-func fk (M) = {
689- let P = split(valueOrElse(getString(N, eX()), "0_0_0_0_0_0"), "_")
701+func fm (M) = {
702+ let P = split(valueOrElse(getString(N, eZ()), "0_0_0_0_0_0"), "_")
690703 func Q (R,S) = (R + parseIntValue(S))
691704
692- let fl = {
705+ let fn = {
693706 let U = P
694707 let V = size(U)
695708 let W = 0
696709 func X (Y,Z) = if ((Z >= V))
697710 then Y
698711 else Q(Y, U[Z])
699712
700713 func aa (Y,Z) = if ((Z >= V))
701714 then Y
702715 else throw("List size exceeds 6")
703716
704717 aa(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6)
705718 }
706- let fm = valueOrElse(getInteger(N, eZ(M)), 0)
707-[fl, fm]
719+ let fo = valueOrElse(getInteger(N, fb(M)), 0)
720+[fn, fo]
708721 }
709722
710723
711-let fn = 500000
724+let fp = 500000
712725
713-func fo (fp) = {
714- let dC = fp
715- if ($isInstanceOf(dC, "List[Any]"))
726+func fq (fr) = {
727+ let dD = fr
728+ if ($isInstanceOf(dD, "List[Any]"))
716729 then {
717- let fq = dC
718- if ((size(fq) != cq))
719- then throw(("Array size is " + toString(size(fq))))
730+ let fs = dD
731+ if ((size(fs) != cq))
732+ then throw(("Array size is " + toString(size(fs))))
720733 else {
721- func fr (R,S) = {
722- let fs = S
723- if ($isInstanceOf(fs, "Int"))
734+ func ft (R,S) = {
735+ let fu = S
736+ if ($isInstanceOf(fu, "Int"))
724737 then {
725- let ft = fs
726- (R :+ toString(ft))
738+ let fv = fu
739+ (R :+ toString(fv))
727740 }
728741 else throw("List type is not Int")
729742 }
730743
731- let fu = {
732- let U = fq
744+ let fw = {
745+ let U = fs
733746 let V = size(U)
734747 let W = nil
735748 func X (Y,Z) = if ((Z >= V))
736749 then Y
737- else fr(Y, U[Z])
750+ else ft(Y, U[Z])
738751
739752 func aa (Y,Z) = if ((Z >= V))
740753 then Y
741754 else throw("List size exceeds 6")
742755
743756 aa(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6)
744757 }
745- makeString(fu, "_")
758+ makeString(fw, "_")
746759 }
747760 }
748761 else throw("fail to cast into List")
749762 }
750763
751764
752-func fv (fp) = {
753- let dC = fp
754- if ($isInstanceOf(dC, "(List[Any], List[Any])"))
765+func fx (fr) = {
766+ let dD = fr
767+ if ($isInstanceOf(dD, "(List[Any], List[Any])"))
755768 then {
756- let fw = dC
757- $Tuple2(fo(fw._1), fo(fw._2))
769+ let fy = dD
770+ $Tuple2(fq(fy._1), fq(fy._2))
758771 }
759772 else throw("fail to cast into (List, List)")
760773 }
761774
762775
763-func fx (fp) = {
764- let dC = fp
765- if ($isInstanceOf(dC, "(Boolean, String)"))
776+func fz (fr) = {
777+ let dD = fr
778+ if ($isInstanceOf(dD, "(Boolean, String)"))
766779 then {
767- let fw = dC
768- fw
780+ let fy = dD
781+ fy
769782 }
770783 else throw("fail to cast into (Boolean, String)")
771784 }
772785
773786
774-func fy (fz) = {
775- let t = addressFromString(fz)
776- let fA = if (isDefined(t))
787+func fA (fB) = {
788+ let t = addressFromString(fB)
789+ let fC = if (isDefined(t))
777790 then wavesBalance(value(t))
778791 else BalanceDetails(0, 0, 0, 0)
779- let fB = if (isDefined(t))
780- then assetBalance(value(t), dB)
792+ let fD = if (isDefined(t))
793+ then assetBalance(value(t), dE)
781794 else 0
782- let fC = if (isDefined(t))
783- then assetBalance(value(t), eo)
795+ let fE = if (isDefined(t))
796+ then assetBalance(value(t), eq)
784797 else 0
785- let fD = valueOrElse(getString(N, cM(fz)), fz)
786- let fE = cN(fz)
787- let fF = getString(N, fE)
788- let fG = valueOrElse(getString(N, cP(fz)), "")
789- let fH = valueOrElse(getString(N, fj(fz)), "")
790- let fI = fk(fz)[eW]
791- let fJ = valueOrElse(getInteger(N, bB(fz)), 0)
792- let fK = valueOrElse(getInteger(N, bC(fz)), 0)
793- let fL = valueOrElse(getInteger(N, bD(fz)), 0)
794- let fM = {
795- let fN = invoke(eg, "checkWlgXpREADONLY", [fz], nil)
796- if ($isInstanceOf(fN, "List[Any]"))
797- then fN
798- else throw(($getType(fN) + " couldn't be cast to List[Any]"))
798+ let fF = valueOrElse(getString(N, cM(fB)), fB)
799+ let fG = cN(fB)
800+ let fH = getString(N, fG)
801+ let fI = valueOrElse(getString(N, cP(fB)), "")
802+ let fJ = valueOrElse(getString(N, fl(fB)), "")
803+ let fK = fm(fB)[eY]
804+ let fL = valueOrElse(getInteger(N, bB(fB)), 0)
805+ let fM = valueOrElse(getInteger(N, bC(fB)), 0)
806+ let fN = valueOrElse(getInteger(N, bD(fB)), 0)
807+ let fO = {
808+ let fP = invoke(ei, "checkWlgXpREADONLY", [fB], nil)
809+ if ($isInstanceOf(fP, "List[Any]"))
810+ then fP
811+ else throw(($getType(fP) + " couldn't be cast to List[Any]"))
799812 }
800- let fO = valueOrElse(getInteger(eg, D(fz)), 0)
801- let fP = if (isDefined(fF))
813+ let fQ = valueOrElse(getInteger(ei, D(fB)), 0)
814+ let fR = if (isDefined(fH))
802815 then (cp + (if (if (isDefined(t))
803- then isDefined(getString(N, cO(fz)))
816+ then isDefined(getString(N, cO(fB)))
804817 else false)
805818 then ":1"
806819 else ":0"))
807820 else ""
808- let fQ = if (isDefined(t))
809- then assetBalance(value(t), er)
821+ let fS = if (isDefined(t))
822+ then assetBalance(value(t), et)
810823 else 0
811- let fR = valueOrElse(getInteger(O, z(fz)), 0)
812- let fS = valueOrElse(getInteger(N, bN(fz)), 0)
813- let fT = valueOrElse(getInteger(N, bO(fz)), 0)
814-[("%s%s__customName__" + fD), ("%s%s__referredBy__" + valueOrElse(fF, "")), ("%s%s__referrals__" + fG), ("%s%s__lastTxId__" + fH), ("%s%d__wavesBalance__" + toString(fA.available)), ("%s%d__wlgoldBalance__" + toString(fC)), ("%s%d__usdtBalance__" + toString(fB)), ("%s%d__stakedPieces__" + toString(fI)), ("%s%d__acresBalance__" + toString(fQ)), ("%s%d__stakedAcres__" + toString(fR)), ("%s%d__currentXp__" + toString(fJ)), ("%s%d__currentLvl__" + toString(fK)), ("%s%d__pointsToDistribute__" + toString(fL)), ("%s%s__walletArtefacts__" + fP), ("%s%d__stakedWlgold__" + toString(fO)), ("%s%d__virtLevel__" + toString({
815- let fN = fM[0]
816- if ($isInstanceOf(fN, "Int"))
817- then fN
818- else throw(($getType(fN) + " couldn't be cast to Int"))
824+ let fT = valueOrElse(getInteger(O, z(fB)), 0)
825+ let fU = valueOrElse(getInteger(N, bN(fB)), 0)
826+ let fV = valueOrElse(getInteger(N, bO(fB)), 0)
827+[("%s%s__customName__" + fF), ("%s%s__referredBy__" + valueOrElse(fH, "")), ("%s%s__referrals__" + fI), ("%s%s__lastTxId__" + fJ), ("%s%d__wavesBalance__" + toString(fC.available)), ("%s%d__wlgoldBalance__" + toString(fE)), ("%s%d__usdtBalance__" + toString(fD)), ("%s%d__stakedPieces__" + toString(fK)), ("%s%d__acresBalance__" + toString(fS)), ("%s%d__stakedAcres__" + toString(fT)), ("%s%d__currentXp__" + toString(fL)), ("%s%d__currentLvl__" + toString(fM)), ("%s%d__pointsToDistribute__" + toString(fN)), ("%s%s__walletArtefacts__" + fR), ("%s%d__stakedWlgold__" + toString(fQ)), ("%s%d__virtLevel__" + toString({
828+ let fP = fO[0]
829+ if ($isInstanceOf(fP, "Int"))
830+ then fP
831+ else throw(($getType(fP) + " couldn't be cast to Int"))
819832 })), ("%s%d__virtPoints__" + toString({
820- let fN = fM[1]
821- if ($isInstanceOf(fN, "Int"))
822- then fN
823- else throw(($getType(fN) + " couldn't be cast to Int"))
833+ let fP = fO[1]
834+ if ($isInstanceOf(fP, "Int"))
835+ then fP
836+ else throw(($getType(fP) + " couldn't be cast to Int"))
824837 })), ("%s%d__virtXP__" + toString({
825- let fN = fM[2]
826- if ($isInstanceOf(fN, "Int"))
827- then fN
828- else throw(($getType(fN) + " couldn't be cast to Int"))
829- })), ("%s%d__userDeliveryCount__" + toString(fS)), ("%s%d__userLastDeliveryDay__" + toString(fT)), ("%s%d__lockedAcres__" + toString(valueOrElse(getInteger(O, A(fz)), 0))), ("%s%d__ETALockedAcres__" + toString(valueOrElse(getInteger(O, B(fz)), 0)))]
838+ let fP = fO[2]
839+ if ($isInstanceOf(fP, "Int"))
840+ then fP
841+ else throw(($getType(fP) + " couldn't be cast to Int"))
842+ })), ("%s%d__userDeliveryCount__" + toString(fU)), ("%s%d__userLastDeliveryDay__" + toString(fV)), ("%s%d__lockedAcres__" + toString(valueOrElse(getInteger(O, A(fB)), 0))), ("%s%d__ETALockedAcres__" + toString(valueOrElse(getInteger(O, B(fB)), 0)))]
830843 }
831844
832845
833-func fU (bI,fI) = {
834- let fV = valueOrElse(getInteger(N, cJ(bI)), 0)
835- let fW = valueOrElse(getInteger(N, cG(co, bI)), 0)
836- let fX = (fV / 6)
837- let fY = (fV / 7)
838- $Tuple3(fV, fW, ((cr + fraction(cr, ((fV + fX) + (2 * fY)), 5)) + fraction(cr, fW, (fI * 5))))
846+func fW (bI,fK) = {
847+ let fX = valueOrElse(getInteger(N, cJ(bI)), 0)
848+ let fY = valueOrElse(getInteger(N, cG(co, bI)), 0)
849+ let fZ = (fX / 6)
850+ let ga = (fX / 7)
851+ $Tuple3(fX, fY, ((cr + fraction(cr, ((fX + fZ) + (2 * ga)), 5)) + fraction(cr, fY, (fK * 5))))
839852 }
840853
841854
842-func fZ (ga) = {
843- let gb = split(ga, "_")
844- ((cs * (parseIntValue(gb[1]) + 1)) * parseIntValue(gb[0]))
855+func gb (gc) = {
856+ let gd = split(gc, "_")
857+ ((cs * (parseIntValue(gd[1]) + 1)) * parseIntValue(gd[0]))
845858 }
846859
847860
848-func gc (gd,ge,fV) = {
849- let ga = ((toString(ge) + "_") + toString(fV))
850- let gf = toString(fZ(ga))
851- let gg = valueOrElse(getString(N, gd), ((((ga + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + gf) + "_") + gf))
852- split(gg, ":")
861+func ge (gf,gg,fX) = {
862+ let gc = ((toString(gg) + "_") + toString(fX))
863+ let gh = toString(gb(gc))
864+ let gi = valueOrElse(getString(N, gf), ((((gc + ":0_0_0_0_0_0:0_0_0_0_0_0::0_0_") + gh) + "_") + gh))
865+ split(gi, ":")
853866 }
854867
855868
856-func gh (bv) = {
857- let gi = bP(valueOrElse(getInteger(N, by(bv)), 0))
858- $Tuple5(valueOrElse(getInteger(N, cF(bv)), -1), value(assetInfo(fromBase58String(bv))).name, valueOrElse(getString(N, cT(bv)), ""), valueOrElse(getInteger(N, bu(bv)), gi), fa(invoke(N, "getBackpackREADONLY", [bv], nil)))
869+func gj (bv) = {
870+ let gk = bP(valueOrElse(getInteger(N, by(bv)), 0))
871+ $Tuple5(valueOrElse(getInteger(N, cF(bv)), -1), value(assetInfo(fromBase58String(bv))).name, valueOrElse(getString(N, cT(bv)), ""), valueOrElse(getInteger(N, bu(bv)), gk), fc(invoke(N, "getBackpackREADONLY", [bv], nil)))
859872 }
860873
861874
862-func gj (bv,gk,gl) = {
863- let fD = valueOrElse(getString(N, cL(bv)), gl._2)
875+func gl (bv,gm,gn) = {
876+ let fF = valueOrElse(getString(N, cL(bv)), gn._2)
864877 let cd = valueOrElse(getString(N, bw(bv)), "0_0_0_0_0")
865- let fJ = valueOrElse(getInteger(N, bx(bv)), 0)
866- let fK = valueOrElse(getInteger(N, by(bv)), 0)
867- let fL = valueOrElse(getInteger(N, bz(bv)), 0)
868- let gm = valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;")
878+ let fL = valueOrElse(getInteger(N, bx(bv)), 0)
879+ let fM = valueOrElse(getInteger(N, by(bv)), 0)
880+ let fN = valueOrElse(getInteger(N, bz(bv)), 0)
881+ let go = valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;")
869882 let ce = valueOrElse(getString(N, bE(bv)), "0_0_0_0_0")
870- let gn = bR(N, bv)
871- let bU = gn._1
872- let bT = gn._2
873- let bV = gn._3
874- let bW = gn._4
875- let bX = gn._5
876- let go = valueOrElse(getInteger(N, bM(bv)), 0)
877-[("%s%s__assetId__" + bv), ("%s%s__owner__" + gk), ("%s%s__customName__" + fD), ("%s%d__stakedTime__" + toString(gl._1)), ("%s%s__name__" + gl._2), ("%s%s__location__" + gl._3), ("%s%d__health__" + toString(gl._4)), ("%s%d__maxHealth__" + toString(bP(fK))), ("%s%s__characteristics__" + cd), ("%s%d__currentXp__" + toString(fJ)), ("%s%d__currentLvl__" + toString(fK)), ("%s%d__pointsToDistribute__" + toString(fL)), ("%s%s__backPack__" + gl._5), ("%s%s__equipment__" + gm), ("%s%s__buffs__" + ce), ("%s%d__robberyCost__" + toString(bU)), ("%s%d__robberyTime__" + toString(bT)), ("%s%s__robberyState__" + bt[bV]), ("%s%s__robberyLastLand__" + bW), ("%s%d__robberyLastLandReleaseTime__" + toString(bX)), ("%s%d__deliveryDelay__" + toString(go))]
883+ let gp = bR(N, bv)
884+ let bU = gp._1
885+ let bT = gp._2
886+ let bV = gp._3
887+ let bW = gp._4
888+ let bX = gp._5
889+ let gq = valueOrElse(getInteger(N, bM(bv)), 0)
890+[("%s%s__assetId__" + bv), ("%s%s__owner__" + gm), ("%s%s__customName__" + fF), ("%s%d__stakedTime__" + toString(gn._1)), ("%s%s__name__" + gn._2), ("%s%s__location__" + gn._3), ("%s%d__health__" + toString(gn._4)), ("%s%d__maxHealth__" + toString(bP(fM))), ("%s%s__characteristics__" + cd), ("%s%d__currentXp__" + toString(fL)), ("%s%d__currentLvl__" + toString(fM)), ("%s%d__pointsToDistribute__" + toString(fN)), ("%s%s__backPack__" + gn._5), ("%s%s__equipment__" + go), ("%s%s__buffs__" + ce), ("%s%d__robberyCost__" + toString(bU)), ("%s%d__robberyTime__" + toString(bT)), ("%s%s__robberyState__" + bt[bV]), ("%s%s__robberyLastLand__" + bW), ("%s%d__robberyLastLandReleaseTime__" + toString(bX)), ("%s%d__deliveryDelay__" + toString(gq))]
878891 }
879892
880893
881-func gp (bI,gk,gq) = if ((bI == ""))
894+func gr (bI,gm,gs) = if ((bI == ""))
882895 then throw("landAssetId is required")
883896 else {
884- let gr = value(assetInfo(fromBase58String(bI)))
885- let gs = split(gr.description, "_")
886- let gt = if ((gr.quantity > 0))
887- then gs[ej]
888- else ("-" + gs[ej])
889- let fI = fg(gs[ek])
890- let gu = fU(bI, fI)
891- let gv = (lastBlock.timestamp - gq)
892- let gw = if ((gq > 0))
893- then fraction(gv, (gu._3 * fI), i)
897+ let gt = value(assetInfo(fromBase58String(bI)))
898+ let gu = split(gt.description, "_")
899+ let gv = if ((gt.quantity > 0))
900+ then gu[el]
901+ else ("-" + gu[el])
902+ let fK = fi(gu[em])
903+ let gw = fW(bI, fK)
904+ let gx = (lastBlock.timestamp - gs)
905+ let gy = if ((gs > 0))
906+ then fraction(gx, (gw._3 * fK), i)
894907 else 0
895- let gx = fraction(dE, (fI * (gu._1 + 1)), dI)
896- let gy = if ((gq > 0))
897- then fv(invoke(N, "splitByGlobalAndLocalWeightsREADONLY", [gx, gw, gs[el]], nil))
898- else $Tuple2(fo(invoke(N, "splitByGlobalWeightsREADONLY", [gx], nil)), "")
899- let fD = valueOrElse(getString(N, cE(bI)), ((gs[em] + "-") + gs[ej]))
900- let gz = valueOrElse(getString(N, cK(bI)), ":0_15:0_18:0")
901- let gA = valueOrElse(getInteger(N, bH(bI)), 0)
902- let gB = valueOrElse(getInteger(N, bJ(bI)), 0)
903-[("%s%s__assetId__" + bI), ("%s%s__owner__" + gk), ("%s%s__customName__" + fD), ("%s%d__stakedTime__" + toString(gq)), ("%s%s__description__" + makeString([gt, gs[ek], gs[el], gs[em]], "_")), ("%s%d__infraLevel__" + toString(gu._1)), ("%s%s__availResByType__" + gy._2), ("%s%d__availResTotal__" + toString(gw)), ("%s%s__needMaterial__" + gy._1), ("%s%s__landArtefacts__PRESALE:" + toString(gu._2)), ("%s%s__warehouse__" + makeString(gc(cI(bI), (fI / dI), gu._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(ef, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:")), ("%s%s__fortifications__" + gz), ("%s%s__robberyState__" + bs[gA]), ("%s%d__canBeRobbedAfter__" + toString(gB))]
908+ let gz = fraction(dG, (fK * (gw._1 + 1)), dK)
909+ let gA = if ((gs > 0))
910+ then fx(invoke(N, "splitByGlobalAndLocalWeightsREADONLY", [gz, gy, gu[en]], nil))
911+ else $Tuple2(fq(invoke(N, "splitByGlobalWeightsREADONLY", [gz], nil)), "")
912+ let fF = valueOrElse(getString(N, cE(bI)), ((gu[eo] + "-") + gu[el]))
913+ let gB = valueOrElse(getString(N, cK(bI)), ":0_15:0_18:0")
914+ let gC = valueOrElse(getInteger(N, bH(bI)), 0)
915+ let gD = valueOrElse(getInteger(N, bJ(bI)), 0)
916+[("%s%s__assetId__" + bI), ("%s%s__owner__" + gm), ("%s%s__customName__" + fF), ("%s%d__stakedTime__" + toString(gs)), ("%s%s__description__" + makeString([gv, gu[em], gu[en], gu[eo]], "_")), ("%s%d__infraLevel__" + toString(gw._1)), ("%s%s__availResByType__" + gA._2), ("%s%d__availResTotal__" + toString(gy)), ("%s%s__needMaterial__" + gA._1), ("%s%s__landArtefacts__PRESALE:" + toString(gw._2)), ("%s%s__warehouse__" + makeString(ge(cI(bI), (fK / dK), gw._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(eh, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:")), ("%s%s__fortifications__" + gB), ("%s%s__robberyState__" + bs[gC]), ("%s%d__canBeRobbedAfter__" + toString(gD))]
904917 }
905918
906919
907-func gC (bI,gk) = if ((bI == ""))
920+func gE (bI,gm) = if ((bI == ""))
908921 then throw("landAssetId is required")
909922 else {
910- let gr = value(assetInfo(fromBase58String(bI)))
911- let gs = split(gr.description, "_")
912- let fI = fg(gs[ek])
913- let gu = fU(bI, fI)
914-[("%s%s__assetId__" + bI), ("%s%s__owner__" + gk), ("%s%s__warehouse__" + makeString(gc(cI(bI), (fI / dI), gu._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(ef, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
923+ let gt = value(assetInfo(fromBase58String(bI)))
924+ let gu = split(gt.description, "_")
925+ let fK = fi(gu[em])
926+ let gw = fW(bI, fK)
927+[("%s%s__assetId__" + bI), ("%s%s__owner__" + gm), ("%s%s__warehouse__" + makeString(ge(cI(bI), (fK / dK), gw._1), ":")), ("%s%s__landOrder__" + valueOrElse(getString(eh, cU(bI)), "0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:"))]
915928 }
916929
917930
918-func gD (gE) = if ((gE == ""))
931+func gF (gG) = if ((gG == ""))
919932 then 0
920933 else {
921- let gF = split(gE, ",")[0]
922- if ((gF == ""))
934+ let gH = split(gG, ",")[0]
935+ if ((gH == ""))
923936 then 0
924937 else {
925- let gG = split(gF, ":")
926- if (if ((gG[1] == ""))
938+ let gI = split(gH, ":")
939+ if (if ((gI[1] == ""))
927940 then true
928- else (parseIntValue(gG[1]) == 0))
941+ else (parseIntValue(gI[1]) == 0))
929942 then 0
930- else parseIntValue(split(cy[parseIntValue(gG[0])], "_")[cA])
943+ else parseIntValue(split(cy[parseIntValue(gI[0])], "_")[cA])
931944 }
932945 }
933946
934947
935-func gH (gI) = {
936- let gJ = du(ei, gI)
937- let dw = gJ[dg]
938- let dx = gJ[dh]
939- let gK = if ((dx[dq] == ""))
948+func gJ (gK) = {
949+ let gL = du(ek, gK)
950+ let dw = gL[dg]
951+ let dx = gL[dh]
952+ let gM = if ((dx[dq] == ""))
940953 then " "
941954 else dx[dq]
942- let gL = valueOrElse(getString(ei, da(gI)), "")
943- let gM = if ((size(dw) > dm))
955+ let gN = valueOrElse(getString(ek, da(gK)), "")
956+ let gO = if ((size(dw) > dm))
944957 then dw[dm]
945958 else "0"
946- let gN = if ((size(dw) > dn))
959+ let gP = if ((size(dw) > dn))
947960 then dw[dn]
948961 else "0"
949962 let cD = if ((size(dw) > do))
950963 then fromBase58String(dw[do])
951- else eo
952- let gO = valueOrErrorMessage(assetInfo(cD), "No assetInfo available").name
953-[("%s%s__tournamentStaticData__" + makeString([dw[di], dw[dj], dw[dk], dw[dl], gM, gN, gO], "_")), ("%s%s__tournamentDynamicData__" + makeString_2C([dx[dp], gK, dx[dr], dx[ds], dx[dt]], "_")), ("%s%s__tournamentScoreBoard__" + gL)]
964+ else eq
965+ let gQ = valueOrErrorMessage(assetInfo(cD), "No assetInfo available").name
966+[("%s%s__tournamentStaticData__" + makeString([dw[di], dw[dj], dw[dk], dw[dl], gO, gP, gQ], "_")), ("%s%s__tournamentDynamicData__" + makeString_2C([dx[dp], gM, dx[dr], dx[ds], dx[dt]], "_")), ("%s%s__tournamentScoreBoard__" + gN)]
954967 }
955968
956969
957-func gP (t,dP) = {
958- let gQ = getBoolean(t, dP)
959- if (isDefined(gQ))
960- then value(gQ)
970+func gR (t,dR) = {
971+ let gS = getBoolean(t, dR)
972+ if (isDefined(gS))
973+ then value(gS)
961974 else {
962- let gR = getBinary(t, dP)
963- if (isDefined(gR))
964- then value(gR)
975+ let gT = getBinary(t, dR)
976+ if (isDefined(gT))
977+ then value(gT)
965978 else {
966- let gS = getInteger(t, dP)
967- if (isDefined(gS))
968- then value(gS)
969- else getString(t, dP)
979+ let gU = getInteger(t, dR)
980+ if (isDefined(gU))
981+ then value(gU)
982+ else getString(t, dR)
970983 }
971984 }
972985 }
973986
974987
975-func gT (gU) = {
976- func gV (R,gW) = {
977- let t = Address(fromBase58String(gW._1))
978- let gX = gW._2
979- let gY = {
980- let dC = gW
981- if ($isInstanceOf(dC, "(String, String, List[Any])"))
988+func gV (gW) = {
989+ func gX (R,gY) = {
990+ let t = Address(fromBase58String(gY._1))
991+ let gZ = gY._2
992+ let ha = {
993+ let dD = gY
994+ if ($isInstanceOf(dD, "(String, String, List[Any])"))
982995 then {
983- let gZ = dC
984- invoke(t, gX, gZ._3, nil)
996+ let hb = dD
997+ invoke(t, gZ, hb._3, nil)
985998 }
986- else gP(t, gX)
999+ else gR(t, gZ)
9871000 }
988- (R :+ gY)
1001+ (R :+ ha)
9891002 }
9901003
991- let U = gU
1004+ let U = gW
9921005 let V = size(U)
9931006 let W = nil
9941007 func X (Y,Z) = if ((Z >= V))
9951008 then Y
996- else gV(Y, U[Z])
1009+ else gX(Y, U[Z])
9971010
9981011 func aa (Y,Z) = if ((Z >= V))
9991012 then Y
10001013 else throw("List size exceeds 10")
10011014
10021015 aa(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
10031016 }
10041017
10051018
1006-@Callable(ha)
1007-func constructorV1 (ak) = if ((ha.caller != this))
1019+@Callable(hc)
1020+func constructorV1 (ak) = if ((hc.caller != this))
10081021 then throw("permissions denied")
10091022 else {
1010- func hb (R,hc) = (R + "%s")
1023+ func hd (R,he) = (R + "%s")
10111024
1012- let hd = {
1025+ let hf = {
10131026 let U = ak
10141027 let V = size(U)
10151028 let W = ""
10161029 func X (Y,Z) = if ((Z >= V))
10171030 then Y
1018- else hb(Y, U[Z])
1031+ else hd(Y, U[Z])
10191032
10201033 func aa (Y,Z) = if ((Z >= V))
10211034 then Y
10221035 else throw("List size exceeds 10")
10231036
10241037 aa(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
10251038 }
1026-[StringEntry(dX(), makeString(hd :: ak, dF)), StringEntry(dY(), toString(this))]
1039+[StringEntry(dZ(), makeString(hf :: ak, dH)), StringEntry(ea(), toString(this))]
10271040 }
10281041
10291042
10301043
1031-@Callable(ha)
1032-func walletInfoREADONLY (fz) = $Tuple2(nil, fy(fz))
1044+@Callable(hc)
1045+func walletInfoREADONLY (fB) = $Tuple2(nil, fA(fB))
10331046
10341047
10351048
1036-@Callable(ha)
1037-func duckByOwnerInfoREADONLY (he) = {
1038- let hf = getString(N, cR(he))
1039- $Tuple2(nil, if (if (isDefined(addressFromString(he)))
1040- then isDefined(hf)
1049+@Callable(hc)
1050+func duckByOwnerInfoREADONLY (hg) = {
1051+ let hh = getString(N, cR(hg))
1052+ $Tuple2(nil, if (if (isDefined(addressFromString(hg)))
1053+ then isDefined(hh)
10411054 else false)
10421055 then {
1043- let bv = value(hf)
1044- gj(bv, he, gh(bv))
1056+ let bv = value(hh)
1057+ gl(bv, hg, gj(bv))
10451058 }
1046- else gj("", he, $Tuple5(-1, "", "", -1, "")))
1059+ else gl("", hg, $Tuple5(-1, "", "", -1, "")))
10471060 }
10481061
10491062
10501063
1051-@Callable(ha)
1064+@Callable(hc)
10521065 func duckByAssetIdInfoREADONLY (bv) = {
1053- let gk = getString(N, cQ(bv))
1054- $Tuple2(nil, gj(bv, if (isDefined(gk))
1055- then value(gk)
1056- else "", gh(bv)))
1066+ let gm = getString(N, cQ(bv))
1067+ $Tuple2(nil, gl(bv, if (isDefined(gm))
1068+ then value(gm)
1069+ else "", gj(bv)))
10571070 }
10581071
10591072
10601073
1061-@Callable(ha)
1062-func ducksByIdsInfoREADONLY (hg) = {
1063- func hh (R,bv) = if ((bv == ""))
1074+@Callable(hc)
1075+func ducksByIdsInfoREADONLY (hi) = {
1076+ func hj (R,bv) = if ((bv == ""))
10641077 then throw("duckAssetId is required")
10651078 else {
1066- let gq = valueOrElse(getInteger(N, cF(bv)), -1)
1067- let gk = if ((gq > 0))
1079+ let gs = valueOrElse(getInteger(N, cF(bv)), -1)
1080+ let gm = if ((gs > 0))
10681081 then value(getString(N, cQ(bv)))
10691082 else ""
1070- (R :+ gj(bv, gk, gh(bv)))
1083+ (R :+ gl(bv, gm, gj(bv)))
10711084 }
10721085
1073- let fu = {
1074- let U = hg
1086+ let fw = {
1087+ let U = hi
10751088 let V = size(U)
10761089 let W = nil
10771090 func X (Y,Z) = if ((Z >= V))
10781091 then Y
1079- else hh(Y, U[Z])
1092+ else hj(Y, U[Z])
10801093
10811094 func aa (Y,Z) = if ((Z >= V))
10821095 then Y
10831096 else throw("List size exceeds 100")
10841097
10851098 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
10861099 }
1087- $Tuple2(nil, fu)
1100+ $Tuple2(nil, fw)
10881101 }
10891102
10901103
10911104
1092-@Callable(ha)
1105+@Callable(hc)
10931106 func landByAssetIdInfoREADONLY (bI) = if ((bI == ""))
10941107 then throw("landAssetId is required")
10951108 else {
1096- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1097- let gk = if ((gq > 0))
1109+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1110+ let gm = if ((gs > 0))
10981111 then value(getString(N, cC(bI)))
10991112 else ""
1100- $Tuple2(nil, gp(bI, gk, gq))
1113+ $Tuple2(nil, gr(bI, gm, gs))
11011114 }
11021115
11031116
11041117
1105-@Callable(ha)
1106-func stakedLandsByOwnerInfoREADONLY (hi) = if ((hi == ""))
1118+@Callable(hc)
1119+func stakedLandsByOwnerInfoREADONLY (hk) = if ((hk == ""))
11071120 then throw("landOwnerAddress is required")
11081121 else {
1109- let hj = getString(N, eY(hi))
1110- let hk = if (isDefined(hj))
1111- then split_51C(value(hj), "_")
1122+ let hl = getString(N, fa(hk))
1123+ let hm = if (isDefined(hl))
1124+ then split_51C(value(hl), "_")
11121125 else nil
1113- func hl (R,bI) = if ((bI == ""))
1126+ func hn (R,bI) = if ((bI == ""))
11141127 then throw("landAssetId is required")
11151128 else {
1116- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1117- (R :+ gp(bI, hi, gq))
1129+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1130+ (R :+ gr(bI, hk, gs))
11181131 }
11191132
1120- let fu = {
1121- let U = hk
1133+ let fw = {
1134+ let U = hm
11221135 let V = size(U)
11231136 let W = nil
11241137 func X (Y,Z) = if ((Z >= V))
11251138 then Y
1126- else hl(Y, U[Z])
1139+ else hn(Y, U[Z])
11271140
11281141 func aa (Y,Z) = if ((Z >= V))
11291142 then Y
11301143 else throw("List size exceeds 100")
11311144
11321145 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
11331146 }
1134- $Tuple2(nil, fu)
1147+ $Tuple2(nil, fw)
11351148 }
11361149
11371150
11381151
1139-@Callable(ha)
1140-func landsByIdsInfoREADONLY (hm) = {
1141- func hl (R,bI) = if ((bI == ""))
1152+@Callable(hc)
1153+func landsByIdsInfoREADONLY (ho) = {
1154+ func hn (R,bI) = if ((bI == ""))
11421155 then throw("landAssetId is required")
11431156 else {
1144- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1145- let gk = if ((gq > 0))
1157+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1158+ let gm = if ((gs > 0))
11461159 then value(getString(N, cC(bI)))
11471160 else ""
1148- (R :+ gp(bI, gk, gq))
1161+ (R :+ gr(bI, gm, gs))
11491162 }
11501163
1151- let fu = {
1152- let U = hm
1164+ let fw = {
1165+ let U = ho
11531166 let V = size(U)
11541167 let W = nil
11551168 func X (Y,Z) = if ((Z >= V))
11561169 then Y
1157- else hl(Y, U[Z])
1170+ else hn(Y, U[Z])
11581171
11591172 func aa (Y,Z) = if ((Z >= V))
11601173 then Y
11611174 else throw("List size exceeds 100")
11621175
11631176 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
11641177 }
1165- $Tuple2(nil, fu)
1178+ $Tuple2(nil, fw)
11661179 }
11671180
11681181
11691182
1170-@Callable(ha)
1183+@Callable(hc)
11711184 func warehouseOrderByAssetIdInfoREADONLY (bI) = if ((bI == ""))
11721185 then throw("landAssetId is required")
11731186 else {
1174- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1175- let gk = if ((gq > 0))
1187+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1188+ let gm = if ((gs > 0))
11761189 then value(getString(N, cC(bI)))
11771190 else ""
1178- $Tuple2(nil, gC(bI, gk))
1191+ $Tuple2(nil, gE(bI, gm))
11791192 }
11801193
11811194
11821195
1183-@Callable(ha)
1184-func ordersByLandIdsInfoREADONLY (hm) = {
1185- func hl (R,bI) = if ((bI == ""))
1196+@Callable(hc)
1197+func ordersByLandIdsInfoREADONLY (ho) = {
1198+ func hn (R,bI) = if ((bI == ""))
11861199 then throw("landAssetId is required")
11871200 else {
1188- let gq = valueOrElse(getInteger(N, cF(bI)), -1)
1189- let gk = if ((gq > 0))
1201+ let gs = valueOrElse(getInteger(N, cF(bI)), -1)
1202+ let gm = if ((gs > 0))
11901203 then value(getString(N, cC(bI)))
11911204 else ""
1192- (R :+ gC(bI, gk))
1205+ (R :+ gE(bI, gm))
11931206 }
11941207
1195- let fu = {
1196- let U = hm
1208+ let fw = {
1209+ let U = ho
11971210 let V = size(U)
11981211 let W = nil
11991212 func X (Y,Z) = if ((Z >= V))
12001213 then Y
1201- else hl(Y, U[Z])
1214+ else hn(Y, U[Z])
12021215
12031216 func aa (Y,Z) = if ((Z >= V))
12041217 then Y
12051218 else throw("List size exceeds 40")
12061219
12071220 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
12081221 }
1209- $Tuple2(nil, fu)
1222+ $Tuple2(nil, fw)
12101223 }
12111224
12121225
12131226
1214-@Callable(ha)
1215-func cancelWarehouseOrders (hm) = if ((ha.caller != this))
1227+@Callable(hc)
1228+func cancelWarehouseOrders (ho) = if ((hc.caller != this))
12161229 then throw("permission denied")
12171230 else {
1218- let hn = getBoolean(N, fi())
1219- if (if (!(isDefined(hn)))
1231+ let hp = getBoolean(N, fk())
1232+ if (if (!(isDefined(hp)))
12201233 then true
1221- else (value(hn) == false))
1234+ else (value(hp) == false))
12221235 then throw("Contracts should be blocked before canceling orders")
12231236 else {
1224- func hl (gr,bI) = if ((bI == ""))
1237+ func hn (gt,bI) = if ((bI == ""))
12251238 then throw("landAssetId is required")
12261239 else {
1227- let ho = fx(invoke(ef, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bI], nil))._1
1228- if (if (gr)
1240+ let hq = fz(invoke(eh, "setWarehouseOrder", ["0@0_0@0_0@0_0@0_0@0_0@0:0@0_0@0_0@0_0@0_0@0_0@0:", bI], nil))._1
1241+ if (if (gt)
12291242 then true
1230- else ho)
1231- then !(if (gr)
1232- then ho
1243+ else hq)
1244+ then !(if (gt)
1245+ then hq
12331246 else false)
12341247 else false
12351248 }
12361249
1237- let fu = {
1238- let U = hm
1250+ let fw = {
1251+ let U = ho
12391252 let V = size(U)
12401253 let W = false
12411254 func X (Y,Z) = if ((Z >= V))
12421255 then Y
1243- else hl(Y, U[Z])
1256+ else hn(Y, U[Z])
12441257
12451258 func aa (Y,Z) = if ((Z >= V))
12461259 then Y
12471260 else throw("List size exceeds 30")
12481261
12491262 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
12501263 }
1251- $Tuple2(nil, fu)
1264+ $Tuple2(nil, fw)
12521265 }
12531266 }
12541267
12551268
12561269
1257-@Callable(ha)
1258-func sendUsdtPrize (he) = if ((ha.caller != N))
1270+@Callable(hc)
1271+func distributeLockedAcres (hr,hs,ht) = if (if ((hc.caller != this))
1272+ then (hc.callerPublicKey != dC)
1273+ else false)
1274+ then throw("Permission denied")
1275+ else if ((0 >= hs))
1276+ then throw("amount should be positive")
1277+ else if ((0 > ht))
1278+ then throw("lockDays should be non-negative")
1279+ else {
1280+ func hu (R,t) = if ((t == ""))
1281+ then throw("address is required")
1282+ else (R + fe(invoke(O, "sendLockedAcres", [t, hs, ht], nil)))
1283+
1284+ let ac = {
1285+ let U = hr
1286+ let V = size(U)
1287+ let W = 0
1288+ func X (Y,Z) = if ((Z >= V))
1289+ then Y
1290+ else hu(Y, U[Z])
1291+
1292+ func aa (Y,Z) = if ((Z >= V))
1293+ then Y
1294+ else throw("List size exceeds 20")
1295+
1296+ aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
1297+ }
1298+ $Tuple2(nil, ac)
1299+ }
1300+
1301+
1302+
1303+@Callable(hc)
1304+func sendUsdtPrize (hg) = if ((hc.caller != N))
12591305 then throw("permission denied")
12601306 else {
1261- let hp = fraction(assetBalance(this, dB), fn, dG)
1262- $Tuple2([ScriptTransfer(addressFromStringValue(he), hp, dB)], hp)
1307+ let hv = fraction(assetBalance(this, dE), fp, dI)
1308+ $Tuple2([ScriptTransfer(addressFromStringValue(hg), hv, dE)], hv)
12631309 }
12641310
12651311
12661312
1267-@Callable(ha)
1313+@Callable(hc)
12681314 func getEmergencyServiceDataREADONLY () = {
1269- let hq = getString(ef, cV())
1270- let hr = if (isDefined(hq))
1271- then split_4C(value(hq), "_")
1315+ let hw = getString(eh, cV())
1316+ let hx = if (isDefined(hw))
1317+ then split_4C(value(hw), "_")
12721318 else nil
1273- func hs (R,ht) = {
1274- let fd = R._2
1275- let dz = split(ht, "_")
1276- let hu = if ((fd == 0))
1319+ func hy (R,hz) = {
1320+ let ff = R._2
1321+ let dz = split(hz, "_")
1322+ let hA = if ((ff == 0))
12771323 then (cu * cB)
12781324 else 0
1279- let hv = if ((size(hr) > fd))
1280- then parseIntValue(hr[fd])
1325+ let hB = if ((size(hx) > ff))
1326+ then parseIntValue(hx[ff])
12811327 else 0
1282- let hw = dy(dz)
1283- let hx = fraction((hw * cv), ct, (dH * cB))
1284- let hy = fraction((hw * cw), ct, (dH * cB))
1285- let hz = makeString([toString(hu), toString(hv), toString(hx), toString(hy)], "_")
1286- $Tuple2((R._1 :+ hz), (fd + 1))
1328+ let hC = dy(dz)
1329+ let hD = fraction((hC * cv), ct, (dJ * cB))
1330+ let hE = fraction((hC * cw), ct, (dJ * cB))
1331+ let hF = makeString([toString(hA), toString(hB), toString(hD), toString(hE)], "_")
1332+ $Tuple2((R._1 :+ hF), (ff + 1))
12871333 }
12881334
1289- let fb = makeString_2C(( let U = cy
1335+ let fd = makeString_2C(( let U = cy
12901336 let V = size(U)
12911337 let W = $Tuple2(nil, 0)
12921338 func X (Y,Z) = if ((Z >= V))
12931339 then Y
1294- else hs(Y, U[Z])
1340+ else hy(Y, U[Z])
12951341
12961342 func aa (Y,Z) = if ((Z >= V))
12971343 then Y
12981344 else throw("List size exceeds 50")
12991345
13001346 aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._1, ":")
1301- let gY = ("%s%s__emergencyServiceData__" + fb)
1302- $Tuple2(nil, gY)
1347+ let ha = ("%s%s__emergencyServiceData__" + fd)
1348+ $Tuple2(nil, ha)
13031349 }
13041350
13051351
13061352
1307-@Callable(ha)
1353+@Callable(hc)
13081354 func wlgStatsREADONLY (aj) = {
1309- let hA = ai(aj, [ee, N, ef, eg, eh, at, O], dB, 0, dG)
1310- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(hA[es])), ("%s%d__wlgPrice__" + toString(hA[et])), ("%s%d__usdtFunds__" + toString(hA[eu])), ("%s%d__usdtEconomy__" + toString(hA[ev])), ("%s%d__usdtActivity__" + toString(hA[ew])), ("%s%d__usdtArbitrage__" + toString(hA[ex])), ("%s%d__usdtPool__" + toString(hA[ey])), ("%s%d__wlgIssueTime__" + toString(hA[ez])), ("%s%d__wlgLastMarketingTeamActTime__" + toString(hA[eA])), ("%s%d__wlgMarketingTotal__" + toString(hA[eB])), ("%s%d__wlgMarketingAmLeft__" + toString(hA[eC])), ("%s%d__wlgMarketingAmAvailNow__" + toString(hA[eD])), ("%s%d__wlgMarketingWlgold__" + toString(hA[eE])), ("%s%d__wlgTeamTotal__" + toString(hA[eF])), ("%s%d__wlgTeamAmLeft__" + toString(hA[eG])), ("%s%d__wlgTeamAmAvailNow__" + toString(hA[eH])), ("%s%d__wlgTeamWlgold__" + toString(hA[eI])), ("%s%d__wlgActTotal__" + toString(hA[eJ])), ("%s%d__wlgActAmLeft__" + toString(hA[eK])), ("%s%d__wlgActAmAvailNow__" + toString(hA[eL])), ("%s%d__wlgActWlgold__" + toString(hA[eM])), ("%s%d__wlgCurPeriod__" + toString(hA[eN])), ("%s%d__wlgAmLeftTotal__" + toString(hA[eO])), ("%s%d__wlgCurPeriodDistribution__" + toString(hA[eP])), ("%s%d__wlgLastUserTime__" + toString(hA[eQ])), ("%s%d__wlgUserAmAvailNow__" + toString(hA[eR])), ("%s%d__wlgGuestSLandDaily__" + toString(hA[eS])), ("%s%d__wlgInvestFundTotal__" + toString(hA[eT])), ("%s%d__wlgUserTotalAvail__" + toString(hA[eU])), ("%s%d__wlgEffUserTime__" + toString(hA[eV]))])
1355+ let hG = ai(aj, [eg, N, eh, ei, ej, at, O], dE, 0, dI)
1356+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(hG[eu])), ("%s%d__wlgPrice__" + toString(hG[ev])), ("%s%d__usdtFunds__" + toString(hG[ew])), ("%s%d__usdtEconomy__" + toString(hG[ex])), ("%s%d__usdtActivity__" + toString(hG[ey])), ("%s%d__usdtArbitrage__" + toString(hG[ez])), ("%s%d__usdtPool__" + toString(hG[eA])), ("%s%d__wlgIssueTime__" + toString(hG[eB])), ("%s%d__wlgLastMarketingTeamActTime__" + toString(hG[eC])), ("%s%d__wlgMarketingTotal__" + toString(hG[eD])), ("%s%d__wlgMarketingAmLeft__" + toString(hG[eE])), ("%s%d__wlgMarketingAmAvailNow__" + toString(hG[eF])), ("%s%d__wlgMarketingWlgold__" + toString(hG[eG])), ("%s%d__wlgTeamTotal__" + toString(hG[eH])), ("%s%d__wlgTeamAmLeft__" + toString(hG[eI])), ("%s%d__wlgTeamAmAvailNow__" + toString(hG[eJ])), ("%s%d__wlgTeamWlgold__" + toString(hG[eK])), ("%s%d__wlgActTotal__" + toString(hG[eL])), ("%s%d__wlgActAmLeft__" + toString(hG[eM])), ("%s%d__wlgActAmAvailNow__" + toString(hG[eN])), ("%s%d__wlgActWlgold__" + toString(hG[eO])), ("%s%d__wlgCurPeriod__" + toString(hG[eP])), ("%s%d__wlgAmLeftTotal__" + toString(hG[eQ])), ("%s%d__wlgCurPeriodDistribution__" + toString(hG[eR])), ("%s%d__wlgLastUserTime__" + toString(hG[eS])), ("%s%d__wlgUserAmAvailNow__" + toString(hG[eT])), ("%s%d__wlgGuestSLandDaily__" + toString(hG[eU])), ("%s%d__wlgInvestFundTotal__" + toString(hG[eV])), ("%s%d__wlgUserTotalAvail__" + toString(hG[eW])), ("%s%d__wlgEffUserTime__" + toString(hG[eX]))])
13111357 }
13121358
13131359
13141360
1315-@Callable(ha)
1316-func tournamentStatsREADONLY (gI) = $Tuple2(nil, gH(gI))
1361+@Callable(hc)
1362+func tournamentStatsREADONLY (gK) = $Tuple2(nil, gJ(gK))
13171363
13181364
13191365
1320-@Callable(ha)
1366+@Callable(hc)
13211367 func lastTournamentStatsREADONLY () = {
1322- let gI = valueOrElse(getInteger(ei, cW), 0)
1323- $Tuple2(nil, [("%s%s__lastTournamentId__" + toString(gI)), gH(gI)])
1368+ let gK = valueOrElse(getInteger(ek, cW), 0)
1369+ $Tuple2(nil, [("%s%s__lastTournamentId__" + toString(gK)), gJ(gK)])
13241370 }
13251371
13261372
13271373
1328-@Callable(ha)
1374+@Callable(hc)
13291375 func tournamentDuckStatsREADONLY (cY,bv) = {
1330- let hB = valueOrElse(getBoolean(ei, db(cY, bv)), false)
1331- let hC = valueOrElse(getInteger(ei, dd(cY, bv)), -1)
1332- let hD = valueOrElse(getInteger(ei, de(cY, bv)), 0)
1333- let hE = valueOrElse(getString(ei, df(cY, bv)), "")
1334- let hF = valueOrElse(getBoolean(ei, dc(cY, bv)), false)
1335- $Tuple2(nil, [("%s%s__tournamentDuckStats__" + makeString([toString(hB), toString(hC), toString(hD), hE, toString(hF)], "_"))])
1376+ let hH = valueOrElse(getBoolean(ek, db(cY, bv)), false)
1377+ let hI = valueOrElse(getInteger(ek, dd(cY, bv)), -1)
1378+ let hJ = valueOrElse(getInteger(ek, de(cY, bv)), 0)
1379+ let hK = valueOrElse(getString(ek, df(cY, bv)), "")
1380+ let hL = valueOrElse(getBoolean(ek, dc(cY, bv)), false)
1381+ $Tuple2(nil, [("%s%s__tournamentDuckStats__" + makeString([toString(hH), toString(hI), toString(hJ), hK, toString(hL)], "_"))])
13361382 }
13371383
13381384
13391385
1340-@Callable(ha)
1386+@Callable(hc)
13411387 func duckStatsCalculatorREADONLY (bv) = {
13421388 let cd = split(valueOrElse(getString(N, bw(bv)), "0_0_0_0_0"), "_")
13431389 let ce = split(valueOrElse(getString(N, bE(bv)), "0_0_0_0_0"), "_")
1344- let gm = split(valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;"), "_")
1345- let cf = gD(split(gm[bq], ";")[1])
1346- let cl = gD(split(gm[br], ";")[0])
1347- let hG = cc(cd, ce, cf)
1348- let hH = ck(cd, ce, cl)
1349- $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hG)), ("%s%d__damageAbsorption__" + toString(hH))])
1390+ let go = split(valueOrElse(getString(N, bA(bv)), ";_;_;_;_;_;"), "_")
1391+ let cf = gF(split(go[bq], ";")[1])
1392+ let cl = gF(split(go[br], ";")[0])
1393+ let hM = cc(cd, ce, cf)
1394+ let hN = ck(cd, ce, cl)
1395+ $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hM)), ("%s%d__damageAbsorption__" + toString(hN))])
13501396 }
13511397
13521398
13531399
1354-@Callable(ha)
1400+@Callable(hc)
13551401 func customDuckStatsCalculatorREADONLY (cd,ce,cf,cl) = {
1356- let hG = cc(cd, ce, cf)
1357- let hH = ck(cd, ce, cl)
1358- $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hG)), ("%s%d__damageAbsorption__" + toString(hH))])
1402+ let hM = cc(cd, ce, cf)
1403+ let hN = ck(cd, ce, cl)
1404+ $Tuple2(nil, [("%s%d__dodgeProbability__" + toString(hM)), ("%s%d__damageAbsorption__" + toString(hN))])
13591405 }
13601406
13611407
13621408
1363-@Callable(ha)
1409+@Callable(hc)
13641410 func acresStatsREADONLY (aj) = {
1365- let hI = fe(invoke(O, "claimAcresREADONLY", [aj], nil))
1366- let hJ = fc(hI[0])
1367- let hK = fc(hI[1])
1368- $Tuple2(nil, [("%s%d__acresIssuedTotal__" + toString(valueOrElse(getInteger(O, ep), 0))), ("%s%d__acresUnsold__" + toString(assetBalance(O, er))), ("%s%d__acresStakedTotal__" + toString(valueOrElse(getInteger(O, C), 0))), ("%s%d__acresStakedByUser__" + toString(valueOrElse(getInteger(O, z(aj)), 0))), ("%s%d__acresClaimableByUser__" + toString(hJ)), ("%s%d__acresLastClaimTimeByUser__" + toString(hK)), ("%s%d__acresLockedByUser__" + toString(valueOrElse(getInteger(O, A(aj)), 0))), ("%s%d__acresLockedEtaByUser__" + toString(valueOrElse(getInteger(O, B(aj)), 0)))])
1411+ let hO = fg(invoke(O, "claimAcresREADONLY", [aj], nil))
1412+ let hP = fe(hO[0])
1413+ let hQ = fe(hO[1])
1414+ $Tuple2(nil, [("%s%d__acresIssuedTotal__" + toString(valueOrElse(getInteger(O, er), 0))), ("%s%d__acresUnsold__" + toString(assetBalance(O, et))), ("%s%d__acresStakedTotal__" + toString(valueOrElse(getInteger(O, C), 0))), ("%s%d__acresStakedByUser__" + toString(valueOrElse(getInteger(O, z(aj)), 0))), ("%s%d__acresClaimableByUser__" + toString(hP)), ("%s%d__acresLastClaimTimeByUser__" + toString(hQ)), ("%s%d__acresLockedByUser__" + toString(valueOrElse(getInteger(O, A(aj)), 0))), ("%s%d__acresLockedEtaByUser__" + toString(valueOrElse(getInteger(O, B(aj)), 0)))])
13691415 }
13701416
13711417
13721418
1373-@Callable(ha)
1374-func testV4 () = $Tuple2(nil, gT(nil))
1419+@Callable(hc)
1420+func testV4 () = $Tuple2(nil, gV(nil))
13751421
13761422

github/deemru/w8io/169f3d6 
606.74 ms