tx · FXVRXjgsYLVWbKEdf1ySSQtM6YVCnBN9Xzc7jjzjPh9n

3N1vLkqi1Wz7MDLtpwRFBg5V33fHpnxaFuV:  -0.03300000 Waves

2024.12.10 20:28 [3408802] smart account 3N1vLkqi1Wz7MDLtpwRFBg5V33fHpnxaFuV > SELF 0.00000000 Waves

{ "type": 13, "id": "FXVRXjgsYLVWbKEdf1ySSQtM6YVCnBN9Xzc7jjzjPh9n", "fee": 3300000, "feeAssetId": null, "timestamp": 1733851417480, "version": 2, "chainId": 84, "sender": "3N1vLkqi1Wz7MDLtpwRFBg5V33fHpnxaFuV", "senderPublicKey": "8eBztzvcDYHno9SMCjk6rkQHJHDMXFt5YcknLLsAARn8", "proofs": [ "N8ya4i2PhCvuXKof7XgepGDPAGoZGkwJRcxbQQpZc6U84tetunqFMY2XcAnrdVukL2s4DH1cyqvgiiK6JnRmC8m" ], "script": "base64:BwJuCAISCAoGCAgICAgIEggKBggICAgICBIJCgcICAgICAgIEgUKAwgICBIDCgEIEgwKCggICAgICAgICAgSBgoECAgICBIFCgMBCAgSBQoDAQgIEgMKAQESAwoBCBIDCgEIEgASABIDCgEIEgMKAQhxAAlTRVBBUkFUT1ICAl9fAAxLRVlfTVVMVElTSUcCCE1VTFRJU0lHAApLRVlfU1RBVFVTAgZTVEFUVVMACEtFWV9JTklUAgRJTklUAApLRVlfUEFVU0VEAgZQQVVTRUQACktFWV9QQVVTRVICBlBBVVNFUgAMS0VZX0VYRUNVVE9SAghFWEVDVVRPUgATS0VZX0NBTExFUl9DT05UUkFDVAIPQ0FMTEVSX0NPTlRSQUNUAA9LRVlfV0FWRVNfVkFVTFQCC1dBVkVTX1ZBVUxUABNLRVlfQUNDT1VOVF9TVE9SQUdFAg9BQ0NPVU5UX1NUT1JBR0UACUtFWV9DSEFJTgIFQ0hBSU4AEktFWV9BU1NFVF9DVVJSRU5DWQIOQVNTRVRfQ1VSUkVOQ1kAEktFWV9BU1NFVF9SRVNFUlZFUwIOQVNTRVRfUkVTRVJWRVMAGUtFWV9BU1NFVF9SRVNFUlZFU19MT0NLRUQCFUFTU0VUX1JFU0VSVkVTX0xPQ0tFRAAYS0VZX1VTRVJfTE9DS0VEX0NVUlJFTkNZAhRVU0VSX0xPQ0tFRF9DVVJSRU5DWQAVS0VZX0NVUlJFTkNZX1JFU0VSVkVTAhFDVVJSRU5DWV9SRVNFUlZFUwAbS0VZX1JFUVVFU1RfV0lUSERSQVdBTF9TSVpFAhdSRVFVRVNUX1dJVEhEUkFXQUxfU0laRQAWS0VZX1JFUVVFU1RfV0lUSERSQVdBTAISUkVRVUVTVF9XSVRIRFJBV0FMACJLRVlfUkVRVUVTVF9XSVRIRFJBV0FMX0JMT0NLX0RFTEFZAh5SRVFVRVNUX1dJVEhEUkFXQUxfQkxPQ0tfREVMQVkADUtFWV9TRVFVRU5DRVICCVNFUVVFTkNFUgATS0VZX1dJVEhEUkFXQUxfSEFTSAIPV0lUSERSQVdBTF9IQVNIABFLRVlfVkFVTFRfQURBUFRFUgINVkFVTFRfQURBUFRFUgAWS0VZX1JFV0FSRF9ESVNUUklCVVRPUgISUkVXQVJEX0RJU1RSSUJVVE9SABlLRVlfUkVMQVlFUl9GRUVfUkVDSVBJRU5UAhVSRUxBWUVSX0ZFRV9SRUNJUElFTlQADEZVTkNfREVQT1NJVAIHZGVwb3NpdAAVRlVOQ19HRVRfVVNFUl9CQUxBTkNFAg5nZXRVc2VyQmFsYW5jZQAWRlVOQ19JTlRFUk5BTF9UUkFOU0ZFUgIQaW50ZXJuYWxUcmFuc2ZlcgANRlVOQ19XSVRIRFJBVwIId2l0aGRyYXcAG0ZVTkNfREVQT1NJVF9TVEFLSU5HX1JFV0FSRAIUZGVwb3NpdFN0YWtpbmdSZXdhcmQAFlJFUVVFU1RfU1RBVFVTX0NSRUFURUQAAAATUkVRVUVTVF9TVEFUVVNfRE9ORQABABdSRVFVRVNUX1NUQVRVU19SRUpFQ1RFRAACAAVXQVZFUwIFV0FWRVMAC1NQT1RfV0FMTEVUAgRTUE9UAAdNQVhfSU5UAP//////////fwALWkVST19CSUdJTlQJALYCAQAAAApPTkVfQklHSU5UCQC2AgEAAQAHT05FX0RBWQCAuJkpAA5BTEdfVFlQRV9XQVZFUwABAAxBTEdfVFlQRV9FVk0AAgAMV0FWRVNfUFJFRklYAQT///8BABRFVk1fU0lHTkFUVVJFX1BSRUZJWAEcGUV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOgozMgEQX3ZhbGlkYXRlQWRkcmVzcwIIYWRkcmVzc18EZXJyXwQHJG1hdGNoMAkApggBBQhhZGRyZXNzXwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgkAAgEFBGVycl8BDF92YWxpZGF0ZUludAQEdmFsXw5sb3dlckJvdW5kYXJ5Xw51cHBlckJvdW5kYXJ5XwRlcnJfAwMJAGYCBQ5sb3dlckJvdW5kYXJ5XwUEdmFsXwYJAGYCBQR2YWxfBQ51cHBlckJvdW5kYXJ5XwkAAgEFBGVycl8GAQ9fdmFsaWRhdGVCaWdJbnQDBHZhbF8ObG93ZXJCb3VuZGFyeV8EZXJyXwMJAL8CAgUObG93ZXJCb3VuZGFyeV8FBHZhbF8JAAIBBQRlcnJfBgERX3ZhbGlkYXRlQmlnSW50XzIEBHZhbF8ObG93ZXJCb3VuZGFyeV8OdXBwZXJCb3VuZGFyeV8EZXJyXwMDCQC/AgIFDmxvd2VyQm91bmRhcnlfBQR2YWxfBgkAvwICBQR2YWxfBQ51cHBlckJvdW5kYXJ5XwkAAgEFBGVycl8GAQ9fdmFsaWRhdGVTdHJpbmcCBHZhbF8EZXJyXwMDCQBnAgAACQCxAgEFBHZhbF8GCQEIY29udGFpbnMCBQR2YWxfBQlTRVBBUkFUT1IJAAIBBQRlcnJfBgEUX3ZhbGlkYXRlU3RyaW5nRXF1YWwDBXZhbDFfBXZhbDJfBGVycl8DCQECIT0CBQV2YWwxXwUFdmFsMl8JAAIBBQRlcnJfBgEJX2xvYWRJbml0AAQHJG1hdGNoMAkAoAgBBQhLRVlfSU5JVAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFhBQckbWF0Y2gwBQFhBwEJX3NhdmVJbml0AQdpc0luaXRfCQDMCAIJAQxCb29sZWFuRW50cnkCBQhLRVlfSU5JVAUHaXNJbml0XwUDbmlsAQpfbG9hZFBhdXNlAAQHJG1hdGNoMAkAoAgBBQpLRVlfUEFVU0VEAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQpfc2F2ZVBhdXNlAQlpc1BhdXNlZF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIFCktFWV9QQVVTRUQFCWlzUGF1c2VkXwUDbmlsAQtfbG9hZFBhdXNlcgAEByRtYXRjaDAJAKIIAQUKS0VZX1BBVVNFUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQtfc2F2ZVBhdXNlcgEHcGF1c2VyXwkAzAgCCQELU3RyaW5nRW50cnkCBQpLRVlfUEFVU0VSCQClCAEFB3BhdXNlcl8FA25pbAENX2xvYWRNdWx0aXNpZwAEByRtYXRjaDAJAKIIAQUMS0VZX01VTFRJU0lHAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABDV9zYXZlTXVsdGlzaWcBCW11bHRpc2lnXwkAzAgCCQELU3RyaW5nRW50cnkCBQxLRVlfTVVMVElTSUcJAKUIAQUJbXVsdGlzaWdfBQNuaWwBE19sb2FkQ2FsbGVyQ29udHJhY3QBCGNoYWluSWRfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBRNLRVlfQ0FMTEVSX0NPTlRSQUNUCQDMCAIJAKQDAQUIY2hhaW5JZF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARNfc2F2ZUNhbGxlckNvbnRyYWN0AghjaGFpbklkXw9jYWxsZXJDb250cmFjdF8JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFE0tFWV9DQUxMRVJfQ09OVFJBQ1QJAMwIAgkApAMBBQhjaGFpbklkXwUDbmlsBQlTRVBBUkFUT1IFD2NhbGxlckNvbnRyYWN0XwUDbmlsAQ1fbG9hZEV4ZWN1dG9yAAQHJG1hdGNoMAkAoggBBQxLRVlfRVhFQ1VUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVFeGVjdXRvcgEJZXhlY3V0b3JfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9FWEVDVVRPUgkApQgBBQlleGVjdXRvcl8FA25pbAETX2xvYWRBY2NvdW50U3RvcmFnZQAEByRtYXRjaDAJAKIIAQUTS0VZX0FDQ09VTlRfU1RPUkFHRQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAARNfc2F2ZUFjY291bnRTdG9yYWdlAQ9hY2NvdW50U3RvcmFnZV8JAMwIAgkBC1N0cmluZ0VudHJ5AgUTS0VZX0FDQ09VTlRfU1RPUkFHRQkApQgBBQ9hY2NvdW50U3RvcmFnZV8FA25pbAEPX2xvYWRXYXZlc1ZhdWx0AAQHJG1hdGNoMAkAoggBBQ9LRVlfV0FWRVNfVkFVTFQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAEPX3NhdmVXYXZlc1ZhdWx0AQt3YXZlc1ZhdWx0XwkAzAgCCQELU3RyaW5nRW50cnkCBQ9LRVlfV0FWRVNfVkFVTFQJAKUIAQULd2F2ZXNWYXVsdF8FA25pbAEKX2xvYWRDaGFpbgEIY2hhaW5JZF8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFCUtFWV9DSEFJTgkAzAgCCQCkAwEFCGNoYWluSWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEKX3NhdmVDaGFpbgIIY2hhaW5JZF8FbmFtZV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFCUtFWV9DSEFJTgkAzAgCCQCkAwEFCGNoYWluSWRfBQNuaWwFCVNFUEFSQVRPUgUFbmFtZV8FA25pbAESX2xvYWRBc3NldEN1cnJlbmN5AghjaGFpbklkXwZhc3NldF8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFEktFWV9BU1NFVF9DVVJSRU5DWQkAzAgCCQCkAwEFCGNoYWluSWRfCQDMCAIFBmFzc2V0XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABEl9zYXZlQXNzZXRDdXJyZW5jeQMIY2hhaW5JZF8GYXNzZXRfCWN1cnJlbmN5XwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgUSS0VZX0FTU0VUX0NVUlJFTkNZCQDMCAIJAKQDAQUIY2hhaW5JZF8JAMwIAgUGYXNzZXRfBQNuaWwFCVNFUEFSQVRPUgUJY3VycmVuY3lfBQNuaWwBEl9sb2FkQXNzZXRSZXNlcnZlcwIIY2hhaW5JZF8GYXNzZXRfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBRJLRVlfQVNTRVRfUkVTRVJWRVMJAMwIAgkApAMBBQhjaGFpbklkXwkAzAgCBQZhc3NldF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkApwMBBQFhBQtaRVJPX0JJR0lOVAESX3NhdmVBc3NldFJlc2VydmVzAwhjaGFpbklkXwZhc3NldF8JcmVzZXJ2ZXNfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBRJLRVlfQVNTRVRfUkVTRVJWRVMJAMwIAgkApAMBBQhjaGFpbklkXwkAzAgCBQZhc3NldF8FA25pbAUJU0VQQVJBVE9SCQCmAwEFCXJlc2VydmVzXwUDbmlsARhfbG9hZEFzc2V0UmVzZXJ2ZXNMb2NrZWQCCGNoYWluSWRfBmFzc2V0XwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgUZS0VZX0FTU0VUX1JFU0VSVkVTX0xPQ0tFRAkAzAgCCQCkAwEFCGNoYWluSWRfCQDMCAIFBmFzc2V0XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQCnAwEFAWEFC1pFUk9fQklHSU5UARhfc2F2ZUFzc2V0UmVzZXJ2ZXNMb2NrZWQDCGNoYWluSWRfBmFzc2V0XwlyZXNlcnZlc18JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFGUtFWV9BU1NFVF9SRVNFUlZFU19MT0NLRUQJAMwIAgkApAMBBQhjaGFpbklkXwkAzAgCBQZhc3NldF8FA25pbAUJU0VQQVJBVE9SCQCmAwEFCXJlc2VydmVzXwUDbmlsARdfbG9hZFVzZXJMb2NrZWRDdXJyZW5jeQIJY3VycmVuY3lfBXVzZXJfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBRhLRVlfVVNFUl9MT0NLRURfQ1VSUkVOQ1kJAMwIAgUJY3VycmVuY3lfCQDMCAIFBXVzZXJfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJAKcDAQUBYQULWkVST19CSUdJTlQBF19zYXZlVXNlckxvY2tlZEN1cnJlbmN5AwljdXJyZW5jeV8FdXNlcl8HYW1vdW50XwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgUYS0VZX1VTRVJfTE9DS0VEX0NVUlJFTkNZCQDMCAIFCWN1cnJlbmN5XwkAzAgCBQV1c2VyXwUDbmlsBQlTRVBBUkFUT1IJAKYDAQUHYW1vdW50XwUDbmlsARVfbG9hZEN1cnJlbmN5UmVzZXJ2ZXMBCWN1cnJlbmN5XwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgUVS0VZX0NVUlJFTkNZX1JFU0VSVkVTCQDMCAIFCWN1cnJlbmN5XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQCnAwEFAWEFC1pFUk9fQklHSU5UARVfc2F2ZUN1cnJlbmN5UmVzZXJ2ZXMCCWN1cnJlbmN5XwlyZXNlcnZlc18JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFFUtFWV9DVVJSRU5DWV9SRVNFUlZFUwkAzAgCBQljdXJyZW5jeV8FA25pbAUJU0VQQVJBVE9SCQCmAwEFCXJlc2VydmVzXwUDbmlsARpfbG9hZFJlcXVlc3RXaXRoZHJhd2FsU2l6ZQAEByRtYXRjaDAJAJ8IAQUbS0VZX1JFUVVFU1RfV0lUSERSQVdBTF9TSVpFAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAARpfc2F2ZVJlcXVlc3RXaXRoZHJhd2FsU2l6ZQEEdmFsXwkAzAgCCQEMSW50ZWdlckVudHJ5AgUbS0VZX1JFUVVFU1RfV0lUSERSQVdBTF9TSVpFBQR2YWxfBQNuaWwBFl9sb2FkUmVxdWVzdFdpdGhkcmF3YWwBBmluZGV4XwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgUWS0VZX1JFUVVFU1RfV0lUSERSQVdBTAkAzAgCCQCkAwEFBmluZGV4XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBAZzdHJ1Y3QJALUJAgUBYQUJU0VQQVJBVE9SCQCaCggJAJEDAgUGc3RydWN0AAAJAJEDAgUGc3RydWN0AAEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QAAgkAkQMCBQZzdHJ1Y3QAAwkApwMBCQCRAwIFBnN0cnVjdAAECQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAUJAJEDAgUGc3RydWN0AAYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QABwkAmgoIAgACAAAAAgAFC1pFUk9fQklHSU5UAAACAAUWUkVRVUVTVF9TVEFUVVNfQ1JFQVRFRAEWX3NhdmVSZXF1ZXN0V2l0aGRyYXdhbAIGaW5kZXhfCHJlcXVlc3RfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBRZLRVlfUkVRVUVTVF9XSVRIRFJBV0FMCQDMCAIJAKQDAQUGaW5kZXhfBQNuaWwFCVNFUEFSQVRPUgkAuQkCCQDMCAIIBQhyZXF1ZXN0XwJfMQkAzAgCCAUIcmVxdWVzdF8CXzIJAMwIAgkApAMBCAUIcmVxdWVzdF8CXzMJAMwIAggFCHJlcXVlc3RfAl80CQDMCAIJAKYDAQgFCHJlcXVlc3RfAl81CQDMCAIJAKQDAQgFCHJlcXVlc3RfAl82CQDMCAIIBQhyZXF1ZXN0XwJfNwkAzAgCCQCkAwEIBQhyZXF1ZXN0XwJfOAUDbmlsBQlTRVBBUkFUT1IFA25pbAEgX2xvYWRSZXF1ZXN0V2l0aGRyYXdhbEJsb2NrRGVsYXkABAckbWF0Y2gwCQCfCAEFIktFWV9SRVFVRVNUX1dJVEhEUkFXQUxfQkxPQ0tfREVMQVkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABIF9zYXZlUmVxdWVzdFdpdGhkcmF3YWxCbG9ja0RlbGF5AQZkZWxheV8JAMwIAgkBDEludGVnZXJFbnRyeQIFIktFWV9SRVFVRVNUX1dJVEhEUkFXQUxfQkxPQ0tfREVMQVkFBmRlbGF5XwUDbmlsAQ5fbG9hZFNlcXVlbmNlcgAEByRtYXRjaDAJAKIIAQUNS0VZX1NFUVVFTkNFUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQ5fc2F2ZVNlcXVlbmNlcgEKc2VxdWVuY2VyXwkAzAgCCQELU3RyaW5nRW50cnkCBQ1LRVlfU0VRVUVOQ0VSCQClCAEFCnNlcXVlbmNlcl8FA25pbAETX2xvYWRXaXRoZHJhd2FsSGFzaAEPd2l0aGRyYXdhbEhhc2hfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBRNLRVlfV0lUSERSQVdBTF9IQVNICQDMCAIJANgEAQUPd2l0aGRyYXdhbEhhc2hfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAETX3NhdmVXaXRoZHJhd2FsSGFzaAIPd2l0aGRyYXdhbEhhc2hfBXR4SWRfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBRNLRVlfV0lUSERSQVdBTF9IQVNICQDMCAIJANgEAQUPd2l0aGRyYXdhbEhhc2hfBQNuaWwFCVNFUEFSQVRPUgUFdHhJZF8FA25pbAERX2xvYWRWYXVsdEFkYXB0ZXIABAckbWF0Y2gwCQCiCAEFEUtFWV9WQVVMVF9BREFQVEVSAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABEV9zYXZlVmF1bHRBZGFwdGVyAQ12YXVsdEFkYXB0ZXJfCQDMCAIJAQtTdHJpbmdFbnRyeQIFEUtFWV9WQVVMVF9BREFQVEVSCQClCAEFDXZhdWx0QWRhcHRlcl8FA25pbAEWX2xvYWRSZXdhcmREaXN0cmlidXRvcgAEByRtYXRjaDAJAKIIAQUWS0VZX1JFV0FSRF9ESVNUUklCVVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEWX3NhdmVSZXdhcmREaXN0cmlidXRvcgEMZGlzdHJpYnV0b3JfCQDMCAIJAQtTdHJpbmdFbnRyeQIFFktFWV9SRVdBUkRfRElTVFJJQlVUT1IFDGRpc3RyaWJ1dG9yXwUDbmlsARhfbG9hZFJlbGF5ZXJGZWVSZWNpcGllbnQABAckbWF0Y2gwCQCiCAEFGUtFWV9SRUxBWUVSX0ZFRV9SRUNJUElFTlQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABGF9zYXZlUmVsYXllckZlZVJlY2lwaWVudAEUcmVsYXllckZlZVJlY2lwaWVudF8JAMwIAgkBC1N0cmluZ0VudHJ5AgUZS0VZX1JFTEFZRVJfRkVFX1JFQ0lQSUVOVAUUcmVsYXllckZlZVJlY2lwaWVudF8FA25pbAERX29ubHlUaGlzQ29udHJhY3QBB2NhbGxlcl8DCQECIT0CBQdjYWxsZXJfBQR0aGlzCQACAQIZX29ubHlUaGlzQ29udHJhY3Q6IHJldmVydAYBEF93aGVuTXVsdGlzaWdTZXQAAwkAAAIJAQ1fbG9hZE11bHRpc2lnAAkBB0FkZHJlc3MBAQAJAAIBAhhfd2hlbk11bHRpc2lnU2V0OiByZXZlcnQGARNfd2hlbk5vdEluaXRpYWxpemVkAAMJAQlfbG9hZEluaXQACQACAQIbX3doZW5Ob3RJbml0aWFsaXplZDogcmV2ZXJ0BgEQX3doZW5Jbml0aWFsaXplZAADCQEBIQEJAQlfbG9hZEluaXQACQACAQIYX3doZW5Jbml0aWFsaXplZDogcmV2ZXJ0BgEOX3doZW5Ob3RQYXVzZWQAAwkBCl9sb2FkUGF1c2UACQACAQIWX3doZW5Ob3RQYXVzZWQ6IHJldmVydAYBC193aGVuUGF1c2VkAAMJAQEhAQkBCl9sb2FkUGF1c2UACQACAQITX3doZW5QYXVzZWQ6IHJldmVydAYBC19vbmx5UGF1c2VyAQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwkBC19sb2FkUGF1c2VyAAkAAgECE19vbmx5UGF1c2VyOiByZXZlcnQGARFfdmFsaWRhdGVFeGVjdXRvcgIEdmFsXwRlcnJfAwkBAiE9AgUEdmFsXwkBDV9sb2FkRXhlY3V0b3IACQACAQUEZXJyXwYBF192YWxpZGF0ZUNhbGxlckNvbnRyYWN0AwhjaGFpbklkXw9jYWxsZXJDb250cmFjdF8EZXJyXwMJAQIhPQIJARNfbG9hZENhbGxlckNvbnRyYWN0AQUIY2hhaW5JZF8FD2NhbGxlckNvbnRyYWN0XwkAAgEFBGVycl8GAQxfY2hhaW5FeGlzdHMCCGNoYWluSWRfBGVycl8DCQBnAgAACQCxAgEJAQpfbG9hZENoYWluAQUIY2hhaW5JZF8JAAIBBQRlcnJfBgEOX2NoYWluTm90RXhpc3QCCGNoYWluSWRfBGVycl8DCQBmAgkAsQIBCQEKX2xvYWRDaGFpbgEFCGNoYWluSWRfAAAJAAIBBQRlcnJfBgEUX2Fzc2V0Q3VycmVuY3lFeGlzdHMDCGNoYWluSWRfBmFzc2V0XwRlcnJfAwkAZwIAAAkAsQIBCQESX2xvYWRBc3NldEN1cnJlbmN5AgUIY2hhaW5JZF8FBmFzc2V0XwkAAgEFBGVycl8GARZfYXNzZXRDdXJyZW5jeU5vdEV4aXN0AwhjaGFpbklkXwZhc3NldF8EZXJyXwMJAGYCCQCxAgEJARJfbG9hZEFzc2V0Q3VycmVuY3kCBQhjaGFpbklkXwUGYXNzZXRfAAAJAAIBBQRlcnJfBgETX3ZhbGlkYXRlV2F2ZXNWYXVsdAIGY2FsbGVyBGVycl8DCQECIT0CCQEPX2xvYWRXYXZlc1ZhdWx0AAUGY2FsbGVyCQACAQUEZXJyXwYBEV9yZXF1ZXN0SXNDcmVhdGVkAgdzdGF0dXNfBGVycl8DCQECIT0CBQdzdGF0dXNfBRZSRVFVRVNUX1NUQVRVU19DUkVBVEVECQACAQUEZXJyXwYBEl92YWxpZGF0ZVNlcXVlbmNlcgIGY2FsbGVyBGVycl8DCQECIT0CCQEOX2xvYWRTZXF1ZW5jZXIABQZjYWxsZXIJAAIBBQRlcnJfBgEcX2NoZWNrV2l0aGRyYXdhbEhhc2hOb3RFeGlzdAIPd2l0aGRyYXdhbEhhc2hfBGVycl8DCQBmAgkAsQIBCQETX2xvYWRXaXRoZHJhd2FsSGFzaAEFD3dpdGhkcmF3YWxIYXNoXwAACQACAQUEZXJyXwYBGF92YWxpZGF0ZVNpZ25hdHVyZUZvcm1hdAMKc2lnbmF0dXJlXwRhbGdfBGVycl8DCQAAAgUEYWxnXwUOQUxHX1RZUEVfV0FWRVMDCQECIT0CCQDIAQEFCnNpZ25hdHVyZV8AQAkAAgEFBGVycl8GAwkAAAIFBGFsZ18FDEFMR19UWVBFX0VWTQMJAQIhPQIJAMgBAQUKc2lnbmF0dXJlXwBBCQACAQUEZXJyXwYJAAIBCQCsAgIFBGVycl8CCTogaW52IGFsZwEPX3ZhbGlkYXRlV2ViM0lkAwd3ZWIzSWRfBGFsZ18EZXJyXwMJAAACBQRhbGdfBQ5BTEdfVFlQRV9XQVZFUwMJAQIhPQIJAMgBAQUHd2ViM0lkXwAgCQACAQUEZXJyXwYDCQAAAgUEYWxnXwUMQUxHX1RZUEVfRVZNAwkBAiE9AgkAyAEBBQd3ZWIzSWRfABQJAAIBBQRlcnJfBgkAAgEJAKwCAgUEZXJyXwIJOiBpbnYgYWxnARxfdmFsaWRhdGVXaXRoZHJhd2FsU2lnbmF0dXJlBQ93aXRoZHJhd2FsSGFzaF8Kc2lnbmF0dXJlXwd3ZWIzSWRfBGFsZ18EZXJyXwQGcmVzdWx0AwkAAAIFBGFsZ18FDkFMR19UWVBFX1dBVkVTBANtc2cJAMsBAgUMV0FWRVNfUFJFRklYCQCbAwEJANgEAQUPd2l0aGRyYXdhbEhhc2hfCQD0AwMFA21zZwUKc2lnbmF0dXJlXwUHd2ViM0lkXwMJAAACBQRhbGdfBQxBTEdfVFlQRV9FVk0EDmhhc2hXaXRoUHJlZml4CQCMFQEJAMsBAgUURVZNX1NJR05BVFVSRV9QUkVGSVgFD3dpdGhkcmF3YWxIYXNoXwkAAAIJAMwBAgkAjBUBCQCEBwIFDmhhc2hXaXRoUHJlZml4BQpzaWduYXR1cmVfABQFB3dlYjNJZF8JAAIBCQCsAgIFBGVycl8CCTogaW52IGFsZwMJAQEhAQUGcmVzdWx0CQACAQUEZXJyXwYBHV92YWxpZGF0ZVdlYjNJZE1hdGNoZXNBZGRyZXNzBAd3ZWIzSWRfBWZyb21fBGFsZ18EZXJyXwQHYWRkcmVzcwMJAAACBQRhbGdfBQ5BTEdfVFlQRV9XQVZFUwkApQgBCQCnCAEFB3dlYjNJZF8DCQAAAgUEYWxnXwUMQUxHX1RZUEVfRVZNCQCsAgICAjB4CQDcBAEFB3dlYjNJZF8JAAIBCQCsAgIFBGVycl8CCTogaW52IGFsZwMJAQIhPQIFB2FkZHJlc3MFBWZyb21fCQACAQUEZXJyXwYQAWkBBGluaXQGCWV4ZWN1dG9yXwdwYXVzZXJfD2FjY291bnRTdG9yYWdlXwt3YXZlc1ZhdWx0XwpzZXF1ZW5jZXJfDXZhdWx0QWRhcHRlcl8EA2VycgMDAwMDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARNfd2hlbk5vdEluaXRpYWxpemVkAAcJARBfd2hlbk11bHRpc2lnU2V0AAcJARBfdmFsaWRhdGVBZGRyZXNzAgUJZXhlY3V0b3JfAhZpbml0OiBpbnZhbGlkIGV4ZWN1dG9yBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQdwYXVzZXJfAhRpbml0OiBpbnZhbGlkIHBhdXNlcgcJARBfdmFsaWRhdGVBZGRyZXNzAgUPYWNjb3VudFN0b3JhZ2VfAhxpbml0OiBpbnZhbGlkIGFjY291bnRTdG9yYWdlBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQt3YXZlc1ZhdWx0XwIYaW5pdDogaW52YWxpZCB3YXZlc1ZhdWx0BwkBEF92YWxpZGF0ZUFkZHJlc3MCBQpzZXF1ZW5jZXJfAhdpbml0OiBpbnZhbGlkIHNlcXVlbmNlcgcJARBfdmFsaWRhdGVBZGRyZXNzAgUNdmF1bHRBZGFwdGVyXwIaaW5pdDogaW52YWxpZCB2YXVsdEFkYXB0ZXIHAwkAAAIFA2VycgUDZXJyCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAQlfc2F2ZUluaXQBBgkBDV9zYXZlRXhlY3V0b3IBCQERQGV4dHJOYXRpdmUoMTA2MikBBQlleGVjdXRvcl8JAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8JARNfc2F2ZUFjY291bnRTdG9yYWdlAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUPYWNjb3VudFN0b3JhZ2VfCQEPX3NhdmVXYXZlc1ZhdWx0AQkBEUBleHRyTmF0aXZlKDEwNjIpAQULd2F2ZXNWYXVsdF8JAQ5fc2F2ZVNlcXVlbmNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCnNlcXVlbmNlcl8JARFfc2F2ZVZhdWx0QWRhcHRlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDXZhdWx0QWRhcHRlcl8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHZGVwb3NpdAYPY2FsbGVyQ29udHJhY3RfBWZyb21fA3RvXwhjaGFpbklkXwZhc3NldF8HYW1vdW50XwQHY2hhaW5JZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFCGNoYWluSWRfAhhkZXBvc2l0OiBjaGFpbklkIG5vdCBpbnQEBmFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEFB2Ftb3VudF8CF2RlcG9zaXQ6IGFtb3VudCBub3QgaW50BANlcnIDAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJAQxfY2hhaW5FeGlzdHMCBQdjaGFpbklkAhhkZXBvc2l0OiBpbnZhbGlkIGNoYWluSWQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUFZnJvbV8CFWRlcG9zaXQ6IGludmFsaWQgZnJvbQcJAQ9fdmFsaWRhdGVTdHJpbmcCBQN0b18CE2RlcG9zaXQ6IGludmFsaWQgdG8HCQEUX2Fzc2V0Q3VycmVuY3lFeGlzdHMDBQdjaGFpbklkBQZhc3NldF8CFmRlcG9zaXQ6IGludmFsaWQgYXNzZXQHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIXZGVwb3NpdDogaW52YWxpZCBhbW91bnQHAwkAAAIFA2VycgUDZXJyBARlcnIxAwkAAAIJAQpfbG9hZENoYWluAQUHY2hhaW5JZAUFV0FWRVMJARNfdmFsaWRhdGVXYXZlc1ZhdWx0AggFAWkGY2FsbGVyAhxkZXBvc2l0OiBpbnZhbGlkIHdhdmVzIHZhdWx0AwkBEV92YWxpZGF0ZUV4ZWN1dG9yAggFAWkGY2FsbGVyAhlkZXBvc2l0OiBpbnZhbGlkIGV4ZWN1dG9yCQEXX3ZhbGlkYXRlQ2FsbGVyQ29udHJhY3QDBQdjaGFpbklkBQ9jYWxsZXJDb250cmFjdF8CIGRlcG9zaXQ6IGludmFsaWQgY2FsbGVyIGNvbnRyYWN0BwMJAAACBQRlcnIxBQRlcnIxBBBuZXdBc3NldFJlc2VydmVzCQC3AgIJARJfbG9hZEFzc2V0UmVzZXJ2ZXMCBQdjaGFpbklkBQZhc3NldF8FBmFtb3VudAQIY3VycmVuY3kJARJfbG9hZEFzc2V0Q3VycmVuY3kCBQdjaGFpbklkBQZhc3NldF8EE25ld0N1cnJlbmN5UmVzZXJ2ZXMJALcCAgkBFV9sb2FkQ3VycmVuY3lSZXNlcnZlcwEFCGN1cnJlbmN5BQZhbW91bnQECmludm9jYXRpb24JAPwHBAkBE19sb2FkQWNjb3VudFN0b3JhZ2UABQxGVU5DX0RFUE9TSVQJAMwIAgUDdG9fCQDMCAIFCGN1cnJlbmN5CQDMCAIFB2Ftb3VudF8FA25pbAUDbmlsAwkAAAIFCmludm9jYXRpb24FCmludm9jYXRpb24JAJQKAgkAzggCCQESX3NhdmVBc3NldFJlc2VydmVzAwUHY2hhaW5JZAUGYXNzZXRfBRBuZXdBc3NldFJlc2VydmVzCQEVX3NhdmVDdXJyZW5jeVJlc2VydmVzAgUIY3VycmVuY3kFE25ld0N1cnJlbmN5UmVzZXJ2ZXMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERcmVxdWVzdFdpdGhkcmF3YWwHD2NhbGxlckNvbnRyYWN0XwVmcm9tXwN0b18MZnJvbUNoYWluSWRfCnRvQ2hhaW5JZF8GYXNzZXRfB2Ftb3VudF8EC2Zyb21DaGFpbklkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQUMZnJvbUNoYWluSWRfAiZyZXF1ZXN0V2l0aGRyYXdhbDogZnJvbUNoYWluSWQgbm90IGludAQJdG9DaGFpbklkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQUKdG9DaGFpbklkXwIkcmVxdWVzdFdpdGhkcmF3YWw6IHRvQ2hhaW5JZCBub3QgaW50BAZhbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBBQdhbW91bnRfAiFyZXF1ZXN0V2l0aGRyYXdhbDogYW1vdW50IG5vdCBpbnQEA2VycgMDAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEMX2NoYWluRXhpc3RzAgULZnJvbUNoYWluSWQCJnJlcXVlc3RXaXRoZHJhd2FsOiBpbnZhbGlkIGZyb21DaGFpbklkBwkBDF9jaGFpbkV4aXN0cwIFCXRvQ2hhaW5JZAIkcmVxdWVzdFdpdGhkcmF3YWw6IGludmFsaWQgdG9DaGFpbklkBwkBD192YWxpZGF0ZVN0cmluZwIFBWZyb21fAh9yZXF1ZXN0V2l0aGRyYXdhbDogaW52YWxpZCBmcm9tBwkBD192YWxpZGF0ZVN0cmluZwIFA3RvXwIdcmVxdWVzdFdpdGhkcmF3YWw6IGludmFsaWQgdG8HCQEUX2Fzc2V0Q3VycmVuY3lFeGlzdHMDBQl0b0NoYWluSWQFBmFzc2V0XwIgcmVxdWVzdFdpdGhkcmF3YWw6IGludmFsaWQgYXNzZXQHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIhcmVxdWVzdFdpdGhkcmF3YWw6IGludmFsaWQgYW1vdW50BwMJAAACBQNlcnIFA2VycgQEZXJyMQMJAAACCQEKX2xvYWRDaGFpbgEFC2Zyb21DaGFpbklkBQVXQVZFUwkBE192YWxpZGF0ZVdhdmVzVmF1bHQCCAUBaQZjYWxsZXICJnJlcXVlc3RXaXRoZHJhd2FsOiBpbnZhbGlkIHdhdmVzIHZhdWx0AwkBEV92YWxpZGF0ZUV4ZWN1dG9yAggFAWkGY2FsbGVyAiNyZXF1ZXN0V2l0aGRyYXdhbDogaW52YWxpZCBleGVjdXRvcgkBF192YWxpZGF0ZUNhbGxlckNvbnRyYWN0AwULZnJvbUNoYWluSWQFD2NhbGxlckNvbnRyYWN0XwIqcmVxdWVzdFdpdGhkcmF3YWw6IGludmFsaWQgY2FsbGVyIGNvbnRyYWN0BwMJAAACBQRlcnIxBQRlcnIxBAhjdXJyZW5jeQkBEl9sb2FkQXNzZXRDdXJyZW5jeQIFCXRvQ2hhaW5JZAUGYXNzZXRfBBBhdmFpbGFibGVCYWxhbmNlBAckbWF0Y2gwCQD8BwQJARNfbG9hZEFjY291bnRTdG9yYWdlAAUVRlVOQ19HRVRfVVNFUl9CQUxBTkNFCQDMCAIFBWZyb21fCQDMCAIFC1NQT1RfV0FMTEVUCQDMCAIFCGN1cnJlbmN5BQNuaWwFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJAKcDAQUBYQkAAgECPHJlcXVlc3RXaXRoZHJhd2FsOiBjYW4ndCB0YWtlIGF2YWlsYWJsZSBiYWxhbmNlIGZyb20gc3RvcmFnZQMJAAACBRBhdmFpbGFibGVCYWxhbmNlBRBhdmFpbGFibGVCYWxhbmNlBA5sb2NrZWRSZXNlcnZlcwkBGF9sb2FkQXNzZXRSZXNlcnZlc0xvY2tlZAIFCXRvQ2hhaW5JZAUGYXNzZXRfBBJ1c2VyTG9ja2VkQ3VycmVuY3kJARdfbG9hZFVzZXJMb2NrZWRDdXJyZW5jeQIFCGN1cnJlbmN5BQVmcm9tXwQNJHQwMTkzOTkxOTg1NAMDCQDAAgIJALgCAgUQYXZhaWxhYmxlQmFsYW5jZQUSdXNlckxvY2tlZEN1cnJlbmN5BQZhbW91bnQJAMACAgkAuAICCQESX2xvYWRBc3NldFJlc2VydmVzAgUJdG9DaGFpbklkBQZhc3NldF8FDmxvY2tlZFJlc2VydmVzBQZhbW91bnQHCQCUCgIFFlJFUVVFU1RfU1RBVFVTX0NSRUFURUQJAM4IAgkBGF9zYXZlQXNzZXRSZXNlcnZlc0xvY2tlZAMFCXRvQ2hhaW5JZAUGYXNzZXRfCQC3AgIFDmxvY2tlZFJlc2VydmVzBQZhbW91bnQJARdfc2F2ZVVzZXJMb2NrZWRDdXJyZW5jeQMFCGN1cnJlbmN5BQVmcm9tXwkAtwICBQZhbW91bnQFEnVzZXJMb2NrZWRDdXJyZW5jeQkAlAoCBRdSRVFVRVNUX1NUQVRVU19SRUpFQ1RFRAUDbmlsBA1yZXF1ZXN0U3RhdHVzCAUNJHQwMTkzOTkxOTg1NAJfMQQPcmVzZXJ2ZXNBY3Rpb25zCAUNJHQwMTkzOTkxOTg1NAJfMgQVcmVxdWVzdFdpdGhkcmF3YWxTaXplCQEaX2xvYWRSZXF1ZXN0V2l0aGRyYXdhbFNpemUABBFyZXF1ZXN0V2l0aGRyYXdhbAkAmgoIBQVmcm9tXwUDdG9fBQl0b0NoYWluSWQFBmFzc2V0XwUGYW1vdW50BQZoZWlnaHQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAUNcmVxdWVzdFN0YXR1cwkAlAoCCQDOCAIJAM4IAgkBFl9zYXZlUmVxdWVzdFdpdGhkcmF3YWwCBRVyZXF1ZXN0V2l0aGRyYXdhbFNpemUFEXJlcXVlc3RXaXRoZHJhd2FsCQEaX3NhdmVSZXF1ZXN0V2l0aGRyYXdhbFNpemUBCQBkAgUVcmVxdWVzdFdpdGhkcmF3YWxTaXplAAEFD3Jlc2VydmVzQWN0aW9ucwUVcmVxdWVzdFdpdGhkcmF3YWxTaXplCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWV4ZWN1dGVXaXRoZHJhd2FsAw9jYWxsZXJDb250cmFjdF8IY2hhaW5JZF8UcmVxdWVzdFdpdGhkcmF3YWxJZF8EB2NoYWluSWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBBQhjaGFpbklkXwIiZXhlY3V0ZVdpdGhkcmF3YWw6IGNoYWluSWQgbm90IGludAQTcmVxdWVzdFdpdGhkcmF3YWxJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFFHJlcXVlc3RXaXRoZHJhd2FsSWRfAi5leGVjdXRlV2l0aGRyYXdhbDogcmVxdWVzdFdpdGhkcmF3YWxJZCBub3QgaW50BBVyZXF1ZXN0V2l0aGRyYXdhbFNpemUJARpfbG9hZFJlcXVlc3RXaXRoZHJhd2FsU2l6ZQAEA2VycgMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQxfY2hhaW5FeGlzdHMCBQdjaGFpbklkAiJleGVjdXRlV2l0aGRyYXdhbDogaW52YWxpZCBjaGFpbklkBwkBDF92YWxpZGF0ZUludAQFE3JlcXVlc3RXaXRoZHJhd2FsSWQAAAkAZQIFFXJlcXVlc3RXaXRoZHJhd2FsU2l6ZQABAi5leGVjdXRlV2l0aGRyYXdhbDogaW52YWxpZCByZXF1ZXN0V2l0aGRyYXdhbElkBwMJAAACBQNlcnIFA2VycgQEZXJyMQMJAAACCQEKX2xvYWRDaGFpbgEFB2NoYWluSWQFBVdBVkVTCQETX3ZhbGlkYXRlV2F2ZXNWYXVsdAIIBQFpBmNhbGxlcgImZXhlY3V0ZVdpdGhkcmF3YWw6IGludmFsaWQgd2F2ZXMgdmF1bHQDCQERX3ZhbGlkYXRlRXhlY3V0b3ICCAUBaQZjYWxsZXICI2V4ZWN1dGVXaXRoZHJhd2FsOiBpbnZhbGlkIGV4ZWN1dG9yCQEXX3ZhbGlkYXRlQ2FsbGVyQ29udHJhY3QDBQdjaGFpbklkBQ9jYWxsZXJDb250cmFjdF8CKmV4ZWN1dGVXaXRoZHJhd2FsOiBpbnZhbGlkIGNhbGxlciBjb250cmFjdAcDCQAAAgUEZXJyMQUEZXJyMQQHcmVxdWVzdAkBFl9sb2FkUmVxdWVzdFdpdGhkcmF3YWwBBRNyZXF1ZXN0V2l0aGRyYXdhbElkBAtyZXF1ZXN0RnJvbQgFB3JlcXVlc3QCXzEECXJlcXVlc3RUbwgFB3JlcXVlc3QCXzIEEHJlcXVlc3RUb0NoYWluSWQIBQdyZXF1ZXN0Al8zBAxyZXF1ZXN0QXNzZXQIBQdyZXF1ZXN0Al80BA1yZXF1ZXN0QW1vdW50CAUHcmVxdWVzdAJfNQQNcmVxdWVzdEhlaWdodAgFB3JlcXVlc3QCXzYEDXJlcXVlc3RTdGF0dXMIBQdyZXF1ZXN0Al84BBBuZXdBc3NldFJlc2VydmVzCQC4AgIJARJfbG9hZEFzc2V0UmVzZXJ2ZXMCBRByZXF1ZXN0VG9DaGFpbklkBQxyZXF1ZXN0QXNzZXQFDXJlcXVlc3RBbW91bnQEFm5ld0Fzc2V0UmVzZXJ2ZXNMb2NrZWQJALgCAgkBGF9sb2FkQXNzZXRSZXNlcnZlc0xvY2tlZAIFEHJlcXVlc3RUb0NoYWluSWQFDHJlcXVlc3RBc3NldAUNcmVxdWVzdEFtb3VudAQIY3VycmVuY3kJARJfbG9hZEFzc2V0Q3VycmVuY3kCBRByZXF1ZXN0VG9DaGFpbklkBQxyZXF1ZXN0QXNzZXQEE25ld0N1cnJlbmN5UmVzZXJ2ZXMJALgCAgkBFV9sb2FkQ3VycmVuY3lSZXNlcnZlcwEFCGN1cnJlbmN5BQ1yZXF1ZXN0QW1vdW50BBVuZXdVc2VyTG9ja2VkQ3VycmVuY3kJALgCAgkBF19sb2FkVXNlckxvY2tlZEN1cnJlbmN5AgUIY3VycmVuY3kFC3JlcXVlc3RGcm9tBQ1yZXF1ZXN0QW1vdW50BARlcnIyAwMDAwMJAQ9fdmFsaWRhdGVCaWdJbnQDBRBuZXdBc3NldFJlc2VydmVzBQtaRVJPX0JJR0lOVAIsZXhlY3V0ZVdpdGhkcmF3YWw6IG5lZ2F0aXZlIG5ld0Fzc2V0UmVzZXJ2ZXMJAQ9fdmFsaWRhdGVCaWdJbnQDBRZuZXdBc3NldFJlc2VydmVzTG9ja2VkBQtaRVJPX0JJR0lOVAIyZXhlY3V0ZVdpdGhkcmF3YWw6IG5lZ2F0aXZlIG5ld0Fzc2V0UmVzZXJ2ZXNMb2NrZWQHCQEPX3ZhbGlkYXRlQmlnSW50AwUTbmV3Q3VycmVuY3lSZXNlcnZlcwULWkVST19CSUdJTlQCL2V4ZWN1dGVXaXRoZHJhd2FsOiBuZWdhdGl2ZSBuZXdDdXJyZW5jeVJlc2VydmVzBwkBD192YWxpZGF0ZUJpZ0ludAMFFW5ld1VzZXJMb2NrZWRDdXJyZW5jeQULWkVST19CSUdJTlQCMWV4ZWN1dGVXaXRoZHJhd2FsOiBuZWdhdGl2ZSBuZXdVc2VyTG9ja2VkQ3VycmVuY3kHCQEMX3ZhbGlkYXRlSW50BAkAZQIFBmhlaWdodAUNcmVxdWVzdEhlaWdodAkBIF9sb2FkUmVxdWVzdFdpdGhkcmF3YWxCbG9ja0RlbGF5AAUHTUFYX0lOVAInZXhlY3V0ZVdpdGhkcmF3YWw6IHRvbyBlYXJseSB0byBleGVjdXRlBwkBEV9yZXF1ZXN0SXNDcmVhdGVkAgUNcmVxdWVzdFN0YXR1cwImZXhlY3V0ZVdpdGhkcmF3YWw6IHJlcXVlc3QgaXMgcmVzb2x2ZWQHAwkAAAIFBGVycjIFBGVycjIEEXN0b3JhZ2VJbnZvY2F0aW9uCQD8BwQJARNfbG9hZEFjY291bnRTdG9yYWdlAAUNRlVOQ19XSVRIRFJBVwkAzAgCBQtyZXF1ZXN0RnJvbQkAzAgCBQhjdXJyZW5jeQkAzAgCCQCmAwEFDXJlcXVlc3RBbW91bnQFA25pbAUDbmlsAwkAAAIFEXN0b3JhZ2VJbnZvY2F0aW9uBRFzdG9yYWdlSW52b2NhdGlvbgQSd2l0aGRyYXdJbnZvY2F0aW9uAwkAAAIJAQpfbG9hZENoYWluAQUQcmVxdWVzdFRvQ2hhaW5JZAUFV0FWRVMJAPwHBAkBD19sb2FkV2F2ZXNWYXVsdAAFDUZVTkNfV0lUSERSQVcJAMwIAgUJcmVxdWVzdFRvCQDMCAIFDHJlcXVlc3RBc3NldAkAzAgCCQCmAwEFDXJlcXVlc3RBbW91bnQFA25pbAUDbmlsCQD8BwQJARFfbG9hZFZhdWx0QWRhcHRlcgAFDUZVTkNfV0lUSERSQVcJAMwIAgUQcmVxdWVzdFRvQ2hhaW5JZAkAzAgCBQxyZXF1ZXN0QXNzZXQJAMwIAgkApgMBBQ1yZXF1ZXN0QW1vdW50CQDMCAIFCXJlcXVlc3RUbwUDbmlsBQNuaWwDCQAAAgUSd2l0aGRyYXdJbnZvY2F0aW9uBRJ3aXRoZHJhd0ludm9jYXRpb24EDnJlcXVlc3RVcGRhdGVkCQCaCggIBQdyZXF1ZXN0Al8xCAUHcmVxdWVzdAJfMggFB3JlcXVlc3QCXzMIBQdyZXF1ZXN0Al80CAUHcmVxdWVzdAJfNQgFB3JlcXVlc3QCXzYIBQdyZXF1ZXN0Al83BRNSRVFVRVNUX1NUQVRVU19ET05FCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgkBEl9zYXZlQXNzZXRSZXNlcnZlcwMFEHJlcXVlc3RUb0NoYWluSWQFDHJlcXVlc3RBc3NldAUQbmV3QXNzZXRSZXNlcnZlcwkBGF9zYXZlQXNzZXRSZXNlcnZlc0xvY2tlZAMFEHJlcXVlc3RUb0NoYWluSWQFDHJlcXVlc3RBc3NldAUWbmV3QXNzZXRSZXNlcnZlc0xvY2tlZAkBFV9zYXZlQ3VycmVuY3lSZXNlcnZlcwIFCGN1cnJlbmN5BRNuZXdDdXJyZW5jeVJlc2VydmVzCQEXX3NhdmVVc2VyTG9ja2VkQ3VycmVuY3kDBQhjdXJyZW5jeQULcmVxdWVzdEZyb20FFW5ld1VzZXJMb2NrZWRDdXJyZW5jeQkBFl9zYXZlUmVxdWVzdFdpdGhkcmF3YWwCBRNyZXF1ZXN0V2l0aGRyYXdhbElkBQ5yZXF1ZXN0VXBkYXRlZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARByZWplY3RXaXRoZHJhd2FsARRyZXF1ZXN0V2l0aGRyYXdhbElkXwQTcmVxdWVzdFdpdGhkcmF3YWxJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFFHJlcXVlc3RXaXRoZHJhd2FsSWRfAi1yZWplY3RXaXRoZHJhd2FsOiByZXF1ZXN0V2l0aGRyYXdhbElkIG5vdCBpbnQEFXJlcXVlc3RXaXRoZHJhd2FsU2l6ZQkBGl9sb2FkUmVxdWVzdFdpdGhkcmF3YWxTaXplAAQDZXJyAwMJARBfd2hlbkluaXRpYWxpemVkAAkBEl92YWxpZGF0ZVNlcXVlbmNlcgIIBQFpBmNhbGxlcgIjcmVqZWN0V2l0aGRyYXdhbDogaW52YWxpZCBzZXF1ZW5jZXIHCQEMX3ZhbGlkYXRlSW50BAUTcmVxdWVzdFdpdGhkcmF3YWxJZAAACQBlAgUVcmVxdWVzdFdpdGhkcmF3YWxTaXplAAECLXJlamVjdFdpdGhkcmF3YWw6IGludmFsaWQgcmVxdWVzdFdpdGhkcmF3YWxJZAcDCQAAAgUDZXJyBQNlcnIEB3JlcXVlc3QJARZfbG9hZFJlcXVlc3RXaXRoZHJhd2FsAQUTcmVxdWVzdFdpdGhkcmF3YWxJZAQLcmVxdWVzdEZyb20IBQdyZXF1ZXN0Al8xBAlyZXF1ZXN0VG8IBQdyZXF1ZXN0Al8yBBByZXF1ZXN0VG9DaGFpbklkCAUHcmVxdWVzdAJfMwQMcmVxdWVzdEFzc2V0CAUHcmVxdWVzdAJfNAQNcmVxdWVzdEFtb3VudAgFB3JlcXVlc3QCXzUEDXJlcXVlc3RIZWlnaHQIBQdyZXF1ZXN0Al82BA1yZXF1ZXN0U3RhdHVzCAUHcmVxdWVzdAJfOAQIY3VycmVuY3kJARJfbG9hZEFzc2V0Q3VycmVuY3kCBRByZXF1ZXN0VG9DaGFpbklkBQxyZXF1ZXN0QXNzZXQEFm5ld0Fzc2V0UmVzZXJ2ZXNMb2NrZWQJALgCAgkBGF9sb2FkQXNzZXRSZXNlcnZlc0xvY2tlZAIFEHJlcXVlc3RUb0NoYWluSWQFDHJlcXVlc3RBc3NldAUNcmVxdWVzdEFtb3VudAQVbmV3VXNlckxvY2tlZEN1cnJlbmN5CQC4AgIJARdfbG9hZFVzZXJMb2NrZWRDdXJyZW5jeQIFCGN1cnJlbmN5BQtyZXF1ZXN0RnJvbQUNcmVxdWVzdEFtb3VudAQEZXJyMQMDCQEPX3ZhbGlkYXRlQmlnSW50AwUWbmV3QXNzZXRSZXNlcnZlc0xvY2tlZAULWkVST19CSUdJTlQCMXJlamVjdFdpdGhkcmF3YWw6IG5lZ2F0aXZlIG5ld0Fzc2V0UmVzZXJ2ZXNMb2NrZWQJAQ9fdmFsaWRhdGVCaWdJbnQDBRVuZXdVc2VyTG9ja2VkQ3VycmVuY3kFC1pFUk9fQklHSU5UAjByZWplY3RXaXRoZHJhd2FsOiBuZWdhdGl2ZSBuZXdVc2VyTG9ja2VkQ3VycmVuY3kHCQERX3JlcXVlc3RJc0NyZWF0ZWQCBQ1yZXF1ZXN0U3RhdHVzAiVyZWplY3RXaXRoZHJhd2FsOiByZXF1ZXN0IGlzIHJlc29sdmVkBwMJAAACBQRlcnIxBQRlcnIxBBBhdmFpbGFibGVCYWxhbmNlBAckbWF0Y2gwCQD8BwQJARNfbG9hZEFjY291bnRTdG9yYWdlAAUVRlVOQ19HRVRfVVNFUl9CQUxBTkNFCQDMCAIFC3JlcXVlc3RGcm9tCQDMCAIFC1NQT1RfV0FMTEVUCQDMCAIFCGN1cnJlbmN5BQNuaWwFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJAKcDAQUBYQkAAgECO3JlamVjdFdpdGhkcmF3YWw6IGNhbid0IHRha2UgYXZhaWxhYmxlIGJhbGFuY2UgZnJvbSBzdG9yYWdlAwkAAAIFEGF2YWlsYWJsZUJhbGFuY2UFEGF2YWlsYWJsZUJhbGFuY2UDCQC/AgIFDXJlcXVlc3RBbW91bnQFEGF2YWlsYWJsZUJhbGFuY2UEDnJlcXVlc3RVcGRhdGVkCQCaCggIBQdyZXF1ZXN0Al8xCAUHcmVxdWVzdAJfMggFB3JlcXVlc3QCXzMIBQdyZXF1ZXN0Al80CAUHcmVxdWVzdAJfNQgFB3JlcXVlc3QCXzYIBQdyZXF1ZXN0Al83BRdSRVFVRVNUX1NUQVRVU19SRUpFQ1RFRAkAlAoCCQDOCAIJAM4IAgkBGF9zYXZlQXNzZXRSZXNlcnZlc0xvY2tlZAMFEHJlcXVlc3RUb0NoYWluSWQFDHJlcXVlc3RBc3NldAUWbmV3QXNzZXRSZXNlcnZlc0xvY2tlZAkBF19zYXZlVXNlckxvY2tlZEN1cnJlbmN5AwUIY3VycmVuY3kFC3JlcXVlc3RGcm9tBRVuZXdVc2VyTG9ja2VkQ3VycmVuY3kJARZfc2F2ZVJlcXVlc3RXaXRoZHJhd2FsAgUTcmVxdWVzdFdpdGhkcmF3YWxJZAUOcmVxdWVzdFVwZGF0ZWQGCQCUCgIFA25pbAcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEId2l0aGRyYXcKBWZyb21fA3RvXwp0b0NoYWluSWRfBmFzc2V0XwdhbW91bnRfC3JlbGF5ZXJGZWVfCnRpbWVzdGFtcF8Hd2ViM0lkXwRhbGdfCnNpZ25hdHVyZV8ECXRvQ2hhaW5JZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFCnRvQ2hhaW5JZF8CG3dpdGhkcmF3OiB0b0NoYWluSWQgbm90IGludAQGYW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQUHYW1vdW50XwIYd2l0aGRyYXc6IGFtb3VudCBub3QgaW50BApyZWxheWVyRmVlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQULcmVsYXllckZlZV8CHHdpdGhkcmF3OiByZWxheWVyRmVlIG5vdCBpbnQECXRpbWVzdGFtcAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFCnRpbWVzdGFtcF8CG3dpdGhkcmF3OiB0aW1lc3RhbXAgbm90IGludAQDYWxnCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQUEYWxnXwIVd2l0aGRyYXc6IGFsZyBub3QgaW50BAZ3ZWIzSWQJANkEAQUHd2ViM0lkXwQJc2lnbmF0dXJlCQDZBAEFCnNpZ25hdHVyZV8EA2VycgMDAwMDAwMDAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJARJfdmFsaWRhdGVTZXF1ZW5jZXICCAUBaQZjYWxsZXICG3dpdGhkcmF3OiBpbnZhbGlkIHNlcXVlbmNlcgcJAQ9fdmFsaWRhdGVTdHJpbmcCBQVmcm9tXwIWd2l0aGRyYXc6IGludmFsaWQgZnJvbQcJAQ9fdmFsaWRhdGVTdHJpbmcCBQN0b18CFHdpdGhkcmF3OiBpbnZhbGlkIHRvBwkBDF9jaGFpbkV4aXN0cwIFCXRvQ2hhaW5JZAIbd2l0aGRyYXc6IGludmFsaWQgdG9DaGFpbklkBwkBFF9hc3NldEN1cnJlbmN5RXhpc3RzAwUJdG9DaGFpbklkBQZhc3NldF8CF3dpdGhkcmF3OiBpbnZhbGlkIGFzc2V0BwkBD192YWxpZGF0ZUJpZ0ludAMFBmFtb3VudAULWkVST19CSUdJTlQCGHdpdGhkcmF3OiBpbnZhbGlkIGFtb3VudAcJARFfdmFsaWRhdGVCaWdJbnRfMgQFCnJlbGF5ZXJGZWUFC1pFUk9fQklHSU5UBQZhbW91bnQCHHdpdGhkcmF3OiBpbnZhbGlkIHJlbGF5ZXJGZWUHCQEMX3ZhbGlkYXRlSW50BAkAZAIFCXRpbWVzdGFtcAUHT05FX0RBWQgFCWxhc3RCbG9jawl0aW1lc3RhbXAFB01BWF9JTlQCG3dpdGhkcmF3OiBpbnZhbGlkIHRpbWVzdGFtcAcJAQ9fdmFsaWRhdGVXZWIzSWQDBQZ3ZWIzSWQFA2FsZwIUd2l0aGRyYXc6IGludiB3ZWIzSWQHCQEYX3ZhbGlkYXRlU2lnbmF0dXJlRm9ybWF0AwUJc2lnbmF0dXJlBQNhbGcCGHdpdGhkcmF3OiBpbnYgc2lnIGZvcm1hdAcJAR1fdmFsaWRhdGVXZWIzSWRNYXRjaGVzQWRkcmVzcwQFBndlYjNJZAUFZnJvbV8FA2FsZwIZd2l0aGRyYXc6IHdlYjNJZCBtaXNtYXRjaAcDCQAAAgUDZXJyBQNlcnIED3dpdGhkcmF3YWxCeXRlcwkAywECCQDLAQIJAMsBAgkAywECCQDLAQIJAMsBAgkAywECCQDLAQIJAMsBAgkAywECCQDLAQIJAJoDAQkAsQIBBQVmcm9tXwkAmwMBBQVmcm9tXwkAmgMBCQCxAgEFA3RvXwkAmwMBBQN0b18JAJoDAQUJdG9DaGFpbklkCQCaAwEJALECAQUGYXNzZXRfCQCbAwEFBmFzc2V0XwkAnQMBBQZhbW91bnQJAJ0DAQUKcmVsYXllckZlZQkAmgMBBQl0aW1lc3RhbXAFBndlYjNJZAkAmgMBBQNhbGcEDndpdGhkcmF3YWxIYXNoCQCMFQEFD3dpdGhkcmF3YWxCeXRlcwQIY3VycmVuY3kJARJfbG9hZEFzc2V0Q3VycmVuY3kCBQl0b0NoYWluSWQFBmFzc2V0XwQQYXZhaWxhYmxlQmFsYW5jZQQHJG1hdGNoMAkA/AcECQETX2xvYWRBY2NvdW50U3RvcmFnZQAFFUZVTkNfR0VUX1VTRVJfQkFMQU5DRQkAzAgCBQVmcm9tXwkAzAgCBQtTUE9UX1dBTExFVAkAzAgCBQhjdXJyZW5jeQUDbmlsBQNuaWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQCnAwEFAWEJAAIBAjN3aXRoZHJhdzogY2FuJ3QgdGFrZSBhdmFpbGFibGUgYmFsYW5jZSBmcm9tIHN0b3JhZ2UDCQAAAgUQYXZhaWxhYmxlQmFsYW5jZQUQYXZhaWxhYmxlQmFsYW5jZQQNYXNzZXRSZXNlcnZlcwkBEl9sb2FkQXNzZXRSZXNlcnZlcwIFCXRvQ2hhaW5JZAUGYXNzZXRfBA5sb2NrZWRSZXNlcnZlcwkBGF9sb2FkQXNzZXRSZXNlcnZlc0xvY2tlZAIFCXRvQ2hhaW5JZAUGYXNzZXRfBAxhbW91bnRUb1NlbmQJALgCAgUGYW1vdW50BQpyZWxheWVyRmVlBA9hbW91bnRUb1NlbmRTdHIJAKYDAQUMYW1vdW50VG9TZW5kBARlcnIxAwMDCQEcX3ZhbGlkYXRlV2l0aGRyYXdhbFNpZ25hdHVyZQUFDndpdGhkcmF3YWxIYXNoBQlzaWduYXR1cmUFBndlYjNJZAUDYWxnAhV3aXRoZHJhdzogaW52YWxpZCBzaWcJARxfY2hlY2tXaXRoZHJhd2FsSGFzaE5vdEV4aXN0AgUOd2l0aGRyYXdhbEhhc2gCGndpdGhkcmF3OiBhbHJlYWR5IGV4ZWN1dGVkBwkBD192YWxpZGF0ZUJpZ0ludAMFEGF2YWlsYWJsZUJhbGFuY2UFDGFtb3VudFRvU2VuZAIed2l0aGRyYXc6IGluc3VmZmljaWVudCBiYWxhbmNlBwkBD192YWxpZGF0ZUJpZ0ludAMJALgCAgUNYXNzZXRSZXNlcnZlcwUObG9ja2VkUmVzZXJ2ZXMFDGFtb3VudFRvU2VuZAIfd2l0aGRyYXc6IGluc3VmZmljaWVudCByZXNlcnZlcwcDCQAAAgUEZXJyMQUEZXJyMQQQbmV3QXNzZXRSZXNlcnZlcwkAuAICBQ1hc3NldFJlc2VydmVzBQxhbW91bnRUb1NlbmQEE25ld0N1cnJlbmN5UmVzZXJ2ZXMJALgCAgkBFV9sb2FkQ3VycmVuY3lSZXNlcnZlcwEFCGN1cnJlbmN5BQxhbW91bnRUb1NlbmQEBGVycjIDCQEPX3ZhbGlkYXRlQmlnSW50AwUQbmV3QXNzZXRSZXNlcnZlcwULWkVST19CSUdJTlQCI3dpdGhkcmF3OiBuZWdhdGl2ZSBuZXdBc3NldFJlc2VydmVzCQEPX3ZhbGlkYXRlQmlnSW50AwUTbmV3Q3VycmVuY3lSZXNlcnZlcwULWkVST19CSUdJTlQCJndpdGhkcmF3OiBuZWdhdGl2ZSBuZXdDdXJyZW5jeVJlc2VydmVzBwMJAAACBQRlcnIyBQRlcnIyBBJzdG9yYWdlSW52b2NhdGlvbjEJAPwHBAkBE19sb2FkQWNjb3VudFN0b3JhZ2UABQ1GVU5DX1dJVEhEUkFXCQDMCAIFBWZyb21fCQDMCAIFCGN1cnJlbmN5CQDMCAIFB2Ftb3VudF8FA25pbAUDbmlsAwkAAAIFEnN0b3JhZ2VJbnZvY2F0aW9uMQUSc3RvcmFnZUludm9jYXRpb24xBBJzdG9yYWdlSW52b2NhdGlvbjIJAPwHBAkBE19sb2FkQWNjb3VudFN0b3JhZ2UABQxGVU5DX0RFUE9TSVQJAMwIAgkBGF9sb2FkUmVsYXllckZlZVJlY2lwaWVudAAJAMwIAgUIY3VycmVuY3kJAMwIAgULcmVsYXllckZlZV8FA25pbAUDbmlsAwkAAAIFEnN0b3JhZ2VJbnZvY2F0aW9uMgUSc3RvcmFnZUludm9jYXRpb24yBBJ3aXRoZHJhd0ludm9jYXRpb24DCQAAAgkBCl9sb2FkQ2hhaW4BBQl0b0NoYWluSWQFBVdBVkVTCQD8BwQJAQ9fbG9hZFdhdmVzVmF1bHQABQ1GVU5DX1dJVEhEUkFXCQDMCAIFA3RvXwkAzAgCBQZhc3NldF8JAMwIAgUPYW1vdW50VG9TZW5kU3RyBQNuaWwFA25pbAkA/AcECQERX2xvYWRWYXVsdEFkYXB0ZXIABQ1GVU5DX1dJVEhEUkFXCQDMCAIFCXRvQ2hhaW5JZAkAzAgCBQZhc3NldF8JAMwIAgUPYW1vdW50VG9TZW5kU3RyCQDMCAIFA3RvXwkAzAgCBQtyZWxheWVyRmVlXwUDbmlsBQNuaWwDCQAAAgUSd2l0aGRyYXdJbnZvY2F0aW9uBRJ3aXRoZHJhd0ludm9jYXRpb24JAJQKAgkAzggCCQDOCAIJARJfc2F2ZUFzc2V0UmVzZXJ2ZXMDBQl0b0NoYWluSWQFBmFzc2V0XwUQbmV3QXNzZXRSZXNlcnZlcwkBFV9zYXZlQ3VycmVuY3lSZXNlcnZlcwIFCGN1cnJlbmN5BRNuZXdDdXJyZW5jeVJlc2VydmVzCQETX3NhdmVXaXRoZHJhd2FsSGFzaAIFDndpdGhkcmF3YWxIYXNoCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEUZGVwb3NpdFN0YWtpbmdSZXdhcmQED2NhbGxlckNvbnRyYWN0XwhjaGFpbklkXwZhc3NldF8HYW1vdW50XwQHY2hhaW5JZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFCGNoYWluSWRfAiVkZXBvc2l0U3Rha2luZ1Jld2FyZDogY2hhaW5JZCBub3QgaW50BAZhbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBBQdhbW91bnRfAiRkZXBvc2l0U3Rha2luZ1Jld2FyZDogYW1vdW50IG5vdCBpbnQEA2VycgMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJAQxfY2hhaW5FeGlzdHMCBQdjaGFpbklkAiVkZXBvc2l0U3Rha2luZ1Jld2FyZDogaW52YWxpZCBjaGFpbklkBwkBFF9hc3NldEN1cnJlbmN5RXhpc3RzAwUHY2hhaW5JZAUGYXNzZXRfAiNkZXBvc2l0U3Rha2luZ1Jld2FyZDogaW52YWxpZCBhc3NldAcJAQ9fdmFsaWRhdGVCaWdJbnQDBQZhbW91bnQFC1pFUk9fQklHSU5UAiRkZXBvc2l0U3Rha2luZ1Jld2FyZDogaW52YWxpZCBhbW91bnQHAwkAAAIFA2VycgUDZXJyBARlcnIxAwkAAAIJAQpfbG9hZENoYWluAQUHY2hhaW5JZAUFV0FWRVMJARNfdmFsaWRhdGVXYXZlc1ZhdWx0AggFAWkGY2FsbGVyAilkZXBvc2l0U3Rha2luZ1Jld2FyZDogaW52YWxpZCB3YXZlcyB2YXVsdAMJARFfdmFsaWRhdGVFeGVjdXRvcgIIBQFpBmNhbGxlcgImZGVwb3NpdFN0YWtpbmdSZXdhcmQ6IGludmFsaWQgZXhlY3V0b3IJARdfdmFsaWRhdGVDYWxsZXJDb250cmFjdAMFB2NoYWluSWQFD2NhbGxlckNvbnRyYWN0XwItZGVwb3NpdFN0YWtpbmdSZXdhcmQ6IGludmFsaWQgY2FsbGVyIGNvbnRyYWN0BwMJAAACBQRlcnIxBQRlcnIxBBBuZXdBc3NldFJlc2VydmVzCQC3AgIJARJfbG9hZEFzc2V0UmVzZXJ2ZXMCBQdjaGFpbklkBQZhc3NldF8FBmFtb3VudAQIY3VycmVuY3kJARJfbG9hZEFzc2V0Q3VycmVuY3kCBQdjaGFpbklkBQZhc3NldF8EE25ld0N1cnJlbmN5UmVzZXJ2ZXMJALcCAgkBFV9sb2FkQ3VycmVuY3lSZXNlcnZlcwEFCGN1cnJlbmN5BQZhbW91bnQECmludm9jYXRpb24JAPwHBAkBE19sb2FkQWNjb3VudFN0b3JhZ2UABRtGVU5DX0RFUE9TSVRfU1RBS0lOR19SRVdBUkQJAMwIAgkBFl9sb2FkUmV3YXJkRGlzdHJpYnV0b3IACQDMCAIFCGN1cnJlbmN5CQDMCAIFB2Ftb3VudF8FA25pbAUDbmlsAwkAAAIFCmludm9jYXRpb24FCmludm9jYXRpb24JAJQKAgkAzggCCQESX3NhdmVBc3NldFJlc2VydmVzAwUHY2hhaW5JZAUGYXNzZXRfBRBuZXdBc3NldFJlc2VydmVzCQEVX3NhdmVDdXJyZW5jeVJlc2VydmVzAgUIY3VycmVuY3kFE25ld0N1cnJlbmN5UmVzZXJ2ZXMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIYWRkQ2hhaW4DCGNoYWluSWRfBW5hbWVfD2NhbGxlckNvbnRyYWN0XwQDZXJyAwMDAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBDF92YWxpZGF0ZUludAQFCGNoYWluSWRfAAAFB01BWF9JTlQCGWFkZENoYWluOiBpbnZhbGlkIGNoYWluSWQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUFbmFtZV8CFmFkZENoYWluOiBpbnZhbGlkIG5hbWUHCQEPX3ZhbGlkYXRlU3RyaW5nAgUPY2FsbGVyQ29udHJhY3RfAiBhZGRDaGFpbjogaW52YWxpZCBjYWxsZXJDb250cmFjdAcJAQ5fY2hhaW5Ob3RFeGlzdAIFCGNoYWluSWRfAhhhZGRDaGFpbjogYWxyZWFkeSBleGlzdHMHAwkAAAIFA2VycgUDZXJyCQCUCgIJAM4IAgkBCl9zYXZlQ2hhaW4CBQhjaGFpbklkXwUFbmFtZV8JARNfc2F2ZUNhbGxlckNvbnRyYWN0AgUIY2hhaW5JZF8FD2NhbGxlckNvbnRyYWN0XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhhZGRBc3NldAMIY2hhaW5JZF8GYXNzZXRfCWN1cnJlbmN5XwQDZXJyAwMDAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBDF9jaGFpbkV4aXN0cwIFCGNoYWluSWRfAhlhZGRBc3NldDogaW52YWxpZCBjaGFpbklkBwkBD192YWxpZGF0ZVN0cmluZwIFBmFzc2V0XwIXYWRkQXNzZXQ6IGludmFsaWQgYXNzZXQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUJY3VycmVuY3lfAhphZGRBc3NldDogaW52YWxpZCBjdXJyZW5jeQcJARZfYXNzZXRDdXJyZW5jeU5vdEV4aXN0AwUIY2hhaW5JZF8FBmFzc2V0XwIYYWRkQXNzZXQ6IGFscmVhZHkgZXhpc3RzBwMJAAACBQNlcnIFA2VycgkAlAoCCQESX3NhdmVBc3NldEN1cnJlbmN5AwUIY2hhaW5JZF8FBmFzc2V0XwUJY3VycmVuY3lfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBHnNldFJlcXVlc3RXaXRoZHJhd2FsQmxvY2tEZWxheQEGZGVsYXlfBANlcnIDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEMX3ZhbGlkYXRlSW50BAUGZGVsYXlfAAAFB01BWF9JTlQCLXNldFJlcXVlc3RXaXRoZHJhd2FsQmxvY2tEZWxheTogaW52YWxpZCBkZWxheQcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBIF9zYXZlUmVxdWVzdFdpdGhkcmF3YWxCbG9ja0RlbGF5AQUGZGVsYXlfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBF3VwZGF0ZVJld2FyZERpc3RyaWJ1dG9yARJyZXdhcmREaXN0cmlidXRvcl8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQ9fdmFsaWRhdGVTdHJpbmcCBRJyZXdhcmREaXN0cmlidXRvcl8CMnVwZGF0ZVJld2FyZERpc3RyaWJ1dG9yOiBpbnZhbGlkIHJld2FyZERpc3RyaWJ1dG9yBwMJAAACBQNlcnIFA2VycgkAlAoCCQEWX3NhdmVSZXdhcmREaXN0cmlidXRvcgEFEnJld2FyZERpc3RyaWJ1dG9yXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARl1cGRhdGVSZWxheWVyRmVlUmVjaXBpZW50ARRyZWxheWVyRmVlUmVjaXBpZW50XwQDZXJyAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBD192YWxpZGF0ZVN0cmluZwIFFHJlbGF5ZXJGZWVSZWNpcGllbnRfAjZ1cGRhdGVSZWxheWVyRmVlUmVjaXBpZW50OiBpbnZhbGlkIHJlbGF5ZXJGZWVSZWNpcGllbnQHAwkAAAIFA2VycgUDZXJyCQCUCgIJARhfc2F2ZVJlbGF5ZXJGZWVSZWNpcGllbnQBBRRyZWxheWVyRmVlUmVjaXBpZW50XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVwYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQ5fd2hlbk5vdFBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQYFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdW5wYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQtfd2hlblBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQcFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMdXBkYXRlUGF1c2VyAQdwYXVzZXJfBANlcnIDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFB3BhdXNlcl8CHHVwZGF0ZVBhdXNlcjogaW52YWxpZCBwYXVzZXIHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELc2V0TXVsdGlzaWcBCW11bHRpc2lnXwQDZXJyAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCW11bHRpc2lnXwIdc2V0TXVsdGlzaWc6IGludmFsaWQgbXVsdGlzaWcHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQ1fc2F2ZU11bHRpc2lnAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUJbXVsdGlzaWdfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAhtdWx0aXNpZwUHJG1hdGNoMAkBC3ZhbHVlT3JFbHNlAgkAmwgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQhtdWx0aXNpZwkAuQkCCQDMCAIFCktFWV9TVEFUVVMJAMwIAgkApQgBBQR0aGlzCQDMCAIJANgEAQgFAnR4AmlkBQNuaWwFCVNFUEFSQVRPUgcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXmSCu1J", "height": 3408802, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EcLnWubJd8b39aSV8SPrYpW7ionZh51brxuV7QptJUAJ Next: none Diff:
OldNewDifferences
546546 func bV (bk,bR,bU,bS,S) = {
547547 let bW = if ((bS == M))
548548 then {
549- let bX = keccak256_16Kb((O + toBytes(toBase58String(bk))))
549+ let bX = (O + toBytes(toBase58String(bk)))
550550 sigVerify(bX, bR, bU)
551551 }
552552 else if ((bS == N))
553553 then {
554- let bX = keccak256_16Kb((P + bk))
555- (takeRight(keccak256_16Kb(ecrecover(bX, bR)), 20) == bU)
554+ let bY = keccak256_16Kb((P + bk))
555+ (takeRight(keccak256_16Kb(ecrecover(bY, bR)), 20) == bU)
556556 }
557557 else throw((S + ": inv alg"))
558558 if (!(bW))
561561 }
562562
563563
564-func bY (bU,bZ,bS,S) = {
565- let ca = if ((bS == M))
564+func bZ (bU,ca,bS,S) = {
565+ let cb = if ((bS == M))
566566 then toString(addressFromPublicKey(bU))
567567 else if ((bS == N))
568568 then ("0x" + toBase16String(bU))
569569 else throw((S + ": inv alg"))
570- if ((ca != bZ))
570+ if ((cb != ca))
571571 then throw(S)
572572 else true
573573 }
574574
575575
576-@Callable(cb)
576+@Callable(cc)
577577 func init (ax,an,aA,aD,bi,bp) = {
578- let cc = if (if (if (if (if (if (if (if (bw(cb.caller))
578+ let cd = if (if (if (if (if (if (if (if (bw(cc.caller))
579579 then bz()
580580 else false)
581581 then by()
592592 else false)
593593 then Q(bp, "init: invalid vaultAdapter")
594594 else false
595- if ((cc == cc))
595+ if ((cd == cd))
596596 then $Tuple2(((((((ag(true) ++ aw(addressFromStringValue(ax))) ++ am(addressFromStringValue(an))) ++ az(addressFromStringValue(aA))) ++ aC(addressFromStringValue(aD))) ++ bh(addressFromStringValue(bi))) ++ bo(addressFromStringValue(bp))), unit)
597597 else throw("Strict value is not equal to itself.")
598598 }
599599
600600
601601
602-@Callable(cb)
603-func deposit (au,bZ,cd,as,aI,aT) = {
604- let ce = valueOrErrorMessage(parseInt(as), "deposit: chainId not int")
605- let cf = valueOrErrorMessage(parseBigInt(aT), "deposit: amount not int")
606- let cc = if (if (if (if (if (if (bA())
602+@Callable(cc)
603+func deposit (au,ca,ce,as,aI,aT) = {
604+ let cf = valueOrErrorMessage(parseInt(as), "deposit: chainId not int")
605+ let cg = valueOrErrorMessage(parseBigInt(aT), "deposit: amount not int")
606+ let cd = if (if (if (if (if (if (bA())
607607 then bB()
608608 else false)
609- then bG(ce, "deposit: invalid chainId")
609+ then bG(cf, "deposit: invalid chainId")
610610 else false)
611- then ab(bZ, "deposit: invalid from")
611+ then ab(ca, "deposit: invalid from")
612612 else false)
613- then ab(cd, "deposit: invalid to")
613+ then ab(ce, "deposit: invalid to")
614614 else false)
615- then bI(ce, aI, "deposit: invalid asset")
615+ then bI(cf, aI, "deposit: invalid asset")
616616 else false)
617- then Z(cf, J, "deposit: invalid amount")
617+ then Z(cg, J, "deposit: invalid amount")
618618 else false
619- if ((cc == cc))
619+ if ((cd == cd))
620620 then {
621- let cg = if ((aE(ce) == G))
622- then bK(cb.caller, "deposit: invalid waves vault")
623- else if (bE(cb.caller, "deposit: invalid executor"))
624- then bF(ce, au, "deposit: invalid caller contract")
621+ let ch = if ((aE(cf) == G))
622+ then bK(cc.caller, "deposit: invalid waves vault")
623+ else if (bE(cc.caller, "deposit: invalid executor"))
624+ then bF(cf, au, "deposit: invalid caller contract")
625625 else false
626- if ((cg == cg))
626+ if ((ch == ch))
627627 then {
628- let ch = (aL(ce, aI) + cf)
629- let ci = aH(ce, aI)
630- let cj = (aU(ci) + cf)
631- let ck = invoke(ay(), y, [cd, ci, aT], nil)
632- if ((ck == ck))
633- then $Tuple2((aM(ce, aI, ch) ++ aV(ci, cj)), unit)
628+ let ci = (aL(cf, aI) + cg)
629+ let cj = aH(cf, aI)
630+ let ck = (aU(cj) + cg)
631+ let cl = invoke(ay(), y, [ce, cj, aT], nil)
632+ if ((cl == cl))
633+ then $Tuple2((aM(cf, aI, ci) ++ aV(cj, ck)), unit)
634634 else throw("Strict value is not equal to itself.")
635635 }
636636 else throw("Strict value is not equal to itself.")
640640
641641
642642
643-@Callable(cb)
644-func requestWithdrawal (au,bZ,cd,cl,cm,aI,aT) = {
645- let cn = valueOrErrorMessage(parseInt(cl), "requestWithdrawal: fromChainId not int")
646- let co = valueOrErrorMessage(parseInt(cm), "requestWithdrawal: toChainId not int")
647- let cf = valueOrErrorMessage(parseBigInt(aT), "requestWithdrawal: amount not int")
648- let cc = if (if (if (if (if (if (bA())
649- then bG(cn, "requestWithdrawal: invalid fromChainId")
643+@Callable(cc)
644+func requestWithdrawal (au,ca,ce,cm,cn,aI,aT) = {
645+ let co = valueOrErrorMessage(parseInt(cm), "requestWithdrawal: fromChainId not int")
646+ let cp = valueOrErrorMessage(parseInt(cn), "requestWithdrawal: toChainId not int")
647+ let cg = valueOrErrorMessage(parseBigInt(aT), "requestWithdrawal: amount not int")
648+ let cd = if (if (if (if (if (if (bA())
649+ then bG(co, "requestWithdrawal: invalid fromChainId")
650650 else false)
651- then bG(co, "requestWithdrawal: invalid toChainId")
651+ then bG(cp, "requestWithdrawal: invalid toChainId")
652652 else false)
653- then ab(bZ, "requestWithdrawal: invalid from")
653+ then ab(ca, "requestWithdrawal: invalid from")
654654 else false)
655- then ab(cd, "requestWithdrawal: invalid to")
655+ then ab(ce, "requestWithdrawal: invalid to")
656656 else false)
657- then bI(co, aI, "requestWithdrawal: invalid asset")
657+ then bI(cp, aI, "requestWithdrawal: invalid asset")
658658 else false)
659- then Z(cf, J, "requestWithdrawal: invalid amount")
659+ then Z(cg, J, "requestWithdrawal: invalid amount")
660660 else false
661- if ((cc == cc))
661+ if ((cd == cd))
662662 then {
663- let cg = if ((aE(cn) == G))
664- then bK(cb.caller, "requestWithdrawal: invalid waves vault")
665- else if (bE(cb.caller, "requestWithdrawal: invalid executor"))
666- then bF(cn, au, "requestWithdrawal: invalid caller contract")
663+ let ch = if ((aE(co) == G))
664+ then bK(cc.caller, "requestWithdrawal: invalid waves vault")
665+ else if (bE(cc.caller, "requestWithdrawal: invalid executor"))
666+ then bF(co, au, "requestWithdrawal: invalid caller contract")
667667 else false
668- if ((cg == cg))
668+ if ((ch == ch))
669669 then {
670- let ci = aH(co, aI)
671- let cp = {
672- let T = invoke(ay(), z, [bZ, H, ci], nil)
670+ let cj = aH(cp, aI)
671+ let cq = {
672+ let T = invoke(ay(), z, [ca, H, cj], nil)
673673 if ($isInstanceOf(T, "String"))
674674 then {
675675 let U = T
677677 }
678678 else throw("requestWithdrawal: can't take available balance from storage")
679679 }
680- if ((cp == cp))
680+ if ((cq == cq))
681681 then {
682- let cq = aO(co, aI)
683- let cr = aQ(ci, bZ)
684- let cs = if (if (((cp - cr) >= cf))
685- then ((aL(co, aI) - cq) >= cf)
682+ let cr = aO(cp, aI)
683+ let cs = aQ(cj, ca)
684+ let ct = if (if (((cq - cs) >= cg))
685+ then ((aL(cp, aI) - cr) >= cg)
686686 else false)
687- then $Tuple2(D, (aP(co, aI, (cq + cf)) ++ aS(ci, bZ, (cf + cr))))
687+ then $Tuple2(D, (aP(cp, aI, (cr + cg)) ++ aS(cj, ca, (cg + cs))))
688688 else $Tuple2(F, nil)
689- let ct = cs._1
690- let cu = cs._2
691- let cv = aW()
692- let cw = $Tuple8(bZ, cd, co, aI, cf, height, toBase58String(cb.transactionId), ct)
693- $Tuple2(((bb(cv, cw) ++ aX((cv + 1))) ++ cu), cv)
689+ let cu = ct._1
690+ let cv = ct._2
691+ let cw = aW()
692+ let cx = $Tuple8(ca, ce, cp, aI, cg, height, toBase58String(cc.transactionId), cu)
693+ $Tuple2(((bb(cw, cx) ++ aX((cw + 1))) ++ cv), cw)
694694 }
695695 else throw("Strict value is not equal to itself.")
696696 }
701701
702702
703703
704-@Callable(cb)
705-func executeWithdrawal (au,as,cx) = {
706- let ce = valueOrErrorMessage(parseInt(as), "executeWithdrawal: chainId not int")
707- let cy = valueOrErrorMessage(parseInt(cx), "executeWithdrawal: requestWithdrawalId not int")
708- let cv = aW()
709- let cc = if (if (bA())
710- then bG(ce, "executeWithdrawal: invalid chainId")
704+@Callable(cc)
705+func executeWithdrawal (au,as,cy) = {
706+ let cf = valueOrErrorMessage(parseInt(as), "executeWithdrawal: chainId not int")
707+ let cz = valueOrErrorMessage(parseInt(cy), "executeWithdrawal: requestWithdrawalId not int")
708+ let cw = aW()
709+ let cd = if (if (bA())
710+ then bG(cf, "executeWithdrawal: invalid chainId")
711711 else false)
712- then V(cy, 0, (cv - 1), "executeWithdrawal: invalid requestWithdrawalId")
712+ then V(cz, 0, (cw - 1), "executeWithdrawal: invalid requestWithdrawalId")
713713 else false
714- if ((cc == cc))
714+ if ((cd == cd))
715715 then {
716- let cg = if ((aE(ce) == G))
717- then bK(cb.caller, "executeWithdrawal: invalid waves vault")
718- else if (bE(cb.caller, "executeWithdrawal: invalid executor"))
719- then bF(ce, au, "executeWithdrawal: invalid caller contract")
716+ let ch = if ((aE(cf) == G))
717+ then bK(cc.caller, "executeWithdrawal: invalid waves vault")
718+ else if (bE(cc.caller, "executeWithdrawal: invalid executor"))
719+ then bF(cf, au, "executeWithdrawal: invalid caller contract")
720720 else false
721- if ((cg == cg))
721+ if ((ch == ch))
722722 then {
723- let cz = aY(cy)
724- let cA = cz._1
725- let cB = cz._2
726- let cC = cz._3
727- let cD = cz._4
728- let cE = cz._5
729- let cF = cz._6
730- let ct = cz._8
731- let ch = (aL(cC, cD) - cE)
732- let cG = (aO(cC, cD) - cE)
733- let ci = aH(cC, cD)
734- let cj = (aU(ci) - cE)
735- let cH = (aQ(ci, cA) - cE)
736- let cI = if (if (if (if (if (Z(ch, J, "executeWithdrawal: negative newAssetReserves"))
737- then Z(cG, J, "executeWithdrawal: negative newAssetReservesLocked")
723+ let cA = aY(cz)
724+ let cB = cA._1
725+ let cC = cA._2
726+ let cD = cA._3
727+ let cE = cA._4
728+ let cF = cA._5
729+ let cG = cA._6
730+ let cu = cA._8
731+ let ci = (aL(cD, cE) - cF)
732+ let cH = (aO(cD, cE) - cF)
733+ let cj = aH(cD, cE)
734+ let ck = (aU(cj) - cF)
735+ let cI = (aQ(cj, cB) - cF)
736+ let cJ = if (if (if (if (if (Z(ci, J, "executeWithdrawal: negative newAssetReserves"))
737+ then Z(cH, J, "executeWithdrawal: negative newAssetReservesLocked")
738738 else false)
739- then Z(cj, J, "executeWithdrawal: negative newCurrencyReserves")
739+ then Z(ck, J, "executeWithdrawal: negative newCurrencyReserves")
740740 else false)
741- then Z(cH, J, "executeWithdrawal: negative newUserLockedCurrency")
741+ then Z(cI, J, "executeWithdrawal: negative newUserLockedCurrency")
742742 else false)
743- then V((height - cF), bd(), I, "executeWithdrawal: too early to execute")
743+ then V((height - cG), bd(), I, "executeWithdrawal: too early to execute")
744744 else false)
745- then bM(ct, "executeWithdrawal: request is resolved")
745+ then bM(cu, "executeWithdrawal: request is resolved")
746746 else false
747- if ((cI == cI))
747+ if ((cJ == cJ))
748748 then {
749- let cJ = invoke(ay(), B, [cA, ci, toString(cE)], nil)
750- if ((cJ == cJ))
749+ let cK = invoke(ay(), B, [cB, cj, toString(cF)], nil)
750+ if ((cK == cK))
751751 then {
752- let cK = if ((aE(cC) == G))
753- then invoke(aB(), B, [cB, cD, toString(cE)], nil)
754- else invoke(bn(), B, [cC, cD, toString(cE), cB], nil)
755- if ((cK == cK))
752+ let cL = if ((aE(cD) == G))
753+ then invoke(aB(), B, [cC, cE, toString(cF)], nil)
754+ else invoke(bn(), B, [cD, cE, toString(cF), cC], nil)
755+ if ((cL == cL))
756756 then {
757- let cL = $Tuple8(cz._1, cz._2, cz._3, cz._4, cz._5, cz._6, cz._7, E)
758- $Tuple2(((((aM(cC, cD, ch) ++ aP(cC, cD, cG)) ++ aV(ci, cj)) ++ aS(ci, cA, cH)) ++ bb(cy, cL)), unit)
757+ let cM = $Tuple8(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, E)
758+ $Tuple2(((((aM(cD, cE, ci) ++ aP(cD, cE, cH)) ++ aV(cj, ck)) ++ aS(cj, cB, cI)) ++ bb(cz, cM)), unit)
759759 }
760760 else throw("Strict value is not equal to itself.")
761761 }
770770
771771
772772
773-@Callable(cb)
774-func rejectWithdrawal (cx) = {
775- let cy = valueOrErrorMessage(parseInt(cx), "rejectWithdrawal: requestWithdrawalId not int")
776- let cv = aW()
777- let cc = if (if (bA())
778- then bO(cb.caller, "rejectWithdrawal: invalid sequencer")
773+@Callable(cc)
774+func rejectWithdrawal (cy) = {
775+ let cz = valueOrErrorMessage(parseInt(cy), "rejectWithdrawal: requestWithdrawalId not int")
776+ let cw = aW()
777+ let cd = if (if (bA())
778+ then bO(cc.caller, "rejectWithdrawal: invalid sequencer")
779779 else false)
780- then V(cy, 0, (cv - 1), "rejectWithdrawal: invalid requestWithdrawalId")
780+ then V(cz, 0, (cw - 1), "rejectWithdrawal: invalid requestWithdrawalId")
781781 else false
782- if ((cc == cc))
782+ if ((cd == cd))
783783 then {
784- let cz = aY(cy)
785- let cA = cz._1
786- let cB = cz._2
787- let cC = cz._3
788- let cD = cz._4
789- let cE = cz._5
790- let cF = cz._6
791- let ct = cz._8
792- let ci = aH(cC, cD)
793- let cG = (aO(cC, cD) - cE)
794- let cH = (aQ(ci, cA) - cE)
795- let cg = if (if (Z(cG, J, "rejectWithdrawal: negative newAssetReservesLocked"))
796- then Z(cH, J, "rejectWithdrawal: negative newUserLockedCurrency")
784+ let cA = aY(cz)
785+ let cB = cA._1
786+ let cC = cA._2
787+ let cD = cA._3
788+ let cE = cA._4
789+ let cF = cA._5
790+ let cG = cA._6
791+ let cu = cA._8
792+ let cj = aH(cD, cE)
793+ let cH = (aO(cD, cE) - cF)
794+ let cI = (aQ(cj, cB) - cF)
795+ let ch = if (if (Z(cH, J, "rejectWithdrawal: negative newAssetReservesLocked"))
796+ then Z(cI, J, "rejectWithdrawal: negative newUserLockedCurrency")
797797 else false)
798- then bM(ct, "rejectWithdrawal: request is resolved")
798+ then bM(cu, "rejectWithdrawal: request is resolved")
799799 else false
800- if ((cg == cg))
800+ if ((ch == ch))
801801 then {
802- let cp = {
803- let T = invoke(ay(), z, [cA, H, ci], nil)
802+ let cq = {
803+ let T = invoke(ay(), z, [cB, H, cj], nil)
804804 if ($isInstanceOf(T, "String"))
805805 then {
806806 let U = T
808808 }
809809 else throw("rejectWithdrawal: can't take available balance from storage")
810810 }
811- if ((cp == cp))
812- then if ((cE > cp))
811+ if ((cq == cq))
812+ then if ((cF > cq))
813813 then {
814- let cL = $Tuple8(cz._1, cz._2, cz._3, cz._4, cz._5, cz._6, cz._7, F)
815- $Tuple2(((aP(cC, cD, cG) ++ aS(ci, cA, cH)) ++ bb(cy, cL)), true)
814+ let cM = $Tuple8(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, F)
815+ $Tuple2(((aP(cD, cE, cH) ++ aS(cj, cB, cI)) ++ bb(cz, cM)), true)
816816 }
817817 else $Tuple2(nil, false)
818818 else throw("Strict value is not equal to itself.")
824824
825825
826826
827-@Callable(cb)
828-func withdraw (bZ,cd,cm,aI,aT,cM,cN,bU,bS,bR) = {
829- let co = valueOrErrorMessage(parseInt(cm), "withdraw: toChainId not int")
830- let cf = valueOrErrorMessage(parseBigInt(aT), "withdraw: amount not int")
831- let cO = valueOrErrorMessage(parseBigInt(cM), "withdraw: relayerFee not int")
832- let cP = valueOrErrorMessage(parseInt(cN), "withdraw: timestamp not int")
833- let cQ = valueOrErrorMessage(parseInt(bS), "withdraw: alg not int")
834- let cR = fromBase58String(bU)
835- let cS = fromBase58String(bR)
836- let cc = if (if (if (if (if (if (if (if (if (if (if (bA())
837- then bO(cb.caller, "withdraw: invalid sequencer")
827+@Callable(cc)
828+func withdraw (ca,ce,cn,aI,aT,cN,cO,bU,bS,bR) = {
829+ let cp = valueOrErrorMessage(parseInt(cn), "withdraw: toChainId not int")
830+ let cg = valueOrErrorMessage(parseBigInt(aT), "withdraw: amount not int")
831+ let cP = valueOrErrorMessage(parseBigInt(cN), "withdraw: relayerFee not int")
832+ let cQ = valueOrErrorMessage(parseInt(cO), "withdraw: timestamp not int")
833+ let cR = valueOrErrorMessage(parseInt(bS), "withdraw: alg not int")
834+ let cS = fromBase58String(bU)
835+ let cT = fromBase58String(bR)
836+ let cd = if (if (if (if (if (if (if (if (if (if (if (bA())
837+ then bO(cc.caller, "withdraw: invalid sequencer")
838838 else false)
839- then ab(bZ, "withdraw: invalid from")
839+ then ab(ca, "withdraw: invalid from")
840840 else false)
841- then ab(cd, "withdraw: invalid to")
841+ then ab(ce, "withdraw: invalid to")
842842 else false)
843- then bG(co, "withdraw: invalid toChainId")
843+ then bG(cp, "withdraw: invalid toChainId")
844844 else false)
845- then bI(co, aI, "withdraw: invalid asset")
845+ then bI(cp, aI, "withdraw: invalid asset")
846846 else false)
847- then Z(cf, J, "withdraw: invalid amount")
847+ then Z(cg, J, "withdraw: invalid amount")
848848 else false)
849- then aa(cO, J, cf, "withdraw: invalid relayerFee")
849+ then aa(cP, J, cg, "withdraw: invalid relayerFee")
850850 else false)
851- then V((cP + L), lastBlock.timestamp, I, "withdraw: invalid timestamp")
851+ then V((cQ + L), lastBlock.timestamp, I, "withdraw: invalid timestamp")
852852 else false)
853- then bT(cR, cQ, "withdraw: inv web3Id")
853+ then bT(cS, cR, "withdraw: inv web3Id")
854854 else false)
855- then bQ(cS, cQ, "withdraw: inv sig format")
855+ then bQ(cT, cR, "withdraw: inv sig format")
856856 else false)
857- then bY(cR, bZ, cQ, "withdraw: web3Id mismatch")
857+ then bZ(cS, ca, cR, "withdraw: web3Id mismatch")
858858 else false
859- if ((cc == cc))
859+ if ((cd == cd))
860860 then {
861- let cT = (((((((((((toBytes(size(bZ)) + toBytes(bZ)) + toBytes(size(cd))) + toBytes(cd)) + toBytes(co)) + toBytes(size(aI))) + toBytes(aI)) + toBytes(cf)) + toBytes(cO)) + toBytes(cP)) + cR) + toBytes(cQ))
862- let cU = keccak256_16Kb(cT)
863- let ci = aH(co, aI)
864- let cp = {
865- let T = invoke(ay(), z, [bZ, H, ci], nil)
861+ let cU = (((((((((((toBytes(size(ca)) + toBytes(ca)) + toBytes(size(ce))) + toBytes(ce)) + toBytes(cp)) + toBytes(size(aI))) + toBytes(aI)) + toBytes(cg)) + toBytes(cP)) + toBytes(cQ)) + cS) + toBytes(cR))
862+ let cV = keccak256_16Kb(cU)
863+ let cj = aH(cp, aI)
864+ let cq = {
865+ let T = invoke(ay(), z, [ca, H, cj], nil)
866866 if ($isInstanceOf(T, "String"))
867867 then {
868868 let U = T
870870 }
871871 else throw("withdraw: can't take available balance from storage")
872872 }
873- if ((cp == cp))
873+ if ((cq == cq))
874874 then {
875- let cV = aL(co, aI)
876- let cq = aO(co, aI)
877- let cW = (cf - cO)
878- let cX = toString(cW)
879- let cg = if (if (if (bV(cU, cS, cR, cQ, "withdraw: invalid sig"))
880- then bP(cU, "withdraw: already executed")
875+ let cW = aL(cp, aI)
876+ let cr = aO(cp, aI)
877+ let cX = (cg - cP)
878+ let cY = toString(cX)
879+ let ch = if (if (if (bV(cV, cT, cS, cR, "withdraw: invalid sig"))
880+ then bP(cV, "withdraw: already executed")
881881 else false)
882- then Z(cp, cW, "withdraw: insufficient balance")
882+ then Z(cq, cX, "withdraw: insufficient balance")
883883 else false)
884- then Z((cV - cq), cW, "withdraw: insufficient reserves")
884+ then Z((cW - cr), cX, "withdraw: insufficient reserves")
885885 else false
886- if ((cg == cg))
886+ if ((ch == ch))
887887 then {
888- let ch = (cV - cW)
889- let cj = (aU(ci) - cW)
890- let cI = if (Z(ch, J, "withdraw: negative newAssetReserves"))
891- then Z(cj, J, "withdraw: negative newCurrencyReserves")
888+ let ci = (cW - cX)
889+ let ck = (aU(cj) - cX)
890+ let cJ = if (Z(ci, J, "withdraw: negative newAssetReserves"))
891+ then Z(ck, J, "withdraw: negative newCurrencyReserves")
892892 else false
893- if ((cI == cI))
893+ if ((cJ == cJ))
894894 then {
895- let cY = invoke(ay(), B, [bZ, ci, aT], nil)
896- if ((cY == cY))
895+ let cZ = invoke(ay(), B, [ca, cj, aT], nil)
896+ if ((cZ == cZ))
897897 then {
898- let cZ = invoke(ay(), y, [bt(), ci, cM], nil)
899- if ((cZ == cZ))
898+ let da = invoke(ay(), y, [bt(), cj, cN], nil)
899+ if ((da == da))
900900 then {
901- let cK = if ((aE(co) == G))
902- then invoke(aB(), B, [cd, aI, cX], nil)
903- else invoke(bn(), B, [co, aI, cX, cd, cM], nil)
904- if ((cK == cK))
905- then $Tuple2(((aM(co, aI, ch) ++ aV(ci, cj)) ++ bl(cU, toBase58String(cb.transactionId))), unit)
901+ let cL = if ((aE(cp) == G))
902+ then invoke(aB(), B, [ce, aI, cY], nil)
903+ else invoke(bn(), B, [cp, aI, cY, ce, cN], nil)
904+ if ((cL == cL))
905+ then $Tuple2(((aM(cp, aI, ci) ++ aV(cj, ck)) ++ bl(cV, toBase58String(cc.transactionId))), unit)
906906 else throw("Strict value is not equal to itself.")
907907 }
908908 else throw("Strict value is not equal to itself.")
920920
921921
922922
923-@Callable(cb)
923+@Callable(cc)
924924 func depositStakingReward (au,as,aI,aT) = {
925- let ce = valueOrErrorMessage(parseInt(as), "depositStakingReward: chainId not int")
926- let cf = valueOrErrorMessage(parseBigInt(aT), "depositStakingReward: amount not int")
927- let cc = if (if (if (if (bA())
925+ let cf = valueOrErrorMessage(parseInt(as), "depositStakingReward: chainId not int")
926+ let cg = valueOrErrorMessage(parseBigInt(aT), "depositStakingReward: amount not int")
927+ let cd = if (if (if (if (bA())
928928 then bB()
929929 else false)
930- then bG(ce, "depositStakingReward: invalid chainId")
930+ then bG(cf, "depositStakingReward: invalid chainId")
931931 else false)
932- then bI(ce, aI, "depositStakingReward: invalid asset")
932+ then bI(cf, aI, "depositStakingReward: invalid asset")
933933 else false)
934- then Z(cf, J, "depositStakingReward: invalid amount")
934+ then Z(cg, J, "depositStakingReward: invalid amount")
935935 else false
936- if ((cc == cc))
936+ if ((cd == cd))
937937 then {
938- let cg = if ((aE(ce) == G))
939- then bK(cb.caller, "depositStakingReward: invalid waves vault")
940- else if (bE(cb.caller, "depositStakingReward: invalid executor"))
941- then bF(ce, au, "depositStakingReward: invalid caller contract")
938+ let ch = if ((aE(cf) == G))
939+ then bK(cc.caller, "depositStakingReward: invalid waves vault")
940+ else if (bE(cc.caller, "depositStakingReward: invalid executor"))
941+ then bF(cf, au, "depositStakingReward: invalid caller contract")
942942 else false
943- if ((cg == cg))
943+ if ((ch == ch))
944944 then {
945- let ch = (aL(ce, aI) + cf)
946- let ci = aH(ce, aI)
947- let cj = (aU(ci) + cf)
948- let ck = invoke(ay(), C, [bq(), ci, aT], nil)
949- if ((ck == ck))
950- then $Tuple2((aM(ce, aI, ch) ++ aV(ci, cj)), unit)
945+ let ci = (aL(cf, aI) + cg)
946+ let cj = aH(cf, aI)
947+ let ck = (aU(cj) + cg)
948+ let cl = invoke(ay(), C, [bq(), cj, aT], nil)
949+ if ((cl == cl))
950+ then $Tuple2((aM(cf, aI, ci) ++ aV(cj, ck)), unit)
951951 else throw("Strict value is not equal to itself.")
952952 }
953953 else throw("Strict value is not equal to itself.")
957957
958958
959959
960-@Callable(cb)
960+@Callable(cc)
961961 func addChain (as,aG,au) = {
962- let cc = if (if (if (if (if (bw(cb.caller))
962+ let cd = if (if (if (if (if (bw(cc.caller))
963963 then bA()
964964 else false)
965965 then V(as, 0, I, "addChain: invalid chainId")
970970 else false)
971971 then bH(as, "addChain: already exists")
972972 else false
973- if ((cc == cc))
973+ if ((cd == cd))
974974 then $Tuple2((aF(as, aG) ++ at(as, au)), unit)
975975 else throw("Strict value is not equal to itself.")
976976 }
977977
978978
979979
980-@Callable(cb)
980+@Callable(cc)
981981 func addAsset (as,aI,aK) = {
982- let cc = if (if (if (if (if (bw(cb.caller))
982+ let cd = if (if (if (if (if (bw(cc.caller))
983983 then bA()
984984 else false)
985985 then bG(as, "addAsset: invalid chainId")
990990 else false)
991991 then bJ(as, aI, "addAsset: already exists")
992992 else false
993- if ((cc == cc))
993+ if ((cd == cd))
994994 then $Tuple2(aJ(as, aI, aK), unit)
995995 else throw("Strict value is not equal to itself.")
996996 }
997997
998998
999999
1000-@Callable(cb)
1000+@Callable(cc)
10011001 func setRequestWithdrawalBlockDelay (bf) = {
1002- let cc = if (if (bw(cb.caller))
1002+ let cd = if (if (bw(cc.caller))
10031003 then bA()
10041004 else false)
10051005 then V(bf, 0, I, "setRequestWithdrawalBlockDelay: invalid delay")
10061006 else false
1007- if ((cc == cc))
1007+ if ((cd == cd))
10081008 then $Tuple2(be(bf), unit)
10091009 else throw("Strict value is not equal to itself.")
10101010 }
10111011
10121012
10131013
1014-@Callable(cb)
1015-func updateRewardDistributor (da) = {
1016- let cc = if (if (bw(cb.caller))
1014+@Callable(cc)
1015+func updateRewardDistributor (db) = {
1016+ let cd = if (if (bw(cc.caller))
10171017 then bA()
10181018 else false)
1019- then ab(da, "updateRewardDistributor: invalid rewardDistributor")
1019+ then ab(db, "updateRewardDistributor: invalid rewardDistributor")
10201020 else false
1021- if ((cc == cc))
1022- then $Tuple2(br(da), unit)
1021+ if ((cd == cd))
1022+ then $Tuple2(br(db), unit)
10231023 else throw("Strict value is not equal to itself.")
10241024 }
10251025
10261026
10271027
1028-@Callable(cb)
1028+@Callable(cc)
10291029 func updateRelayerFeeRecipient (bv) = {
1030- let cc = if (if (bw(cb.caller))
1030+ let cd = if (if (bw(cc.caller))
10311031 then bA()
10321032 else false)
10331033 then ab(bv, "updateRelayerFeeRecipient: invalid relayerFeeRecipient")
10341034 else false
1035- if ((cc == cc))
1035+ if ((cd == cd))
10361036 then $Tuple2(bu(bv), unit)
10371037 else throw("Strict value is not equal to itself.")
10381038 }
10391039
10401040
10411041
1042-@Callable(cb)
1042+@Callable(cc)
10431043 func pause () = {
1044- let cc = if (if (bD(cb.caller))
1044+ let cd = if (if (bD(cc.caller))
10451045 then bA()
10461046 else false)
10471047 then bB()
10481048 else false
1049- if ((cc == cc))
1049+ if ((cd == cd))
10501050 then $Tuple2(aj(true), unit)
10511051 else throw("Strict value is not equal to itself.")
10521052 }
10531053
10541054
10551055
1056-@Callable(cb)
1056+@Callable(cc)
10571057 func unpause () = {
1058- let cc = if (if (bD(cb.caller))
1058+ let cd = if (if (bD(cc.caller))
10591059 then bA()
10601060 else false)
10611061 then bC()
10621062 else false
1063- if ((cc == cc))
1063+ if ((cd == cd))
10641064 then $Tuple2(aj(false), unit)
10651065 else throw("Strict value is not equal to itself.")
10661066 }
10671067
10681068
10691069
1070-@Callable(cb)
1070+@Callable(cc)
10711071 func updatePauser (an) = {
1072- let cc = if (if (bw(cb.caller))
1072+ let cd = if (if (bw(cc.caller))
10731073 then bA()
10741074 else false)
10751075 then Q(an, "updatePauser: invalid pauser")
10761076 else false
1077- if ((cc == cc))
1077+ if ((cd == cd))
10781078 then $Tuple2(am(addressFromStringValue(an)), unit)
10791079 else throw("Strict value is not equal to itself.")
10801080 }
10811081
10821082
10831083
1084-@Callable(cb)
1084+@Callable(cc)
10851085 func setMultisig (aq) = {
1086- let cc = if (bw(cb.caller))
1086+ let cd = if (bw(cc.caller))
10871087 then Q(aq, "setMultisig: invalid multisig")
10881088 else false
1089- if ((cc == cc))
1089+ if ((cd == cd))
10901090 then $Tuple2(ap(addressFromStringValue(aq)), unit)
10911091 else throw("Strict value is not equal to itself.")
10921092 }
10931093
10941094
1095-@Verifier(db)
1096-func dc () = {
1095+@Verifier(dc)
1096+func dd () = {
10971097 let T = getString(b)
10981098 if ($isInstanceOf(T, "String"))
10991099 then {
1100- let dd = T
1101- valueOrElse(getBoolean(addressFromStringValue(dd), makeString([c, toString(this), toBase58String(db.id)], a)), false)
1100+ let de = T
1101+ valueOrElse(getBoolean(addressFromStringValue(de), makeString([c, toString(this), toBase58String(dc.id)], a)), false)
11021102 }
1103- else sigVerify(db.bodyBytes, db.proofs[0], db.senderPublicKey)
1103+ else sigVerify(dc.bodyBytes, dc.proofs[0], dc.senderPublicKey)
11041104 }
11051105
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "MULTISIG"
77
88 let c = "STATUS"
99
1010 let d = "INIT"
1111
1212 let e = "PAUSED"
1313
1414 let f = "PAUSER"
1515
1616 let g = "EXECUTOR"
1717
1818 let h = "CALLER_CONTRACT"
1919
2020 let i = "WAVES_VAULT"
2121
2222 let j = "ACCOUNT_STORAGE"
2323
2424 let k = "CHAIN"
2525
2626 let l = "ASSET_CURRENCY"
2727
2828 let m = "ASSET_RESERVES"
2929
3030 let n = "ASSET_RESERVES_LOCKED"
3131
3232 let o = "USER_LOCKED_CURRENCY"
3333
3434 let p = "CURRENCY_RESERVES"
3535
3636 let q = "REQUEST_WITHDRAWAL_SIZE"
3737
3838 let r = "REQUEST_WITHDRAWAL"
3939
4040 let s = "REQUEST_WITHDRAWAL_BLOCK_DELAY"
4141
4242 let t = "SEQUENCER"
4343
4444 let u = "WITHDRAWAL_HASH"
4545
4646 let v = "VAULT_ADAPTER"
4747
4848 let w = "REWARD_DISTRIBUTOR"
4949
5050 let x = "RELAYER_FEE_RECIPIENT"
5151
5252 let y = "deposit"
5353
5454 let z = "getUserBalance"
5555
5656 let A = "internalTransfer"
5757
5858 let B = "withdraw"
5959
6060 let C = "depositStakingReward"
6161
6262 let D = 0
6363
6464 let E = 1
6565
6666 let F = 2
6767
6868 let G = "WAVES"
6969
7070 let H = "SPOT"
7171
7272 let I = 9223372036854775807
7373
7474 let J = toBigInt(0)
7575
7676 let K = toBigInt(1)
7777
7878 let L = 86400000
7979
8080 let M = 1
8181
8282 let N = 2
8383
8484 let O = base58'7YXq4t'
8585
8686 let P = base58'G5Nu92G2p7moXW9qjjN3na7gtq4dWCeVdaSjry'
8787
8888 func Q (R,S) = {
8989 let T = addressFromString(R)
9090 if ($isInstanceOf(T, "Address"))
9191 then {
9292 let U = T
9393 true
9494 }
9595 else throw(S)
9696 }
9797
9898
9999 func V (W,X,Y,S) = if (if ((X > W))
100100 then true
101101 else (W > Y))
102102 then throw(S)
103103 else true
104104
105105
106106 func Z (W,X,S) = if ((X > W))
107107 then throw(S)
108108 else true
109109
110110
111111 func aa (W,X,Y,S) = if (if ((X > W))
112112 then true
113113 else (W > Y))
114114 then throw(S)
115115 else true
116116
117117
118118 func ab (W,S) = if (if ((0 >= size(W)))
119119 then true
120120 else contains(W, a))
121121 then throw(S)
122122 else true
123123
124124
125125 func ac (ad,ae,S) = if ((ad != ae))
126126 then throw(S)
127127 else true
128128
129129
130130 func af () = {
131131 let T = getBoolean(d)
132132 if ($isInstanceOf(T, "Boolean"))
133133 then {
134134 let U = T
135135 U
136136 }
137137 else false
138138 }
139139
140140
141141 func ag (ah) = [BooleanEntry(d, ah)]
142142
143143
144144 func ai () = {
145145 let T = getBoolean(e)
146146 if ($isInstanceOf(T, "Boolean"))
147147 then {
148148 let U = T
149149 U
150150 }
151151 else false
152152 }
153153
154154
155155 func aj (ak) = [BooleanEntry(e, ak)]
156156
157157
158158 func al () = {
159159 let T = getString(f)
160160 if ($isInstanceOf(T, "String"))
161161 then {
162162 let U = T
163163 addressFromStringValue(U)
164164 }
165165 else Address(base58'')
166166 }
167167
168168
169169 func am (an) = [StringEntry(f, toString(an))]
170170
171171
172172 func ao () = {
173173 let T = getString(b)
174174 if ($isInstanceOf(T, "String"))
175175 then {
176176 let U = T
177177 addressFromStringValue(U)
178178 }
179179 else Address(base58'')
180180 }
181181
182182
183183 func ap (aq) = [StringEntry(b, toString(aq))]
184184
185185
186186 func ar (as) = {
187187 let T = getString(makeString([h, toString(as)], a))
188188 if ($isInstanceOf(T, "String"))
189189 then {
190190 let U = T
191191 U
192192 }
193193 else ""
194194 }
195195
196196
197197 func at (as,au) = [StringEntry(makeString([h, toString(as)], a), au)]
198198
199199
200200 func av () = {
201201 let T = getString(g)
202202 if ($isInstanceOf(T, "String"))
203203 then {
204204 let U = T
205205 addressFromStringValue(U)
206206 }
207207 else Address(base58'')
208208 }
209209
210210
211211 func aw (ax) = [StringEntry(g, toString(ax))]
212212
213213
214214 func ay () = {
215215 let T = getString(j)
216216 if ($isInstanceOf(T, "String"))
217217 then {
218218 let U = T
219219 addressFromStringValue(U)
220220 }
221221 else Address(base58'')
222222 }
223223
224224
225225 func az (aA) = [StringEntry(j, toString(aA))]
226226
227227
228228 func aB () = {
229229 let T = getString(i)
230230 if ($isInstanceOf(T, "String"))
231231 then {
232232 let U = T
233233 addressFromStringValue(U)
234234 }
235235 else Address(base58'')
236236 }
237237
238238
239239 func aC (aD) = [StringEntry(i, toString(aD))]
240240
241241
242242 func aE (as) = {
243243 let T = getString(makeString([k, toString(as)], a))
244244 if ($isInstanceOf(T, "String"))
245245 then {
246246 let U = T
247247 U
248248 }
249249 else ""
250250 }
251251
252252
253253 func aF (as,aG) = [StringEntry(makeString([k, toString(as)], a), aG)]
254254
255255
256256 func aH (as,aI) = {
257257 let T = getString(makeString([l, toString(as), aI], a))
258258 if ($isInstanceOf(T, "String"))
259259 then {
260260 let U = T
261261 U
262262 }
263263 else ""
264264 }
265265
266266
267267 func aJ (as,aI,aK) = [StringEntry(makeString([l, toString(as), aI], a), aK)]
268268
269269
270270 func aL (as,aI) = {
271271 let T = getString(makeString([m, toString(as), aI], a))
272272 if ($isInstanceOf(T, "String"))
273273 then {
274274 let U = T
275275 parseBigIntValue(U)
276276 }
277277 else J
278278 }
279279
280280
281281 func aM (as,aI,aN) = [StringEntry(makeString([m, toString(as), aI], a), toString(aN))]
282282
283283
284284 func aO (as,aI) = {
285285 let T = getString(makeString([n, toString(as), aI], a))
286286 if ($isInstanceOf(T, "String"))
287287 then {
288288 let U = T
289289 parseBigIntValue(U)
290290 }
291291 else J
292292 }
293293
294294
295295 func aP (as,aI,aN) = [StringEntry(makeString([n, toString(as), aI], a), toString(aN))]
296296
297297
298298 func aQ (aK,aR) = {
299299 let T = getString(makeString([o, aK, aR], a))
300300 if ($isInstanceOf(T, "String"))
301301 then {
302302 let U = T
303303 parseBigIntValue(U)
304304 }
305305 else J
306306 }
307307
308308
309309 func aS (aK,aR,aT) = [StringEntry(makeString([o, aK, aR], a), toString(aT))]
310310
311311
312312 func aU (aK) = {
313313 let T = getString(makeString([p, aK], a))
314314 if ($isInstanceOf(T, "String"))
315315 then {
316316 let U = T
317317 parseBigIntValue(U)
318318 }
319319 else J
320320 }
321321
322322
323323 func aV (aK,aN) = [StringEntry(makeString([p, aK], a), toString(aN))]
324324
325325
326326 func aW () = {
327327 let T = getInteger(q)
328328 if ($isInstanceOf(T, "Int"))
329329 then {
330330 let U = T
331331 U
332332 }
333333 else 0
334334 }
335335
336336
337337 func aX (W) = [IntegerEntry(q, W)]
338338
339339
340340 func aY (aZ) = {
341341 let T = getString(makeString([r, toString(aZ)], a))
342342 if ($isInstanceOf(T, "String"))
343343 then {
344344 let U = T
345345 let ba = split(U, a)
346346 $Tuple8(ba[0], ba[1], parseIntValue(ba[2]), ba[3], parseBigIntValue(ba[4]), parseIntValue(ba[5]), ba[6], parseIntValue(ba[7]))
347347 }
348348 else $Tuple8("", "", 0, "", J, 0, "", D)
349349 }
350350
351351
352352 func bb (aZ,bc) = [StringEntry(makeString([r, toString(aZ)], a), makeString([bc._1, bc._2, toString(bc._3), bc._4, toString(bc._5), toString(bc._6), bc._7, toString(bc._8)], a))]
353353
354354
355355 func bd () = {
356356 let T = getInteger(s)
357357 if ($isInstanceOf(T, "Int"))
358358 then {
359359 let U = T
360360 U
361361 }
362362 else 0
363363 }
364364
365365
366366 func be (bf) = [IntegerEntry(s, bf)]
367367
368368
369369 func bg () = {
370370 let T = getString(t)
371371 if ($isInstanceOf(T, "String"))
372372 then {
373373 let U = T
374374 addressFromStringValue(U)
375375 }
376376 else Address(base58'')
377377 }
378378
379379
380380 func bh (bi) = [StringEntry(t, toString(bi))]
381381
382382
383383 func bj (bk) = {
384384 let T = getString(makeString([u, toBase58String(bk)], a))
385385 if ($isInstanceOf(T, "String"))
386386 then {
387387 let U = T
388388 U
389389 }
390390 else ""
391391 }
392392
393393
394394 func bl (bk,bm) = [StringEntry(makeString([u, toBase58String(bk)], a), bm)]
395395
396396
397397 func bn () = {
398398 let T = getString(v)
399399 if ($isInstanceOf(T, "String"))
400400 then {
401401 let U = T
402402 addressFromStringValue(U)
403403 }
404404 else Address(base58'')
405405 }
406406
407407
408408 func bo (bp) = [StringEntry(v, toString(bp))]
409409
410410
411411 func bq () = {
412412 let T = getString(w)
413413 if ($isInstanceOf(T, "String"))
414414 then {
415415 let U = T
416416 U
417417 }
418418 else ""
419419 }
420420
421421
422422 func br (bs) = [StringEntry(w, bs)]
423423
424424
425425 func bt () = {
426426 let T = getString(x)
427427 if ($isInstanceOf(T, "String"))
428428 then {
429429 let U = T
430430 U
431431 }
432432 else ""
433433 }
434434
435435
436436 func bu (bv) = [StringEntry(x, bv)]
437437
438438
439439 func bw (bx) = if ((bx != this))
440440 then throw("_onlyThisContract: revert")
441441 else true
442442
443443
444444 func by () = if ((ao() == Address(base58'')))
445445 then throw("_whenMultisigSet: revert")
446446 else true
447447
448448
449449 func bz () = if (af())
450450 then throw("_whenNotInitialized: revert")
451451 else true
452452
453453
454454 func bA () = if (!(af()))
455455 then throw("_whenInitialized: revert")
456456 else true
457457
458458
459459 func bB () = if (ai())
460460 then throw("_whenNotPaused: revert")
461461 else true
462462
463463
464464 func bC () = if (!(ai()))
465465 then throw("_whenPaused: revert")
466466 else true
467467
468468
469469 func bD (bx) = if ((bx != al()))
470470 then throw("_onlyPauser: revert")
471471 else true
472472
473473
474474 func bE (W,S) = if ((W != av()))
475475 then throw(S)
476476 else true
477477
478478
479479 func bF (as,au,S) = if ((ar(as) != au))
480480 then throw(S)
481481 else true
482482
483483
484484 func bG (as,S) = if ((0 >= size(aE(as))))
485485 then throw(S)
486486 else true
487487
488488
489489 func bH (as,S) = if ((size(aE(as)) > 0))
490490 then throw(S)
491491 else true
492492
493493
494494 func bI (as,aI,S) = if ((0 >= size(aH(as, aI))))
495495 then throw(S)
496496 else true
497497
498498
499499 func bJ (as,aI,S) = if ((size(aH(as, aI)) > 0))
500500 then throw(S)
501501 else true
502502
503503
504504 func bK (bL,S) = if ((aB() != bL))
505505 then throw(S)
506506 else true
507507
508508
509509 func bM (bN,S) = if ((bN != D))
510510 then throw(S)
511511 else true
512512
513513
514514 func bO (bL,S) = if ((bg() != bL))
515515 then throw(S)
516516 else true
517517
518518
519519 func bP (bk,S) = if ((size(bj(bk)) > 0))
520520 then throw(S)
521521 else true
522522
523523
524524 func bQ (bR,bS,S) = if ((bS == M))
525525 then if ((size(bR) != 64))
526526 then throw(S)
527527 else true
528528 else if ((bS == N))
529529 then if ((size(bR) != 65))
530530 then throw(S)
531531 else true
532532 else throw((S + ": inv alg"))
533533
534534
535535 func bT (bU,bS,S) = if ((bS == M))
536536 then if ((size(bU) != 32))
537537 then throw(S)
538538 else true
539539 else if ((bS == N))
540540 then if ((size(bU) != 20))
541541 then throw(S)
542542 else true
543543 else throw((S + ": inv alg"))
544544
545545
546546 func bV (bk,bR,bU,bS,S) = {
547547 let bW = if ((bS == M))
548548 then {
549- let bX = keccak256_16Kb((O + toBytes(toBase58String(bk))))
549+ let bX = (O + toBytes(toBase58String(bk)))
550550 sigVerify(bX, bR, bU)
551551 }
552552 else if ((bS == N))
553553 then {
554- let bX = keccak256_16Kb((P + bk))
555- (takeRight(keccak256_16Kb(ecrecover(bX, bR)), 20) == bU)
554+ let bY = keccak256_16Kb((P + bk))
555+ (takeRight(keccak256_16Kb(ecrecover(bY, bR)), 20) == bU)
556556 }
557557 else throw((S + ": inv alg"))
558558 if (!(bW))
559559 then throw(S)
560560 else true
561561 }
562562
563563
564-func bY (bU,bZ,bS,S) = {
565- let ca = if ((bS == M))
564+func bZ (bU,ca,bS,S) = {
565+ let cb = if ((bS == M))
566566 then toString(addressFromPublicKey(bU))
567567 else if ((bS == N))
568568 then ("0x" + toBase16String(bU))
569569 else throw((S + ": inv alg"))
570- if ((ca != bZ))
570+ if ((cb != ca))
571571 then throw(S)
572572 else true
573573 }
574574
575575
576-@Callable(cb)
576+@Callable(cc)
577577 func init (ax,an,aA,aD,bi,bp) = {
578- let cc = if (if (if (if (if (if (if (if (bw(cb.caller))
578+ let cd = if (if (if (if (if (if (if (if (bw(cc.caller))
579579 then bz()
580580 else false)
581581 then by()
582582 else false)
583583 then Q(ax, "init: invalid executor")
584584 else false)
585585 then Q(an, "init: invalid pauser")
586586 else false)
587587 then Q(aA, "init: invalid accountStorage")
588588 else false)
589589 then Q(aD, "init: invalid wavesVault")
590590 else false)
591591 then Q(bi, "init: invalid sequencer")
592592 else false)
593593 then Q(bp, "init: invalid vaultAdapter")
594594 else false
595- if ((cc == cc))
595+ if ((cd == cd))
596596 then $Tuple2(((((((ag(true) ++ aw(addressFromStringValue(ax))) ++ am(addressFromStringValue(an))) ++ az(addressFromStringValue(aA))) ++ aC(addressFromStringValue(aD))) ++ bh(addressFromStringValue(bi))) ++ bo(addressFromStringValue(bp))), unit)
597597 else throw("Strict value is not equal to itself.")
598598 }
599599
600600
601601
602-@Callable(cb)
603-func deposit (au,bZ,cd,as,aI,aT) = {
604- let ce = valueOrErrorMessage(parseInt(as), "deposit: chainId not int")
605- let cf = valueOrErrorMessage(parseBigInt(aT), "deposit: amount not int")
606- let cc = if (if (if (if (if (if (bA())
602+@Callable(cc)
603+func deposit (au,ca,ce,as,aI,aT) = {
604+ let cf = valueOrErrorMessage(parseInt(as), "deposit: chainId not int")
605+ let cg = valueOrErrorMessage(parseBigInt(aT), "deposit: amount not int")
606+ let cd = if (if (if (if (if (if (bA())
607607 then bB()
608608 else false)
609- then bG(ce, "deposit: invalid chainId")
609+ then bG(cf, "deposit: invalid chainId")
610610 else false)
611- then ab(bZ, "deposit: invalid from")
611+ then ab(ca, "deposit: invalid from")
612612 else false)
613- then ab(cd, "deposit: invalid to")
613+ then ab(ce, "deposit: invalid to")
614614 else false)
615- then bI(ce, aI, "deposit: invalid asset")
615+ then bI(cf, aI, "deposit: invalid asset")
616616 else false)
617- then Z(cf, J, "deposit: invalid amount")
617+ then Z(cg, J, "deposit: invalid amount")
618618 else false
619- if ((cc == cc))
619+ if ((cd == cd))
620620 then {
621- let cg = if ((aE(ce) == G))
622- then bK(cb.caller, "deposit: invalid waves vault")
623- else if (bE(cb.caller, "deposit: invalid executor"))
624- then bF(ce, au, "deposit: invalid caller contract")
621+ let ch = if ((aE(cf) == G))
622+ then bK(cc.caller, "deposit: invalid waves vault")
623+ else if (bE(cc.caller, "deposit: invalid executor"))
624+ then bF(cf, au, "deposit: invalid caller contract")
625625 else false
626- if ((cg == cg))
626+ if ((ch == ch))
627627 then {
628- let ch = (aL(ce, aI) + cf)
629- let ci = aH(ce, aI)
630- let cj = (aU(ci) + cf)
631- let ck = invoke(ay(), y, [cd, ci, aT], nil)
632- if ((ck == ck))
633- then $Tuple2((aM(ce, aI, ch) ++ aV(ci, cj)), unit)
628+ let ci = (aL(cf, aI) + cg)
629+ let cj = aH(cf, aI)
630+ let ck = (aU(cj) + cg)
631+ let cl = invoke(ay(), y, [ce, cj, aT], nil)
632+ if ((cl == cl))
633+ then $Tuple2((aM(cf, aI, ci) ++ aV(cj, ck)), unit)
634634 else throw("Strict value is not equal to itself.")
635635 }
636636 else throw("Strict value is not equal to itself.")
637637 }
638638 else throw("Strict value is not equal to itself.")
639639 }
640640
641641
642642
643-@Callable(cb)
644-func requestWithdrawal (au,bZ,cd,cl,cm,aI,aT) = {
645- let cn = valueOrErrorMessage(parseInt(cl), "requestWithdrawal: fromChainId not int")
646- let co = valueOrErrorMessage(parseInt(cm), "requestWithdrawal: toChainId not int")
647- let cf = valueOrErrorMessage(parseBigInt(aT), "requestWithdrawal: amount not int")
648- let cc = if (if (if (if (if (if (bA())
649- then bG(cn, "requestWithdrawal: invalid fromChainId")
643+@Callable(cc)
644+func requestWithdrawal (au,ca,ce,cm,cn,aI,aT) = {
645+ let co = valueOrErrorMessage(parseInt(cm), "requestWithdrawal: fromChainId not int")
646+ let cp = valueOrErrorMessage(parseInt(cn), "requestWithdrawal: toChainId not int")
647+ let cg = valueOrErrorMessage(parseBigInt(aT), "requestWithdrawal: amount not int")
648+ let cd = if (if (if (if (if (if (bA())
649+ then bG(co, "requestWithdrawal: invalid fromChainId")
650650 else false)
651- then bG(co, "requestWithdrawal: invalid toChainId")
651+ then bG(cp, "requestWithdrawal: invalid toChainId")
652652 else false)
653- then ab(bZ, "requestWithdrawal: invalid from")
653+ then ab(ca, "requestWithdrawal: invalid from")
654654 else false)
655- then ab(cd, "requestWithdrawal: invalid to")
655+ then ab(ce, "requestWithdrawal: invalid to")
656656 else false)
657- then bI(co, aI, "requestWithdrawal: invalid asset")
657+ then bI(cp, aI, "requestWithdrawal: invalid asset")
658658 else false)
659- then Z(cf, J, "requestWithdrawal: invalid amount")
659+ then Z(cg, J, "requestWithdrawal: invalid amount")
660660 else false
661- if ((cc == cc))
661+ if ((cd == cd))
662662 then {
663- let cg = if ((aE(cn) == G))
664- then bK(cb.caller, "requestWithdrawal: invalid waves vault")
665- else if (bE(cb.caller, "requestWithdrawal: invalid executor"))
666- then bF(cn, au, "requestWithdrawal: invalid caller contract")
663+ let ch = if ((aE(co) == G))
664+ then bK(cc.caller, "requestWithdrawal: invalid waves vault")
665+ else if (bE(cc.caller, "requestWithdrawal: invalid executor"))
666+ then bF(co, au, "requestWithdrawal: invalid caller contract")
667667 else false
668- if ((cg == cg))
668+ if ((ch == ch))
669669 then {
670- let ci = aH(co, aI)
671- let cp = {
672- let T = invoke(ay(), z, [bZ, H, ci], nil)
670+ let cj = aH(cp, aI)
671+ let cq = {
672+ let T = invoke(ay(), z, [ca, H, cj], nil)
673673 if ($isInstanceOf(T, "String"))
674674 then {
675675 let U = T
676676 parseBigIntValue(U)
677677 }
678678 else throw("requestWithdrawal: can't take available balance from storage")
679679 }
680- if ((cp == cp))
680+ if ((cq == cq))
681681 then {
682- let cq = aO(co, aI)
683- let cr = aQ(ci, bZ)
684- let cs = if (if (((cp - cr) >= cf))
685- then ((aL(co, aI) - cq) >= cf)
682+ let cr = aO(cp, aI)
683+ let cs = aQ(cj, ca)
684+ let ct = if (if (((cq - cs) >= cg))
685+ then ((aL(cp, aI) - cr) >= cg)
686686 else false)
687- then $Tuple2(D, (aP(co, aI, (cq + cf)) ++ aS(ci, bZ, (cf + cr))))
687+ then $Tuple2(D, (aP(cp, aI, (cr + cg)) ++ aS(cj, ca, (cg + cs))))
688688 else $Tuple2(F, nil)
689- let ct = cs._1
690- let cu = cs._2
691- let cv = aW()
692- let cw = $Tuple8(bZ, cd, co, aI, cf, height, toBase58String(cb.transactionId), ct)
693- $Tuple2(((bb(cv, cw) ++ aX((cv + 1))) ++ cu), cv)
689+ let cu = ct._1
690+ let cv = ct._2
691+ let cw = aW()
692+ let cx = $Tuple8(ca, ce, cp, aI, cg, height, toBase58String(cc.transactionId), cu)
693+ $Tuple2(((bb(cw, cx) ++ aX((cw + 1))) ++ cv), cw)
694694 }
695695 else throw("Strict value is not equal to itself.")
696696 }
697697 else throw("Strict value is not equal to itself.")
698698 }
699699 else throw("Strict value is not equal to itself.")
700700 }
701701
702702
703703
704-@Callable(cb)
705-func executeWithdrawal (au,as,cx) = {
706- let ce = valueOrErrorMessage(parseInt(as), "executeWithdrawal: chainId not int")
707- let cy = valueOrErrorMessage(parseInt(cx), "executeWithdrawal: requestWithdrawalId not int")
708- let cv = aW()
709- let cc = if (if (bA())
710- then bG(ce, "executeWithdrawal: invalid chainId")
704+@Callable(cc)
705+func executeWithdrawal (au,as,cy) = {
706+ let cf = valueOrErrorMessage(parseInt(as), "executeWithdrawal: chainId not int")
707+ let cz = valueOrErrorMessage(parseInt(cy), "executeWithdrawal: requestWithdrawalId not int")
708+ let cw = aW()
709+ let cd = if (if (bA())
710+ then bG(cf, "executeWithdrawal: invalid chainId")
711711 else false)
712- then V(cy, 0, (cv - 1), "executeWithdrawal: invalid requestWithdrawalId")
712+ then V(cz, 0, (cw - 1), "executeWithdrawal: invalid requestWithdrawalId")
713713 else false
714- if ((cc == cc))
714+ if ((cd == cd))
715715 then {
716- let cg = if ((aE(ce) == G))
717- then bK(cb.caller, "executeWithdrawal: invalid waves vault")
718- else if (bE(cb.caller, "executeWithdrawal: invalid executor"))
719- then bF(ce, au, "executeWithdrawal: invalid caller contract")
716+ let ch = if ((aE(cf) == G))
717+ then bK(cc.caller, "executeWithdrawal: invalid waves vault")
718+ else if (bE(cc.caller, "executeWithdrawal: invalid executor"))
719+ then bF(cf, au, "executeWithdrawal: invalid caller contract")
720720 else false
721- if ((cg == cg))
721+ if ((ch == ch))
722722 then {
723- let cz = aY(cy)
724- let cA = cz._1
725- let cB = cz._2
726- let cC = cz._3
727- let cD = cz._4
728- let cE = cz._5
729- let cF = cz._6
730- let ct = cz._8
731- let ch = (aL(cC, cD) - cE)
732- let cG = (aO(cC, cD) - cE)
733- let ci = aH(cC, cD)
734- let cj = (aU(ci) - cE)
735- let cH = (aQ(ci, cA) - cE)
736- let cI = if (if (if (if (if (Z(ch, J, "executeWithdrawal: negative newAssetReserves"))
737- then Z(cG, J, "executeWithdrawal: negative newAssetReservesLocked")
723+ let cA = aY(cz)
724+ let cB = cA._1
725+ let cC = cA._2
726+ let cD = cA._3
727+ let cE = cA._4
728+ let cF = cA._5
729+ let cG = cA._6
730+ let cu = cA._8
731+ let ci = (aL(cD, cE) - cF)
732+ let cH = (aO(cD, cE) - cF)
733+ let cj = aH(cD, cE)
734+ let ck = (aU(cj) - cF)
735+ let cI = (aQ(cj, cB) - cF)
736+ let cJ = if (if (if (if (if (Z(ci, J, "executeWithdrawal: negative newAssetReserves"))
737+ then Z(cH, J, "executeWithdrawal: negative newAssetReservesLocked")
738738 else false)
739- then Z(cj, J, "executeWithdrawal: negative newCurrencyReserves")
739+ then Z(ck, J, "executeWithdrawal: negative newCurrencyReserves")
740740 else false)
741- then Z(cH, J, "executeWithdrawal: negative newUserLockedCurrency")
741+ then Z(cI, J, "executeWithdrawal: negative newUserLockedCurrency")
742742 else false)
743- then V((height - cF), bd(), I, "executeWithdrawal: too early to execute")
743+ then V((height - cG), bd(), I, "executeWithdrawal: too early to execute")
744744 else false)
745- then bM(ct, "executeWithdrawal: request is resolved")
745+ then bM(cu, "executeWithdrawal: request is resolved")
746746 else false
747- if ((cI == cI))
747+ if ((cJ == cJ))
748748 then {
749- let cJ = invoke(ay(), B, [cA, ci, toString(cE)], nil)
750- if ((cJ == cJ))
749+ let cK = invoke(ay(), B, [cB, cj, toString(cF)], nil)
750+ if ((cK == cK))
751751 then {
752- let cK = if ((aE(cC) == G))
753- then invoke(aB(), B, [cB, cD, toString(cE)], nil)
754- else invoke(bn(), B, [cC, cD, toString(cE), cB], nil)
755- if ((cK == cK))
752+ let cL = if ((aE(cD) == G))
753+ then invoke(aB(), B, [cC, cE, toString(cF)], nil)
754+ else invoke(bn(), B, [cD, cE, toString(cF), cC], nil)
755+ if ((cL == cL))
756756 then {
757- let cL = $Tuple8(cz._1, cz._2, cz._3, cz._4, cz._5, cz._6, cz._7, E)
758- $Tuple2(((((aM(cC, cD, ch) ++ aP(cC, cD, cG)) ++ aV(ci, cj)) ++ aS(ci, cA, cH)) ++ bb(cy, cL)), unit)
757+ let cM = $Tuple8(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, E)
758+ $Tuple2(((((aM(cD, cE, ci) ++ aP(cD, cE, cH)) ++ aV(cj, ck)) ++ aS(cj, cB, cI)) ++ bb(cz, cM)), unit)
759759 }
760760 else throw("Strict value is not equal to itself.")
761761 }
762762 else throw("Strict value is not equal to itself.")
763763 }
764764 else throw("Strict value is not equal to itself.")
765765 }
766766 else throw("Strict value is not equal to itself.")
767767 }
768768 else throw("Strict value is not equal to itself.")
769769 }
770770
771771
772772
773-@Callable(cb)
774-func rejectWithdrawal (cx) = {
775- let cy = valueOrErrorMessage(parseInt(cx), "rejectWithdrawal: requestWithdrawalId not int")
776- let cv = aW()
777- let cc = if (if (bA())
778- then bO(cb.caller, "rejectWithdrawal: invalid sequencer")
773+@Callable(cc)
774+func rejectWithdrawal (cy) = {
775+ let cz = valueOrErrorMessage(parseInt(cy), "rejectWithdrawal: requestWithdrawalId not int")
776+ let cw = aW()
777+ let cd = if (if (bA())
778+ then bO(cc.caller, "rejectWithdrawal: invalid sequencer")
779779 else false)
780- then V(cy, 0, (cv - 1), "rejectWithdrawal: invalid requestWithdrawalId")
780+ then V(cz, 0, (cw - 1), "rejectWithdrawal: invalid requestWithdrawalId")
781781 else false
782- if ((cc == cc))
782+ if ((cd == cd))
783783 then {
784- let cz = aY(cy)
785- let cA = cz._1
786- let cB = cz._2
787- let cC = cz._3
788- let cD = cz._4
789- let cE = cz._5
790- let cF = cz._6
791- let ct = cz._8
792- let ci = aH(cC, cD)
793- let cG = (aO(cC, cD) - cE)
794- let cH = (aQ(ci, cA) - cE)
795- let cg = if (if (Z(cG, J, "rejectWithdrawal: negative newAssetReservesLocked"))
796- then Z(cH, J, "rejectWithdrawal: negative newUserLockedCurrency")
784+ let cA = aY(cz)
785+ let cB = cA._1
786+ let cC = cA._2
787+ let cD = cA._3
788+ let cE = cA._4
789+ let cF = cA._5
790+ let cG = cA._6
791+ let cu = cA._8
792+ let cj = aH(cD, cE)
793+ let cH = (aO(cD, cE) - cF)
794+ let cI = (aQ(cj, cB) - cF)
795+ let ch = if (if (Z(cH, J, "rejectWithdrawal: negative newAssetReservesLocked"))
796+ then Z(cI, J, "rejectWithdrawal: negative newUserLockedCurrency")
797797 else false)
798- then bM(ct, "rejectWithdrawal: request is resolved")
798+ then bM(cu, "rejectWithdrawal: request is resolved")
799799 else false
800- if ((cg == cg))
800+ if ((ch == ch))
801801 then {
802- let cp = {
803- let T = invoke(ay(), z, [cA, H, ci], nil)
802+ let cq = {
803+ let T = invoke(ay(), z, [cB, H, cj], nil)
804804 if ($isInstanceOf(T, "String"))
805805 then {
806806 let U = T
807807 parseBigIntValue(U)
808808 }
809809 else throw("rejectWithdrawal: can't take available balance from storage")
810810 }
811- if ((cp == cp))
812- then if ((cE > cp))
811+ if ((cq == cq))
812+ then if ((cF > cq))
813813 then {
814- let cL = $Tuple8(cz._1, cz._2, cz._3, cz._4, cz._5, cz._6, cz._7, F)
815- $Tuple2(((aP(cC, cD, cG) ++ aS(ci, cA, cH)) ++ bb(cy, cL)), true)
814+ let cM = $Tuple8(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, F)
815+ $Tuple2(((aP(cD, cE, cH) ++ aS(cj, cB, cI)) ++ bb(cz, cM)), true)
816816 }
817817 else $Tuple2(nil, false)
818818 else throw("Strict value is not equal to itself.")
819819 }
820820 else throw("Strict value is not equal to itself.")
821821 }
822822 else throw("Strict value is not equal to itself.")
823823 }
824824
825825
826826
827-@Callable(cb)
828-func withdraw (bZ,cd,cm,aI,aT,cM,cN,bU,bS,bR) = {
829- let co = valueOrErrorMessage(parseInt(cm), "withdraw: toChainId not int")
830- let cf = valueOrErrorMessage(parseBigInt(aT), "withdraw: amount not int")
831- let cO = valueOrErrorMessage(parseBigInt(cM), "withdraw: relayerFee not int")
832- let cP = valueOrErrorMessage(parseInt(cN), "withdraw: timestamp not int")
833- let cQ = valueOrErrorMessage(parseInt(bS), "withdraw: alg not int")
834- let cR = fromBase58String(bU)
835- let cS = fromBase58String(bR)
836- let cc = if (if (if (if (if (if (if (if (if (if (if (bA())
837- then bO(cb.caller, "withdraw: invalid sequencer")
827+@Callable(cc)
828+func withdraw (ca,ce,cn,aI,aT,cN,cO,bU,bS,bR) = {
829+ let cp = valueOrErrorMessage(parseInt(cn), "withdraw: toChainId not int")
830+ let cg = valueOrErrorMessage(parseBigInt(aT), "withdraw: amount not int")
831+ let cP = valueOrErrorMessage(parseBigInt(cN), "withdraw: relayerFee not int")
832+ let cQ = valueOrErrorMessage(parseInt(cO), "withdraw: timestamp not int")
833+ let cR = valueOrErrorMessage(parseInt(bS), "withdraw: alg not int")
834+ let cS = fromBase58String(bU)
835+ let cT = fromBase58String(bR)
836+ let cd = if (if (if (if (if (if (if (if (if (if (if (bA())
837+ then bO(cc.caller, "withdraw: invalid sequencer")
838838 else false)
839- then ab(bZ, "withdraw: invalid from")
839+ then ab(ca, "withdraw: invalid from")
840840 else false)
841- then ab(cd, "withdraw: invalid to")
841+ then ab(ce, "withdraw: invalid to")
842842 else false)
843- then bG(co, "withdraw: invalid toChainId")
843+ then bG(cp, "withdraw: invalid toChainId")
844844 else false)
845- then bI(co, aI, "withdraw: invalid asset")
845+ then bI(cp, aI, "withdraw: invalid asset")
846846 else false)
847- then Z(cf, J, "withdraw: invalid amount")
847+ then Z(cg, J, "withdraw: invalid amount")
848848 else false)
849- then aa(cO, J, cf, "withdraw: invalid relayerFee")
849+ then aa(cP, J, cg, "withdraw: invalid relayerFee")
850850 else false)
851- then V((cP + L), lastBlock.timestamp, I, "withdraw: invalid timestamp")
851+ then V((cQ + L), lastBlock.timestamp, I, "withdraw: invalid timestamp")
852852 else false)
853- then bT(cR, cQ, "withdraw: inv web3Id")
853+ then bT(cS, cR, "withdraw: inv web3Id")
854854 else false)
855- then bQ(cS, cQ, "withdraw: inv sig format")
855+ then bQ(cT, cR, "withdraw: inv sig format")
856856 else false)
857- then bY(cR, bZ, cQ, "withdraw: web3Id mismatch")
857+ then bZ(cS, ca, cR, "withdraw: web3Id mismatch")
858858 else false
859- if ((cc == cc))
859+ if ((cd == cd))
860860 then {
861- let cT = (((((((((((toBytes(size(bZ)) + toBytes(bZ)) + toBytes(size(cd))) + toBytes(cd)) + toBytes(co)) + toBytes(size(aI))) + toBytes(aI)) + toBytes(cf)) + toBytes(cO)) + toBytes(cP)) + cR) + toBytes(cQ))
862- let cU = keccak256_16Kb(cT)
863- let ci = aH(co, aI)
864- let cp = {
865- let T = invoke(ay(), z, [bZ, H, ci], nil)
861+ let cU = (((((((((((toBytes(size(ca)) + toBytes(ca)) + toBytes(size(ce))) + toBytes(ce)) + toBytes(cp)) + toBytes(size(aI))) + toBytes(aI)) + toBytes(cg)) + toBytes(cP)) + toBytes(cQ)) + cS) + toBytes(cR))
862+ let cV = keccak256_16Kb(cU)
863+ let cj = aH(cp, aI)
864+ let cq = {
865+ let T = invoke(ay(), z, [ca, H, cj], nil)
866866 if ($isInstanceOf(T, "String"))
867867 then {
868868 let U = T
869869 parseBigIntValue(U)
870870 }
871871 else throw("withdraw: can't take available balance from storage")
872872 }
873- if ((cp == cp))
873+ if ((cq == cq))
874874 then {
875- let cV = aL(co, aI)
876- let cq = aO(co, aI)
877- let cW = (cf - cO)
878- let cX = toString(cW)
879- let cg = if (if (if (bV(cU, cS, cR, cQ, "withdraw: invalid sig"))
880- then bP(cU, "withdraw: already executed")
875+ let cW = aL(cp, aI)
876+ let cr = aO(cp, aI)
877+ let cX = (cg - cP)
878+ let cY = toString(cX)
879+ let ch = if (if (if (bV(cV, cT, cS, cR, "withdraw: invalid sig"))
880+ then bP(cV, "withdraw: already executed")
881881 else false)
882- then Z(cp, cW, "withdraw: insufficient balance")
882+ then Z(cq, cX, "withdraw: insufficient balance")
883883 else false)
884- then Z((cV - cq), cW, "withdraw: insufficient reserves")
884+ then Z((cW - cr), cX, "withdraw: insufficient reserves")
885885 else false
886- if ((cg == cg))
886+ if ((ch == ch))
887887 then {
888- let ch = (cV - cW)
889- let cj = (aU(ci) - cW)
890- let cI = if (Z(ch, J, "withdraw: negative newAssetReserves"))
891- then Z(cj, J, "withdraw: negative newCurrencyReserves")
888+ let ci = (cW - cX)
889+ let ck = (aU(cj) - cX)
890+ let cJ = if (Z(ci, J, "withdraw: negative newAssetReserves"))
891+ then Z(ck, J, "withdraw: negative newCurrencyReserves")
892892 else false
893- if ((cI == cI))
893+ if ((cJ == cJ))
894894 then {
895- let cY = invoke(ay(), B, [bZ, ci, aT], nil)
896- if ((cY == cY))
895+ let cZ = invoke(ay(), B, [ca, cj, aT], nil)
896+ if ((cZ == cZ))
897897 then {
898- let cZ = invoke(ay(), y, [bt(), ci, cM], nil)
899- if ((cZ == cZ))
898+ let da = invoke(ay(), y, [bt(), cj, cN], nil)
899+ if ((da == da))
900900 then {
901- let cK = if ((aE(co) == G))
902- then invoke(aB(), B, [cd, aI, cX], nil)
903- else invoke(bn(), B, [co, aI, cX, cd, cM], nil)
904- if ((cK == cK))
905- then $Tuple2(((aM(co, aI, ch) ++ aV(ci, cj)) ++ bl(cU, toBase58String(cb.transactionId))), unit)
901+ let cL = if ((aE(cp) == G))
902+ then invoke(aB(), B, [ce, aI, cY], nil)
903+ else invoke(bn(), B, [cp, aI, cY, ce, cN], nil)
904+ if ((cL == cL))
905+ then $Tuple2(((aM(cp, aI, ci) ++ aV(cj, ck)) ++ bl(cV, toBase58String(cc.transactionId))), unit)
906906 else throw("Strict value is not equal to itself.")
907907 }
908908 else throw("Strict value is not equal to itself.")
909909 }
910910 else throw("Strict value is not equal to itself.")
911911 }
912912 else throw("Strict value is not equal to itself.")
913913 }
914914 else throw("Strict value is not equal to itself.")
915915 }
916916 else throw("Strict value is not equal to itself.")
917917 }
918918 else throw("Strict value is not equal to itself.")
919919 }
920920
921921
922922
923-@Callable(cb)
923+@Callable(cc)
924924 func depositStakingReward (au,as,aI,aT) = {
925- let ce = valueOrErrorMessage(parseInt(as), "depositStakingReward: chainId not int")
926- let cf = valueOrErrorMessage(parseBigInt(aT), "depositStakingReward: amount not int")
927- let cc = if (if (if (if (bA())
925+ let cf = valueOrErrorMessage(parseInt(as), "depositStakingReward: chainId not int")
926+ let cg = valueOrErrorMessage(parseBigInt(aT), "depositStakingReward: amount not int")
927+ let cd = if (if (if (if (bA())
928928 then bB()
929929 else false)
930- then bG(ce, "depositStakingReward: invalid chainId")
930+ then bG(cf, "depositStakingReward: invalid chainId")
931931 else false)
932- then bI(ce, aI, "depositStakingReward: invalid asset")
932+ then bI(cf, aI, "depositStakingReward: invalid asset")
933933 else false)
934- then Z(cf, J, "depositStakingReward: invalid amount")
934+ then Z(cg, J, "depositStakingReward: invalid amount")
935935 else false
936- if ((cc == cc))
936+ if ((cd == cd))
937937 then {
938- let cg = if ((aE(ce) == G))
939- then bK(cb.caller, "depositStakingReward: invalid waves vault")
940- else if (bE(cb.caller, "depositStakingReward: invalid executor"))
941- then bF(ce, au, "depositStakingReward: invalid caller contract")
938+ let ch = if ((aE(cf) == G))
939+ then bK(cc.caller, "depositStakingReward: invalid waves vault")
940+ else if (bE(cc.caller, "depositStakingReward: invalid executor"))
941+ then bF(cf, au, "depositStakingReward: invalid caller contract")
942942 else false
943- if ((cg == cg))
943+ if ((ch == ch))
944944 then {
945- let ch = (aL(ce, aI) + cf)
946- let ci = aH(ce, aI)
947- let cj = (aU(ci) + cf)
948- let ck = invoke(ay(), C, [bq(), ci, aT], nil)
949- if ((ck == ck))
950- then $Tuple2((aM(ce, aI, ch) ++ aV(ci, cj)), unit)
945+ let ci = (aL(cf, aI) + cg)
946+ let cj = aH(cf, aI)
947+ let ck = (aU(cj) + cg)
948+ let cl = invoke(ay(), C, [bq(), cj, aT], nil)
949+ if ((cl == cl))
950+ then $Tuple2((aM(cf, aI, ci) ++ aV(cj, ck)), unit)
951951 else throw("Strict value is not equal to itself.")
952952 }
953953 else throw("Strict value is not equal to itself.")
954954 }
955955 else throw("Strict value is not equal to itself.")
956956 }
957957
958958
959959
960-@Callable(cb)
960+@Callable(cc)
961961 func addChain (as,aG,au) = {
962- let cc = if (if (if (if (if (bw(cb.caller))
962+ let cd = if (if (if (if (if (bw(cc.caller))
963963 then bA()
964964 else false)
965965 then V(as, 0, I, "addChain: invalid chainId")
966966 else false)
967967 then ab(aG, "addChain: invalid name")
968968 else false)
969969 then ab(au, "addChain: invalid callerContract")
970970 else false)
971971 then bH(as, "addChain: already exists")
972972 else false
973- if ((cc == cc))
973+ if ((cd == cd))
974974 then $Tuple2((aF(as, aG) ++ at(as, au)), unit)
975975 else throw("Strict value is not equal to itself.")
976976 }
977977
978978
979979
980-@Callable(cb)
980+@Callable(cc)
981981 func addAsset (as,aI,aK) = {
982- let cc = if (if (if (if (if (bw(cb.caller))
982+ let cd = if (if (if (if (if (bw(cc.caller))
983983 then bA()
984984 else false)
985985 then bG(as, "addAsset: invalid chainId")
986986 else false)
987987 then ab(aI, "addAsset: invalid asset")
988988 else false)
989989 then ab(aK, "addAsset: invalid currency")
990990 else false)
991991 then bJ(as, aI, "addAsset: already exists")
992992 else false
993- if ((cc == cc))
993+ if ((cd == cd))
994994 then $Tuple2(aJ(as, aI, aK), unit)
995995 else throw("Strict value is not equal to itself.")
996996 }
997997
998998
999999
1000-@Callable(cb)
1000+@Callable(cc)
10011001 func setRequestWithdrawalBlockDelay (bf) = {
1002- let cc = if (if (bw(cb.caller))
1002+ let cd = if (if (bw(cc.caller))
10031003 then bA()
10041004 else false)
10051005 then V(bf, 0, I, "setRequestWithdrawalBlockDelay: invalid delay")
10061006 else false
1007- if ((cc == cc))
1007+ if ((cd == cd))
10081008 then $Tuple2(be(bf), unit)
10091009 else throw("Strict value is not equal to itself.")
10101010 }
10111011
10121012
10131013
1014-@Callable(cb)
1015-func updateRewardDistributor (da) = {
1016- let cc = if (if (bw(cb.caller))
1014+@Callable(cc)
1015+func updateRewardDistributor (db) = {
1016+ let cd = if (if (bw(cc.caller))
10171017 then bA()
10181018 else false)
1019- then ab(da, "updateRewardDistributor: invalid rewardDistributor")
1019+ then ab(db, "updateRewardDistributor: invalid rewardDistributor")
10201020 else false
1021- if ((cc == cc))
1022- then $Tuple2(br(da), unit)
1021+ if ((cd == cd))
1022+ then $Tuple2(br(db), unit)
10231023 else throw("Strict value is not equal to itself.")
10241024 }
10251025
10261026
10271027
1028-@Callable(cb)
1028+@Callable(cc)
10291029 func updateRelayerFeeRecipient (bv) = {
1030- let cc = if (if (bw(cb.caller))
1030+ let cd = if (if (bw(cc.caller))
10311031 then bA()
10321032 else false)
10331033 then ab(bv, "updateRelayerFeeRecipient: invalid relayerFeeRecipient")
10341034 else false
1035- if ((cc == cc))
1035+ if ((cd == cd))
10361036 then $Tuple2(bu(bv), unit)
10371037 else throw("Strict value is not equal to itself.")
10381038 }
10391039
10401040
10411041
1042-@Callable(cb)
1042+@Callable(cc)
10431043 func pause () = {
1044- let cc = if (if (bD(cb.caller))
1044+ let cd = if (if (bD(cc.caller))
10451045 then bA()
10461046 else false)
10471047 then bB()
10481048 else false
1049- if ((cc == cc))
1049+ if ((cd == cd))
10501050 then $Tuple2(aj(true), unit)
10511051 else throw("Strict value is not equal to itself.")
10521052 }
10531053
10541054
10551055
1056-@Callable(cb)
1056+@Callable(cc)
10571057 func unpause () = {
1058- let cc = if (if (bD(cb.caller))
1058+ let cd = if (if (bD(cc.caller))
10591059 then bA()
10601060 else false)
10611061 then bC()
10621062 else false
1063- if ((cc == cc))
1063+ if ((cd == cd))
10641064 then $Tuple2(aj(false), unit)
10651065 else throw("Strict value is not equal to itself.")
10661066 }
10671067
10681068
10691069
1070-@Callable(cb)
1070+@Callable(cc)
10711071 func updatePauser (an) = {
1072- let cc = if (if (bw(cb.caller))
1072+ let cd = if (if (bw(cc.caller))
10731073 then bA()
10741074 else false)
10751075 then Q(an, "updatePauser: invalid pauser")
10761076 else false
1077- if ((cc == cc))
1077+ if ((cd == cd))
10781078 then $Tuple2(am(addressFromStringValue(an)), unit)
10791079 else throw("Strict value is not equal to itself.")
10801080 }
10811081
10821082
10831083
1084-@Callable(cb)
1084+@Callable(cc)
10851085 func setMultisig (aq) = {
1086- let cc = if (bw(cb.caller))
1086+ let cd = if (bw(cc.caller))
10871087 then Q(aq, "setMultisig: invalid multisig")
10881088 else false
1089- if ((cc == cc))
1089+ if ((cd == cd))
10901090 then $Tuple2(ap(addressFromStringValue(aq)), unit)
10911091 else throw("Strict value is not equal to itself.")
10921092 }
10931093
10941094
1095-@Verifier(db)
1096-func dc () = {
1095+@Verifier(dc)
1096+func dd () = {
10971097 let T = getString(b)
10981098 if ($isInstanceOf(T, "String"))
10991099 then {
1100- let dd = T
1101- valueOrElse(getBoolean(addressFromStringValue(dd), makeString([c, toString(this), toBase58String(db.id)], a)), false)
1100+ let de = T
1101+ valueOrElse(getBoolean(addressFromStringValue(de), makeString([c, toString(this), toBase58String(dc.id)], a)), false)
11021102 }
1103- else sigVerify(db.bodyBytes, db.proofs[0], db.senderPublicKey)
1103+ else sigVerify(dc.bodyBytes, dc.proofs[0], dc.senderPublicKey)
11041104 }
11051105

github/deemru/w8io/169f3d6 
203.63 ms