tx · 2XKgBAYksrdzHC7rmtdWssc7th3ZMqz8mwCQ5iQ7Z8H4

3MxTMV6E3ebgCzmDXaj5gAaYUurRfvvdkFy:  -0.03400000 Waves

2023.06.08 08:57 [2613300] smart account 3MxTMV6E3ebgCzmDXaj5gAaYUurRfvvdkFy > SELF 0.00000000 Waves

{ "type": 13, "id": "2XKgBAYksrdzHC7rmtdWssc7th3ZMqz8mwCQ5iQ7Z8H4", "fee": 3400000, "feeAssetId": null, "timestamp": 1686203986949, "version": 2, "chainId": 84, "sender": "3MxTMV6E3ebgCzmDXaj5gAaYUurRfvvdkFy", "senderPublicKey": "6VtENpsQqFTML5DPg7mbuHeQPrTDUN8VFWoTj4x4ZL73", "proofs": [ "5nxwcD4uAC4c5YAufUBKqfCCycqjnhYXB6XTEYiAtGvJnC2UnFvn79nNLjnqS2JB65ZVWUPisfCpEZ4wni1HngwE" ], "script": "base64:BgJwCAISAwoBCBIMCgoICAgICAEICAgIEgQKAggIEgYKBAgICAgSAwoBCBIHCgUICAgBCBIHCgUICAgIAhIJCgcICAgICAgIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKARgSAwoBGBIECgIBARIECgIBAQwACXNlcGFyYXRvcgIBXwAEa0J1eQIDYnV5AAZrUHJpY2UCBXByaWNlAAVrU2VsbAIEc2VsbAASbWF4QXVjdGlvbkR1cmF0aW9uAB4ABXRlYW1zASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgAFV0FWRVMBAAAEa0JpZAIDYmlkAAxzdGF0dXNGb3JORlQJAJYKBAIET1BFTgIGQ0xPU0VEAghSRVdBUkRFRAIIQ0FOQ0VMRUQAC2RBcHBBZGRyZXNzARoBVEq4T2zewtqT7fSO6Uo2+NVPf5XVVVtdoAEFaXNOZnQBB2Fzc2V0SWQEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFdG9rZW4FByRtYXRjaDADAwkAAAIIBQV0b2tlbghkZWNpbWFscwAACQAAAggFBXRva2VuCHF1YW50aXR5AAEHCQAAAggFBXRva2VuCnJlaXNzdWFibGUHBwcBCXNldFN0YXR1cwAJAMwIAgkBC1N0cmluZ0VudHJ5AgIGcGF1c2VkAgVmYWxzZQUDbmlsEAFpAQlzZXRQYXVzZWQBBnBhdXNlZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQICBnBhdXNlZAUGcGF1c2VkBQNuaWwBaQEJY3JlYXRlTmZ0CghuZnRfbmFtZQluZnRfb3duZXIPbmZ0X2RBcHBBZGRyZXNzCG5mdF90eXBlCG5mdF90YWdzEW5mdF9zZWxsaW5nX3ByaWNlEnJveWFsaXR5UGVyY2VudGFnZQ9uZnRfZGVzY3JpcHRpb24KbmZ0X29uU2VsbAhuZnRfZGF0YQQIbmV3VG9rZW4JAMIIBQUIbmZ0X25hbWUFD25mdF9kZXNjcmlwdGlvbgABAAAHBAdpc3N1ZUlkCQC4CAEFCG5ld1Rva2VuBAR0eElkCAUBaQ10cmFuc2FjdGlvbklkBAVwYXVzZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIGcGF1c2VkAwkAAAIFBXBhdXNlAgR0cnVlCQACAQI0TWludGluZyBpcyBwYXVzZWQgYnkgYWRtaW4hUGxlYXNlIHRyeSBhZnRlciBzb21ldGltZQkAzAgCBQhuZXdUb2tlbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHaXNzdWVJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICBU93bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90eXBlBQhuZnRfdHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90YWdzBQhuZnRfdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICD25mdF9kQXBwQWRkcmVzcwUPbmZ0X2RBcHBBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFBHR4SWQFCXNlcGFyYXRvcgIScm95YWxpdHlQZXJjZW50YWdlBRJyb3lhbGl0eVBlcmNlbnRhZ2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIRbmZ0X3NlbGxpbmdfcHJpY2UFEW5mdF9zZWxsaW5nX3ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIKbmZ0X29uU2VsbAUKbmZ0X29uU2VsbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF9kYXRhBQhuZnRfZGF0YQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQR0eElkBQlzZXBhcmF0b3ICCWlzc3VlX25mdAkA2AQBBQdpc3N1ZUlkBQNuaWwBaQEHc2VsbE5GVAIFcHJpY2UQcGF5bWVudF9jdXJyZW5jeQQEdHhJZAgFAWkNdHJhbnNhY3Rpb25JZAQGc2VsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAskdDAyMzQ0MjQyOQkAlAoCCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAZ0b2tlbjAIBQskdDAyMzQ0MjQyOQJfMQQHYW1vdW50MAgFCyR0MDIzNDQyNDI5Al8yAwkBASEBCQEFaXNOZnQBBQZ0b2tlbjAJAAIBAhBUb2tlbiBpcyBub3QgTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQVrU2VsbAkArAICCQCsAgIJAKwCAgkA2AQBBQZ0b2tlbjAFCXNlcGFyYXRvcgkApAMBBQdhbW91bnQwBRBwYXltZW50X2N1cnJlbmN5BQNuaWwBaQEGYnV5TkZUBAVuZnRJRBFjdXJyZW50X25mdF9vd25lcgdjcmVhdG9yEnJveWFsaXR5UGVyY2VudGFnZQQHYXNzZXRJZAkA2QQBBQVuZnRJRAQQY2hlY2tPd25lcklzU2FtZQQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWEHBAVwcmljZQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQCsAgIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgUFbmZ0SUQCAV8FEWN1cnJlbnRfbmZ0X293bmVyBAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAxzZWxsZXJBbW91bnQJAGUCBQZhbW91bnQJAGgCCQBpAgUGYW1vdW50AOgHABkEDHBsYXRmb3JtX2ZlZQkAZQIFBmFtb3VudAUMc2VsbGVyQW1vdW50BBNyb3lhbGl0eVBlcmNlbnRhZ2UxBRJyb3lhbGl0eVBlcmNlbnRhZ2UEDnJveWFsaXR5QW1vdW50CQBpAgkAaAIFBmFtb3VudAkBDXBhcnNlSW50VmFsdWUBBRNyb3lhbGl0eVBlcmNlbnRhZ2UxAGQECnNlbGxlckNvc3QJAGUCBQZhbW91bnQJAGQCBQ5yb3lhbGl0eUFtb3VudAUMcGxhdGZvcm1fZmVlAwkAAAIFEWN1cnJlbnRfbmZ0X293bmVyCQClCAEIBQFpBmNhbGxlcgkAAgECKWN1cnJlbnQgT3duZXIgb2YgTkZUIG5vdCBhYmxlIHRvIHB1cmNoYXNlAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXRlYW1zCQECIT0CBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQpzZWxsZXJDb3N0BQV0ZWFtcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFBXRlYW1zCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwUFbmZ0SUQCDHBsYXRmb3JtX2ZlZQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwDAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQxzZWxsZXJBbW91bnQFBXRlYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAQIhPQIFB2NyZWF0b3IFEWN1cnJlbnRfbmZ0X293bmVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFCnNlbGxlckNvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFB2NyZWF0b3IFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQxzZWxsZXJBbW91bnQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FBW5mdElEAgxwbGF0Zm9ybV9mZWUJAKQDAQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwFA25pbAFpAQpjYW5jZWxTZWxsAQVuZnRJZAQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAZzZWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQFBW5mdElkAgtfbmZ0X3N0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZzZWxsZXIAAQkA2QQBBQVuZnRJZAUDbmlsAWkBCmFkZEF1Y3Rpb24FBXN0YXJ0A2VuZApzdGFydFByaWNlCGR1cmF0aW9uEHBheW1lbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQFbmZ0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQFcHJpY2UJAQV2YWx1ZQEFCnN0YXJ0UHJpY2UECWVuZEhlaWdodAkAZAIIBQlsYXN0QmxvY2sGaGVpZ2h0BQhkdXJhdGlvbgQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBBFjaGVja05mdEF1Y3Rpb25lZAQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICCQDYBAEFBW5mdElkBQlzZXBhcmF0b3ICC25mdF9zdGF0dXNfCQDYBAEFBmNhbGxlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAGBwMJAAACBRFjaGVja05mdEF1Y3Rpb25lZAYJAAIBAhdBbHJlYWR5IGluIGF1Y3Rpb24gbGlzdAMJAGYCBQhkdXJhdGlvbgUSbWF4QXVjdGlvbkR1cmF0aW9uCQACAQkArAICAjdEdXJhdGlvbiBpcyB0b28gbG9uZy4gTXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzAgCQCkAwEFEm1heEF1Y3Rpb25EdXJhdGlvbgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAIBAhBORlQgbm90IGF0dGFjaGVkAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAAIBAhBORlQgbm90IGF0dGFjaGVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkAhZuZnRfc3RhcnRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUFc3RhcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQCFG5mdF9lbmRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUDZW5kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF9zdGFydF9wcmljZQUKc3RhcnRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCCl9uZnRfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX25mdF9vbl9hdWN0aW9uCQDYBAEFBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX3ByZXZpb3VzX2JpZGRlcgIEbm9uZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDF9oaWdoZXN0X2JpZAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDl93aW5uZXJfb2ZfbmZ0AgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAINX2JpZGRlcl9jb3VudAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAgRPUEVOBQNuaWwBaQEIcGxhY2VCaWQFCWF1Y3Rpb25JZAVuZnRJZAluZnRfb3duZXIJYmlkX3ByaWNlEGN1cnJlbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdhc3NldElkCQDZBAEFBW5mdElkBAl0b2tlblR5cGUICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQPY3VycmVudEJpZFByaWNlCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkBBhnZXRQcmV2aW91c0JpZGRlckFkZHJlc3MJAJ0IAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCEF9wcmV2aW91c19iaWRkZXIED2N1cnJlbnRCaWRDb3VudAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDV9iaWRkZXJfY291bnQEFGdldExhc3RXaW5uZXJBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQEEWNoZWNrTmZ0QXVjdGlvbmVkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMDCQECIT0CBRFjaGVja05mdEF1Y3Rpb25lZAIET1BFTgkAAgECFE5vdCBvcGVuIGZvciBhdWN0aW9uAwkAZwIJAQ1wYXJzZUludFZhbHVlAQUVZ2V0TGFzdFdpbm5lckJpZFByaWNlBQ9jdXJyZW50QmlkUHJpY2UJAAIBAiVCaWQgaXMgbGVzcyB0aGVuIHN0YXJ0aW5nL2hpZ2hlc3QgQmlkAwkAAAIFFWdldExhc3RXaW5uZXJCaWRQcmljZQIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkCQCkAwEFD2N1cnJlbnRCaWRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyBQluZnRfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX3dpbm5lcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCB19uZnRfaWQJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCD19iaWRfZm9yX25mdF9ieQkA2AQBBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfYmlkX3ByaWNlX3BsYWNlBQliaWRfcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAiZfcHJldmlvdXNfYmlkX2Ftb3VudF9yZWZ1bmRfdG9fYWRkcmVzcwUUZ2V0TGFzdFdpbm5lckFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhtfcHJldm9pdXNfYmlkX2Ftb3VudF9yZWZ1bmQFFWdldExhc3RXaW5uZXJCaWRQcmljZQUDbmlsAwkBAiE9AgUVZ2V0TGFzdFdpbm5lckJpZFByaWNlAgEwCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkBDXBhcnNlSW50VmFsdWUBBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UFCXRva2VuVHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQUDbmlsBQNuaWwBaQEOYWNjZXB0QmlkT2ZmZXIHCWF1Y3Rpb25JZAVuZnRJZBRiaWRfYW1vdW50X2Zyb21fdXNlchFjdXJyZW50X25mdF9vd25lcgdjcmVhdG9yEnJveWFsaXR5UGVyY2VudGFnZRBjdXJyZW50X2N1cnJlbmN5BAthc2ltaVN0cmluZwIsOXloSkRmV2pQcHY2dEZqV1JEMUFKeUJRd2F1c0pmMlpkeHpMbjg2VWtubnEEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQKYW1vdW50VW5pdAkA2QQBBRBjdXJyZW50X2N1cnJlbmN5BAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEB2Fzc2V0SWQJANkEAQUFbmZ0SWQEEmdldE5mdFdpbm5pbmdQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAQTZ2V0TmZ0V2lubmluZ2Ftb3VudAkAaAIJAGkCCQENcGFyc2VJbnRWYWx1ZQEFEmdldE5mdFdpbm5pbmdQcmljZQDoBwDPBwQMcGxhdGZvcm1fZmVlCQBoAgkAaQIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlAOgHABkEDnJveWFsaXR5QW1vdW50CQBpAgkAaAIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlCQENcGFyc2VJbnRWYWx1ZQEFEnJveWFsaXR5UGVyY2VudGFnZQBkBA1hdWN0aW9uZXJDb3N0CQBlAgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UJAGQCBQ5yb3lhbGl0eUFtb3VudAUMcGxhdGZvcm1fZmVlBBBnZXRBdWN0aW9uV2lubmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQDAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFC2FzaW1pU3RyaW5nCQECIT0CBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFDWF1Y3Rpb25lckNvc3QFCmFtb3VudFVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUHY3JlYXRvcgUOcm95YWxpdHlBbW91bnQFCmFtb3VudFVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQFA25pbAMDCQAAAgUQY3VycmVudF9jdXJyZW5jeQULYXNpbWlTdHJpbmcJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFE2dldE5mdFdpbm5pbmdhbW91bnQFCmFtb3VudFVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAwMJAAACBRBjdXJyZW50X2N1cnJlbmN5AgVXQVZFUwkBAiE9AgUHY3JlYXRvcgURY3VycmVudF9uZnRfb3duZXIHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGY2FsbGVyBQ1hdWN0aW9uZXJDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRBnZXRBdWN0aW9uV2lubmVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFB2NyZWF0b3IFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQICDHBsYXRmb3JtX2ZlZQkApAMBBQxwbGF0Zm9ybV9mZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQFA25pbAMDCQAAAgUQY3VycmVudF9jdXJyZW5jeQIFV0FWRVMJAAACBQdjcmVhdG9yBRFjdXJyZW50X25mdF9vd25lcgcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZjYWxsZXIFE2dldE5mdFdpbm5pbmdhbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsBQNuaWwBaQENY2FuY2VsQXVjdGlvbgEJYXVjdGlvbklkBAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQNYXVjdGlvblN0YXR1cwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzBA1iaWRkaW5nV2lubmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQECG5mdE93bmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIKX25mdF9vd25lcgQFbmZ0SWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg9fbmZ0X29uX2F1Y3Rpb24EDGJpZGRpbmdQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAMJAAACBQ1iaWRkaW5nV2lubmVyAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghDQU5DRUxFRAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUIbmZ0T3duZXIAAQkA2QQBBQVuZnRJZAUDbmlsAwkBAiE9AgUNYmlkZGluZ1dpbm5lcgIBMAkAAgECRHNvcnJ5ISB5b3UgY2FuJ3QgY2FuY2VsIGl0IGJlY2F1c2UgYWxyZWFkeSBhdWN0aW9uIHBsYWNlZCBieSBzb21lb25lBQNuaWwBaQESbWFudWFsRnVuZFRyYW5zZmVyAQ1yZWNlcGllbnRBZGRyBAZzZW5kZXIICAUBaQZjYWxsZXIFYnl0ZXMEB3JlY2l2ZXIJANkEAQUNcmVjZXBpZW50QWRkcgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICCV90cmFuc2ZlcgUGYW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICDF90cmFuc2Zlcl90bwUNcmVjZXBpZW50QWRkcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFB3JlY2l2ZXIFBmFtb3VudAUEdW5pdAUDbmlsAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICCV90cmFuc2ZlcgUGYW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkA2AQBBQZzZW5kZXICDF90cmFuc2Zlcl90bwUNcmVjZXBpZW50QWRkcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFB3JlY2l2ZXIFBmFtb3VudAUFdGVhbXMFA25pbAUDbmlsAWkBB25mdGJhY2sBCWF1Y3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAVuZnRJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCD19uZnRfb25fYXVjdGlvbgQIbmZ0T3duZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIRQXVjdGlvbl90aW1lIG92ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCG5mdE93bmVyAAEJANkEAQUFbmZ0SWQFA25pbAFpAQ13aXRoZHJhd01vbmV5AglhdWN0aW9uSWQQY3VycmVudF9jdXJyZW5jeQQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAthc2ltaVN0cmluZwIsOXloSkRmV2pQcHY2dEZqV1JEMUFKeUJRd2F1c0pmMlpkeHpMbjg2VWtubnEEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQKYW1vdW50VW5pdAkA2QQBBRBjdXJyZW50X2N1cnJlbmN5BAhiaWRQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAQIYXNCaWRkZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgdfd2lubmVyBAliaWRGb3JORlQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFC2FzaW1pU3RyaW5nCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAghfbmZ0X2JpZAIIV0lUSERSQVcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCB19uZnRfaWQFCWJpZEZvck5GVAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIcX2JpZGRpbmdfcHJpY2VfcmVmdW5kX2Ftb3VudAUIYmlkUHJpY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEFCGJpZFByaWNlBQphbW91bnRVbml0BQNuaWwDCQAAAgUQY3VycmVudF9jdXJyZW5jeQIFV0FWRVMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCF9uZnRfYmlkAghXSVRIRFJBVwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAUJYmlkRm9yTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhxfYmlkZGluZ19wcmljZV9yZWZ1bmRfYW1vdW50BQhiaWRQcmljZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAQ1wYXJzZUludFZhbHVlAQUIYmlkUHJpY2UFBHVuaXQFA25pbAUDbmlsAWkBFGJ1eUFsbFByb2R1Y3RzX2FzaW1pAQduZnRJbmZvBAVidXllcggFAWkGY2FsbGVyBAxidXllckJhbGFuY2UJAPAHAgUFYnV5ZXIBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+BARuZlQxCQC1CQIJAJEDAgUHbmZ0SW5mbwAAAgFfBARuZlQyCQC1CQIJAJEDAgUHbmZ0SW5mbwABAgFfBARuZlQzCQC1CQIJAJEDAgUHbmZ0SW5mbwACAgFfBARuZlQ0CQC1CQIJAJEDAgUHbmZ0SW5mbwADAgFfBARuZlQ1CQC1CQIJAJEDAgUHbmZ0SW5mbwAEAgFfBAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAhyZWFsY29zdAkAZQIFBmFtb3VudAkAaAIJAGkCBQZhbW91bnQA6AcAGQQLcGxhdGZvcm1mZWUJAGUCBQZhbW91bnQFCHJlYWxjb3N0BA5yb3lhbGl0eUFtb3VudAkAaAIJAGkCBQZhbW91bnQAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDEAAwQIbGFzdENvc3QJAGUCBQZhbW91bnQJAGQCBQ5yb3lhbGl0eUFtb3VudAULcGxhdGZvcm1mZWUEB2Ftb3VudDEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50BAlyZWFsY29zdDEJAGUCBQdhbW91bnQxCQBoAgkAaQIFB2Ftb3VudDEA6AcAGQQMcGxhdGZvcm1mZWUxCQBlAgUHYW1vdW50MQUJcmVhbGNvc3QxBA9yb3lhbGl0eUFtb3VudDEJAGgCCQBpAgUHYW1vdW50MQBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMgADBAlsYXN0Q29zdDEJAGUCBQdhbW91bnQxCQBkAgUPcm95YWxpdHlBbW91bnQxBQxwbGF0Zm9ybWZlZTEEB2Ftb3VudDIJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAIGYW1vdW50BAlyZWFsY29zdDIJAGUCBQdhbW91bnQyCQBoAgkAaQIFB2Ftb3VudDIA6AcAGQQMcGxhdGZvcm1mZWUyCQBlAgUHYW1vdW50MgUJcmVhbGNvc3QyBA9yb3lhbGl0eUFtb3VudDIJAGgCCQBpAgUHYW1vdW50MgBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMwADBAlsYXN0Q29zdDIJAGUCBQdhbW91bnQyCQBkAgUPcm95YWxpdHlBbW91bnQyBQxwbGF0Zm9ybWZlZTIEB2Ftb3VudDMJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAMGYW1vdW50BAlyZWFsY29zdDMJAGUCBQdhbW91bnQzCQBoAgkAaQIFB2Ftb3VudDMA6AcAGQQMcGxhdGZvcm1mZWUzCQBlAgUHYW1vdW50MwUJcmVhbGNvc3QzBA9yb3lhbGl0eUFtb3VudDMJAGgCCQBpAgUHYW1vdW50MwBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNAADBAlsYXN0Q29zdDMJAGUCBQdhbW91bnQzCQBkAgUPcm95YWxpdHlBbW91bnQzBQxwbGF0Zm9ybWZlZTMEB2Ftb3VudDQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAQGYW1vdW50BAlyZWFsY29zdDQJAGUCBQdhbW91bnQ0CQBoAgkAaQIFB2Ftb3VudDQA6AcAGQQMcGxhdGZvcm1mZWU0CQBlAgUHYW1vdW50NAUJcmVhbGNvc3Q0BA9yb3lhbGl0eUFtb3VudDQJAGgCCQBpAgUHYW1vdW50NABkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNQADBAlsYXN0Q29zdDQJAGUCBQdhbW91bnQ0CQBkAgUPcm95YWxpdHlBbW91bnQ0BQxwbGF0Zm9ybWZlZTQDCQAAAgkAkAMBBQduZnRJbmZvAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACB2NyZWF0b3IJAJEDAgUEbmZUMQAEAg9yb3lhbGl0eXBlcmNlbnQJAJEDAgUEbmZUMQADCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQkArAICAgVwcmljZQkAkQMCBQRuZlQxAAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwACCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPdGhpcmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQzAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDMAAQIFcHJpY2UJAJEDAgUEbmZUMwACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwABBQlsYXN0Q29zdDIBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMABAUPcm95YWxpdHlBbW91bnQyASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwAECQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBmb3VydGhfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQ0AAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDQAAQIFcHJpY2UJAJEDAgUEbmZUNAACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQ0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAEFCWxhc3RDb3N0MgEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwAEBQ9yb3lhbGl0eUFtb3VudDIBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQAAQUJbGFzdENvc3QzASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAQFD3JveWFsaXR5QW1vdW50MwEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4FA25pbAMJAAACCQCQAwEFB25mdEluZm8ABQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg90aGlyZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDMAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMwABAgVwcmljZQkAkQMCBQRuZlQzAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQZm91cnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNAAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ0AAECBXByaWNlCQCRAwIFBG5mVDQAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maWZ0aF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDUAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUNQABAgVwcmljZQkAkQMCBQRuZlQ1AAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwABBQlsYXN0Q29zdDIBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMABAUPcm95YWxpdHlBbW91bnQyASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAEFCWxhc3RDb3N0MwEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUNAAEBQ9yb3lhbGl0eUFtb3VudDMBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDUAAQUJbGFzdENvc3Q0ASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ1AAQFD3JveWFsaXR5QW1vdW50NAEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4FA25pbAMJAGYCCQCQAwEFB25mdEluZm8ABQkAAgECLXNvcnJ5ISBtYXhpbXVtIGxpbWl0IG9mIHlvdXIgIGNhcnQgaXMgNSBpdGVtcwUDbmlsAWkBFGJ1eUFsbFByb2R1Y3RzX3dhdmVzAQduZnRJbmZvBAVidXllcggFAWkGY2FsbGVyBAxidXllckJhbGFuY2UJAPAHAgUFYnV5ZXIFBVdBVkVTBARuZlQxCQC1CQIJAJEDAgUHbmZ0SW5mbwAAAgFfBARuZlQyCQC1CQIJAJEDAgUHbmZ0SW5mbwABAgFfBARuZlQzCQC1CQIJAJEDAgUHbmZ0SW5mbwACAgFfBARuZlQ0CQC1CQIJAJEDAgUHbmZ0SW5mbwADAgFfBARuZlQ1CQC1CQIJAJEDAgUHbmZ0SW5mbwAEAgFfBAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAhyZWFsY29zdAkAZQIFBmFtb3VudAkAaAIJAGkCBQZhbW91bnQA6AcAGQQLcGxhdGZvcm1mZWUJAGUCBQZhbW91bnQFCHJlYWxjb3N0BA5yb3lhbGl0eUFtb3VudAkAaAIJAGkCBQZhbW91bnQAZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBG5mVDEAAwQIbGFzdENvc3QJAGUCBQZhbW91bnQJAGQCBQ5yb3lhbGl0eUFtb3VudAULcGxhdGZvcm1mZWUEB2Ftb3VudDEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50BAlyZWFsY29zdDEJAGUCBQdhbW91bnQxCQBoAgkAaQIFB2Ftb3VudDEA6AcAGQQMcGxhdGZvcm1mZWUxCQBlAgUHYW1vdW50MQUJcmVhbGNvc3QxBA9yb3lhbGl0eUFtb3VudDEJAGgCCQBpAgUHYW1vdW50MQBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMgADBAlsYXN0Q29zdDEJAGUCBQdhbW91bnQxCQBkAgUPcm95YWxpdHlBbW91bnQxBQxwbGF0Zm9ybWZlZTEEB2Ftb3VudDIJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAIGYW1vdW50BAlyZWFsY29zdDIJAGUCBQdhbW91bnQyCQBoAgkAaQIFB2Ftb3VudDIA6AcAGQQMcGxhdGZvcm1mZWUyCQBlAgUHYW1vdW50MgUJcmVhbGNvc3QyBA9yb3lhbGl0eUFtb3VudDIJAGgCCQBpAgUHYW1vdW50MgBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUMwADBAlsYXN0Q29zdDIJAGUCBQdhbW91bnQyCQBkAgUPcm95YWxpdHlBbW91bnQyBQxwbGF0Zm9ybWZlZTIEB2Ftb3VudDMJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAMGYW1vdW50BAlyZWFsY29zdDMJAGUCBQdhbW91bnQzCQBoAgkAaQIFB2Ftb3VudDMA6AcAGQQMcGxhdGZvcm1mZWUzCQBlAgUHYW1vdW50MwUJcmVhbGNvc3QzBA9yb3lhbGl0eUFtb3VudDMJAGgCCQBpAgUHYW1vdW50MwBkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNAADBAlsYXN0Q29zdDMJAGUCBQdhbW91bnQzCQBkAgUPcm95YWxpdHlBbW91bnQzBQxwbGF0Zm9ybWZlZTMEB2Ftb3VudDQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAQGYW1vdW50BAlyZWFsY29zdDQJAGUCBQdhbW91bnQ0CQBoAgkAaQIFB2Ftb3VudDQA6AcAGQQMcGxhdGZvcm1mZWU0CQBlAgUHYW1vdW50NAUJcmVhbGNvc3Q0BA9yb3lhbGl0eUFtb3VudDQJAGgCCQBpAgUHYW1vdW50NABkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbmZUNQADBAlsYXN0Q29zdDQJAGUCBQdhbW91bnQ0CQBkAgUPcm95YWxpdHlBbW91bnQ0BQxwbGF0Zm9ybWZlZTQDCQAAAgkAkAMBBQduZnRJbmZvAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50BQR1bml0BQNuaWwDCQAAAgkAkAMBBQduZnRJbmZvAAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPZmlyc3RfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQxAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDEAAQIFcHJpY2UJAJEDAgUEbmZUMQACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEHNlY29uZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDIAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMgABAgVwcmljZQkAkQMCBQRuZlQyAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQUEdW5pdAUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwADCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAEFCGxhc3RDb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEABAUOcm95YWxpdHlBbW91bnQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgABBQlsYXN0Q29zdDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMgAEBQ9yb3lhbGl0eUFtb3VudDEFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwABBQlsYXN0Q29zdDIFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMwAEBQ9yb3lhbGl0eUFtb3VudDIFBHVuaXQFA25pbAMJAAACCQCQAwEFB25mdEluZm8ABAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9maXJzdF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDEAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMQABAgVwcmljZQkAkQMCBQRuZlQxAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQc2Vjb25kX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMgAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQyAAECBXByaWNlCQCRAwIFBG5mVDIAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg90aGlyZF9uZnRfSW5mbz0CBW5mdElkCQCRAwIFBG5mVDMAAAIOc2VsbGVyX2FkZHJlc3MJAJEDAgUEbmZUMwABAgVwcmljZQkAkQMCBQRuZlQzAAIJAKwCAgIFYnV5ZXIJAKUIAQUFYnV5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQZm91cnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNAAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ0AAECBXByaWNlCQCRAwIFBG5mVDQAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDEAAQUIbGFzdENvc3QFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQAEBQ5yb3lhbGl0eUFtb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAEFCWxhc3RDb3N0MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQyAAQFD3JveWFsaXR5QW1vdW50MQUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAEFCWxhc3RDb3N0MgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQzAAQFD3JveWFsaXR5QW1vdW50MgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAEFCWxhc3RDb3N0MwUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQ0AAQFD3JveWFsaXR5QW1vdW50MwUEdW5pdAUDbmlsAwkAAAIJAJADAQUHbmZ0SW5mbwAFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpcnN0X25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQxAAECBXByaWNlCQCRAwIFBG5mVDEAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBzZWNvbmRfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQyAAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDIAAQIFcHJpY2UJAJEDAgUEbmZUMgACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD3RoaXJkX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUMwAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQzAAECBXByaWNlCQCRAwIFBG5mVDMAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhBmb3VydGhfbmZ0X0luZm89AgVuZnRJZAkAkQMCBQRuZlQ0AAACDnNlbGxlcl9hZGRyZXNzCQCRAwIFBG5mVDQAAQIFcHJpY2UJAJEDAgUEbmZUNAACCQCsAgICBWJ1eWVyCQClCAEFBWJ1eWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD2ZpZnRoX25mdF9JbmZvPQIFbmZ0SWQJAJEDAgUEbmZUNQAAAg5zZWxsZXJfYWRkcmVzcwkAkQMCBQRuZlQ1AAECBXByaWNlCQCRAwIFBG5mVDUAAgkArAICAgVidXllcgkApQgBBQVidXllcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFYnV5ZXIAAQkA2QQBCQCRAwIFBG5mVDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVidXllcgABCQDZBAEJAJEDAgUEbmZUNAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBWJ1eWVyAAEJANkEAQkAkQMCBQRuZlQ1AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEJAJEDAgUEbmZUMQABBQhsYXN0Q29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQkAkQMCBQRuZlQxAAQFDnJveWFsaXR5QW1vdW50BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIAAQUJbGFzdENvc3QxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDIABAUPcm95YWxpdHlBbW91bnQxBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMAAQUJbGFzdENvc3QyBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDMABAUPcm95YWxpdHlBbW91bnQyBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQAAQUJbGFzdENvc3QzBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDQABAUPcm95YWxpdHlBbW91bnQzBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDUAAQUJbGFzdENvc3Q0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBCQCRAwIFBG5mVDUABAUPcm95YWxpdHlBbW91bnQ0BQR1bml0BQNuaWwDCQBmAgkAkAMBBQduZnRJbmZvAAUJAAIBAi1zb3JyeSEgbWF4aW11bSBsaW1pdCBvZiB5b3VyICBjYXJ0IGlzIDUgaXRlbXMFA25pbAFpARF3aXRoZHJhd0Vhcm5Bc2ltaQILcGxhdGZvcm1GZWUGYW1vdW50BAxvd25lckFkZHJlc3MBGgFUPugDcGa8XUwyoNcuDuinH+7svTqbCn0FAwkBAiE9AggIBQFpBmNhbGxlcgVieXRlcwUMb3duZXJBZGRyZXNzCQACAQIZc29ycnkgIHlvdSBoYXZlIG5vIGFjY2VzcwMDCQBnAgULcGxhdGZvcm1GZWUAAAkAZwIFC3BsYXRmb3JtRmVlBQZhbW91bnQHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAaAIFBmFtb3VudABkBQV0ZWFtcwUDbmlsBQNuaWwBaQERd2l0aGRyYXdFYXJuV2F2ZXMCC3BsYXRmb3JtRmVlBmFtb3VudAQMb3duZXJBZGRyZXNzARoBVD7oA3BmvF1MMqDXLg7opx/u7L06mwp9BQMJAQIhPQIICAUBaQZjYWxsZXIFYnl0ZXMFDG93bmVyQWRkcmVzcwkAAgECGXNvcnJ5ICB5b3UgaGF2ZSBubyBhY2Nlc3MDAwkAZwIFC3BsYXRmb3JtRmVlAAAJAGcCBQtwbGF0Zm9ybUZlZQUGYW1vdW50BwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGgCBQZhbW91bnQAgMLXLwUEdW5pdAUDbmlsBQNuaWwBAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQLc2V0U2NyaXB0VHgFByRtYXRjaDAGB91Dsrc=", "height": 2613300, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HbZ2exuq1rnzoRK2AdQKrYqqYzyiCNrPMCrb2hEjzbt3 Next: JEJQwJ2U1iwr2gJ2SNvs3N1FYzWnc4mVgWdvjrJKAC4G Diff:
OldNewDifferences
3636 }
3737
3838
39-let o = "false"
39+func o () = [StringEntry("paused", "false")]
40+
4041
4142 @Callable(p)
42-func setPaused (o) = {
43- let q = p.caller.bytes
44-[StringEntry("paused", o)]
43+func setPaused (q) = {
44+ let r = p.caller.bytes
45+[StringEntry("paused", q)]
4546 }
4647
4748
4849
4950 @Callable(p)
50-func createNft (r,s,t,u,v,w,x,y,z,A) = {
51- let B = Issue(r, y, 1, 0, false)
52- let C = calculateAssetId(B)
53- let D = p.transactionId
54- let E = getStringValue(this, "paused")
55- if ((E == "true"))
51+func createNft (s,t,u,v,w,x,y,z,A,B) = {
52+ let C = Issue(s, z, 1, 0, false)
53+ let D = calculateAssetId(C)
54+ let E = p.transactionId
55+ let F = getStringValue(this, "paused")
56+ if ((F == "true"))
5657 then throw("Minting is paused by admin!Please try after sometime")
57- else [B, ScriptTransfer(p.caller, 1, C), StringEntry(((toBase58String(C) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(C) + a) + "nft_type"), u), StringEntry(((toBase58String(C) + a) + "nft_tags"), v), StringEntry(((toBase58String(C) + a) + "nft_dAppAddress"), t), StringEntry(((toBase58String(D) + a) + "royalityPercentage"), x), IntegerEntry(((toBase58String(C) + a) + "nft_selling_price"), w), StringEntry(((toBase58String(C) + a) + "nft_onSell"), z), StringEntry(((toBase58String(C) + a) + "nft_data"), A), StringEntry(((toBase58String(D) + a) + "issue_nft"), toBase58String(C))]
58+ 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))]
5859 }
5960
6061
6162
6263 @Callable(p)
63-func sellNFT (F,G) = {
64- let D = p.transactionId
65- let H = p.caller.bytes
66- let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
67- let J = I._1
68- let K = I._2
69- if (!(k(J)))
64+func sellNFT (G,H) = {
65+ let E = p.transactionId
66+ let I = p.caller.bytes
67+ let J = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
68+ let K = J._1
69+ let L = J._2
70+ if (!(k(K)))
7071 then throw("Token is not NFT")
71- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
72+ else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), G), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(K) + a) + toString(L)) + H))]
7273 }
7374
7475
7576
7677 @Callable(p)
77-func buyNFT (L,M,N,x) = {
78- let l = fromBase58String(L)
79- let O = {
80- let m = getString(this, (("nft_" + M) + "_owner"))
78+func buyNFT (M,N,O,y) = {
79+ let l = fromBase58String(M)
80+ let P = {
81+ let m = getString(this, (("nft_" + N) + "_owner"))
8182 if ($isInstanceOf(m, "String"))
8283 then {
83- let P = m
84- P
84+ let Q = m
85+ Q
8586 }
8687 else false
8788 }
88- let F = getStringValue(((((c + a) + L) + "_") + M))
89- let Q = value(p.payments[0].amount)
90- let R = (Q - ((Q / 1000) * 25))
91- let S = (Q - R)
92- let T = x
93- let U = ((Q * parseIntValue(T)) / 100)
94- let V = (Q - (U + S))
95- if ((M == toString(p.caller)))
89+ let G = getStringValue(((((c + a) + M) + "_") + N))
90+ let R = value(p.payments[0].amount)
91+ let S = (R - ((R / 1000) * 25))
92+ let T = (R - S)
93+ let U = y
94+ let V = ((R * parseIntValue(U)) / 100)
95+ let W = (R - (V + T))
96+ if ((N == toString(p.caller)))
9697 then throw("current Owner of NFT not able to purchase")
9798 else if (if ((p.payments[0].assetId == f))
98- then (N != M)
99+ then (O != N)
99100 else false)
100- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, f), ScriptTransfer(Address(fromBase58String(N)), U, f), IntegerEntry((("nft_" + L) + "platform_fee"), S), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
101+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), W, f), ScriptTransfer(Address(fromBase58String(O)), V, f), IntegerEntry((("nft_" + M) + "platform_fee"), T), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
101102 else if (if ((p.payments[0].assetId == f))
102- then (N == M)
103+ then (O == N)
103104 else false)
104- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, f), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
105+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), S, f), StringEntry((("nft_" + M) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
105106 else if (if ((p.payments[0].assetId == unit))
106- then (N != M)
107+ then (O != N)
107108 else false)
108- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, unit), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
109+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), W, unit), ScriptTransfer(Address(fromBase58String(O)), V, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
109110 else if (if ((p.payments[0].assetId == unit))
110- then (N == M)
111+ then (O == N)
111112 else false)
112- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
113+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), S, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
113114 else nil
114115 }
115116
116117
117118
118119 @Callable(p)
119-func cancelSell (W) = {
120- let D = toBase58String(p.transactionId)
121- let H = p.caller.bytes
122-[StringEntry(((D + W) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(W))]
120+func cancelSell (X) = {
121+ let E = toBase58String(p.transactionId)
122+ let I = p.caller.bytes
123+[StringEntry(((E + X) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(I), 1, fromBase58String(X))]
123124 }
124125
125126
126127
127128 @Callable(p)
128-func addAuction (X,Y,Z,aa,G) = {
129- let D = toBase58String(p.transactionId)
130- let W = value(p.payments[0].assetId)
131- let F = value(Z)
132- let ab = (lastBlock.height + aa)
133- let q = p.caller.bytes
134- let ac = {
135- let m = getString(this, (((toBase58String(W) + a) + "nft_status_") + toBase58String(q)))
129+func addAuction (Y,Z,aa,ab,H) = {
130+ let E = toBase58String(p.transactionId)
131+ let X = value(p.payments[0].assetId)
132+ let G = value(aa)
133+ let ac = (lastBlock.height + ab)
134+ let r = p.caller.bytes
135+ let ad = {
136+ let m = getString(this, (((toBase58String(X) + a) + "nft_status_") + toBase58String(r)))
136137 if ($isInstanceOf(m, "String"))
137138 then {
138- let P = m
139+ let Q = m
139140 true
140141 }
141142 else false
142143 }
143- if ((ac == true))
144+ if ((ad == true))
144145 then throw("Already in auction list")
145- else if ((aa > e))
146+ else if ((ab > e))
146147 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
147148 else if ((p.payments[0].assetId == unit))
148149 then throw("NFT not attached")
149150 else if ((p.payments[0].assetId == f))
150151 then throw("NFT not attached")
151- else [StringEntry(((D + "nft_start_auction_date") + toBase58String(q)), X), StringEntry(((D + "nft_end_auction_date") + toBase58String(q)), Y), StringEntry((D + "_nft_start_price"), Z), StringEntry((D + "_nft_owner"), toString(p.caller)), StringEntry((D + "_nft_on_auction"), toBase58String(W)), StringEntry((D + "_previous_bidder"), "none"), StringEntry((D + "_highest_bid"), "0"), StringEntry((D + "_winner_of_nft"), "0"), StringEntry((D + "_bidder_count"), "0"), StringEntry((D + "_nft_status"), "OPEN")]
152+ 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")]
152153 }
153154
154155
155156
156157 @Callable(p)
157-func placeBid (ad,W,s,ae,af) = {
158- let D = toBase58String(p.transactionId)
159- let q = p.caller.bytes
160- let l = fromBase58String(W)
161- let ag = p.payments[0].assetId
162- let ah = p.payments[0].amount
163- let ai = getStringValue(this, (ad + "_highest_bid"))
164- let aj = getString(this, (ad + "_previous_bidder"))
165- let ak = getStringValue(this, (ad + "_bidder_count"))
166- let al = getStringValue(this, (ad + "_winner_of_nft"))
167- let ac = getStringValue(this, (ad + "_nft_status"))
168- if ((ac != "OPEN"))
158+func placeBid (ae,X,t,af,ag) = {
159+ let E = toBase58String(p.transactionId)
160+ let r = p.caller.bytes
161+ let l = fromBase58String(X)
162+ let ah = p.payments[0].assetId
163+ let ai = p.payments[0].amount
164+ let aj = getStringValue(this, (ae + "_highest_bid"))
165+ let ak = getString(this, (ae + "_previous_bidder"))
166+ let al = getStringValue(this, (ae + "_bidder_count"))
167+ let am = getStringValue(this, (ae + "_winner_of_nft"))
168+ let ad = getStringValue(this, (ae + "_nft_status"))
169+ if ((ad != "OPEN"))
169170 then throw("Not open for auction")
170- else if ((parseIntValue(ai) >= ah))
171+ else if ((parseIntValue(aj) >= ai))
171172 then throw("Bid is less then starting/highest Bid")
172- else if ((ai == "0"))
173- then [StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai)]
174- else if ((ai != "0"))
175- then [ScriptTransfer(Address(fromBase58String(al)), parseIntValue(ai), ag), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae)]
173+ else if ((aj == "0"))
174+ 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(l)), 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(l)), 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)]
175+ else if ((aj != "0"))
176+ 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(l)), 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(l)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af)]
176177 else nil
177178 }
178179
179180
180181
181182 @Callable(p)
182-func acceptBidOffer (ad,W,am,M,N,x,af) = {
183- let an = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
184- let D = toBase58String(p.transactionId)
185- let ao = fromBase58String(af)
186- let q = p.caller.bytes
187- let l = fromBase58String(W)
188- let ap = getStringValue(this, (ad + "_highest_bid"))
189- let aq = ((parseIntValue(ap) / 1000) * 975)
190- let S = ((parseIntValue(ap) / 1000) * 25)
191- let U = ((parseIntValue(ap) * parseIntValue(x)) / 100)
192- let ar = (parseIntValue(ap) - (U + S))
193- let as = getStringValue(this, (ad + "_winner_of_nft"))
194- if (if ((af == an))
195- then (N != M)
183+func acceptBidOffer (ae,X,an,N,O,y,ag) = {
184+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
185+ let E = toBase58String(p.transactionId)
186+ let ap = fromBase58String(ag)
187+ let r = p.caller.bytes
188+ let l = fromBase58String(X)
189+ let aq = getStringValue(this, (ae + "_highest_bid"))
190+ let ar = ((parseIntValue(aq) / 1000) * 975)
191+ let T = ((parseIntValue(aq) / 1000) * 25)
192+ let V = ((parseIntValue(aq) * parseIntValue(y)) / 100)
193+ let as = (parseIntValue(aq) - (V + T))
194+ let at = getStringValue(this, (ae + "_winner_of_nft"))
195+ if (if ((ag == ao))
196+ then (O != N)
196197 else false)
197- then [ScriptTransfer(Address(q), ar, ao), ScriptTransfer(Address(fromBase58String(as)), 1, l), ScriptTransfer(Address(fromBase58String(N)), U, ao), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
198- else if (if ((af == an))
199- then (N == M)
198+ then [ScriptTransfer(Address(r), as, ap), ScriptTransfer(Address(fromBase58String(at)), 1, l), ScriptTransfer(Address(fromBase58String(O)), 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")]
199+ else if (if ((ag == ao))
200+ then (O == N)
200201 else false)
201- then [ScriptTransfer(Address(q), aq, ao), ScriptTransfer(Address(fromBase58String(as)), 1, l), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
202- else if (if ((af == "WAVES"))
203- then (N != M)
202+ then [ScriptTransfer(Address(r), ar, ap), ScriptTransfer(Address(fromBase58String(at)), 1, l), 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")]
203+ else if (if ((ag == "WAVES"))
204+ then (O != N)
204205 else false)
205- then [ScriptTransfer(Address(q), ar, unit), ScriptTransfer(Address(fromBase58String(as)), 1, l), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry("platform_fee", toString(S)), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
206- else if (if ((af == "WAVES"))
207- then (N == M)
206+ then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(at)), 1, l), ScriptTransfer(Address(fromBase58String(O)), 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")]
207+ else if (if ((ag == "WAVES"))
208+ then (O == N)
208209 else false)
209- then [ScriptTransfer(Address(q), aq, unit), ScriptTransfer(Address(fromBase58String(as)), 1, l), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
210+ then [ScriptTransfer(Address(r), ar, unit), ScriptTransfer(Address(fromBase58String(at)), 1, l), 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")]
210211 else nil
211212 }
212213
213214
214215
215216 @Callable(p)
216-func cancelAuction (ad) = {
217- let D = toBase58String(p.transactionId)
218- let q = p.caller.bytes
219- let at = getStringValue(this, (ad + "_nft_status"))
220- let au = getStringValue(this, (ad + "_winner_of_nft"))
221- let av = getStringValue(this, (ad + "_nft_owner"))
222- let W = getStringValue(this, (ad + "_nft_on_auction"))
223- let aw = getStringValue(this, (ad + "_highest_bid"))
224- if ((au == "0"))
225- then [StringEntry(((D + ad) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(av)), 1, fromBase58String(W))]
226- else if ((au != "0"))
217+func cancelAuction (ae) = {
218+ let E = toBase58String(p.transactionId)
219+ let r = p.caller.bytes
220+ let au = getStringValue(this, (ae + "_nft_status"))
221+ let av = getStringValue(this, (ae + "_winner_of_nft"))
222+ let aw = getStringValue(this, (ae + "_nft_owner"))
223+ let X = getStringValue(this, (ae + "_nft_on_auction"))
224+ let ax = getStringValue(this, (ae + "_highest_bid"))
225+ if ((av == "0"))
226+ then [StringEntry(((E + ae) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
227+ else if ((av != "0"))
227228 then throw("sorry! you can't cancel it because already auction placed by someone")
228229 else nil
229230 }
231232
232233
233234 @Callable(p)
234-func manualFundTransfer (ax) = {
235- let ay = p.caller.bytes
236- let az = fromBase58String(ax)
237- let Q = p.payments[0].amount
235+func manualFundTransfer (ay) = {
236+ let az = p.caller.bytes
237+ let aA = fromBase58String(ay)
238+ let R = p.payments[0].amount
238239 if ((p.payments[0].assetId == unit))
239- then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, unit)]
240+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, unit)]
240241 else if ((p.payments[0].assetId == f))
241- then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, f)]
242+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, f)]
242243 else nil
243244 }
244245
245246
246247
247248 @Callable(p)
248-func nftback (ad) = {
249- let q = p.caller.bytes
250- let W = getStringValue(this, (ad + "_nft_on_auction"))
251- let av = getStringValue(this, (ad + "_nft_owner"))
252-[StringEntry((ad + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(av)), 1, fromBase58String(W))]
249+func nftback (ae) = {
250+ let r = p.caller.bytes
251+ let X = getStringValue(this, (ae + "_nft_on_auction"))
252+ let aw = getStringValue(this, (ae + "_nft_owner"))
253+[StringEntry((ae + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
253254 }
254255
255256
256257
257258 @Callable(p)
258-func withdrawMoney (ad,af) = {
259- let q = p.caller.bytes
260- let an = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
261- let D = toBase58String(p.transactionId)
262- let ao = fromBase58String(af)
263- let aA = getStringValue(this, (ad + "_highest_bid"))
264- let aB = getStringValue(this, (ad + "_winner"))
265- let aC = getStringValue(this, (ad + "_nft_id"))
266- if ((af == an))
267- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), ao)]
268- else if ((af == "WAVES"))
269- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), unit)]
259+func withdrawMoney (ae,ag) = {
260+ let r = p.caller.bytes
261+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
262+ let E = toBase58String(p.transactionId)
263+ let ap = fromBase58String(ag)
264+ let aB = getStringValue(this, (ae + "_highest_bid"))
265+ let aC = getStringValue(this, (ae + "_winner"))
266+ let aD = getStringValue(this, (ae + "_nft_id"))
267+ if ((ag == ao))
268+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), ap)]
269+ else if ((ag == "WAVES"))
270+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), unit)]
270271 else nil
271272 }
272273
273274
274275
275276 @Callable(p)
276-func buyAllProducts_asimi (aD) = {
277- let aE = p.caller
278- let aF = assetBalance(aE, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
279- let aG = split(aD[0], "_")
280- let aH = split(aD[1], "_")
281- let aI = split(aD[2], "_")
282- let aJ = split(aD[3], "_")
283- let aK = split(aD[4], "_")
284- let Q = value(p.payments[0].amount)
285- let aL = (Q - ((Q / 1000) * 25))
286- let aM = (Q - aL)
287- let U = ((Q / 100) * parseIntValue(aG[3]))
288- let aN = (Q - (U + aM))
289- let aO = value(p.payments[1].amount)
290- let aP = (aO - ((aO / 1000) * 25))
291- let aQ = (aO - aP)
292- let aR = ((aO / 100) * parseIntValue(aH[3]))
293- let aS = (aO - (aR + aQ))
294- let aT = value(p.payments[2].amount)
295- let aU = (aT - ((aT / 1000) * 25))
296- let aV = (aT - aU)
297- let aW = ((aT / 100) * parseIntValue(aI[3]))
298- let aX = (aT - (aW + aV))
299- let aY = value(p.payments[3].amount)
300- let aZ = (aY - ((aY / 1000) * 25))
301- let ba = (aY - aZ)
302- let bb = ((aY / 100) * parseIntValue(aJ[3]))
303- let bc = (aY - (bb + ba))
304- let bd = value(p.payments[4].amount)
305- let be = (bd - ((bd / 1000) * 25))
306- let bf = (bd - be)
307- let bg = ((bd / 100) * parseIntValue(aK[3]))
308- let bh = (bd - (bg + bf))
309- if ((size(aD) == 1))
310- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "creator") + aG[4]) + "royalitypercent") + aG[3]), ("buyer" + toString(aE))), StringEntry((("first_nft_Info=" + "seller_address") + aG[1]), ("price" + aG[2])), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
311- else if ((size(aD) == 2))
312- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
313- else if ((size(aD) == 3))
314- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315- else if ((size(aD) == 4))
316- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317- else if ((size(aD) == 5))
318- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(aE, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bh, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bg, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319- else if ((size(aD) > 5))
277+func buyAllProducts_asimi (aE) = {
278+ let aF = p.caller
279+ let aG = assetBalance(aF, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
280+ let aH = split(aE[0], "_")
281+ let aI = split(aE[1], "_")
282+ let aJ = split(aE[2], "_")
283+ let aK = split(aE[3], "_")
284+ let aL = split(aE[4], "_")
285+ let R = value(p.payments[0].amount)
286+ let aM = (R - ((R / 1000) * 25))
287+ let aN = (R - aM)
288+ let V = ((R / 100) * parseIntValue(aH[3]))
289+ let aO = (R - (V + aN))
290+ let aP = value(p.payments[1].amount)
291+ let aQ = (aP - ((aP / 1000) * 25))
292+ let aR = (aP - aQ)
293+ let aS = ((aP / 100) * parseIntValue(aI[3]))
294+ let aT = (aP - (aS + aR))
295+ let aU = value(p.payments[2].amount)
296+ let aV = (aU - ((aU / 1000) * 25))
297+ let aW = (aU - aV)
298+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
299+ let aY = (aU - (aX + aW))
300+ let aZ = value(p.payments[3].amount)
301+ let ba = (aZ - ((aZ / 1000) * 25))
302+ let bb = (aZ - ba)
303+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
304+ let bd = (aZ - (bc + bb))
305+ let be = value(p.payments[4].amount)
306+ let bf = (be - ((be / 1000) * 25))
307+ let bg = (be - bf)
308+ let bh = ((be / 100) * parseIntValue(aL[3]))
309+ let bi = (be - (bh + bg))
310+ if ((size(aE) == 1))
311+ 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')]
312+ else if ((size(aE) == 2))
313+ 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')]
314+ else if ((size(aE) == 3))
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))), 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')]
316+ else if ((size(aE) == 4))
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))), 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')]
318+ else if ((size(aE) == 5))
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))), 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')]
320+ else if ((size(aE) > 5))
320321 then throw("sorry! maximum limit of your cart is 5 items")
321322 else nil
322323 }
324325
325326
326327 @Callable(p)
327-func buyAllProducts_waves (aD) = {
328- let aE = p.caller
329- let aF = assetBalance(aE, g)
330- let aG = split(aD[0], "_")
331- let aH = split(aD[1], "_")
332- let aI = split(aD[2], "_")
333- let aJ = split(aD[3], "_")
334- let aK = split(aD[4], "_")
335- let Q = value(p.payments[0].amount)
336- let aL = (Q - ((Q / 1000) * 25))
337- let aM = (Q - aL)
338- let U = ((Q / 100) * parseIntValue(aG[3]))
339- let aN = (Q - (U + aM))
340- let aO = value(p.payments[1].amount)
341- let aP = (aO - ((aO / 1000) * 25))
342- let aQ = (aO - aP)
343- let aR = ((aO / 100) * parseIntValue(aH[3]))
344- let aS = (aO - (aR + aQ))
345- let aT = value(p.payments[2].amount)
346- let aU = (aT - ((aT / 1000) * 25))
347- let aV = (aT - aU)
348- let aW = ((aT / 100) * parseIntValue(aI[3]))
349- let aX = (aT - (aW + aV))
350- let aY = value(p.payments[3].amount)
351- let aZ = (aY - ((aY / 1000) * 25))
352- let ba = (aY - aZ)
353- let bb = ((aY / 100) * parseIntValue(aJ[3]))
354- let bc = (aY - (bb + ba))
355- let bd = value(p.payments[4].amount)
356- let be = (bd - ((bd / 1000) * 25))
357- let bf = (bd - be)
358- let bg = ((bd / 100) * parseIntValue(aK[3]))
359- let bh = (bd - (bg + bf))
360- if ((size(aD) == 1))
361- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit)]
362- else if ((size(aD) == 2))
363- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit)]
364- else if ((size(aD) == 3))
365- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit)]
366- else if ((size(aD) == 4))
367- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, unit)]
368- else if ((size(aD) == 5))
369- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(aE, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bh, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bg, unit)]
370- else if ((size(aD) > 5))
328+func buyAllProducts_waves (aE) = {
329+ let aF = p.caller
330+ let aG = assetBalance(aF, g)
331+ let aH = split(aE[0], "_")
332+ let aI = split(aE[1], "_")
333+ let aJ = split(aE[2], "_")
334+ let aK = split(aE[3], "_")
335+ let aL = split(aE[4], "_")
336+ let R = value(p.payments[0].amount)
337+ let aM = (R - ((R / 1000) * 25))
338+ let aN = (R - aM)
339+ let V = ((R / 100) * parseIntValue(aH[3]))
340+ let aO = (R - (V + aN))
341+ let aP = value(p.payments[1].amount)
342+ let aQ = (aP - ((aP / 1000) * 25))
343+ let aR = (aP - aQ)
344+ let aS = ((aP / 100) * parseIntValue(aI[3]))
345+ let aT = (aP - (aS + aR))
346+ let aU = value(p.payments[2].amount)
347+ let aV = (aU - ((aU / 1000) * 25))
348+ let aW = (aU - aV)
349+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
350+ let aY = (aU - (aX + aW))
351+ let aZ = value(p.payments[3].amount)
352+ let ba = (aZ - ((aZ / 1000) * 25))
353+ let bb = (aZ - ba)
354+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
355+ let bd = (aZ - (bc + bb))
356+ let be = value(p.payments[4].amount)
357+ let bf = (be - ((be / 1000) * 25))
358+ let bg = (be - bf)
359+ let bh = ((be / 100) * parseIntValue(aL[3]))
360+ let bi = (be - (bh + bg))
361+ if ((size(aE) == 1))
362+ 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)]
363+ else if ((size(aE) == 2))
364+ 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)]
365+ else if ((size(aE) == 3))
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))), 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)]
367+ else if ((size(aE) == 4))
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))), 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)]
369+ else if ((size(aE) == 5))
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))), 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)]
371+ else if ((size(aE) > 5))
371372 then throw("sorry! maximum limit of your cart is 5 items")
372373 else nil
373374 }
375376
376377
377378 @Callable(p)
378-func withdrawEarnAsimi (bi,Q) = {
379- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
380- if ((p.caller.bytes != bj))
379+func withdrawEarnAsimi (bj,R) = {
380+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
381+ if ((p.caller.bytes != bk))
381382 then throw("sorry you have no access")
382- else if (if ((bi >= 0))
383- then (bi >= Q)
383+ else if (if ((bj >= 0))
384+ then (bj >= R)
384385 else false)
385- then [ScriptTransfer(p.caller, (Q * 100), f)]
386+ then [ScriptTransfer(p.caller, (R * 100), f)]
386387 else nil
387388 }
388389
389390
390391
391392 @Callable(p)
392-func withdrawEarnWaves (bi,Q) = {
393- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
394- if ((p.caller.bytes != bj))
393+func withdrawEarnWaves (bj,R) = {
394+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
395+ if ((p.caller.bytes != bk))
395396 then throw("sorry you have no access")
396- else if (if ((bi >= 0))
397- then (bi >= Q)
397+ else if (if ((bj >= 0))
398+ then (bj >= R)
398399 else false)
399- then [ScriptTransfer(p.caller, (Q * 100000000), unit)]
400+ then [ScriptTransfer(p.caller, (R * 100000000), unit)]
400401 else nil
401402 }
402403
403404
404-@Verifier(bk)
405-func bl () = {
406- let m = bk
405+@Verifier(bl)
406+func bm () = {
407+ let m = bl
407408 if ($isInstanceOf(m, "SetScriptTransaction"))
408409 then {
409- let bm = m
410+ let bn = m
410411 true
411412 }
412413 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 = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
2121
2222 let j = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
2323
2424 func k (l) = {
2525 let m = assetInfo(l)
2626 if ($isInstanceOf(m, "Asset"))
2727 then {
2828 let n = m
2929 if (if ((n.decimals == 0))
3030 then (n.quantity == 1)
3131 else false)
3232 then (n.reissuable == false)
3333 else false
3434 }
3535 else false
3636 }
3737
3838
39-let o = "false"
39+func o () = [StringEntry("paused", "false")]
40+
4041
4142 @Callable(p)
42-func setPaused (o) = {
43- let q = p.caller.bytes
44-[StringEntry("paused", o)]
43+func setPaused (q) = {
44+ let r = p.caller.bytes
45+[StringEntry("paused", q)]
4546 }
4647
4748
4849
4950 @Callable(p)
50-func createNft (r,s,t,u,v,w,x,y,z,A) = {
51- let B = Issue(r, y, 1, 0, false)
52- let C = calculateAssetId(B)
53- let D = p.transactionId
54- let E = getStringValue(this, "paused")
55- if ((E == "true"))
51+func createNft (s,t,u,v,w,x,y,z,A,B) = {
52+ let C = Issue(s, z, 1, 0, false)
53+ let D = calculateAssetId(C)
54+ let E = p.transactionId
55+ let F = getStringValue(this, "paused")
56+ if ((F == "true"))
5657 then throw("Minting is paused by admin!Please try after sometime")
57- else [B, ScriptTransfer(p.caller, 1, C), StringEntry(((toBase58String(C) + a) + "Owner"), toString(p.caller)), StringEntry(((toBase58String(C) + a) + "nft_type"), u), StringEntry(((toBase58String(C) + a) + "nft_tags"), v), StringEntry(((toBase58String(C) + a) + "nft_dAppAddress"), t), StringEntry(((toBase58String(D) + a) + "royalityPercentage"), x), IntegerEntry(((toBase58String(C) + a) + "nft_selling_price"), w), StringEntry(((toBase58String(C) + a) + "nft_onSell"), z), StringEntry(((toBase58String(C) + a) + "nft_data"), A), StringEntry(((toBase58String(D) + a) + "issue_nft"), toBase58String(C))]
58+ 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))]
5859 }
5960
6061
6162
6263 @Callable(p)
63-func sellNFT (F,G) = {
64- let D = p.transactionId
65- let H = p.caller.bytes
66- let I = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
67- let J = I._1
68- let K = I._2
69- if (!(k(J)))
64+func sellNFT (G,H) = {
65+ let E = p.transactionId
66+ let I = p.caller.bytes
67+ let J = $Tuple2(value(p.payments[0].assetId), value(p.payments[0].amount))
68+ let K = J._1
69+ let L = J._2
70+ if (!(k(K)))
7071 then throw("Token is not NFT")
71- else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), F), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(J) + a) + toString(K)) + G))]
72+ else [StringEntry(((c + a) + toBase58String(value(p.payments[0].assetId))), G), StringEntry(((toString(p.caller) + a) + d), (((toBase58String(K) + a) + toString(L)) + H))]
7273 }
7374
7475
7576
7677 @Callable(p)
77-func buyNFT (L,M,N,x) = {
78- let l = fromBase58String(L)
79- let O = {
80- let m = getString(this, (("nft_" + M) + "_owner"))
78+func buyNFT (M,N,O,y) = {
79+ let l = fromBase58String(M)
80+ let P = {
81+ let m = getString(this, (("nft_" + N) + "_owner"))
8182 if ($isInstanceOf(m, "String"))
8283 then {
83- let P = m
84- P
84+ let Q = m
85+ Q
8586 }
8687 else false
8788 }
88- let F = getStringValue(((((c + a) + L) + "_") + M))
89- let Q = value(p.payments[0].amount)
90- let R = (Q - ((Q / 1000) * 25))
91- let S = (Q - R)
92- let T = x
93- let U = ((Q * parseIntValue(T)) / 100)
94- let V = (Q - (U + S))
95- if ((M == toString(p.caller)))
89+ let G = getStringValue(((((c + a) + M) + "_") + N))
90+ let R = value(p.payments[0].amount)
91+ let S = (R - ((R / 1000) * 25))
92+ let T = (R - S)
93+ let U = y
94+ let V = ((R * parseIntValue(U)) / 100)
95+ let W = (R - (V + T))
96+ if ((N == toString(p.caller)))
9697 then throw("current Owner of NFT not able to purchase")
9798 else if (if ((p.payments[0].assetId == f))
98- then (N != M)
99+ then (O != N)
99100 else false)
100- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, f), ScriptTransfer(Address(fromBase58String(N)), U, f), IntegerEntry((("nft_" + L) + "platform_fee"), S), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
101+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), W, f), ScriptTransfer(Address(fromBase58String(O)), V, f), IntegerEntry((("nft_" + M) + "platform_fee"), T), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
101102 else if (if ((p.payments[0].assetId == f))
102- then (N == M)
103+ then (O == N)
103104 else false)
104- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, f), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
105+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), S, f), StringEntry((("nft_" + M) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
105106 else if (if ((p.payments[0].assetId == unit))
106- then (N != M)
107+ then (O != N)
107108 else false)
108- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), V, unit), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
109+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), W, unit), ScriptTransfer(Address(fromBase58String(O)), V, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
109110 else if (if ((p.payments[0].assetId == unit))
110- then (N == M)
111+ then (O == N)
111112 else false)
112- then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(M)), R, unit), StringEntry((("nft_" + L) + "platform_fee"), toString(S)), StringEntry(((toString(p.caller) + a) + b), ((L + a) + toString(Q))), DeleteEntry((("nft_" + M) + "_owner")), StringEntry((("nft_" + M) + "_owner"), toString(p.caller)), StringEntry(((L + a) + "_owner"), toString(p.caller))]
113+ then [ScriptTransfer(p.caller, 1, l), ScriptTransfer(Address(fromBase58String(N)), S, unit), StringEntry((("nft_" + M) + "platform_fee"), toString(T)), StringEntry(((toString(p.caller) + a) + b), ((M + a) + toString(R))), DeleteEntry((("nft_" + N) + "_owner")), StringEntry((("nft_" + N) + "_owner"), toString(p.caller)), StringEntry(((M + a) + "_owner"), toString(p.caller))]
113114 else nil
114115 }
115116
116117
117118
118119 @Callable(p)
119-func cancelSell (W) = {
120- let D = toBase58String(p.transactionId)
121- let H = p.caller.bytes
122-[StringEntry(((D + W) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(H), 1, fromBase58String(W))]
120+func cancelSell (X) = {
121+ let E = toBase58String(p.transactionId)
122+ let I = p.caller.bytes
123+[StringEntry(((E + X) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(I), 1, fromBase58String(X))]
123124 }
124125
125126
126127
127128 @Callable(p)
128-func addAuction (X,Y,Z,aa,G) = {
129- let D = toBase58String(p.transactionId)
130- let W = value(p.payments[0].assetId)
131- let F = value(Z)
132- let ab = (lastBlock.height + aa)
133- let q = p.caller.bytes
134- let ac = {
135- let m = getString(this, (((toBase58String(W) + a) + "nft_status_") + toBase58String(q)))
129+func addAuction (Y,Z,aa,ab,H) = {
130+ let E = toBase58String(p.transactionId)
131+ let X = value(p.payments[0].assetId)
132+ let G = value(aa)
133+ let ac = (lastBlock.height + ab)
134+ let r = p.caller.bytes
135+ let ad = {
136+ let m = getString(this, (((toBase58String(X) + a) + "nft_status_") + toBase58String(r)))
136137 if ($isInstanceOf(m, "String"))
137138 then {
138- let P = m
139+ let Q = m
139140 true
140141 }
141142 else false
142143 }
143- if ((ac == true))
144+ if ((ad == true))
144145 then throw("Already in auction list")
145- else if ((aa > e))
146+ else if ((ab > e))
146147 then throw(("Duration is too long. Must be less than or equal to 30 " + toString(e)))
147148 else if ((p.payments[0].assetId == unit))
148149 then throw("NFT not attached")
149150 else if ((p.payments[0].assetId == f))
150151 then throw("NFT not attached")
151- else [StringEntry(((D + "nft_start_auction_date") + toBase58String(q)), X), StringEntry(((D + "nft_end_auction_date") + toBase58String(q)), Y), StringEntry((D + "_nft_start_price"), Z), StringEntry((D + "_nft_owner"), toString(p.caller)), StringEntry((D + "_nft_on_auction"), toBase58String(W)), StringEntry((D + "_previous_bidder"), "none"), StringEntry((D + "_highest_bid"), "0"), StringEntry((D + "_winner_of_nft"), "0"), StringEntry((D + "_bidder_count"), "0"), StringEntry((D + "_nft_status"), "OPEN")]
152+ 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")]
152153 }
153154
154155
155156
156157 @Callable(p)
157-func placeBid (ad,W,s,ae,af) = {
158- let D = toBase58String(p.transactionId)
159- let q = p.caller.bytes
160- let l = fromBase58String(W)
161- let ag = p.payments[0].assetId
162- let ah = p.payments[0].amount
163- let ai = getStringValue(this, (ad + "_highest_bid"))
164- let aj = getString(this, (ad + "_previous_bidder"))
165- let ak = getStringValue(this, (ad + "_bidder_count"))
166- let al = getStringValue(this, (ad + "_winner_of_nft"))
167- let ac = getStringValue(this, (ad + "_nft_status"))
168- if ((ac != "OPEN"))
158+func placeBid (ae,X,t,af,ag) = {
159+ let E = toBase58String(p.transactionId)
160+ let r = p.caller.bytes
161+ let l = fromBase58String(X)
162+ let ah = p.payments[0].assetId
163+ let ai = p.payments[0].amount
164+ let aj = getStringValue(this, (ae + "_highest_bid"))
165+ let ak = getString(this, (ae + "_previous_bidder"))
166+ let al = getStringValue(this, (ae + "_bidder_count"))
167+ let am = getStringValue(this, (ae + "_winner_of_nft"))
168+ let ad = getStringValue(this, (ae + "_nft_status"))
169+ if ((ad != "OPEN"))
169170 then throw("Not open for auction")
170- else if ((parseIntValue(ai) >= ah))
171+ else if ((parseIntValue(aj) >= ai))
171172 then throw("Bid is less then starting/highest Bid")
172- else if ((ai == "0"))
173- then [StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai)]
174- else if ((ai != "0"))
175- then [ScriptTransfer(Address(fromBase58String(al)), parseIntValue(ai), ag), StringEntry((D + "_previous_bid_amount_refund_to_address"), al), StringEntry((D + "_prevoius_bid_amount_refund"), ai), StringEntry((ad + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((ad + "_highest_bid"), toString(ah)), StringEntry((ad + "_winner_of_nft"), toBase58String(p.caller.bytes)), StringEntry((ad + "_nft_id"), toBase58String(l)), StringEntry((ad + "_nft_owner"), s), StringEntry((((D + "_") + ad) + "_highest_bid"), toString(ah)), StringEntry((((D + "_") + ad) + "_winner"), toBase58String(p.caller.bytes)), StringEntry((((D + "_") + ad) + "_bidder_count"), toString((parseIntValue(ak) + 1))), StringEntry((((D + "_") + ad) + "_nft_id"), toBase58String(l)), StringEntry((((D + "_") + ad) + "_nft_owner"), s), StringEntry((D + "_bid_for_nft_by"), toBase58String(q)), StringEntry((D + "_bid_price_place"), ae)]
173+ else if ((aj == "0"))
174+ 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(l)), 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(l)), 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)]
175+ else if ((aj != "0"))
176+ 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(l)), 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(l)), StringEntry((((E + "_") + ae) + "_nft_owner"), t), StringEntry((E + "_bid_for_nft_by"), toBase58String(r)), StringEntry((E + "_bid_price_place"), af)]
176177 else nil
177178 }
178179
179180
180181
181182 @Callable(p)
182-func acceptBidOffer (ad,W,am,M,N,x,af) = {
183- let an = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
184- let D = toBase58String(p.transactionId)
185- let ao = fromBase58String(af)
186- let q = p.caller.bytes
187- let l = fromBase58String(W)
188- let ap = getStringValue(this, (ad + "_highest_bid"))
189- let aq = ((parseIntValue(ap) / 1000) * 975)
190- let S = ((parseIntValue(ap) / 1000) * 25)
191- let U = ((parseIntValue(ap) * parseIntValue(x)) / 100)
192- let ar = (parseIntValue(ap) - (U + S))
193- let as = getStringValue(this, (ad + "_winner_of_nft"))
194- if (if ((af == an))
195- then (N != M)
183+func acceptBidOffer (ae,X,an,N,O,y,ag) = {
184+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
185+ let E = toBase58String(p.transactionId)
186+ let ap = fromBase58String(ag)
187+ let r = p.caller.bytes
188+ let l = fromBase58String(X)
189+ let aq = getStringValue(this, (ae + "_highest_bid"))
190+ let ar = ((parseIntValue(aq) / 1000) * 975)
191+ let T = ((parseIntValue(aq) / 1000) * 25)
192+ let V = ((parseIntValue(aq) * parseIntValue(y)) / 100)
193+ let as = (parseIntValue(aq) - (V + T))
194+ let at = getStringValue(this, (ae + "_winner_of_nft"))
195+ if (if ((ag == ao))
196+ then (O != N)
196197 else false)
197- then [ScriptTransfer(Address(q), ar, ao), ScriptTransfer(Address(fromBase58String(as)), 1, l), ScriptTransfer(Address(fromBase58String(N)), U, ao), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
198- else if (if ((af == an))
199- then (N == M)
198+ then [ScriptTransfer(Address(r), as, ap), ScriptTransfer(Address(fromBase58String(at)), 1, l), ScriptTransfer(Address(fromBase58String(O)), 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")]
199+ else if (if ((ag == ao))
200+ then (O == N)
200201 else false)
201- then [ScriptTransfer(Address(q), aq, ao), ScriptTransfer(Address(fromBase58String(as)), 1, l), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
202- else if (if ((af == "WAVES"))
203- then (N != M)
202+ then [ScriptTransfer(Address(r), ar, ap), ScriptTransfer(Address(fromBase58String(at)), 1, l), 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")]
203+ else if (if ((ag == "WAVES"))
204+ then (O != N)
204205 else false)
205- then [ScriptTransfer(Address(q), ar, unit), ScriptTransfer(Address(fromBase58String(as)), 1, l), ScriptTransfer(Address(fromBase58String(N)), U, unit), StringEntry("platform_fee", toString(S)), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
206- else if (if ((af == "WAVES"))
207- then (N == M)
206+ then [ScriptTransfer(Address(r), as, unit), ScriptTransfer(Address(fromBase58String(at)), 1, l), ScriptTransfer(Address(fromBase58String(O)), 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")]
207+ else if (if ((ag == "WAVES"))
208+ then (O == N)
208209 else false)
209- then [ScriptTransfer(Address(q), aq, unit), ScriptTransfer(Address(fromBase58String(as)), 1, l), StringEntry((D + "_amount_paid_to_owner"), ap), StringEntry((D + "_nft_transfer_to"), as), StringEntry((D + "_nft_status"), "REWARDED"), StringEntry((ad + "_amount_paid_to_owner"), ap), StringEntry((ad + "_nft_transfer_to"), as), StringEntry((ad + "_nft_status"), "REWARDED")]
210+ then [ScriptTransfer(Address(r), ar, unit), ScriptTransfer(Address(fromBase58String(at)), 1, l), 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")]
210211 else nil
211212 }
212213
213214
214215
215216 @Callable(p)
216-func cancelAuction (ad) = {
217- let D = toBase58String(p.transactionId)
218- let q = p.caller.bytes
219- let at = getStringValue(this, (ad + "_nft_status"))
220- let au = getStringValue(this, (ad + "_winner_of_nft"))
221- let av = getStringValue(this, (ad + "_nft_owner"))
222- let W = getStringValue(this, (ad + "_nft_on_auction"))
223- let aw = getStringValue(this, (ad + "_highest_bid"))
224- if ((au == "0"))
225- then [StringEntry(((D + ad) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(av)), 1, fromBase58String(W))]
226- else if ((au != "0"))
217+func cancelAuction (ae) = {
218+ let E = toBase58String(p.transactionId)
219+ let r = p.caller.bytes
220+ let au = getStringValue(this, (ae + "_nft_status"))
221+ let av = getStringValue(this, (ae + "_winner_of_nft"))
222+ let aw = getStringValue(this, (ae + "_nft_owner"))
223+ let X = getStringValue(this, (ae + "_nft_on_auction"))
224+ let ax = getStringValue(this, (ae + "_highest_bid"))
225+ if ((av == "0"))
226+ then [StringEntry(((E + ae) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
227+ else if ((av != "0"))
227228 then throw("sorry! you can't cancel it because already auction placed by someone")
228229 else nil
229230 }
230231
231232
232233
233234 @Callable(p)
234-func manualFundTransfer (ax) = {
235- let ay = p.caller.bytes
236- let az = fromBase58String(ax)
237- let Q = p.payments[0].amount
235+func manualFundTransfer (ay) = {
236+ let az = p.caller.bytes
237+ let aA = fromBase58String(ay)
238+ let R = p.payments[0].amount
238239 if ((p.payments[0].assetId == unit))
239- then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, unit)]
240+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, unit)]
240241 else if ((p.payments[0].assetId == f))
241- then [IntegerEntry((toBase58String(ay) + "_transfer"), Q), StringEntry((toBase58String(ay) + "_transfer_to"), ax), ScriptTransfer(Address(az), Q, f)]
242+ then [IntegerEntry((toBase58String(az) + "_transfer"), R), StringEntry((toBase58String(az) + "_transfer_to"), ay), ScriptTransfer(Address(aA), R, f)]
242243 else nil
243244 }
244245
245246
246247
247248 @Callable(p)
248-func nftback (ad) = {
249- let q = p.caller.bytes
250- let W = getStringValue(this, (ad + "_nft_on_auction"))
251- let av = getStringValue(this, (ad + "_nft_owner"))
252-[StringEntry((ad + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(av)), 1, fromBase58String(W))]
249+func nftback (ae) = {
250+ let r = p.caller.bytes
251+ let X = getStringValue(this, (ae + "_nft_on_auction"))
252+ let aw = getStringValue(this, (ae + "_nft_owner"))
253+[StringEntry((ae + "_nft_status"), "Auction_time over"), ScriptTransfer(Address(fromBase58String(aw)), 1, fromBase58String(X))]
253254 }
254255
255256
256257
257258 @Callable(p)
258-func withdrawMoney (ad,af) = {
259- let q = p.caller.bytes
260- let an = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
261- let D = toBase58String(p.transactionId)
262- let ao = fromBase58String(af)
263- let aA = getStringValue(this, (ad + "_highest_bid"))
264- let aB = getStringValue(this, (ad + "_winner"))
265- let aC = getStringValue(this, (ad + "_nft_id"))
266- if ((af == an))
267- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), ao)]
268- else if ((af == "WAVES"))
269- then [StringEntry((ad + "_nft_bid"), "WITHDRAW"), StringEntry((ad + "_nft_id"), aC), StringEntry((ad + "_bidding_price_refund_amount"), aA), ScriptTransfer(p.caller, parseIntValue(aA), unit)]
259+func withdrawMoney (ae,ag) = {
260+ let r = p.caller.bytes
261+ let ao = "9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq"
262+ let E = toBase58String(p.transactionId)
263+ let ap = fromBase58String(ag)
264+ let aB = getStringValue(this, (ae + "_highest_bid"))
265+ let aC = getStringValue(this, (ae + "_winner"))
266+ let aD = getStringValue(this, (ae + "_nft_id"))
267+ if ((ag == ao))
268+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), ap)]
269+ else if ((ag == "WAVES"))
270+ then [StringEntry((ae + "_nft_bid"), "WITHDRAW"), StringEntry((ae + "_nft_id"), aD), StringEntry((ae + "_bidding_price_refund_amount"), aB), ScriptTransfer(p.caller, parseIntValue(aB), unit)]
270271 else nil
271272 }
272273
273274
274275
275276 @Callable(p)
276-func buyAllProducts_asimi (aD) = {
277- let aE = p.caller
278- let aF = assetBalance(aE, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
279- let aG = split(aD[0], "_")
280- let aH = split(aD[1], "_")
281- let aI = split(aD[2], "_")
282- let aJ = split(aD[3], "_")
283- let aK = split(aD[4], "_")
284- let Q = value(p.payments[0].amount)
285- let aL = (Q - ((Q / 1000) * 25))
286- let aM = (Q - aL)
287- let U = ((Q / 100) * parseIntValue(aG[3]))
288- let aN = (Q - (U + aM))
289- let aO = value(p.payments[1].amount)
290- let aP = (aO - ((aO / 1000) * 25))
291- let aQ = (aO - aP)
292- let aR = ((aO / 100) * parseIntValue(aH[3]))
293- let aS = (aO - (aR + aQ))
294- let aT = value(p.payments[2].amount)
295- let aU = (aT - ((aT / 1000) * 25))
296- let aV = (aT - aU)
297- let aW = ((aT / 100) * parseIntValue(aI[3]))
298- let aX = (aT - (aW + aV))
299- let aY = value(p.payments[3].amount)
300- let aZ = (aY - ((aY / 1000) * 25))
301- let ba = (aY - aZ)
302- let bb = ((aY / 100) * parseIntValue(aJ[3]))
303- let bc = (aY - (bb + ba))
304- let bd = value(p.payments[4].amount)
305- let be = (bd - ((bd / 1000) * 25))
306- let bf = (bd - be)
307- let bg = ((bd / 100) * parseIntValue(aK[3]))
308- let bh = (bd - (bg + bf))
309- if ((size(aD) == 1))
310- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "creator") + aG[4]) + "royalitypercent") + aG[3]), ("buyer" + toString(aE))), StringEntry((("first_nft_Info=" + "seller_address") + aG[1]), ("price" + aG[2])), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
311- else if ((size(aD) == 2))
312- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
313- else if ((size(aD) == 3))
314- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
315- else if ((size(aD) == 4))
316- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
317- else if ((size(aD) == 5))
318- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(aE, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aG[4])), U, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[1])), aS, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aH[4])), aR, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[1])), aX, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aI[4])), aW, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[1])), bh, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'), ScriptTransfer(Address(fromBase58String(aK[4])), bg, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')]
319- else if ((size(aD) > 5))
277+func buyAllProducts_asimi (aE) = {
278+ let aF = p.caller
279+ let aG = assetBalance(aF, base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq')
280+ let aH = split(aE[0], "_")
281+ let aI = split(aE[1], "_")
282+ let aJ = split(aE[2], "_")
283+ let aK = split(aE[3], "_")
284+ let aL = split(aE[4], "_")
285+ let R = value(p.payments[0].amount)
286+ let aM = (R - ((R / 1000) * 25))
287+ let aN = (R - aM)
288+ let V = ((R / 100) * parseIntValue(aH[3]))
289+ let aO = (R - (V + aN))
290+ let aP = value(p.payments[1].amount)
291+ let aQ = (aP - ((aP / 1000) * 25))
292+ let aR = (aP - aQ)
293+ let aS = ((aP / 100) * parseIntValue(aI[3]))
294+ let aT = (aP - (aS + aR))
295+ let aU = value(p.payments[2].amount)
296+ let aV = (aU - ((aU / 1000) * 25))
297+ let aW = (aU - aV)
298+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
299+ let aY = (aU - (aX + aW))
300+ let aZ = value(p.payments[3].amount)
301+ let ba = (aZ - ((aZ / 1000) * 25))
302+ let bb = (aZ - ba)
303+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
304+ let bd = (aZ - (bc + bb))
305+ let be = value(p.payments[4].amount)
306+ let bf = (be - ((be / 1000) * 25))
307+ let bg = (be - bf)
308+ let bh = ((be / 100) * parseIntValue(aL[3]))
309+ let bi = (be - (bh + bg))
310+ if ((size(aE) == 1))
311+ 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')]
312+ else if ((size(aE) == 2))
313+ 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')]
314+ else if ((size(aE) == 3))
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))), 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')]
316+ else if ((size(aE) == 4))
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))), 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')]
318+ else if ((size(aE) == 5))
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))), 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')]
320+ else if ((size(aE) > 5))
320321 then throw("sorry! maximum limit of your cart is 5 items")
321322 else nil
322323 }
323324
324325
325326
326327 @Callable(p)
327-func buyAllProducts_waves (aD) = {
328- let aE = p.caller
329- let aF = assetBalance(aE, g)
330- let aG = split(aD[0], "_")
331- let aH = split(aD[1], "_")
332- let aI = split(aD[2], "_")
333- let aJ = split(aD[3], "_")
334- let aK = split(aD[4], "_")
335- let Q = value(p.payments[0].amount)
336- let aL = (Q - ((Q / 1000) * 25))
337- let aM = (Q - aL)
338- let U = ((Q / 100) * parseIntValue(aG[3]))
339- let aN = (Q - (U + aM))
340- let aO = value(p.payments[1].amount)
341- let aP = (aO - ((aO / 1000) * 25))
342- let aQ = (aO - aP)
343- let aR = ((aO / 100) * parseIntValue(aH[3]))
344- let aS = (aO - (aR + aQ))
345- let aT = value(p.payments[2].amount)
346- let aU = (aT - ((aT / 1000) * 25))
347- let aV = (aT - aU)
348- let aW = ((aT / 100) * parseIntValue(aI[3]))
349- let aX = (aT - (aW + aV))
350- let aY = value(p.payments[3].amount)
351- let aZ = (aY - ((aY / 1000) * 25))
352- let ba = (aY - aZ)
353- let bb = ((aY / 100) * parseIntValue(aJ[3]))
354- let bc = (aY - (bb + ba))
355- let bd = value(p.payments[4].amount)
356- let be = (bd - ((bd / 1000) * 25))
357- let bf = (bd - be)
358- let bg = ((bd / 100) * parseIntValue(aK[3]))
359- let bh = (bd - (bg + bf))
360- if ((size(aD) == 1))
361- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit)]
362- else if ((size(aD) == 2))
363- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit)]
364- else if ((size(aD) == 3))
365- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit)]
366- else if ((size(aD) == 4))
367- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, unit)]
368- else if ((size(aD) == 5))
369- then [StringEntry((((((("first_nft_Info=" + "nftId") + aG[0]) + "seller_address") + aG[1]) + "price") + aG[2]), ("buyer" + toString(aE))), StringEntry((((((("second_nft_Info=" + "nftId") + aH[0]) + "seller_address") + aH[1]) + "price") + aH[2]), ("buyer" + toString(aE))), StringEntry((((((("third_nft_Info=" + "nftId") + aI[0]) + "seller_address") + aI[1]) + "price") + aI[2]), ("buyer" + toString(aE))), StringEntry((((((("fourth_nft_Info=" + "nftId") + aJ[0]) + "seller_address") + aJ[1]) + "price") + aJ[2]), ("buyer" + toString(aE))), StringEntry((((((("fifth_nft_Info=" + "nftId") + aK[0]) + "seller_address") + aK[1]) + "price") + aK[2]), ("buyer" + toString(aE))), ScriptTransfer(aE, 1, fromBase58String(aG[0])), ScriptTransfer(aE, 1, fromBase58String(aH[0])), ScriptTransfer(aE, 1, fromBase58String(aI[0])), ScriptTransfer(aE, 1, fromBase58String(aJ[0])), ScriptTransfer(aE, 1, fromBase58String(aK[0])), ScriptTransfer(Address(fromBase58String(aG[1])), aN, unit), ScriptTransfer(Address(fromBase58String(aG[4])), U, unit), ScriptTransfer(Address(fromBase58String(aH[1])), aS, unit), ScriptTransfer(Address(fromBase58String(aH[4])), aR, unit), ScriptTransfer(Address(fromBase58String(aI[1])), aX, unit), ScriptTransfer(Address(fromBase58String(aI[4])), aW, unit), ScriptTransfer(Address(fromBase58String(aJ[1])), bc, unit), ScriptTransfer(Address(fromBase58String(aJ[4])), bb, unit), ScriptTransfer(Address(fromBase58String(aK[1])), bh, unit), ScriptTransfer(Address(fromBase58String(aK[4])), bg, unit)]
370- else if ((size(aD) > 5))
328+func buyAllProducts_waves (aE) = {
329+ let aF = p.caller
330+ let aG = assetBalance(aF, g)
331+ let aH = split(aE[0], "_")
332+ let aI = split(aE[1], "_")
333+ let aJ = split(aE[2], "_")
334+ let aK = split(aE[3], "_")
335+ let aL = split(aE[4], "_")
336+ let R = value(p.payments[0].amount)
337+ let aM = (R - ((R / 1000) * 25))
338+ let aN = (R - aM)
339+ let V = ((R / 100) * parseIntValue(aH[3]))
340+ let aO = (R - (V + aN))
341+ let aP = value(p.payments[1].amount)
342+ let aQ = (aP - ((aP / 1000) * 25))
343+ let aR = (aP - aQ)
344+ let aS = ((aP / 100) * parseIntValue(aI[3]))
345+ let aT = (aP - (aS + aR))
346+ let aU = value(p.payments[2].amount)
347+ let aV = (aU - ((aU / 1000) * 25))
348+ let aW = (aU - aV)
349+ let aX = ((aU / 100) * parseIntValue(aJ[3]))
350+ let aY = (aU - (aX + aW))
351+ let aZ = value(p.payments[3].amount)
352+ let ba = (aZ - ((aZ / 1000) * 25))
353+ let bb = (aZ - ba)
354+ let bc = ((aZ / 100) * parseIntValue(aK[3]))
355+ let bd = (aZ - (bc + bb))
356+ let be = value(p.payments[4].amount)
357+ let bf = (be - ((be / 1000) * 25))
358+ let bg = (be - bf)
359+ let bh = ((be / 100) * parseIntValue(aL[3]))
360+ let bi = (be - (bh + bg))
361+ if ((size(aE) == 1))
362+ 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)]
363+ else if ((size(aE) == 2))
364+ 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)]
365+ else if ((size(aE) == 3))
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))), 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)]
367+ else if ((size(aE) == 4))
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))), 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)]
369+ else if ((size(aE) == 5))
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))), 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)]
371+ else if ((size(aE) > 5))
371372 then throw("sorry! maximum limit of your cart is 5 items")
372373 else nil
373374 }
374375
375376
376377
377378 @Callable(p)
378-func withdrawEarnAsimi (bi,Q) = {
379- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
380- if ((p.caller.bytes != bj))
379+func withdrawEarnAsimi (bj,R) = {
380+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
381+ if ((p.caller.bytes != bk))
381382 then throw("sorry you have no access")
382- else if (if ((bi >= 0))
383- then (bi >= Q)
383+ else if (if ((bj >= 0))
384+ then (bj >= R)
384385 else false)
385- then [ScriptTransfer(p.caller, (Q * 100), f)]
386+ then [ScriptTransfer(p.caller, (R * 100), f)]
386387 else nil
387388 }
388389
389390
390391
391392 @Callable(p)
392-func withdrawEarnWaves (bi,Q) = {
393- let bj = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
394- if ((p.caller.bytes != bj))
393+func withdrawEarnWaves (bj,R) = {
394+ let bk = base58'3MuehcPaJCUy5asSiT8XX1pwwz9Tj4J9SDS'
395+ if ((p.caller.bytes != bk))
395396 then throw("sorry you have no access")
396- else if (if ((bi >= 0))
397- then (bi >= Q)
397+ else if (if ((bj >= 0))
398+ then (bj >= R)
398399 else false)
399- then [ScriptTransfer(p.caller, (Q * 100000000), unit)]
400+ then [ScriptTransfer(p.caller, (R * 100000000), unit)]
400401 else nil
401402 }
402403
403404
404-@Verifier(bk)
405-func bl () = {
406- let m = bk
405+@Verifier(bl)
406+func bm () = {
407+ let m = bl
407408 if ($isInstanceOf(m, "SetScriptTransaction"))
408409 then {
409- let bm = m
410+ let bn = m
410411 true
411412 }
412413 else false
413414 }
414415

github/deemru/w8io/026f985 
388.89 ms