tx · CutHDDT3ZWqnnsLpCRLmXhXX1GbbmRJseeNLkgQeUveE

3Mx4GxjrawhKHBgMKH9C5Hmbj8ePZDrs8ed:  -0.01800000 Waves

2023.07.03 11:13 [2649471] smart account 3Mx4GxjrawhKHBgMKH9C5Hmbj8ePZDrs8ed > SELF 0.00000000 Waves

{ "type": 13, "id": "CutHDDT3ZWqnnsLpCRLmXhXX1GbbmRJseeNLkgQeUveE", "fee": 1800000, "feeAssetId": null, "timestamp": 1688372046437, "version": 2, "chainId": 84, "sender": "3Mx4GxjrawhKHBgMKH9C5Hmbj8ePZDrs8ed", "senderPublicKey": "9DpEgmia9fGpxtGGDeSMtER4g9qB7WQPPYTKTHzqSFuX", "proofs": [ "5TC29DLugpY9mjtXPFQEnobKmXvx2MPoWVW3JTJHr93631rbkSXYcWcVTFohMZjjzHhetU8djzqzFvkgvGcLt3wy" ], "script": "base64:BgJdCAISBgoECAgICBIJCgcICAgICAgIEgYKBAEICAESBgoEAQgIARIECgIBCBIDCgEIEgQKAgEEEgMKAQgSBQoDAQgBEgsKCQEICAEBAQEBBBIAEgASAwoBCBIDCgEIQAAJU0VQQVJBVE9SAgJfXwAIS0VZX0lOSVQCBElOSVQADEtFWV9NVUxUSVNJRwIITVVMVElTSUcACktFWV9TVEFUVVMCBlNUQVRVUwAKS0VZX1BBVVNFRAIGUEFVU0VEAApLRVlfUEFVU0VSAgZQQVVTRVIADEtFWV9FWEVDVVRPUgIIRVhFQ1VUT1IAEEtFWV9ST09UX0FEQVBURVICDFJPT1RfQURBUFRFUgATS0VZX0NBTExFUl9DT05UUkFDVAIPQ0FMTEVSX0NPTlRSQUNUAAlLRVlfQ0hBSU4CBUNIQUlOAAtLRVlfQklORElORwIHQklORElORwAHS0VZX0ZFRQIDRkVFABFLRVlfRkVFX1JFQ0lQSUVOVAINRkVFX1JFQ0lQSUVOVAAYS0VZX1JFRkVSUkVSX0ZFRV9QRVJDRU5UAhRSRUZFUlJFUl9GRUVfUEVSQ0VOVAATRlVOQ19SRUxFQVNFX1RPS0VOUwINcmVsZWFzZVRva2VucwAFV0FWRVMCBVdBVkVTAA5XQVZFU19ERUNJTUFMUwAIAAhERUNJTUFMUwAGAA5QRVJDRU5UX0ZBQ1RPUgDAhD0AEE1BWF9SRUZFUlJFUl9GRUUAwJoMAAdNQVhfSU5UAP//////////fwEQX3ZhbGlkYXRlQWRkcmVzcwIIYWRkcmVzc18EZXJyXwQHJG1hdGNoMAkApggBBQhhZGRyZXNzXwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgkAAgEFBGVycl8BDl92YWxpZGF0ZUFzc2V0Aghhc3NldElkXwRlcnJfBAckbWF0Y2gwCQDsBwEJANkEAQUIYXNzZXRJZF8DCQABAgUHJG1hdGNoMAIFQXNzZXQEAWEFByRtYXRjaDAGCQACAQUEZXJyXwEMX3ZhbGlkYXRlSW50BAR2YWxfDmxvd2VyQm91bmRhcnlfDnVwcGVyQm91bmRhcnlfBGVycl8DAwkAZgIFDmxvd2VyQm91bmRhcnlfBQR2YWxfBgkAZgIFBHZhbF8FDnVwcGVyQm91bmRhcnlfCQACAQUEZXJyXwYBDV92YWxpZGF0ZUJvb2wDBHZhbF8HdGFyZ2V0XwRlcnJfAwkBAiE9AgUEdmFsXwUHdGFyZ2V0XwkAAgEFBGVycl8GARVfdmFsaWRhdGVQYXltZW50c1NpemUDCXBheW1lbnRzXwd0YXJnZXRfBGVycl8DCQECIT0CCQCQAwEFCXBheW1lbnRzXwUHdGFyZ2V0XwkAAgEFBGVycl8GARFfdmFsaWRhdGVSZWZlcnJlcgIJcmVmZXJyZXJfBGVycl8DCQECIT0CBQlyZWZlcnJlcl8CAAkBEF92YWxpZGF0ZUFkZHJlc3MCBQlyZWZlcnJlcl8FBGVycl8GARJfbm9ybWFsaXplRGVjaW1hbHMDB2Ftb3VudF8Pc291cmNlRGVjaW1hbHNfD3RhcmdldERlY2ltYWxzXwMJAGcCBQ9zb3VyY2VEZWNpbWFsc18FD3RhcmdldERlY2ltYWxzXwkAaQIFB2Ftb3VudF8JAGwGAAoAAAkAZQIFD3NvdXJjZURlY2ltYWxzXwUPdGFyZ2V0RGVjaW1hbHNfAAAAAAUERE9XTgkAaAIFB2Ftb3VudF8JAGwGAAoAAAkAZQIFD3RhcmdldERlY2ltYWxzXwUPc291cmNlRGVjaW1hbHNfAAAAAAUERE9XTgEJX2xvYWRJbml0AAQHJG1hdGNoMAkAoAgBBQhLRVlfSU5JVAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFhBQckbWF0Y2gwBQFhBwEJX3NhdmVJbml0AQdpc0luaXRfCQDMCAIJAQxCb29sZWFuRW50cnkCBQhLRVlfSU5JVAUHaXNJbml0XwUDbmlsAQpfbG9hZFBhdXNlAAQHJG1hdGNoMAkAoAgBBQpLRVlfUEFVU0VEAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQpfc2F2ZVBhdXNlAQlpc1BhdXNlZF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIFCktFWV9QQVVTRUQFCWlzUGF1c2VkXwUDbmlsAQtfbG9hZFBhdXNlcgAEByRtYXRjaDAJAKIIAQUKS0VZX1BBVVNFUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQtfc2F2ZVBhdXNlcgEHcGF1c2VyXwkAzAgCCQELU3RyaW5nRW50cnkCBQpLRVlfUEFVU0VSCQClCAEFB3BhdXNlcl8FA25pbAENX2xvYWRNdWx0aXNpZwAEByRtYXRjaDAJAKIIAQUMS0VZX01VTFRJU0lHAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABDV9zYXZlTXVsdGlzaWcBCW11bHRpc2lnXwkAzAgCCQELU3RyaW5nRW50cnkCBQxLRVlfTVVMVElTSUcJAKUIAQUJbXVsdGlzaWdfBQNuaWwBDV9sb2FkRXhlY3V0b3IABAckbWF0Y2gwCQCiCAEFDEtFWV9FWEVDVVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQ1fc2F2ZUV4ZWN1dG9yAQlleGVjdXRvcl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUMS0VZX0VYRUNVVE9SCQClCAEFCWV4ZWN1dG9yXwUDbmlsARNfbG9hZENhbGxlckNvbnRyYWN0AAQHJG1hdGNoMAkAoggBBRNLRVlfQ0FMTEVSX0NPTlRSQUNUAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARNfc2F2ZUNhbGxlckNvbnRyYWN0AQdjYWxsZXJfCQDMCAIJAQtTdHJpbmdFbnRyeQIFE0tFWV9DQUxMRVJfQ09OVFJBQ1QFB2NhbGxlcl8FA25pbAEKX2xvYWRDaGFpbgEIY2hhaW5JZF8EByRtYXRjaDAJAKAIAQkAuQkCCQDMCAIFCUtFWV9DSEFJTgkAzAgCCQCkAwEFCGNoYWluSWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFhBQckbWF0Y2gwBQFhBwEKX3NhdmVDaGFpbgIIY2hhaW5JZF8EdmFsXwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkAuQkCCQDMCAIFCUtFWV9DSEFJTgkAzAgCCQCkAwEFCGNoYWluSWRfBQNuaWwFCVNFUEFSQVRPUgUEdmFsXwUDbmlsAQxfbG9hZEJpbmRpbmcCEWV4ZWN1dGlvbkNoYWluSWRfCGFzc2V0SWRfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBQtLRVlfQklORElORwkAzAgCCQCkAwEFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIJANgEAQUIYXNzZXRJZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAQGc3RydWN0CQC1CQIFAWEFCVNFUEFSQVRPUgkAmgoICQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBnN0cnVjdAAACQCRAwIFBnN0cnVjdAABCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QAAwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAAECQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QABgMJAAACCQCRAwIFBnN0cnVjdAAHAgExBgcJAJoKCAkBB0FkZHJlc3MBAQACAAAAAAAAAAAAAAAHAQxfc2F2ZUJpbmRpbmcDEWV4ZWN1dGlvbkNoYWluSWRfCGFzc2V0SWRfCGJpbmRpbmdfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBQtLRVlfQklORElORwkAzAgCCQCkAwEFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIJANgEAQUIYXNzZXRJZF8FA25pbAUJU0VQQVJBVE9SCQC5CQIJAMwIAgkApQgBCAUIYmluZGluZ18CXzEJAMwIAggFCGJpbmRpbmdfAl8yCQDMCAIJAKQDAQgFCGJpbmRpbmdfAl8zCQDMCAIJAKQDAQgFCGJpbmRpbmdfAl80CQDMCAIJAKQDAQgFCGJpbmRpbmdfAl81CQDMCAIJAKQDAQgFCGJpbmRpbmdfAl82CQDMCAIJAKQDAQgFCGJpbmRpbmdfAl83CQDMCAIDCAUIYmluZGluZ18CXzgCATECATAFA25pbAUJU0VQQVJBVE9SBQNuaWwBCF9sb2FkRmVlAQhhc3NldElkXwQHJG1hdGNoMAkAnwgBCQC5CQIJAMwIAgUHS0VZX0ZFRQkAzAgCCQDYBAEFCGFzc2V0SWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAEIX3NhdmVGZWUCCGFzc2V0SWRfBHZhbF8JAMwIAgkBDEludGVnZXJFbnRyeQIJALkJAgkAzAgCBQdLRVlfRkVFCQDMCAIJANgEAQUIYXNzZXRJZF8FA25pbAUJU0VQQVJBVE9SBQR2YWxfBQNuaWwBEF9sb2FkUm9vdEFkYXB0ZXIABAckbWF0Y2gwCQCiCAEFEEtFWV9ST09UX0FEQVBURVIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAEQX3NhdmVSb290QWRhcHRlcgEIYWRhcHRlcl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUQS0VZX1JPT1RfQURBUFRFUgkApQgBBQhhZGFwdGVyXwUDbmlsARFfbG9hZEZlZVJlY2lwaWVudAAEByRtYXRjaDAJAKIIAQURS0VZX0ZFRV9SRUNJUElFTlQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAERX3NhdmVGZWVSZWNpcGllbnQBBHZhbF8JAMwIAgkBC1N0cmluZ0VudHJ5AgURS0VZX0ZFRV9SRUNJUElFTlQJAKUIAQUEdmFsXwUDbmlsARdfbG9hZFJlZmVycmVyRmVlUGVyY2VudAIRZXhlY3V0aW9uQ2hhaW5JZF8JcmVmZXJyZXJfBAckbWF0Y2gwCQCfCAEJALkJAgkAzAgCBRhLRVlfUkVGRVJSRVJfRkVFX1BFUkNFTlQJAMwIAgkApAMBBRFleGVjdXRpb25DaGFpbklkXwkAzAgCCQClCAEFCXJlZmVycmVyXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABF19zYXZlUmVmZXJyZXJGZWVQZXJjZW50AxFleGVjdXRpb25DaGFpbklkXwlyZWZlcnJlcl8EdmFsXwkAzAgCCQEMSW50ZWdlckVudHJ5AgkAuQkCCQDMCAIFGEtFWV9SRUZFUlJFUl9GRUVfUEVSQ0VOVAkAzAgCCQCkAwEFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIJAKUIAQUJcmVmZXJyZXJfBQNuaWwFCVNFUEFSQVRPUgUEdmFsXwUDbmlsARFfb25seVRoaXNDb250cmFjdAEHY2FsbGVyXwMJAQIhPQIFB2NhbGxlcl8FBHRoaXMJAAIBAhlfb25seVRoaXNDb250cmFjdDogcmV2ZXJ0BgEQX3doZW5NdWx0aXNpZ1NldAADCQAAAgkBDV9sb2FkTXVsdGlzaWcACQEHQWRkcmVzcwEBAAkAAgECGF93aGVuTXVsdGlzaWdTZXQ6IHJldmVydAYBE193aGVuTm90SW5pdGlhbGl6ZWQAAwkBCV9sb2FkSW5pdAAJAAIBAhtfd2hlbk5vdEluaXRpYWxpemVkOiByZXZlcnQGARBfd2hlbkluaXRpYWxpemVkAAMJAQEhAQkBCV9sb2FkSW5pdAAJAAIBAhhfd2hlbkluaXRpYWxpemVkOiByZXZlcnQGAQ5fd2hlbk5vdFBhdXNlZAADCQEKX2xvYWRQYXVzZQAJAAIBAhZfd2hlbk5vdFBhdXNlZDogcmV2ZXJ0BgELX3doZW5QYXVzZWQAAwkBASEBCQEKX2xvYWRQYXVzZQAJAAIBAhNfd2hlblBhdXNlZDogcmV2ZXJ0BgELX29ubHlQYXVzZXIBB2NhbGxlcl8DCQECIT0CBQdjYWxsZXJfCQELX2xvYWRQYXVzZXIACQACAQITX29ubHlQYXVzZXI6IHJldmVydAYBBl9hc0ludAEEdmFsXwQHJG1hdGNoMAUEdmFsXwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEJAAIBAg5fYXNJbnQ6IHJldmVydAEIX2FzQnl0ZXMBBHZhbF8EByRtYXRjaDAFBHZhbF8DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAUBYQkAAgECEF9hc0J5dGVzOiByZXZlcnQBEV92YWxpZGF0ZUV4ZWN1dG9yAgR2YWxfBGVycl8DCQECIT0CBQR2YWxfCQENX2xvYWRFeGVjdXRvcgAJAAIBBQRlcnJfBgEPX3ZhbGlkYXRlQ2FsbGVyAgR2YWxfBGVycl8DCQECIT0CBQR2YWxfCQETX2xvYWRDYWxsZXJDb250cmFjdAAJAAIBBQRlcnJfBgEOX3ZhbGlkYXRlQ2hhaW4CEWV4ZWN1dGlvbkNoYWluSWRfBGVycl8DCQEBIQEJAQpfbG9hZENoYWluAQURZXhlY3V0aW9uQ2hhaW5JZF8JAAIBBQRlcnJfBg4BaQEEaW5pdAQJZXhlY3V0b3JfCGFkYXB0ZXJfB3BhdXNlcl8NZmVlUmVjaXBpZW50XwQDZXJyAwMDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARNfd2hlbk5vdEluaXRpYWxpemVkAAcJARBfd2hlbk11bHRpc2lnU2V0AAcJARBfdmFsaWRhdGVBZGRyZXNzAgUJZXhlY3V0b3JfAhZpbml0OiBpbnZhbGlkIGV4ZWN1dG9yBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQhhZGFwdGVyXwIVaW5pdDogaW52YWxpZCBhZGFwdGVyBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQdwYXVzZXJfAhRpbml0OiBpbnZhbGlkIHBhdXNlcgcJARBfdmFsaWRhdGVBZGRyZXNzAgUNZmVlUmVjaXBpZW50XwIaaW5pdDogaW52YWxpZCBmZWVSZWNpcGllbnQHAwkAAAIFA2VycgUDZXJyCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgkBCV9zYXZlSW5pdAEGCQENX3NhdmVFeGVjdXRvcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCWV4ZWN1dG9yXwkBEF9zYXZlUm9vdEFkYXB0ZXIBCQERQGV4dHJOYXRpdmUoMTA2MikBBQhhZGFwdGVyXwkBC19zYXZlUGF1c2VyAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUHcGF1c2VyXwkBEV9zYXZlRmVlUmVjaXBpZW50AQkBEUBleHRyTmF0aXZlKDEwNjIpAQUNZmVlUmVjaXBpZW50XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQptaW50VG9rZW5zBw9jYWxsZXJDb250cmFjdF8OYXNzZXRDb250cmFjdF8HYW1vdW50XwpyZWNpcGllbnRfDmdhc2xlc3NSZXdhcmRfCXJlZmVycmVyXwxyZWZlcnJlckZlZV8EBmFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFB2Ftb3VudF8CF21pbnQ6IGFtb3VudCBpcyBub3QgSW50BA1nYXNsZXNzUmV3YXJkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQUOZ2FzbGVzc1Jld2FyZF8CHm1pbnQ6IGdhc2xlc3NSZXdhcmQgaXMgbm90IEludAQLcmVmZXJyZXJGZWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBBQxyZWZlcnJlckZlZV8CHG1pbnQ6IHJlZmVycmVyRmVlIGlzIG5vdCBJbnQEA2VycgMDAwMDAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ5fd2hlbk5vdFBhdXNlZAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFDmFzc2V0Q29udHJhY3RfAhxtaW50OiBpbnZhbGlkIGFzc2V0IGNvbnRyYWN0BwkBEV92YWxpZGF0ZUV4ZWN1dG9yAggFAWkGY2FsbGVyAhZtaW50OiBpbnZhbGlkIGV4ZWN1dG9yBwkBD192YWxpZGF0ZUNhbGxlcgIFD2NhbGxlckNvbnRyYWN0XwIUbWludDogaW52YWxpZCBjYWxsZXIHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCnJlY2lwaWVudF8CH21pbnQ6IGludmFsaWQgcmVjaXBpZW50IGFkZHJlc3MHCQEMX3ZhbGlkYXRlSW50BAUGYW1vdW50AAAFB01BWF9JTlQCFG1pbnQ6IGludmFsaWQgYW1vdW50BwkBDF92YWxpZGF0ZUludAQFDWdhc2xlc3NSZXdhcmQAAAUHTUFYX0lOVAIbbWludDogaW52YWxpZCBnYXNsZXNzUmV3YXJkBwkBDF92YWxpZGF0ZUludAQFC3JlZmVycmVyRmVlAAAFB01BWF9JTlQCGm1pbnQ6IGludmFsaWQgcmVmZXJyZXIgZmVlBwMJAAACBQNlcnIFA2VycgQHYXNzZXRJZAkBCF9hc0J5dGVzAQkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQ5hc3NldENvbnRyYWN0XwIKZ2V0QXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUHYXNzZXRJZAUHYXNzZXRJZAQNYXNzZXREZWNpbWFscwkBBl9hc0ludAEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUOYXNzZXRDb250cmFjdF8CC2dldERlY2ltYWxzBQNuaWwFA25pbAMJAAACBQ1hc3NldERlY2ltYWxzBQ1hc3NldERlY2ltYWxzBBBub3JtYWxpemVkQW1vdW50CQESX25vcm1hbGl6ZURlY2ltYWxzAwUGYW1vdW50BQhERUNJTUFMUwUNYXNzZXREZWNpbWFscwQRbm9ybWFsaXplZEdhc2xlc3MJARJfbm9ybWFsaXplRGVjaW1hbHMDBQ1nYXNsZXNzUmV3YXJkBQhERUNJTUFMUwUNYXNzZXREZWNpbWFscwQIcmVmZXJyZXIEByRtYXRjaDAJAKYIAQUJcmVmZXJyZXJfAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEDnJlZmVyZXJBZGRyZXNzBQckbWF0Y2gwBBVub3JtYWxpemVkUmVmZXJyZXJGZWUJARJfbm9ybWFsaXplRGVjaW1hbHMDBQtyZWZlcnJlckZlZQUIREVDSU1BTFMFDWFzc2V0RGVjaW1hbHMJAJQKAgUVbm9ybWFsaXplZFJlZmVycmVyRmVlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDnJlZmVyZXJBZGRyZXNzBRVub3JtYWxpemVkUmVmZXJyZXJGZWUFB2Fzc2V0SWQFA25pbAkAlAoCAAAFA25pbAQVbm9ybWFsaXplZFJlZmVycmVyRmVlCAUIcmVmZXJyZXICXzEED3JlZmVycmVyQWN0aW9ucwgFCHJlZmVycmVyAl8yBAppbnZvY2F0aW9uCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDmFzc2V0Q29udHJhY3RfAgRtaW50CQDMCAIJAGQCBRBub3JtYWxpemVkQW1vdW50BRVub3JtYWxpemVkUmVmZXJyZXJGZWUJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAACBQppbnZvY2F0aW9uBQppbnZvY2F0aW9uBAdhY3Rpb25zAwMJAGYCBRFub3JtYWxpemVkR2FzbGVzcwAACQECIT0CCQERQGV4dHJOYXRpdmUoMTA2MikBBQpyZWNpcGllbnRfCAUBaQxvcmlnaW5DYWxsZXIHCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCnJlY2lwaWVudF8JAGUCBRBub3JtYWxpemVkQW1vdW50BRFub3JtYWxpemVkR2FzbGVzcwUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQxvcmlnaW5DYWxsZXIFEW5vcm1hbGl6ZWRHYXNsZXNzBQdhc3NldElkBQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUKcmVjaXBpZW50XwUQbm9ybWFsaXplZEFtb3VudAUHYXNzZXRJZAUDbmlsCQCUCgIJAM4IAgUHYWN0aW9ucwUPcmVmZXJyZXJBY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmJ1cm5Ub2tlbnMEEWV4ZWN1dGlvbkNoYWluSWRfCnJlY2lwaWVudF8JcmVmZXJyZXJfDmdhc2xlc3NSZXdhcmRfBANlcnIDAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEOX3doZW5Ob3RQYXVzZWQABwkBDl92YWxpZGF0ZUNoYWluAgURZXhlY3V0aW9uQ2hhaW5JZF8CI2J1cm5Ub2tlbnM6IGludmFsaWQgZXhlY3V0aW9uIGNoYWluBwkBFV92YWxpZGF0ZVBheW1lbnRzU2l6ZQMIBQFpCHBheW1lbnRzAAECFmJ1cm5Ub2tlbnM6IG5vIHBheW1lbnQHCQEMX3ZhbGlkYXRlSW50BAUOZ2FzbGVzc1Jld2FyZF8AAAUHTUFYX0lOVAIhYnVyblRva2VuczogaW52YWxpZCBnYXNsZXNzUmV3YXJkBwkBDF92YWxpZGF0ZUludAQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAAFB01BWF9JTlQCImJ1cm5Ub2tlbnM6IGludmFsaWQgcGF5bWVudCBhbW91bnQHAwkAAAIFA2VycgUDZXJyBAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAdhc3NldElkBAckbWF0Y2gwCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAUBYQkAAgECGWJ1cm5Ub2tlbnM6IGludmFsaWQgYXNzZXQEB2JpbmRpbmcJAQxfbG9hZEJpbmRpbmcCBRFleGVjdXRpb25DaGFpbklkXwUHYXNzZXRJZAQNYXNzZXRDb250cmFjdAgFB2JpbmRpbmcCXzEEDmV4ZWN1dGlvbkFzc2V0CAUHYmluZGluZwJfMgQJbWluQW1vdW50CAUHYmluZGluZwJfMwQGbWluRmVlCAUHYmluZGluZwJfNAQMdGhyZXNob2xkRmVlCAUHYmluZGluZwJfNQQQYmVmb3JlUGVyY2VudEZlZQgFB2JpbmRpbmcCXzYED2FmdGVyUGVyY2VudEZlZQgFB2JpbmRpbmcCXzcEB2VuYWJsZWQIBQdiaW5kaW5nAl84BARlcnIxAwMJARBfdmFsaWRhdGVBZGRyZXNzAgkApQgBBQ1hc3NldENvbnRyYWN0AhtidXJuVG9rZW5zOiBubyBzdWNoIGJpbmRpbmcJAQxfdmFsaWRhdGVJbnQEBQZhbW91bnQFCW1pbkFtb3VudAUHTUFYX0lOVAIZYnVyblRva2VuczogbGVzcyB0aGFuIG1pbgcJAQ1fdmFsaWRhdGVCb29sAwUHZW5hYmxlZAYCHWJ1cm5Ub2tlbnM6IHRva2VuIGlzIGRpc2FibGVkBwMJAAACBQRlcnIxBQRlcnIxBA1hc3NldERlY2ltYWxzCQEGX2FzSW50AQkA/AcEBQ1hc3NldENvbnRyYWN0AgtnZXREZWNpbWFscwUDbmlsBQNuaWwDCQAAAgUNYXNzZXREZWNpbWFscwUNYXNzZXREZWNpbWFscwQHcGVyY2VudAMJAGYCBQZhbW91bnQFDHRocmVzaG9sZEZlZQUPYWZ0ZXJQZXJjZW50RmVlBRBiZWZvcmVQZXJjZW50RmVlBANmZWUJAGQCBQZtaW5GZWUJAGsDBQZhbW91bnQFB3BlcmNlbnQFDlBFUkNFTlRfRkFDVE9SBARlcnIyCQEMX3ZhbGlkYXRlSW50BAUGYW1vdW50CQBkAgUDZmVlAAEFB01BWF9JTlQCIGJ1cm5Ub2tlbnM6IGZlZSBtb3JlIHRoYW4gYW1vdW50AwkAAAIFBGVycjIFBGVycjIEDGFtb3VudFRvU2VuZAkAZQIFBmFtb3VudAUDZmVlBARlcnIzCQEMX3ZhbGlkYXRlSW50BAUMYW1vdW50VG9TZW5kCQBkAgUOZ2FzbGVzc1Jld2FyZF8AAQUHTUFYX0lOVAIjYnVyblRva2VuczogcmV3YXJkIG1vcmUgdGhhbiBhbW91bnQDCQAAAgUEZXJyMwUEZXJyMwQJdXBkYXRlRmVlCQBkAgkBCF9sb2FkRmVlAQUHYXNzZXRJZAUDZmVlBBBub3JtYWxpemVkQW1vdW50CQESX25vcm1hbGl6ZURlY2ltYWxzAwUMYW1vdW50VG9TZW5kBQ1hc3NldERlY2ltYWxzBQhERUNJTUFMUwQRbm9ybWFsaXplZEdhc2xlc3MJARJfbm9ybWFsaXplRGVjaW1hbHMDBQ5nYXNsZXNzUmV3YXJkXwUNYXNzZXREZWNpbWFscwUIREVDSU1BTFMECmludm9jYXRpb24JAPwHBAkBEF9sb2FkUm9vdEFkYXB0ZXIABRNGVU5DX1JFTEVBU0VfVE9LRU5TCQDMCAIFEWV4ZWN1dGlvbkNoYWluSWRfCQDMCAIFDmV4ZWN1dGlvbkFzc2V0CQDMCAIFEG5vcm1hbGl6ZWRBbW91bnQJAMwIAgUKcmVjaXBpZW50XwkAzAgCBRFub3JtYWxpemVkR2FzbGVzcwUDbmlsBQNuaWwDCQAAAgUKaW52b2NhdGlvbgUKaW52b2NhdGlvbgkAlAoCCQDOCAIJAQhfc2F2ZUZlZQIFB2Fzc2V0SWQFCXVwZGF0ZUZlZQkAzAgCCQEEQnVybgIFB2Fzc2V0SWQFDGFtb3VudFRvU2VuZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDGJ1cm5Ub2tlbnNWMgQRZXhlY3V0aW9uQ2hhaW5JZF8KcmVjaXBpZW50XwlyZWZlcnJlcl8OZ2FzbGVzc1Jld2FyZF8EA2VycgMDAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEOX3doZW5Ob3RQYXVzZWQABwkBDl92YWxpZGF0ZUNoYWluAgURZXhlY3V0aW9uQ2hhaW5JZF8CJWJ1cm5Ub2tlbnNWMjogaW52YWxpZCBleGVjdXRpb24gY2hhaW4HCQEVX3ZhbGlkYXRlUGF5bWVudHNTaXplAwgFAWkIcGF5bWVudHMAAQIYYnVyblRva2Vuc1YyOiBubyBwYXltZW50BwkBDF92YWxpZGF0ZUludAQFDmdhc2xlc3NSZXdhcmRfAAAFB01BWF9JTlQCI2J1cm5Ub2tlbnNWMjogaW52YWxpZCBnYXNsZXNzUmV3YXJkBwkBDF92YWxpZGF0ZUludAQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAAFB01BWF9JTlQCJGJ1cm5Ub2tlbnNWMjogaW52YWxpZCBwYXltZW50IGFtb3VudAcJARFfdmFsaWRhdGVSZWZlcnJlcgIFCXJlZmVycmVyXwIeYnVyblRva2Vuc1YyOiBpbnZhbGlkIHJlZmVycmVyBwMJAAACBQNlcnIFA2VycgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQHYXNzZXRJZAQHJG1hdGNoMAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWEFByRtYXRjaDAFAWEJAAIBAhtidXJuVG9rZW5zVjI6IGludmFsaWQgYXNzZXQEB2JpbmRpbmcJAQxfbG9hZEJpbmRpbmcCBRFleGVjdXRpb25DaGFpbklkXwUHYXNzZXRJZAQNYXNzZXRDb250cmFjdAgFB2JpbmRpbmcCXzEEDmV4ZWN1dGlvbkFzc2V0CAUHYmluZGluZwJfMgQJbWluQW1vdW50CAUHYmluZGluZwJfMwQGbWluRmVlCAUHYmluZGluZwJfNAQMdGhyZXNob2xkRmVlCAUHYmluZGluZwJfNQQQYmVmb3JlUGVyY2VudEZlZQgFB2JpbmRpbmcCXzYED2FmdGVyUGVyY2VudEZlZQgFB2JpbmRpbmcCXzcEB2VuYWJsZWQIBQdiaW5kaW5nAl84BARlcnIxAwMJARBfdmFsaWRhdGVBZGRyZXNzAgkApQgBBQ1hc3NldENvbnRyYWN0Ah1idXJuVG9rZW5zVjI6IG5vIHN1Y2ggYmluZGluZwkBDF92YWxpZGF0ZUludAQFBmFtb3VudAUJbWluQW1vdW50BQdNQVhfSU5UAhtidXJuVG9rZW5zVjI6IGxlc3MgdGhhbiBtaW4HCQENX3ZhbGlkYXRlQm9vbAMFB2VuYWJsZWQGAh9idXJuVG9rZW5zVjI6IHRva2VuIGlzIGRpc2FibGVkBwMJAAACBQRlcnIxBQRlcnIxBA1hc3NldERlY2ltYWxzCQEGX2FzSW50AQkA/AcEBQ1hc3NldENvbnRyYWN0AgtnZXREZWNpbWFscwUDbmlsBQNuaWwDCQAAAgUNYXNzZXREZWNpbWFscwUNYXNzZXREZWNpbWFscwQHcGVyY2VudAMJAGYCBQZhbW91bnQFDHRocmVzaG9sZEZlZQUPYWZ0ZXJQZXJjZW50RmVlBRBiZWZvcmVQZXJjZW50RmVlBANmZWUJAGQCBQZtaW5GZWUJAGsDBQZhbW91bnQFB3BlcmNlbnQFDlBFUkNFTlRfRkFDVE9SBARlcnIyCQEMX3ZhbGlkYXRlSW50BAUGYW1vdW50CQBkAgUDZmVlAAEFB01BWF9JTlQCImJ1cm5Ub2tlbnNWMjogZmVlIG1vcmUgdGhhbiBhbW91bnQDCQAAAgUEZXJyMgUEZXJyMgQNJHQwMTYyMjQxNjYyOQMJAQIhPQIFCXJlZmVycmVyXwIABAhyZWZlcnJlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUJcmVmZXJyZXJfBBFyZWZlcnJlckZlZUFtb3VudAkAawMJARdfbG9hZFJlZmVycmVyRmVlUGVyY2VudAIFEWV4ZWN1dGlvbkNoYWluSWRfBQhyZWZlcnJlcgUDZmVlBQ5QRVJDRU5UX0ZBQ1RPUgkAlAoCBRFyZWZlcnJlckZlZUFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQhyZWZlcnJlcgURcmVmZXJyZXJGZWVBbW91bnQFB2Fzc2V0SWQFA25pbAkAlAoCAAAFA25pbAQLcmVmZXJyZXJGZWUIBQ0kdDAxNjIyNDE2NjI5Al8xBA9yZWZlcnJlckFjdGlvbnMIBQ0kdDAxNjIyNDE2NjI5Al8yBAxhbW91bnRUb1NlbmQJAGUCBQZhbW91bnQFA2ZlZQQEZXJyMwkBDF92YWxpZGF0ZUludAQFDGFtb3VudFRvU2VuZAkAZAIFDmdhc2xlc3NSZXdhcmRfAAEFB01BWF9JTlQCJWJ1cm5Ub2tlbnNWMjogcmV3YXJkIG1vcmUgdGhhbiBhbW91bnQDCQAAAgUEZXJyMwUEZXJyMwQJdXBkYXRlRmVlCQBlAgkAZAIJAQhfbG9hZEZlZQEFB2Fzc2V0SWQFA2ZlZQULcmVmZXJyZXJGZWUEEG5vcm1hbGl6ZWRBbW91bnQJARJfbm9ybWFsaXplRGVjaW1hbHMDBQxhbW91bnRUb1NlbmQFDWFzc2V0RGVjaW1hbHMFCERFQ0lNQUxTBBFub3JtYWxpemVkR2FzbGVzcwkBEl9ub3JtYWxpemVEZWNpbWFscwMFDmdhc2xlc3NSZXdhcmRfBQ1hc3NldERlY2ltYWxzBQhERUNJTUFMUwQKaW52b2NhdGlvbgkA/AcECQEQX2xvYWRSb290QWRhcHRlcgAFE0ZVTkNfUkVMRUFTRV9UT0tFTlMJAMwIAgURZXhlY3V0aW9uQ2hhaW5JZF8JAMwIAgUOZXhlY3V0aW9uQXNzZXQJAMwIAgUQbm9ybWFsaXplZEFtb3VudAkAzAgCBQpyZWNpcGllbnRfCQDMCAIFEW5vcm1hbGl6ZWRHYXNsZXNzBQNuaWwFA25pbAMJAAACBQppbnZvY2F0aW9uBQppbnZvY2F0aW9uCQCUCgIJAM4IAgkAzggCCQEIX3NhdmVGZWUCBQdhc3NldElkBQl1cGRhdGVGZWUFD3JlZmVycmVyQWN0aW9ucwkAzAgCCQEEQnVybgIFB2Fzc2V0SWQFDGFtb3VudFRvU2VuZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3RyYW5zZmVyRmVlAhFleGVjdXRpb25DaGFpbklkXwhhc3NldElkXwQDZXJyAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJAQ5fdmFsaWRhdGVBc3NldAIFCGFzc2V0SWRfAhp0cmFuc2ZlckZlZTogaW52YWxpZCBhc3NldAcDCQAAAgUDZXJyBQNlcnIEB2Fzc2V0SWQJANkEAQUIYXNzZXRJZF8EB2JpbmRpbmcJAQxfbG9hZEJpbmRpbmcCBRFleGVjdXRpb25DaGFpbklkXwUHYXNzZXRJZAQNYXNzZXRDb250cmFjdAgFB2JpbmRpbmcCXzEEB2VuYWJsZWQIBQdiaW5kaW5nAl84BARlcnIxAwkBEF92YWxpZGF0ZUFkZHJlc3MCCQClCAEFDWFzc2V0Q29udHJhY3QCHHRyYW5zZmVyRmVlOiBubyBzdWNoIGJpbmRpbmcJAQ1fdmFsaWRhdGVCb29sAwUHZW5hYmxlZAYCHnRyYW5zZmVyRmVlOiB0b2tlbiBpcyBkaXNhYmxlZAcDCQAAAgUEZXJyMQUEZXJyMQkAlAoCCQDOCAIJAQhfc2F2ZUZlZQIFB2Fzc2V0SWQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERX2xvYWRGZWVSZWNpcGllbnQACQEIX2xvYWRGZWUBBQdhc3NldElkBQdhc3NldElkBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEUdXBkYXRlQ2FsbGVyQ29udHJhY3QBD2NhbGxlckNvbnRyYWN0XwQDZXJyAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJARNfc2F2ZUNhbGxlckNvbnRyYWN0AQUPY2FsbGVyQ29udHJhY3RfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFHVwZGF0ZUV4ZWN1dGlvbkNoYWluAhFleGVjdXRpb25DaGFpbklkXwhlbmFibGVkXwQDZXJyAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBDF92YWxpZGF0ZUludAQFEWV4ZWN1dGlvbkNoYWluSWRfAAAFB01BWF9JTlQCLnVwZGF0ZUV4ZWN1dGlvbkNoYWluOiBpbnZhbGlkIGV4ZWN1dGlvbkNoYWluSWQHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZUNoYWluAgURZXhlY3V0aW9uQ2hhaW5JZF8FCGVuYWJsZWRfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEnVwZGF0ZUZlZVJlY2lwaWVudAENZmVlUmVjaXBpZW50XwQDZXJyAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBEF92YWxpZGF0ZUFkZHJlc3MCBQ1mZWVSZWNpcGllbnRfAih1cGRhdGVGZWVSZWNpcGllbnQ6IGludmFsaWQgZmVlUmVjaXBpZW50BwMJAAACBQNlcnIFA2VycgkAlAoCCQERX3NhdmVGZWVSZWNpcGllbnQBCQERQGV4dHJOYXRpdmUoMTA2MikBBQ1mZWVSZWNpcGllbnRfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDnVwZGF0ZVJlZmVycmVyAxFleGVjdXRpb25DaGFpbklkXwlyZWZlcnJlcl8EZmVlXwQDZXJyAwMDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEOX3ZhbGlkYXRlQ2hhaW4CBRFleGVjdXRpb25DaGFpbklkXwIndXBkYXRlUmVmZXJyZXI6IGludmFsaWQgZXhlY3V0aW9uIGNoYWluBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQlyZWZlcnJlcl8CIHVwZGF0ZVJlZmVycmVyOiBpbnZhbGlkIHJlZmVycmVyBwkBDF92YWxpZGF0ZUludAQFBGZlZV8AAAUQTUFYX1JFRkVSUkVSX0ZFRQIbdXBkYXRlUmVmZXJyZXI6IGludmFsaWQgZmVlBwMJAAACBQNlcnIFA2VycgkAlAoCCQEXX3NhdmVSZWZlcnJlckZlZVBlcmNlbnQDBRFleGVjdXRpb25DaGFpbklkXwkBEUBleHRyTmF0aXZlKDEwNjIpAQUJcmVmZXJyZXJfBQRmZWVfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEXVwZGF0ZUJpbmRpbmdJbmZvCRFleGVjdXRpb25DaGFpbklkXw5hc3NldENvbnRyYWN0Xw9leGVjdXRpb25Bc3NldF8KbWluQW1vdW50XwdtaW5GZWVfDXRocmVzaG9sZEZlZV8RYmVmb3JlUGVyY2VudEZlZV8QYWZ0ZXJQZXJjZW50RmVlXwhlbmFibGVkXwQDZXJyAwMDAwMDAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBEF92YWxpZGF0ZUFkZHJlc3MCBQ5hc3NldENvbnRyYWN0XwIpdXBkYXRlQmluZGluZ0luZm86IGludmFsaWQgYXNzZXQgY29udHJhY3QHCQEMX3ZhbGlkYXRlSW50BAURZXhlY3V0aW9uQ2hhaW5JZF8AAAUHTUFYX0lOVAIrdXBkYXRlQmluZGluZ0luZm86IGludmFsaWQgZXhlY3V0aW9uQ2hhaW5JZAcJAQxfdmFsaWRhdGVJbnQEBQptaW5BbW91bnRfAAAFB01BWF9JTlQCJHVwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIG1pbkFtb3VudAcJAQxfdmFsaWRhdGVJbnQEBQdtaW5GZWVfAAAFB01BWF9JTlQCIXVwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIG1pbkZlZQcJAQxfdmFsaWRhdGVJbnQEBQ10aHJlc2hvbGRGZWVfAAAFB01BWF9JTlQCJ3VwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIHRocmVzaG9sZEZlZQcJAQxfdmFsaWRhdGVJbnQEBRFiZWZvcmVQZXJjZW50RmVlXwAABQdNQVhfSU5UAit1cGRhdGVCaW5kaW5nSW5mbzogaW52YWxpZCBiZWZvcmVQZXJjZW50RmVlBwkBDF92YWxpZGF0ZUludAQFEGFmdGVyUGVyY2VudEZlZV8AAAUHTUFYX0lOVAIqdXBkYXRlQmluZGluZ0luZm86IGludmFsaWQgYWZ0ZXJQZXJjZW50RmVlBwMJAAACBQNlcnIFA2VycgQHYXNzZXRJZAkBCF9hc0J5dGVzAQkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQ5hc3NldENvbnRyYWN0XwIKZ2V0QXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUHYXNzZXRJZAUHYXNzZXRJZAQHYmluZGluZwkAmgoICQERQGV4dHJOYXRpdmUoMTA2MikBBQ5hc3NldENvbnRyYWN0XwUPZXhlY3V0aW9uQXNzZXRfBQptaW5BbW91bnRfBQdtaW5GZWVfBQ10aHJlc2hvbGRGZWVfBRFiZWZvcmVQZXJjZW50RmVlXwUQYWZ0ZXJQZXJjZW50RmVlXwUIZW5hYmxlZF8JAJQKAgkBDF9zYXZlQmluZGluZwMFEWV4ZWN1dGlvbkNoYWluSWRfBQdhc3NldElkBQdiaW5kaW5nBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBXBhdXNlAAQDZXJyAwMJAQtfb25seVBhdXNlcgEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBDl93aGVuTm90UGF1c2VkAAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBCl9zYXZlUGF1c2UBBgUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQd1bnBhdXNlAAQDZXJyAwMJAQtfb25seVBhdXNlcgEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBC193aGVuUGF1c2VkAAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBCl9zYXZlUGF1c2UBBwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQx1cGRhdGVQYXVzZXIBB3BhdXNlcl8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUHcGF1c2VyXwIcdXBkYXRlUGF1c2VyOiBpbnZhbGlkIHBhdXNlcgcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBC19zYXZlUGF1c2VyAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUHcGF1c2VyXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtzZXRNdWx0aXNpZwEJbXVsdGlzaWdfBANlcnIDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfdmFsaWRhdGVBZGRyZXNzAgUJbXVsdGlzaWdfAh1zZXRNdWx0aXNpZzogaW52YWxpZCBtdWx0aXNpZwcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBDV9zYXZlTXVsdGlzaWcBCQERQGV4dHJOYXRpdmUoMTA2MikBBQltdWx0aXNpZ18FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcECG11bHRpc2lnBQckbWF0Y2gwCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCG11bHRpc2lnCQC5CQIJAMwIAgUKS0VZX1NUQVRVUwkAzAgCCQClCAEFBHRoaXMJAMwIAgkA2AQBCAUCdHgCaWQFA25pbAUJU0VQQVJBVE9SBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleYXDisg=", "height": 2649471, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5Z1JkyR2dz4cb2Dj5tp9UrMtWcPMpuen9D5L3xvJzgxu Next: 2WKUirVcMpQUDDokDWowue7hGuXqGuH2riBivzimqcN5 Diff:
OldNewDifferences
8282 else true
8383
8484
85-func K (L,M,N) = if ((M >= N))
86- then (L / pow(10, 0, (M - N), 0, 0, DOWN))
87- else (L * pow(10, 0, (N - M), 0, 0, DOWN))
85+func K (L,x) = if ((L != ""))
86+ then v(L, x)
87+ else true
8888
8989
90-func O () = {
90+func M (N,O,P) = if ((O >= P))
91+ then (N / pow(10, 0, (O - P), 0, 0, DOWN))
92+ else (N * pow(10, 0, (P - O), 0, 0, DOWN))
93+
94+
95+func Q () = {
9196 let y = getBoolean(b)
9297 if ($isInstanceOf(y, "Boolean"))
9398 then {
98103 }
99104
100105
101-func P (Q) = [BooleanEntry(b, Q)]
106+func R (S) = [BooleanEntry(b, S)]
102107
103108
104-func R () = {
109+func T () = {
105110 let y = getBoolean(e)
106111 if ($isInstanceOf(y, "Boolean"))
107112 then {
112117 }
113118
114119
115-func S (T) = [BooleanEntry(e, T)]
120+func U (V) = [BooleanEntry(e, V)]
116121
117122
118-func U () = {
123+func W () = {
119124 let y = getString(f)
120125 if ($isInstanceOf(y, "String"))
121126 then {
126131 }
127132
128133
129-func V (W) = [StringEntry(f, toString(W))]
134+func X (Y) = [StringEntry(f, toString(Y))]
130135
131136
132-func X () = {
137+func Z () = {
133138 let y = getString(c)
134139 if ($isInstanceOf(y, "String"))
135140 then {
140145 }
141146
142147
143-func Y (Z) = [StringEntry(c, toString(Z))]
148+func aa (ab) = [StringEntry(c, toString(ab))]
144149
145150
146-func aa () = {
151+func ac () = {
147152 let y = getString(g)
148153 if ($isInstanceOf(y, "String"))
149154 then {
154159 }
155160
156161
157-func ab (ac) = [StringEntry(g, toString(ac))]
162+func ad (ae) = [StringEntry(g, toString(ae))]
158163
159164
160-func ad () = {
165+func af () = {
161166 let y = getString(i)
162167 if ($isInstanceOf(y, "String"))
163168 then {
168173 }
169174
170175
171-func ae (af) = [StringEntry(i, af)]
176+func ag (ah) = [StringEntry(i, ah)]
172177
173178
174-func ag (ah) = {
175- let y = getBoolean(makeString([j, toString(ah)], a))
179+func ai (aj) = {
180+ let y = getBoolean(makeString([j, toString(aj)], a))
176181 if ($isInstanceOf(y, "Boolean"))
177182 then {
178183 let z = y
182187 }
183188
184189
185-func ai (ah,D) = [BooleanEntry(makeString([j, toString(ah)], a), D)]
190+func ak (aj,D) = [BooleanEntry(makeString([j, toString(aj)], a), D)]
186191
187192
188-func aj (ak,B) = {
189- let y = getString(makeString([k, toString(ak), toBase58String(B)], a))
193+func al (am,B) = {
194+ let y = getString(makeString([k, toString(am), toBase58String(B)], a))
190195 if ($isInstanceOf(y, "String"))
191196 then {
192197 let z = y
193- let al = split(z, a)
194- $Tuple8(addressFromStringValue(al[0]), al[1], parseIntValue(al[2]), parseIntValue(al[3]), parseIntValue(al[4]), parseIntValue(al[5]), parseIntValue(al[6]), if ((al[7] == "1"))
198+ let an = split(z, a)
199+ $Tuple8(addressFromStringValue(an[0]), an[1], parseIntValue(an[2]), parseIntValue(an[3]), parseIntValue(an[4]), parseIntValue(an[5]), parseIntValue(an[6]), if ((an[7] == "1"))
195200 then true
196201 else false)
197202 }
199204 }
200205
201206
202-func am (ak,B,an) = [StringEntry(makeString([k, toString(ak), toBase58String(B)], a), makeString([toString(an._1), an._2, toString(an._3), toString(an._4), toString(an._5), toString(an._6), toString(an._7), if (an._8)
207+func ao (am,B,ap) = [StringEntry(makeString([k, toString(am), toBase58String(B)], a), makeString([toString(ap._1), ap._2, toString(ap._3), toString(ap._4), toString(ap._5), toString(ap._6), toString(ap._7), if (ap._8)
203208 then "1"
204209 else "0"], a))]
205210
206211
207-func ao (B) = {
212+func aq (B) = {
208213 let y = getInteger(makeString([l, toBase58String(B)], a))
209214 if ($isInstanceOf(y, "Int"))
210215 then {
215220 }
216221
217222
218-func ap (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
223+func ar (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
219224
220225
221-func aq () = {
226+func as () = {
222227 let y = getString(h)
223228 if ($isInstanceOf(y, "String"))
224229 then {
229234 }
230235
231236
232-func ar (as) = [StringEntry(h, toString(as))]
237+func at (au) = [StringEntry(h, toString(au))]
233238
234239
235-func at () = {
240+func av () = {
236241 let y = getString(m)
237242 if ($isInstanceOf(y, "String"))
238243 then {
243248 }
244249
245250
246-func au (D) = [StringEntry(m, toString(D))]
251+func aw (D) = [StringEntry(m, toString(D))]
247252
248253
249-func av (ak,aw) = {
250- let y = getInteger(makeString([n, toString(ak), toString(aw)], a))
254+func ax (am,L) = {
255+ let y = getInteger(makeString([n, toString(am), toString(L)], a))
251256 if ($isInstanceOf(y, "Int"))
252257 then {
253258 let z = y
257262 }
258263
259264
260-func ax (ak,aw,D) = [IntegerEntry(makeString([n, toString(ak), toString(aw)], a), D)]
265+func ay (am,L,D) = [IntegerEntry(makeString([n, toString(am), toString(L)], a), D)]
261266
262267
263-func ay (af) = if ((af != this))
268+func az (ah) = if ((ah != this))
264269 then throw("_onlyThisContract: revert")
265270 else true
266271
267272
268-func az () = if ((X() == Address(base58'')))
273+func aA () = if ((Z() == Address(base58'')))
269274 then throw("_whenMultisigSet: revert")
270275 else true
271276
272277
273-func aA () = if (O())
278+func aB () = if (Q())
274279 then throw("_whenNotInitialized: revert")
275280 else true
276281
277282
278-func aB () = if (!(O()))
283+func aC () = if (!(Q()))
279284 then throw("_whenInitialized: revert")
280285 else true
281286
282287
283-func aC () = if (R())
288+func aD () = if (T())
284289 then throw("_whenNotPaused: revert")
285290 else true
286291
287292
288-func aD () = if (!(R()))
293+func aE () = if (!(T()))
289294 then throw("_whenPaused: revert")
290295 else true
291296
292297
293-func aE (af) = if ((af != U()))
298+func aF (ah) = if ((ah != W()))
294299 then throw("_onlyPauser: revert")
295300 else true
296301
297302
298-func aF (D) = {
303+func aG (D) = {
299304 let y = D
300305 if ($isInstanceOf(y, "Int"))
301306 then {
306311 }
307312
308313
309-func aG (D) = {
314+func aH (D) = {
310315 let y = D
311316 if ($isInstanceOf(y, "ByteVector"))
312317 then {
317322 }
318323
319324
320-func aH (D,x) = if ((D != aa()))
325+func aI (D,x) = if ((D != ac()))
321326 then throw(x)
322327 else true
323328
324329
325-func aI (D,x) = if ((D != ad()))
330+func aJ (D,x) = if ((D != af()))
326331 then throw(x)
327332 else true
328333
329334
330-func aJ (ak,x) = if (!(ag(ak)))
335+func aK (am,x) = if (!(ai(am)))
331336 then throw(x)
332337 else true
333338
334339
335-@Callable(aK)
336-func init (ac,as,W,aL) = {
337- let aM = if (if (if (if (if (if (ay(aK.caller))
340+@Callable(aL)
341+func init (ae,au,Y,aM) = {
342+ let aN = if (if (if (if (if (if (az(aL.caller))
343+ then aB()
344+ else false)
338345 then aA()
339346 else false)
340- then az()
347+ then v(ae, "init: invalid executor")
341348 else false)
342- then v(ac, "init: invalid executor")
349+ then v(au, "init: invalid adapter")
343350 else false)
344- then v(as, "init: invalid adapter")
351+ then v(Y, "init: invalid pauser")
345352 else false)
346- then v(W, "init: invalid pauser")
347- else false)
348- then v(aL, "init: invalid feeRecipient")
353+ then v(aM, "init: invalid feeRecipient")
349354 else false
350- if ((aM == aM))
351- then $Tuple2(((((P(true) ++ ab(addressFromStringValue(ac))) ++ ar(addressFromStringValue(as))) ++ V(addressFromStringValue(W))) ++ au(addressFromStringValue(aL))), unit)
355+ if ((aN == aN))
356+ then $Tuple2(((((R(true) ++ ad(addressFromStringValue(ae))) ++ at(addressFromStringValue(au))) ++ X(addressFromStringValue(Y))) ++ aw(addressFromStringValue(aM))), unit)
352357 else throw("Strict value is not equal to itself.")
353358 }
354359
355360
356361
357-@Callable(aK)
358-func mintTokens (aN,aO,L,aP,aQ,aw,aR) = {
359- let aS = valueOrErrorMessage(parseInt(L), "mint: amount is not Int")
360- let aT = valueOrErrorMessage(parseInt(aQ), "mint: gaslessReward is not Int")
361- let aU = valueOrErrorMessage(parseInt(aR), "mint: referrerFee is not Int")
362- let aM = if (if (if (if (if (if (if (if (aB())
363- then aC()
362+@Callable(aL)
363+func mintTokens (aO,aP,N,aQ,aR,L,aS) = {
364+ let aT = valueOrErrorMessage(parseInt(N), "mint: amount is not Int")
365+ let aU = valueOrErrorMessage(parseInt(aR), "mint: gaslessReward is not Int")
366+ let aV = valueOrErrorMessage(parseInt(aS), "mint: referrerFee is not Int")
367+ let aN = if (if (if (if (if (if (if (if (aC())
368+ then aD()
364369 else false)
365- then v(aO, "mint: invalid asset contract")
370+ then v(aP, "mint: invalid asset contract")
366371 else false)
367- then aH(aK.caller, "mint: invalid executor")
372+ then aI(aL.caller, "mint: invalid executor")
368373 else false)
369- then aI(aN, "mint: invalid caller")
374+ then aJ(aO, "mint: invalid caller")
370375 else false)
371- then v(aP, "mint: invalid recipient address")
376+ then v(aQ, "mint: invalid recipient address")
372377 else false)
373- then C(aS, 0, u, "mint: invalid amount")
378+ then C(aT, 0, u, "mint: invalid amount")
374379 else false)
375- then C(aT, 0, u, "mint: invalid gaslessReward")
380+ then C(aU, 0, u, "mint: invalid gaslessReward")
376381 else false)
377- then C(aU, 0, u, "mint: invalid referrer fee")
382+ then C(aV, 0, u, "mint: invalid referrer fee")
378383 else false
379- if ((aM == aM))
384+ if ((aN == aN))
380385 then {
381- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
382- if ((aV == aV))
386+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
387+ if ((aW == aW))
383388 then {
384- let aW = aF(invoke(addressFromStringValue(aO), "getDecimals", nil, nil))
385- if ((aW == aW))
389+ let aX = aG(invoke(addressFromStringValue(aP), "getDecimals", nil, nil))
390+ if ((aX == aX))
386391 then {
387- let aX = K(aS, r, aW)
388- let aY = K(aT, r, aW)
389- let aZ = {
390- let y = addressFromString(aw)
392+ let aY = M(aT, r, aX)
393+ let aZ = M(aU, r, aX)
394+ let ba = {
395+ let y = addressFromString(L)
391396 if ($isInstanceOf(y, "Address"))
392397 then {
393- let ba = y
394- let bb = K(aU, r, aW)
395- $Tuple2(bb, [ScriptTransfer(ba, bb, aV)])
398+ let bb = y
399+ let bc = M(aV, r, aX)
400+ $Tuple2(bc, [ScriptTransfer(bb, bc, aW)])
396401 }
397402 else $Tuple2(0, nil)
398403 }
399- let bb = aZ._1
400- let bc = aZ._2
401- let bd = invoke(addressFromStringValue(aO), "mint", [(aX + bb), toString(this)], nil)
402- if ((bd == bd))
404+ let bc = ba._1
405+ let bd = ba._2
406+ let be = invoke(addressFromStringValue(aP), "mint", [(aY + bc), toString(this)], nil)
407+ if ((be == be))
403408 then {
404- let be = if (if ((aY > 0))
405- then (addressFromStringValue(aP) != aK.originCaller)
409+ let bf = if (if ((aZ > 0))
410+ then (addressFromStringValue(aQ) != aL.originCaller)
406411 else false)
407- then [ScriptTransfer(addressFromStringValue(aP), (aX - aY), aV), ScriptTransfer(aK.originCaller, aY, aV)]
408- else [ScriptTransfer(addressFromStringValue(aP), aX, aV)]
409- $Tuple2((be ++ bc), unit)
412+ then [ScriptTransfer(addressFromStringValue(aQ), (aY - aZ), aW), ScriptTransfer(aL.originCaller, aZ, aW)]
413+ else [ScriptTransfer(addressFromStringValue(aQ), aY, aW)]
414+ $Tuple2((bf ++ bd), unit)
410415 }
411416 else throw("Strict value is not equal to itself.")
412417 }
419424
420425
421426
422-@Callable(aK)
423-func burnTokens (ak,aP,aQ) = {
424- let aM = if (if (if (if (if (aB())
425- then aC()
427+@Callable(aL)
428+func burnTokens (am,aQ,L,aR) = {
429+ let aN = if (if (if (if (if (aC())
430+ then aD()
426431 else false)
427- then aJ(ak, "burn: invalid execution chain")
432+ then aK(am, "burnTokens: invalid execution chain")
428433 else false)
429- then I(aK.payments, 1, "burn: no payment")
434+ then I(aL.payments, 1, "burnTokens: no payment")
430435 else false)
431- then C(aQ, 0, u, "burn: invalid gaslessReward")
436+ then C(aR, 0, u, "burnTokens: invalid gaslessReward")
432437 else false)
433- then C(aK.payments[0].amount, 0, u, "burn: invalid payment amount")
438+ then C(aL.payments[0].amount, 0, u, "burnTokens: invalid payment amount")
434439 else false
435- if ((aM == aM))
440+ if ((aN == aN))
436441 then {
437- let aS = aK.payments[0].amount
438- let aV = {
439- let y = aK.payments[0].assetId
442+ let aT = aL.payments[0].amount
443+ let aW = {
444+ let y = aL.payments[0].assetId
440445 if ($isInstanceOf(y, "ByteVector"))
441446 then {
442447 let z = y
443448 z
444449 }
445- else throw("burn: invalid asset")
450+ else throw("burnTokens: invalid asset")
446451 }
447- let bf = aj(ak, aV)
448- let bg = bf._1
449- let bh = bf._2
450- let bi = bf._3
451- let bj = bf._4
452- let bk = bf._5
453- let bl = bf._6
454- let bm = bf._7
455- let bn = bf._8
456- let bo = if (if (v(toString(bg), "burn: no such binding"))
457- then C(aS, bi, u, "burn: less than min")
452+ let bg = al(am, aW)
453+ let bh = bg._1
454+ let bi = bg._2
455+ let bj = bg._3
456+ let bk = bg._4
457+ let bl = bg._5
458+ let bm = bg._6
459+ let bn = bg._7
460+ let bo = bg._8
461+ let bp = if (if (v(toString(bh), "burnTokens: no such binding"))
462+ then C(aT, bj, u, "burnTokens: less than min")
458463 else false)
459- then G(bn, true, "burn: token is disabled")
464+ then G(bo, true, "burnTokens: token is disabled")
460465 else false
461- if ((bo == bo))
466+ if ((bp == bp))
462467 then {
463- let aW = aF(invoke(bg, "getDecimals", nil, nil))
464- if ((aW == aW))
468+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
469+ if ((aX == aX))
465470 then {
466- let bp = if ((aS > bk))
467- then bm
468- else bl
469- let bq = (bj + fraction(aS, bp, s))
470- let br = C(aS, (bq + 1), u, "burn: fee more than amount")
471- if ((br == br))
471+ let bq = if ((aT > bl))
472+ then bn
473+ else bm
474+ let br = (bk + fraction(aT, bq, s))
475+ let bs = C(aT, (br + 1), u, "burnTokens: fee more than amount")
476+ if ((bs == bs))
472477 then {
473- let bs = (aS - bq)
474- let bt = C(bs, (aQ + 1), u, "burn: reward more than amount")
475- if ((bt == bt))
478+ let bt = (aT - br)
479+ let bu = C(bt, (aR + 1), u, "burnTokens: reward more than amount")
480+ if ((bu == bu))
476481 then {
477- let bu = (ao(aV) + bq)
478- let aX = K(bs, aW, r)
479- let aY = K(aQ, aW, r)
480- let bd = invoke(aq(), o, [ak, bh, aX, aP, aY], nil)
481- if ((bd == bd))
482- then $Tuple2((ap(aV, bu) ++ [Burn(aV, bs)]), unit)
482+ let bv = (aq(aW) + br)
483+ let aY = M(bt, aX, r)
484+ let aZ = M(aR, aX, r)
485+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
486+ if ((be == be))
487+ then $Tuple2((ar(aW, bv) ++ [Burn(aW, bt)]), unit)
483488 else throw("Strict value is not equal to itself.")
484489 }
485490 else throw("Strict value is not equal to itself.")
495500
496501
497502
498-@Callable(aK)
499-func transferFee (ak,B) = {
500- let aM = if (if (aB())
501- then aC()
503+@Callable(aL)
504+func burnTokensV2 (am,aQ,L,aR) = {
505+ let aN = if (if (if (if (if (if (aC())
506+ then aD()
502507 else false)
503- then A(B, "transferFee: invalid asset")
508+ then aK(am, "burnTokensV2: invalid execution chain")
509+ else false)
510+ then I(aL.payments, 1, "burnTokensV2: no payment")
511+ else false)
512+ then C(aR, 0, u, "burnTokensV2: invalid gaslessReward")
513+ else false)
514+ then C(aL.payments[0].amount, 0, u, "burnTokensV2: invalid payment amount")
515+ else false)
516+ then K(L, "burnTokensV2: invalid referrer")
504517 else false
505- if ((aM == aM))
518+ if ((aN == aN))
506519 then {
507- let aV = fromBase58String(B)
508- let bf = aj(ak, aV)
509- let bg = bf._1
510- let bn = bf._8
511- let bo = if (v(toString(bg), "transferFee: no such binding"))
512- then G(bn, true, "transferFee: token is disabled")
520+ let aT = aL.payments[0].amount
521+ let aW = {
522+ let y = aL.payments[0].assetId
523+ if ($isInstanceOf(y, "ByteVector"))
524+ then {
525+ let z = y
526+ z
527+ }
528+ else throw("burnTokensV2: invalid asset")
529+ }
530+ let bg = al(am, aW)
531+ let bh = bg._1
532+ let bi = bg._2
533+ let bj = bg._3
534+ let bk = bg._4
535+ let bl = bg._5
536+ let bm = bg._6
537+ let bn = bg._7
538+ let bo = bg._8
539+ let bp = if (if (v(toString(bh), "burnTokensV2: no such binding"))
540+ then C(aT, bj, u, "burnTokensV2: less than min")
541+ else false)
542+ then G(bo, true, "burnTokensV2: token is disabled")
513543 else false
514- if ((bo == bo))
515- then $Tuple2((ap(aV, 0) ++ [ScriptTransfer(at(), ao(aV), aV)]), unit)
516- else throw("Strict value is not equal to itself.")
517- }
518- else throw("Strict value is not equal to itself.")
519- }
520-
521-
522-
523-@Callable(aK)
524-func updateCallerContract (aN) = {
525- let aM = if (ay(aK.caller))
526- then aB()
527- else false
528- if ((aM == aM))
529- then $Tuple2(ae(aN), unit)
530- else throw("Strict value is not equal to itself.")
531- }
532-
533-
534-
535-@Callable(aK)
536-func updateExecutionChain (ak,bv) = {
537- let aM = if (if (ay(aK.caller))
538- then aB()
539- else false)
540- then C(ak, 0, u, "updateExecutionChain: invalid executionChainId")
541- else false
542- if ((aM == aM))
543- then $Tuple2(ai(ak, bv), unit)
544- else throw("Strict value is not equal to itself.")
545- }
546-
547-
548-
549-@Callable(aK)
550-func updateFeeRecipient (aL) = {
551- let aM = if (if (ay(aK.caller))
552- then aB()
553- else false)
554- then v(aL, "updateFeeRecipient: invalid feeRecipient")
555- else false
556- if ((aM == aM))
557- then $Tuple2(au(addressFromStringValue(aL)), unit)
558- else throw("Strict value is not equal to itself.")
559- }
560-
561-
562-
563-@Callable(aK)
564-func updateReferrer (ak,aw,bw) = {
565- let aM = if (if (if (if (ay(aK.caller))
566- then aB()
567- else false)
568- then aJ(ak, "updateReferrer: invalid execution chain")
569- else false)
570- then v(aw, "updateReferrer: invalid referrer")
571- else false)
572- then C(bw, 0, t, "updateReferrer: invalid fee")
573- else false
574- if ((aM == aM))
575- then $Tuple2(ax(ak, addressFromStringValue(aw), bw), unit)
576- else throw("Strict value is not equal to itself.")
577- }
578-
579-
580-
581-@Callable(aK)
582-func updateBindingInfo (ak,aO,bx,by,bz,bA,bB,bC,bv) = {
583- let aM = if (if (if (if (if (if (if (if (ay(aK.caller))
584- then aB()
585- else false)
586- then v(aO, "updateBindingInfo: invalid asset contract")
587- else false)
588- then C(ak, 0, u, "updateBindingInfo: invalid executionChainId")
589- else false)
590- then C(by, 0, u, "updateBindingInfo: invalid minAmount")
591- else false)
592- then C(bz, 0, u, "updateBindingInfo: invalid minFee")
593- else false)
594- then C(bA, 0, u, "updateBindingInfo: invalid thresholdFee")
595- else false)
596- then C(bB, 0, u, "updateBindingInfo: invalid beforePercentFee")
597- else false)
598- then C(bC, 0, u, "updateBindingInfo: invalid afterPercentFee")
599- else false
600- if ((aM == aM))
601- then {
602- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
603- if ((aV == aV))
544+ if ((bp == bp))
604545 then {
605- let bf = $Tuple8(addressFromStringValue(aO), bx, by, bz, bA, bB, bC, bv)
606- $Tuple2(am(ak, aV, bf), unit)
546+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
547+ if ((aX == aX))
548+ then {
549+ let bq = if ((aT > bl))
550+ then bn
551+ else bm
552+ let br = (bk + fraction(aT, bq, s))
553+ let bs = C(aT, (br + 1), u, "burnTokensV2: fee more than amount")
554+ if ((bs == bs))
555+ then {
556+ let bw = if ((L != ""))
557+ then {
558+ let ba = addressFromStringValue(L)
559+ let bx = fraction(ax(am, ba), br, s)
560+ $Tuple2(bx, [ScriptTransfer(ba, bx, aW)])
561+ }
562+ else $Tuple2(0, nil)
563+ let aV = bw._1
564+ let bd = bw._2
565+ let bt = (aT - br)
566+ let bu = C(bt, (aR + 1), u, "burnTokensV2: reward more than amount")
567+ if ((bu == bu))
568+ then {
569+ let bv = ((aq(aW) + br) - aV)
570+ let aY = M(bt, aX, r)
571+ let aZ = M(aR, aX, r)
572+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
573+ if ((be == be))
574+ then $Tuple2(((ar(aW, bv) ++ bd) ++ [Burn(aW, bt)]), unit)
575+ else throw("Strict value is not equal to itself.")
576+ }
577+ else throw("Strict value is not equal to itself.")
578+ }
579+ else throw("Strict value is not equal to itself.")
580+ }
581+ else throw("Strict value is not equal to itself.")
607582 }
608583 else throw("Strict value is not equal to itself.")
609584 }
612587
613588
614589
615-@Callable(aK)
616-func pause () = {
617- let aM = if (if (aE(aK.caller))
618- then aB()
590+@Callable(aL)
591+func transferFee (am,B) = {
592+ let aN = if (if (aC())
593+ then aD()
619594 else false)
620- then aC()
595+ then A(B, "transferFee: invalid asset")
621596 else false
622- if ((aM == aM))
623- then $Tuple2(S(true), unit)
597+ if ((aN == aN))
598+ then {
599+ let aW = fromBase58String(B)
600+ let bg = al(am, aW)
601+ let bh = bg._1
602+ let bo = bg._8
603+ let bp = if (v(toString(bh), "transferFee: no such binding"))
604+ then G(bo, true, "transferFee: token is disabled")
605+ else false
606+ if ((bp == bp))
607+ then $Tuple2((ar(aW, 0) ++ [ScriptTransfer(av(), aq(aW), aW)]), unit)
608+ else throw("Strict value is not equal to itself.")
609+ }
624610 else throw("Strict value is not equal to itself.")
625611 }
626612
627613
628614
629-@Callable(aK)
630-func unpause () = {
631- let aM = if (if (aE(aK.caller))
632- then aB()
633- else false)
634- then aD()
615+@Callable(aL)
616+func updateCallerContract (aO) = {
617+ let aN = if (az(aL.caller))
618+ then aC()
635619 else false
636- if ((aM == aM))
637- then $Tuple2(S(false), unit)
620+ if ((aN == aN))
621+ then $Tuple2(ag(aO), unit)
638622 else throw("Strict value is not equal to itself.")
639623 }
640624
641625
642626
643-@Callable(aK)
644-func updatePauser (W) = {
645- let aM = if (if (ay(aK.caller))
646- then aB()
627+@Callable(aL)
628+func updateExecutionChain (am,by) = {
629+ let aN = if (if (az(aL.caller))
630+ then aC()
647631 else false)
648- then v(W, "init: invalid pauser")
632+ then C(am, 0, u, "updateExecutionChain: invalid executionChainId")
649633 else false
650- if ((aM == aM))
651- then $Tuple2(V(addressFromStringValue(W)), unit)
634+ if ((aN == aN))
635+ then $Tuple2(ak(am, by), unit)
652636 else throw("Strict value is not equal to itself.")
653637 }
654638
655639
656640
657-@Callable(aK)
658-func setMultisig (Z) = {
659- let aM = if (ay(aK.caller))
660- then v(Z, "setMultisig: invalid multisig")
641+@Callable(aL)
642+func updateFeeRecipient (aM) = {
643+ let aN = if (if (az(aL.caller))
644+ then aC()
645+ else false)
646+ then v(aM, "updateFeeRecipient: invalid feeRecipient")
661647 else false
662- if ((aM == aM))
663- then $Tuple2(Y(addressFromStringValue(Z)), unit)
648+ if ((aN == aN))
649+ then $Tuple2(aw(addressFromStringValue(aM)), unit)
664650 else throw("Strict value is not equal to itself.")
665651 }
666652
667653
668-@Verifier(bD)
669-func bE () = {
654+
655+@Callable(aL)
656+func updateReferrer (am,L,bz) = {
657+ let aN = if (if (if (if (az(aL.caller))
658+ then aC()
659+ else false)
660+ then aK(am, "updateReferrer: invalid execution chain")
661+ else false)
662+ then v(L, "updateReferrer: invalid referrer")
663+ else false)
664+ then C(bz, 0, t, "updateReferrer: invalid fee")
665+ else false
666+ if ((aN == aN))
667+ then $Tuple2(ay(am, addressFromStringValue(L), bz), unit)
668+ else throw("Strict value is not equal to itself.")
669+ }
670+
671+
672+
673+@Callable(aL)
674+func updateBindingInfo (am,aP,bA,bB,bC,bD,bE,bF,by) = {
675+ let aN = if (if (if (if (if (if (if (if (az(aL.caller))
676+ then aC()
677+ else false)
678+ then v(aP, "updateBindingInfo: invalid asset contract")
679+ else false)
680+ then C(am, 0, u, "updateBindingInfo: invalid executionChainId")
681+ else false)
682+ then C(bB, 0, u, "updateBindingInfo: invalid minAmount")
683+ else false)
684+ then C(bC, 0, u, "updateBindingInfo: invalid minFee")
685+ else false)
686+ then C(bD, 0, u, "updateBindingInfo: invalid thresholdFee")
687+ else false)
688+ then C(bE, 0, u, "updateBindingInfo: invalid beforePercentFee")
689+ else false)
690+ then C(bF, 0, u, "updateBindingInfo: invalid afterPercentFee")
691+ else false
692+ if ((aN == aN))
693+ then {
694+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
695+ if ((aW == aW))
696+ then {
697+ let bg = $Tuple8(addressFromStringValue(aP), bA, bB, bC, bD, bE, bF, by)
698+ $Tuple2(ao(am, aW, bg), unit)
699+ }
700+ else throw("Strict value is not equal to itself.")
701+ }
702+ else throw("Strict value is not equal to itself.")
703+ }
704+
705+
706+
707+@Callable(aL)
708+func pause () = {
709+ let aN = if (if (aF(aL.caller))
710+ then aC()
711+ else false)
712+ then aD()
713+ else false
714+ if ((aN == aN))
715+ then $Tuple2(U(true), unit)
716+ else throw("Strict value is not equal to itself.")
717+ }
718+
719+
720+
721+@Callable(aL)
722+func unpause () = {
723+ let aN = if (if (aF(aL.caller))
724+ then aC()
725+ else false)
726+ then aE()
727+ else false
728+ if ((aN == aN))
729+ then $Tuple2(U(false), unit)
730+ else throw("Strict value is not equal to itself.")
731+ }
732+
733+
734+
735+@Callable(aL)
736+func updatePauser (Y) = {
737+ let aN = if (if (az(aL.caller))
738+ then aC()
739+ else false)
740+ then v(Y, "updatePauser: invalid pauser")
741+ else false
742+ if ((aN == aN))
743+ then $Tuple2(X(addressFromStringValue(Y)), unit)
744+ else throw("Strict value is not equal to itself.")
745+ }
746+
747+
748+
749+@Callable(aL)
750+func setMultisig (ab) = {
751+ let aN = if (az(aL.caller))
752+ then v(ab, "setMultisig: invalid multisig")
753+ else false
754+ if ((aN == aN))
755+ then $Tuple2(aa(addressFromStringValue(ab)), unit)
756+ else throw("Strict value is not equal to itself.")
757+ }
758+
759+
760+@Verifier(bG)
761+func bH () = {
670762 let y = getString(c)
671763 if ($isInstanceOf(y, "String"))
672764 then {
673- let bF = y
674- valueOrElse(getBoolean(addressFromStringValue(bF), makeString([d, toString(this), toBase58String(bD.id)], a)), false)
765+ let bI = y
766+ valueOrElse(getBoolean(addressFromStringValue(bI), makeString([d, toString(this), toBase58String(bG.id)], a)), false)
675767 }
676- else sigVerify(bD.bodyBytes, bD.proofs[0], bD.senderPublicKey)
768+ else sigVerify(bG.bodyBytes, bG.proofs[0], bG.senderPublicKey)
677769 }
678770
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "INIT"
77
88 let c = "MULTISIG"
99
1010 let d = "STATUS"
1111
1212 let e = "PAUSED"
1313
1414 let f = "PAUSER"
1515
1616 let g = "EXECUTOR"
1717
1818 let h = "ROOT_ADAPTER"
1919
2020 let i = "CALLER_CONTRACT"
2121
2222 let j = "CHAIN"
2323
2424 let k = "BINDING"
2525
2626 let l = "FEE"
2727
2828 let m = "FEE_RECIPIENT"
2929
3030 let n = "REFERRER_FEE_PERCENT"
3131
3232 let o = "releaseTokens"
3333
3434 let p = "WAVES"
3535
3636 let q = 8
3737
3838 let r = 6
3939
4040 let s = 1000000
4141
4242 let t = 200000
4343
4444 let u = 9223372036854775807
4545
4646 func v (w,x) = {
4747 let y = addressFromString(w)
4848 if ($isInstanceOf(y, "Address"))
4949 then {
5050 let z = y
5151 true
5252 }
5353 else throw(x)
5454 }
5555
5656
5757 func A (B,x) = {
5858 let y = assetInfo(fromBase58String(B))
5959 if ($isInstanceOf(y, "Asset"))
6060 then {
6161 let z = y
6262 true
6363 }
6464 else throw(x)
6565 }
6666
6767
6868 func C (D,E,F,x) = if (if ((E > D))
6969 then true
7070 else (D > F))
7171 then throw(x)
7272 else true
7373
7474
7575 func G (D,H,x) = if ((D != H))
7676 then throw(x)
7777 else true
7878
7979
8080 func I (J,H,x) = if ((size(J) != H))
8181 then throw(x)
8282 else true
8383
8484
85-func K (L,M,N) = if ((M >= N))
86- then (L / pow(10, 0, (M - N), 0, 0, DOWN))
87- else (L * pow(10, 0, (N - M), 0, 0, DOWN))
85+func K (L,x) = if ((L != ""))
86+ then v(L, x)
87+ else true
8888
8989
90-func O () = {
90+func M (N,O,P) = if ((O >= P))
91+ then (N / pow(10, 0, (O - P), 0, 0, DOWN))
92+ else (N * pow(10, 0, (P - O), 0, 0, DOWN))
93+
94+
95+func Q () = {
9196 let y = getBoolean(b)
9297 if ($isInstanceOf(y, "Boolean"))
9398 then {
9499 let z = y
95100 z
96101 }
97102 else false
98103 }
99104
100105
101-func P (Q) = [BooleanEntry(b, Q)]
106+func R (S) = [BooleanEntry(b, S)]
102107
103108
104-func R () = {
109+func T () = {
105110 let y = getBoolean(e)
106111 if ($isInstanceOf(y, "Boolean"))
107112 then {
108113 let z = y
109114 z
110115 }
111116 else false
112117 }
113118
114119
115-func S (T) = [BooleanEntry(e, T)]
120+func U (V) = [BooleanEntry(e, V)]
116121
117122
118-func U () = {
123+func W () = {
119124 let y = getString(f)
120125 if ($isInstanceOf(y, "String"))
121126 then {
122127 let z = y
123128 addressFromStringValue(z)
124129 }
125130 else Address(base58'')
126131 }
127132
128133
129-func V (W) = [StringEntry(f, toString(W))]
134+func X (Y) = [StringEntry(f, toString(Y))]
130135
131136
132-func X () = {
137+func Z () = {
133138 let y = getString(c)
134139 if ($isInstanceOf(y, "String"))
135140 then {
136141 let z = y
137142 addressFromStringValue(z)
138143 }
139144 else Address(base58'')
140145 }
141146
142147
143-func Y (Z) = [StringEntry(c, toString(Z))]
148+func aa (ab) = [StringEntry(c, toString(ab))]
144149
145150
146-func aa () = {
151+func ac () = {
147152 let y = getString(g)
148153 if ($isInstanceOf(y, "String"))
149154 then {
150155 let z = y
151156 addressFromStringValue(z)
152157 }
153158 else Address(base58'')
154159 }
155160
156161
157-func ab (ac) = [StringEntry(g, toString(ac))]
162+func ad (ae) = [StringEntry(g, toString(ae))]
158163
159164
160-func ad () = {
165+func af () = {
161166 let y = getString(i)
162167 if ($isInstanceOf(y, "String"))
163168 then {
164169 let z = y
165170 z
166171 }
167172 else ""
168173 }
169174
170175
171-func ae (af) = [StringEntry(i, af)]
176+func ag (ah) = [StringEntry(i, ah)]
172177
173178
174-func ag (ah) = {
175- let y = getBoolean(makeString([j, toString(ah)], a))
179+func ai (aj) = {
180+ let y = getBoolean(makeString([j, toString(aj)], a))
176181 if ($isInstanceOf(y, "Boolean"))
177182 then {
178183 let z = y
179184 z
180185 }
181186 else false
182187 }
183188
184189
185-func ai (ah,D) = [BooleanEntry(makeString([j, toString(ah)], a), D)]
190+func ak (aj,D) = [BooleanEntry(makeString([j, toString(aj)], a), D)]
186191
187192
188-func aj (ak,B) = {
189- let y = getString(makeString([k, toString(ak), toBase58String(B)], a))
193+func al (am,B) = {
194+ let y = getString(makeString([k, toString(am), toBase58String(B)], a))
190195 if ($isInstanceOf(y, "String"))
191196 then {
192197 let z = y
193- let al = split(z, a)
194- $Tuple8(addressFromStringValue(al[0]), al[1], parseIntValue(al[2]), parseIntValue(al[3]), parseIntValue(al[4]), parseIntValue(al[5]), parseIntValue(al[6]), if ((al[7] == "1"))
198+ let an = split(z, a)
199+ $Tuple8(addressFromStringValue(an[0]), an[1], parseIntValue(an[2]), parseIntValue(an[3]), parseIntValue(an[4]), parseIntValue(an[5]), parseIntValue(an[6]), if ((an[7] == "1"))
195200 then true
196201 else false)
197202 }
198203 else $Tuple8(Address(base58''), "", 0, 0, 0, 0, 0, false)
199204 }
200205
201206
202-func am (ak,B,an) = [StringEntry(makeString([k, toString(ak), toBase58String(B)], a), makeString([toString(an._1), an._2, toString(an._3), toString(an._4), toString(an._5), toString(an._6), toString(an._7), if (an._8)
207+func ao (am,B,ap) = [StringEntry(makeString([k, toString(am), toBase58String(B)], a), makeString([toString(ap._1), ap._2, toString(ap._3), toString(ap._4), toString(ap._5), toString(ap._6), toString(ap._7), if (ap._8)
203208 then "1"
204209 else "0"], a))]
205210
206211
207-func ao (B) = {
212+func aq (B) = {
208213 let y = getInteger(makeString([l, toBase58String(B)], a))
209214 if ($isInstanceOf(y, "Int"))
210215 then {
211216 let z = y
212217 z
213218 }
214219 else 0
215220 }
216221
217222
218-func ap (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
223+func ar (B,D) = [IntegerEntry(makeString([l, toBase58String(B)], a), D)]
219224
220225
221-func aq () = {
226+func as () = {
222227 let y = getString(h)
223228 if ($isInstanceOf(y, "String"))
224229 then {
225230 let z = y
226231 addressFromStringValue(z)
227232 }
228233 else Address(base58'')
229234 }
230235
231236
232-func ar (as) = [StringEntry(h, toString(as))]
237+func at (au) = [StringEntry(h, toString(au))]
233238
234239
235-func at () = {
240+func av () = {
236241 let y = getString(m)
237242 if ($isInstanceOf(y, "String"))
238243 then {
239244 let z = y
240245 addressFromStringValue(z)
241246 }
242247 else Address(base58'')
243248 }
244249
245250
246-func au (D) = [StringEntry(m, toString(D))]
251+func aw (D) = [StringEntry(m, toString(D))]
247252
248253
249-func av (ak,aw) = {
250- let y = getInteger(makeString([n, toString(ak), toString(aw)], a))
254+func ax (am,L) = {
255+ let y = getInteger(makeString([n, toString(am), toString(L)], a))
251256 if ($isInstanceOf(y, "Int"))
252257 then {
253258 let z = y
254259 z
255260 }
256261 else 0
257262 }
258263
259264
260-func ax (ak,aw,D) = [IntegerEntry(makeString([n, toString(ak), toString(aw)], a), D)]
265+func ay (am,L,D) = [IntegerEntry(makeString([n, toString(am), toString(L)], a), D)]
261266
262267
263-func ay (af) = if ((af != this))
268+func az (ah) = if ((ah != this))
264269 then throw("_onlyThisContract: revert")
265270 else true
266271
267272
268-func az () = if ((X() == Address(base58'')))
273+func aA () = if ((Z() == Address(base58'')))
269274 then throw("_whenMultisigSet: revert")
270275 else true
271276
272277
273-func aA () = if (O())
278+func aB () = if (Q())
274279 then throw("_whenNotInitialized: revert")
275280 else true
276281
277282
278-func aB () = if (!(O()))
283+func aC () = if (!(Q()))
279284 then throw("_whenInitialized: revert")
280285 else true
281286
282287
283-func aC () = if (R())
288+func aD () = if (T())
284289 then throw("_whenNotPaused: revert")
285290 else true
286291
287292
288-func aD () = if (!(R()))
293+func aE () = if (!(T()))
289294 then throw("_whenPaused: revert")
290295 else true
291296
292297
293-func aE (af) = if ((af != U()))
298+func aF (ah) = if ((ah != W()))
294299 then throw("_onlyPauser: revert")
295300 else true
296301
297302
298-func aF (D) = {
303+func aG (D) = {
299304 let y = D
300305 if ($isInstanceOf(y, "Int"))
301306 then {
302307 let z = y
303308 z
304309 }
305310 else throw("_asInt: revert")
306311 }
307312
308313
309-func aG (D) = {
314+func aH (D) = {
310315 let y = D
311316 if ($isInstanceOf(y, "ByteVector"))
312317 then {
313318 let z = y
314319 z
315320 }
316321 else throw("_asBytes: revert")
317322 }
318323
319324
320-func aH (D,x) = if ((D != aa()))
325+func aI (D,x) = if ((D != ac()))
321326 then throw(x)
322327 else true
323328
324329
325-func aI (D,x) = if ((D != ad()))
330+func aJ (D,x) = if ((D != af()))
326331 then throw(x)
327332 else true
328333
329334
330-func aJ (ak,x) = if (!(ag(ak)))
335+func aK (am,x) = if (!(ai(am)))
331336 then throw(x)
332337 else true
333338
334339
335-@Callable(aK)
336-func init (ac,as,W,aL) = {
337- let aM = if (if (if (if (if (if (ay(aK.caller))
340+@Callable(aL)
341+func init (ae,au,Y,aM) = {
342+ let aN = if (if (if (if (if (if (az(aL.caller))
343+ then aB()
344+ else false)
338345 then aA()
339346 else false)
340- then az()
347+ then v(ae, "init: invalid executor")
341348 else false)
342- then v(ac, "init: invalid executor")
349+ then v(au, "init: invalid adapter")
343350 else false)
344- then v(as, "init: invalid adapter")
351+ then v(Y, "init: invalid pauser")
345352 else false)
346- then v(W, "init: invalid pauser")
347- else false)
348- then v(aL, "init: invalid feeRecipient")
353+ then v(aM, "init: invalid feeRecipient")
349354 else false
350- if ((aM == aM))
351- then $Tuple2(((((P(true) ++ ab(addressFromStringValue(ac))) ++ ar(addressFromStringValue(as))) ++ V(addressFromStringValue(W))) ++ au(addressFromStringValue(aL))), unit)
355+ if ((aN == aN))
356+ then $Tuple2(((((R(true) ++ ad(addressFromStringValue(ae))) ++ at(addressFromStringValue(au))) ++ X(addressFromStringValue(Y))) ++ aw(addressFromStringValue(aM))), unit)
352357 else throw("Strict value is not equal to itself.")
353358 }
354359
355360
356361
357-@Callable(aK)
358-func mintTokens (aN,aO,L,aP,aQ,aw,aR) = {
359- let aS = valueOrErrorMessage(parseInt(L), "mint: amount is not Int")
360- let aT = valueOrErrorMessage(parseInt(aQ), "mint: gaslessReward is not Int")
361- let aU = valueOrErrorMessage(parseInt(aR), "mint: referrerFee is not Int")
362- let aM = if (if (if (if (if (if (if (if (aB())
363- then aC()
362+@Callable(aL)
363+func mintTokens (aO,aP,N,aQ,aR,L,aS) = {
364+ let aT = valueOrErrorMessage(parseInt(N), "mint: amount is not Int")
365+ let aU = valueOrErrorMessage(parseInt(aR), "mint: gaslessReward is not Int")
366+ let aV = valueOrErrorMessage(parseInt(aS), "mint: referrerFee is not Int")
367+ let aN = if (if (if (if (if (if (if (if (aC())
368+ then aD()
364369 else false)
365- then v(aO, "mint: invalid asset contract")
370+ then v(aP, "mint: invalid asset contract")
366371 else false)
367- then aH(aK.caller, "mint: invalid executor")
372+ then aI(aL.caller, "mint: invalid executor")
368373 else false)
369- then aI(aN, "mint: invalid caller")
374+ then aJ(aO, "mint: invalid caller")
370375 else false)
371- then v(aP, "mint: invalid recipient address")
376+ then v(aQ, "mint: invalid recipient address")
372377 else false)
373- then C(aS, 0, u, "mint: invalid amount")
378+ then C(aT, 0, u, "mint: invalid amount")
374379 else false)
375- then C(aT, 0, u, "mint: invalid gaslessReward")
380+ then C(aU, 0, u, "mint: invalid gaslessReward")
376381 else false)
377- then C(aU, 0, u, "mint: invalid referrer fee")
382+ then C(aV, 0, u, "mint: invalid referrer fee")
378383 else false
379- if ((aM == aM))
384+ if ((aN == aN))
380385 then {
381- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
382- if ((aV == aV))
386+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
387+ if ((aW == aW))
383388 then {
384- let aW = aF(invoke(addressFromStringValue(aO), "getDecimals", nil, nil))
385- if ((aW == aW))
389+ let aX = aG(invoke(addressFromStringValue(aP), "getDecimals", nil, nil))
390+ if ((aX == aX))
386391 then {
387- let aX = K(aS, r, aW)
388- let aY = K(aT, r, aW)
389- let aZ = {
390- let y = addressFromString(aw)
392+ let aY = M(aT, r, aX)
393+ let aZ = M(aU, r, aX)
394+ let ba = {
395+ let y = addressFromString(L)
391396 if ($isInstanceOf(y, "Address"))
392397 then {
393- let ba = y
394- let bb = K(aU, r, aW)
395- $Tuple2(bb, [ScriptTransfer(ba, bb, aV)])
398+ let bb = y
399+ let bc = M(aV, r, aX)
400+ $Tuple2(bc, [ScriptTransfer(bb, bc, aW)])
396401 }
397402 else $Tuple2(0, nil)
398403 }
399- let bb = aZ._1
400- let bc = aZ._2
401- let bd = invoke(addressFromStringValue(aO), "mint", [(aX + bb), toString(this)], nil)
402- if ((bd == bd))
404+ let bc = ba._1
405+ let bd = ba._2
406+ let be = invoke(addressFromStringValue(aP), "mint", [(aY + bc), toString(this)], nil)
407+ if ((be == be))
403408 then {
404- let be = if (if ((aY > 0))
405- then (addressFromStringValue(aP) != aK.originCaller)
409+ let bf = if (if ((aZ > 0))
410+ then (addressFromStringValue(aQ) != aL.originCaller)
406411 else false)
407- then [ScriptTransfer(addressFromStringValue(aP), (aX - aY), aV), ScriptTransfer(aK.originCaller, aY, aV)]
408- else [ScriptTransfer(addressFromStringValue(aP), aX, aV)]
409- $Tuple2((be ++ bc), unit)
412+ then [ScriptTransfer(addressFromStringValue(aQ), (aY - aZ), aW), ScriptTransfer(aL.originCaller, aZ, aW)]
413+ else [ScriptTransfer(addressFromStringValue(aQ), aY, aW)]
414+ $Tuple2((bf ++ bd), unit)
410415 }
411416 else throw("Strict value is not equal to itself.")
412417 }
413418 else throw("Strict value is not equal to itself.")
414419 }
415420 else throw("Strict value is not equal to itself.")
416421 }
417422 else throw("Strict value is not equal to itself.")
418423 }
419424
420425
421426
422-@Callable(aK)
423-func burnTokens (ak,aP,aQ) = {
424- let aM = if (if (if (if (if (aB())
425- then aC()
427+@Callable(aL)
428+func burnTokens (am,aQ,L,aR) = {
429+ let aN = if (if (if (if (if (aC())
430+ then aD()
426431 else false)
427- then aJ(ak, "burn: invalid execution chain")
432+ then aK(am, "burnTokens: invalid execution chain")
428433 else false)
429- then I(aK.payments, 1, "burn: no payment")
434+ then I(aL.payments, 1, "burnTokens: no payment")
430435 else false)
431- then C(aQ, 0, u, "burn: invalid gaslessReward")
436+ then C(aR, 0, u, "burnTokens: invalid gaslessReward")
432437 else false)
433- then C(aK.payments[0].amount, 0, u, "burn: invalid payment amount")
438+ then C(aL.payments[0].amount, 0, u, "burnTokens: invalid payment amount")
434439 else false
435- if ((aM == aM))
440+ if ((aN == aN))
436441 then {
437- let aS = aK.payments[0].amount
438- let aV = {
439- let y = aK.payments[0].assetId
442+ let aT = aL.payments[0].amount
443+ let aW = {
444+ let y = aL.payments[0].assetId
440445 if ($isInstanceOf(y, "ByteVector"))
441446 then {
442447 let z = y
443448 z
444449 }
445- else throw("burn: invalid asset")
450+ else throw("burnTokens: invalid asset")
446451 }
447- let bf = aj(ak, aV)
448- let bg = bf._1
449- let bh = bf._2
450- let bi = bf._3
451- let bj = bf._4
452- let bk = bf._5
453- let bl = bf._6
454- let bm = bf._7
455- let bn = bf._8
456- let bo = if (if (v(toString(bg), "burn: no such binding"))
457- then C(aS, bi, u, "burn: less than min")
452+ let bg = al(am, aW)
453+ let bh = bg._1
454+ let bi = bg._2
455+ let bj = bg._3
456+ let bk = bg._4
457+ let bl = bg._5
458+ let bm = bg._6
459+ let bn = bg._7
460+ let bo = bg._8
461+ let bp = if (if (v(toString(bh), "burnTokens: no such binding"))
462+ then C(aT, bj, u, "burnTokens: less than min")
458463 else false)
459- then G(bn, true, "burn: token is disabled")
464+ then G(bo, true, "burnTokens: token is disabled")
460465 else false
461- if ((bo == bo))
466+ if ((bp == bp))
462467 then {
463- let aW = aF(invoke(bg, "getDecimals", nil, nil))
464- if ((aW == aW))
468+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
469+ if ((aX == aX))
465470 then {
466- let bp = if ((aS > bk))
467- then bm
468- else bl
469- let bq = (bj + fraction(aS, bp, s))
470- let br = C(aS, (bq + 1), u, "burn: fee more than amount")
471- if ((br == br))
471+ let bq = if ((aT > bl))
472+ then bn
473+ else bm
474+ let br = (bk + fraction(aT, bq, s))
475+ let bs = C(aT, (br + 1), u, "burnTokens: fee more than amount")
476+ if ((bs == bs))
472477 then {
473- let bs = (aS - bq)
474- let bt = C(bs, (aQ + 1), u, "burn: reward more than amount")
475- if ((bt == bt))
478+ let bt = (aT - br)
479+ let bu = C(bt, (aR + 1), u, "burnTokens: reward more than amount")
480+ if ((bu == bu))
476481 then {
477- let bu = (ao(aV) + bq)
478- let aX = K(bs, aW, r)
479- let aY = K(aQ, aW, r)
480- let bd = invoke(aq(), o, [ak, bh, aX, aP, aY], nil)
481- if ((bd == bd))
482- then $Tuple2((ap(aV, bu) ++ [Burn(aV, bs)]), unit)
482+ let bv = (aq(aW) + br)
483+ let aY = M(bt, aX, r)
484+ let aZ = M(aR, aX, r)
485+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
486+ if ((be == be))
487+ then $Tuple2((ar(aW, bv) ++ [Burn(aW, bt)]), unit)
483488 else throw("Strict value is not equal to itself.")
484489 }
485490 else throw("Strict value is not equal to itself.")
486491 }
487492 else throw("Strict value is not equal to itself.")
488493 }
489494 else throw("Strict value is not equal to itself.")
490495 }
491496 else throw("Strict value is not equal to itself.")
492497 }
493498 else throw("Strict value is not equal to itself.")
494499 }
495500
496501
497502
498-@Callable(aK)
499-func transferFee (ak,B) = {
500- let aM = if (if (aB())
501- then aC()
503+@Callable(aL)
504+func burnTokensV2 (am,aQ,L,aR) = {
505+ let aN = if (if (if (if (if (if (aC())
506+ then aD()
502507 else false)
503- then A(B, "transferFee: invalid asset")
508+ then aK(am, "burnTokensV2: invalid execution chain")
509+ else false)
510+ then I(aL.payments, 1, "burnTokensV2: no payment")
511+ else false)
512+ then C(aR, 0, u, "burnTokensV2: invalid gaslessReward")
513+ else false)
514+ then C(aL.payments[0].amount, 0, u, "burnTokensV2: invalid payment amount")
515+ else false)
516+ then K(L, "burnTokensV2: invalid referrer")
504517 else false
505- if ((aM == aM))
518+ if ((aN == aN))
506519 then {
507- let aV = fromBase58String(B)
508- let bf = aj(ak, aV)
509- let bg = bf._1
510- let bn = bf._8
511- let bo = if (v(toString(bg), "transferFee: no such binding"))
512- then G(bn, true, "transferFee: token is disabled")
520+ let aT = aL.payments[0].amount
521+ let aW = {
522+ let y = aL.payments[0].assetId
523+ if ($isInstanceOf(y, "ByteVector"))
524+ then {
525+ let z = y
526+ z
527+ }
528+ else throw("burnTokensV2: invalid asset")
529+ }
530+ let bg = al(am, aW)
531+ let bh = bg._1
532+ let bi = bg._2
533+ let bj = bg._3
534+ let bk = bg._4
535+ let bl = bg._5
536+ let bm = bg._6
537+ let bn = bg._7
538+ let bo = bg._8
539+ let bp = if (if (v(toString(bh), "burnTokensV2: no such binding"))
540+ then C(aT, bj, u, "burnTokensV2: less than min")
541+ else false)
542+ then G(bo, true, "burnTokensV2: token is disabled")
513543 else false
514- if ((bo == bo))
515- then $Tuple2((ap(aV, 0) ++ [ScriptTransfer(at(), ao(aV), aV)]), unit)
516- else throw("Strict value is not equal to itself.")
517- }
518- else throw("Strict value is not equal to itself.")
519- }
520-
521-
522-
523-@Callable(aK)
524-func updateCallerContract (aN) = {
525- let aM = if (ay(aK.caller))
526- then aB()
527- else false
528- if ((aM == aM))
529- then $Tuple2(ae(aN), unit)
530- else throw("Strict value is not equal to itself.")
531- }
532-
533-
534-
535-@Callable(aK)
536-func updateExecutionChain (ak,bv) = {
537- let aM = if (if (ay(aK.caller))
538- then aB()
539- else false)
540- then C(ak, 0, u, "updateExecutionChain: invalid executionChainId")
541- else false
542- if ((aM == aM))
543- then $Tuple2(ai(ak, bv), unit)
544- else throw("Strict value is not equal to itself.")
545- }
546-
547-
548-
549-@Callable(aK)
550-func updateFeeRecipient (aL) = {
551- let aM = if (if (ay(aK.caller))
552- then aB()
553- else false)
554- then v(aL, "updateFeeRecipient: invalid feeRecipient")
555- else false
556- if ((aM == aM))
557- then $Tuple2(au(addressFromStringValue(aL)), unit)
558- else throw("Strict value is not equal to itself.")
559- }
560-
561-
562-
563-@Callable(aK)
564-func updateReferrer (ak,aw,bw) = {
565- let aM = if (if (if (if (ay(aK.caller))
566- then aB()
567- else false)
568- then aJ(ak, "updateReferrer: invalid execution chain")
569- else false)
570- then v(aw, "updateReferrer: invalid referrer")
571- else false)
572- then C(bw, 0, t, "updateReferrer: invalid fee")
573- else false
574- if ((aM == aM))
575- then $Tuple2(ax(ak, addressFromStringValue(aw), bw), unit)
576- else throw("Strict value is not equal to itself.")
577- }
578-
579-
580-
581-@Callable(aK)
582-func updateBindingInfo (ak,aO,bx,by,bz,bA,bB,bC,bv) = {
583- let aM = if (if (if (if (if (if (if (if (ay(aK.caller))
584- then aB()
585- else false)
586- then v(aO, "updateBindingInfo: invalid asset contract")
587- else false)
588- then C(ak, 0, u, "updateBindingInfo: invalid executionChainId")
589- else false)
590- then C(by, 0, u, "updateBindingInfo: invalid minAmount")
591- else false)
592- then C(bz, 0, u, "updateBindingInfo: invalid minFee")
593- else false)
594- then C(bA, 0, u, "updateBindingInfo: invalid thresholdFee")
595- else false)
596- then C(bB, 0, u, "updateBindingInfo: invalid beforePercentFee")
597- else false)
598- then C(bC, 0, u, "updateBindingInfo: invalid afterPercentFee")
599- else false
600- if ((aM == aM))
601- then {
602- let aV = aG(invoke(addressFromStringValue(aO), "getAssetId", nil, nil))
603- if ((aV == aV))
544+ if ((bp == bp))
604545 then {
605- let bf = $Tuple8(addressFromStringValue(aO), bx, by, bz, bA, bB, bC, bv)
606- $Tuple2(am(ak, aV, bf), unit)
546+ let aX = aG(invoke(bh, "getDecimals", nil, nil))
547+ if ((aX == aX))
548+ then {
549+ let bq = if ((aT > bl))
550+ then bn
551+ else bm
552+ let br = (bk + fraction(aT, bq, s))
553+ let bs = C(aT, (br + 1), u, "burnTokensV2: fee more than amount")
554+ if ((bs == bs))
555+ then {
556+ let bw = if ((L != ""))
557+ then {
558+ let ba = addressFromStringValue(L)
559+ let bx = fraction(ax(am, ba), br, s)
560+ $Tuple2(bx, [ScriptTransfer(ba, bx, aW)])
561+ }
562+ else $Tuple2(0, nil)
563+ let aV = bw._1
564+ let bd = bw._2
565+ let bt = (aT - br)
566+ let bu = C(bt, (aR + 1), u, "burnTokensV2: reward more than amount")
567+ if ((bu == bu))
568+ then {
569+ let bv = ((aq(aW) + br) - aV)
570+ let aY = M(bt, aX, r)
571+ let aZ = M(aR, aX, r)
572+ let be = invoke(as(), o, [am, bi, aY, aQ, aZ], nil)
573+ if ((be == be))
574+ then $Tuple2(((ar(aW, bv) ++ bd) ++ [Burn(aW, bt)]), unit)
575+ else throw("Strict value is not equal to itself.")
576+ }
577+ else throw("Strict value is not equal to itself.")
578+ }
579+ else throw("Strict value is not equal to itself.")
580+ }
581+ else throw("Strict value is not equal to itself.")
607582 }
608583 else throw("Strict value is not equal to itself.")
609584 }
610585 else throw("Strict value is not equal to itself.")
611586 }
612587
613588
614589
615-@Callable(aK)
616-func pause () = {
617- let aM = if (if (aE(aK.caller))
618- then aB()
590+@Callable(aL)
591+func transferFee (am,B) = {
592+ let aN = if (if (aC())
593+ then aD()
619594 else false)
620- then aC()
595+ then A(B, "transferFee: invalid asset")
621596 else false
622- if ((aM == aM))
623- then $Tuple2(S(true), unit)
597+ if ((aN == aN))
598+ then {
599+ let aW = fromBase58String(B)
600+ let bg = al(am, aW)
601+ let bh = bg._1
602+ let bo = bg._8
603+ let bp = if (v(toString(bh), "transferFee: no such binding"))
604+ then G(bo, true, "transferFee: token is disabled")
605+ else false
606+ if ((bp == bp))
607+ then $Tuple2((ar(aW, 0) ++ [ScriptTransfer(av(), aq(aW), aW)]), unit)
608+ else throw("Strict value is not equal to itself.")
609+ }
624610 else throw("Strict value is not equal to itself.")
625611 }
626612
627613
628614
629-@Callable(aK)
630-func unpause () = {
631- let aM = if (if (aE(aK.caller))
632- then aB()
633- else false)
634- then aD()
615+@Callable(aL)
616+func updateCallerContract (aO) = {
617+ let aN = if (az(aL.caller))
618+ then aC()
635619 else false
636- if ((aM == aM))
637- then $Tuple2(S(false), unit)
620+ if ((aN == aN))
621+ then $Tuple2(ag(aO), unit)
638622 else throw("Strict value is not equal to itself.")
639623 }
640624
641625
642626
643-@Callable(aK)
644-func updatePauser (W) = {
645- let aM = if (if (ay(aK.caller))
646- then aB()
627+@Callable(aL)
628+func updateExecutionChain (am,by) = {
629+ let aN = if (if (az(aL.caller))
630+ then aC()
647631 else false)
648- then v(W, "init: invalid pauser")
632+ then C(am, 0, u, "updateExecutionChain: invalid executionChainId")
649633 else false
650- if ((aM == aM))
651- then $Tuple2(V(addressFromStringValue(W)), unit)
634+ if ((aN == aN))
635+ then $Tuple2(ak(am, by), unit)
652636 else throw("Strict value is not equal to itself.")
653637 }
654638
655639
656640
657-@Callable(aK)
658-func setMultisig (Z) = {
659- let aM = if (ay(aK.caller))
660- then v(Z, "setMultisig: invalid multisig")
641+@Callable(aL)
642+func updateFeeRecipient (aM) = {
643+ let aN = if (if (az(aL.caller))
644+ then aC()
645+ else false)
646+ then v(aM, "updateFeeRecipient: invalid feeRecipient")
661647 else false
662- if ((aM == aM))
663- then $Tuple2(Y(addressFromStringValue(Z)), unit)
648+ if ((aN == aN))
649+ then $Tuple2(aw(addressFromStringValue(aM)), unit)
664650 else throw("Strict value is not equal to itself.")
665651 }
666652
667653
668-@Verifier(bD)
669-func bE () = {
654+
655+@Callable(aL)
656+func updateReferrer (am,L,bz) = {
657+ let aN = if (if (if (if (az(aL.caller))
658+ then aC()
659+ else false)
660+ then aK(am, "updateReferrer: invalid execution chain")
661+ else false)
662+ then v(L, "updateReferrer: invalid referrer")
663+ else false)
664+ then C(bz, 0, t, "updateReferrer: invalid fee")
665+ else false
666+ if ((aN == aN))
667+ then $Tuple2(ay(am, addressFromStringValue(L), bz), unit)
668+ else throw("Strict value is not equal to itself.")
669+ }
670+
671+
672+
673+@Callable(aL)
674+func updateBindingInfo (am,aP,bA,bB,bC,bD,bE,bF,by) = {
675+ let aN = if (if (if (if (if (if (if (if (az(aL.caller))
676+ then aC()
677+ else false)
678+ then v(aP, "updateBindingInfo: invalid asset contract")
679+ else false)
680+ then C(am, 0, u, "updateBindingInfo: invalid executionChainId")
681+ else false)
682+ then C(bB, 0, u, "updateBindingInfo: invalid minAmount")
683+ else false)
684+ then C(bC, 0, u, "updateBindingInfo: invalid minFee")
685+ else false)
686+ then C(bD, 0, u, "updateBindingInfo: invalid thresholdFee")
687+ else false)
688+ then C(bE, 0, u, "updateBindingInfo: invalid beforePercentFee")
689+ else false)
690+ then C(bF, 0, u, "updateBindingInfo: invalid afterPercentFee")
691+ else false
692+ if ((aN == aN))
693+ then {
694+ let aW = aH(invoke(addressFromStringValue(aP), "getAssetId", nil, nil))
695+ if ((aW == aW))
696+ then {
697+ let bg = $Tuple8(addressFromStringValue(aP), bA, bB, bC, bD, bE, bF, by)
698+ $Tuple2(ao(am, aW, bg), unit)
699+ }
700+ else throw("Strict value is not equal to itself.")
701+ }
702+ else throw("Strict value is not equal to itself.")
703+ }
704+
705+
706+
707+@Callable(aL)
708+func pause () = {
709+ let aN = if (if (aF(aL.caller))
710+ then aC()
711+ else false)
712+ then aD()
713+ else false
714+ if ((aN == aN))
715+ then $Tuple2(U(true), unit)
716+ else throw("Strict value is not equal to itself.")
717+ }
718+
719+
720+
721+@Callable(aL)
722+func unpause () = {
723+ let aN = if (if (aF(aL.caller))
724+ then aC()
725+ else false)
726+ then aE()
727+ else false
728+ if ((aN == aN))
729+ then $Tuple2(U(false), unit)
730+ else throw("Strict value is not equal to itself.")
731+ }
732+
733+
734+
735+@Callable(aL)
736+func updatePauser (Y) = {
737+ let aN = if (if (az(aL.caller))
738+ then aC()
739+ else false)
740+ then v(Y, "updatePauser: invalid pauser")
741+ else false
742+ if ((aN == aN))
743+ then $Tuple2(X(addressFromStringValue(Y)), unit)
744+ else throw("Strict value is not equal to itself.")
745+ }
746+
747+
748+
749+@Callable(aL)
750+func setMultisig (ab) = {
751+ let aN = if (az(aL.caller))
752+ then v(ab, "setMultisig: invalid multisig")
753+ else false
754+ if ((aN == aN))
755+ then $Tuple2(aa(addressFromStringValue(ab)), unit)
756+ else throw("Strict value is not equal to itself.")
757+ }
758+
759+
760+@Verifier(bG)
761+func bH () = {
670762 let y = getString(c)
671763 if ($isInstanceOf(y, "String"))
672764 then {
673- let bF = y
674- valueOrElse(getBoolean(addressFromStringValue(bF), makeString([d, toString(this), toBase58String(bD.id)], a)), false)
765+ let bI = y
766+ valueOrElse(getBoolean(addressFromStringValue(bI), makeString([d, toString(this), toBase58String(bG.id)], a)), false)
675767 }
676- else sigVerify(bD.bodyBytes, bD.proofs[0], bD.senderPublicKey)
768+ else sigVerify(bG.bodyBytes, bG.proofs[0], bG.senderPublicKey)
677769 }
678770

github/deemru/w8io/026f985 
157.40 ms