tx · 6gkQypdkFPdkka7zPsaDdccu3NFDQnNBNDejRcaX36A6

3MzjYmeNRTxpsizCTGfiJ9RpL5icxZFZALP:  -0.03400000 Waves

2023.06.07 09:15 [2611882] smart account 3MzjYmeNRTxpsizCTGfiJ9RpL5icxZFZALP > SELF 0.00000000 Waves

{ "type": 13, "id": "6gkQypdkFPdkka7zPsaDdccu3NFDQnNBNDejRcaX36A6", "fee": 3400000, "feeAssetId": null, "timestamp": 1686118725300, "version": 2, "chainId": 84, "sender": "3MzjYmeNRTxpsizCTGfiJ9RpL5icxZFZALP", "senderPublicKey": "YyZowfZWDqeoD4fjqhSxSF1fKBXWymvDKHKzBS5sqtB", "proofs": [ "64dNSM1fx4TX4U489M8N1oJXxcyJd3oDc5bC4AJpQLfztD2c8zzCKM8B4Fh9VXxBTbFVZbPqgALqWS9eUWvcAA93" ], "script": "base64:BgJ2CAISAwoBCBIMCgoICAgICAEICAgIEgQKAggIEgcKBQgICAgBEgMKAQgSBwoFCAgIAQgSBwoFCAgICAISCQoHCAgICAgICBIDCgEIEgMKAQgSAwoBCBIECgIICBIDCgEYEgMKARgSBAoCAQESBAoCAQESAwoBCAwACXNlcGFyYXRvcgIBXwAEa0J1eQIDYnV5AAZrUHJpY2UCBXByaWNlAAVrU2VsbAIEc2VsbAASbWF4QXVjdGlvbkR1cmF0aW9uAB4ABXRlYW1zASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgAFV0FWRVMBAAAEa0JpZAIDYmlkAAZwYXVzZWQGAAxzdGF0dXNGb3JORlQJAJYKBAIET1BFTgIGQ0xPU0VEAghSRVdBUkRFRAIIQ0FOQ0VMRUQAC2RBcHBBZGRyZXNzARoBVEq4T2zewtqT7fSO6Uo2+NVPf5XVVVtdoAEFaXNOZnQBB2Fzc2V0SWQEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFdG9rZW4FByRtYXRjaDADAwkAAAIIBQV0b2tlbghkZWNpbWFscwAACQAAAggFBXRva2VuCHF1YW50aXR5AAEHCQAAAggFBXRva2VuCnJlaXNzdWFibGUHBwcRAWkBCXNldFBhdXNlZAEFcGF1c2UEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwMJAAACBQVwYXVzZQIEdHJ1ZQkAzAgCCQELU3RyaW5nRW50cnkCCQDYBAEFBmNhbGxlcgkArAICAglzZXRQYXVzZWQFBXBhdXNlBQNuaWwDCQAAAgUGcGF1c2VkBwkAzAgCCQELU3RyaW5nRW50cnkCCQDYBAEFBmNhbGxlcgkArAICAglzZXRQYXVzZWQFBXBhdXNlBQNuaWwFA25pbAFpAQljcmVhdGVOZnQKCG5mdF9uYW1lCW5mdF9vd25lcg9uZnRfZEFwcEFkZHJlc3MIbmZ0X3R5cGUIbmZ0X3RhZ3MRbmZ0X3NlbGxpbmdfcHJpY2UScm95YWxpdHlQZXJjZW50YWdlD25mdF9kZXNjcmlwdGlvbgpuZnRfb25TZWxsCG5mdF9kYXRhBAhuZXdUb2tlbgkAwggFBQhuZnRfbmFtZQUPbmZ0X2Rlc2NyaXB0aW9uAAEAAAcEB2lzc3VlSWQJALgIAQUIbmV3VG9rZW4EBHR4SWQIBQFpDXRyYW5zYWN0aW9uSWQEB2lucGF1c2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCCXNldFBhdXNlZAMJAAACBQdpbnBhdXNlAgR0cnVlCQACAQIaTWludGluZyBpcyBwYXVzZWQgYnkgYWRtaW4JAMwIAgUIbmV3VG9rZW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2lzc3VlSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAgVPd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfdHlwZQUIbmZ0X3R5cGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfdGFncwUIbmZ0X3RhZ3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAg9uZnRfZEFwcEFkZHJlc3MFD25mdF9kQXBwQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQR0eElkBQlzZXBhcmF0b3ICEnJveWFsaXR5UGVyY2VudGFnZQUScm95YWxpdHlQZXJjZW50YWdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICEW5mdF9zZWxsaW5nX3ByaWNlBRFuZnRfc2VsbGluZ19wcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCm5mdF9vblNlbGwFCm5mdF9vblNlbGwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfZGF0YQUIbmZ0X2RhdGEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUEdHhJZAUJc2VwYXJhdG9yAglpc3N1ZV9uZnQJANgEAQUHaXNzdWVJZAUDbmlsAWkBB3NlbGxORlQCBXByaWNlEHBheW1lbnRfY3VycmVuY3kEBHR4SWQIBQFpDXRyYW5zYWN0aW9uSWQEBnNlbGxlcggIBQFpBmNhbGxlcgVieXRlcwQLJHQwMjU1MTI2MzYJAJQKAgkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQGdG9rZW4wCAULJHQwMjU1MTI2MzYCXzEEB2Ftb3VudDAIBQskdDAyNTUxMjYzNgJfMgMJAQEhAQkBBWlzTmZ0AQUGdG9rZW4wCQACAQIQVG9rZW4gaXMgbm90IE5GVAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUGa1ByaWNlBQlzZXBhcmF0b3IJANgEAQkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQVwcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUFa1NlbGwJAKwCAgkArAICCQCsAgIJANgEAQUGdG9rZW4wBQlzZXBhcmF0b3IJAKQDAQUHYW1vdW50MAUQcGF5bWVudF9jdXJyZW5jeQUDbmlsAWkBBmJ1eU5GVAUFbmZ0SUQRY3VycmVudF9uZnRfb3duZXIHY3JlYXRvchJyb3lhbGl0eVBlcmNlbnRhZ2ULcGxhdGZvcm1GZWUEB2Fzc2V0SWQJANkEAQUFbmZ0SUQEEGNoZWNrT3duZXJJc1NhbWUEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhBwQFcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkArAICCQCsAgIJAKwCAgUGa1ByaWNlBQlzZXBhcmF0b3IFBW5mdElEAgFfBRFjdXJyZW50X25mdF9vd25lcgQGYW1vdW50CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQMc2VsbGVyQW1vdW50CQBlAgUGYW1vdW50CQBoAgkAaQIFBmFtb3VudABkBQtwbGF0Zm9ybUZlZQQMcGxhdGZvcm1fZmVlCQBlAgUGYW1vdW50BQxzZWxsZXJBbW91bnQEE3JveWFsaXR5UGVyY2VudGFnZTEFEnJveWFsaXR5UGVyY2VudGFnZQQOcm95YWxpdHlBbW91bnQJAGkCCQBoAgUGYW1vdW50CQENcGFyc2VJbnRWYWx1ZQEFE3JveWFsaXR5UGVyY2VudGFnZTEAZAQKc2VsbGVyQ29zdAkAZQIFBmFtb3VudAkAZAIFDnJveWFsaXR5QW1vdW50BQxwbGF0Zm9ybV9mZWUDCQAAAgURY3VycmVudF9uZnRfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQACAQIpY3VycmVudCBPd25lciBvZiBORlQgbm90IGFibGUgdG8gcHVyY2hhc2UDAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAQIhPQIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFCnNlbGxlckNvc3QFBXRlYW1zCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQdjcmVhdG9yBQ5yb3lhbGl0eUFtb3VudAUFdGVhbXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlBQxwbGF0Zm9ybV9mZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBGtCdXkJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yCQCkAwEFBmFtb3VudAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3ICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIFA25pbAMDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQV0ZWFtcwkAAAIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFDHNlbGxlckFtb3VudAUFdGVhbXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FBW5mdElEAgxwbGF0Zm9ybV9mZWUJAKQDAQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwDAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkBAiE9AgUHY3JlYXRvcgURY3VycmVudF9uZnRfb3duZXIHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRFjdXJyZW50X25mdF9vd25lcgUKc2VsbGVyQ29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FBW5mdElEAgxwbGF0Zm9ybV9mZWUJAKQDAQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwDAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAAAIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFDHNlbGxlckFtb3VudAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwUFbmZ0SUQCDHBsYXRmb3JtX2ZlZQkApAMBBQxwbGF0Zm9ybV9mZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBGtCdXkJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yCQCkAwEFBmFtb3VudAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3ICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIFA25pbAUDbmlsAWkBCmNhbmNlbFNlbGwBBW5mdElkBAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBnNlbGxlcggIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUEdHhJZAUFbmZ0SWQCC19uZnRfc3RhdHVzAghDQU5DRUxFRAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFBnNlbGxlcgABCQDZBAEFBW5mdElkBQNuaWwBaQEKYWRkQXVjdGlvbgUFc3RhcnQDZW5kCnN0YXJ0UHJpY2UIZHVyYXRpb24QcGF5bWVudF9jdXJyZW5jeQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAVuZnRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAVwcmljZQkBBXZhbHVlAQUKc3RhcnRQcmljZQQJZW5kSGVpZ2h0CQBkAggFCWxhc3RCbG9jawZoZWlnaHQFCGR1cmF0aW9uBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEEWNoZWNrTmZ0QXVjdGlvbmVkBAckbWF0Y2gwCQCdCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJANgEAQUFbmZ0SWQFCXNlcGFyYXRvcgILbmZ0X3N0YXR1c18JANgEAQUGY2FsbGVyAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAYHAwkAAAIFEWNoZWNrTmZ0QXVjdGlvbmVkBgkAAgECF0FscmVhZHkgaW4gYXVjdGlvbiBsaXN0AwkAZgIFCGR1cmF0aW9uBRJtYXhBdWN0aW9uRHVyYXRpb24JAAIBCQCsAgICN0R1cmF0aW9uIGlzIHRvbyBsb25nLiBNdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAzMCAJAKQDAQUSbWF4QXVjdGlvbkR1cmF0aW9uAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAAgECEE5GVCBub3QgYXR0YWNoZWQDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQV0ZWFtcwkAAgECEE5GVCBub3QgYXR0YWNoZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQCFm5mdF9zdGFydF9hdWN0aW9uX2RhdGUJANgEAQUGY2FsbGVyBQVzdGFydAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUEdHhJZAIUbmZ0X2VuZF9hdWN0aW9uX2RhdGUJANgEAQUGY2FsbGVyBQNlbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfbmZ0X3N0YXJ0X3ByaWNlBQpzdGFydFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIKX25mdF9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg9fbmZ0X29uX2F1Y3Rpb24JANgEAQUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfcHJldmlvdXNfYmlkZGVyAgRub25lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIMX2hpZ2hlc3RfYmlkAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIOX3dpbm5lcl9vZl9uZnQCATAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg1fYmlkZGVyX2NvdW50AgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAILX25mdF9zdGF0dXMCBE9QRU4FA25pbAFpAQhwbGFjZUJpZAUJYXVjdGlvbklkBW5mdElkCW5mdF9vd25lcgliaWRfcHJpY2UQY3VycmVudF9jdXJyZW5jeQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEB2Fzc2V0SWQJANkEAQUFbmZ0SWQECXRva2VuVHlwZQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBA9jdXJyZW50QmlkUHJpY2UICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBVnZXRMYXN0V2lubmVyQmlkUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQEGGdldFByZXZpb3VzQmlkZGVyQWRkcmVzcwkAnQgCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIQX3ByZXZpb3VzX2JpZGRlcgQPY3VycmVudEJpZENvdW50CQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAQUZ2V0TGFzdFdpbm5lckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAQRY2hlY2tOZnRBdWN0aW9uZWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwMJAQIhPQIFEWNoZWNrTmZ0QXVjdGlvbmVkAgRPUEVOCQACAQIUTm90IG9wZW4gZm9yIGF1Y3Rpb24DCQBnAgkBDXBhcnNlSW50VmFsdWUBBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UFD2N1cnJlbnRCaWRQcmljZQkAAgECJUJpZCBpcyBsZXNzIHRoZW4gc3RhcnRpbmcvaGlnaGVzdCBCaWQDCQAAAgUVZ2V0TGFzdFdpbm5lckJpZFByaWNlAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlBQNuaWwDCQECIT0CBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UCATAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFFGdldExhc3RXaW5uZXJBZGRyZXNzCQENcGFyc2VJbnRWYWx1ZQEFFWdldExhc3RXaW5uZXJCaWRQcmljZQUJdG9rZW5UeXBlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAImX3ByZXZpb3VzX2JpZF9hbW91bnRfcmVmdW5kX3RvX2FkZHJlc3MFFGdldExhc3RXaW5uZXJBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIbX3ByZXZvaXVzX2JpZF9hbW91bnRfcmVmdW5kBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCDV9iaWRkZXJfY291bnQJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQUPY3VycmVudEJpZENvdW50AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCDl93aW5uZXJfb2ZfbmZ0CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCB19uZnRfaWQJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkCQCkAwEFD2N1cnJlbnRCaWRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCB193aW5uZXIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDV9iaWRkZXJfY291bnQJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQUPY3VycmVudEJpZENvdW50AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgpfbmZ0X293bmVyBQluZnRfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg9fYmlkX2Zvcl9uZnRfYnkJANgEAQUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX2JpZF9wcmljZV9wbGFjZQUJYmlkX3ByaWNlBQNuaWwFA25pbAFpAQ5hY2NlcHRCaWRPZmZlcgcJYXVjdGlvbklkBW5mdElkFGJpZF9hbW91bnRfZnJvbV91c2VyEWN1cnJlbnRfbmZ0X293bmVyB2NyZWF0b3IScm95YWxpdHlQZXJjZW50YWdlEGN1cnJlbnRfY3VycmVuY3kEC2FzaW1pU3RyaW5nAiw5eWhKRGZXalBwdjZ0RmpXUkQxQUp5QlF3YXVzSmYyWmR4ekxuODZVa25ucQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAphbW91bnRVbml0CQDZBAEFEGN1cnJlbnRfY3VycmVuY3kEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQHYXNzZXRJZAkA2QQBBQVuZnRJZAQSZ2V0TmZ0V2lubmluZ1ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkBBNnZXROZnRXaW5uaW5nYW1vdW50CQBoAgkAaQIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlAOgHAM8HBAxwbGF0Zm9ybV9mZWUJAGgCCQBpAgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UA6AcAGQQOcm95YWxpdHlBbW91bnQJAGkCCQBoAgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UJAQ1wYXJzZUludFZhbHVlAQUScm95YWxpdHlQZXJjZW50YWdlAGQEDWF1Y3Rpb25lckNvc3QJAGUCCQENcGFyc2VJbnRWYWx1ZQEFEmdldE5mdFdpbm5pbmdQcmljZQkAZAIFDnJveWFsaXR5QW1vdW50BQxwbGF0Zm9ybV9mZWUEEGdldEF1Y3Rpb25XaW5uZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAMDCQAAAgUQY3VycmVudF9jdXJyZW5jeQULYXNpbWlTdHJpbmcJAQIhPQIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFBmNhbGxlcgUNYXVjdGlvbmVyQ29zdAUKYW1vdW50VW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUQZ2V0QXVjdGlvbldpbm5lcgABBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQdjcmVhdG9yBQ5yb3lhbGl0eUFtb3VudAUKYW1vdW50VW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAwMJAAACBRBjdXJyZW50X2N1cnJlbmN5BQthc2ltaVN0cmluZwkAAAIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFBmNhbGxlcgUTZ2V0TmZ0V2lubmluZ2Ftb3VudAUKYW1vdW50VW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUQZ2V0QXVjdGlvbldpbm5lcgABBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAILX25mdF9zdGF0dXMCCFJFV0FSREVECQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMCCFJFV0FSREVEBQNuaWwDAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kCBVdBVkVTCQECIT0CBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFDWF1Y3Rpb25lckNvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAwMJAAACBRBjdXJyZW50X2N1cnJlbmN5AgVXQVZFUwkAAAIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFBmNhbGxlcgUTZ2V0TmZ0V2lubmluZ2Ftb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUQZ2V0QXVjdGlvbldpbm5lcgABBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAILX25mdF9zdGF0dXMCCFJFV0FSREVECQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMCCFJFV0FSREVEBQNuaWwFA25pbAFpAQ1jYW5jZWxBdWN0aW9uAQlhdWN0aW9uSWQEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBA1hdWN0aW9uU3RhdHVzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMEDWJpZGRpbmdXaW5uZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAQIbmZ0T3duZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyBAVuZnRJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCD19uZnRfb25fYXVjdGlvbgQMYmlkZGluZ1ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkAwkAAAIFDWJpZGRpbmdXaW5uZXICATAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMCCENBTkNFTEVECQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQhuZnRPd25lcgABCQDZBAEFBW5mdElkBQNuaWwDCQECIT0CBQ1iaWRkaW5nV2lubmVyAgEwCQACAQJDc29vcnkgeW91IGNhbid0IGNhbmNlbCBpdCBiZWNhdXNlIGFscmVhZHkgYXVjdGlvbiBwbGFjZWQgYnkgc29tZW9uZQUDbmlsAWkBEm1hbnVhbEZ1bmRUcmFuc2ZlcgENcmVjZXBpZW50QWRkcgQGc2VuZGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdyZWNpdmVyCQDZBAEFDXJlY2VwaWVudEFkZHIEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJANgEAQUGc2VuZGVyAglfdHJhbnNmZXIFBmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJANgEAQUGc2VuZGVyAgxfdHJhbnNmZXJfdG8FDXJlY2VwaWVudEFkZHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQdyZWNpdmVyBQZhbW91bnQFBHVuaXQFA25pbAMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXRlYW1zCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJANgEAQUGc2VuZGVyAglfdHJhbnNmZXIFBmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJANgEAQUGc2VuZGVyAgxfdHJhbnNmZXJfdG8FDXJlY2VwaWVudEFkZHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQdyZWNpdmVyBQZhbW91bnQFBXRlYW1zBQNuaWwFA25pbAFpAQduZnRiYWNrAQlhdWN0aW9uSWQEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQFbmZ0SWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg9fbmZ0X29uX2F1Y3Rpb24ECG5mdE93bmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIKX25mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMCEUF1Y3Rpb25fdGltZSBvdmVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQhuZnRPd25lcgABCQDZBAEFBW5mdElkBQNuaWwBaQENd2l0aGRyYXdNb25leQIJYXVjdGlvbklkEGN1cnJlbnRfY3VycmVuY3kEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQLYXNpbWlTdHJpbmcCLDl5aEpEZldqUHB2NnRGaldSRDFBSnlCUXdhdXNKZjJaZHh6TG44NlVrbm5xBAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQECmFtb3VudFVuaXQJANkEAQUQY3VycmVudF9jdXJyZW5jeQQIYmlkUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQECGFzQmlkZGVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIHX3dpbm5lcgQJYmlkRm9yTkZUCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAMJAAACBRBjdXJyZW50X2N1cnJlbmN5BQthc2ltaVN0cmluZwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIIX25mdF9iaWQCCFdJVEhEUkFXCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkBQliaWRGb3JORlQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCHF9iaWRkaW5nX3ByaWNlX3JlZnVuZF9hbW91bnQFCGJpZFByaWNlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkBDXBhcnNlSW50VmFsdWUBBQhiaWRQcmljZQUKYW1vdW50VW5pdAUDbmlsAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kCBVdBVkVTCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAghfbmZ0X2JpZAIIV0lUSERSQVcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCB19uZnRfaWQFCWJpZEZvck5GVAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIcX2JpZGRpbmdfcHJpY2VfcmVmdW5kX2Ftb3VudAUIYmlkUHJpY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEFCGJpZFByaWNlBQR1bml0BQNuaWwFA25pbAFpARRidXlBbGxQcm9kdWN0c19hc2ltaQEHbmZ0SW5mbwQFYnV5ZXIIBQFpBmNhbGxlcgQMYnV5ZXJCYWxhbmNlCQDwBwIFBWJ1eWVyASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgQEbmZUMQkAtQkCCQCRAwIFB25mdEluZm8AAAIBXwQEbmZUMgkAtQkCCQCRAwIFB25mdEluZm8AAQIBXwQEbmZUMwkAtQkCCQCRAwIFB25mdEluZm8AAgIBXwQEbmZUNAkAtQkCCQCRAwIFB25mdEluZm8AAwIBXwQEbmZUNQkAtQkCCQCRAwIFB25mdEluZm8ABAIBXwQGYW1vdW50CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQIcmVhbGNvc3QJAGUCBQZhbW91bnQJAGgCCQBpAgUGYW1vdW50AOgHABkEC3BsYXRmb3JtZmVlCQBlAgUGYW1vdW50BQhyZWFsY29zdAQOcm95YWxpdHlBbW91bnQJAGgCCQBpAgUGYW1vdW50AGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQxAAMECGxhc3RDb3N0CQBlAgUGYW1vdW50CQBkAgUOcm95YWxpdHlBbW91bnQFC3BsYXRmb3JtZmVlBAdhbW91bnQxCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwABBmFtb3VudAQJcmVhbGNvc3QxCQBlAgUHYW1vdW50MQkAaAIJAGkCBQdhbW91bnQxAOgHABkEDHBsYXRmb3JtZmVlMQkAZQIFB2Ftb3VudDEFCXJlYWxjb3N0MQQPcm95YWxpdHlBbW91bnQxCQBoAgkAaQIFB2Ftb3VudDEAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDIAAwQJbGFzdENvc3QxCQBlAgUHYW1vdW50MQkAZAIFD3JveWFsaXR5QW1vdW50MQUMcGxhdGZvcm1mZWUxBAdhbW91bnQyCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwACBmFtb3VudAQJcmVhbGNvc3QyCQBlAgUHYW1vdW50MgkAaAIJAGkCBQdhbW91bnQyAOgHABkEDHBsYXRmb3JtZmVlMgkAZQIFB2Ftb3VudDIFCXJlYWxjb3N0MgQPcm95YWxpdHlBbW91bnQyCQBoAgkAaQIFB2Ftb3VudDIAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDMAAwQJbGFzdENvc3QyCQBlAgUHYW1vdW50MgkAZAIFD3JveWFsaXR5QW1vdW50MgUMcGxhdGZvcm1mZWUyBAdhbW91bnQzCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwADBmFtb3VudAQJcmVhbGNvc3QzCQBlAgUHYW1vdW50MwkAaAIJAGkCBQdhbW91bnQzAOgHABkEDHBsYXRmb3JtZmVlMwkAZQIFB2Ftb3VudDMFCXJlYWxjb3N0MwQPcm95YWxpdHlBbW91bnQzCQBoAgkAaQIFB2Ftb3VudDMAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDQAAwQJbGFzdENvc3QzCQBlAgUHYW1vdW50MwkAZAIFD3JveWFsaXR5QW1vdW50MwUMcGxhdGZvcm1mZWUzBAdhbW91bnQ0CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAEBmFtb3VudAQJcmVhbGNvc3Q0CQBlAgUHYW1vdW50NAkAaAIJAGkCBQdhbW91bnQ0AOgHABkEDHBsYXRmb3JtZmVlNAkAZQIFB2Ftb3VudDQFCXJlYWxjb3N0NAQPcm95YWxpdHlBbW91bnQ0CQBoAgkAaQIFB2Ftb3VudDQAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDUAAwQJbGFzdENvc3Q0CQBlAgUHYW1vdW50NAkAZAIFD3JveWFsaXR5QW1vdW50NAUMcGxhdGZvcm1mZWU0AwkAAAIJAJADAQUHbmZ0SW5mbwABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAgdjcmVhdG9yCQCRAwIFBG5mVDEABAIPcm95YWxpdHlwZXJjZW50CQCRAwIFBG5mVDEAAwkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89Ag5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAEJAKwCAgIFcHJpY2UJAJEDAgUEbmZUMQACCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4FA25pbAMJAAACCQCQAwEFB25mdEluZm8AAgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwADCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMAAQUJbGFzdENvc3QyASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAQFD3JveWFsaXR5QW1vdW50MgEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4FA25pbAMJAAACCQCQAwEFB25mdEluZm8ABAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg90aGlyZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDMAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMwABAgVwcmljZQkAkQMCBQRuZlQzAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQZm91cnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNAAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ0AAECBXByaWNlCQCRAwIFBG5mVDQAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwABBQlsYXN0Q29zdDIBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMABAUPcm95YWxpdHlBbW91bnQyASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAEFCWxhc3RDb3N0MwEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAAEBQ9yb3lhbGl0eUFtb3VudDMBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPdGhpcmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQzAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDMAAQIFcHJpY2UJAJEDAgUEbmZUMwACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEGZvdXJ0aF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDQAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUNAABAgVwcmljZQkAkQMCBQRuZlQ0AAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlmdGhfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQ1AAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDUAAQIFcHJpY2UJAJEDAgUEbmZUNQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQ0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDUAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMAAQUJbGFzdENvc3QyASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAQFD3JveWFsaXR5QW1vdW50MgEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAABBQlsYXN0Q29zdDMBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQABAUPcm95YWxpdHlBbW91bnQzASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ1AAEFCWxhc3RDb3N0NAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNQAEBQ9yb3lhbGl0eUFtb3VudDQBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+BQNuaWwDCQBmAgkAkAMBBQduZnRJbmZvAAUJAAIBAi1zb3JyeSEgbWF4aW11bSBsaW1pdCBvZiB5b3VyICBjYXJ0IGlzIDUgaXRlbXMFA25pbAFpARRidXlBbGxQcm9kdWN0c193YXZlcwEHbmZ0SW5mbwQFYnV5ZXIIBQFpBmNhbGxlcgQMYnV5ZXJCYWxhbmNlCQDwBwIFBWJ1eWVyBQVXQVZFUwQEbmZUMQkAtQkCCQCRAwIFB25mdEluZm8AAAIBXwQEbmZUMgkAtQkCCQCRAwIFB25mdEluZm8AAQIBXwQEbmZUMwkAtQkCCQCRAwIFB25mdEluZm8AAgIBXwQEbmZUNAkAtQkCCQCRAwIFB25mdEluZm8AAwIBXwQEbmZUNQkAtQkCCQCRAwIFB25mdEluZm8ABAIBXwQGYW1vdW50CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQIcmVhbGNvc3QJAGUCBQZhbW91bnQJAGgCCQBpAgUGYW1vdW50AOgHABkEC3BsYXRmb3JtZmVlCQBlAgUGYW1vdW50BQhyZWFsY29zdAQOcm95YWxpdHlBbW91bnQJAGgCCQBpAgUGYW1vdW50AGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRuZlQxAAMECGxhc3RDb3N0CQBlAgUGYW1vdW50CQBkAgUOcm95YWxpdHlBbW91bnQFC3BsYXRmb3JtZmVlBAdhbW91bnQxCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwABBmFtb3VudAQJcmVhbGNvc3QxCQBlAgUHYW1vdW50MQkAaAIJAGkCBQdhbW91bnQxAOgHABkEDHBsYXRmb3JtZmVlMQkAZQIFB2Ftb3VudDEFCXJlYWxjb3N0MQQPcm95YWxpdHlBbW91bnQxCQBoAgkAaQIFB2Ftb3VudDEAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDIAAwQJbGFzdENvc3QxCQBlAgUHYW1vdW50MQkAZAIFD3JveWFsaXR5QW1vdW50MQUMcGxhdGZvcm1mZWUxBAdhbW91bnQyCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwACBmFtb3VudAQJcmVhbGNvc3QyCQBlAgUHYW1vdW50MgkAaAIJAGkCBQdhbW91bnQyAOgHABkEDHBsYXRmb3JtZmVlMgkAZQIFB2Ftb3VudDIFCXJlYWxjb3N0MgQPcm95YWxpdHlBbW91bnQyCQBoAgkAaQIFB2Ftb3VudDIAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDMAAwQJbGFzdENvc3QyCQBlAgUHYW1vdW50MgkAZAIFD3JveWFsaXR5QW1vdW50MgUMcGxhdGZvcm1mZWUyBAdhbW91bnQzCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwADBmFtb3VudAQJcmVhbGNvc3QzCQBlAgUHYW1vdW50MwkAaAIJAGkCBQdhbW91bnQzAOgHABkEDHBsYXRmb3JtZmVlMwkAZQIFB2Ftb3VudDMFCXJlYWxjb3N0MwQPcm95YWxpdHlBbW91bnQzCQBoAgkAaQIFB2Ftb3VudDMAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDQAAwQJbGFzdENvc3QzCQBlAgUHYW1vdW50MwkAZAIFD3JveWFsaXR5QW1vdW50MwUMcGxhdGZvcm1mZWUzBAdhbW91bnQ0CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAEBmFtb3VudAQJcmVhbGNvc3Q0CQBlAgUHYW1vdW50NAkAaAIJAGkCBQdhbW91bnQ0AOgHABkEDHBsYXRmb3JtZmVlNAkAZQIFB2Ftb3VudDQFCXJlYWxjb3N0NAQPcm95YWxpdHlBbW91bnQ0CQBoAgkAaQIFB2Ftb3VudDQAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDUAAwQJbGFzdENvc3Q0CQBlAgUHYW1vdW50NAkAZAIFD3JveWFsaXR5QW1vdW50NAUMcGxhdGZvcm1mZWU0AwkAAAIJAJADAQUHbmZ0SW5mbwABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAUEdW5pdAUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwACCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEFBHVuaXQFA25pbAMJAAACCQCQAwEFB25mdEluZm8AAwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg90aGlyZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDMAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMwABAgVwcmljZQkAkQMCBQRuZlQzAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMAAQUJbGFzdENvc3QyBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMABAUPcm95YWxpdHlBbW91bnQyBQR1bml0BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPdGhpcmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQzAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDMAAQIFcHJpY2UJAJEDAgUEbmZUMwACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEGZvdXJ0aF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDQAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUNAABAgVwcmljZQkAkQMCBQRuZlQ0AAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwABBQlsYXN0Q29zdDIFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwAEBQ9yb3lhbGl0eUFtb3VudDIFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAABBQlsYXN0Q29zdDMFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAAEBQ9yb3lhbGl0eUFtb3VudDMFBHVuaXQFA25pbAMJAAACCQCQAwEFB25mdEluZm8ABQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg90aGlyZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDMAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMwABAgVwcmljZQkAkQMCBQRuZlQzAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQZm91cnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNAAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ0AAECBXByaWNlCQCRAwIFBG5mVDQAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maWZ0aF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDUAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUNQABAgVwcmljZQkAkQMCBQRuZlQ1AAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAEFCWxhc3RDb3N0MgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAQFD3JveWFsaXR5QW1vdW50MgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAEFCWxhc3RDb3N0MwUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAQFD3JveWFsaXR5QW1vdW50MwUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ1AAEFCWxhc3RDb3N0NAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ1AAQFD3JveWFsaXR5QW1vdW50NAUEdW5pdAUDbmlsAwkAZgIJAJADAQUHbmZ0SW5mbwAFCQACAQItc29ycnkhIG1heGltdW0gbGltaXQgb2YgeW91ciAgY2FydCBpcyA1IGl0ZW1zBQNuaWwBaQERd2l0aGRyYXdFYXJuQXNpbWkCC3BsYXRmb3JtRmVlBmFtb3VudAQMb3duZXJBZGRyZXNzARoBVD7oA3BmvF1MMqDXLg7opx/u7L06mwp9BQMJAQIhPQIICAUBaQZjYWxsZXIFYnl0ZXMFDG93bmVyQWRkcmVzcwkAAgECGXNvcnJ5ICB5b3UgaGF2ZSBubyBhY2Nlc3MDAwkAZwIFC3BsYXRmb3JtRmVlAAAJAGcCBQtwbGF0Zm9ybUZlZQUGYW1vdW50BwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGgCBQZhbW91bnQAZAUFdGVhbXMFA25pbAUDbmlsAWkBEXdpdGhkcmF3RWFybldhdmVzAgtwbGF0Zm9ybUZlZQZhbW91bnQEDG93bmVyQWRkcmVzcwEaAVQ+6ANwZrxdTDKg1y4O6Kcf7uy9OpsKfQUDCQECIT0CCAgFAWkGY2FsbGVyBWJ5dGVzBQxvd25lckFkZHJlc3MJAAIBAhlzb3JyeSAgeW91IGhhdmUgbm8gYWNjZXNzAwMJAGcCBQtwbGF0Zm9ybUZlZQAACQBnAgULcGxhdGZvcm1GZWUFBmFtb3VudAcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBoAgUGYW1vdW50AIDC1y8FBHVuaXQFA25pbAUDbmlsAWkBDnNldFBsYXRmb3JtZmVlAQtwbGF0Zm9ybUZlZQQFYWRtaW4ICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQDYBAEFBWFkbWluAgVhZG1pbgkArAICBQtwbGF0Zm9ybUZlZQILcGxhdGZvcm1GZWUFA25pbAECdHgBBnZlcmlmeQAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACFFNldFNjcmlwdFRyYW5zYWN0aW9uBAtzZXRTY3JpcHRUeAUHJG1hdGNoMAYHI1rfag==", "height": 2611882, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F9fmuU7DBYmPLGi7f6ACWUUzLxsEyU9kYjxFDMaoEGN2 Next: 8PApBXPm5kdTrXuFijANedyZaC2JCozLAhpAFCJyzKDX Diff:
OldNewDifferences
4242 func setPaused (q) = {
4343 let r = p.caller.bytes
4444 if ((q == "true"))
45- then [StringEntry(q, ("true" + q))]
45+ then [StringEntry(toBase58String(r), ("setPaused" + q))]
4646 else if ((i == false))
47- then [StringEntry(q, ("false" + q))]
47+ then [StringEntry(toBase58String(r), ("setPaused" + q))]
4848 else nil
4949 }
5050
5151
5252
5353 @Callable(p)
54-func createNft (s,t,u,v,w,x,y,z,A,B,q) = {
54+func createNft (s,t,u,v,w,x,y,z,A,B) = {
5555 let C = Issue(s, z, 1, 0, false)
5656 let D = calculateAssetId(C)
5757 let E = p.transactionId
58- if ((q == "true"))
59- then throw("function is paused for sometimes")
58+ let F = getStringValue(this, "setPaused")
59+ if ((F == "true"))
60+ then throw("Minting is paused by admin")
6061 else [C, ScriptTransfer(p.caller, 1, D), StringEntry(((toBase58String(D) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(D) + a) + "nft_type"), v), StringEntry(((toBase58String(D) + a) + "nft_tags"), w), StringEntry(((toBase58String(D) + a) + "nft_dAppAddress"), u), StringEntry(((toBase58String(E) + a) + "royalityPercentage"), y), IntegerEntry(((toBase58String(D) + a) + "nft_selling_price"), x), StringEntry(((toBase58String(D) + a) + "nft_onSell"), A), StringEntry(((toBase58String(D) + a) + "nft_data"), B), StringEntry(((toBase58String(E) + a) + "issue_nft"), toBase58String(D))]
6162 }
6263
6364
6465
6566 @Callable(p)
66-func sellNFT (F,G) = {
67+func sellNFT (G,H) = {
6768 let E = p.transactionId
68- let H = p.caller.bytes
69- let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
70- let J = I._1
71- let K = I._2
72- if (!(l(J)))
69+ let I = p.caller.bytes
70+ let J = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
71+ let K = J._1
72+ let L = J._2
73+ if (!(l(K)))
7374 then throw("Token is not NFT")
74- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
75+ else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), G), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(K) + a) + toString(L)) + H))]
7576 }
7677
7778
7879
7980 @Callable(p)
80-func buyNFT (L,M,N,y,O) = {
81- let m = fromBase58String(L)
82- let P = {
83- let n = getString(this, (("nft_" + M) + "_owner"))
81+func buyNFT (M,N,O,y,P) = {
82+ let m = fromBase58String(M)
83+ let Q = {
84+ let n = getString(this, (("nft_" + N) + "_owner"))
8485 if ($isInstanceOf(n, "String"))
8586 then {
86- let Q = n
87- Q
87+ let R = n
88+ R
8889 }
8990 else false
9091 }
91- let F = getStringValue(((((c + a) + L) + "_") + M))
92- let R = value(p.payments[0].amount)
93- let S = (R - ((R / 100) * O))
94- let T = (R - S)
95- let U = y
96- let V = ((R * parseIntValue(U)) / 100)
97- let W = (R - (V + T))
98- if ((M == toString(p.caller)))
92+ let G = getStringValue(((((c + a) + M) + "_") + N))
93+ let S = value(p.payments[0].amount)
94+ let T = (S - ((S / 100) * P))
95+ let U = (S - T)
96+ let V = y
97+ let W = ((S * parseIntValue(V)) / 100)
98+ let X = (S - (W + U))
99+ if ((N == toString(p.caller)))
99100 then throw("current Owner of NFT not able to purchase")
100101 else if (if ((p.payments[0].assetId == f))
101- then (N != M)
102+ then (O != N)
102103 else false)
103- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, f), ScriptTransfer(Address(fromBase58String(N)), V, f), IntegerEntry((("nft_" + L) + "platform_fee"), T), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
104+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, f), ScriptTransfer(Address(fromBase58String(O)), W, f), IntegerEntry((("nft_" + M) + "platform_fee"), U), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
104105 else if (if ((p.payments[0].assetId == f))
105- then (N == M)
106+ then (O == N)
106107 else false)
107- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, f), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
108+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, f), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
108109 else if (if ((p.payments[0].assetId == unit))
109- then (N != M)
110+ then (O != N)
110111 else false)
111- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, unit), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
112+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, unit), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
112113 else if (if ((p.payments[0].assetId == unit))
113- then (N == M)
114+ then (O == N)
114115 else false)
115- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
116+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
116117 else nil
117118 }
118119
119120
120121
121122 @Callable(p)
122-func cancelSell (X) = {
123+func cancelSell (Y) = {
123124 let E = toBase58String(p.transactionId)
124- let H = p.caller.bytes
125-[StringEntry(((E + X) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(X))]
125+ let I = p.caller.bytes
126+[StringEntry(((E + Y) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(I), 1, fromBase58String(Y))]
126127 }
127128
128129
129130
130131 @Callable(p)
131-func addAuction (Y,Z,aa,ab,G) = {
132+func addAuction (Z,aa,ab,ac,H) = {
132133 let E = toBase58String(p.transactionId)
133- let X = value(p.payments[0].assetId)
134- let F = value(aa)
135- let ac = (lastBlock.height + ab)
134+ let Y = value(p.payments[0].assetId)
135+ let G = value(ab)
136+ let ad = (lastBlock.height + ac)
136137 let r = p.caller.bytes
137- let ad = {
138- let n = getString(this, (((toBase58String(X) + a) + "nft_status_") + toBase58String(r)))
138+ let ae = {
139+ let n = getString(this, (((toBase58String(Y) + a) + "nft_status_") + toBase58String(r)))
139140 if ($isInstanceOf(n, "String"))
140141 then {
141- let Q = n
142+ let R = n
142143 true
143144 }
144145 else false
145146 }
146- if ((ad == true))
147+ if ((ae == true))
147148 then throw("Already in auction list")
148- else if ((ab > e))
149+ else if ((ac > e))
149150 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
150151 else if ((p.payments[0].assetId == unit))
151152 then throw("NFT not attached")
152153 else if ((p.payments[0].assetId == f))
153154 then throw("NFT not attached")
154- else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Y), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), Z), StringEntry((E + "_nft_start_price"), aa), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(X)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
155+ else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Z), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), aa), StringEntry((E + "_nft_start_price"), ab), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(Y)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
155156 }
156157
157158
158159
159160 @Callable(p)
160-func placeBid (ae,X,t,af,ag) = {
161+func placeBid (af,Y,t,ag,ah) = {
161162 let E = toBase58String(p.transactionId)
162163 let r = p.caller.bytes
163- let m = fromBase58String(X)
164- let ah = p.payments[0].assetId
165- let ai = p.payments[0].amount
166- let aj = getStringValue(this, (ae + "_highest_bid"))
167- let ak = getString(this, (ae + "_previous_bidder"))
168- let al = getStringValue(this, (ae + "_bidder_count"))
169- let am = getStringValue(this, (ae + "_winner_of_nft"))
170- let ad = getStringValue(this, (ae + "_nft_status"))
171- if ((ad != "OPEN"))
164+ let m = fromBase58String(Y)
165+ let ai = p.payments[0].assetId
166+ let aj = p.payments[0].amount
167+ let ak = getStringValue(this, (af + "_highest_bid"))
168+ let al = getString(this, (af + "_previous_bidder"))
169+ let am = getStringValue(this, (af + "_bidder_count"))
170+ let an = getStringValue(this, (af + "_winner_of_nft"))
171+ let ae = getStringValue(this, (af + "_nft_status"))
172+ if ((ae != "OPEN"))
172173 then throw("Not open for auction")
173- else if ((parseIntValue(aj) >= ai))
174+ else if ((parseIntValue(ak) >= aj))
174175 then throw("Bid is less then starting/highest Bid")
175- else if ((aj == "0"))
176- then [StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj)]
177- else if ((aj != "0"))
178- then [ScriptTransfer(Address(fromBase58String(am)), parseIntValue(aj), ah), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af)]
176+ else if ((ak == "0"))
177+ then [StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak)]
178+ else if ((ak != "0"))
179+ then [ScriptTransfer(Address(fromBase58String(an)), parseIntValue(ak), ai), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag)]
179180 else nil
180181 }
181182
182183
183184
184185 @Callable(p)
185-func acceptBidOffer (ae,X,an,M,N,y,ag) = {
186- let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
186+func acceptBidOffer (af,Y,ao,N,O,y,ah) = {
187+ let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
187188 let E = toBase58String(p.transactionId)
188- let ap = fromBase58String(ag)
189+ let aq = fromBase58String(ah)
189190 let r = p.caller.bytes
190- let m = fromBase58String(X)
191- let aq = getStringValue(this, (ae + "_highest_bid"))
192- let ar = ((parseIntValue(aq) / 1000) * 975)
193- let T = ((parseIntValue(aq) / 1000) * 25)
194- let V = ((parseIntValue(aq) * parseIntValue(y)) / 100)
195- let as = (parseIntValue(aq) - (V + T))
196- let at = getStringValue(this, (ae + "_winner_of_nft"))
197- if (if ((ag == ao))
198- then (N != M)
191+ let m = fromBase58String(Y)
192+ let ar = getStringValue(this, (af + "_highest_bid"))
193+ let as = ((parseIntValue(ar) / 1000) * 975)
194+ let U = ((parseIntValue(ar) / 1000) * 25)
195+ let W = ((parseIntValue(ar) * parseIntValue(y)) / 100)
196+ let at = (parseIntValue(ar) - (W + U))
197+ let au = getStringValue(this, (af + "_winner_of_nft"))
198+ if (if ((ah == ap))
199+ then (O != N)
199200 else false)
200- then [ScriptTransfer(Address(r), as, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, ap), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
201- else if (if ((ag == ao))
202- then (N == M)
201+ then [ScriptTransfer(Address(r), at, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, aq), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
202+ else if (if ((ah == ap))
203+ then (O == N)
203204 else false)
204- then [ScriptTransfer(Address(r), ar, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
205- else if (if ((ag == "WAVES"))
206- then (N != M)
205+ then [ScriptTransfer(Address(r), as, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
206+ else if (if ((ah == "WAVES"))
207+ then (O != N)
207208 else false)
208- then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry("platform_fee", toString(T)), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
209- else if (if ((ag == "WAVES"))
210- then (N == M)
209+ then [ScriptTransfer(Address(r), at, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry("platform_fee", toString(U)), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
210+ else if (if ((ah == "WAVES"))
211+ then (O == N)
211212 else false)
212- then [ScriptTransfer(Address(r), ar, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
213+ then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
213214 else nil
214215 }
215216
216217
217218
218219 @Callable(p)
219-func cancelAuction (ae) = {
220+func cancelAuction (af) = {
220221 let E = toBase58String(p.transactionId)
221222 let r = p.caller.bytes
222- let au = getStringValue(this, (ae + "_nft_status"))
223- let av = getStringValue(this, (ae + "_winner_of_nft"))
224- let aw = getStringValue(this, (ae + "_nft_owner"))
225- let X = getStringValue(this, (ae + "_nft_on_auction"))
226- let ax = getStringValue(this, (ae + "_highest_bid"))
227- if ((av == "0"))
228- then [StringEntry(((E + ae) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
229- else if ((av != "0"))
223+ let av = getStringValue(this, (af + "_nft_status"))
224+ let aw = getStringValue(this, (af + "_winner_of_nft"))
225+ let ax = getStringValue(this, (af + "_nft_owner"))
226+ let Y = getStringValue(this, (af + "_nft_on_auction"))
227+ let ay = getStringValue(this, (af + "_highest_bid"))
228+ if ((aw == "0"))
229+ then [StringEntry(((E + af) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
230+ else if ((aw != "0"))
230231 then throw("soory you can't cancel it because already auction placed by someone")
231232 else nil
232233 }
234235
235236
236237 @Callable(p)
237-func manualFundTransfer (ay) = {
238- let az = p.caller.bytes
239- let aA = fromBase58String(ay)
240- let R = p.payments[0].amount
238+func manualFundTransfer (az) = {
239+ let aA = p.caller.bytes
240+ let aB = fromBase58String(az)
241+ let S = p.payments[0].amount
241242 if ((p.payments[0].assetId == unit))
242- then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, unit)]
243+ then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, unit)]
243244 else if ((p.payments[0].assetId == f))
244- then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, f)]
245+ then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, f)]
245246 else nil
246247 }
247248
248249
249250
250251 @Callable(p)
251-func nftback (ae) = {
252+func nftback (af) = {
252253 let r = p.caller.bytes
253- let X = getStringValue(this, (ae + "_nft_on_auction"))
254- let aw = getStringValue(this, (ae + "_nft_owner"))
255-[StringEntry((ae + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
254+ let Y = getStringValue(this, (af + "_nft_on_auction"))
255+ let ax = getStringValue(this, (af + "_nft_owner"))
256+[StringEntry((af + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
256257 }
257258
258259
259260
260261 @Callable(p)
261-func withdrawMoney (ae,ag) = {
262+func withdrawMoney (af,ah) = {
262263 let r = p.caller.bytes
263- let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
264+ let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
264265 let E = toBase58String(p.transactionId)
265- let ap = fromBase58String(ag)
266- let aB = getStringValue(this, (ae + "_highest_bid"))
267- let aC = getStringValue(this, (ae + "_winner"))
268- let aD = getStringValue(this, (ae + "_nft_id"))
269- if ((ag == ao))
270- then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), ap)]
271- else if ((ag == "WAVES"))
272- then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), unit)]
266+ let aq = fromBase58String(ah)
267+ let aC = getStringValue(this, (af + "_highest_bid"))
268+ let aD = getStringValue(this, (af + "_winner"))
269+ let aE = getStringValue(this, (af + "_nft_id"))
270+ if ((ah == ap))
271+ then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), aq)]
272+ else if ((ah == "WAVES"))
273+ then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), unit)]
273274 else nil
274275 }
275276
276277
277278
278279 @Callable(p)
279-func buyAllProducts_asimi (aE) = {
280- let aF = p.caller
281- let aG = assetBalance(aF, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
282- let aH = split(aE[0], "_")
283- let aI = split(aE[1], "_")
284- let aJ = split(aE[2], "_")
285- let aK = split(aE[3], "_")
286- let aL = split(aE[4], "_")
287- let R = value(p.payments[0].amount)
288- let aM = (R - ((R / 1000) * 25))
289- let aN = (R - aM)
290- let V = ((R / 100) * parseIntValue(aH[3]))
291- let aO = (R - (V + aN))
292- let aP = value(p.payments[1].amount)
293- let aQ = (aP - ((aP / 1000) * 25))
294- let aR = (aP - aQ)
295- let aS = ((aP / 100) * parseIntValue(aI[3]))
296- let aT = (aP - (aS + aR))
297- let aU = value(p.payments[2].amount)
298- let aV = (aU - ((aU / 1000) * 25))
299- let aW = (aU - aV)
300- let aX = ((aU / 100) * parseIntValue(aJ[3]))
301- let aY = (aU - (aX + aW))
302- let aZ = value(p.payments[3].amount)
303- let ba = (aZ - ((aZ / 1000) * 25))
304- let bb = (aZ - ba)
305- let bc = ((aZ / 100) * parseIntValue(aK[3]))
306- let bd = (aZ - (bc + bb))
307- let be = value(p.payments[4].amount)
308- let bf = (be - ((be / 1000) * 25))
309- let bg = (be - bf)
310- let bh = ((be / 100) * parseIntValue(aL[3]))
311- let bi = (be - (bh + bg))
312- if ((size(aE) == 1))
313- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "creator") + aH[4]) + "royalitypercent") + aH[3]), ("buyer" + toString(aF))), StringEntry((("first_nft_Info=" + "seller_address") + aH[1]), ("price" + aH[2])), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
314- else if ((size(aE) == 2))
315- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
316- else if ((size(aE) == 3))
317- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
318- else if ((size(aE) == 4))
319- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
320- else if ((size(aE) == 5))
321- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bh, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
322- else if ((size(aE) > 5))
280+func buyAllProducts_asimi (aF) = {
281+ let aG = p.caller
282+ let aH = assetBalance(aG, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
283+ let aI = split(aF[0], "_")
284+ let aJ = split(aF[1], "_")
285+ let aK = split(aF[2], "_")
286+ let aL = split(aF[3], "_")
287+ let aM = split(aF[4], "_")
288+ let S = value(p.payments[0].amount)
289+ let aN = (S - ((S / 1000) * 25))
290+ let aO = (S - aN)
291+ let W = ((S / 100) * parseIntValue(aI[3]))
292+ let aP = (S - (W + aO))
293+ let aQ = value(p.payments[1].amount)
294+ let aR = (aQ - ((aQ / 1000) * 25))
295+ let aS = (aQ - aR)
296+ let aT = ((aQ / 100) * parseIntValue(aJ[3]))
297+ let aU = (aQ - (aT + aS))
298+ let aV = value(p.payments[2].amount)
299+ let aW = (aV - ((aV / 1000) * 25))
300+ let aX = (aV - aW)
301+ let aY = ((aV / 100) * parseIntValue(aK[3]))
302+ let aZ = (aV - (aY + aX))
303+ let ba = value(p.payments[3].amount)
304+ let bb = (ba - ((ba / 1000) * 25))
305+ let bc = (ba - bb)
306+ let bd = ((ba / 100) * parseIntValue(aL[3]))
307+ let be = (ba - (bd + bc))
308+ let bf = value(p.payments[4].amount)
309+ let bg = (bf - ((bf / 1000) * 25))
310+ let bh = (bf - bg)
311+ let bi = ((bf / 100) * parseIntValue(aM[3]))
312+ let bj = (bf - (bi + bh))
313+ if ((size(aF) == 1))
314+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "creator") + aI[4]) + "royalitypercent") + aI[3]), ("buyer" + toString(aG))), StringEntry((("first_nft_Info=" + "seller_address") + aI[1]), ("price" + aI[2])), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315+ else if ((size(aF) == 2))
316+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317+ else if ((size(aF) == 3))
318+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319+ else if ((size(aF) == 4))
320+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
321+ else if ((size(aF) == 5))
322+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[1])), bj, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[4])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
323+ else if ((size(aF) > 5))
323324 then throw("sorry! maximum limit of your cart is 5 items")
324325 else nil
325326 }
327328
328329
329330 @Callable(p)
330-func buyAllProducts_waves (aE) = {
331- let aF = p.caller
332- let aG = assetBalance(aF, g)
333- let aH = split(aE[0], "_")
334- let aI = split(aE[1], "_")
335- let aJ = split(aE[2], "_")
336- let aK = split(aE[3], "_")
337- let aL = split(aE[4], "_")
338- let R = value(p.payments[0].amount)
339- let aM = (R - ((R / 1000) * 25))
340- let aN = (R - aM)
341- let V = ((R / 100) * parseIntValue(aH[3]))
342- let aO = (R - (V + aN))
343- let aP = value(p.payments[1].amount)
344- let aQ = (aP - ((aP / 1000) * 25))
345- let aR = (aP - aQ)
346- let aS = ((aP / 100) * parseIntValue(aI[3]))
347- let aT = (aP - (aS + aR))
348- let aU = value(p.payments[2].amount)
349- let aV = (aU - ((aU / 1000) * 25))
350- let aW = (aU - aV)
351- let aX = ((aU / 100) * parseIntValue(aJ[3]))
352- let aY = (aU - (aX + aW))
353- let aZ = value(p.payments[3].amount)
354- let ba = (aZ - ((aZ / 1000) * 25))
355- let bb = (aZ - ba)
356- let bc = ((aZ / 100) * parseIntValue(aK[3]))
357- let bd = (aZ - (bc + bb))
358- let be = value(p.payments[4].amount)
359- let bf = (be - ((be / 1000) * 25))
360- let bg = (be - bf)
361- let bh = ((be / 100) * parseIntValue(aL[3]))
362- let bi = (be - (bh + bg))
363- if ((size(aE) == 1))
364- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit)]
365- else if ((size(aE) == 2))
366- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit)]
367- else if ((size(aE) == 3))
368- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit)]
369- else if ((size(aE) == 4))
370- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit)]
371- else if ((size(aE) == 5))
372- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit), ScriptTransfer(Address(fromBase58String(aL[1])), bi, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bh, unit)]
373- else if ((size(aE) > 5))
331+func buyAllProducts_waves (aF) = {
332+ let aG = p.caller
333+ let aH = assetBalance(aG, g)
334+ let aI = split(aF[0], "_")
335+ let aJ = split(aF[1], "_")
336+ let aK = split(aF[2], "_")
337+ let aL = split(aF[3], "_")
338+ let aM = split(aF[4], "_")
339+ let S = value(p.payments[0].amount)
340+ let aN = (S - ((S / 1000) * 25))
341+ let aO = (S - aN)
342+ let W = ((S / 100) * parseIntValue(aI[3]))
343+ let aP = (S - (W + aO))
344+ let aQ = value(p.payments[1].amount)
345+ let aR = (aQ - ((aQ / 1000) * 25))
346+ let aS = (aQ - aR)
347+ let aT = ((aQ / 100) * parseIntValue(aJ[3]))
348+ let aU = (aQ - (aT + aS))
349+ let aV = value(p.payments[2].amount)
350+ let aW = (aV - ((aV / 1000) * 25))
351+ let aX = (aV - aW)
352+ let aY = ((aV / 100) * parseIntValue(aK[3]))
353+ let aZ = (aV - (aY + aX))
354+ let ba = value(p.payments[3].amount)
355+ let bb = (ba - ((ba / 1000) * 25))
356+ let bc = (ba - bb)
357+ let bd = ((ba / 100) * parseIntValue(aL[3]))
358+ let be = (ba - (bd + bc))
359+ let bf = value(p.payments[4].amount)
360+ let bg = (bf - ((bf / 1000) * 25))
361+ let bh = (bf - bg)
362+ let bi = ((bf / 100) * parseIntValue(aM[3]))
363+ let bj = (bf - (bi + bh))
364+ if ((size(aF) == 1))
365+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit)]
366+ else if ((size(aF) == 2))
367+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit)]
368+ else if ((size(aF) == 3))
369+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit)]
370+ else if ((size(aF) == 4))
371+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit)]
372+ else if ((size(aF) == 5))
373+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit), ScriptTransfer(Address(fromBase58String(aM[1])), bj, unit), ScriptTransfer(Address(fromBase58String(aM[4])), bi, unit)]
374+ else if ((size(aF) > 5))
374375 then throw("sorry! maximum limit of your cart is 5 items")
375376 else nil
376377 }
378379
379380
380381 @Callable(p)
381-func withdrawEarnAsimi (O,R) = {
382- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
383- if ((p.caller.bytes != bj))
382+func withdrawEarnAsimi (P,S) = {
383+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
384+ if ((p.caller.bytes != bk))
384385 then throw("sorry you have no access")
385- else if (if ((O >= 0))
386- then (O >= R)
386+ else if (if ((P >= 0))
387+ then (P >= S)
387388 else false)
388- then [ScriptTransfer(p.caller, (R * 100), f)]
389+ then [ScriptTransfer(p.caller, (S * 100), f)]
389390 else nil
390391 }
391392
392393
393394
394395 @Callable(p)
395-func withdrawEarnWaves (O,R) = {
396- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
397- if ((p.caller.bytes != bj))
396+func withdrawEarnWaves (P,S) = {
397+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
398+ if ((p.caller.bytes != bk))
398399 then throw("sorry you have no access")
399- else if (if ((O >= 0))
400- then (O >= R)
400+ else if (if ((P >= 0))
401+ then (P >= S)
401402 else false)
402- then [ScriptTransfer(p.caller, (R * 100000000), unit)]
403+ then [ScriptTransfer(p.caller, (S * 100000000), unit)]
403404 else nil
404405 }
405406
406407
407408
408409 @Callable(p)
409-func setPlatformfee (O) = {
410- let bk = p.caller.bytes
411-[StringEntry((toBase58String(bk) + "admin"), (O + "platformFee"))]
410+func setPlatformfee (P) = {
411+ let bl = p.caller.bytes
412+[StringEntry((toBase58String(bl) + "admin"), (P + "platformFee"))]
412413 }
413414
414415
415-@Verifier(bl)
416-func bm () = {
417- let n = bl
416+@Verifier(bm)
417+func bn () = {
418+ let n = bm
418419 if ($isInstanceOf(n, "SetScriptTransaction"))
419420 then {
420- let bn = n
421+ let bo = n
421422 true
422423 }
423424 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "_"
55
66 let b = "buy"
77
88 let c = "price"
99
1010 let d = "sell"
1111
1212 let e = 30
1313
1414 let f = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
1616 let g = base58''
1717
1818 let h = "bid"
1919
2020 let i = true
2121
2222 let j = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
2323
2424 let k = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
2525
2626 func l (m) = {
2727 let n = assetInfo(m)
2828 if ($isInstanceOf(n, "Asset"))
2929 then {
3030 let o = n
3131 if (if ((o.decimals == 0))
3232 then (o.quantity == 1)
3333 else false)
3434 then (o.reissuable == false)
3535 else false
3636 }
3737 else false
3838 }
3939
4040
4141 @Callable(p)
4242 func setPaused (q) = {
4343 let r = p.caller.bytes
4444 if ((q == "true"))
45- then [StringEntry(q, ("true" + q))]
45+ then [StringEntry(toBase58String(r), ("setPaused" + q))]
4646 else if ((i == false))
47- then [StringEntry(q, ("false" + q))]
47+ then [StringEntry(toBase58String(r), ("setPaused" + q))]
4848 else nil
4949 }
5050
5151
5252
5353 @Callable(p)
54-func createNft (s,t,u,v,w,x,y,z,A,B,q) = {
54+func createNft (s,t,u,v,w,x,y,z,A,B) = {
5555 let C = Issue(s, z, 1, 0, false)
5656 let D = calculateAssetId(C)
5757 let E = p.transactionId
58- if ((q == "true"))
59- then throw("function is paused for sometimes")
58+ let F = getStringValue(this, "setPaused")
59+ if ((F == "true"))
60+ then throw("Minting is paused by admin")
6061 else [C, ScriptTransfer(p.caller, 1, D), StringEntry(((toBase58String(D) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(D) + a) + "nft_type"), v), StringEntry(((toBase58String(D) + a) + "nft_tags"), w), StringEntry(((toBase58String(D) + a) + "nft_dAppAddress"), u), StringEntry(((toBase58String(E) + a) + "royalityPercentage"), y), IntegerEntry(((toBase58String(D) + a) + "nft_selling_price"), x), StringEntry(((toBase58String(D) + a) + "nft_onSell"), A), StringEntry(((toBase58String(D) + a) + "nft_data"), B), StringEntry(((toBase58String(E) + a) + "issue_nft"), toBase58String(D))]
6162 }
6263
6364
6465
6566 @Callable(p)
66-func sellNFT (F,G) = {
67+func sellNFT (G,H) = {
6768 let E = p.transactionId
68- let H = p.caller.bytes
69- let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
70- let J = I._1
71- let K = I._2
72- if (!(l(J)))
69+ let I = p.caller.bytes
70+ let J = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
71+ let K = J._1
72+ let L = J._2
73+ if (!(l(K)))
7374 then throw("Token is not NFT")
74- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
75+ else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), G), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(K) + a) + toString(L)) + H))]
7576 }
7677
7778
7879
7980 @Callable(p)
80-func buyNFT (L,M,N,y,O) = {
81- let m = fromBase58String(L)
82- let P = {
83- let n = getString(this, (("nft_" + M) + "_owner"))
81+func buyNFT (M,N,O,y,P) = {
82+ let m = fromBase58String(M)
83+ let Q = {
84+ let n = getString(this, (("nft_" + N) + "_owner"))
8485 if ($isInstanceOf(n, "String"))
8586 then {
86- let Q = n
87- Q
87+ let R = n
88+ R
8889 }
8990 else false
9091 }
91- let F = getStringValue(((((c + a) + L) + "_") + M))
92- let R = value(p.payments[0].amount)
93- let S = (R - ((R / 100) * O))
94- let T = (R - S)
95- let U = y
96- let V = ((R * parseIntValue(U)) / 100)
97- let W = (R - (V + T))
98- if ((M == toString(p.caller)))
92+ let G = getStringValue(((((c + a) + M) + "_") + N))
93+ let S = value(p.payments[0].amount)
94+ let T = (S - ((S / 100) * P))
95+ let U = (S - T)
96+ let V = y
97+ let W = ((S * parseIntValue(V)) / 100)
98+ let X = (S - (W + U))
99+ if ((N == toString(p.caller)))
99100 then throw("current Owner of NFT not able to purchase")
100101 else if (if ((p.payments[0].assetId == f))
101- then (N != M)
102+ then (O != N)
102103 else false)
103- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, f), ScriptTransfer(Address(fromBase58String(N)), V, f), IntegerEntry((("nft_" + L) + "platform_fee"), T), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
104+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, f), ScriptTransfer(Address(fromBase58String(O)), W, f), IntegerEntry((("nft_" + M) + "platform_fee"), U), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
104105 else if (if ((p.payments[0].assetId == f))
105- then (N == M)
106+ then (O == N)
106107 else false)
107- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, f), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
108+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, f), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
108109 else if (if ((p.payments[0].assetId == unit))
109- then (N != M)
110+ then (O != N)
110111 else false)
111- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), W, unit), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
112+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), X, unit), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
112113 else if (if ((p.payments[0].assetId == unit))
113- then (N == M)
114+ then (O == N)
114115 else false)
115- then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(M)), S, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(R))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
116+ then [ScriptTransfer(p.caller, 1, m), ScriptTransfer(Address(fromBase58String(N)), T, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(U)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(S))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
116117 else nil
117118 }
118119
119120
120121
121122 @Callable(p)
122-func cancelSell (X) = {
123+func cancelSell (Y) = {
123124 let E = toBase58String(p.transactionId)
124- let H = p.caller.bytes
125-[StringEntry(((E + X) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(X))]
125+ let I = p.caller.bytes
126+[StringEntry(((E + Y) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(I), 1, fromBase58String(Y))]
126127 }
127128
128129
129130
130131 @Callable(p)
131-func addAuction (Y,Z,aa,ab,G) = {
132+func addAuction (Z,aa,ab,ac,H) = {
132133 let E = toBase58String(p.transactionId)
133- let X = value(p.payments[0].assetId)
134- let F = value(aa)
135- let ac = (lastBlock.height + ab)
134+ let Y = value(p.payments[0].assetId)
135+ let G = value(ab)
136+ let ad = (lastBlock.height + ac)
136137 let r = p.caller.bytes
137- let ad = {
138- let n = getString(this, (((toBase58String(X) + a) + "nft_status_") + toBase58String(r)))
138+ let ae = {
139+ let n = getString(this, (((toBase58String(Y) + a) + "nft_status_") + toBase58String(r)))
139140 if ($isInstanceOf(n, "String"))
140141 then {
141- let Q = n
142+ let R = n
142143 true
143144 }
144145 else false
145146 }
146- if ((ad == true))
147+ if ((ae == true))
147148 then throw("Already in auction list")
148- else if ((ab > e))
149+ else if ((ac > e))
149150 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
150151 else if ((p.payments[0].assetId == unit))
151152 then throw("NFT not attached")
152153 else if ((p.payments[0].assetId == f))
153154 then throw("NFT not attached")
154- else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Y), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), Z), StringEntry((E + "_nft_start_price"), aa), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(X)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
155+ else [StringEntry(((E + "nft_start_auction_date") + toBase58String(r)), Z), StringEntry(((E + "nft_end_auction_date") + toBase58String(r)), aa), StringEntry((E + "_nft_start_price"), ab), StringEntry((E + "_nft_owner"), toString(p.caller)), StringEntry((E + "_nft_on_auction"), toBase58String(Y)), StringEntry((E + "_previous_bidder"), "none"), StringEntry((E + "_highest_bid"), "0"), StringEntry((E + "_winner_of_nft"), "0"), StringEntry((E + "_bidder_count"), "0"), StringEntry((E + "_nft_status"), "OPEN")]
155156 }
156157
157158
158159
159160 @Callable(p)
160-func placeBid (ae,X,t,af,ag) = {
161+func placeBid (af,Y,t,ag,ah) = {
161162 let E = toBase58String(p.transactionId)
162163 let r = p.caller.bytes
163- let m = fromBase58String(X)
164- let ah = p.payments[0].assetId
165- let ai = p.payments[0].amount
166- let aj = getStringValue(this, (ae + "_highest_bid"))
167- let ak = getString(this, (ae + "_previous_bidder"))
168- let al = getStringValue(this, (ae + "_bidder_count"))
169- let am = getStringValue(this, (ae + "_winner_of_nft"))
170- let ad = getStringValue(this, (ae + "_nft_status"))
171- if ((ad != "OPEN"))
164+ let m = fromBase58String(Y)
165+ let ai = p.payments[0].assetId
166+ let aj = p.payments[0].amount
167+ let ak = getStringValue(this, (af + "_highest_bid"))
168+ let al = getString(this, (af + "_previous_bidder"))
169+ let am = getStringValue(this, (af + "_bidder_count"))
170+ let an = getStringValue(this, (af + "_winner_of_nft"))
171+ let ae = getStringValue(this, (af + "_nft_status"))
172+ if ((ae != "OPEN"))
172173 then throw("Not open for auction")
173- else if ((parseIntValue(aj) >= ai))
174+ else if ((parseIntValue(ak) >= aj))
174175 then throw("Bid is less then starting/highest Bid")
175- else if ((aj == "0"))
176- then [StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj)]
177- else if ((aj != "0"))
178- then [ScriptTransfer(Address(fromBase58String(am)), parseIntValue(aj), ah), StringEntry((E + "_previous_bid_amount_refund_to_address"), am), StringEntry((E + "_prevoius_bid_amount_refund"), aj), StringEntry((ae + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((ae + "_highest_bid"), toString(ai)), StringEntry((ae + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ae + "_nft_id"), toBase58String(m)), StringEntry((ae + "_nft_owner"), t), StringEntry((((E + "_") + ae) + "_highest_bid"), toString(ai)), StringEntry((((E + "_") + ae) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + ae) + "_bidder_count"), toString((parseIntValue(al) + 1))), StringEntry((((E + "_") + ae) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af)]
176+ else if ((ak == "0"))
177+ then [StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak)]
178+ else if ((ak != "0"))
179+ then [ScriptTransfer(Address(fromBase58String(an)), parseIntValue(ak), ai), StringEntry((E + "_previous_bid_amount_refund_to_address"), an), StringEntry((E + "_prevoius_bid_amount_refund"), ak), StringEntry((af + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((af + "_highest_bid"), toString(aj)), StringEntry((af + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((af + "_nft_id"), toBase58String(m)), StringEntry((af + "_nft_owner"), t), StringEntry((((E + "_") + af) + "_highest_bid"), toString(aj)), StringEntry((((E + "_") + af) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((E + "_") + af) + "_bidder_count"), toString((parseIntValue(am) + 1))), StringEntry((((E + "_") + af) + "_nft_id"), toBase58String(m)), StringEntry((((E + "_") + af) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), ag)]
179180 else nil
180181 }
181182
182183
183184
184185 @Callable(p)
185-func acceptBidOffer (ae,X,an,M,N,y,ag) = {
186- let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
186+func acceptBidOffer (af,Y,ao,N,O,y,ah) = {
187+ let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
187188 let E = toBase58String(p.transactionId)
188- let ap = fromBase58String(ag)
189+ let aq = fromBase58String(ah)
189190 let r = p.caller.bytes
190- let m = fromBase58String(X)
191- let aq = getStringValue(this, (ae + "_highest_bid"))
192- let ar = ((parseIntValue(aq) / 1000) * 975)
193- let T = ((parseIntValue(aq) / 1000) * 25)
194- let V = ((parseIntValue(aq) * parseIntValue(y)) / 100)
195- let as = (parseIntValue(aq) - (V + T))
196- let at = getStringValue(this, (ae + "_winner_of_nft"))
197- if (if ((ag == ao))
198- then (N != M)
191+ let m = fromBase58String(Y)
192+ let ar = getStringValue(this, (af + "_highest_bid"))
193+ let as = ((parseIntValue(ar) / 1000) * 975)
194+ let U = ((parseIntValue(ar) / 1000) * 25)
195+ let W = ((parseIntValue(ar) * parseIntValue(y)) / 100)
196+ let at = (parseIntValue(ar) - (W + U))
197+ let au = getStringValue(this, (af + "_winner_of_nft"))
198+ if (if ((ah == ap))
199+ then (O != N)
199200 else false)
200- then [ScriptTransfer(Address(r), as, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, ap), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
201- else if (if ((ag == ao))
202- then (N == M)
201+ then [ScriptTransfer(Address(r), at, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, aq), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
202+ else if (if ((ah == ap))
203+ then (O == N)
203204 else false)
204- then [ScriptTransfer(Address(r), ar, ap), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
205- else if (if ((ag == "WAVES"))
206- then (N != M)
205+ then [ScriptTransfer(Address(r), as, aq), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
206+ else if (if ((ah == "WAVES"))
207+ then (O != N)
207208 else false)
208- then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), ScriptTransfer(Address(fromBase58String(N)), V, unit), StringEntry("platform_fee", toString(T)), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
209- else if (if ((ag == "WAVES"))
210- then (N == M)
209+ then [ScriptTransfer(Address(r), at, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), ScriptTransfer(Address(fromBase58String(O)), W, unit), StringEntry("platform_fee", toString(U)), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
210+ else if (if ((ah == "WAVES"))
211+ then (O == N)
211212 else false)
212- then [ScriptTransfer(Address(r), ar, unit), ScriptTransfer(Address(fromBase58String(at)), 1, m), StringEntry((E + "_amount_paid_to_owner"), aq), StringEntry((E + "_nft_transfer_to"), at), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((ae + "_amount_paid_to_owner"), aq), StringEntry((ae + "_nft_transfer_to"), at), StringEntry((ae + "_nft_status"), "REWARDED")]
213+ then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(au)), 1, m), StringEntry((E + "_amount_paid_to_owner"), ar), StringEntry((E + "_nft_transfer_to"), au), StringEntry((E + "_nft_status"), "REWARDED"), StringEntry((af + "_amount_paid_to_owner"), ar), StringEntry((af + "_nft_transfer_to"), au), StringEntry((af + "_nft_status"), "REWARDED")]
213214 else nil
214215 }
215216
216217
217218
218219 @Callable(p)
219-func cancelAuction (ae) = {
220+func cancelAuction (af) = {
220221 let E = toBase58String(p.transactionId)
221222 let r = p.caller.bytes
222- let au = getStringValue(this, (ae + "_nft_status"))
223- let av = getStringValue(this, (ae + "_winner_of_nft"))
224- let aw = getStringValue(this, (ae + "_nft_owner"))
225- let X = getStringValue(this, (ae + "_nft_on_auction"))
226- let ax = getStringValue(this, (ae + "_highest_bid"))
227- if ((av == "0"))
228- then [StringEntry(((E + ae) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
229- else if ((av != "0"))
223+ let av = getStringValue(this, (af + "_nft_status"))
224+ let aw = getStringValue(this, (af + "_winner_of_nft"))
225+ let ax = getStringValue(this, (af + "_nft_owner"))
226+ let Y = getStringValue(this, (af + "_nft_on_auction"))
227+ let ay = getStringValue(this, (af + "_highest_bid"))
228+ if ((aw == "0"))
229+ then [StringEntry(((E + af) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
230+ else if ((aw != "0"))
230231 then throw("soory you can't cancel it because already auction placed by someone")
231232 else nil
232233 }
233234
234235
235236
236237 @Callable(p)
237-func manualFundTransfer (ay) = {
238- let az = p.caller.bytes
239- let aA = fromBase58String(ay)
240- let R = p.payments[0].amount
238+func manualFundTransfer (az) = {
239+ let aA = p.caller.bytes
240+ let aB = fromBase58String(az)
241+ let S = p.payments[0].amount
241242 if ((p.payments[0].assetId == unit))
242- then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, unit)]
243+ then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, unit)]
243244 else if ((p.payments[0].assetId == f))
244- then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, f)]
245+ then [IntegerEntry((toBase58String(aA) + "_transfer"), S), StringEntry((toBase58String(aA) + "_transfer_to"), az), ScriptTransfer(Address(aB), S, f)]
245246 else nil
246247 }
247248
248249
249250
250251 @Callable(p)
251-func nftback (ae) = {
252+func nftback (af) = {
252253 let r = p.caller.bytes
253- let X = getStringValue(this, (ae + "_nft_on_auction"))
254- let aw = getStringValue(this, (ae + "_nft_owner"))
255-[StringEntry((ae + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
254+ let Y = getStringValue(this, (af + "_nft_on_auction"))
255+ let ax = getStringValue(this, (af + "_nft_owner"))
256+[StringEntry((af + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(ax)), 1, fromBase58String(Y))]
256257 }
257258
258259
259260
260261 @Callable(p)
261-func withdrawMoney (ae,ag) = {
262+func withdrawMoney (af,ah) = {
262263 let r = p.caller.bytes
263- let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
264+ let ap = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
264265 let E = toBase58String(p.transactionId)
265- let ap = fromBase58String(ag)
266- let aB = getStringValue(this, (ae + "_highest_bid"))
267- let aC = getStringValue(this, (ae + "_winner"))
268- let aD = getStringValue(this, (ae + "_nft_id"))
269- if ((ag == ao))
270- then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), ap)]
271- else if ((ag == "WAVES"))
272- then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), unit)]
266+ let aq = fromBase58String(ah)
267+ let aC = getStringValue(this, (af + "_highest_bid"))
268+ let aD = getStringValue(this, (af + "_winner"))
269+ let aE = getStringValue(this, (af + "_nft_id"))
270+ if ((ah == ap))
271+ then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), aq)]
272+ else if ((ah == "WAVES"))
273+ then [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), aE), StringEntry((af + "_bidding_price_refund_amount"), aC), ScriptTransfer(p.caller, parseIntValue(aC), unit)]
273274 else nil
274275 }
275276
276277
277278
278279 @Callable(p)
279-func buyAllProducts_asimi (aE) = {
280- let aF = p.caller
281- let aG = assetBalance(aF, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
282- let aH = split(aE[0], "_")
283- let aI = split(aE[1], "_")
284- let aJ = split(aE[2], "_")
285- let aK = split(aE[3], "_")
286- let aL = split(aE[4], "_")
287- let R = value(p.payments[0].amount)
288- let aM = (R - ((R / 1000) * 25))
289- let aN = (R - aM)
290- let V = ((R / 100) * parseIntValue(aH[3]))
291- let aO = (R - (V + aN))
292- let aP = value(p.payments[1].amount)
293- let aQ = (aP - ((aP / 1000) * 25))
294- let aR = (aP - aQ)
295- let aS = ((aP / 100) * parseIntValue(aI[3]))
296- let aT = (aP - (aS + aR))
297- let aU = value(p.payments[2].amount)
298- let aV = (aU - ((aU / 1000) * 25))
299- let aW = (aU - aV)
300- let aX = ((aU / 100) * parseIntValue(aJ[3]))
301- let aY = (aU - (aX + aW))
302- let aZ = value(p.payments[3].amount)
303- let ba = (aZ - ((aZ / 1000) * 25))
304- let bb = (aZ - ba)
305- let bc = ((aZ / 100) * parseIntValue(aK[3]))
306- let bd = (aZ - (bc + bb))
307- let be = value(p.payments[4].amount)
308- let bf = (be - ((be / 1000) * 25))
309- let bg = (be - bf)
310- let bh = ((be / 100) * parseIntValue(aL[3]))
311- let bi = (be - (bh + bg))
312- if ((size(aE) == 1))
313- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "creator") + aH[4]) + "royalitypercent") + aH[3]), ("buyer" + toString(aF))), StringEntry((("first_nft_Info=" + "seller_address") + aH[1]), ("price" + aH[2])), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
314- else if ((size(aE) == 2))
315- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
316- else if ((size(aE) == 3))
317- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
318- else if ((size(aE) == 4))
319- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
320- else if ((size(aE) == 5))
321- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), V, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bh, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
322- else if ((size(aE) > 5))
280+func buyAllProducts_asimi (aF) = {
281+ let aG = p.caller
282+ let aH = assetBalance(aG, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
283+ let aI = split(aF[0], "_")
284+ let aJ = split(aF[1], "_")
285+ let aK = split(aF[2], "_")
286+ let aL = split(aF[3], "_")
287+ let aM = split(aF[4], "_")
288+ let S = value(p.payments[0].amount)
289+ let aN = (S - ((S / 1000) * 25))
290+ let aO = (S - aN)
291+ let W = ((S / 100) * parseIntValue(aI[3]))
292+ let aP = (S - (W + aO))
293+ let aQ = value(p.payments[1].amount)
294+ let aR = (aQ - ((aQ / 1000) * 25))
295+ let aS = (aQ - aR)
296+ let aT = ((aQ / 100) * parseIntValue(aJ[3]))
297+ let aU = (aQ - (aT + aS))
298+ let aV = value(p.payments[2].amount)
299+ let aW = (aV - ((aV / 1000) * 25))
300+ let aX = (aV - aW)
301+ let aY = ((aV / 100) * parseIntValue(aK[3]))
302+ let aZ = (aV - (aY + aX))
303+ let ba = value(p.payments[3].amount)
304+ let bb = (ba - ((ba / 1000) * 25))
305+ let bc = (ba - bb)
306+ let bd = ((ba / 100) * parseIntValue(aL[3]))
307+ let be = (ba - (bd + bc))
308+ let bf = value(p.payments[4].amount)
309+ let bg = (bf - ((bf / 1000) * 25))
310+ let bh = (bf - bg)
311+ let bi = ((bf / 100) * parseIntValue(aM[3]))
312+ let bj = (bf - (bi + bh))
313+ if ((size(aF) == 1))
314+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "creator") + aI[4]) + "royalitypercent") + aI[3]), ("buyer" + toString(aG))), StringEntry((("first_nft_Info=" + "seller_address") + aI[1]), ("price" + aI[2])), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315+ else if ((size(aF) == 2))
316+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317+ else if ((size(aF) == 3))
318+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319+ else if ((size(aF) == 4))
320+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
321+ else if ((size(aF) == 5))
322+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), W, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), aY, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[1])), be, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aL[4])), bd, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[1])), bj, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aM[4])), bi, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
323+ else if ((size(aF) > 5))
323324 then throw("sorry! maximum limit of your cart is 5 items")
324325 else nil
325326 }
326327
327328
328329
329330 @Callable(p)
330-func buyAllProducts_waves (aE) = {
331- let aF = p.caller
332- let aG = assetBalance(aF, g)
333- let aH = split(aE[0], "_")
334- let aI = split(aE[1], "_")
335- let aJ = split(aE[2], "_")
336- let aK = split(aE[3], "_")
337- let aL = split(aE[4], "_")
338- let R = value(p.payments[0].amount)
339- let aM = (R - ((R / 1000) * 25))
340- let aN = (R - aM)
341- let V = ((R / 100) * parseIntValue(aH[3]))
342- let aO = (R - (V + aN))
343- let aP = value(p.payments[1].amount)
344- let aQ = (aP - ((aP / 1000) * 25))
345- let aR = (aP - aQ)
346- let aS = ((aP / 100) * parseIntValue(aI[3]))
347- let aT = (aP - (aS + aR))
348- let aU = value(p.payments[2].amount)
349- let aV = (aU - ((aU / 1000) * 25))
350- let aW = (aU - aV)
351- let aX = ((aU / 100) * parseIntValue(aJ[3]))
352- let aY = (aU - (aX + aW))
353- let aZ = value(p.payments[3].amount)
354- let ba = (aZ - ((aZ / 1000) * 25))
355- let bb = (aZ - ba)
356- let bc = ((aZ / 100) * parseIntValue(aK[3]))
357- let bd = (aZ - (bc + bb))
358- let be = value(p.payments[4].amount)
359- let bf = (be - ((be / 1000) * 25))
360- let bg = (be - bf)
361- let bh = ((be / 100) * parseIntValue(aL[3]))
362- let bi = (be - (bh + bg))
363- if ((size(aE) == 1))
364- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit)]
365- else if ((size(aE) == 2))
366- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit)]
367- else if ((size(aE) == 3))
368- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit)]
369- else if ((size(aE) == 4))
370- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit)]
371- else if ((size(aE) == 5))
372- then [StringEntry((((((("first_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aF))), StringEntry((((((("second_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aF))), StringEntry((((((("third_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aF))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aF))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aF))), ScriptTransfer(aF, 1, fromBase58String(aH[0])), ScriptTransfer(aF, 1, fromBase58String(aI[0])), ScriptTransfer(aF, 1, fromBase58String(aJ[0])), ScriptTransfer(aF, 1, fromBase58String(aK[0])), ScriptTransfer(aF, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aH[1])), aO, unit), ScriptTransfer(Address(fromBase58String(aH[4])), V, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aT, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aS, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aY, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aX, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bd, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bc, unit), ScriptTransfer(Address(fromBase58String(aL[1])), bi, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bh, unit)]
373- else if ((size(aE) > 5))
331+func buyAllProducts_waves (aF) = {
332+ let aG = p.caller
333+ let aH = assetBalance(aG, g)
334+ let aI = split(aF[0], "_")
335+ let aJ = split(aF[1], "_")
336+ let aK = split(aF[2], "_")
337+ let aL = split(aF[3], "_")
338+ let aM = split(aF[4], "_")
339+ let S = value(p.payments[0].amount)
340+ let aN = (S - ((S / 1000) * 25))
341+ let aO = (S - aN)
342+ let W = ((S / 100) * parseIntValue(aI[3]))
343+ let aP = (S - (W + aO))
344+ let aQ = value(p.payments[1].amount)
345+ let aR = (aQ - ((aQ / 1000) * 25))
346+ let aS = (aQ - aR)
347+ let aT = ((aQ / 100) * parseIntValue(aJ[3]))
348+ let aU = (aQ - (aT + aS))
349+ let aV = value(p.payments[2].amount)
350+ let aW = (aV - ((aV / 1000) * 25))
351+ let aX = (aV - aW)
352+ let aY = ((aV / 100) * parseIntValue(aK[3]))
353+ let aZ = (aV - (aY + aX))
354+ let ba = value(p.payments[3].amount)
355+ let bb = (ba - ((ba / 1000) * 25))
356+ let bc = (ba - bb)
357+ let bd = ((ba / 100) * parseIntValue(aL[3]))
358+ let be = (ba - (bd + bc))
359+ let bf = value(p.payments[4].amount)
360+ let bg = (bf - ((bf / 1000) * 25))
361+ let bh = (bf - bg)
362+ let bi = ((bf / 100) * parseIntValue(aM[3]))
363+ let bj = (bf - (bi + bh))
364+ if ((size(aF) == 1))
365+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit)]
366+ else if ((size(aF) == 2))
367+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit)]
368+ else if ((size(aF) == 3))
369+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit)]
370+ else if ((size(aF) == 4))
371+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit)]
372+ else if ((size(aF) == 5))
373+ then [StringEntry((((((("first_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aG))), StringEntry((((((("second_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aG))), StringEntry((((((("third_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aG))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aL[0]) + "seller_address") + aL[1]) + "price") + aL[2]), ("buyer" + toString(aG))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aM[0]) + "seller_address") + aM[1]) + "price") + aM[2]), ("buyer" + toString(aG))), ScriptTransfer(aG, 1, fromBase58String(aI[0])), ScriptTransfer(aG, 1, fromBase58String(aJ[0])), ScriptTransfer(aG, 1, fromBase58String(aK[0])), ScriptTransfer(aG, 1, fromBase58String(aL[0])), ScriptTransfer(aG, 1, fromBase58String(aM[0])), ScriptTransfer(Address(fromBase58String(aI[1])), aP, unit), ScriptTransfer(Address(fromBase58String(aI[4])), W, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), aU, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), aT, unit), ScriptTransfer(Address(fromBase58String(aK[1])), aZ, unit), ScriptTransfer(Address(fromBase58String(aK[4])), aY, unit), ScriptTransfer(Address(fromBase58String(aL[1])), be, unit), ScriptTransfer(Address(fromBase58String(aL[4])), bd, unit), ScriptTransfer(Address(fromBase58String(aM[1])), bj, unit), ScriptTransfer(Address(fromBase58String(aM[4])), bi, unit)]
374+ else if ((size(aF) > 5))
374375 then throw("sorry! maximum limit of your cart is 5 items")
375376 else nil
376377 }
377378
378379
379380
380381 @Callable(p)
381-func withdrawEarnAsimi (O,R) = {
382- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
383- if ((p.caller.bytes != bj))
382+func withdrawEarnAsimi (P,S) = {
383+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
384+ if ((p.caller.bytes != bk))
384385 then throw("sorry you have no access")
385- else if (if ((O >= 0))
386- then (O >= R)
386+ else if (if ((P >= 0))
387+ then (P >= S)
387388 else false)
388- then [ScriptTransfer(p.caller, (R * 100), f)]
389+ then [ScriptTransfer(p.caller, (S * 100), f)]
389390 else nil
390391 }
391392
392393
393394
394395 @Callable(p)
395-func withdrawEarnWaves (O,R) = {
396- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
397- if ((p.caller.bytes != bj))
396+func withdrawEarnWaves (P,S) = {
397+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
398+ if ((p.caller.bytes != bk))
398399 then throw("sorry you have no access")
399- else if (if ((O >= 0))
400- then (O >= R)
400+ else if (if ((P >= 0))
401+ then (P >= S)
401402 else false)
402- then [ScriptTransfer(p.caller, (R * 100000000), unit)]
403+ then [ScriptTransfer(p.caller, (S * 100000000), unit)]
403404 else nil
404405 }
405406
406407
407408
408409 @Callable(p)
409-func setPlatformfee (O) = {
410- let bk = p.caller.bytes
411-[StringEntry((toBase58String(bk) + "admin"), (O + "platformFee"))]
410+func setPlatformfee (P) = {
411+ let bl = p.caller.bytes
412+[StringEntry((toBase58String(bl) + "admin"), (P + "platformFee"))]
412413 }
413414
414415
415-@Verifier(bl)
416-func bm () = {
417- let n = bl
416+@Verifier(bm)
417+func bn () = {
418+ let n = bm
418419 if ($isInstanceOf(n, "SetScriptTransaction"))
419420 then {
420- let bn = n
421+ let bo = n
421422 true
422423 }
423424 else false
424425 }
425426

github/deemru/w8io/169f3d6 
421.63 ms