tx · GS5ju4Q1qanb2oSuLmQKkPgXttVoFeZLWoJjqVjauvj9

3PQtT2o7g8HmcZLGodx4L7YDe7ngb26wjYk:  -0.06200000 Waves

2023.08.11 12:38 [3771424] smart account 3PQtT2o7g8HmcZLGodx4L7YDe7ngb26wjYk > SELF 0.00000000 Waves

{ "type": 13, "id": "GS5ju4Q1qanb2oSuLmQKkPgXttVoFeZLWoJjqVjauvj9", "fee": 6200000, "feeAssetId": null, "timestamp": 1691746329026, "version": 2, "chainId": 87, "sender": "3PQtT2o7g8HmcZLGodx4L7YDe7ngb26wjYk", "senderPublicKey": "DGuDyEBiewoZje46attYBabwJWnk7PPwtLi6yBjzctPV", "proofs": [ "5y4pGS36TDptQZxcEYA5W1HG76aGFvuo39GKmLXcMm6eFK7sbEqLVzc8AbyDD18ScBUUrc3Et3HwrSuyvYVSjcbG" ], "script": "base64:BgJxCAISEAoOGBgBAQgIAQEBAQEIAQgSAwoBARIDCgEBEgASBAoCCAESBAoCCAESAwoBARIECgIIARIDCgEBEgQKAggBEgUKAwgIARIDCgEIEgASABIDCgEIEgASAwoBARIDCgEIEgASABIDCgEIEgMKAQhzAANTRVACAl9fAAVXQVZFUwIFd2F2ZXMAB01BWF9JTlQA//////////9/AAdNQVhfRkVFAMCEPQANTUFYX0FNUExJRklFUgDAhD0AFE1BWF9XRUlHSFRfQU1QTElGSUVSAMCEPQAKTUFYX1dFSUdIVADAhD0AFFNMSVBQQUdFX1JBVEVfRkFDVE9SAMCEPQAPRkVFX1JBVEVfRkFDVE9SAMCEPQALUkFURV9GQUNUT1IAwIQ9AA5QRVJDRU5UX0ZBQ1RPUgkAtgIBAICAkLu61q3wDQAQWkVST19JTlRfTElTVF8xMAkAzAgCAAAJAMwIAgAACQDMCAIAAAkAzAgCAAAJAMwIAgAACQDMCAIAAAkAzAgCAAAJAMwIAgAACQDMCAIAAAkAzAgCAAAFA25pbAAQWkVST19JTlRfTElTVF8xMQkAzQgCBRBaRVJPX0lOVF9MSVNUXzEwAAAAC1pFUk9fQklHSU5UCQC2AgEAAAATWkVST19CSUdJTlRfTElTVF8xMQkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAkAzAgCBQtaRVJPX0JJR0lOVAUDbmlsAAxJTlRfREVDSU1BTFMACAAPQklHSU5UX0RFQ0lNQUxTABIAB0xJU1RfNjQJAL0JAgJ/MF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMF8wXzBfMAIBXwAMS0VZX01VTFRJU0lHAghNVUxUSVNJRwAKS0VZX1NUQVRVUwIGU1RBVFVTAApLRVlfUEFVU0VEAgZQQVVTRUQACktFWV9QQVVTRVICBlBBVVNFUgALS0VZX1NUT1JBR0UCB1NUT1JBR0UACktFWV9BU1NFVFMCBkFTU0VUUwASS0VZX0FTU0VUX0JBTEFOQ0VTAg5BU1NFVF9CQUxBTkNFUwARS0VZX0FTU0VUX1dFSUdIVFMCDUFTU0VUX1dFSUdIVFMACktFWV9MUF9GRUUCBkxQX0ZFRQAQS0VZX1BST1RPQ09MX0ZFRQIMUFJPVE9DT0xfRkVFAA1LRVlfUFJFQ0lTSU9OAglQUkVDSVNJT04AFEtFWV9TSUdNQV9GRUVfUEVSX0xQAhBTSUdNQV9GRUVfUEVSX0xQABlLRVlfVVNFUl9TSUdNQV9GRUVfUEVSX0xQAhVVU0VSX1NJR01BX0ZFRV9QRVJfTFAAC0tFWV9VU0VSX0xQAgdVU0VSX0xQAAxLRVlfVE9UQUxfTFACCFRPVEFMX0xQABBLRVlfVVNFUl9QUk9GSVRTAgxVU0VSX1BST0ZJVFMBEF92YWxpZGF0ZUFkZHJlc3MCCGFkZHJlc3NfBGVycl8EByRtYXRjaDAJAKYIAQUIYWRkcmVzc18DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYJAAIBBQRlcnJfAQ5fdmFsaWRhdGVBc3NldAIIYXNzZXRJZF8EZXJyXwMJAAACBQhhc3NldElkXwUFV0FWRVMGBAckbWF0Y2gwCQDsBwEJANkEAQUIYXNzZXRJZF8DCQABAgUHJG1hdGNoMAIFQXNzZXQEAWEFByRtYXRjaDAGCQACAQUEZXJyXwEMX3ZhbGlkYXRlSW50BAR2YWxfDmxvd2VyQm91bmRhcnlfDnVwcGVyQm91bmRhcnlfBGVycl8DAwkAZgIFDmxvd2VyQm91bmRhcnlfBQR2YWxfBgkAZgIFBHZhbF8FDnVwcGVyQm91bmRhcnlfCQACAQUEZXJyXwYBDV92YWxpZGF0ZUJvb2wDBHZhbF8HdGFyZ2V0XwRlcnJfAwkBAiE9AgUEdmFsXwUHdGFyZ2V0XwkAAgEFBGVycl8GARRfdmFsaWRhdGVTdHJpbmdFcXVhbAMFdmFsMV8FdmFsMl8EZXJyXwMJAQIhPQIFBXZhbDFfBQV2YWwyXwkAAgEFBGVycl8GARRfdmFsaWRhdGVTdHJpbmdOb3RFcQMFdmFsMV8FdmFsMl8EZXJyXwMJAAACBQV2YWwxXwUFdmFsMl8JAAIBBQRlcnJfBgEQX3ZhbGlkYXRlSW50TGlzdAQEdmFsXw5sb3dlckJvdW5kYXJ5Xw51cHBlckJvdW5kYXJ5XwRlcnJfCgEIZm9sZEZ1bmMCA2FjYwRlbGVtBAckbWF0Y2gwCQC2CQEFBGVsZW0DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwAwUDYWNjCQEMX3ZhbGlkYXRlSW50BAUBYQUObG93ZXJCb3VuZGFyeV8FDnVwcGVyQm91bmRhcnlfBQRlcnJfBwkAAgEFBGVycl8KAAIkbAUEdmFsXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAGCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgEPX3ZhbGlkYXRlQXNzZXRzAgdhc3NldHNfBGVycl8KAQhmb2xkRnVuYwIDYWNjBGVsZW0DBQNhY2MJAQ5fdmFsaWRhdGVBc3NldAIFBGVsZW0FBGVycl8HCgACJGwFB2Fzc2V0c18KAAIkcwkAkAMBBQIkbAoABSRhY2MwBgoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBEl92YWxpZGF0ZUludEVxdWFscwMFdmFsMV8FdmFsMl8EZXJyXwMJAQIhPQIFBXZhbDFfBQV2YWwyXwkAAgEFBGVycl8GARJfdmFsaWRhdGVUb2tlbk5hbWUCBHZhbF8EZXJyXwMDCQBmAgAECQCxAgEFBHZhbF8GCQBmAgkAsQIBBQR2YWxfABAJAAIBBQRlcnJfBgETX3ZhbGlkYXRlVG9rZW5EZXNjcgIEdmFsXwRlcnJfAwkAZgIJALECAQUEdmFsXwDoBwkAAgEFBGVycl8GARFfdmFsaWRhdGVEZWNpbWFscwIEdmFsXwRlcnJfAwMJAGYCAAAFBHZhbF8GCQBmAgUEdmFsXwAICQACAQUEZXJyXwYBEF92YWxpZGF0ZVBheW1lbnQECHBheW1lbnRfCGFzc2V0SWRfD3JlcXVpcmVkQW1vdW50XwRlcnJfBAckbWF0Y2gwCAUIcGF5bWVudF8HYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFhBQckbWF0Y2gwAwkBAiE9AgUIYXNzZXRJZF8JANgEAQUBYQkAAgEJAKwCAgUEZXJyXwIHOiBhc3NldAMJAGYCBQ9yZXF1aXJlZEFtb3VudF8IBQhwYXltZW50XwZhbW91bnQJAAIBCQCsAgIFBGVycl8CCDogYW1vdW50BgkAAgEJAKwCAgUEZXJyXwIHOiBhc3NldAEVX3ZhbGlkYXRlTGlzdENvbnRhaW5zAwVsaXN0XwR2YWxfBGVycl8DCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBQVsaXN0XwUEdmFsXwkAAgEFBGVycl8GAQtfYXNzZXRUb1N0cgEGYXNzZXRfBAckbWF0Y2gwBQZhc3NldF8DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkA2AQBBQFhBQVXQVZFUwELX3N0clRvQXNzZXQBBmFzc2V0XwMDCQAAAgUGYXNzZXRfBQVXQVZFUwYJAAACBQZhc3NldF8CAAUEdW5pdAkA2QQBBQZhc3NldF8BCl9sb2FkUGF1c2UABAckbWF0Y2gwCQCgCAEFCktFWV9QQVVTRUQDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAUBYQcBCl9zYXZlUGF1c2UBCWlzUGF1c2VkXwkAzAgCCQEMQm9vbGVhbkVudHJ5AgUKS0VZX1BBVVNFRAUJaXNQYXVzZWRfBQNuaWwBC19sb2FkUGF1c2VyAAQHJG1hdGNoMAkAoggBBQpLRVlfUEFVU0VSAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABC19zYXZlUGF1c2VyAQdwYXVzZXJfCQDMCAIJAQtTdHJpbmdFbnRyeQIFCktFWV9QQVVTRVIJAKUIAQUHcGF1c2VyXwUDbmlsAQ1fbG9hZE11bHRpc2lnAAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVNdWx0aXNpZwEJbXVsdGlzaWdfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9NVUxUSVNJRwkApQgBBQltdWx0aXNpZ18FA25pbAEMX2xvYWRTdG9yYWdlAAQHJG1hdGNoMAkAoggBBQtLRVlfU1RPUkFHRQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAEBnN0cnVjdAkAtQkCBQFhBQNTRVAJAJwKCgkA2QQBCQCRAwIFBnN0cnVjdAAACQAAAgkAkQMCBQZzdHJ1Y3QAAQIBMQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAACCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QABAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAAFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QABwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAAICQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBnN0cnVjdAAJCQCcCgoBAAcAAAAAAAAAAAAAAAAAAAkBB0FkZHJlc3MBAQABDF9zYXZlU3RvcmFnZQEIc3RvcmFnZV8JAMwIAgkBC1N0cmluZ0VudHJ5AgULS0VZX1NUT1JBR0UJALkJAgkAzAgCCQDYBAEIBQhzdG9yYWdlXwJfMQkAzAgCAwgFCHN0b3JhZ2VfAl8yAgExAgEwCQDMCAIJAKQDAQgFCHN0b3JhZ2VfAl8zCQDMCAIJAKQDAQgFCHN0b3JhZ2VfAl80CQDMCAIJAKQDAQgFCHN0b3JhZ2VfAl81CQDMCAIJAKQDAQgFCHN0b3JhZ2VfAl82CQDMCAIJAKQDAQgFCHN0b3JhZ2VfAl83CQDMCAIJAKQDAQgFCHN0b3JhZ2VfAl84CQDMCAIJAKQDAQgFCHN0b3JhZ2VfAl85CQDMCAIJAKUIAQgFCHN0b3JhZ2VfA18xMAUDbmlsBQNTRVAFA25pbAELX2xvYWRBc3NldHMABAckbWF0Y2gwCQCiCAEFCktFWV9BU1NFVFMDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwAwkAZgIJALECAQUBYQAACQC9CQIFAWEFA1NFUAUDbmlsBQNuaWwBC19zYXZlQXNzZXRzAQdhc3NldHNfCQDMCAIJAQtTdHJpbmdFbnRyeQIFCktFWV9BU1NFVFMJALsJAgUHYXNzZXRzXwUDU0VQBQNuaWwBEl9sb2FkQXNzZXRCYWxhbmNlcwAKAQhmb2xkRnVuYwIDYWNjBGVsZW0EB2JhbGFuY2UJAQ1wYXJzZUludFZhbHVlAQUEZWxlbQkAlAoCCQDNCAIIBQNhY2MCXzEFB2JhbGFuY2UJAGQCCAUDYWNjAl8yBQdiYWxhbmNlBAckbWF0Y2gwCQCiCAEFEktFWV9BU1NFVF9CQUxBTkNFUwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDADCQBmAgkAsQIBBQFhAAAKAAIkbAkAvQkCBQFhBQNTRVAKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2Vl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JGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwUDU0VQBQNuaWwBEV9vbmx5VGhpc0NvbnRyYWN0AQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwUEdGhpcwkAAgECGV9vbmx5VGhpc0NvbnRyYWN0OiByZXZlcnQGARBfd2hlbk11bHRpc2lnU2V0AAMJAAACCQENX2xvYWRNdWx0aXNpZwAJAQdBZGRyZXNzAQEACQACAQIYX3doZW5NdWx0aXNpZ1NldDogcmV2ZXJ0BgETX3doZW5Ob3RJbml0aWFsaXplZAAEB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UAAwkBAiE9AggFB3N0b3JhZ2UCXzEBAAkAAgECG193aGVuTm90SW5pdGlhbGl6ZWQ6IHJldmVydAYBEF93aGVuSW5pdGlhbGl6ZWQABAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAMJAAACCAUHc3RvcmFnZQJfMQEACQACAQIYX3doZW5Jbml0aWFsaXplZDogcmV2ZXJ0BgEOX3doZW5Ob3RQYXVzZWQAAwkBCl9sb2FkUGF1c2UACQACAQIWX3doZW5Ob3RQYXVzZWQ6IHJldmVydAYBC193aGVuUGF1c2VkAAMJAQEhAQkBCl9sb2FkUGF1c2UACQACAQITX3doZW5QYXVzZWQ6IHJldmVydAYBC19vbmx5UGF1c2VyAQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwkBC19sb2FkUGF1c2VyAAkAAgECE19vbmx5UGF1c2VyOiByZXZlcnQGAQxfZ2V0RGVjaW1hbHMBCGFzc2V0SWRfBAckbWF0Y2gwCQDsBwEJANkEAQUIYXNzZXRJZF8DCQABAgUHJG1hdGNoMAIFQXNzZXQEAWEFByRtYXRjaDAIBQFhCGRlY2ltYWxzCQACAQkArAICAhdfZ2V0RGVjaW1hbHM6IG5vIGFzc2V0PQUIYXNzZXRJZF8BEl9ub3JtYWxpemVEZWNpbWFscwQHYW1vdW50Xw9zb3VyY2VEZWNpbWFsc18PdGFyZ2V0RGVjaW1hbHNfBnJvdW5kXwMJAGcCBQ9zb3VyY2VEZWNpbWFsc18F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dW50c18KAQhmb2xkRnVuYwIDYWNjBGVsZW0EBWluZGV4CAUDYWNjAl8xBAZhbW91bnQJAJEDAgUIYW1vdW50c18FBWluZGV4BApuZXdCYWxhbmNlCQBkAgUEZWxlbQUGYW1vdW50CQCVCgMJAGQCBQVpbmRleAABCQDNCAIIBQNhY2MCXzIFCm5ld0JhbGFuY2UJAGQCCAUDYWNjAl8zBQpuZXdCYWxhbmNlBAZyZXN1bHQKAAIkbAUJYmFsYW5jZXNfCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlQoDAAAFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgkAlAoCCAUGcmVzdWx0Al8yCAUGcmVzdWx0Al8zARxfaW5jcmVtZW50QmFsYW5jZXNCeVBheW1lbnRzBQliYWxhbmNlc18JcGF5bWVudHNfB2Fzc2V0c18JZGVjaW1hbHNfBGVycl8KAQhmb2xkRnVuYwIDYWNjBGVsZW0EBWluZGV4CAUDYWNjAl8xBAdwYXltZW50CQCRAwIFCXBheW1lbnRzXwUFaW5kZXgED3BheW1lbnRBc3NldFN0cgkBC19hc3NldFRvU3RyAQgFB3BheW1lbnQHYXNzZXRJZAQDZXJyAwkBAiE9AgUPcGF5bWVudEFzc2V0U3RyCQCRAwIFB2Fzc2V0c18FBWluZGV4CQACAQkArAICCQCsAgIFBGVycl8CCDogaW5kZXg9CQCkAwEFBWluZGV4BQR1bml0AwkAAAIFA2VycgUDZXJyBA1hc3NldERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQUPcGF5bWVudEFzc2V0U3RyBApuZXdCYWxhbmNlCQBkAgUEZWxlbQkBEl9ub3JtYWxpemVEZWNp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AQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACggFBnJlc3VsdAJfMgESX2NhbGN1bGF0ZU1pY3JvRmVlBQhiYWxhbmNlXwxlcXVpbGlicml1bV8Qd2VpZ2h0QW1wbGlmaWVyXw1zbGlwcGFnZVJhdGVfC2ZlZU1heFJhdGVfAwkAZgIFDGVxdWlsaWJyaXVtXwUIYmFsYW5jZV8ECXRocmVzaG9sZAkAawMFDGVxdWlsaWJyaXVtXwkAZQIFFE1BWF9XRUlHSFRfQU1QTElGSUVSBRB3ZWlnaHRBbXBsaWZpZXJfBRRNQVhfV0VJR0hUX0FNUExJRklFUgMJAGYCBQl0aHJlc2hvbGQFCGJhbGFuY2VfBAxtYXhEZXZpYXRpb24JAGUCBQl0aHJlc2hvbGQFCGJhbGFuY2VfBAdmZWVSYXRlCQBrAwkAawMFDG1heERldmlhdGlvbgUNc2xpcHBhZ2VSYXRlXwUUU0xJUFBBR0VfUkFURV9GQUNUT1IFD0ZFRV9SQVRFX0ZBQ1RPUgUMZXF1aWxpYnJpdW1fAwkAZgIFB2ZlZVJhdGUFC2ZlZU1heFJhdGVfCQBrAwUMbWF4RGV2aWF0aW9uBQtmZWVNYXhSYXRlXwUPRkVFX1JBVEVfRkFDVE9SCQBrAwUMbWF4RGV2aWF0aW9uBQdmZWVSYXRlBQ9GRUVfUkFURV9GQUNUT1IAAAQJdGhyZXNob2xkCQBrAwUMZXF1aWxpYnJpdW1fCQBkAgUUTUFYX1dFSUdIVF9BTVBMSUZJRVIFEHdlaWdodEFtcGxpZmllcl8FFE1BWF9XRUlHSFRfQU1QTElGSUVSAwkAZgIFCGJhbGFuY2VfBQl0aHJlc2hvbGQEDG1heERldmlhdGlvbgkAZQIFCGJhbGFuY2VfBQl0aHJlc2hvbGQEB2ZlZVJhdGUJAGsDCQBrAwUMbWF4RGV2aWF0aW9uBQ1zbGlwcGFnZVJhdGVfBRRTTElQUEFHRV9SQVRFX0ZBQ1RPUgUPRkVFX1JBVEVfRkFDVE9SBQxlcXVpbGlicml1bV8DCQBmAgUHZmVlUmF0ZQULZmVlTWF4UmF0ZV8JAGsDBQxtYXhEZXZpYXRpb24FC2ZlZU1heFJhdGVfBQ9GRUVfUkFURV9GQUNUT1IJAGsDBQxtYXhEZXZpYXRpb24FB2ZlZVJhdGUFD0ZFRV9SQVRFX0ZBQ1RPUgAAAQ1fY2FsY3VsYXRlRmVlBwliYWxhbmNlc18SYXNzZXRzVG90YWxTdXBwbHlfCHdlaWdodHNfDHNpZ21hV2VpZ2h0XxB3ZWlnaHRBbXBsaWZpZXJfDXNsaXBwYWdlUmF0ZV8LZmVlTWF4UmF0ZV8KAQhmb2xkRnVuYwIDYWNjB2JhbGFuY2UEBWluZGV4CAUDYWNjAl8xBAtlcXVpbGlicml1bQkAawMFEmFzc2V0c1RvdGFsU3VwcGx5XwkAkQMCBQh3ZWlnaHRzXwUFaW5kZXgFDHNpZ21hV2VpZ2h0XwkAlAoCCQBkAgUFaW5kZXgAAQkAZAIIBQNhY2MCXzIJARJfY2FsY3VsYXRlTWljcm9GZWUFBQdiYWxhbmNlBQtlcXVpbGlicml1bQUQd2VpZ2h0QW1wbGlmaWVyXwUNc2xpcHBhZ2VSYXRlXwULZmVlTWF4UmF0ZV8EBnJlc3VsdAoAAiRsBQliYWxhbmNlc18KAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIAAAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACggFBnJlc3VsdAJfMgEbX3ZhbGlkYXRlTGlxdWlkaXR5SW52YXJpYW50CxJwcmV2QXNzZXRCYWxhbmNlc18VcHJldkFzc2V0VG90YWxTdXBwbHlfDmFzc2V0QmFsYW5jZXNfEWFzc2V0VG90YWxTdXBwbHlfEnByZXZMcFRvdGFsU3VwcGx5Xw5scFRvdGFsU3VwcGx5Xw1hc3NldFdlaWdodHNfDHNpZ21hV2VpZ2h0XxB3ZWlnaHRBbXBsaWZpZXJfDXNsaXBwYWdlUmF0ZV8LZmVlTWF4UmF0ZV8DAwkAAAIFEnByZXZMcFRvdGFsU3VwcGx5XwAABgkAAAIFDmxwVG90YWxTdXBwbHlfAAAGBA5wcmV2QXNzZXRzUmF0ZQkAawMJAGUCBRVwcmV2QXNzZXRUb3RhbFN1cHBseV8JAQ1fY2FsY3VsYXRlRmVlBwUScHJldkFzc2V0QmFsYW5jZXNfBRVwcmV2QXNzZXRUb3RhbFN1cHBseV8FDWFzc2V0V2VpZ2h0c18FDHNpZ21hV2VpZ2h0XwUQd2VpZ2h0QW1wbGlmaWVyXwUNc2xpcHBhZ2VSYXRlXwULZmVlTWF4UmF0ZV8FC1JBVEVfRkFDVE9SBRJwcmV2THBUb3RhbFN1cHBseV8EDW5ld0Fzc2V0c1JhdGUJAGsDCQBlAgURYXNzZXRUb3RhbFN1cHBseV8JAQ1fY2FsY3VsYXRlRmVlBwUOYXNzZXRCYWxhbmNlc18FEWFzc2V0VG90YWxTdXBwbHlfBQ1hc3NldFdlaWdodHNfBQxzaWdtYVdlaWdodF8FEHdlaWdodEFtcGxpZmllcl8FDXNsaXBwYWdlUmF0ZV8FC2ZlZU1heFJhdGVfBQtSQVRFX0ZBQ1RPUgUObHBUb3RhbFN1cHBseV8EBGRpZmYJAGUCBQ1uZXdBc3NldHNSYXRlBQ5wcmV2QXNzZXRzUmF0ZQMDCQBnAgAABQRkaWZmCQBmAgkAaAIA////////////AQkBDl9sb2FkUHJlY2lzaW9uAAUEZGlmZgcJAAIBCQCsAgICKl92YWxpZGF0ZUxpcXVpZGl0eUludmFyaWFudDogcmV2ZXJ0OiBkaWZmPQkApAMBBQRkaWZmBgEWX3ZhbGlkYXRlU3dhcEludmFyaWFudAkScHJldkFzc2V0QmFsYW5jZXNfFXByZXZBc3NldFRvdGFsU3VwcGx5Xw5hc3NldEJhbGFuY2VzXxFhc3NldFRvdGFsU3VwcGx5Xw1hc3NldFdlaWdodHNfDHNpZ21hV2VpZ2h0XxB3ZWlnaHRBbXBsaWZpZXJfDXNsaXBwYWdlUmF0ZV8LZmVlTWF4UmF0ZV8ECHByZXZVdGlsCQBlAgUVcHJldkFzc2V0VG90YWxTdXBwbHlfCQENX2NhbGN1bGF0ZUZlZQcFEnByZXZBc3NldEJhbGFuY2VzXwUVcHJldkFzc2V0VG90YWxTdXBwbHlfBQ1hc3NldFdlaWdodHNfBQxzaWdtYVdlaWdodF8FEHdlaWdodEFtcGxpZmllcl8FDXNsaXBwYWdlUmF0ZV8FC2ZlZU1heFJhdGVfBAduZXdVdGlsCQBlAgURYXNzZXRUb3RhbFN1cHBseV8JAQ1fY2FsY3VsYXRlRmVlBwUOYXNzZXRCYWxhbmNlc18FEWFzc2V0VG90YWxTdXBwbHlfBQ1hc3NldFdlaWdodHNfBQxzaWdtYVdlaWdodF8FEHdlaWdodEFtcGxpZmllcl8FDXNsaXBwYWdlUmF0ZV8FC2ZlZU1heFJhdGVfBARkaWZmCQBlAgUHbmV3VXRpbAUIcHJldlV0aWwDAwkAZwIAAAUEZGlmZgkAZgIJAGgCAP///////////wEJAQ5fbG9hZFByZWNpc2lvbgAFBGRpZmYHCQACAQkArAICAiVfdmFsaWRhdGVTd2FwSW52YXJpYW50OiByZXZlcnQ6IGRpZmY9CQCkAwEFBGRpZmYGARhfdmFsaWRhdGVBc3NldEFsbG9jYXRpb24HCGJhbGFuY2VfEWFzc2V0VG90YWxTdXBwbHlfDHByZXZCYWxhbmNlXxVwcmV2QXNzZXRUb3RhbFN1cHBseV8Hd2VpZ2h0XwxzaWdtYVdlaWdodF8MbWF4QWxsb2NBbXBfBAtlcXVpbGlicml1bQkAawMFEWFzc2V0VG90YWxTdXBwbHlfBQd3ZWlnaHRfBQxzaWdtYVdlaWdodF8EEG1heEFsbG9jYXRpb25BbXADCQBmAgUIYmFsYW5jZV8FC2VxdWlsaWJyaXVtCQBkAgUNTUFYX0FNUExJRklFUgUMbWF4QWxsb2NBbXBfCQBlAgUNTUFYX0FNUExJRklFUgUMbWF4QWxsb2NBbXBfBA1tYXhBbGxvY2F0aW9uCQBrAwULZXF1aWxpYnJpdW0FEG1heEFsbG9jYXRpb25BbXAFDU1BWF9BTVBMSUZJRVIEEXByZXZNYXhBbGxvY2F0aW9uCQBrAwkAawMFFXByZXZBc3NldFRvdGFsU3VwcGx5XwUHd2VpZ2h0XwUMc2lnbWFXZWlnaHRfBRBtYXhBbGxvY2F0aW9uQW1wBQ1NQVhfQU1QTElGSUVSAwkAZgIFCGJhbGFuY2VfBQtlcXVpbGlicml1bQMJAGYCBQhiYWxhbmNlXwUNbWF4QWxsb2NhdGlvbgMJAGYCBRFwcmV2TWF4QWxsb2NhdGlvbgUMcHJldkJhbGFuY2VfCQACAQIgX3ZhbGlkYXRlQXNzZXRBbGxvY2F0aW9uOiBuZXcgdXADCQBmAgkAZQIFCGJhbGFuY2VfBQ1tYXhBbGxvY2F0aW9uCQBlAgUMcHJldkJhbGFuY2VfBRFwcmV2TWF4QWxsb2NhdGlvbgkAAgECIl92YWxpZGF0ZUFzc2V0QWxsb2NhdGlvbjogc3RpbGwgdXAGBgMJAGYCBQ1tYXhBbGxvY2F0aW9uBQhiYWxhbmNlXwMJAGYCBQxwcmV2QmFsYW5jZV8FEXByZXZNYXhBbGxvY2F0aW9uCQACAQIiX3ZhbGlkYXRlQXNzZXRBbGxvY2F0aW9uOiBuZXcgZG93bgMJAGYCCQBlAgUNbWF4QWxsb2NhdGlvbgUIYmFsYW5jZV8JAGUCBRFwcmV2TWF4QWxsb2NhdGlvbgUMcHJldkJhbGFuY2VfCQACAQIkX3ZhbGlkYXRlQXNzZXRBbGxvY2F0aW9uOiBzdGlsbCBkb3duBgYBE192YWxpZGF0ZUFsbG9jYXRpb24HDmFzc2V0QmFsYW5jZXNfEWFzc2V0VG90YWxTdXBwbHlfEnByZXZBc3NldEJhbGFuY2VzXxVwcmV2QXNzZXRUb3RhbFN1cHBseV8NYXNzZXRXZWlnaHRzXwxzaWdtYVdlaWdodF8MbWF4QWxsb2NBbXBfCgEIZm9sZEZ1bmMCA2FjYwRlbGVtBAVpbmRleAgFA2FjYwJfMQkAlAoCCQBkAgUFaW5kZXgAAQMIBQNhY2MCXzIJARhfdmFsaWRhdGVBc3NldEFsbG9jYXRpb24HBQRlbGVtBRFhc3NldFRvdGFsU3VwcGx5XwkAkQMCBRJwcmV2QXNzZXRCYWxhbmNlc18FBWluZGV4BRVwcmV2QXNzZXRUb3RhbFN1cHBseV8JAJEDAgUNYXNzZXRXZWlnaHRzXwUFaW5kZXgFDHNpZ21hV2VpZ2h0XwUMbWF4QWxsb2NBbXBfBwQGcmVzdWx0CgACJGwFDmFzc2V0QmFsYW5jZXNfCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCAAAGCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACggFBnJlc3VsdAJfMgELX2NoZWNrcG9pbnQBBXVzZXJfBAZ1c2VyTHAJAQtfbG9hZFVzZXJMcAEFBXVzZXJfBAt1c2VyUHJvZml0cwkBEF9sb2FkVXNlclByb2ZpdHMBBQV1c2VyXwQNc2lnbWFGZWVQZXJMcAkBEl9sb2FkU2lnbWFGZWVQZXJMcAAEEXVzZXJTaWdtYUZlZVBlckxwCQEWX2xvYWRVc2VyU2lnbWFGZWVQZXJMcAEFBXVzZXJfCgEIZm9sZEZ1bmMCA2FjYwRlbGVtBAVpbmRleAgFA2FjYwJfMQQNcHJvZml0VXBkYXRlZAkAZAIJAJEDAgULdXNlclByb2ZpdHMFBWluZGV4CQCgAwEJALwCAwkAtgIBBQZ1c2VyTHAJALgCAgkAkQMCBQ1zaWdtYUZlZVBlckxwBQVpbmRleAkAkQMCBRF1c2VyU2lnbWFGZWVQZXJMcAUFaW5kZXgFDlBFUkNFTlRfRkFDVE9SCQCUCgIJAGQCBQVpbmRleAABCQDNCAIIBQNhY2MCXzIFDXByb2ZpdFVwZGF0ZWQEDSR0MDI0NjA1MjQ2NzgKAAIkbAUQWkVST19JTlRfTElTVF8xMQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsEA2lkeAgFDSR0MDI0NjA1MjQ2NzgCXzEEDnByb2ZpdHNVcGRhdGVkCAUNJHQwMjQ2MDUyNDY3OAJfMgkAlAoCCQDOCAIJARBfc2F2ZVVzZXJQcm9maXRzAgUFdXNlcl8FDnByb2ZpdHNVcGRhdGVkCQEWX3NhdmVVc2VyU2lnbWFGZWVQZXJMcAIFBXVzZXJfBQ1zaWdtYUZlZVBlckxwBQ5wcm9maXRzVXBkYXRlZAEUX3VwZGF0ZVNpZ21hRmVlUGVyTHAEDnNpZ21hRmVlUGVyTHBfCHRvdGFsTHBfBmluZGV4XwZscEZlZV8KAQhmb2xkRnVuYwIDYWNjBGVsZW0EBWluZGV4CAUDYWNjAl8xBBRzaWdtYUZlZVBlckxwVXBkYXRlZAMJAAACBQZpbmRleF8FBWluZGV4CQC3AgIJAJEDAgUOc2lnbWFGZWVQZXJMcF8FBWluZGV4CQC8AgMJALYCAQUGbHBGZWVfBQ5QRVJDRU5UX0ZBQ1RPUgkAtgIBBQh0b3RhbExwXwkAkQMCBQ5zaWdtYUZlZVBlckxwXwUFaW5kZXgJAJQKAgkAZAIFBWluZGV4AAEJAM0IAggFA2FjYwJfMgUUc2lnbWFGZWVQZXJMcFVwZGF0ZWQEDSR0MDI1MzI4MjU0MDcKAAIkbAUQWkVST19JTlRfTElTVF8xMQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsEA2lkeAgFDSR0MDI1MzI4MjU0MDcCXzEEFHNpZ21hRmVlUGVyTHBVcGRhdGVkCAUNJHQwMjUzMjgyNTQwNwJfMgUUc2lnbWFGZWVQZXJMcFVwZGF0ZWQBG19jYWxjdWxhdGVMcEFuZFByb3RvY29sRmVlcwQLYXNzZXRJbmRleF8HYW1vdW50XwpscEZlZVJhdGVfEHByb3RvY29sRmVlUmF0ZV8EDXNpZ21hRmVlUGVyTHAJARJfbG9hZFNpZ21hRmVlUGVyTHAABAd0b3RhbExwCQEMX2xvYWRUb3RhbExwAAQNJHQwMjU2MjgyNTkwMwMJAAACBQd0b3RhbExwAAAJAJQKAgAACQBrAwUHYW1vdW50XwUQcHJvdG9jb2xGZWVSYXRlXwUHTUFYX0ZFRQkAlAoCCQBrAwUHYW1vdW50XwUKbHBGZWVSYXRlXwUHTUFYX0ZFRQkAawMFB2Ftb3VudF8FEHByb3RvY29sRmVlUmF0ZV8FB01BWF9GRUUEBWxwRmVlCAUNJHQwMjU2MjgyNTkwMwJfMQQLcHJvdG9jb2xGZWUIBQ0kdDAyNTYyODI1OTAzAl8yBBRzaWdtYUZlZVBlckxwVXBkYXRlZAMJAAACBQVscEZlZQAABQ1zaWdtYUZlZVBlckxwCQEUX3VwZGF0ZVNpZ21hRmVlUGVyTHAEBQ1zaWdtYUZlZVBlckxwBQd0b3RhbExwBQthc3NldEluZGV4XwUFbHBGZWUJAJUKAwUFbHBGZWUFC3Byb3RvY29sRmVlBRRzaWdtYUZlZVBlckxwVXBkYXRlZAELX2RlcG9zaXRBbGwBB2Ftb3VudF8EB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UABA1scFRvdGFsU3VwcGx5CAUHc3RvcmFnZQJfMwQPd2VpZ2h0QW1wbGlmaWVyCAUHc3RvcmFnZQJfNwQMc2xpcHBhZ2VSYXRlCAUHc3RvcmFnZQJfOAQKZmVlTWF4UmF0ZQgFB3N0b3JhZ2UCXzkEBmFzc2V0cwkBC19sb2FkQXNzZXRzAAQNJHQwMjY0MTIyNjQ2NQkBEV9sb2FkQXNzZXRXZWlnaHRzAAQMYXNzZXRXZWlnaHRzCAUNJHQwMjY0MTIyNjQ2NQJfMQQLc2lnbWFXZWlnaHQIBQ0kdDAyNjQxMjI2NDY1Al8yBA0kdDAyNjQ3MDI2NTM4CQESX2xvYWRBc3NldEJhbGFuY2VzAAQRcHJldkFzc2V0QmFsYW5jZXMIBQ0kdDAyNjQ3MDI2NTM4Al8xBBRwcmV2QXNzZXRUb3RhbFN1cHBseQgFDSR0MDI2NDcwMjY1MzgCXzIEDSR0MDI2NTQ0Mjc3NzQDCQAAAgUUcHJldkFzc2V0VG90YWxTdXBwbHkAAAoBCGZvbGRGdW5jAgNhY2MEZWxlbQQFaW5kZXgIBQNhY2MCXzEEGHJlcXVpcmVkQW1vdW50Tm9ybWFsaXplZAkAawMJAJEDAgUMYXNzZXRXZWlnaHRzBQVpbmRleAUHYW1vdW50XwULc2lnbWFXZWlnaHQJAJQKAgkAZAIFBWluZGV4AAEJAM0IAggFA2FjYwJfMgUYcmVxdWlyZWRBbW91bnROb3JtYWxpemVkBA0kdDAyNjk4NjI3MDYwCgACJGwFBmFzc2V0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBANpZHgIBQ0kdDAyNjk4NjI3MDYwAl8xBBlyZXF1aXJlZEFtb3VudHNOb3JtYWxpemVkCAUNJHQwMjY5ODYyNzA2MAJfMgkAlAoCBQdhbW91bnRfBRlyZXF1aXJlZEFtb3VudHNOb3JtYWxpemVkBAVyYXRpbwkAvAIDCQC2AgEFB2Ftb3VudF8FDlBFUkNFTlRfRkFDVE9SCQC2AgEFFHByZXZBc3NldFRvdGFsU3VwcGx5CgEJZm9sZEZ1bmMxAgNhY2MEZWxlbQQFaW5kZXgIBQNhY2MCXzEEGHJlcXVpcmVkQW1vdW50Tm9ybWFsaXplZAkAoAMBCQC8AgMFBXJhdGlvCQC2AgEJAJEDAgURcHJldkFzc2V0QmFsYW5jZXMFBWluZGV4BQ5QRVJDRU5UX0ZBQ1RPUgkAlAoCCQBkAgUFaW5kZXgAAQkAzQgCCAUDYWNjAl8yBRhyZXF1aXJlZEFtb3VudE5vcm1hbGl6ZWQEDSR0MDI3NjAzMjc2NzgKAAIkbAUGYXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCAAAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEJZm9sZEZ1bmMxAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBANpZHgIBQ0kdDAyNzYwMzI3Njc4Al8xBBlyZXF1aXJlZEFtb3VudHNOb3JtYWxpemVkCAUNJHQwMjc2MDMyNzY3OAJfMgkAlAoCCQBrAwUHYW1vdW50XwUNbHBUb3RhbFN1cHBseQUUcHJldkFzc2V0VG90YWxTdXBwbHkFGXJlcXVpcmVkQW1vdW50c05vcm1hbGl6ZWQEDmxwVG9rZW5zVG9NaW50CAUNJHQwMjY1NDQyNzc3NAJfMQQZcmVxdWlyZWRBbW91bnRzTm9ybWFsaXplZAgFDSR0MDI2NTQ0Mjc3NzQCXzIEDSR0MDI3NzgwMjc4OTMJARtfaW5jcmVtZW50QmFsYW5jZXNCeUFtb3VudHMCBRFwcmV2QXNzZXRCYWxhbmNlcwUZcmVxdWlyZWRBbW91bnRzTm9ybWFsaXplZAQNYXNzZXRCYWxhbmNlcwgFDSR0MDI3NzgwMjc4OTMCXzEEEGFzc2V0VG90YWxTdXBwbHkIBQ0kdDAyNzc4MDI3ODkzAl8yBARlcnIyCQEbX3ZhbGlkYXRlTGlxdWlkaXR5SW52YXJpYW50CwURcHJldkFzc2V0QmFsYW5jZXMFFHByZXZBc3NldFRvdGFsU3VwcGx5BQ1hc3NldEJhbGFuY2VzBRBhc3NldFRvdGFsU3VwcGx5BQ1scFRvdGFsU3VwcGx5CQBkAgUNbHBUb3RhbFN1cHBseQUObHBUb2tlbnNUb01pbnQFDGFzc2V0V2VpZ2h0cwULc2lnbWFXZWlnaHQFD3dlaWdodEFtcGxpZmllcgUMc2xpcHBhZ2VSYXRlBQpmZWVNYXhSYXRlAwkAAAIFBGVycjIFBGVycjIJAJUKAwUObHBUb2tlbnNUb01pbnQFGXJlcXVpcmVkQW1vdW50c05vcm1hbGl6ZWQFDWFzc2V0QmFsYW5jZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BCF9kZXBvc2l0Aghhc3NldElkXwdhbW91bnRfBAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQNbHBUb3RhbFN1cHBseQgFB3N0b3JhZ2UCXzMECWxwRmVlUmF0ZQgFB3N0b3JhZ2UCXzQED3Byb3RvY29sRmVlUmF0ZQgFB3N0b3JhZ2UCXzUEEW1heEFsbG9jQW1wbGlmaWVyCAUHc3RvcmFnZQJfNgQPd2VpZ2h0QW1wbGlmaWVyCAUHc3RvcmFnZQJfNwQMc2xpcHBhZ2VSYXRlCAUHc3RvcmFnZQJfOAQKZmVlTWF4UmF0ZQgFB3N0b3JhZ2UCXzkEBmFzc2V0cwkBC19sb2FkQXNzZXRzAAQNJHQwMjg2NTYyODcwOQkBEV9sb2FkQXNzZXRXZWlnaHRzAAQMYXNzZXRXZWlnaHRzCAUNJHQwMjg2NTYyODcwOQJfMQQLc2lnbWFXZWlnaHQIBQ0kdDAyODY1NjI4NzA5Al8yBA0kdDAyODcxNDI4ODI4CQESX2xvYWRBc3NldEJhbGFuY2VzAAQRcHJldkFzc2V0QmFsYW5jZXMIBQ0kdDAyODcxNDI4ODI4Al8xBBRwcmV2QXNzZXRUb3RhbFN1cHBseQgFDSR0MDI4NzE0Mjg4MjgCXzIEDWFzc2V0QmFsYW5jZXMJARhfaW5jcmVtZW50QmFsYW5jZUJ5SW5kZXgDBRFwcmV2QXNzZXRCYWxhbmNlcwkBBXZhbHVlAQkAzwgCBQZhc3NldHMFCGFzc2V0SWRfBQdhbW91bnRfBBBhc3NldFRvdGFsU3VwcGx5CQBkAgUUcHJldkFzc2V0VG90YWxTdXBwbHkFB2Ftb3VudF8EBGVycjIJARNfdmFsaWRhdGVBbGxvY2F0aW9uBwUNYXNzZXRCYWxhbmNlcwUQYXNzZXRUb3RhbFN1cHBseQURcHJldkFzc2V0QmFsYW5jZXMFFHByZXZBc3NldFRvdGFsU3VwcGx5BQxhc3NldFdlaWdodHMFC3NpZ21hV2VpZ2h0BRFtYXhBbGxvY0FtcGxpZmllcgMJAAACBQRlcnIyBQRlcnIyBAdwcmV2RmVlCQENX2NhbGN1bGF0ZUZlZQcFEXByZXZBc3NldEJhbGFuY2VzBRRwcmV2QXNzZXRUb3RhbFN1cHBseQUMYXNzZXRXZWlnaHRzBQtzaWdtYVdlaWdodAUPd2VpZ2h0QW1wbGlmaWVyBQxzbGlwcGFnZVJhdGUFCmZlZU1heFJhdGUEA2ZlZQkBDV9jYWxjdWxhdGVGZWUHBQ1hc3NldEJhbGFuY2VzBRBhc3NldFRvdGFsU3VwcGx5BQxhc3NldFdlaWdodHMFC3NpZ21hV2VpZ2h0BQ93ZWlnaHRBbXBsaWZpZXIFDHNsaXBwYWdlUmF0ZQUKZmVlTWF4UmF0ZQQObHBUb2tlbnNUb01pbnQDCQAAAgUNbHBUb3RhbFN1cHBseQAACQACAQIUX2RlcG9zaXQ6IGVtcHR5IHBvb2wECWFzc2V0RGlmZgkAZQIFEGFzc2V0VG90YWxTdXBwbHkFFHByZXZBc3NldFRvdGFsU3VwcGx5BAdmZWVEaWZmCQBlAgUDZmVlBQdwcmV2RmVlBBN1dGlsaXR5Q2hhbmdlRmFjdG9yCQBrAwkAZQIFCWFzc2V0RGlmZgUHZmVlRGlmZgULUkFURV9GQUNUT1IJAGUCBRRwcmV2QXNzZXRUb3RhbFN1cHBseQUHcHJldkZlZQQTbHBUb2tlbnNUb01pbnRJbm5lcgkAawMFDWxwVG90YWxTdXBwbHkFE3V0aWxpdHlDaGFuZ2VGYWN0b3IFC1JBVEVfRkFDVE9SBARlcnIzCQEbX3ZhbGlkYXRlTGlxdWlkaXR5SW52YXJpYW50CwURcHJldkFzc2V0QmFsYW5jZXMFFHByZXZBc3NldFRvdGFsU3VwcGx5BQ1hc3NldEJhbGFuY2VzBRBhc3NldFRvdGFsU3VwcGx5BQ1scFRvdGFsU3VwcGx5CQBkAgUNbHBUb3RhbFN1cHBseQUTbHBUb2tlbnNUb01pbnRJbm5lcgUMYXNzZXRXZWlnaHRzBQtzaWdtYVdlaWdodAUPd2VpZ2h0QW1wbGlmaWVyBQxzbGlwcGFnZVJhdGUFCmZlZU1heFJhdGUDCQAAAgUEZXJyMwUEZXJyMwUTbHBUb2tlbnNUb01pbnRJbm5lcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQNJHQwMzA0OTAzMDYyMQkBG19jYWxjdWxhdGVMcEFuZFByb3RvY29sRmVlcwQAAAUObHBUb2tlbnNUb01pbnQJAGkCBQlscEZlZVJhdGUAAgkAaQIFD3Byb3RvY29sRmVlUmF0ZQACBAVscEZlZQgFDSR0MDMwNDkwMzA2MjECXzEEC3Byb3RvY29sRmVlCAUNJHQwMzA0OTAzMDYyMQJfMgQUc2lnbWFGZWVQZXJMcFVwZGF0ZWQIBQ0kdDAzMDQ5MDMwNjIxAl8zCQCXCgUFDmxwVG9rZW5zVG9NaW50BQ1hc3NldEJhbGFuY2VzBQVscEZlZQULcHJvdG9jb2xGZWUFFHNpZ21hRmVlUGVyTHBVcGRhdGVkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQxfd2l0aGRyYXdBbGwBB2Ftb3VudF8EB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UABA1scFRvdGFsU3VwcGx5CAUHc3RvcmFnZQJfMwQRbWF4QWxsb2NBbXBsaWZpZXIIBQdzdG9yYWdlAl82BA93ZWlnaHRBbXBsaWZpZXIIBQdzdG9yYWdlAl83BAxzbGlwcGFnZVJhdGUIBQdzdG9yYWdlAl84BApmZWVNYXhSYXRlCAUHc3RvcmFnZQJfOQQNJHQwMzA5NTUzMTAyMwkBEl9sb2FkQXNzZXRCYWxhbmNlcwAEEXByZXZBc3NldEJhbGFuY2VzCAUNJHQwMzA5NTUzMTAyMwJfMQQUcHJldkFzc2V0VG90YWxTdXBwbHkIBQ0kdDAzMDk1NTMxMDIzAl8yBA0kdDAzMTAyODMxMDgxCQERX2xvYWRBc3NldFdlaWdodHMABAxhc3NldFdlaWdodHMIBQ0kdDAzMTAyODMxMDgxAl8xBAtzaWdtYVdlaWdodAgFDSR0MDMxMDI4MzEwODECXzIEDmxwVG9rZW5zVG9CdXJuBQdhbW91bnRfBANlcnIJAQxfdmFsaWRhdGVJbnQEBQ5scFRva2Vuc1RvQnVybgAABQdNQVhfSU5UAihfd2l0aGRyYXdBbGw6IGxwVG9rZW5zVG9CdXJuIGxlc3MgdGhhbiAwAwkAAAIFA2VycgUDZXJyBA0kdDAzMTIyMzMxMzU2CQEcX2RlY3JlbWVudEJhbGFuY2VzQnlMcEFtb3VudAMFEXByZXZBc3NldEJhbGFuY2VzBQ5scFRva2Vuc1RvQnVybgUNbHBUb3RhbFN1cHBseQQNYXNzZXRCYWxhbmNlcwgFDSR0MDMxMjIzMzEzNTYCXzEEEGFzc2V0VG90YWxTdXBwbHkIBQ0kdDAzMTIyMzMxMzU2Al8yBA1iYWxhbmNlc1RvUGF5CAUNJHQwMzEyMjMzMTM1NgJfMwQEZXJyMgkBG192YWxpZGF0ZUxpcXVpZGl0eUludmFyaWFudAsFEXByZXZBc3NldEJhbGFuY2VzBRRwcmV2QXNzZXRUb3RhbFN1cHBseQUNYXNzZXRCYWxhbmNlcwUQYXNzZXRUb3RhbFN1cHBseQUNbHBUb3RhbFN1cHBseQkAZQIFDWxwVG90YWxTdXBwbHkFDmxwVG9rZW5zVG9CdXJuBQxhc3NldFdlaWdodHMFC3NpZ21hV2VpZ2h0BQ93ZWlnaHRBbXBsaWZpZXIFDHNsaXBwYWdlUmF0ZQUKZmVlTWF4UmF0ZQMJAAACBQRlcnIyBQRlcnIyCQCVCgMFDmxwVG9rZW5zVG9CdXJuBQ1iYWxhbmNlc1RvUGF5BQ1hc3NldEJhbGFuY2VzCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQlfd2l0aGRyYXcCCGFzc2V0SWRfCWxwQW1vdW50XwQHc3RvcmFnZQkBDF9sb2FkU3RvcmFnZQAEDWxwVG90YWxTdXBwbHkIBQdzdG9yYWdlAl8zBAlscEZlZVJhdGUIBQdzdG9yYWdlAl80BA9wcm90b2NvbEZlZVJhdGUIBQdzdG9yYWdlAl81BBFtYXhBbGxvY0FtcGxpZmllcggFB3N0b3JhZ2UCXzYED3dlaWdodEFtcGxpZmllcggFB3N0b3JhZ2UCXzcEDHNsaXBwYWdlUmF0ZQgFB3N0b3JhZ2UCXzgECmZlZU1heFJhdGUIBQdzdG9yYWdlAl85BAlwcmVjaXNpb24JAQ5fbG9hZFByZWNpc2lvbgAEBmFzc2V0cwkBC19sb2FkQXNzZXRzAAQNJHQwMzIxNDgzMjIxNgkBEl9sb2FkQXNzZXRCYWxhbmNlcwAEEXByZXZBc3NldEJhbGFuY2VzCAUNJHQwMzIxNDgzMjIxNgJfMQQUcHJldkFzc2V0VG90YWxTdXBwbHkIBQ0kdDAzMjE0ODMyMjE2Al8yBA0kdDAzMjIyMTMyMjc0CQERX2xvYWRBc3NldFdlaWdodHMABAxhc3NldFdlaWdodHMIBQ0kdDAzMjIyMTMyMjc0Al8xBAtzaWdtYVdlaWdodAgFDSR0MDMyMjIxMzIyNzQCXzIEEHRhcmdldEFzc2V0SW5kZXgJAQV2YWx1ZQEJAM8IAgUGYXNzZXRzBQhhc3NldElkXwQHcHJldkZlZQkBDV9jYWxjdWxhdGVGZWUHBRFwcmV2QXNzZXRCYWxhbmNlcwUUcHJldkFzc2V0VG90YWxTdXBwbHkFDGFzc2V0V2VpZ2h0cwULc2lnbWFXZWlnaHQFD3dlaWdodEFtcGxpZmllcgUMc2xpcHBhZ2VSYXRlBQpmZWVNYXhSYXRlBA1wcmV2VXRpbFZhbHVlCQBlAgUUcHJldkFzc2V0VG90YWxTdXBwbHkFB3ByZXZGZWUEAWsJALwCAwkAtgIBCQBlAgUNbHBUb3RhbFN1cHBseQUJbHBBbW91bnRfBQ5QRVJDRU5UX0ZBQ1RPUgkAtgIBBQ1scFRvdGFsU3VwcGx5BBJwcmV2VXRpbFZhbHVlV2l0aEsJAKADAQkAvAIDCQC2AgEFDXByZXZVdGlsVmFsdWUFAWsFDlBFUkNFTlRfRkFDVE9SCgEIZm9sZEZ1bmMCA2FjYwRlbGVtAwgFA2FjYwJfMQUDYWNjBApzdGFydElubmVyCAUDYWNjAl8yBAlzdG9wSW5uZXIIBQNhY2MCXzMEDWN1cnJlbnRBbW91bnQJAGkCCQBkAgUJc3RvcElubmVyBQpzdGFydElubmVyAAIEEXRlbXBBc3NldEJhbGFuY2VzCQEYX2RlY3JlbWVudEJhbGFuY2VCeUluZGV4AwURcHJldkFzc2V0QmFsYW5jZXMFEHRhcmdldEFzc2V0SW5kZXgFDWN1cnJlbnRBbW91bnQEFHRlbXBBc3NldFRvdGFsU3VwcGx5CQBlAgUUcHJldkFzc2V0VG90YWxTdXBwbHkFDWN1cnJlbnRBbW91bnQECXV0aWxWYWx1ZQkAZQIFFHRlbXBBc3NldFRvdGFsU3VwcGx5CQENX2NhbGN1bGF0ZUZlZQcFEXRlbXBBc3NldEJhbGFuY2VzBRR0ZW1wQXNzZXRUb3RhbFN1cHBseQUMYXNzZXRXZWlnaHRzBQtzaWdtYVdlaWdodAUPd2VpZ2h0QW1wbGlmaWVyBQxzbGlwcGFnZVJhdGUFCmZlZU1heFJhdGUDAwkAZgIJAGUCBQl1dGlsVmFsdWUFEnByZXZVdGlsVmFsdWVXaXRoSwkAaAIA////////////AQUJcHJlY2lzaW9uCQBmAgUJcHJlY2lzaW9uCQBlAgUJdXRpbFZhbHVlBRJwcmV2VXRpbFZhbHVlV2l0aEsHCQCWCgQGBQpzdGFydElubmVyBQlzdG9wSW5uZXIFDWN1cnJlbnRBbW91bnQDCQBmAgAACQBlAgUJdXRpbFZhbHVlBRJwcmV2VXRpbFZhbHVlV2l0aEsJAJYKBAcFCnN0YXJ0SW5uZXIFDWN1cnJlbnRBbW91bnQFDWN1cnJlbnRBbW91bnQJAJYKBAcFDWN1cnJlbnRBbW91bnQFCXN0b3BJbm5lcgUNY3VycmVudEFtb3VudAQMdGFyZ2V0QW1vdW50BARzdG9wCQCgAwEJAL0CBAkAtgIBCQBkAgUJbHBBbW91bnRfBQdwcmV2RmVlBQFrBQ5QRVJDRU5UX0ZBQ1RPUgUHQ0VJTElORwQNJHQwMzM5MDczNDAwNwoAAiRsBQdMSVNUXzY0CgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlgoEBwAABQRzdG9wAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA2NAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBABAdzdWNjZXNzCAUNJHQwMzM5MDczNDAwNwJfMQQIc3RhcnRPdXQIBQ0kdDAzMzkwNzM0MDA3Al8yBAdzdG9wT3V0CAUNJHQwMzM5MDczNDAwNwJfMwQPdGFyZ2V0QW1vdW50T3V0CAUNJHQwMzM5MDczNDAwNwJfNAMJAQEhAQUHc3VjY2VzcwkAAgEJAKwCAgIoX3dpdGhkcmF3OiBjYW4ndCBjYWxjdWxhdGUgdGFyZ2V0QW1vdW50PQkApAMBBQ90YXJnZXRBbW91bnRPdXQFD3RhcmdldEFtb3VudE91dAQSZmluYWxBc3NldEJhbGFuY2VzCQEYX2RlY3JlbWVudEJhbGFuY2VCeUluZGV4AwURcHJldkFzc2V0QmFsYW5jZXMFEHRhcmdldEFzc2V0SW5kZXgFDHRhcmdldEFtb3VudAQVZmluYWxBc3NldFRvdGFsU3VwcGx5CQBlAgUUcHJldkFzc2V0VG90YWxTdXBwbHkFDHRhcmdldEFtb3VudAQEZXJyMQMJARNfdmFsaWRhdGVBbGxvY2F0aW9uBwUSZmluYWxBc3NldEJhbGFuY2VzBRVmaW5hbEFzc2V0VG90YWxTdXBwbHkFEXByZXZBc3NldEJhbGFuY2VzBRRwcmV2QXNzZXRUb3RhbFN1cHBseQUMYXNzZXRXZWlnaHRzBQtzaWdtYVdlaWdodAURbWF4QWxsb2NBbXBsaWZpZXIJARtfdmFsaWRhdGVMaXF1aWRpdHlJbnZhcmlhbnQLBRFwcmV2QXNzZXRCYWxhbmNlcwUUcHJldkFzc2V0VG90YWxTdXBwbHkFEmZpbmFsQXNzZXRCYWxhbmNlcwUVZmluYWxBc3NldFRvdGFsU3VwcGx5BQ1scFRvdGFsU3VwcGx5CQBlAgUNbHBUb3RhbFN1cHBseQUJbHBBbW91bnRfBQxhc3NldFdlaWdodHMFC3NpZ21hV2VpZ2h0BQ93ZWlnaHRBbXBsaWZpZXIFDHNsaXBwYWdlUmF0ZQUKZmVlTWF4UmF0ZQcDCQAAAgUEZXJyMQUEZXJyMQQNJHQwMzQ5NjUzNTExMwkBG19jYWxjdWxhdGVMcEFuZFByb3RvY29sRmVlcwQJAGQCBRB0YXJnZXRBc3NldEluZGV4AAEFDHRhcmdldEFtb3VudAkAaQIFCWxwRmVlUmF0ZQACCQBpAgUPcHJvdG9jb2xGZWVSYXRlAAIEBWxwRmVlCAUNJHQwMzQ5NjUzNTExMwJfMQQLcHJvdG9jb2xGZWUIBQ0kdDAzNDk2NTM1MTEzAl8yBBRzaWdtYUZlZVBlckxwVXBkYXRlZAgFDSR0MDM0OTY1MzUxMTMCXzMJAJcKBQUMdGFyZ2V0QW1vdW50BRJmaW5hbEFzc2V0QmFsYW5jZXMFBWxwRmVlBQtwcm90b2NvbEZlZQUUc2lnbWFGZWVQZXJMcFVwZGF0ZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BBV9zd2FwAxFzb3VyY2VBc3NldEluZGV4XxF0YXJnZXRBc3NldEluZGV4Xw1zb3VyY2VBbW91bnRfBAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQJbHBBc3NldElkCAUHc3RvcmFnZQJfMQQKbHBEZWNpbWFscwkBDF9nZXREZWNpbWFscwEJANgEAQUJbHBBc3NldElkBA1scFRvdGFsU3VwcGx5CAUHc3RvcmFnZQJfMwQJbHBGZWVSYXRlCAUHc3RvcmFnZQJfNAQPcHJvdG9jb2xGZWVSYXRlCAUHc3RvcmFnZQJfNQQRbWF4QWxsb2NBbXBsaWZpZXIIBQdzdG9yYWdlAl82BA93ZWlnaHRBbXBsaWZpZXIIBQdzdG9yYWdlAl83BAxzbGlwcGFnZVJhdGUIBQdzdG9yYWdlAl84BApmZWVNYXhSYXRlCAUHc3RvcmFnZQJfOQQJcHJlY2lzaW9uCQEOX2xvYWRQcmVjaXNpb24ABA0kdDAzNTY5NTM1NzYzCQESX2xvYWRBc3NldEJhbGFuY2VzAAQRcHJldkFzc2V0QmFsYW5jZXMIBQ0kdDAzNTY5NTM1NzYzAl8xBBRwcmV2QXNzZXRUb3RhbFN1cHBseQgFDSR0MDM1Njk1MzU3NjMCXzIEDSR0MDM1NzY4MzU4MjEJARFfbG9hZEFzc2V0V2VpZ2h0cwAEDGFzc2V0V2VpZ2h0cwgFDSR0MDM1NzY4MzU4MjECXzEEC3NpZ21hV2VpZ2h0CAUNJHQwMzU3NjgzNTgyMQJfMgQNYXNzZXRCYWxhbmNlcwkBGF9pbmNyZW1lbnRCYWxhbmNlQnlJbmRleAMFEXByZXZBc3NldEJhbGFuY2VzBRFzb3VyY2VBc3NldEluZGV4XwUNc291cmNlQW1vdW50XwQQYXNzZXRUb3RhbFN1cHBseQkAZAIFFHByZXZBc3NldFRvdGFsU3VwcGx5BQ1zb3VyY2VBbW91bnRfBAdwcmV2RmVlCQENX2NhbGN1bGF0ZUZlZQcFEXByZXZBc3NldEJhbGFuY2VzBRRwcmV2QXNzZXRUb3RhbFN1cHBseQUMYXNzZXRXZWlnaHRzBQtzaWdtYVdlaWdodAUPd2VpZ2h0QW1wbGlmaWVyBQxzbGlwcGFnZVJhdGUFCmZlZU1heFJhdGUEDXByZXZVdGlsVmFsdWUJAGUCBRRwcmV2QXNzZXRUb3RhbFN1cHBseQUHcHJldkZlZQoBCGZvbGRGdW5jAgNhY2MEZWxlbQMIBQNhY2MCXzEFA2FjYwQKc3RhcnRJbm5lcggFA2FjYwJfMgQJc3RvcElubmVyCAUDYWNjAl8zBA1jdXJyZW50QW1vdW50CQBpAgkAZAIFCXN0b3BJbm5lcgUKc3RhcnRJbm5lcgACBBF0ZW1wQXNzZXRCYWxhbmNlcwkBGF9kZWNyZW1lbnRCYWxhbmNlQnlJbmRleAMFDWFzc2V0QmFsYW5jZXMFEXRhcmdldEFzc2V0SW5kZXhfBQ1jdXJyZW50QW1vdW50BBR0ZW1wQXNzZXRUb3RhbFN1cHBseQkAZQIFEGFzc2V0VG90YWxTdXBwbHkFDWN1cnJlbnRBbW91bnQECXV0aWxWYWx1ZQkAZQIFFHRlbXBBc3NldFRvdGFsU3VwcGx5CQENX2NhbGN1bGF0ZUZlZQcFEXRlbXBBc3NldEJhbGFuY2VzBRR0ZW1wQXNzZXRUb3RhbFN1cHBseQUMYXNzZXRXZWlnaHRzBQtzaWdtYVdlaWdodAUPd2VpZ2h0QW1wbGlmaWVyBQxzbGlwcGFnZVJhdGUFCmZlZU1heFJhdGUDAwkAZgIJAGUCBQl1dGlsVmFsdWUFDXByZXZVdGlsVmFsdWUJAGgCAP///////////wEFCXByZWNpc2lvbgkAZgIFCXByZWNpc2lvbgkAZQIFCXV0aWxWYWx1ZQUNcHJldlV0aWxWYWx1ZQcJAJYKBAYFCnN0YXJ0SW5uZXIFCXN0b3BJbm5lcgUNY3VycmVudEFtb3VudAMJAGYCAAAJAGUCBQl1dGlsVmFsdWUFDXByZXZVdGlsVmFsdWUJAJYKBAcFCnN0YXJ0SW5uZXIFDWN1cnJlbnRBbW91bnQFDWN1cnJlbnRBbW91bnQJAJYKBAcFDWN1cnJlbnRBbW91bnQFCXN0b3BJbm5lcgUNY3VycmVudEFtb3VudAQMdGFyZ2V0QW1vdW50BAx0YXJnZXRBbW91bnQFDXNvdXJjZUFtb3VudF8EEXRlbXBBc3NldEJhbGFuY2VzCQEYX2RlY3JlbWVudEJhbGFuY2VCeUluZGV4AwUNYXNzZXRCYWxhbmNlcwURdGFyZ2V0QXNzZXRJbmRleF8FDHRhcmdldEFtb3VudAQUdGVtcEFzc2V0VG90YWxTdXBwbHkJAGUCBRBhc3NldFRvdGFsU3VwcGx5BQx0YXJnZXRBbW91bnQEA2ZlZQkBDV9jYWxjdWxhdGVGZWUHBRF0ZW1wQXNzZXRCYWxhbmNlcwUUdGVtcEFzc2V0VG90YWxTdXBwbHkFDGFzc2V0V2VpZ2h0cwULc2lnbWFXZWlnaHQFD3dlaWdodEFtcGxpZmllcgUMc2xpcHBhZ2VSYXRlBQpmZWVNYXhSYXRlBAdmZWVEaWZmCQBlAgUDZmVlBQdwcmV2RmVlAwkAAAIFB2ZlZURpZmYAAAUMdGFyZ2V0QW1vdW50BA0kdDAzNzcwODM3ODI3CgACJGwFB0xJU1RfNjQKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQHAAAJAGQCBQ1zb3VyY2VBbW91bnRfBQdwcmV2RmVlAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA2NAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBABAdzdWNjZXNzCAUNJHQwMzc3MDgzNzgyNwJfMQQIc3RhcnRPdXQIBQ0kdDAzNzcwODM3ODI3Al8yBAdzdG9wT3V0CAUNJHQwMzc3MDgzNzgyNwJfMwQPdGFyZ2V0QW1vdW50T3V0CAUNJHQwMzc3MDgzNzgyNwJfNAMJAQEhAQUHc3VjY2VzcwkAAgEJAKwCAgIkX3N3YXA6IGNhbid0IGNhbGN1bGF0ZSB0YXJnZXRBbW91bnQ9CQCkAwEFD3RhcmdldEFtb3VudE91dAUPdGFyZ2V0QW1vdW50T3V0BBJmaW5hbEFzc2V0QmFsYW5jZXMJARhfZGVjcmVtZW50QmFsYW5jZUJ5SW5kZXgDBQ1hc3NldEJhbGFuY2VzBRF0YXJnZXRBc3NldEluZGV4XwUMdGFyZ2V0QW1vdW50BBVmaW5hbEFzc2V0VG90YWxTdXBwbHkJAGUCBRBhc3NldFRvdGFsU3VwcGx5BQx0YXJnZXRBbW91bnQEBGVycjEDCQETX3ZhbGlkYXRlQWxsb2NhdGlvbgcFEmZpbmFsQXNzZXRCYWxhbmNlcwUVZmluYWxBc3NldFRvdGFsU3VwcGx5BRFwcmV2QXNzZXRCYWxhbmNlcwUUcHJldkFzc2V0VG90YWxTdXBwbHkFDGFzc2V0V2VpZ2h0cwULc2lnbWFXZWlnaHQFEW1heEFsbG9jQW1wbGlmaWVyCQEWX3ZhbGlkYXRlU3dhcEludmFyaWFudAkFEXByZXZBc3NldEJhbGFuY2VzBRRwcmV2QXNzZXRUb3RhbFN1cHBseQUSZmluYWxBc3NldEJhbGFuY2VzBRVmaW5hbEFzc2V0VG90YWxTdXBwbHkFDGFzc2V0V2VpZ2h0cwULc2lnbWFXZWlnaHQFD3dlaWdodEFtcGxpZmllcgUMc2xpcHBhZ2VSYXRlBQpmZWVNYXhSYXRlBwMJAAACBQRlcnIxBQRlcnIxBA0kdDAzODY0MDM4NzgxCQEbX2NhbGN1bGF0ZUxwQW5kUHJvdG9jb2xGZWVzBAkAZAIFEXRhcmdldEFzc2V0SW5kZXhfAAEFDHRhcmdldEFtb3VudAUJbHBGZWVSYXRlBQ9wcm90b2NvbEZlZVJhdGUEBWxwRmVlCAUNJHQwMzg2NDAzODc4MQJfMQQLcHJvdG9jb2xGZWUIBQ0kdDAzODY0MDM4NzgxAl8yBBRzaWdtYUZlZVBlckxwVXBkYXRlZAgFDSR0MDM4NjQwMzg3ODECXzMJAJcKBQUMdGFyZ2V0QW1vdW50BRJmaW5hbEFzc2V0QmFsYW5jZXMFBWxwRmVlBQtwcm90b2NvbEZlZQUUc2lnbWFGZWVQZXJMcFVwZGF0ZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4WAWkBBGluaXQOB2Fzc2V0c18NYXNzZXRXZWlnaHRzXwpscEZlZVJhdGVfEHByb3RvY29sRmVlUmF0ZV8MbHBUb2tlbk5hbWVfDWxwVG9rZW5EZXNjcl8QbHBUb2tlbkRlY2ltYWxzXxdtYXhBbGxvY2F0aW9uQW1wbGlmaWVyXxB3ZWlnaHRBbXBsaWZpZXJfDXNsaXBwYWdlUmF0ZV8LZmVlTWF4UmF0ZV8UcHJvdG9jb2xGZWVDb250cmFjdF8KcHJlY2lzaW9uXwdwYXVzZXJfBANlcnIDAwMDAwMDAwMDAwMDAwMDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQETX3doZW5Ob3RJbml0aWFsaXplZAAHCQEQX3doZW5NdWx0aXNpZ1NldAAHCQEPX3ZhbGlkYXRlQXNzZXRzAgUHYXNzZXRzXwIUaW5pdDogaW52YWxpZCBhc3NldHMHCQEQX3ZhbGlkYXRlSW50TGlzdAQFDWFzc2V0V2VpZ2h0c18AAQUKTUFYX1dFSUdIVAIaaW5pdDogaW52YWxpZCBhc3NldFdlaWdodHMHCQESX3ZhbGlkYXRlSW50RXF1YWxzAwkAkAMBBQdhc3NldHNfCQCQAwEFDWFzc2V0V2VpZ2h0c18CH2luaXQ6IGludmFsaWQgYXNzZXRXZWlnaHRzIHNpemUHCQEMX3ZhbGlkYXRlSW50BAUKbHBGZWVSYXRlXwAABQdNQVhfRkVFAhRpbml0OiBpbnZhbGlkIGxwIGZlZQcJAQxfdmFsaWRhdGVJbnQEBRBwcm90b2NvbEZlZVJhdGVfAAAFB01BWF9GRUUCGmluaXQ6IGludmFsaWQgcHJvdG9jb2wgZmVlBwkBEl92YWxpZGF0ZVRva2VuTmFtZQIFDGxwVG9rZW5OYW1lXwISaW5pdDogaW52YWxpZCBuYW1lBwkBE192YWxpZGF0ZVRva2VuRGVzY3ICBQ1scFRva2VuRGVzY3JfAhNpbml0OiBpbnZhbGlkIGRlc2NyBwkBEV92YWxpZGF0ZURlY2ltYWxzAgUQbHBUb2tlbkRlY2ltYWxzXwIWaW5pdDogaW52YWxpZCBkZWNpbWFscwcJAQxfdmFsaWRhdGVJbnQEBRdtYXhBbGxvY2F0aW9uQW1wbGlmaWVyXwAABQ1NQVhfQU1QTElGSUVSAiRpbml0OiBpbnZhbGlkIG1heEFsbG9jYXRpb25BbXBsaWZpZXIHCQEMX3ZhbGlkYXRlSW50BAUQd2VpZ2h0QW1wbGlmaWVyXwAABRdtYXhBbGxvY2F0aW9uQW1wbGlmaWVyXwIdaW5pdDogaW52YWxpZCB3ZWlnaHRBbXBsaWZpZXIHCQEMX3ZhbGlkYXRlSW50BAUNc2xpcHBhZ2VSYXRlXwAABQdNQVhfSU5UAhppbml0OiBpbnZhbGlkIHNsaXBwYWdlUmF0ZQcJAQxfdmFsaWRhdGVJbnQEBQtmZWVNYXhSYXRlXwAABQdNQVhfSU5UAhhpbml0OiBpbnZhbGlkIGZlZU1heFJhdGUHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFFHByb3RvY29sRmVlQ29udHJhY3RfAiFpbml0OiBpbnZhbGlkIHByb3RvY29sRmVlQ29udHJhY3QHCQEMX3ZhbGlkYXRlSW50BAUKcHJlY2lzaW9uXwABBQdNQVhfSU5UAhdpbml0OiBpbnZhbGlkIHByZWNpc2lvbgcJARBfdmFsaWRhdGVBZGRyZXNzAgUHcGF1c2VyXwIUaW5pdDogaW52YWxpZCBwYXVzZXIHAwkAAAIFA2VycgUDZXJyBA0kdDA0MDY0NDQwNzEzCQEUX3ByZXBhcmVBc3NldFdlaWdodHMBBQ1hc3NldFdlaWdodHNfBAxhc3NldFdlaWdodHMIBQ0kdDA0MDY0NDQwNzEzAl8xBAtzaWdtYVdlaWdodAgFDSR0MDQwNjQ0NDA3MTMCXzIEDWFzc2V0QmFsYW5jZXMJARVfcHJlcGFyZUFzc2V0QmFsYW5jZXMBBQdhc3NldHNfBAVpc3N1ZQkAwggFBQxscFRva2VuTmFtZV8FDWxwVG9rZW5EZXNjcl8AAAUQbHBUb2tlbkRlY2ltYWxzXwYECWxwQXNzZXRJZAkAuAgBBQVpc3N1ZQQOc3RvcmFnZVVwZGF0ZWQJAJwKCgUJbHBBc3NldElkBgAABQpscEZlZVJhdGVfBRBwcm90b2NvbEZlZVJhdGVfBRdtYXhBbGxvY2F0aW9uQW1wbGlmaWVyXwUQd2VpZ2h0QW1wbGlmaWVyXwUNc2xpcHBhZ2VSYXRlXwULZmVlTWF4UmF0ZV8JARFAZXh0ck5hdGl2ZSgxMDYyKQEFFHByb3RvY29sRmVlQ29udHJhY3RfCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzAgCBQVpc3N1ZQUDbmlsCQEMX3NhdmVTdG9yYWdlAQUOc3RvcmFnZVVwZGF0ZWQJAQtfc2F2ZUFzc2V0cwEFB2Fzc2V0c18JARJfc2F2ZUFzc2V0QmFsYW5jZXMBBQ1hc3NldEJhbGFuY2VzCQERX3NhdmVBc3NldFdlaWdodHMBBQxhc3NldFdlaWdodHMJAQ5fc2F2ZVByZWNpc2lvbgEFCnByZWNpc2lvbl8JARJfc2F2ZVNpZ21hRmVlUGVyTHABCQESX2xvYWRTaWdtYUZlZVBlckxwAAkBC19zYXZlUGF1c2VyAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUHcGF1c2VyXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpkZXBvc2l0QWxsAQdhbW91bnRfBANlcnIDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEOX3doZW5Ob3RQYXVzZWQABwkBDF92YWxpZGF0ZUludAQFB2Ftb3VudF8AAAUHTUFYX0lOVAIaZGVwb3NpdEFsbDogaW52YWxpZCBhbW91bnQHAwkAAAIFA2VycgUDZXJyBAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQJbHBBc3NldElkCAUHc3RvcmFnZQJfMQQKbHBEZWNpbWFscwkBDF9nZXREZWNpbWFscwEJANgEAQUJbHBBc3NldElkBAZhc3NldHMJAQtfbG9hZEFzc2V0cwAEDSR0MDQyNDYzNDI1NDgJAQtfZGVwb3NpdEFsbAEFB2Ftb3VudF8EDmxwVG9rZW5zVG9NaW50CAUNJHQwNDI0NjM0MjU0OAJfMQQZcmVxdWlyZWRBbW91bnRzTm9ybWFsaXplZAgFDSR0MDQyNDYzNDI1NDgCXzIEDWFzc2V0QmFsYW5jZXMIBQ0kdDA0MjQ2MzQyNTQ4Al8zCgEIZm9sZEZ1bmMCA2FjYwRlbGVtBAVpbmRleAgFA2FjYwJfMQQPcGF5bWVudEFzc2V0U3RyCQELX2Fzc2V0VG9TdHIBCAkAkQMCCAUBaQhwYXltZW50cwUFaW5kZXgHYXNzZXRJZAQUcGF5bWVudEFzc2V0RGVjaW1hbHMJAQxfZ2V0RGVjaW1hbHMBBQ9wYXltZW50QXNzZXRTdHIEGHJlcXVpcmVkQW1vdW50Tm9ybWFsaXplZAkAkQMCBRlyZXF1aXJlZEFtb3VudHNOb3JtYWxpemVkBQVpbmRleAQOcmVxdWlyZWRBbW91bnQJARJfbm9ybWFsaXplRGVjaW1hbHMEBRhyZXF1aXJlZEFtb3VudE5vcm1hbGl6ZWQFCmxwRGVjaW1hbHMFFHBheW1lbnRBc3NldERlY2ltYWxzBQdDRUlMSU5HBARlcnIxAwkBAiE9AgUPcGF5bWVudEFzc2V0U3RyBQRlbGVtCQACAQkArAICAiNkZXBvc2l0QWxsOiBpbnZhbGlkIHBheW1lbnQ6IGluZGV4PQkApAMBBQVpbmRleAMJAGcCAAAFDnJlcXVpcmVkQW1vdW50CQACAQImZGVwb3NpdEFsbDogdG9vIGxpdHRsZSBhbW91bnQgcmVxdWlyZWQFBHVuaXQDCQAAAgUEZXJyMQUEZXJyMQQGY2hhbmdlAwkAZgIICQCRAwIIBQFpCHBheW1lbnRzBQVpbmRleAZhbW91bnQFDnJlcXVpcmVkQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIICQCRAwIIBQFpCHBheW1lbnRzBQVpbmRleAZhbW91bnQFDnJlcXVpcmVkQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwUFaW5kZXgHYXNzZXRJZAUDbmlsAwkAZgIFDnJlcXVpcmVkQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwUFaW5kZXgGYW1vdW50CQACAQkArAICCQCsAgIJAKwCAgIoZGVwb3NpdEFsbDogaW5zdWZmaWNpZW50IHBheW1lbnQsIGluZGV4PQkApAMBBQVpbmRleAILLCByZXF1aXJlZD0JAKQDAQUOcmVxdWlyZWRBbW91bnQFA25pbAkAlAoCCQBkAgUFaW5kZXgAAQkAzggCCAUDYWNjAl8yBQZjaGFuZ2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EDSR0MDQzNjkxNDM3NTMKAAIkbAUGYXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCAAAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEA2lkeAgFDSR0MDQzNjkxNDM3NTMCXzEEDWNoYW5nZUFjdGlvbnMIBQ0kdDA0MzY5MTQzNzUzAl8yBA5zdG9yYWdlVXBkYXRlZAkAnAoKCAUHc3RvcmFnZQJfMQgFB3N0b3JhZ2UCXzIJAGQCCAUHc3RvcmFnZQJfMwUObHBUb2tlbnNUb01pbnQIBQdzdG9yYWdlAl80CAUHc3RvcmFnZQJfNQgFB3N0b3JhZ2UCXzYIBQdzdG9yYWdlAl83CAUHc3RvcmFnZQJfOAgFB3N0b3JhZ2UCXzkIBQdzdG9yYWdlA18xMAkAlAoCCQDOCAIJAM4IAgkAzggCCQDMCAIJAQdSZWlzc3VlAwUJbHBBc3NldElkBQ5scFRva2Vuc1RvTWludAYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQ5scFRva2Vuc1RvTWludAUJbHBBc3NldElkBQNuaWwJAQxfc2F2ZVN0b3JhZ2UBBQ5zdG9yYWdlVXBkYXRlZAkBEl9zYXZlQXNzZXRCYWxhbmNlcwEFDWFzc2V0QmFsYW5jZXMFDWNoYW5nZUFjdGlvbnMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHZGVwb3NpdAEMbWluTHBBbW91bnRfBANlcnIJAQxfdmFsaWRhdGVJbnQEBQxtaW5McEFtb3VudF8AAAUHTUFYX0lOVAIeZGVwb3NpdDogaW52YWxpZCBtaW4gbHAgYW1vdW50AwkAAAIFA2VycgUDZXJyBAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQJbHBBc3NldElkCAUHc3RvcmFnZQJfMQQMbHBBc3NldElkU3RyCQELX2Fzc2V0VG9TdHIBBQlscEFzc2V0SWQECmxwRGVjaW1hbHMJAQxfZ2V0RGVjaW1hbHMBBQxscEFzc2V0SWRTdHIEBGVycjEDAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ5fd2hlbk5vdFBhdXNlZAAHCQESX3ZhbGlkYXRlSW50RXF1YWxzAwkAkAMBCAUBaQhwYXltZW50cwABAh5kZXBvc2l0OiBpbnZhbGlkIHBheW1lbnRzIHNpemUHCQEVX3ZhbGlkYXRlTGlzdENvbnRhaW5zAwkBC19sb2FkQXNzZXRzAAkBC19hc3NldFRvU3RyAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAh5kZXBvc2l0OiBpbnZhbGlkIHBheW1lbnQgYXNzZXQHCQEMX3ZhbGlkYXRlSW50BAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAQUHTUFYX0lOVAIfZGVwb3NpdDogaW52YWxpZCBwYXltZW50IGFtb3VudAcDCQAAAgUEZXJyMQUEZXJyMQQIYXNzZXRTdHIJAQtfYXNzZXRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQNYXNzZXREZWNpbWFscwkBDF9nZXREZWNpbWFscwEFCGFzc2V0U3RyBBBhbW91bnROb3JtYWxpemVkCQESX25vcm1hbGl6ZURlY2ltYWxzBAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFDWFzc2V0RGVjaW1hbHMFCmxwRGVjaW1hbHMFBERPV04EDSR0MDQ1MTY1NDUyODEJAQhfZGVwb3NpdAIFCGFzc2V0U3RyBRBhbW91bnROb3JtYWxpemVkBA5scFRva2Vuc1RvTWludAgFDSR0MDQ1MTY1NDUyODECXzEEDWFzc2V0QmFsYW5jZXMIBQ0kdDA0NTE2NTQ1MjgxAl8yBAVscEZlZQgFDSR0MDQ1MTY1NDUyODECXzMEC3Byb3RvY29sRmVlCAUNJHQwNDUxNjU0NTI4MQJfNAQUc2lnbWFGZWVQZXJMcFVwZGF0ZWQIBQ0kdDA0NTE2NTQ1MjgxAl81BA5scFRva2Vuc1RvU2VuZAkAZQIJAGUCBQ5scFRva2Vuc1RvTWludAUFbHBGZWUFC3Byb3RvY29sRmVlBARlcnIyCQEMX3ZhbGlkYXRlSW50BAUObHBUb2tlbnNUb1NlbmQFDG1pbkxwQW1vdW50XwUHTUFYX0lOVAIWZGVwb3NpdDogbGVzcyB0aGFuIG1pbgMJAAACBQRlcnIyBQRlcnIyBA5zdG9yYWdlVXBkYXRlZAkAnAoKCAUHc3RvcmFnZQJfMQgFB3N0b3JhZ2UCXzIJAGQCCAUHc3RvcmFnZQJfMwUObHBUb2tlbnNUb01pbnQIBQdzdG9yYWdlAl80CAUHc3RvcmFnZQJfNQgFB3N0b3JhZ2UCXzYIBQdzdG9yYWdlAl83CAUHc3RvcmFnZQJfOAgFB3N0b3JhZ2UCXzkIBQdzdG9yYWdlA18xMAkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzAgCCQEHUmVpc3N1ZQMFCWxwQXNzZXRJZAUObHBUb2tlbnNUb01pbnQGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUObHBUb2tlbnNUb1NlbmQFCWxwQXNzZXRJZAUDbmlsCQEMX3NhdmVTdG9yYWdlAQUOc3RvcmFnZVVwZGF0ZWQJARJfc2F2ZUFzc2V0QmFsYW5jZXMBBQ1hc3NldEJhbGFuY2VzCQEKX3NhdmVMcEZlZQIFDGxwQXNzZXRJZFN0cgkAZAIFBWxwRmVlCQEKX2xvYWRMcEZlZQEFDGxwQXNzZXRJZFN0cgkBEF9zYXZlUHJvdG9jb2xGZWUCBQxscEFzc2V0SWRTdHIJAGQCBQtwcm90b2NvbEZlZQkBEF9sb2FkUHJvdG9jb2xGZWUBBQxscEFzc2V0SWRTdHIJARJfc2F2ZVNpZ21hRmVlUGVyTHABBRRzaWdtYUZlZVBlckxwVXBkYXRlZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQt3aXRoZHJhd0FsbAAEB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UABAlscEFzc2V0SWQIBQdzdG9yYWdlAl8xBAxscEFzc2V0SWRTdHIJANgEAQUJbHBBc3NldElkBApscERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQUMbHBBc3NldElkU3RyBAZhc3NldHMJAQtfbG9hZEFzc2V0cwAEA2VycgMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJARJfdmFsaWRhdGVJbnRFcXVhbHMDCQCQAwEIBQFpCHBheW1lbnRzAAECIndpdGhkcmF3QWxsOiBpbnZhbGlkIHBheW1lbnRzIHNpemUHCQEUX3ZhbGlkYXRlU3RyaW5nRXF1YWwDBQxscEFzc2V0SWRTdHIJAQtfYXNzZXRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAIid2l0aGRyYXdBbGw6IGludmFsaWQgcGF5bWVudCBhc3NldAcJAQxfdmFsaWRhdGVJbnQECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAABBQdNQVhfSU5UAiN3aXRoZHJhd0FsbDogaW52YWxpZCBwYXltZW50IGFtb3VudAcDCQAAAgUDZXJyBQNlcnIEDSR0MDQ2NzcwNDY4NTcJAQxfd2l0aGRyYXdBbGwBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQObHBUb2tlbnNUb0J1cm4IBQ0kdDA0Njc3MDQ2ODU3Al8xBA1iYWxhbmNlc1RvUGF5CAUNJHQwNDY3NzA0Njg1NwJfMgQNYXNzZXRCYWxhbmNlcwgFDSR0MDQ2NzcwNDY4NTcCXzMEDnBheW1lbnRBY3Rpb25zCQEYX2dldFBheW1lbnRzRnJvbUJhbGFuY2VzBAUGYXNzZXRzBQ1iYWxhbmNlc1RvUGF5CAUBaQZjYWxsZXIFCmxwRGVjaW1hbHMEDnN0b3JhZ2VVcGRhdGVkCQCcCgoIBQdzdG9yYWdlAl8xCAUHc3RvcmFnZQJfMgkAZQIIBQdzdG9yYWdlAl8zBQ5scFRva2Vuc1RvQnVybggFB3N0b3JhZ2UCXzQIBQdzdG9yYWdlAl81CAUHc3RvcmFnZQJfNggFB3N0b3JhZ2UCXzcIBQdzdG9yYWdlAl84CAUHc3RvcmFnZQJfOQgFB3N0b3JhZ2UDXzEwCQCUCgIJAM4IAgkAzggCCQDOCAIJAMwIAgkBBEJ1cm4CBQlscEFzc2V0SWQFDmxwVG9rZW5zVG9CdXJuBQNuaWwFDnBheW1lbnRBY3Rpb25zCQEMX3NhdmVTdG9yYWdlAQUOc3RvcmFnZVVwZGF0ZWQJARJfc2F2ZUFzc2V0QmFsYW5jZXMBBQ1hc3NldEJhbGFuY2VzBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHdpdGhkcmF3Aghhc3NldElkXwptaW5BbW91bnRfBAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQJbHBBc3NldElkCAUHc3RvcmFnZQJfMQQMbHBBc3NldElkU3RyCQDYBAEFCWxwQXNzZXRJZAQKbHBEZWNpbWFscwkBDF9nZXREZWNpbWFscwEFDGxwQXNzZXRJZFN0cgQGYXNzZXRzCQELX2xvYWRBc3NldHMABANlcnIDAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJARJfdmFsaWRhdGVJbnRFcXVhbHMDCQCQAwEIBQFpCHBheW1lbnRzAAECH3dpdGhkcmF3OiBpbnZhbGlkIHBheW1lbnRzIHNpemUHCQEUX3ZhbGlkYXRlU3RyaW5nRXF1YWwDBQxscEFzc2V0SWRTdHIJAQtfYXNzZXRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAIfd2l0aGRyYXc6IGludmFsaWQgcGF5bWVudCBhc3NldAcJAQxfdmFsaWRhdGVJbnQECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAABBQdNQVhfSU5UAiB3aXRoZHJhdzogaW52YWxpZCBwYXltZW50IGFtb3VudAcJARVfdmFsaWRhdGVMaXN0Q29udGFpbnMDBQZhc3NldHMFCGFzc2V0SWRfAhl3aXRoZHJhdzogaW52YWxpZCBhc3NldElkBwkBDF92YWxpZGF0ZUludAQFCm1pbkFtb3VudF8AAAUHTUFYX0lOVAIbd2l0aGRyYXc6IGludmFsaWQgbWluQW1vdW50BwMJAAACBQNlcnIFA2VycgQNJHQwNDgxODM0ODMxNwkBCV93aXRoZHJhdwIFCGFzc2V0SWRfCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQWdGFyZ2V0QW1vdW50Tm9ybWFsaXplZAgFDSR0MDQ4MTgzNDgzMTcCXzEEEmZpbmFsQXNzZXRCYWxhbmNlcwgFDSR0MDQ4MTgzNDgzMTcCXzIEBWxwRmVlCAUNJHQwNDgxODM0ODMxNwJfMwQLcHJvdG9jb2xGZWUIBQ0kdDA0ODE4MzQ4MzE3Al80BBRzaWdtYUZlZVBlckxwVXBkYXRlZAgFDSR0MDQ4MTgzNDgzMTcCXzUEFWZpbmFsQW1vdW50Tm9ybWFsaXplZAkAZQIJAGUCBRZ0YXJnZXRBbW91bnROb3JtYWxpemVkBQVscEZlZQULcHJvdG9jb2xGZWUEDnRhcmdldERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQUIYXNzZXRJZF8EC2ZpbmFsQW1vdW50CQESX25vcm1hbGl6ZURlY2ltYWxzBAUVZmluYWxBbW91bnROb3JtYWxpemVkBQpscERlY2ltYWxzBQ50YXJnZXREZWNpbWFscwUERE9XTgQEZXJyMQkBDF92YWxpZGF0ZUludAQFC2ZpbmFsQW1vdW50BQptaW5BbW91bnRfBQdNQVhfSU5UAhd3aXRoZHJhdzogbGVzcyB0aGFuIG1pbgMJAAACBQRlcnIxBQRlcnIxBA5zdG9yYWdlVXBkYXRlZAkAnAoKCAUHc3RvcmFnZQJfMQgFB3N0b3JhZ2UCXzIJAGUCCAUHc3RvcmFnZQJfMwgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQIBQdzdG9yYWdlAl80CAUHc3RvcmFnZQJfNQgFB3N0b3JhZ2UCXzYIBQdzdG9yYWdlAl83CAUHc3RvcmFnZQJfOAgFB3N0b3JhZ2UCXzkIBQdzdG9yYWdlA18xMAkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzAgCCQEEQnVybgIFCWxwQXNzZXRJZAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQtmaW5hbEFtb3VudAkBC19zdHJUb0Fzc2V0AQUIYXNzZXRJZF8FA25pbAkBDF9zYXZlU3RvcmFnZQEFDnN0b3JhZ2VVcGRhdGVkCQESX3NhdmVBc3NldEJhbGFuY2VzAQUSZmluYWxBc3NldEJhbGFuY2VzCQEKX3NhdmVMcEZlZQIFCGFzc2V0SWRfCQBkAgUFbHBGZWUJAQpfbG9hZExwRmVlAQUIYXNzZXRJZF8JARBfc2F2ZVByb3RvY29sRmVlAgUIYXNzZXRJZF8JAGQCBQtwcm90b2NvbEZlZQkBEF9sb2FkUHJvdG9jb2xGZWUBBQhhc3NldElkXwkBEl9zYXZlU2lnbWFGZWVQZXJMcAEFFHNpZ21hRmVlUGVyTHBVcGRhdGVkBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBHN3YXACDnRhcmdldEFzc2V0SWRfCm1pbkFtb3VudF8EB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UABAlscEFzc2V0SWQIBQdzdG9yYWdlAl8xBApscERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQkA2AQBBQlscEFzc2V0SWQEBmFzc2V0cwkBC19sb2FkQXNzZXRzAAQOc291cmNlQXNzZXRTdHIJAQtfYXNzZXRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQWc291cmNlQW1vdW50Tm9ybWFsaXplZAkBEl9ub3JtYWxpemVEZWNpbWFscwQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQEMX2dldERlY2ltYWxzAQUOc291cmNlQXNzZXRTdHIFCmxwRGVjaW1hbHMFBERPV04EEHNvdXJjZUFzc2V0SW5kZXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQZhc3NldHMFDnNvdXJjZUFzc2V0U3RyAhpzd2FwOiBpbnZhbGlkIHNvdXJjZSBhc3NldAMJAAACBRBzb3VyY2VBc3NldEluZGV4BRBzb3VyY2VBc3NldEluZGV4BBB0YXJnZXRBc3NldEluZGV4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAM8IAgUGYXNzZXRzBQ50YXJnZXRBc3NldElkXwIac3dhcDogaW52YWxpZCB0YXJnZXQgYXNzZXQDCQAAAgUQdGFyZ2V0QXNzZXRJbmRleAUQdGFyZ2V0QXNzZXRJbmRleAQDZXJyAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJAQxfdmFsaWRhdGVJbnQEBQptaW5BbW91bnRfAAAFB01BWF9JTlQCH3N3YXA6IGludmFsaWQgbWluIHRhcmdldCBhbW91bnQHCQEMX3ZhbGlkYXRlSW50BAUWc291cmNlQW1vdW50Tm9ybWFsaXplZAABBQdNQVhfSU5UAhtzd2FwOiBpbnZhbGlkIHNvdXJjZSBhbW91bnQHCQEUX3ZhbGlkYXRlU3RyaW5nTm90RXEDBQ5zb3VyY2VBc3NldFN0cgUOdGFyZ2V0QXNzZXRJZF8CEXN3YXA6IHNhbWUgYXNzZXRzBwkBEl92YWxpZGF0ZUludEVxdWFscwMJAJADAQgFAWkIcGF5bWVudHMAAQIbc3dhcDogaW52YWxpZCBwYXltZW50cyBzaXplBwMJAAACBQNlcnIFA2VycgQNJHQwNTA0MDI1MDU2MAkBBV9zd2FwAwUQc291cmNlQXNzZXRJbmRleAUQdGFyZ2V0QXNzZXRJbmRleAUWc291cmNlQW1vdW50Tm9ybWFsaXplZAQWdGFyZ2V0QW1vdW50Tm9ybWFsaXplZAgFDSR0MDUwNDAyNTA1NjACXzEEEmZpbmFsQXNzZXRCYWxhbmNlcwgFDSR0MDUwNDAyNTA1NjACXzIEBWxwRmVlCAUNJHQwNTA0MDI1MDU2MAJfMwQLcHJvdG9jb2xGZWUIBQ0kdDA1MDQwMjUwNTYwAl80BBRzaWdtYUZlZVBlckxwVXBkYXRlZAgFDSR0MDUwNDAyNTA1NjACXzUEFWZpbmFsQW1vdW50Tm9ybWFsaXplZAkAZQIJAGUCBRZ0YXJnZXRBbW91bnROb3JtYWxpemVkBQVscEZlZQULcHJvdG9jb2xGZWUEDnRhcmdldERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQUOdGFyZ2V0QXNzZXRJZF8EC2ZpbmFsQW1vdW50CQESX25vcm1hbGl6ZURlY2ltYWxzBAUVZmluYWxBbW91bnROb3JtYWxpemVkBQpscERlY2ltYWxzBQ50YXJnZXREZWNpbWFscwUERE9XTgQEZXJyMQkBDF92YWxpZGF0ZUludAQFC2ZpbmFsQW1vdW50BQptaW5BbW91bnRfBQdNQVhfSU5UAhNzd2FwOiBsZXNzIHRoYW4gbWluAwkAAAIFBGVycjEFBGVycjEJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULZmluYWxBbW91bnQJAQtfc3RyVG9Bc3NldAEFDnRhcmdldEFzc2V0SWRfBQNuaWwJARJfc2F2ZUFzc2V0QmFsYW5jZXMBBRJmaW5hbEFzc2V0QmFsYW5jZXMJAQpfc2F2ZUxwRmVlAgUOdGFyZ2V0QXNzZXRJZF8JAGQCBQVscEZlZQkBCl9sb2FkTHBGZWUBBQ50YXJnZXRBc3NldElkXwkBEF9zYXZlUHJvdG9jb2xGZWUCBQ50YXJnZXRBc3NldElkXwkAZAIFC3Byb3RvY29sRmVlCQEQX2xvYWRQcm90b2NvbEZlZQEFDnRhcmdldEFzc2V0SWRfCQESX3NhdmVTaWdtYUZlZVBlckxwAQUUc2lnbWFGZWVQZXJMcFVwZGF0ZWQFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENZ2V0RGVwb3NpdEFsbAEJbHBBbW91bnRfBANlcnIJAQxfdmFsaWRhdGVJbnQEBQlscEFtb3VudF8AAQUHTUFYX0lOVAIdZ2V0RGVwb3NpdEFsbDogaW52YWxpZCBhbW91bnQDCQAAAgUDZXJyBQNlcnIEDSR0MDUxNjgwNTE3NjcJAQtfZGVwb3NpdEFsbAEFCWxwQW1vdW50XwQObHBUb2tlbnNUb01pbnQIBQ0kdDA1MTY4MDUxNzY3Al8xBBlyZXF1aXJlZEFtb3VudHNOb3JtYWxpemVkCAUNJHQwNTE2ODA1MTc2NwJfMgQNYXNzZXRCYWxhbmNlcwgFDSR0MDUxNjgwNTE3NjcCXzMJAJQKAgUDbmlsCQCUCgIFDmxwVG9rZW5zVG9NaW50BRlyZXF1aXJlZEFtb3VudHNOb3JtYWxpemVkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmdldERlcG9zaXQCCGFzc2V0SWRfB2Ftb3VudF8EA2VycgMJARVfdmFsaWRhdGVMaXN0Q29udGFpbnMDCQELX2xvYWRBc3NldHMABQhhc3NldElkXwIZZ2V0RGVwb3NpdDogaW52YWxpZCBhc3NldAkBDF92YWxpZGF0ZUludAQFB2Ftb3VudF8AAQUHTUFYX0lOVAIaZ2V0RGVwb3NpdDogaW52YWxpZCBhbW91bnQHAwkAAAIFA2VycgUDZXJyBAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQJbHBBc3NldElkCAUHc3RvcmFnZQJfMQQKbHBEZWNpbWFscwkBDF9nZXREZWNpbWFscwEJANgEAQUJbHBBc3NldElkBA1hc3NldERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQUIYXNzZXRJZF8EEGFtb3VudE5vcm1hbGl6ZWQJARJfbm9ybWFsaXplRGVjaW1hbHMEBQdhbW91bnRfBQ1hc3NldERlY2ltYWxzBQpscERlY2ltYWxzBQRET1dOBA0kdDA1MjUyNjUyNjQyCQEIX2RlcG9zaXQCBQhhc3NldElkXwUQYW1vdW50Tm9ybWFsaXplZAQObHBUb2tlbnNUb01pbnQIBQ0kdDA1MjUyNjUyNjQyAl8xBA1hc3NldEJhbGFuY2VzCAUNJHQwNTI1MjY1MjY0MgJfMgQFbHBGZWUIBQ0kdDA1MjUyNjUyNjQyAl8zBAtwcm90b2NvbEZlZQgFDSR0MDUyNTI2NTI2NDICXzQEFHNpZ21hRmVlUGVyTHBVcGRhdGVkCAUNJHQwNTI1MjY1MjY0MgJfNQQObHBUb2tlbnNUb1NlbmQJAGUCCQBlAgUObHBUb2tlbnNUb01pbnQFBWxwRmVlBQtwcm90b2NvbEZlZQkAlAoCBQNuaWwFDmxwVG9rZW5zVG9TZW5kCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmdldFdpdGhkcmF3QWxsAQlscEFtb3VudF8EA2VycgkBDF92YWxpZGF0ZUludAQFCWxwQW1vdW50XwAABQdNQVhfSU5UAh5nZXRXaXRoZHJhd0FsbDogaW52YWxpZCBhbW91bnQDCQAAAgUDZXJyBQNlcnIEDSR0MDUzMDgxNTMxNTcJAQxfd2l0aGRyYXdBbGwBBQlscEFtb3VudF8EDmxwVG9rZW5zVG9CdXJuCAUNJHQwNTMwODE1MzE1NwJfMQQNYmFsYW5jZXNUb0dldAgFDSR0MDUzMDgxNTMxNTcCXzIEDWFzc2V0QmFsYW5jZXMIBQ0kdDA1MzA4MTUzMTU3Al8zCQCUCgIFA25pbAUNYmFsYW5jZXNUb0dldAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtnZXRXaXRoZHJhdwIIYXNzZXRJZF8HYW1vdW50XwQDZXJyAwkBFV92YWxpZGF0ZUxpc3RDb250YWlucwMJAQtfbG9hZEFzc2V0cwAFCGFzc2V0SWRfAhpnZXRXaXRoZHJhdzogaW52YWxpZCBhc3NldAkBDF92YWxpZGF0ZUludAQFB2Ftb3VudF8AAQUHTUFYX0lOVAIbZ2V0V2l0aGRyYXc6IGludmFsaWQgYW1vdW50BwMJAAACBQNlcnIFA2VycgQHc3RvcmFnZQkBDF9sb2FkU3RvcmFnZQAECWxwQXNzZXRJZAgFB3N0b3JhZ2UCXzEECmxwRGVjaW1hbHMJAQxfZ2V0RGVjaW1hbHMBCQDYBAEFCWxwQXNzZXRJZAQNJHQwNTM4MDg1MzkyNAkBCV93aXRoZHJhdwIFCGFzc2V0SWRfBQdhbW91bnRfBBZ0YXJnZXRBbW91bnROb3JtYWxpemVkCAUNJHQwNTM4MDg1MzkyNAJfMQQNYXNzZXRCYWxhbmNlcwgFDSR0MDUzODA4NTM5MjQCXzIEBWxwRmVlCAUNJHQwNTM4MDg1MzkyNAJfMwQLcHJvdG9jb2xGZWUIBQ0kdDA1MzgwODUzOTI0Al80BBRzaWdtYUZlZVBlckxwVXBkYXRlZAgFDSR0MDUzODA4NTM5MjQCXzUEFWZpbmFsQW1vdW50Tm9ybWFsaXplZAkAZQIJAGUCBRZ0YXJnZXRBbW91bnROb3JtYWxpemVkBQVscEZlZQULcHJvdG9jb2xGZWUEDnRhcmdldERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQUIYXNzZXRJZF8EC2ZpbmFsQW1vdW50CQESX25vcm1hbGl6ZURlY2ltYWxzBAUVZmluYWxBbW91bnROb3JtYWxpemVkBQpscERlY2ltYWxzBQ50YXJnZXREZWNpbWFscwUERE9XTgkAlAoCBQNuaWwFC2ZpbmFsQW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB2dldFN3YXADDnNvdXJjZUFzc2V0SWRfDnRhcmdldEFzc2V0SWRfDXNvdXJjZUFtb3VudF8EB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UABAlscEFzc2V0SWQIBQdzdG9yYWdlAl8xBApscERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQkA2AQBBQlscEFzc2V0SWQEBmFzc2V0cwkBC19sb2FkQXNzZXRzAAQQc291cmNlQXNzZXRJbmRleAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDPCAIFBmFzc2V0cwUOc291cmNlQXNzZXRJZF8CGnN3YXA6IGludmFsaWQgc291cmNlIGFzc2V0AwkAAAIFEHNvdXJjZUFzc2V0SW5kZXgFEHNvdXJjZUFzc2V0SW5kZXgEEHRhcmdldEFzc2V0SW5kZXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQZhc3NldHMFDnRhcmdldEFzc2V0SWRfAhpzd2FwOiBpbnZhbGlkIHRhcmdldCBhc3NldAMJAAACBRB0YXJnZXRBc3NldEluZGV4BRB0YXJnZXRBc3NldEluZGV4BBZzb3VyY2VBbW91bnROb3JtYWxpemVkCQESX25vcm1hbGl6ZURlY2ltYWxzBAUNc291cmNlQW1vdW50XwkBDF9nZXREZWNpbWFscwEFDnNvdXJjZUFzc2V0SWRfBQpscERlY2ltYWxzBQRET1dOBANlcnIDCQEMX3ZhbGlkYXRlSW50BAUWc291cmNlQW1vdW50Tm9ybWFsaXplZAABBQdNQVhfSU5UAhtzd2FwOiBpbnZhbGlkIHNvdXJjZSBhbW91bnQJARRfdmFsaWRhdGVTdHJpbmdOb3RFcQMFDnNvdXJjZUFzc2V0SWRfBQ50YXJnZXRBc3NldElkXwIRc3dhcDogc2FtZSBhc3NldHMHAwkAAAIFA2VycgUDZXJyBA0kdDA1NTMzODU1NDk2CQEFX3N3YXADBRBzb3VyY2VBc3NldEluZGV4BRB0YXJnZXRBc3NldEluZGV4BRZzb3VyY2VBbW91bnROb3JtYWxpemVkBBZ0YXJnZXRBbW91bnROb3JtYWxpemVkCAUNJHQwNTUzMzg1NTQ5NgJfMQQSZmluYWxBc3NldEJhbGFuY2VzCAUNJHQwNTUzMzg1NTQ5NgJfMgQFbHBGZWUIBQ0kdDA1NTMzODU1NDk2Al8zBAtwcm90b2NvbEZlZQgFDSR0MDU1MzM4NTU0OTYCXzQEFHNpZ21hRmVlUGVyTHBVcGRhdGVkCAUNJHQwNTUzMzg1NTQ5NgJfNQQVZmluYWxBbW91bnROb3JtYWxpemVkCQBlAgkAZQIFFnRhcmdldEFtb3VudE5vcm1hbGl6ZWQFBWxwRmVlBQtwcm90b2NvbEZlZQQOdGFyZ2V0RGVjaW1hbHMJAQxfZ2V0RGVjaW1hbHMBBQ50YXJnZXRBc3NldElkXwQLZmluYWxBbW91bnQJARJfbm9ybWFsaXplRGVjaW1hbHMEBRVmaW5hbEFtb3VudE5vcm1hbGl6ZWQFCmxwRGVjaW1hbHMFDnRhcmdldERlY2ltYWxzBQRET1dOCQCUCgIFA25pbAULZmluYWxBbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIZ2V0Q2xhaW0BBXVzZXJfBAR1c2VyAwkAZgIJALECAQUFdXNlcl8AAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFBXVzZXJfAhZnZXRDbGFpbTogaW52YWxpZCB1c2VyCAUBaQZjYWxsZXIEDSR0MDU2MTM4NTYxOTQJAQtfY2hlY2twb2ludAEFBHVzZXIEEWNoZWNrcG9pbnRBY3Rpb25zCAUNJHQwNTYxMzg1NjE5NAJfMQQLdXNlclByb2ZpdHMIBQ0kdDA1NjEzODU2MTk0Al8yCQCUCgIFA25pbAULdXNlclByb2ZpdHMBaQELZ2V0VXRpbEZ1bmMABAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQNbHBUb3RhbFN1cHBseQgFB3N0b3JhZ2UCXzMED3dlaWdodEFtcGxpZmllcggFB3N0b3JhZ2UCXzcEDHNsaXBwYWdlUmF0ZQgFB3N0b3JhZ2UCXzgECmZlZU1heFJhdGUIBQdzdG9yYWdlAl85BA0kdDA1NjUyNzU2NTg3CQESX2xvYWRBc3NldEJhbGFuY2VzAAQNYXNzZXRCYWxhbmNlcwgFDSR0MDU2NTI3NTY1ODcCXzEEEGFzc2V0VG90YWxTdXBwbHkIBQ0kdDA1NjUyNzU2NTg3Al8yBA0kdDA1NjU5MjU2NjQ1CQERX2xvYWRBc3NldFdlaWdodHMABAxhc3NldFdlaWdodHMIBQ0kdDA1NjU5MjU2NjQ1Al8xBAtzaWdtYVdlaWdodAgFDSR0MDU2NTkyNTY2NDUCXzIEA2ZlZQkBDV9jYWxjdWxhdGVGZWUHBQ1hc3NldEJhbGFuY2VzBRBhc3NldFRvdGFsU3VwcGx5BQxhc3NldFdlaWdodHMFC3NpZ21hV2VpZ2h0BQ93ZWlnaHRBbXBsaWZpZXIFDHNsaXBwYWdlUmF0ZQUKZmVlTWF4UmF0ZQQJdXRpbFZhbHVlCQBlAgUQYXNzZXRUb3RhbFN1cHBseQUDZmVlCQCUCgIFA25pbAkAlAoCBQl1dGlsVmFsdWUFDWxwVG90YWxTdXBwbHkBaQEKZ2V0RmVlRnVuYwAEB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UABA93ZWlnaHRBbXBsaWZpZXIIBQdzdG9yYWdlAl83BAxzbGlwcGFnZVJhdGUIBQdzdG9yYWdlAl84BApmZWVNYXhSYXRlCAUHc3RvcmFnZQJfOQQNJHQwNTcwNzc1NzEzNwkBEl9sb2FkQXNzZXRCYWxhbmNlcwAEDWFzc2V0QmFsYW5jZXMIBQ0kdDA1NzA3NzU3MTM3Al8xBBBhc3NldFRvdGFsU3VwcGx5CAUNJHQwNTcwNzc1NzEzNwJfMgQNJHQwNTcxNDI1NzE5NQkBEV9sb2FkQXNzZXRXZWlnaHRzAAQMYXNzZXRXZWlnaHRzCAUNJHQwNTcxNDI1NzE5NQJfMQQLc2lnbWFXZWlnaHQIBQ0kdDA1NzE0MjU3MTk1Al8yBANmZWUJAQ1fY2FsY3VsYXRlRmVlBwUNYXNzZXRCYWxhbmNlcwUQYXNzZXRUb3RhbFN1cHBseQUMYXNzZXRXZWlnaHRzBQtzaWdtYVdlaWdodAUPd2VpZ2h0QW1wbGlmaWVyBQxzbGlwcGFnZVJhdGUFCmZlZU1heFJhdGUJAJQKAgUDbmlsBQNmZWUBaQEKY2hlY2twb2ludAEFdXNlcl8EA2VycgMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcDCQAAAgUDZXJyBQNlcnIEBHVzZXIDCQBmAgkAsQIBBQV1c2VyXwAACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUFdXNlcl8CGGNoZWNrcG9pbnQ6IGludmFsaWQgdXNlcggFAWkGY2FsbGVyCQELX2NoZWNrcG9pbnQBBQR1c2VyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBXN0YWtlAAQDZXJyAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEOX3doZW5Ob3RQYXVzZWQABwMJAAACBQNlcnIFA2VycgQHc3RvcmFnZQkBDF9sb2FkU3RvcmFnZQAEDGxwQXNzZXRJZFN0cgkBC19hc3NldFRvU3RyAQgFB3N0b3JhZ2UCXzEEBGVycjEDAwkBEl92YWxpZGF0ZUludEVxdWFscwMJAJADAQgFAWkIcGF5bWVudHMAAQIcc3Rha2U6IGludmFsaWQgcGF5bWVudHMgc2l6ZQkBFF92YWxpZGF0ZVN0cmluZ0VxdWFsAwUMbHBBc3NldElkU3RyCQELX2Fzc2V0VG9TdHIBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQCHHN0YWtlOiBpbnZhbGlkIHBheW1lbnQgYXNzZXQHCQEMX3ZhbGlkYXRlSW50BAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAAUHTUFYX0lOVAIdc3Rha2U6IGludmFsaWQgcGF5bWVudCBhbW91bnQHAwkAAAIFBGVycjEFBGVycjEEDSR0MDU4MjAzNTgyNjMJAQtfY2hlY2twb2ludAEIBQFpBmNhbGxlcgQRY2hlY2twb2ludEFjdGlvbnMIBQ0kdDA1ODIwMzU4MjYzAl8xBAt1c2VyUHJvZml0cwgFDSR0MDU4MjAzNTgyNjMCXzIJAJQKAgkAzggCCQDOCAIFEWNoZWNrcG9pbnRBY3Rpb25zCQELX3NhdmVVc2VyTHACCAUBaQZjYWxsZXIJAGQCCQELX2xvYWRVc2VyTHABCAUBaQZjYWxsZXIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQEMX3NhdmVUb3RhbExwAQkAZAIJAQxfbG9hZFRvdGFsTHAACAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQd1bnN0YWtlAQdhbW91bnRfBANlcnIDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ5fd2hlbk5vdFBhdXNlZAAHAwkAAAIFA2VycgUDZXJyBAdzdG9yYWdlCQEMX2xvYWRTdG9yYWdlAAQJbHBBc3NldElkCAUHc3RvcmFnZQJfMQQGdXNlckxwCQELX2xvYWRVc2VyTHABCAUBaQZjYWxsZXIEBGVycjEJAQxfdmFsaWRhdGVJbnQEBQdhbW91bnRfAAAFBnVzZXJMcAIXdW5zdGFrZTogaW52YWxpZCBhbW91bnQDCQAAAgUEZXJyMQUEZXJyMQQNJHQwNTg3NzQ1ODgzNAkBC19jaGVja3BvaW50AQgFAWkGY2FsbGVyBBFjaGVja3BvaW50QWN0aW9ucwgFDSR0MDU4Nzc0NTg4MzQCXzEEC3VzZXJQcm9maXRzCAUNJHQwNTg3NzQ1ODgzNAJfMgkAlAoCCQDOCAIJAM4IAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHYW1vdW50XwUJbHBBc3NldElkBQNuaWwFEWNoZWNrcG9pbnRBY3Rpb25zCQELX3NhdmVVc2VyTHACCAUBaQZjYWxsZXIJAGUCBQZ1c2VyTHAFB2Ftb3VudF8JAQxfc2F2ZVRvdGFsTHABCQBlAgkBDF9sb2FkVG90YWxMcAAFB2Ftb3VudF8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFY2xhaW0BBXVzZXJfBANlcnIDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ5fd2hlbk5vdFBhdXNlZAAHAwkAAAIFA2VycgUDZXJyBAR1c2VyAwkAZgIJALECAQUFdXNlcl8AAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFBXVzZXJfAhNjbGFpbTogaW52YWxpZCB1c2VyCAUBaQZjYWxsZXIEB3N0b3JhZ2UJAQxfbG9hZFN0b3JhZ2UABAlscEFzc2V0SWQIBQdzdG9yYWdlAl8xBAxscEFzc2V0SWRTdHIJAQtfYXNzZXRUb1N0cgEFCWxwQXNzZXRJZAQGYXNzZXRzCQDMCAIFDGxwQXNzZXRJZFN0cgkBC19sb2FkQXNzZXRzAAQIbWF4SW5kZXgJAGUCCQCQAwEFBmFzc2V0cwABBAZ1c2VyTHAJAQtfbG9hZFVzZXJMcAEFBHVzZXIEDSR0MDU5NTU3NTk2MTMJAQtfY2hlY2twb2ludAEFBHVzZXIEEWNoZWNrcG9pbnRBY3Rpb25zCAUNJHQwNTk1NTc1OTYxMwJfMQQLdXNlclByb2ZpdHMIBQ0kdDA1OTU1NzU5NjEzAl8yCgEIZm9sZEZ1bmMCA2FjYwZwcm9maXQEBWluZGV4CAUDYWNjAl8xAwMJAGcCBQhtYXhJbmRleAUFaW5kZXgJAGYCBQZwcm9maXQAAAcEBWFzc2V0CQCRAwIFBmFzc2V0cwUFaW5kZXgJAJUKAwkAZAIFBWluZGV4AAEJAM0IAggFA2FjYwJfMgAACQDNCAIIBQNhY2MCXzMJAQ5TY3JpcHRUcmFuc2ZlcgMFBHVzZXIFBnByb2ZpdAkBC19zdHJUb0Fzc2V0AQUFYXNzZXQJAJUKAwkAZAIFBWluZGV4AAEJAM0IAggFA2FjYwJfMgUGcHJvZml0CAUDYWNjAl8zBA0kdDA1OTk5MTYwMDgyCgACJGwFC3VzZXJQcm9maXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlQoDAAAFA25pbAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTEJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALBANpZHgIBQ0kdDA1OTk5MTYwMDgyAl8xBBJ1c2VyUHJvZml0c1VwZGF0ZWQIBQ0kdDA1OTk5MTYwMDgyAl8yBA1wcm9maXRBY3Rpb25zCAUNJHQwNTk5OTE2MDA4MgJfMwkAlAoCCQDOCAIJAM4IAgUNcHJvZml0QWN0aW9ucwkA0QgCBRFjaGVja3BvaW50QWN0aW9ucwAACQEQX3NhdmVVc2VyUHJvZml0cwIFBHVzZXIFEnVzZXJQcm9maXRzVXBkYXRlZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVwYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQ5fd2hlbk5vdFBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQYFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdW5wYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQtfd2hlblBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQcFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMdXBkYXRlUGF1c2VyAQdwYXVzZXJfBANlcnIDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFB3BhdXNlcl8CHHVwZGF0ZVBhdXNlcjogaW52YWxpZCBwYXVzZXIHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELc2V0TXVsdGlzaWcBCW11bHRpc2lnXwQDZXJyAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCW11bHRpc2lnXwIdc2V0TXVsdGlzaWc6IGludmFsaWQgbXVsdGlzaWcHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQ1fc2F2ZU11bHRpc2lnAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUJbXVsdGlzaWdfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAhtdWx0aXNpZwUHJG1hdGNoMAkBC3ZhbHVlT3JFbHNlAgkAmwgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQhtdWx0aXNpZwkAuQkCCQDMCAIFCktFWV9TVEFUVVMJAMwIAgkApQgBBQR0aGlzCQDMCAIJANgEAQgFAnR4AmlkBQNuaWwFA1NFUAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXnT9H40", "height": 3771424, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7PeHHPo6Bietz73rGmcd9Su3p4XbCyqP9aNnbxbhg1X Next: 8wanUdAVrX7p1FNdxPGj6p3LsrbM2Cji2kxpTMVEjzex Diff:
OldNewDifferences
13511351 }
13521352
13531353 let eq = {
1354- let er = {
1354+ let er = toInt(fraction(toBigInt((ec + dN)), ei, k, CEILING))
1355+ let es = {
13551356 let ad = r
13561357 let ae = size(ad)
1357- let af = $Tuple4(false, 0, (ec + dN), 0)
1358+ let af = $Tuple4(false, 0, er, 0)
13581359 func ag (ah,ai) = if ((ai >= ae))
13591360 then ah
13601361 else aa(ah, ad[ai])
13651366
13661367 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64)
13671368 }
1368- let es = er._1
1369- let et = er._2
1370- let eu = er._3
1371- let ev = er._4
1372- if (!(es))
1373- then throw(("_withdraw: can't calculate targetAmount=" + toString(ev)))
1374- else ev
1375- }
1376- let ew = bZ(dt, eg, eq)
1377- let ex = (du - eq)
1378- let ey = if (cL(ew, ex, dt, du, dq, dr, dK))
1379- then cs(dt, du, ew, ex, dk, (dk - ec), dq, dr, dl, dm, dn)
1369+ let et = es._1
1370+ let eu = es._2
1371+ let ev = es._3
1372+ let ew = es._4
1373+ if (!(et))
1374+ then throw(("_withdraw: can't calculate targetAmount=" + toString(ew)))
1375+ else ew
1376+ }
1377+ let ex = bZ(dt, eg, eq)
1378+ let ey = (du - eq)
1379+ let ez = if (cL(ex, ey, dt, du, dq, dr, dK))
1380+ then cs(dt, du, ex, ey, dk, (dk - ec), dq, dr, dl, dm, dn)
13801381 else false
1381- if ((ey == ey))
1382- then {
1383- let ez = db((eg + 1), eq, (dI / 2), (dJ / 2))
1384- let dh = ez._1
1385- let di = ez._2
1386- let cZ = ez._3
1387- $Tuple5(eq, ew, dh, di, cZ)
1388- }
1389- else throw("Strict value is not equal to itself.")
1390- }
1391-
1392-
1393-func eA (eB,eC,eD) = {
1382+ if ((ez == ez))
1383+ then {
1384+ let eA = db((eg + 1), eq, (dI / 2), (dJ / 2))
1385+ let dh = eA._1
1386+ let di = eA._2
1387+ let cZ = eA._3
1388+ $Tuple5(eq, ex, dh, di, cZ)
1389+ }
1390+ else throw("Strict value is not equal to itself.")
1391+ }
1392+
1393+
1394+func eB (eC,eD,eE) = {
13941395 let bq = aH()
1395- let eE = bq._1
1396- let eF = bv(toBase58String(eE))
1396+ let eF = bq._1
1397+ let eG = bv(toBase58String(eF))
13971398 let dk = bq._3
13981399 let dI = bq._4
13991400 let dJ = bq._5
14021403 let dm = bq._8
14031404 let dn = bq._9
14041405 let ed = aZ()
1405- let eG = aN()
1406- let dt = eG._1
1407- let du = eG._2
1408- let eH = aR()
1409- let dq = eH._1
1410- let dr = eH._2
1411- let dE = bX(dt, eB, eD)
1412- let dF = (du + eD)
1406+ let eH = aN()
1407+ let dt = eH._1
1408+ let du = eH._2
1409+ let eI = aR()
1410+ let dq = eI._1
1411+ let dr = eI._2
1412+ let dE = bX(dt, eC, eE)
1413+ let dF = (du + eE)
14131414 let dN = cp(dt, du, dq, dr, dl, dm, dn)
14141415 let eh = (du - dN)
14151416 func aa (ab,ac) = if (ab._1)
14181419 let ek = ab._2
14191420 let el = ab._3
14201421 let em = ((el + ek) / 2)
1421- let en = bZ(dE, eC, em)
1422+ let en = bZ(dE, eD, em)
14221423 let eo = (dF - em)
14231424 let ep = (eo - cp(en, eo, dq, dr, dl, dm, dn))
14241425 if (if (((ep - eh) > (-1 * ed)))
14311432 }
14321433
14331434 let eq = {
1434- let eq = eD
1435- let en = bZ(dE, eC, eq)
1435+ let eq = eE
1436+ let en = bZ(dE, eD, eq)
14361437 let eo = (dF - eq)
14371438 let dO = cp(en, eo, dq, dr, dl, dm, dn)
14381439 let dQ = (dO - dN)
14391440 if ((dQ == 0))
14401441 then eq
14411442 else {
1442- let eI = {
1443+ let eJ = {
14431444 let ad = r
14441445 let ae = size(ad)
1445- let af = $Tuple4(false, 0, (eD + dN), 0)
1446+ let af = $Tuple4(false, 0, (eE + dN), 0)
14461447 func ag (ah,ai) = if ((ai >= ae))
14471448 then ah
14481449 else aa(ah, ad[ai])
14531454
14541455 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64)
14551456 }
1456- let es = eI._1
1457- let et = eI._2
1458- let eu = eI._3
1459- let ev = eI._4
1460- if (!(es))
1461- then throw(("_swap: can't calculate targetAmount=" + toString(ev)))
1462- else ev
1457+ let et = eJ._1
1458+ let eu = eJ._2
1459+ let ev = eJ._3
1460+ let ew = eJ._4
1461+ if (!(et))
1462+ then throw(("_swap: can't calculate targetAmount=" + toString(ew)))
1463+ else ew
14631464 }
14641465 }
1465- let ew = bZ(dE, eC, eq)
1466- let ex = (dF - eq)
1467- let ey = if (cL(ew, ex, dt, du, dq, dr, dK))
1468- then cB(dt, du, ew, ex, dq, dr, dl, dm, dn)
1466+ let ex = bZ(dE, eD, eq)
1467+ let ey = (dF - eq)
1468+ let ez = if (cL(ex, ey, dt, du, dq, dr, dK))
1469+ then cB(dt, du, ex, ey, dq, dr, dl, dm, dn)
14691470 else false
1470- if ((ey == ey))
1471- then {
1472- let eJ = db((eC + 1), eq, dI, dJ)
1473- let dh = eJ._1
1474- let di = eJ._2
1475- let cZ = eJ._3
1476- $Tuple5(eq, ew, dh, di, cZ)
1477- }
1478- else throw("Strict value is not equal to itself.")
1479- }
1480-
1481-
1482-@Callable(eK)
1483-func init (al,bD,dd,de,eL,eM,eN,eO,cj,ck,cl,eP,eQ,aD) = {
1484- let bW = if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (bm(eK.caller))
1471+ if ((ez == ez))
1472+ then {
1473+ let eK = db((eD + 1), eq, dI, dJ)
1474+ let dh = eK._1
1475+ let di = eK._2
1476+ let cZ = eK._3
1477+ $Tuple5(eq, ex, dh, di, cZ)
1478+ }
1479+ else throw("Strict value is not equal to itself.")
1480+ }
1481+
1482+
1483+@Callable(eL)
1484+func init (al,bD,dd,de,eM,eN,eO,eP,cj,ck,cl,eQ,eR,aD) = {
1485+ let bW = if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (bm(eL.caller))
14851486 then bp()
14861487 else false)
14871488 then bo()
14961497 else false)
14971498 then P(de, 0, d, "init: invalid protocol fee")
14981499 else false)
1499- then an(eL, "init: invalid name")
1500- else false)
1501- then ao(eM, "init: invalid descr")
1502- else false)
1503- then ap(eN, "init: invalid decimals")
1504- else false)
1505- then P(eO, 0, e, "init: invalid maxAllocationAmplifier")
1506- else false)
1507- then P(cj, 0, eO, "init: invalid weightAmplifier")
1500+ then an(eM, "init: invalid name")
1501+ else false)
1502+ then ao(eN, "init: invalid descr")
1503+ else false)
1504+ then ap(eO, "init: invalid decimals")
1505+ else false)
1506+ then P(eP, 0, e, "init: invalid maxAllocationAmplifier")
1507+ else false)
1508+ then P(cj, 0, eP, "init: invalid weightAmplifier")
15081509 else false)
15091510 then P(ck, 0, c, "init: invalid slippageRate")
15101511 else false)
15111512 then P(cl, 0, c, "init: invalid feeMaxRate")
15121513 else false)
1513- then I(eP, "init: invalid protocolFeeContract")
1514- else false)
1515- then P(eQ, 1, c, "init: invalid precision")
1514+ then I(eQ, "init: invalid protocolFeeContract")
1515+ else false)
1516+ then P(eR, 1, c, "init: invalid precision")
15161517 else false)
15171518 then I(aD, "init: invalid pauser")
15181519 else false
15191520 if ((bW == bW))
15201521 then {
1521- let eR = bC(bD)
1522- let dq = eR._1
1523- let dr = eR._2
1522+ let eS = bC(bD)
1523+ let dq = eS._1
1524+ let dr = eS._2
15241525 let dE = bB(al)
1525- let eS = Issue(eL, eM, 0, eN, true)
1526- let eE = calculateAssetId(eS)
1527- let eT = $Tuple10(eE, true, 0, dd, de, eO, cj, ck, cl, addressFromStringValue(eP))
1528- $Tuple2(((((((([eS] ++ aJ(eT)) ++ aM(al)) ++ aP(dE)) ++ aT(dq)) ++ ba(eQ)) ++ bc(bb())) ++ aC(addressFromStringValue(aD))), unit)
1529- }
1530- else throw("Strict value is not equal to itself.")
1531- }
1532-
1533-
1534-
1535-@Callable(eK)
1526+ let eT = Issue(eM, eN, 0, eO, true)
1527+ let eF = calculateAssetId(eT)
1528+ let eU = $Tuple10(eF, true, 0, dd, de, eP, cj, ck, cl, addressFromStringValue(eQ))
1529+ $Tuple2(((((((([eT] ++ aJ(eU)) ++ aM(al)) ++ aP(dE)) ++ aT(dq)) ++ ba(eR)) ++ bc(bb())) ++ aC(addressFromStringValue(aD))), unit)
1530+ }
1531+ else throw("Strict value is not equal to itself.")
1532+ }
1533+
1534+
1535+
1536+@Callable(eL)
15361537 func depositAll (bx) = {
15371538 let bW = if (if (br())
15381539 then bs()
15421543 if ((bW == bW))
15431544 then {
15441545 let bq = aH()
1545- let eE = bq._1
1546- let eF = bv(toBase58String(eE))
1546+ let eF = bq._1
1547+ let eG = bv(toBase58String(eF))
15471548 let do = aL()
1548- let eU = dj(bx)
1549- let dC = eU._1
1550- let dy = eU._2
1551- let dE = eU._3
1549+ let eV = dj(bx)
1550+ let dC = eV._1
1551+ let dy = eV._2
1552+ let dE = eV._3
15521553 func aa (ab,ac) = {
15531554 let bO = ab._1
1554- let bV = av(eK.payments[bO].assetId)
1555- let eV = bv(bV)
1555+ let bV = av(eL.payments[bO].assetId)
1556+ let eW = bv(bV)
15561557 let dw = dy[bO]
1557- let eW = bw(dw, eF, eV, CEILING)
1558- let ey = if ((bV != ac))
1558+ let eX = bw(dw, eG, eW, CEILING)
1559+ let ez = if ((bV != ac))
15591560 then throw(("depositAll: invalid payment: index=" + toString(bO)))
1560- else if ((0 >= eW))
1561+ else if ((0 >= eX))
15611562 then throw("depositAll: too little amount required")
15621563 else unit
1563- if ((ey == ey))
1564+ if ((ez == ez))
15641565 then {
1565- let eX = if ((eK.payments[bO].amount > eW))
1566- then [ScriptTransfer(eK.caller, (eK.payments[bO].amount - eW), eK.payments[bO].assetId)]
1567- else if ((eW > eK.payments[bO].amount))
1568- then throw(((("depositAll: insufficient payment, index=" + toString(bO)) + ", required=") + toString(eW)))
1566+ let eY = if ((eL.payments[bO].amount > eX))
1567+ then [ScriptTransfer(eL.caller, (eL.payments[bO].amount - eX), eL.payments[bO].assetId)]
1568+ else if ((eX > eL.payments[bO].amount))
1569+ then throw(((("depositAll: insufficient payment, index=" + toString(bO)) + ", required=") + toString(eX)))
15691570 else nil
1570- $Tuple2((bO + 1), (ab._2 ++ eX))
1571+ $Tuple2((bO + 1), (ab._2 ++ eY))
15711572 }
15721573 else throw("Strict value is not equal to itself.")
15731574 }
15741575
1575- let eY = {
1576+ let eZ = {
15761577 let ad = do
15771578 let ae = size(ad)
15781579 let af = $Tuple2(0, nil)
15861587
15871588 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
15881589 }
1589- let cT = eY._1
1590- let eZ = eY._2
1591- let eT = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1592- $Tuple2(((([Reissue(eE, dC, true), ScriptTransfer(eK.caller, dC, eE)] ++ aJ(eT)) ++ aP(dE)) ++ eZ), unit)
1593- }
1594- else throw("Strict value is not equal to itself.")
1595- }
1596-
1597-
1598-
1599-@Callable(eK)
1600-func deposit (fa) = {
1601- let bW = P(fa, 0, c, "deposit: invalid min lp amount")
1590+ let cT = eZ._1
1591+ let fa = eZ._2
1592+ let eU = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1593+ $Tuple2(((([Reissue(eF, dC, true), ScriptTransfer(eL.caller, dC, eF)] ++ aJ(eU)) ++ aP(dE)) ++ fa), unit)
1594+ }
1595+ else throw("Strict value is not equal to itself.")
1596+ }
1597+
1598+
1599+
1600+@Callable(eL)
1601+func deposit (fb) = {
1602+ let bW = P(fb, 0, c, "deposit: invalid min lp amount")
16021603 if ((bW == bW))
16031604 then {
16041605 let bq = aH()
1605- let eE = bq._1
1606- let fb = av(eE)
1607- let eF = bv(fb)
1608- let ey = if (if (if (if (br())
1606+ let eF = bq._1
1607+ let fc = av(eF)
1608+ let eG = bv(fc)
1609+ let ez = if (if (if (if (br())
16091610 then bs()
16101611 else false)
1611- then am(size(eK.payments), 1, "deposit: invalid payments size")
1612+ then am(size(eL.payments), 1, "deposit: invalid payments size")
16121613 else false)
1613- then at(aL(), av(eK.payments[0].assetId), "deposit: invalid payment asset")
1614+ then at(aL(), av(eL.payments[0].assetId), "deposit: invalid payment asset")
16141615 else false)
1615- then P(eK.payments[0].amount, 1, c, "deposit: invalid payment amount")
1616+ then P(eL.payments[0].amount, 1, c, "deposit: invalid payment amount")
16161617 else false
1617- if ((ey == ey))
1618+ if ((ez == ez))
16181619 then {
1619- let fc = av(eK.payments[0].assetId)
1620- let bG = bv(fc)
1621- let fd = bw(eK.payments[0].amount, bG, eF, DOWN)
1622- let fe = dH(fc, fd)
1623- let dC = fe._1
1624- let dE = fe._2
1625- let dh = fe._3
1626- let di = fe._4
1627- let cZ = fe._5
1628- let ff = ((dC - dh) - di)
1629- let dG = P(ff, fa, c, "deposit: less than min")
1620+ let fd = av(eL.payments[0].assetId)
1621+ let bG = bv(fd)
1622+ let fe = bw(eL.payments[0].amount, bG, eG, DOWN)
1623+ let ff = dH(fd, fe)
1624+ let dC = ff._1
1625+ let dE = ff._2
1626+ let dh = ff._3
1627+ let di = ff._4
1628+ let cZ = ff._5
1629+ let fg = ((dC - dh) - di)
1630+ let dG = P(fg, fb, c, "deposit: less than min")
16301631 if ((dG == dG))
16311632 then {
1632- let eT = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1633- $Tuple2(((((([Reissue(eE, dC, true), ScriptTransfer(eK.caller, ff, eE)] ++ aJ(eT)) ++ aP(dE)) ++ aW(fb, (dh + aV(fb)))) ++ aY(fb, (di + aX(fb)))) ++ bc(cZ)), unit)
1633+ let eU = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1634+ $Tuple2(((((([Reissue(eF, dC, true), ScriptTransfer(eL.caller, fg, eF)] ++ aJ(eU)) ++ aP(dE)) ++ aW(fc, (dh + aV(fc)))) ++ aY(fc, (di + aX(fc)))) ++ bc(cZ)), unit)
16341635 }
16351636 else throw("Strict value is not equal to itself.")
16361637 }
16411642
16421643
16431644
1644-@Callable(eK)
1645+@Callable(eL)
16451646 func withdrawAll () = {
16461647 let bq = aH()
1647- let eE = bq._1
1648- let fb = toBase58String(eE)
1649- let eF = bv(fb)
1648+ let eF = bq._1
1649+ let fc = toBase58String(eF)
1650+ let eG = bv(fc)
16501651 let do = aL()
16511652 let bW = if (if (if (if (br())
16521653 then bs()
16531654 else false)
1654- then am(size(eK.payments), 1, "withdrawAll: invalid payments size")
1655- else false)
1656- then V(fb, av(eK.payments[0].assetId), "withdrawAll: invalid payment asset")
1657- else false)
1658- then P(eK.payments[0].amount, 1, c, "withdrawAll: invalid payment amount")
1655+ then am(size(eL.payments), 1, "withdrawAll: invalid payments size")
1656+ else false)
1657+ then V(fc, av(eL.payments[0].assetId), "withdrawAll: invalid payment asset")
1658+ else false)
1659+ then P(eL.payments[0].amount, 1, c, "withdrawAll: invalid payment amount")
16591660 else false
16601661 if ((bW == bW))
16611662 then {
1662- let fg = dV(eK.payments[0].amount)
1663- let dY = fg._1
1664- let ea = fg._2
1665- let dE = fg._3
1666- let fh = ce(do, ea, eK.caller, eF)
1667- let eT = $Tuple10(bq._1, bq._2, (bq._3 - dY), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1668- $Tuple2(((([Burn(eE, dY)] ++ fh) ++ aJ(eT)) ++ aP(dE)), unit)
1669- }
1670- else throw("Strict value is not equal to itself.")
1671- }
1672-
1673-
1674-
1675-@Callable(eK)
1676-func withdraw (O,fi) = {
1663+ let fh = dV(eL.payments[0].amount)
1664+ let dY = fh._1
1665+ let ea = fh._2
1666+ let dE = fh._3
1667+ let fi = ce(do, ea, eL.caller, eG)
1668+ let eU = $Tuple10(bq._1, bq._2, (bq._3 - dY), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1669+ $Tuple2(((([Burn(eF, dY)] ++ fi) ++ aJ(eU)) ++ aP(dE)), unit)
1670+ }
1671+ else throw("Strict value is not equal to itself.")
1672+ }
1673+
1674+
1675+
1676+@Callable(eL)
1677+func withdraw (O,fj) = {
16771678 let bq = aH()
1678- let eE = bq._1
1679- let fb = toBase58String(eE)
1680- let eF = bv(fb)
1679+ let eF = bq._1
1680+ let fc = toBase58String(eF)
1681+ let eG = bv(fc)
16811682 let do = aL()
16821683 let bW = if (if (if (if (if (if (br())
16831684 then bs()
16841685 else false)
1685- then am(size(eK.payments), 1, "withdraw: invalid payments size")
1686- else false)
1687- then V(fb, av(eK.payments[0].assetId), "withdraw: invalid payment asset")
1688- else false)
1689- then P(eK.payments[0].amount, 1, c, "withdraw: invalid payment amount")
1686+ then am(size(eL.payments), 1, "withdraw: invalid payments size")
1687+ else false)
1688+ then V(fc, av(eL.payments[0].assetId), "withdraw: invalid payment asset")
1689+ else false)
1690+ then P(eL.payments[0].amount, 1, c, "withdraw: invalid payment amount")
16901691 else false)
16911692 then at(do, O, "withdraw: invalid assetId")
16921693 else false)
1693- then P(fi, 0, c, "withdraw: invalid minAmount")
1694+ then P(fj, 0, c, "withdraw: invalid minAmount")
16941695 else false
16951696 if ((bW == bW))
16961697 then {
1697- let fj = eb(O, eK.payments[0].amount)
1698- let fk = fj._1
1699- let ew = fj._2
1700- let dh = fj._3
1701- let di = fj._4
1702- let cZ = fj._5
1703- let fl = ((fk - dh) - di)
1704- let fm = bv(O)
1705- let fn = bw(fl, eF, fm, DOWN)
1706- let ey = P(fn, fi, c, "withdraw: less than min")
1707- if ((ey == ey))
1698+ let fk = eb(O, eL.payments[0].amount)
1699+ let fl = fk._1
1700+ let ex = fk._2
1701+ let dh = fk._3
1702+ let di = fk._4
1703+ let cZ = fk._5
1704+ let fm = ((fl - dh) - di)
1705+ let fn = bv(O)
1706+ let fo = bw(fm, eG, fn, DOWN)
1707+ let ez = P(fo, fj, c, "withdraw: less than min")
1708+ if ((ez == ez))
17081709 then {
1709- let eT = $Tuple10(bq._1, bq._2, (bq._3 - eK.payments[0].amount), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1710- $Tuple2(((((([Burn(eE, eK.payments[0].amount), ScriptTransfer(eK.caller, fn, ax(O))] ++ aJ(eT)) ++ aP(ew)) ++ aW(O, (dh + aV(O)))) ++ aY(O, (di + aX(O)))) ++ bc(cZ)), unit)
1710+ let eU = $Tuple10(bq._1, bq._2, (bq._3 - eL.payments[0].amount), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1711+ $Tuple2(((((([Burn(eF, eL.payments[0].amount), ScriptTransfer(eL.caller, fo, ax(O))] ++ aJ(eU)) ++ aP(ex)) ++ aW(O, (dh + aV(O)))) ++ aY(O, (di + aX(O)))) ++ bc(cZ)), unit)
17111712 }
17121713 else throw("Strict value is not equal to itself.")
17131714 }
17161717
17171718
17181719
1719-@Callable(eK)
1720-func swap (fo,fi) = {
1720+@Callable(eL)
1721+func swap (fp,fj) = {
17211722 let bq = aH()
1722- let eE = bq._1
1723- let eF = bv(toBase58String(eE))
1723+ let eF = bq._1
1724+ let eG = bv(toBase58String(eF))
17241725 let do = aL()
1725- let fp = av(eK.payments[0].assetId)
1726- let fq = bw(eK.payments[0].amount, bv(fp), eF, DOWN)
1727- let fr = valueOrErrorMessage(indexOf(do, fp), "swap: invalid source asset")
1728- if ((fr == fr))
1729- then {
1730- let eg = valueOrErrorMessage(indexOf(do, fo), "swap: invalid target asset")
1726+ let fq = av(eL.payments[0].assetId)
1727+ let fr = bw(eL.payments[0].amount, bv(fq), eG, DOWN)
1728+ let fs = valueOrErrorMessage(indexOf(do, fq), "swap: invalid source asset")
1729+ if ((fs == fs))
1730+ then {
1731+ let eg = valueOrErrorMessage(indexOf(do, fp), "swap: invalid target asset")
17311732 if ((eg == eg))
17321733 then {
17331734 let bW = if (if (if (if (if (br())
17341735 then bs()
17351736 else false)
1736- then P(fi, 0, c, "swap: invalid min target amount")
1737+ then P(fj, 0, c, "swap: invalid min target amount")
17371738 else false)
1738- then P(fq, 1, c, "swap: invalid source amount")
1739+ then P(fr, 1, c, "swap: invalid source amount")
17391740 else false)
1740- then Y(fp, fo, "swap: same assets")
1741+ then Y(fq, fp, "swap: same assets")
17411742 else false)
1742- then am(size(eK.payments), 1, "swap: invalid payments size")
1743+ then am(size(eL.payments), 1, "swap: invalid payments size")
17431744 else false
17441745 if ((bW == bW))
17451746 then {
1746- let fs = eA(fr, eg, fq)
1747- let fk = fs._1
1748- let ew = fs._2
1749- let dh = fs._3
1750- let di = fs._4
1751- let cZ = fs._5
1752- let fl = ((fk - dh) - di)
1753- let fm = bv(fo)
1754- let fn = bw(fl, eF, fm, DOWN)
1755- let ey = P(fn, fi, c, "swap: less than min")
1756- if ((ey == ey))
1757- then $Tuple2((((([ScriptTransfer(eK.caller, fn, ax(fo))] ++ aP(ew)) ++ aW(fo, (dh + aV(fo)))) ++ aY(fo, (di + aX(fo)))) ++ bc(cZ)), unit)
1747+ let ft = eB(fs, eg, fr)
1748+ let fl = ft._1
1749+ let ex = ft._2
1750+ let dh = ft._3
1751+ let di = ft._4
1752+ let cZ = ft._5
1753+ let fm = ((fl - dh) - di)
1754+ let fn = bv(fp)
1755+ let fo = bw(fm, eG, fn, DOWN)
1756+ let ez = P(fo, fj, c, "swap: less than min")
1757+ if ((ez == ez))
1758+ then $Tuple2((((([ScriptTransfer(eL.caller, fo, ax(fp))] ++ aP(ex)) ++ aW(fp, (dh + aV(fp)))) ++ aY(fp, (di + aX(fp)))) ++ bc(cZ)), unit)
17581759 else throw("Strict value is not equal to itself.")
17591760 }
17601761 else throw("Strict value is not equal to itself.")
17661767
17671768
17681769
1769-@Callable(eK)
1770+@Callable(eL)
17701771 func getDepositAll (ec) = {
17711772 let bW = P(ec, 1, c, "getDepositAll: invalid amount")
17721773 if ((bW == bW))
17731774 then {
1774- let ft = dj(ec)
1775- let dC = ft._1
1776- let dy = ft._2
1777- let dE = ft._3
1775+ let fu = dj(ec)
1776+ let dC = fu._1
1777+ let dy = fu._2
1778+ let dE = fu._3
17781779 $Tuple2(nil, $Tuple2(dC, dy))
17791780 }
17801781 else throw("Strict value is not equal to itself.")
17821783
17831784
17841785
1785-@Callable(eK)
1786+@Callable(eL)
17861787 func getDeposit (O,bx) = {
17871788 let bW = if (at(aL(), O, "getDeposit: invalid asset"))
17881789 then P(bx, 1, c, "getDeposit: invalid amount")
17901791 if ((bW == bW))
17911792 then {
17921793 let bq = aH()
1793- let eE = bq._1
1794- let eF = bv(toBase58String(eE))
1794+ let eF = bq._1
1795+ let eG = bv(toBase58String(eF))
17951796 let bG = bv(O)
1796- let fd = bw(bx, bG, eF, DOWN)
1797- let fu = dH(O, fd)
1798- let dC = fu._1
1799- let dE = fu._2
1800- let dh = fu._3
1801- let di = fu._4
1802- let cZ = fu._5
1803- let ff = ((dC - dh) - di)
1804- $Tuple2(nil, ff)
1805- }
1806- else throw("Strict value is not equal to itself.")
1807- }
1808-
1809-
1810-
1811-@Callable(eK)
1797+ let fe = bw(bx, bG, eG, DOWN)
1798+ let fv = dH(O, fe)
1799+ let dC = fv._1
1800+ let dE = fv._2
1801+ let dh = fv._3
1802+ let di = fv._4
1803+ let cZ = fv._5
1804+ let fg = ((dC - dh) - di)
1805+ $Tuple2(nil, fg)
1806+ }
1807+ else throw("Strict value is not equal to itself.")
1808+ }
1809+
1810+
1811+
1812+@Callable(eL)
18121813 func getWithdrawAll (ec) = {
18131814 let bW = P(ec, 0, c, "getWithdrawAll: invalid amount")
18141815 if ((bW == bW))
18151816 then {
1816- let fv = dV(ec)
1817- let dY = fv._1
1818- let fw = fv._2
1819- let dE = fv._3
1820- $Tuple2(nil, fw)
1821- }
1822- else throw("Strict value is not equal to itself.")
1823- }
1824-
1825-
1826-
1827-@Callable(eK)
1817+ let fw = dV(ec)
1818+ let dY = fw._1
1819+ let fx = fw._2
1820+ let dE = fw._3
1821+ $Tuple2(nil, fx)
1822+ }
1823+ else throw("Strict value is not equal to itself.")
1824+ }
1825+
1826+
1827+
1828+@Callable(eL)
18281829 func getWithdraw (O,bx) = {
18291830 let bW = if (at(aL(), O, "getWithdraw: invalid asset"))
18301831 then P(bx, 1, c, "getWithdraw: invalid amount")
18321833 if ((bW == bW))
18331834 then {
18341835 let bq = aH()
1835- let eE = bq._1
1836- let eF = bv(toBase58String(eE))
1837- let fx = eb(O, bx)
1838- let fk = fx._1
1839- let dE = fx._2
1840- let dh = fx._3
1841- let di = fx._4
1842- let cZ = fx._5
1843- let fl = ((fk - dh) - di)
1844- let fm = bv(O)
1845- let fn = bw(fl, eF, fm, DOWN)
1846- $Tuple2(nil, fn)
1847- }
1848- else throw("Strict value is not equal to itself.")
1849- }
1850-
1851-
1852-
1853-@Callable(eK)
1854-func getSwap (fy,fo,eD) = {
1836+ let eF = bq._1
1837+ let eG = bv(toBase58String(eF))
1838+ let fy = eb(O, bx)
1839+ let fl = fy._1
1840+ let dE = fy._2
1841+ let dh = fy._3
1842+ let di = fy._4
1843+ let cZ = fy._5
1844+ let fm = ((fl - dh) - di)
1845+ let fn = bv(O)
1846+ let fo = bw(fm, eG, fn, DOWN)
1847+ $Tuple2(nil, fo)
1848+ }
1849+ else throw("Strict value is not equal to itself.")
1850+ }
1851+
1852+
1853+
1854+@Callable(eL)
1855+func getSwap (fz,fp,eE) = {
18551856 let bq = aH()
1856- let eE = bq._1
1857- let eF = bv(toBase58String(eE))
1857+ let eF = bq._1
1858+ let eG = bv(toBase58String(eF))
18581859 let do = aL()
1859- let fr = valueOrErrorMessage(indexOf(do, fy), "swap: invalid source asset")
1860- if ((fr == fr))
1861- then {
1862- let eg = valueOrErrorMessage(indexOf(do, fo), "swap: invalid target asset")
1860+ let fs = valueOrErrorMessage(indexOf(do, fz), "swap: invalid source asset")
1861+ if ((fs == fs))
1862+ then {
1863+ let eg = valueOrErrorMessage(indexOf(do, fp), "swap: invalid target asset")
18631864 if ((eg == eg))
18641865 then {
1865- let fq = bw(eD, bv(fy), eF, DOWN)
1866- let bW = if (P(fq, 1, c, "swap: invalid source amount"))
1867- then Y(fy, fo, "swap: same assets")
1866+ let fr = bw(eE, bv(fz), eG, DOWN)
1867+ let bW = if (P(fr, 1, c, "swap: invalid source amount"))
1868+ then Y(fz, fp, "swap: same assets")
18681869 else false
18691870 if ((bW == bW))
18701871 then {
1871- let fz = eA(fr, eg, fq)
1872- let fk = fz._1
1873- let ew = fz._2
1874- let dh = fz._3
1875- let di = fz._4
1876- let cZ = fz._5
1877- let fl = ((fk - dh) - di)
1878- let fm = bv(fo)
1879- let fn = bw(fl, eF, fm, DOWN)
1880- $Tuple2(nil, fn)
1872+ let fA = eB(fs, eg, fr)
1873+ let fl = fA._1
1874+ let ex = fA._2
1875+ let dh = fA._3
1876+ let di = fA._4
1877+ let cZ = fA._5
1878+ let fm = ((fl - dh) - di)
1879+ let fn = bv(fp)
1880+ let fo = bw(fm, eG, fn, DOWN)
1881+ $Tuple2(nil, fo)
18811882 }
18821883 else throw("Strict value is not equal to itself.")
18831884 }
18881889
18891890
18901891
1891-@Callable(eK)
1892+@Callable(eL)
18921893 func getClaim (be) = {
1893- let fA = if ((size(be) > 0))
1894+ let fB = if ((size(be) > 0))
18941895 then valueOrErrorMessage(addressFromString(be), "getClaim: invalid user")
1895- else eK.caller
1896- let fB = cM(fA)
1897- let fC = fB._1
1898- let cO = fB._2
1896+ else eL.caller
1897+ let fC = cM(fB)
1898+ let fD = fC._1
1899+ let cO = fC._2
18991900 $Tuple2(nil, cO)
19001901 }
19011902
19021903
19031904
1904-@Callable(eK)
1905+@Callable(eL)
19051906 func getUtilFunc () = {
19061907 let bq = aH()
19071908 let dk = bq._3
19081909 let dl = bq._7
19091910 let dm = bq._8
19101911 let dn = bq._9
1911- let fD = aN()
1912- let dE = fD._1
1913- let dF = fD._2
1914- let fE = aR()
1915- let dq = fE._1
1916- let dr = fE._2
1912+ let fE = aN()
1913+ let dE = fE._1
1914+ let dF = fE._2
1915+ let fF = aR()
1916+ let dq = fF._1
1917+ let dr = fF._2
19171918 let dO = cp(dE, dF, dq, dr, dl, dm, dn)
19181919 let ep = (dF - dO)
19191920 $Tuple2(nil, $Tuple2(ep, dk))
19211922
19221923
19231924
1924-@Callable(eK)
1925+@Callable(eL)
19251926 func getFeeFunc () = {
19261927 let bq = aH()
19271928 let dl = bq._7
19281929 let dm = bq._8
19291930 let dn = bq._9
1930- let fF = aN()
1931- let dE = fF._1
1932- let dF = fF._2
1933- let fG = aR()
1934- let dq = fG._1
1935- let dr = fG._2
1931+ let fG = aN()
1932+ let dE = fG._1
1933+ let dF = fG._2
1934+ let fH = aR()
1935+ let dq = fH._1
1936+ let dr = fH._2
19361937 let dO = cp(dE, dF, dq, dr, dl, dm, dn)
19371938 $Tuple2(nil, dO)
19381939 }
19391940
19401941
19411942
1942-@Callable(eK)
1943+@Callable(eL)
19431944 func checkpoint (be) = {
19441945 let bW = if (br())
19451946 then bs()
19461947 else false
19471948 if ((bW == bW))
19481949 then {
1949- let fA = if ((size(be) > 0))
1950+ let fB = if ((size(be) > 0))
19501951 then valueOrErrorMessage(addressFromString(be), "checkpoint: invalid user")
1951- else eK.caller
1952- cM(fA)
1953- }
1954- else throw("Strict value is not equal to itself.")
1955- }
1956-
1957-
1958-
1959-@Callable(eK)
1952+ else eL.caller
1953+ cM(fB)
1954+ }
1955+ else throw("Strict value is not equal to itself.")
1956+ }
1957+
1958+
1959+
1960+@Callable(eL)
19601961 func stake () = {
19611962 let bW = if (br())
19621963 then bs()
19641965 if ((bW == bW))
19651966 then {
19661967 let bq = aH()
1967- let fb = av(bq._1)
1968- let ey = if (if (am(size(eK.payments), 1, "stake: invalid payments size"))
1969- then V(fb, av(eK.payments[0].assetId), "stake: invalid payment asset")
1968+ let fc = av(bq._1)
1969+ let ez = if (if (am(size(eL.payments), 1, "stake: invalid payments size"))
1970+ then V(fc, av(eL.payments[0].assetId), "stake: invalid payment asset")
19701971 else false)
1971- then P(eK.payments[0].amount, 0, c, "stake: invalid payment amount")
1972+ then P(eL.payments[0].amount, 0, c, "stake: invalid payment amount")
19721973 else false
1973- if ((ey == ey))
1974+ if ((ez == ez))
19741975 then {
1975- let fH = cM(eK.caller)
1976- let fC = fH._1
1977- let cO = fH._2
1978- $Tuple2(((fC ++ bh(eK.caller, (bg(eK.caller) + eK.payments[0].amount))) ++ bj((bi() + eK.payments[0].amount))), unit)
1976+ let fI = cM(eL.caller)
1977+ let fD = fI._1
1978+ let cO = fI._2
1979+ $Tuple2(((fD ++ bh(eL.caller, (bg(eL.caller) + eL.payments[0].amount))) ++ bj((bi() + eL.payments[0].amount))), unit)
19791980 }
19801981 else throw("Strict value is not equal to itself.")
19811982 }
19841985
19851986
19861987
1987-@Callable(eK)
1988+@Callable(eL)
19881989 func unstake (bx) = {
19891990 let bW = if (br())
19901991 then bs()
19921993 if ((bW == bW))
19931994 then {
19941995 let bq = aH()
1995- let eE = bq._1
1996- let cN = bg(eK.caller)
1997- let ey = P(bx, 0, cN, "unstake: invalid amount")
1998- if ((ey == ey))
1996+ let eF = bq._1
1997+ let cN = bg(eL.caller)
1998+ let ez = P(bx, 0, cN, "unstake: invalid amount")
1999+ if ((ez == ez))
19992000 then {
2000- let fI = cM(eK.caller)
2001- let fC = fI._1
2002- let cO = fI._2
2003- $Tuple2(((([ScriptTransfer(eK.caller, bx, eE)] ++ fC) ++ bh(eK.caller, (cN - bx))) ++ bj((bi() - bx))), unit)
2001+ let fJ = cM(eL.caller)
2002+ let fD = fJ._1
2003+ let cO = fJ._2
2004+ $Tuple2(((([ScriptTransfer(eL.caller, bx, eF)] ++ fD) ++ bh(eL.caller, (cN - bx))) ++ bj((bi() - bx))), unit)
20042005 }
20052006 else throw("Strict value is not equal to itself.")
20062007 }
20092010
20102011
20112012
2012-@Callable(eK)
2013+@Callable(eL)
20132014 func claim (be) = {
20142015 let bW = if (br())
20152016 then bs()
20162017 else false
20172018 if ((bW == bW))
20182019 then {
2019- let fA = if ((size(be) > 0))
2020+ let fB = if ((size(be) > 0))
20202021 then valueOrErrorMessage(addressFromString(be), "claim: invalid user")
2021- else eK.caller
2022+ else eL.caller
20222023 let bq = aH()
2023- let eE = bq._1
2024- let fb = av(eE)
2025- let do = [fb, aL()]
2026- let fJ = (size(do) - 1)
2027- let cN = bg(fA)
2028- let fK = cM(fA)
2029- let fC = fK._1
2030- let cO = fK._2
2031- func aa (ab,fL) = {
2024+ let eF = bq._1
2025+ let fc = av(eF)
2026+ let do = [fc, aL()]
2027+ let fK = (size(do) - 1)
2028+ let cN = bg(fB)
2029+ let fL = cM(fB)
2030+ let fD = fL._1
2031+ let cO = fL._2
2032+ func aa (ab,fM) = {
20322033 let bO = ab._1
2033- if (if ((fJ >= bO))
2034- then (fL > 0)
2034+ if (if ((fK >= bO))
2035+ then (fM > 0)
20352036 else false)
20362037 then {
2037- let fM = do[bO]
2038- $Tuple3((bO + 1), (ab._2 :+ 0), (ab._3 :+ ScriptTransfer(fA, fL, ax(fM))))
2038+ let fN = do[bO]
2039+ $Tuple3((bO + 1), (ab._2 :+ 0), (ab._3 :+ ScriptTransfer(fB, fM, ax(fN))))
20392040 }
2040- else $Tuple3((bO + 1), (ab._2 :+ fL), ab._3)
2041+ else $Tuple3((bO + 1), (ab._2 :+ fM), ab._3)
20412042 }
20422043
2043- let fN = {
2044+ let fO = {
20442045 let ad = cO
20452046 let ae = size(ad)
20462047 let af = $Tuple3(0, nil, nil)
20542055
20552056 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
20562057 }
2057- let cT = fN._1
2058- let fO = fN._2
2059- let fP = fN._3
2060- $Tuple2(((fP ++ removeByIndex(fC, 0)) ++ bl(fA, fO)), unit)
2061- }
2062- else throw("Strict value is not equal to itself.")
2063- }
2064-
2065-
2066-
2067-@Callable(eK)
2058+ let cT = fO._1
2059+ let fP = fO._2
2060+ let fQ = fO._3
2061+ $Tuple2(((fQ ++ removeByIndex(fD, 0)) ++ bl(fB, fP)), unit)
2062+ }
2063+ else throw("Strict value is not equal to itself.")
2064+ }
2065+
2066+
2067+
2068+@Callable(eL)
20682069 func pause () = {
2069- let bW = if (if (bu(eK.caller))
2070+ let bW = if (if (bu(eL.caller))
20702071 then br()
20712072 else false)
20722073 then bs()
20782079
20792080
20802081
2081-@Callable(eK)
2082+@Callable(eL)
20822083 func unpause () = {
2083- let bW = if (if (bu(eK.caller))
2084+ let bW = if (if (bu(eL.caller))
20842085 then br()
20852086 else false)
20862087 then bt()
20922093
20932094
20942095
2095-@Callable(eK)
2096+@Callable(eL)
20962097 func updatePauser (aD) = {
2097- let bW = if (if (bm(eK.caller))
2098+ let bW = if (if (bm(eL.caller))
20982099 then br()
20992100 else false)
21002101 then I(aD, "updatePauser: invalid pauser")
21062107
21072108
21082109
2109-@Callable(eK)
2110+@Callable(eL)
21102111 func setMultisig (aG) = {
2111- let bW = if (bm(eK.caller))
2112+ let bW = if (bm(eL.caller))
21122113 then I(aG, "setMultisig: invalid multisig")
21132114 else false
21142115 if ((bW == bW))
21172118 }
21182119
21192120
2120-@Verifier(fQ)
2121-func fR () = {
2121+@Verifier(fR)
2122+func fS () = {
21222123 let L = getString(s)
21232124 if ($isInstanceOf(L, "String"))
21242125 then {
2125- let fS = L
2126- valueOrElse(getBoolean(addressFromStringValue(fS), makeString([t, toString(this), toBase58String(fQ.id)], a)), false)
2127- }
2128- else sigVerify(fQ.bodyBytes, fQ.proofs[0], fQ.senderPublicKey)
2126+ let fT = L
2127+ valueOrElse(getBoolean(addressFromStringValue(fT), makeString([t, toString(this), toBase58String(fR.id)], a)), false)
2128+ }
2129+ else sigVerify(fR.bodyBytes, fR.proofs[0], fR.senderPublicKey)
21292130 }
21302131
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "waves"
77
88 let c = 9223372036854775807
99
1010 let d = 1000000
1111
1212 let e = 1000000
1313
1414 let f = 1000000
1515
1616 let g = 1000000
1717
1818 let h = 1000000
1919
2020 let i = 1000000
2121
2222 let j = 1000000
2323
2424 let k = toBigInt(1000000000000000000)
2525
2626 let l = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2727
2828 let m = (l :+ 0)
2929
3030 let n = toBigInt(0)
3131
3232 let o = [n, n, n, n, n, n, n, n, n, n, n]
3333
3434 let p = 8
3535
3636 let q = 18
3737
3838 let r = split_51C("0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0", "_")
3939
4040 let s = "MULTISIG"
4141
4242 let t = "STATUS"
4343
4444 let u = "PAUSED"
4545
4646 let v = "PAUSER"
4747
4848 let w = "STORAGE"
4949
5050 let x = "ASSETS"
5151
5252 let y = "ASSET_BALANCES"
5353
5454 let z = "ASSET_WEIGHTS"
5555
5656 let A = "LP_FEE"
5757
5858 let B = "PROTOCOL_FEE"
5959
6060 let C = "PRECISION"
6161
6262 let D = "SIGMA_FEE_PER_LP"
6363
6464 let E = "USER_SIGMA_FEE_PER_LP"
6565
6666 let F = "USER_LP"
6767
6868 let G = "TOTAL_LP"
6969
7070 let H = "USER_PROFITS"
7171
7272 func I (J,K) = {
7373 let L = addressFromString(J)
7474 if ($isInstanceOf(L, "Address"))
7575 then {
7676 let M = L
7777 true
7878 }
7979 else throw(K)
8080 }
8181
8282
8383 func N (O,K) = if ((O == b))
8484 then true
8585 else {
8686 let L = assetInfo(fromBase58String(O))
8787 if ($isInstanceOf(L, "Asset"))
8888 then {
8989 let M = L
9090 true
9191 }
9292 else throw(K)
9393 }
9494
9595
9696 func P (Q,R,S,K) = if (if ((R > Q))
9797 then true
9898 else (Q > S))
9999 then throw(K)
100100 else true
101101
102102
103103 func T (Q,U,K) = if ((Q != U))
104104 then throw(K)
105105 else true
106106
107107
108108 func V (W,X,K) = if ((W != X))
109109 then throw(K)
110110 else true
111111
112112
113113 func Y (W,X,K) = if ((W == X))
114114 then throw(K)
115115 else true
116116
117117
118118 func Z (Q,R,S,K) = {
119119 func aa (ab,ac) = {
120120 let L = parseInt(ac)
121121 if ($isInstanceOf(L, "Int"))
122122 then {
123123 let M = L
124124 if (ab)
125125 then P(M, R, S, K)
126126 else false
127127 }
128128 else throw(K)
129129 }
130130
131131 let ad = Q
132132 let ae = size(ad)
133133 let af = true
134134 func ag (ah,ai) = if ((ai >= ae))
135135 then ah
136136 else aa(ah, ad[ai])
137137
138138 func aj (ah,ai) = if ((ai >= ae))
139139 then ah
140140 else throw("List size exceeds 10")
141141
142142 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
143143 }
144144
145145
146146 func ak (al,K) = {
147147 func aa (ab,ac) = if (ab)
148148 then N(ac, K)
149149 else false
150150
151151 let ad = al
152152 let ae = size(ad)
153153 let af = true
154154 func ag (ah,ai) = if ((ai >= ae))
155155 then ah
156156 else aa(ah, ad[ai])
157157
158158 func aj (ah,ai) = if ((ai >= ae))
159159 then ah
160160 else throw("List size exceeds 10")
161161
162162 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
163163 }
164164
165165
166166 func am (W,X,K) = if ((W != X))
167167 then throw(K)
168168 else true
169169
170170
171171 func an (Q,K) = if (if ((4 > size(Q)))
172172 then true
173173 else (size(Q) > 16))
174174 then throw(K)
175175 else true
176176
177177
178178 func ao (Q,K) = if ((size(Q) > 1000))
179179 then throw(K)
180180 else true
181181
182182
183183 func ap (Q,K) = if (if ((0 > Q))
184184 then true
185185 else (Q > 8))
186186 then throw(K)
187187 else true
188188
189189
190190 func aq (ar,O,as,K) = {
191191 let L = ar.assetId
192192 if ($isInstanceOf(L, "ByteVector"))
193193 then {
194194 let M = L
195195 if ((O != toBase58String(M)))
196196 then throw((K + ": asset"))
197197 else if ((as > ar.amount))
198198 then throw((K + ": amount"))
199199 else true
200200 }
201201 else throw((K + ": asset"))
202202 }
203203
204204
205205 func at (au,Q,K) = if (!(containsElement(au, Q)))
206206 then throw(K)
207207 else true
208208
209209
210210 func av (aw) = {
211211 let L = aw
212212 if ($isInstanceOf(L, "ByteVector"))
213213 then {
214214 let M = L
215215 toBase58String(M)
216216 }
217217 else b
218218 }
219219
220220
221221 func ax (aw) = if (if ((aw == b))
222222 then true
223223 else (aw == ""))
224224 then unit
225225 else fromBase58String(aw)
226226
227227
228228 func ay () = {
229229 let L = getBoolean(u)
230230 if ($isInstanceOf(L, "Boolean"))
231231 then {
232232 let M = L
233233 M
234234 }
235235 else false
236236 }
237237
238238
239239 func az (aA) = [BooleanEntry(u, aA)]
240240
241241
242242 func aB () = {
243243 let L = getString(v)
244244 if ($isInstanceOf(L, "String"))
245245 then {
246246 let M = L
247247 addressFromStringValue(M)
248248 }
249249 else Address(base58'')
250250 }
251251
252252
253253 func aC (aD) = [StringEntry(v, toString(aD))]
254254
255255
256256 func aE () = {
257257 let L = getString(s)
258258 if ($isInstanceOf(L, "String"))
259259 then {
260260 let M = L
261261 addressFromStringValue(M)
262262 }
263263 else Address(base58'')
264264 }
265265
266266
267267 func aF (aG) = [StringEntry(s, toString(aG))]
268268
269269
270270 func aH () = {
271271 let L = getString(w)
272272 if ($isInstanceOf(L, "String"))
273273 then {
274274 let M = L
275275 let aI = split(M, a)
276276 $Tuple10(fromBase58String(aI[0]), (aI[1] == "1"), parseIntValue(aI[2]), parseIntValue(aI[3]), parseIntValue(aI[4]), parseIntValue(aI[5]), parseIntValue(aI[6]), parseIntValue(aI[7]), parseIntValue(aI[8]), addressFromStringValue(aI[9]))
277277 }
278278 else $Tuple10(base58'', false, 0, 0, 0, 0, 0, 0, 0, Address(base58''))
279279 }
280280
281281
282282 func aJ (aK) = [StringEntry(w, makeString([toBase58String(aK._1), if (aK._2)
283283 then "1"
284284 else "0", toString(aK._3), toString(aK._4), toString(aK._5), toString(aK._6), toString(aK._7), toString(aK._8), toString(aK._9), toString(aK._10)], a))]
285285
286286
287287 func aL () = {
288288 let L = getString(x)
289289 if ($isInstanceOf(L, "String"))
290290 then {
291291 let M = L
292292 if ((size(M) > 0))
293293 then split_51C(M, a)
294294 else nil
295295 }
296296 else nil
297297 }
298298
299299
300300 func aM (al) = [StringEntry(x, makeString_11C(al, a))]
301301
302302
303303 func aN () = {
304304 func aa (ab,ac) = {
305305 let aO = parseIntValue(ac)
306306 $Tuple2((ab._1 :+ aO), (ab._2 + aO))
307307 }
308308
309309 let L = getString(y)
310310 if ($isInstanceOf(L, "String"))
311311 then {
312312 let M = L
313313 if ((size(M) > 0))
314314 then {
315315 let ad = split_51C(M, a)
316316 let ae = size(ad)
317317 let af = $Tuple2(nil, 0)
318318 func ag (ah,ai) = if ((ai >= ae))
319319 then ah
320320 else aa(ah, ad[ai])
321321
322322 func aj (ah,ai) = if ((ai >= ae))
323323 then ah
324324 else throw("List size exceeds 10")
325325
326326 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
327327 }
328328 else $Tuple2(l, 0)
329329 }
330330 else $Tuple2(l, 0)
331331 }
332332
333333
334334 func aP (aQ) = {
335335 func aa (ab,ac) = (ab :+ toString(ac))
336336
337337 [StringEntry(y, makeString_11C({
338338 let ad = aQ
339339 let ae = size(ad)
340340 let af = nil
341341 func ag (ah,ai) = if ((ai >= ae))
342342 then ah
343343 else aa(ah, ad[ai])
344344
345345 func aj (ah,ai) = if ((ai >= ae))
346346 then ah
347347 else throw("List size exceeds 10")
348348
349349 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
350350 }, a))]
351351 }
352352
353353
354354 func aR () = {
355355 func aa (ab,ac) = {
356356 let aS = parseIntValue(ac)
357357 $Tuple2((ab._1 :+ aS), (ab._2 + aS))
358358 }
359359
360360 let L = getString(z)
361361 if ($isInstanceOf(L, "String"))
362362 then {
363363 let M = L
364364 if ((size(M) > 0))
365365 then {
366366 let ad = split_51C(M, a)
367367 let ae = size(ad)
368368 let af = $Tuple2(nil, 0)
369369 func ag (ah,ai) = if ((ai >= ae))
370370 then ah
371371 else aa(ah, ad[ai])
372372
373373 func aj (ah,ai) = if ((ai >= ae))
374374 then ah
375375 else throw("List size exceeds 10")
376376
377377 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
378378 }
379379 else $Tuple2(l, 0)
380380 }
381381 else $Tuple2(l, 0)
382382 }
383383
384384
385385 func aT (aU) = {
386386 func aa (ab,ac) = (ab :+ toString(ac))
387387
388388 [StringEntry(z, makeString_11C({
389389 let ad = aU
390390 let ae = size(ad)
391391 let af = nil
392392 func ag (ah,ai) = if ((ai >= ae))
393393 then ah
394394 else aa(ah, ad[ai])
395395
396396 func aj (ah,ai) = if ((ai >= ae))
397397 then ah
398398 else throw("List size exceeds 10")
399399
400400 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
401401 }, a))]
402402 }
403403
404404
405405 func aV (O) = {
406406 let L = getInteger(makeString([A, O], a))
407407 if ($isInstanceOf(L, "Int"))
408408 then {
409409 let M = L
410410 M
411411 }
412412 else 0
413413 }
414414
415415
416416 func aW (O,Q) = [IntegerEntry(makeString([A, O], a), Q)]
417417
418418
419419 func aX (O) = {
420420 let L = getInteger(makeString([B, O], a))
421421 if ($isInstanceOf(L, "Int"))
422422 then {
423423 let M = L
424424 M
425425 }
426426 else 0
427427 }
428428
429429
430430 func aY (O,Q) = [IntegerEntry(makeString([B, O], a), Q)]
431431
432432
433433 func aZ () = {
434434 let L = getInteger(C)
435435 if ($isInstanceOf(L, "Int"))
436436 then {
437437 let M = L
438438 M
439439 }
440440 else 0
441441 }
442442
443443
444444 func ba (Q) = [IntegerEntry(C, Q)]
445445
446446
447447 func bb () = {
448448 func aa (ab,ac) = (ab :+ parseBigIntValue(ac))
449449
450450 let L = getString(D)
451451 if ($isInstanceOf(L, "String"))
452452 then {
453453 let M = L
454454 if ((size(M) > 0))
455455 then {
456456 let ad = split_51C(M, a)
457457 let ae = size(ad)
458458 let af = nil
459459 func ag (ah,ai) = if ((ai >= ae))
460460 then ah
461461 else aa(ah, ad[ai])
462462
463463 func aj (ah,ai) = if ((ai >= ae))
464464 then ah
465465 else throw("List size exceeds 11")
466466
467467 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
468468 }
469469 else o
470470 }
471471 else o
472472 }
473473
474474
475475 func bc (Q) = {
476476 func aa (ab,ac) = (ab :+ toString(ac))
477477
478478 [StringEntry(D, makeString_11C({
479479 let ad = Q
480480 let ae = size(ad)
481481 let af = nil
482482 func ag (ah,ai) = if ((ai >= ae))
483483 then ah
484484 else aa(ah, ad[ai])
485485
486486 func aj (ah,ai) = if ((ai >= ae))
487487 then ah
488488 else throw("List size exceeds 11")
489489
490490 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
491491 }, a))]
492492 }
493493
494494
495495 func bd (be) = {
496496 func aa (ab,ac) = (ab :+ parseBigIntValue(ac))
497497
498498 let L = getString(makeString([E, toString(be)], a))
499499 if ($isInstanceOf(L, "String"))
500500 then {
501501 let M = L
502502 if ((size(M) > 0))
503503 then {
504504 let ad = split_51C(M, a)
505505 let ae = size(ad)
506506 let af = nil
507507 func ag (ah,ai) = if ((ai >= ae))
508508 then ah
509509 else aa(ah, ad[ai])
510510
511511 func aj (ah,ai) = if ((ai >= ae))
512512 then ah
513513 else throw("List size exceeds 11")
514514
515515 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
516516 }
517517 else o
518518 }
519519 else o
520520 }
521521
522522
523523 func bf (be,Q) = {
524524 func aa (ab,ac) = (ab :+ toString(ac))
525525
526526 [StringEntry(makeString([E, toString(be)], a), makeString_11C({
527527 let ad = Q
528528 let ae = size(ad)
529529 let af = nil
530530 func ag (ah,ai) = if ((ai >= ae))
531531 then ah
532532 else aa(ah, ad[ai])
533533
534534 func aj (ah,ai) = if ((ai >= ae))
535535 then ah
536536 else throw("List size exceeds 11")
537537
538538 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
539539 }, a))]
540540 }
541541
542542
543543 func bg (J) = {
544544 let L = getInteger(makeString([F, toString(J)], a))
545545 if ($isInstanceOf(L, "Int"))
546546 then {
547547 let M = L
548548 M
549549 }
550550 else 0
551551 }
552552
553553
554554 func bh (J,Q) = [IntegerEntry(makeString([F, toString(J)], a), Q)]
555555
556556
557557 func bi () = {
558558 let L = getInteger(G)
559559 if ($isInstanceOf(L, "Int"))
560560 then {
561561 let M = L
562562 M
563563 }
564564 else 0
565565 }
566566
567567
568568 func bj (Q) = [IntegerEntry(G, Q)]
569569
570570
571571 func bk (be) = {
572572 func aa (ab,ac) = (ab :+ parseIntValue(ac))
573573
574574 let L = getString(makeString([H, toString(be)], a))
575575 if ($isInstanceOf(L, "String"))
576576 then {
577577 let M = L
578578 if ((size(M) > 0))
579579 then {
580580 let ad = split_51C(M, a)
581581 let ae = size(ad)
582582 let af = nil
583583 func ag (ah,ai) = if ((ai >= ae))
584584 then ah
585585 else aa(ah, ad[ai])
586586
587587 func aj (ah,ai) = if ((ai >= ae))
588588 then ah
589589 else throw("List size exceeds 11")
590590
591591 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
592592 }
593593 else m
594594 }
595595 else m
596596 }
597597
598598
599599 func bl (be,Q) = {
600600 func aa (ab,ac) = (ab :+ toString(ac))
601601
602602 [StringEntry(makeString([H, toString(be)], a), makeString_11C({
603603 let ad = Q
604604 let ae = size(ad)
605605 let af = nil
606606 func ag (ah,ai) = if ((ai >= ae))
607607 then ah
608608 else aa(ah, ad[ai])
609609
610610 func aj (ah,ai) = if ((ai >= ae))
611611 then ah
612612 else throw("List size exceeds 11")
613613
614614 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
615615 }, a))]
616616 }
617617
618618
619619 func bm (bn) = if ((bn != this))
620620 then throw("_onlyThisContract: revert")
621621 else true
622622
623623
624624 func bo () = if ((aE() == Address(base58'')))
625625 then throw("_whenMultisigSet: revert")
626626 else true
627627
628628
629629 func bp () = {
630630 let bq = aH()
631631 if ((bq._1 != base58''))
632632 then throw("_whenNotInitialized: revert")
633633 else true
634634 }
635635
636636
637637 func br () = {
638638 let bq = aH()
639639 if ((bq._1 == base58''))
640640 then throw("_whenInitialized: revert")
641641 else true
642642 }
643643
644644
645645 func bs () = if (ay())
646646 then throw("_whenNotPaused: revert")
647647 else true
648648
649649
650650 func bt () = if (!(ay()))
651651 then throw("_whenPaused: revert")
652652 else true
653653
654654
655655 func bu (bn) = if ((bn != aB()))
656656 then throw("_onlyPauser: revert")
657657 else true
658658
659659
660660 func bv (O) = {
661661 let L = assetInfo(fromBase58String(O))
662662 if ($isInstanceOf(L, "Asset"))
663663 then {
664664 let M = L
665665 M.decimals
666666 }
667667 else throw(("_getDecimals: no asset=" + O))
668668 }
669669
670670
671671 func bw (bx,by,bz,bA) = if ((by >= bz))
672672 then fraction(bx, 1, pow(10, 0, (by - bz), 0, 0, DOWN), bA)
673673 else (bx * pow(10, 0, (bz - by), 0, 0, DOWN))
674674
675675
676676 func bB (al) = {
677677 func aa (ab,ac) = (ab :+ 0)
678678
679679 let ad = al
680680 let ae = size(ad)
681681 let af = nil
682682 func ag (ah,ai) = if ((ai >= ae))
683683 then ah
684684 else aa(ah, ad[ai])
685685
686686 func aj (ah,ai) = if ((ai >= ae))
687687 then ah
688688 else throw("List size exceeds 10")
689689
690690 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
691691 }
692692
693693
694694 func bC (bD) = {
695695 func aa (ab,ac) = {
696696 let aS = parseIntValue(ac)
697697 $Tuple2((ab._1 :+ aS), (ab._2 + aS))
698698 }
699699
700700 let ad = bD
701701 let ae = size(ad)
702702 let af = $Tuple2(nil, 0)
703703 func ag (ah,ai) = if ((ai >= ae))
704704 then ah
705705 else aa(ah, ad[ai])
706706
707707 func aj (ah,ai) = if ((ai >= ae))
708708 then ah
709709 else throw("List size exceeds 10")
710710
711711 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
712712 }
713713
714714
715715 func bE (al,bF) = {
716716 func aa (ab,ac) = {
717717 let bG = bv(ac)
718718 let aO = bw(assetBalance(this, fromBase58String(ac)), bG, bF, DOWN)
719719 $Tuple2((ab._1 :+ aO), (ab._2 + aO))
720720 }
721721
722722 let ad = al
723723 let ae = size(ad)
724724 let af = $Tuple2(nil, 0)
725725 func ag (ah,ai) = if ((ai >= ae))
726726 then ah
727727 else aa(ah, ad[ai])
728728
729729 func aj (ah,ai) = if ((ai >= ae))
730730 then ah
731731 else throw("List size exceeds 10")
732732
733733 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
734734 }
735735
736736
737737 func bH (al) = {
738738 func aa (ab,ac) = (ab :+ toString(ac))
739739
740740 makeString({
741741 let ad = al
742742 let ae = size(ad)
743743 let af = nil
744744 func ag (ah,ai) = if ((ai >= ae))
745745 then ah
746746 else aa(ah, ad[ai])
747747
748748 func aj (ah,ai) = if ((ai >= ae))
749749 then ah
750750 else throw("List size exceeds 11")
751751
752752 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
753753 }, a)
754754 }
755755
756756
757757 func bI (al) = {
758758 func aa (ab,ac) = (ab :+ toString(ac))
759759
760760 makeString({
761761 let ad = al
762762 let ae = size(ad)
763763 let af = nil
764764 func ag (ah,ai) = if ((ai >= ae))
765765 then ah
766766 else aa(ah, ad[ai])
767767
768768 func aj (ah,ai) = if ((ai >= ae))
769769 then ah
770770 else throw("List size exceeds 11")
771771
772772 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
773773 }, a)
774774 }
775775
776776
777777 func bJ (bK,aU,bL) = {
778778 func aa (ab,ac) = (ab :+ fraction(bK, ac, bL))
779779
780780 let ad = aU
781781 let ae = size(ad)
782782 let af = nil
783783 func ag (ah,ai) = if ((ai >= ae))
784784 then ah
785785 else aa(ah, ad[ai])
786786
787787 func aj (ah,ai) = if ((ai >= ae))
788788 then ah
789789 else throw("List size exceeds 10")
790790
791791 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
792792 }
793793
794794
795795 func bM (aQ,bN) = {
796796 func aa (ab,ac) = {
797797 let bO = ab._1
798798 let bP = bN[bO]
799799 let bQ = (ac + bP)
800800 $Tuple3((bO + 1), (ab._2 :+ bQ), (ab._3 + bQ))
801801 }
802802
803803 let bR = {
804804 let ad = aQ
805805 let ae = size(ad)
806806 let af = $Tuple3(0, nil, 0)
807807 func ag (ah,ai) = if ((ai >= ae))
808808 then ah
809809 else aa(ah, ad[ai])
810810
811811 func aj (ah,ai) = if ((ai >= ae))
812812 then ah
813813 else throw("List size exceeds 10")
814814
815815 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
816816 }
817817 $Tuple2(bR._2, bR._3)
818818 }
819819
820820
821821 func bS (aQ,bT,al,bF,K) = {
822822 func aa (ab,ac) = {
823823 let bO = ab._1
824824 let bU = bT[bO]
825825 let bV = av(bU.assetId)
826826 let bW = if ((bV != al[bO]))
827827 then throw(((K + ": index=") + toString(bO)))
828828 else unit
829829 if ((bW == bW))
830830 then {
831831 let bG = bv(bV)
832832 let bQ = (ac + bw(bT[bO].amount, bG, bF, DOWN))
833833 $Tuple3((bO + 1), (ab._2 :+ bQ), (ab._3 + bQ))
834834 }
835835 else throw("Strict value is not equal to itself.")
836836 }
837837
838838 let bR = {
839839 let ad = aQ
840840 let ae = size(ad)
841841 let af = $Tuple3(0, nil, 0)
842842 func ag (ah,ai) = if ((ai >= ae))
843843 then ah
844844 else aa(ah, ad[ai])
845845
846846 func aj (ah,ai) = if ((ai >= ae))
847847 then ah
848848 else throw("List size exceeds 10")
849849
850850 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
851851 }
852852 $Tuple2(bR._2, bR._3)
853853 }
854854
855855
856856 func bX (aQ,bY,bx) = {
857857 func aa (ab,ac) = {
858858 let bO = ab._1
859859 if ((bO == bY))
860860 then $Tuple2((bO + 1), (ab._2 :+ (ac + bx)))
861861 else $Tuple2((bO + 1), (ab._2 :+ ac))
862862 }
863863
864864 let bR = {
865865 let ad = aQ
866866 let ae = size(ad)
867867 let af = $Tuple2(0, nil)
868868 func ag (ah,ai) = if ((ai >= ae))
869869 then ah
870870 else aa(ah, ad[ai])
871871
872872 func aj (ah,ai) = if ((ai >= ae))
873873 then ah
874874 else throw("List size exceeds 10")
875875
876876 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
877877 }
878878 bR._2
879879 }
880880
881881
882882 func bZ (aQ,bY,bx) = {
883883 func aa (ab,ac) = {
884884 let bO = ab._1
885885 if ((bO == bY))
886886 then $Tuple2((bO + 1), (ab._2 :+ (ac - bx)))
887887 else $Tuple2((bO + 1), (ab._2 :+ ac))
888888 }
889889
890890 let bR = {
891891 let ad = aQ
892892 let ae = size(ad)
893893 let af = $Tuple2(0, nil)
894894 func ag (ah,ai) = if ((ai >= ae))
895895 then ah
896896 else aa(ah, ad[ai])
897897
898898 func aj (ah,ai) = if ((ai >= ae))
899899 then ah
900900 else throw("List size exceeds 10")
901901
902902 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
903903 }
904904 bR._2
905905 }
906906
907907
908908 func ca (aQ,bx,cb) = {
909909 let cc = fraction((cb - bx), j, cb, CEILING)
910910 func aa (ab,ac) = {
911911 let bQ = fraction(ac, cc, j, CEILING)
912912 let cd = (ac - bQ)
913913 $Tuple3((ab._1 :+ bQ), (ab._2 + bQ), (ab._3 :+ cd))
914914 }
915915
916916 let ad = aQ
917917 let ae = size(ad)
918918 let af = $Tuple3(nil, 0, nil)
919919 func ag (ah,ai) = if ((ai >= ae))
920920 then ah
921921 else aa(ah, ad[ai])
922922
923923 func aj (ah,ai) = if ((ai >= ae))
924924 then ah
925925 else throw("List size exceeds 10")
926926
927927 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
928928 }
929929
930930
931931 func ce (al,aQ,cf,by) = {
932932 func aa (ab,ac) = {
933933 let bO = ab._1
934934 $Tuple2((bO + 1), (ab._2 :+ ScriptTransfer(cf, bw(aQ[bO], by, bv(ac), DOWN), ax(ac))))
935935 }
936936
937937 let bR = {
938938 let ad = al
939939 let ae = size(ad)
940940 let af = $Tuple2(0, nil)
941941 func ag (ah,ai) = if ((ai >= ae))
942942 then ah
943943 else aa(ah, ad[ai])
944944
945945 func aj (ah,ai) = if ((ai >= ae))
946946 then ah
947947 else throw("List size exceeds 10")
948948
949949 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
950950 }
951951 bR._2
952952 }
953953
954954
955955 func cg (ch,ci,cj,ck,cl) = if ((ci > ch))
956956 then {
957957 let cm = fraction(ci, (f - cj), f)
958958 if ((cm > ch))
959959 then {
960960 let cn = (cm - ch)
961961 let co = fraction(fraction(cn, ck, h), i, ci)
962962 if ((co > cl))
963963 then fraction(cn, cl, i)
964964 else fraction(cn, co, i)
965965 }
966966 else 0
967967 }
968968 else {
969969 let cm = fraction(ci, (f + cj), f)
970970 if ((ch > cm))
971971 then {
972972 let cn = (ch - cm)
973973 let co = fraction(fraction(cn, ck, h), i, ci)
974974 if ((co > cl))
975975 then fraction(cn, cl, i)
976976 else fraction(cn, co, i)
977977 }
978978 else 0
979979 }
980980
981981
982982 func cp (aQ,cq,aU,bL,cj,ck,cl) = {
983983 func aa (ab,aO) = {
984984 let bO = ab._1
985985 let cr = fraction(cq, aU[bO], bL)
986986 $Tuple2((bO + 1), (ab._2 + cg(aO, cr, cj, ck, cl)))
987987 }
988988
989989 let bR = {
990990 let ad = aQ
991991 let ae = size(ad)
992992 let af = $Tuple2(0, 0)
993993 func ag (ah,ai) = if ((ai >= ae))
994994 then ah
995995 else aa(ah, ad[ai])
996996
997997 func aj (ah,ai) = if ((ai >= ae))
998998 then ah
999999 else throw("List size exceeds 10")
10001000
10011001 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
10021002 }
10031003 bR._2
10041004 }
10051005
10061006
10071007 func cs (ct,cu,cv,cw,cx,cb,bD,bL,cj,ck,cl) = if (if ((cx == 0))
10081008 then true
10091009 else (cb == 0))
10101010 then true
10111011 else {
10121012 let cy = fraction((cu - cp(ct, cu, bD, bL, cj, ck, cl)), j, cx)
10131013 let cz = fraction((cw - cp(cv, cw, bD, bL, cj, ck, cl)), j, cb)
10141014 let cA = (cz - cy)
10151015 if (if ((0 >= cA))
10161016 then ((-1 * aZ()) > cA)
10171017 else false)
10181018 then throw(("_validateLiquidityInvariant: revert: diff=" + toString(cA)))
10191019 else true
10201020 }
10211021
10221022
10231023 func cB (ct,cu,cv,cw,bD,bL,cj,ck,cl) = {
10241024 let cC = (cu - cp(ct, cu, bD, bL, cj, ck, cl))
10251025 let cD = (cw - cp(cv, cw, bD, bL, cj, ck, cl))
10261026 let cA = (cD - cC)
10271027 if (if ((0 >= cA))
10281028 then ((-1 * aZ()) > cA)
10291029 else false)
10301030 then throw(("_validateSwapInvariant: revert: diff=" + toString(cA)))
10311031 else true
10321032 }
10331033
10341034
10351035 func cE (ch,cw,cF,cu,cG,bL,cH) = {
10361036 let cr = fraction(cw, cG, bL)
10371037 let cI = if ((ch > cr))
10381038 then (e + cH)
10391039 else (e - cH)
10401040 let cJ = fraction(cr, cI, e)
10411041 let cK = fraction(fraction(cu, cG, bL), cI, e)
10421042 if ((ch > cr))
10431043 then if ((ch > cJ))
10441044 then if ((cK > cF))
10451045 then throw("_validateAssetAllocation: new up")
10461046 else if (((ch - cJ) > (cF - cK)))
10471047 then throw("_validateAssetAllocation: still up")
10481048 else true
10491049 else true
10501050 else if ((cJ > ch))
10511051 then if ((cF > cK))
10521052 then throw("_validateAssetAllocation: new down")
10531053 else if (((cJ - ch) > (cK - cF)))
10541054 then throw("_validateAssetAllocation: still down")
10551055 else true
10561056 else true
10571057 }
10581058
10591059
10601060 func cL (cv,cw,ct,cu,bD,bL,cH) = {
10611061 func aa (ab,ac) = {
10621062 let bO = ab._1
10631063 $Tuple2((bO + 1), if (ab._2)
10641064 then cE(ac, cw, ct[bO], cu, bD[bO], bL, cH)
10651065 else false)
10661066 }
10671067
10681068 let bR = {
10691069 let ad = cv
10701070 let ae = size(ad)
10711071 let af = $Tuple2(0, true)
10721072 func ag (ah,ai) = if ((ai >= ae))
10731073 then ah
10741074 else aa(ah, ad[ai])
10751075
10761076 func aj (ah,ai) = if ((ai >= ae))
10771077 then ah
10781078 else throw("List size exceeds 10")
10791079
10801080 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
10811081 }
10821082 bR._2
10831083 }
10841084
10851085
10861086 func cM (be) = {
10871087 let cN = bg(be)
10881088 let cO = bk(be)
10891089 let cP = bb()
10901090 let cQ = bd(be)
10911091 func aa (ab,ac) = {
10921092 let bO = ab._1
10931093 let cR = (cO[bO] + toInt(fraction(toBigInt(cN), (cP[bO] - cQ[bO]), k)))
10941094 $Tuple2((bO + 1), (ab._2 :+ cR))
10951095 }
10961096
10971097 let cS = {
10981098 let ad = m
10991099 let ae = size(ad)
11001100 let af = $Tuple2(0, nil)
11011101 func ag (ah,ai) = if ((ai >= ae))
11021102 then ah
11031103 else aa(ah, ad[ai])
11041104
11051105 func aj (ah,ai) = if ((ai >= ae))
11061106 then ah
11071107 else throw("List size exceeds 11")
11081108
11091109 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
11101110 }
11111111 let cT = cS._1
11121112 let cU = cS._2
11131113 $Tuple2((bl(be, cU) ++ bf(be, cP)), cU)
11141114 }
11151115
11161116
11171117 func cV (cW,cX,bY,cY) = {
11181118 func aa (ab,ac) = {
11191119 let bO = ab._1
11201120 let cZ = if ((bY == bO))
11211121 then (cW[bO] + fraction(toBigInt(cY), k, toBigInt(cX)))
11221122 else cW[bO]
11231123 $Tuple2((bO + 1), (ab._2 :+ cZ))
11241124 }
11251125
11261126 let da = {
11271127 let ad = m
11281128 let ae = size(ad)
11291129 let af = $Tuple2(0, nil)
11301130 func ag (ah,ai) = if ((ai >= ae))
11311131 then ah
11321132 else aa(ah, ad[ai])
11331133
11341134 func aj (ah,ai) = if ((ai >= ae))
11351135 then ah
11361136 else throw("List size exceeds 11")
11371137
11381138 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
11391139 }
11401140 let cT = da._1
11411141 let cZ = da._2
11421142 cZ
11431143 }
11441144
11451145
11461146 func db (dc,bx,dd,de) = {
11471147 let cP = bb()
11481148 let df = bi()
11491149 let dg = if ((df == 0))
11501150 then $Tuple2(0, fraction(bx, de, d))
11511151 else $Tuple2(fraction(bx, dd, d), fraction(bx, de, d))
11521152 let dh = dg._1
11531153 let di = dg._2
11541154 let cZ = if ((dh == 0))
11551155 then cP
11561156 else cV(cP, df, dc, dh)
11571157 $Tuple3(dh, di, cZ)
11581158 }
11591159
11601160
11611161 func dj (bx) = {
11621162 let bq = aH()
11631163 let dk = bq._3
11641164 let dl = bq._7
11651165 let dm = bq._8
11661166 let dn = bq._9
11671167 let do = aL()
11681168 let dp = aR()
11691169 let dq = dp._1
11701170 let dr = dp._2
11711171 let ds = aN()
11721172 let dt = ds._1
11731173 let du = ds._2
11741174 let dv = if ((du == 0))
11751175 then {
11761176 func aa (ab,ac) = {
11771177 let bO = ab._1
11781178 let dw = fraction(dq[bO], bx, dr)
11791179 $Tuple2((bO + 1), (ab._2 :+ dw))
11801180 }
11811181
11821182 let dx = {
11831183 let ad = do
11841184 let ae = size(ad)
11851185 let af = $Tuple2(0, nil)
11861186 func ag (ah,ai) = if ((ai >= ae))
11871187 then ah
11881188 else aa(ah, ad[ai])
11891189
11901190 func aj (ah,ai) = if ((ai >= ae))
11911191 then ah
11921192 else throw("List size exceeds 10")
11931193
11941194 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
11951195 }
11961196 let cT = dx._1
11971197 let dy = dx._2
11981198 $Tuple2(bx, dy)
11991199 }
12001200 else {
12011201 let dz = fraction(toBigInt(bx), k, toBigInt(du))
12021202 func dA (ab,ac) = {
12031203 let bO = ab._1
12041204 let dw = toInt(fraction(dz, toBigInt(dt[bO]), k))
12051205 $Tuple2((bO + 1), (ab._2 :+ dw))
12061206 }
12071207
12081208 let dB = {
12091209 let ad = do
12101210 let ae = size(ad)
12111211 let af = $Tuple2(0, nil)
12121212 func ag (ah,ai) = if ((ai >= ae))
12131213 then ah
12141214 else dA(ah, ad[ai])
12151215
12161216 func aj (ah,ai) = if ((ai >= ae))
12171217 then ah
12181218 else throw("List size exceeds 10")
12191219
12201220 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
12211221 }
12221222 let cT = dB._1
12231223 let dy = dB._2
12241224 $Tuple2(fraction(bx, dk, du), dy)
12251225 }
12261226 let dC = dv._1
12271227 let dy = dv._2
12281228 let dD = bM(dt, dy)
12291229 let dE = dD._1
12301230 let dF = dD._2
12311231 let dG = cs(dt, du, dE, dF, dk, (dk + dC), dq, dr, dl, dm, dn)
12321232 if ((dG == dG))
12331233 then $Tuple3(dC, dy, dE)
12341234 else throw("Strict value is not equal to itself.")
12351235 }
12361236
12371237
12381238 func dH (O,bx) = {
12391239 let bq = aH()
12401240 let dk = bq._3
12411241 let dI = bq._4
12421242 let dJ = bq._5
12431243 let dK = bq._6
12441244 let dl = bq._7
12451245 let dm = bq._8
12461246 let dn = bq._9
12471247 let do = aL()
12481248 let dL = aR()
12491249 let dq = dL._1
12501250 let dr = dL._2
12511251 let dM = aN()
12521252 let dt = dM._1
12531253 let du = dM._2
12541254 let dE = bX(dt, value(indexOf(do, O)), bx)
12551255 let dF = (du + bx)
12561256 let dG = cL(dE, dF, dt, du, dq, dr, dK)
12571257 if ((dG == dG))
12581258 then {
12591259 let dN = cp(dt, du, dq, dr, dl, dm, dn)
12601260 let dO = cp(dE, dF, dq, dr, dl, dm, dn)
12611261 let dC = if ((dk == 0))
12621262 then throw("_deposit: empty pool")
12631263 else {
12641264 let dP = (dF - du)
12651265 let dQ = (dO - dN)
12661266 let dR = fraction((dP - dQ), j, (du - dN))
12671267 let dS = fraction(dk, dR, j)
12681268 let dT = cs(dt, du, dE, dF, dk, (dk + dS), dq, dr, dl, dm, dn)
12691269 if ((dT == dT))
12701270 then dS
12711271 else throw("Strict value is not equal to itself.")
12721272 }
12731273 let dU = db(0, dC, (dI / 2), (dJ / 2))
12741274 let dh = dU._1
12751275 let di = dU._2
12761276 let cZ = dU._3
12771277 $Tuple5(dC, dE, dh, di, cZ)
12781278 }
12791279 else throw("Strict value is not equal to itself.")
12801280 }
12811281
12821282
12831283 func dV (bx) = {
12841284 let bq = aH()
12851285 let dk = bq._3
12861286 let dK = bq._6
12871287 let dl = bq._7
12881288 let dm = bq._8
12891289 let dn = bq._9
12901290 let dW = aN()
12911291 let dt = dW._1
12921292 let du = dW._2
12931293 let dX = aR()
12941294 let dq = dX._1
12951295 let dr = dX._2
12961296 let dY = bx
12971297 let bW = P(dY, 0, c, "_withdrawAll: lpTokensToBurn less than 0")
12981298 if ((bW == bW))
12991299 then {
13001300 let dZ = ca(dt, dY, dk)
13011301 let dE = dZ._1
13021302 let dF = dZ._2
13031303 let ea = dZ._3
13041304 let dG = cs(dt, du, dE, dF, dk, (dk - dY), dq, dr, dl, dm, dn)
13051305 if ((dG == dG))
13061306 then $Tuple3(dY, ea, dE)
13071307 else throw("Strict value is not equal to itself.")
13081308 }
13091309 else throw("Strict value is not equal to itself.")
13101310 }
13111311
13121312
13131313 func eb (O,ec) = {
13141314 let bq = aH()
13151315 let dk = bq._3
13161316 let dI = bq._4
13171317 let dJ = bq._5
13181318 let dK = bq._6
13191319 let dl = bq._7
13201320 let dm = bq._8
13211321 let dn = bq._9
13221322 let ed = aZ()
13231323 let do = aL()
13241324 let ee = aN()
13251325 let dt = ee._1
13261326 let du = ee._2
13271327 let ef = aR()
13281328 let dq = ef._1
13291329 let dr = ef._2
13301330 let eg = value(indexOf(do, O))
13311331 let dN = cp(dt, du, dq, dr, dl, dm, dn)
13321332 let eh = (du - dN)
13331333 let ei = fraction(toBigInt((dk - ec)), k, toBigInt(dk))
13341334 let ej = toInt(fraction(toBigInt(eh), ei, k))
13351335 func aa (ab,ac) = if (ab._1)
13361336 then ab
13371337 else {
13381338 let ek = ab._2
13391339 let el = ab._3
13401340 let em = ((el + ek) / 2)
13411341 let en = bZ(dt, eg, em)
13421342 let eo = (du - em)
13431343 let ep = (eo - cp(en, eo, dq, dr, dl, dm, dn))
13441344 if (if (((ep - ej) > (-1 * ed)))
13451345 then (ed > (ep - ej))
13461346 else false)
13471347 then $Tuple4(true, ek, el, em)
13481348 else if ((0 > (ep - ej)))
13491349 then $Tuple4(false, ek, em, em)
13501350 else $Tuple4(false, em, el, em)
13511351 }
13521352
13531353 let eq = {
1354- let er = {
1354+ let er = toInt(fraction(toBigInt((ec + dN)), ei, k, CEILING))
1355+ let es = {
13551356 let ad = r
13561357 let ae = size(ad)
1357- let af = $Tuple4(false, 0, (ec + dN), 0)
1358+ let af = $Tuple4(false, 0, er, 0)
13581359 func ag (ah,ai) = if ((ai >= ae))
13591360 then ah
13601361 else aa(ah, ad[ai])
13611362
13621363 func aj (ah,ai) = if ((ai >= ae))
13631364 then ah
13641365 else throw("List size exceeds 64")
13651366
13661367 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64)
13671368 }
1368- let es = er._1
1369- let et = er._2
1370- let eu = er._3
1371- let ev = er._4
1372- if (!(es))
1373- then throw(("_withdraw: can't calculate targetAmount=" + toString(ev)))
1374- else ev
1375- }
1376- let ew = bZ(dt, eg, eq)
1377- let ex = (du - eq)
1378- let ey = if (cL(ew, ex, dt, du, dq, dr, dK))
1379- then cs(dt, du, ew, ex, dk, (dk - ec), dq, dr, dl, dm, dn)
1369+ let et = es._1
1370+ let eu = es._2
1371+ let ev = es._3
1372+ let ew = es._4
1373+ if (!(et))
1374+ then throw(("_withdraw: can't calculate targetAmount=" + toString(ew)))
1375+ else ew
1376+ }
1377+ let ex = bZ(dt, eg, eq)
1378+ let ey = (du - eq)
1379+ let ez = if (cL(ex, ey, dt, du, dq, dr, dK))
1380+ then cs(dt, du, ex, ey, dk, (dk - ec), dq, dr, dl, dm, dn)
13801381 else false
1381- if ((ey == ey))
1382- then {
1383- let ez = db((eg + 1), eq, (dI / 2), (dJ / 2))
1384- let dh = ez._1
1385- let di = ez._2
1386- let cZ = ez._3
1387- $Tuple5(eq, ew, dh, di, cZ)
1388- }
1389- else throw("Strict value is not equal to itself.")
1390- }
1391-
1392-
1393-func eA (eB,eC,eD) = {
1382+ if ((ez == ez))
1383+ then {
1384+ let eA = db((eg + 1), eq, (dI / 2), (dJ / 2))
1385+ let dh = eA._1
1386+ let di = eA._2
1387+ let cZ = eA._3
1388+ $Tuple5(eq, ex, dh, di, cZ)
1389+ }
1390+ else throw("Strict value is not equal to itself.")
1391+ }
1392+
1393+
1394+func eB (eC,eD,eE) = {
13941395 let bq = aH()
1395- let eE = bq._1
1396- let eF = bv(toBase58String(eE))
1396+ let eF = bq._1
1397+ let eG = bv(toBase58String(eF))
13971398 let dk = bq._3
13981399 let dI = bq._4
13991400 let dJ = bq._5
14001401 let dK = bq._6
14011402 let dl = bq._7
14021403 let dm = bq._8
14031404 let dn = bq._9
14041405 let ed = aZ()
1405- let eG = aN()
1406- let dt = eG._1
1407- let du = eG._2
1408- let eH = aR()
1409- let dq = eH._1
1410- let dr = eH._2
1411- let dE = bX(dt, eB, eD)
1412- let dF = (du + eD)
1406+ let eH = aN()
1407+ let dt = eH._1
1408+ let du = eH._2
1409+ let eI = aR()
1410+ let dq = eI._1
1411+ let dr = eI._2
1412+ let dE = bX(dt, eC, eE)
1413+ let dF = (du + eE)
14131414 let dN = cp(dt, du, dq, dr, dl, dm, dn)
14141415 let eh = (du - dN)
14151416 func aa (ab,ac) = if (ab._1)
14161417 then ab
14171418 else {
14181419 let ek = ab._2
14191420 let el = ab._3
14201421 let em = ((el + ek) / 2)
1421- let en = bZ(dE, eC, em)
1422+ let en = bZ(dE, eD, em)
14221423 let eo = (dF - em)
14231424 let ep = (eo - cp(en, eo, dq, dr, dl, dm, dn))
14241425 if (if (((ep - eh) > (-1 * ed)))
14251426 then (ed > (ep - eh))
14261427 else false)
14271428 then $Tuple4(true, ek, el, em)
14281429 else if ((0 > (ep - eh)))
14291430 then $Tuple4(false, ek, em, em)
14301431 else $Tuple4(false, em, el, em)
14311432 }
14321433
14331434 let eq = {
1434- let eq = eD
1435- let en = bZ(dE, eC, eq)
1435+ let eq = eE
1436+ let en = bZ(dE, eD, eq)
14361437 let eo = (dF - eq)
14371438 let dO = cp(en, eo, dq, dr, dl, dm, dn)
14381439 let dQ = (dO - dN)
14391440 if ((dQ == 0))
14401441 then eq
14411442 else {
1442- let eI = {
1443+ let eJ = {
14431444 let ad = r
14441445 let ae = size(ad)
1445- let af = $Tuple4(false, 0, (eD + dN), 0)
1446+ let af = $Tuple4(false, 0, (eE + dN), 0)
14461447 func ag (ah,ai) = if ((ai >= ae))
14471448 then ah
14481449 else aa(ah, ad[ai])
14491450
14501451 func aj (ah,ai) = if ((ai >= ae))
14511452 then ah
14521453 else throw("List size exceeds 64")
14531454
14541455 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64)
14551456 }
1456- let es = eI._1
1457- let et = eI._2
1458- let eu = eI._3
1459- let ev = eI._4
1460- if (!(es))
1461- then throw(("_swap: can't calculate targetAmount=" + toString(ev)))
1462- else ev
1457+ let et = eJ._1
1458+ let eu = eJ._2
1459+ let ev = eJ._3
1460+ let ew = eJ._4
1461+ if (!(et))
1462+ then throw(("_swap: can't calculate targetAmount=" + toString(ew)))
1463+ else ew
14631464 }
14641465 }
1465- let ew = bZ(dE, eC, eq)
1466- let ex = (dF - eq)
1467- let ey = if (cL(ew, ex, dt, du, dq, dr, dK))
1468- then cB(dt, du, ew, ex, dq, dr, dl, dm, dn)
1466+ let ex = bZ(dE, eD, eq)
1467+ let ey = (dF - eq)
1468+ let ez = if (cL(ex, ey, dt, du, dq, dr, dK))
1469+ then cB(dt, du, ex, ey, dq, dr, dl, dm, dn)
14691470 else false
1470- if ((ey == ey))
1471- then {
1472- let eJ = db((eC + 1), eq, dI, dJ)
1473- let dh = eJ._1
1474- let di = eJ._2
1475- let cZ = eJ._3
1476- $Tuple5(eq, ew, dh, di, cZ)
1477- }
1478- else throw("Strict value is not equal to itself.")
1479- }
1480-
1481-
1482-@Callable(eK)
1483-func init (al,bD,dd,de,eL,eM,eN,eO,cj,ck,cl,eP,eQ,aD) = {
1484- let bW = if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (bm(eK.caller))
1471+ if ((ez == ez))
1472+ then {
1473+ let eK = db((eD + 1), eq, dI, dJ)
1474+ let dh = eK._1
1475+ let di = eK._2
1476+ let cZ = eK._3
1477+ $Tuple5(eq, ex, dh, di, cZ)
1478+ }
1479+ else throw("Strict value is not equal to itself.")
1480+ }
1481+
1482+
1483+@Callable(eL)
1484+func init (al,bD,dd,de,eM,eN,eO,eP,cj,ck,cl,eQ,eR,aD) = {
1485+ let bW = if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (bm(eL.caller))
14851486 then bp()
14861487 else false)
14871488 then bo()
14881489 else false)
14891490 then ak(al, "init: invalid assets")
14901491 else false)
14911492 then Z(bD, 1, g, "init: invalid assetWeights")
14921493 else false)
14931494 then am(size(al), size(bD), "init: invalid assetWeights size")
14941495 else false)
14951496 then P(dd, 0, d, "init: invalid lp fee")
14961497 else false)
14971498 then P(de, 0, d, "init: invalid protocol fee")
14981499 else false)
1499- then an(eL, "init: invalid name")
1500- else false)
1501- then ao(eM, "init: invalid descr")
1502- else false)
1503- then ap(eN, "init: invalid decimals")
1504- else false)
1505- then P(eO, 0, e, "init: invalid maxAllocationAmplifier")
1506- else false)
1507- then P(cj, 0, eO, "init: invalid weightAmplifier")
1500+ then an(eM, "init: invalid name")
1501+ else false)
1502+ then ao(eN, "init: invalid descr")
1503+ else false)
1504+ then ap(eO, "init: invalid decimals")
1505+ else false)
1506+ then P(eP, 0, e, "init: invalid maxAllocationAmplifier")
1507+ else false)
1508+ then P(cj, 0, eP, "init: invalid weightAmplifier")
15081509 else false)
15091510 then P(ck, 0, c, "init: invalid slippageRate")
15101511 else false)
15111512 then P(cl, 0, c, "init: invalid feeMaxRate")
15121513 else false)
1513- then I(eP, "init: invalid protocolFeeContract")
1514- else false)
1515- then P(eQ, 1, c, "init: invalid precision")
1514+ then I(eQ, "init: invalid protocolFeeContract")
1515+ else false)
1516+ then P(eR, 1, c, "init: invalid precision")
15161517 else false)
15171518 then I(aD, "init: invalid pauser")
15181519 else false
15191520 if ((bW == bW))
15201521 then {
1521- let eR = bC(bD)
1522- let dq = eR._1
1523- let dr = eR._2
1522+ let eS = bC(bD)
1523+ let dq = eS._1
1524+ let dr = eS._2
15241525 let dE = bB(al)
1525- let eS = Issue(eL, eM, 0, eN, true)
1526- let eE = calculateAssetId(eS)
1527- let eT = $Tuple10(eE, true, 0, dd, de, eO, cj, ck, cl, addressFromStringValue(eP))
1528- $Tuple2(((((((([eS] ++ aJ(eT)) ++ aM(al)) ++ aP(dE)) ++ aT(dq)) ++ ba(eQ)) ++ bc(bb())) ++ aC(addressFromStringValue(aD))), unit)
1529- }
1530- else throw("Strict value is not equal to itself.")
1531- }
1532-
1533-
1534-
1535-@Callable(eK)
1526+ let eT = Issue(eM, eN, 0, eO, true)
1527+ let eF = calculateAssetId(eT)
1528+ let eU = $Tuple10(eF, true, 0, dd, de, eP, cj, ck, cl, addressFromStringValue(eQ))
1529+ $Tuple2(((((((([eT] ++ aJ(eU)) ++ aM(al)) ++ aP(dE)) ++ aT(dq)) ++ ba(eR)) ++ bc(bb())) ++ aC(addressFromStringValue(aD))), unit)
1530+ }
1531+ else throw("Strict value is not equal to itself.")
1532+ }
1533+
1534+
1535+
1536+@Callable(eL)
15361537 func depositAll (bx) = {
15371538 let bW = if (if (br())
15381539 then bs()
15391540 else false)
15401541 then P(bx, 0, c, "depositAll: invalid amount")
15411542 else false
15421543 if ((bW == bW))
15431544 then {
15441545 let bq = aH()
1545- let eE = bq._1
1546- let eF = bv(toBase58String(eE))
1546+ let eF = bq._1
1547+ let eG = bv(toBase58String(eF))
15471548 let do = aL()
1548- let eU = dj(bx)
1549- let dC = eU._1
1550- let dy = eU._2
1551- let dE = eU._3
1549+ let eV = dj(bx)
1550+ let dC = eV._1
1551+ let dy = eV._2
1552+ let dE = eV._3
15521553 func aa (ab,ac) = {
15531554 let bO = ab._1
1554- let bV = av(eK.payments[bO].assetId)
1555- let eV = bv(bV)
1555+ let bV = av(eL.payments[bO].assetId)
1556+ let eW = bv(bV)
15561557 let dw = dy[bO]
1557- let eW = bw(dw, eF, eV, CEILING)
1558- let ey = if ((bV != ac))
1558+ let eX = bw(dw, eG, eW, CEILING)
1559+ let ez = if ((bV != ac))
15591560 then throw(("depositAll: invalid payment: index=" + toString(bO)))
1560- else if ((0 >= eW))
1561+ else if ((0 >= eX))
15611562 then throw("depositAll: too little amount required")
15621563 else unit
1563- if ((ey == ey))
1564+ if ((ez == ez))
15641565 then {
1565- let eX = if ((eK.payments[bO].amount > eW))
1566- then [ScriptTransfer(eK.caller, (eK.payments[bO].amount - eW), eK.payments[bO].assetId)]
1567- else if ((eW > eK.payments[bO].amount))
1568- then throw(((("depositAll: insufficient payment, index=" + toString(bO)) + ", required=") + toString(eW)))
1566+ let eY = if ((eL.payments[bO].amount > eX))
1567+ then [ScriptTransfer(eL.caller, (eL.payments[bO].amount - eX), eL.payments[bO].assetId)]
1568+ else if ((eX > eL.payments[bO].amount))
1569+ then throw(((("depositAll: insufficient payment, index=" + toString(bO)) + ", required=") + toString(eX)))
15691570 else nil
1570- $Tuple2((bO + 1), (ab._2 ++ eX))
1571+ $Tuple2((bO + 1), (ab._2 ++ eY))
15711572 }
15721573 else throw("Strict value is not equal to itself.")
15731574 }
15741575
1575- let eY = {
1576+ let eZ = {
15761577 let ad = do
15771578 let ae = size(ad)
15781579 let af = $Tuple2(0, nil)
15791580 func ag (ah,ai) = if ((ai >= ae))
15801581 then ah
15811582 else aa(ah, ad[ai])
15821583
15831584 func aj (ah,ai) = if ((ai >= ae))
15841585 then ah
15851586 else throw("List size exceeds 10")
15861587
15871588 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
15881589 }
1589- let cT = eY._1
1590- let eZ = eY._2
1591- let eT = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1592- $Tuple2(((([Reissue(eE, dC, true), ScriptTransfer(eK.caller, dC, eE)] ++ aJ(eT)) ++ aP(dE)) ++ eZ), unit)
1593- }
1594- else throw("Strict value is not equal to itself.")
1595- }
1596-
1597-
1598-
1599-@Callable(eK)
1600-func deposit (fa) = {
1601- let bW = P(fa, 0, c, "deposit: invalid min lp amount")
1590+ let cT = eZ._1
1591+ let fa = eZ._2
1592+ let eU = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1593+ $Tuple2(((([Reissue(eF, dC, true), ScriptTransfer(eL.caller, dC, eF)] ++ aJ(eU)) ++ aP(dE)) ++ fa), unit)
1594+ }
1595+ else throw("Strict value is not equal to itself.")
1596+ }
1597+
1598+
1599+
1600+@Callable(eL)
1601+func deposit (fb) = {
1602+ let bW = P(fb, 0, c, "deposit: invalid min lp amount")
16021603 if ((bW == bW))
16031604 then {
16041605 let bq = aH()
1605- let eE = bq._1
1606- let fb = av(eE)
1607- let eF = bv(fb)
1608- let ey = if (if (if (if (br())
1606+ let eF = bq._1
1607+ let fc = av(eF)
1608+ let eG = bv(fc)
1609+ let ez = if (if (if (if (br())
16091610 then bs()
16101611 else false)
1611- then am(size(eK.payments), 1, "deposit: invalid payments size")
1612+ then am(size(eL.payments), 1, "deposit: invalid payments size")
16121613 else false)
1613- then at(aL(), av(eK.payments[0].assetId), "deposit: invalid payment asset")
1614+ then at(aL(), av(eL.payments[0].assetId), "deposit: invalid payment asset")
16141615 else false)
1615- then P(eK.payments[0].amount, 1, c, "deposit: invalid payment amount")
1616+ then P(eL.payments[0].amount, 1, c, "deposit: invalid payment amount")
16161617 else false
1617- if ((ey == ey))
1618+ if ((ez == ez))
16181619 then {
1619- let fc = av(eK.payments[0].assetId)
1620- let bG = bv(fc)
1621- let fd = bw(eK.payments[0].amount, bG, eF, DOWN)
1622- let fe = dH(fc, fd)
1623- let dC = fe._1
1624- let dE = fe._2
1625- let dh = fe._3
1626- let di = fe._4
1627- let cZ = fe._5
1628- let ff = ((dC - dh) - di)
1629- let dG = P(ff, fa, c, "deposit: less than min")
1620+ let fd = av(eL.payments[0].assetId)
1621+ let bG = bv(fd)
1622+ let fe = bw(eL.payments[0].amount, bG, eG, DOWN)
1623+ let ff = dH(fd, fe)
1624+ let dC = ff._1
1625+ let dE = ff._2
1626+ let dh = ff._3
1627+ let di = ff._4
1628+ let cZ = ff._5
1629+ let fg = ((dC - dh) - di)
1630+ let dG = P(fg, fb, c, "deposit: less than min")
16301631 if ((dG == dG))
16311632 then {
1632- let eT = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1633- $Tuple2(((((([Reissue(eE, dC, true), ScriptTransfer(eK.caller, ff, eE)] ++ aJ(eT)) ++ aP(dE)) ++ aW(fb, (dh + aV(fb)))) ++ aY(fb, (di + aX(fb)))) ++ bc(cZ)), unit)
1633+ let eU = $Tuple10(bq._1, bq._2, (bq._3 + dC), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1634+ $Tuple2(((((([Reissue(eF, dC, true), ScriptTransfer(eL.caller, fg, eF)] ++ aJ(eU)) ++ aP(dE)) ++ aW(fc, (dh + aV(fc)))) ++ aY(fc, (di + aX(fc)))) ++ bc(cZ)), unit)
16341635 }
16351636 else throw("Strict value is not equal to itself.")
16361637 }
16371638 else throw("Strict value is not equal to itself.")
16381639 }
16391640 else throw("Strict value is not equal to itself.")
16401641 }
16411642
16421643
16431644
1644-@Callable(eK)
1645+@Callable(eL)
16451646 func withdrawAll () = {
16461647 let bq = aH()
1647- let eE = bq._1
1648- let fb = toBase58String(eE)
1649- let eF = bv(fb)
1648+ let eF = bq._1
1649+ let fc = toBase58String(eF)
1650+ let eG = bv(fc)
16501651 let do = aL()
16511652 let bW = if (if (if (if (br())
16521653 then bs()
16531654 else false)
1654- then am(size(eK.payments), 1, "withdrawAll: invalid payments size")
1655- else false)
1656- then V(fb, av(eK.payments[0].assetId), "withdrawAll: invalid payment asset")
1657- else false)
1658- then P(eK.payments[0].amount, 1, c, "withdrawAll: invalid payment amount")
1655+ then am(size(eL.payments), 1, "withdrawAll: invalid payments size")
1656+ else false)
1657+ then V(fc, av(eL.payments[0].assetId), "withdrawAll: invalid payment asset")
1658+ else false)
1659+ then P(eL.payments[0].amount, 1, c, "withdrawAll: invalid payment amount")
16591660 else false
16601661 if ((bW == bW))
16611662 then {
1662- let fg = dV(eK.payments[0].amount)
1663- let dY = fg._1
1664- let ea = fg._2
1665- let dE = fg._3
1666- let fh = ce(do, ea, eK.caller, eF)
1667- let eT = $Tuple10(bq._1, bq._2, (bq._3 - dY), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1668- $Tuple2(((([Burn(eE, dY)] ++ fh) ++ aJ(eT)) ++ aP(dE)), unit)
1669- }
1670- else throw("Strict value is not equal to itself.")
1671- }
1672-
1673-
1674-
1675-@Callable(eK)
1676-func withdraw (O,fi) = {
1663+ let fh = dV(eL.payments[0].amount)
1664+ let dY = fh._1
1665+ let ea = fh._2
1666+ let dE = fh._3
1667+ let fi = ce(do, ea, eL.caller, eG)
1668+ let eU = $Tuple10(bq._1, bq._2, (bq._3 - dY), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1669+ $Tuple2(((([Burn(eF, dY)] ++ fi) ++ aJ(eU)) ++ aP(dE)), unit)
1670+ }
1671+ else throw("Strict value is not equal to itself.")
1672+ }
1673+
1674+
1675+
1676+@Callable(eL)
1677+func withdraw (O,fj) = {
16771678 let bq = aH()
1678- let eE = bq._1
1679- let fb = toBase58String(eE)
1680- let eF = bv(fb)
1679+ let eF = bq._1
1680+ let fc = toBase58String(eF)
1681+ let eG = bv(fc)
16811682 let do = aL()
16821683 let bW = if (if (if (if (if (if (br())
16831684 then bs()
16841685 else false)
1685- then am(size(eK.payments), 1, "withdraw: invalid payments size")
1686- else false)
1687- then V(fb, av(eK.payments[0].assetId), "withdraw: invalid payment asset")
1688- else false)
1689- then P(eK.payments[0].amount, 1, c, "withdraw: invalid payment amount")
1686+ then am(size(eL.payments), 1, "withdraw: invalid payments size")
1687+ else false)
1688+ then V(fc, av(eL.payments[0].assetId), "withdraw: invalid payment asset")
1689+ else false)
1690+ then P(eL.payments[0].amount, 1, c, "withdraw: invalid payment amount")
16901691 else false)
16911692 then at(do, O, "withdraw: invalid assetId")
16921693 else false)
1693- then P(fi, 0, c, "withdraw: invalid minAmount")
1694+ then P(fj, 0, c, "withdraw: invalid minAmount")
16941695 else false
16951696 if ((bW == bW))
16961697 then {
1697- let fj = eb(O, eK.payments[0].amount)
1698- let fk = fj._1
1699- let ew = fj._2
1700- let dh = fj._3
1701- let di = fj._4
1702- let cZ = fj._5
1703- let fl = ((fk - dh) - di)
1704- let fm = bv(O)
1705- let fn = bw(fl, eF, fm, DOWN)
1706- let ey = P(fn, fi, c, "withdraw: less than min")
1707- if ((ey == ey))
1698+ let fk = eb(O, eL.payments[0].amount)
1699+ let fl = fk._1
1700+ let ex = fk._2
1701+ let dh = fk._3
1702+ let di = fk._4
1703+ let cZ = fk._5
1704+ let fm = ((fl - dh) - di)
1705+ let fn = bv(O)
1706+ let fo = bw(fm, eG, fn, DOWN)
1707+ let ez = P(fo, fj, c, "withdraw: less than min")
1708+ if ((ez == ez))
17081709 then {
1709- let eT = $Tuple10(bq._1, bq._2, (bq._3 - eK.payments[0].amount), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1710- $Tuple2(((((([Burn(eE, eK.payments[0].amount), ScriptTransfer(eK.caller, fn, ax(O))] ++ aJ(eT)) ++ aP(ew)) ++ aW(O, (dh + aV(O)))) ++ aY(O, (di + aX(O)))) ++ bc(cZ)), unit)
1710+ let eU = $Tuple10(bq._1, bq._2, (bq._3 - eL.payments[0].amount), bq._4, bq._5, bq._6, bq._7, bq._8, bq._9, bq._10)
1711+ $Tuple2(((((([Burn(eF, eL.payments[0].amount), ScriptTransfer(eL.caller, fo, ax(O))] ++ aJ(eU)) ++ aP(ex)) ++ aW(O, (dh + aV(O)))) ++ aY(O, (di + aX(O)))) ++ bc(cZ)), unit)
17111712 }
17121713 else throw("Strict value is not equal to itself.")
17131714 }
17141715 else throw("Strict value is not equal to itself.")
17151716 }
17161717
17171718
17181719
1719-@Callable(eK)
1720-func swap (fo,fi) = {
1720+@Callable(eL)
1721+func swap (fp,fj) = {
17211722 let bq = aH()
1722- let eE = bq._1
1723- let eF = bv(toBase58String(eE))
1723+ let eF = bq._1
1724+ let eG = bv(toBase58String(eF))
17241725 let do = aL()
1725- let fp = av(eK.payments[0].assetId)
1726- let fq = bw(eK.payments[0].amount, bv(fp), eF, DOWN)
1727- let fr = valueOrErrorMessage(indexOf(do, fp), "swap: invalid source asset")
1728- if ((fr == fr))
1729- then {
1730- let eg = valueOrErrorMessage(indexOf(do, fo), "swap: invalid target asset")
1726+ let fq = av(eL.payments[0].assetId)
1727+ let fr = bw(eL.payments[0].amount, bv(fq), eG, DOWN)
1728+ let fs = valueOrErrorMessage(indexOf(do, fq), "swap: invalid source asset")
1729+ if ((fs == fs))
1730+ then {
1731+ let eg = valueOrErrorMessage(indexOf(do, fp), "swap: invalid target asset")
17311732 if ((eg == eg))
17321733 then {
17331734 let bW = if (if (if (if (if (br())
17341735 then bs()
17351736 else false)
1736- then P(fi, 0, c, "swap: invalid min target amount")
1737+ then P(fj, 0, c, "swap: invalid min target amount")
17371738 else false)
1738- then P(fq, 1, c, "swap: invalid source amount")
1739+ then P(fr, 1, c, "swap: invalid source amount")
17391740 else false)
1740- then Y(fp, fo, "swap: same assets")
1741+ then Y(fq, fp, "swap: same assets")
17411742 else false)
1742- then am(size(eK.payments), 1, "swap: invalid payments size")
1743+ then am(size(eL.payments), 1, "swap: invalid payments size")
17431744 else false
17441745 if ((bW == bW))
17451746 then {
1746- let fs = eA(fr, eg, fq)
1747- let fk = fs._1
1748- let ew = fs._2
1749- let dh = fs._3
1750- let di = fs._4
1751- let cZ = fs._5
1752- let fl = ((fk - dh) - di)
1753- let fm = bv(fo)
1754- let fn = bw(fl, eF, fm, DOWN)
1755- let ey = P(fn, fi, c, "swap: less than min")
1756- if ((ey == ey))
1757- then $Tuple2((((([ScriptTransfer(eK.caller, fn, ax(fo))] ++ aP(ew)) ++ aW(fo, (dh + aV(fo)))) ++ aY(fo, (di + aX(fo)))) ++ bc(cZ)), unit)
1747+ let ft = eB(fs, eg, fr)
1748+ let fl = ft._1
1749+ let ex = ft._2
1750+ let dh = ft._3
1751+ let di = ft._4
1752+ let cZ = ft._5
1753+ let fm = ((fl - dh) - di)
1754+ let fn = bv(fp)
1755+ let fo = bw(fm, eG, fn, DOWN)
1756+ let ez = P(fo, fj, c, "swap: less than min")
1757+ if ((ez == ez))
1758+ then $Tuple2((((([ScriptTransfer(eL.caller, fo, ax(fp))] ++ aP(ex)) ++ aW(fp, (dh + aV(fp)))) ++ aY(fp, (di + aX(fp)))) ++ bc(cZ)), unit)
17581759 else throw("Strict value is not equal to itself.")
17591760 }
17601761 else throw("Strict value is not equal to itself.")
17611762 }
17621763 else throw("Strict value is not equal to itself.")
17631764 }
17641765 else throw("Strict value is not equal to itself.")
17651766 }
17661767
17671768
17681769
1769-@Callable(eK)
1770+@Callable(eL)
17701771 func getDepositAll (ec) = {
17711772 let bW = P(ec, 1, c, "getDepositAll: invalid amount")
17721773 if ((bW == bW))
17731774 then {
1774- let ft = dj(ec)
1775- let dC = ft._1
1776- let dy = ft._2
1777- let dE = ft._3
1775+ let fu = dj(ec)
1776+ let dC = fu._1
1777+ let dy = fu._2
1778+ let dE = fu._3
17781779 $Tuple2(nil, $Tuple2(dC, dy))
17791780 }
17801781 else throw("Strict value is not equal to itself.")
17811782 }
17821783
17831784
17841785
1785-@Callable(eK)
1786+@Callable(eL)
17861787 func getDeposit (O,bx) = {
17871788 let bW = if (at(aL(), O, "getDeposit: invalid asset"))
17881789 then P(bx, 1, c, "getDeposit: invalid amount")
17891790 else false
17901791 if ((bW == bW))
17911792 then {
17921793 let bq = aH()
1793- let eE = bq._1
1794- let eF = bv(toBase58String(eE))
1794+ let eF = bq._1
1795+ let eG = bv(toBase58String(eF))
17951796 let bG = bv(O)
1796- let fd = bw(bx, bG, eF, DOWN)
1797- let fu = dH(O, fd)
1798- let dC = fu._1
1799- let dE = fu._2
1800- let dh = fu._3
1801- let di = fu._4
1802- let cZ = fu._5
1803- let ff = ((dC - dh) - di)
1804- $Tuple2(nil, ff)
1805- }
1806- else throw("Strict value is not equal to itself.")
1807- }
1808-
1809-
1810-
1811-@Callable(eK)
1797+ let fe = bw(bx, bG, eG, DOWN)
1798+ let fv = dH(O, fe)
1799+ let dC = fv._1
1800+ let dE = fv._2
1801+ let dh = fv._3
1802+ let di = fv._4
1803+ let cZ = fv._5
1804+ let fg = ((dC - dh) - di)
1805+ $Tuple2(nil, fg)
1806+ }
1807+ else throw("Strict value is not equal to itself.")
1808+ }
1809+
1810+
1811+
1812+@Callable(eL)
18121813 func getWithdrawAll (ec) = {
18131814 let bW = P(ec, 0, c, "getWithdrawAll: invalid amount")
18141815 if ((bW == bW))
18151816 then {
1816- let fv = dV(ec)
1817- let dY = fv._1
1818- let fw = fv._2
1819- let dE = fv._3
1820- $Tuple2(nil, fw)
1821- }
1822- else throw("Strict value is not equal to itself.")
1823- }
1824-
1825-
1826-
1827-@Callable(eK)
1817+ let fw = dV(ec)
1818+ let dY = fw._1
1819+ let fx = fw._2
1820+ let dE = fw._3
1821+ $Tuple2(nil, fx)
1822+ }
1823+ else throw("Strict value is not equal to itself.")
1824+ }
1825+
1826+
1827+
1828+@Callable(eL)
18281829 func getWithdraw (O,bx) = {
18291830 let bW = if (at(aL(), O, "getWithdraw: invalid asset"))
18301831 then P(bx, 1, c, "getWithdraw: invalid amount")
18311832 else false
18321833 if ((bW == bW))
18331834 then {
18341835 let bq = aH()
1835- let eE = bq._1
1836- let eF = bv(toBase58String(eE))
1837- let fx = eb(O, bx)
1838- let fk = fx._1
1839- let dE = fx._2
1840- let dh = fx._3
1841- let di = fx._4
1842- let cZ = fx._5
1843- let fl = ((fk - dh) - di)
1844- let fm = bv(O)
1845- let fn = bw(fl, eF, fm, DOWN)
1846- $Tuple2(nil, fn)
1847- }
1848- else throw("Strict value is not equal to itself.")
1849- }
1850-
1851-
1852-
1853-@Callable(eK)
1854-func getSwap (fy,fo,eD) = {
1836+ let eF = bq._1
1837+ let eG = bv(toBase58String(eF))
1838+ let fy = eb(O, bx)
1839+ let fl = fy._1
1840+ let dE = fy._2
1841+ let dh = fy._3
1842+ let di = fy._4
1843+ let cZ = fy._5
1844+ let fm = ((fl - dh) - di)
1845+ let fn = bv(O)
1846+ let fo = bw(fm, eG, fn, DOWN)
1847+ $Tuple2(nil, fo)
1848+ }
1849+ else throw("Strict value is not equal to itself.")
1850+ }
1851+
1852+
1853+
1854+@Callable(eL)
1855+func getSwap (fz,fp,eE) = {
18551856 let bq = aH()
1856- let eE = bq._1
1857- let eF = bv(toBase58String(eE))
1857+ let eF = bq._1
1858+ let eG = bv(toBase58String(eF))
18581859 let do = aL()
1859- let fr = valueOrErrorMessage(indexOf(do, fy), "swap: invalid source asset")
1860- if ((fr == fr))
1861- then {
1862- let eg = valueOrErrorMessage(indexOf(do, fo), "swap: invalid target asset")
1860+ let fs = valueOrErrorMessage(indexOf(do, fz), "swap: invalid source asset")
1861+ if ((fs == fs))
1862+ then {
1863+ let eg = valueOrErrorMessage(indexOf(do, fp), "swap: invalid target asset")
18631864 if ((eg == eg))
18641865 then {
1865- let fq = bw(eD, bv(fy), eF, DOWN)
1866- let bW = if (P(fq, 1, c, "swap: invalid source amount"))
1867- then Y(fy, fo, "swap: same assets")
1866+ let fr = bw(eE, bv(fz), eG, DOWN)
1867+ let bW = if (P(fr, 1, c, "swap: invalid source amount"))
1868+ then Y(fz, fp, "swap: same assets")
18681869 else false
18691870 if ((bW == bW))
18701871 then {
1871- let fz = eA(fr, eg, fq)
1872- let fk = fz._1
1873- let ew = fz._2
1874- let dh = fz._3
1875- let di = fz._4
1876- let cZ = fz._5
1877- let fl = ((fk - dh) - di)
1878- let fm = bv(fo)
1879- let fn = bw(fl, eF, fm, DOWN)
1880- $Tuple2(nil, fn)
1872+ let fA = eB(fs, eg, fr)
1873+ let fl = fA._1
1874+ let ex = fA._2
1875+ let dh = fA._3
1876+ let di = fA._4
1877+ let cZ = fA._5
1878+ let fm = ((fl - dh) - di)
1879+ let fn = bv(fp)
1880+ let fo = bw(fm, eG, fn, DOWN)
1881+ $Tuple2(nil, fo)
18811882 }
18821883 else throw("Strict value is not equal to itself.")
18831884 }
18841885 else throw("Strict value is not equal to itself.")
18851886 }
18861887 else throw("Strict value is not equal to itself.")
18871888 }
18881889
18891890
18901891
1891-@Callable(eK)
1892+@Callable(eL)
18921893 func getClaim (be) = {
1893- let fA = if ((size(be) > 0))
1894+ let fB = if ((size(be) > 0))
18941895 then valueOrErrorMessage(addressFromString(be), "getClaim: invalid user")
1895- else eK.caller
1896- let fB = cM(fA)
1897- let fC = fB._1
1898- let cO = fB._2
1896+ else eL.caller
1897+ let fC = cM(fB)
1898+ let fD = fC._1
1899+ let cO = fC._2
18991900 $Tuple2(nil, cO)
19001901 }
19011902
19021903
19031904
1904-@Callable(eK)
1905+@Callable(eL)
19051906 func getUtilFunc () = {
19061907 let bq = aH()
19071908 let dk = bq._3
19081909 let dl = bq._7
19091910 let dm = bq._8
19101911 let dn = bq._9
1911- let fD = aN()
1912- let dE = fD._1
1913- let dF = fD._2
1914- let fE = aR()
1915- let dq = fE._1
1916- let dr = fE._2
1912+ let fE = aN()
1913+ let dE = fE._1
1914+ let dF = fE._2
1915+ let fF = aR()
1916+ let dq = fF._1
1917+ let dr = fF._2
19171918 let dO = cp(dE, dF, dq, dr, dl, dm, dn)
19181919 let ep = (dF - dO)
19191920 $Tuple2(nil, $Tuple2(ep, dk))
19201921 }
19211922
19221923
19231924
1924-@Callable(eK)
1925+@Callable(eL)
19251926 func getFeeFunc () = {
19261927 let bq = aH()
19271928 let dl = bq._7
19281929 let dm = bq._8
19291930 let dn = bq._9
1930- let fF = aN()
1931- let dE = fF._1
1932- let dF = fF._2
1933- let fG = aR()
1934- let dq = fG._1
1935- let dr = fG._2
1931+ let fG = aN()
1932+ let dE = fG._1
1933+ let dF = fG._2
1934+ let fH = aR()
1935+ let dq = fH._1
1936+ let dr = fH._2
19361937 let dO = cp(dE, dF, dq, dr, dl, dm, dn)
19371938 $Tuple2(nil, dO)
19381939 }
19391940
19401941
19411942
1942-@Callable(eK)
1943+@Callable(eL)
19431944 func checkpoint (be) = {
19441945 let bW = if (br())
19451946 then bs()
19461947 else false
19471948 if ((bW == bW))
19481949 then {
1949- let fA = if ((size(be) > 0))
1950+ let fB = if ((size(be) > 0))
19501951 then valueOrErrorMessage(addressFromString(be), "checkpoint: invalid user")
1951- else eK.caller
1952- cM(fA)
1953- }
1954- else throw("Strict value is not equal to itself.")
1955- }
1956-
1957-
1958-
1959-@Callable(eK)
1952+ else eL.caller
1953+ cM(fB)
1954+ }
1955+ else throw("Strict value is not equal to itself.")
1956+ }
1957+
1958+
1959+
1960+@Callable(eL)
19601961 func stake () = {
19611962 let bW = if (br())
19621963 then bs()
19631964 else false
19641965 if ((bW == bW))
19651966 then {
19661967 let bq = aH()
1967- let fb = av(bq._1)
1968- let ey = if (if (am(size(eK.payments), 1, "stake: invalid payments size"))
1969- then V(fb, av(eK.payments[0].assetId), "stake: invalid payment asset")
1968+ let fc = av(bq._1)
1969+ let ez = if (if (am(size(eL.payments), 1, "stake: invalid payments size"))
1970+ then V(fc, av(eL.payments[0].assetId), "stake: invalid payment asset")
19701971 else false)
1971- then P(eK.payments[0].amount, 0, c, "stake: invalid payment amount")
1972+ then P(eL.payments[0].amount, 0, c, "stake: invalid payment amount")
19721973 else false
1973- if ((ey == ey))
1974+ if ((ez == ez))
19741975 then {
1975- let fH = cM(eK.caller)
1976- let fC = fH._1
1977- let cO = fH._2
1978- $Tuple2(((fC ++ bh(eK.caller, (bg(eK.caller) + eK.payments[0].amount))) ++ bj((bi() + eK.payments[0].amount))), unit)
1976+ let fI = cM(eL.caller)
1977+ let fD = fI._1
1978+ let cO = fI._2
1979+ $Tuple2(((fD ++ bh(eL.caller, (bg(eL.caller) + eL.payments[0].amount))) ++ bj((bi() + eL.payments[0].amount))), unit)
19791980 }
19801981 else throw("Strict value is not equal to itself.")
19811982 }
19821983 else throw("Strict value is not equal to itself.")
19831984 }
19841985
19851986
19861987
1987-@Callable(eK)
1988+@Callable(eL)
19881989 func unstake (bx) = {
19891990 let bW = if (br())
19901991 then bs()
19911992 else false
19921993 if ((bW == bW))
19931994 then {
19941995 let bq = aH()
1995- let eE = bq._1
1996- let cN = bg(eK.caller)
1997- let ey = P(bx, 0, cN, "unstake: invalid amount")
1998- if ((ey == ey))
1996+ let eF = bq._1
1997+ let cN = bg(eL.caller)
1998+ let ez = P(bx, 0, cN, "unstake: invalid amount")
1999+ if ((ez == ez))
19992000 then {
2000- let fI = cM(eK.caller)
2001- let fC = fI._1
2002- let cO = fI._2
2003- $Tuple2(((([ScriptTransfer(eK.caller, bx, eE)] ++ fC) ++ bh(eK.caller, (cN - bx))) ++ bj((bi() - bx))), unit)
2001+ let fJ = cM(eL.caller)
2002+ let fD = fJ._1
2003+ let cO = fJ._2
2004+ $Tuple2(((([ScriptTransfer(eL.caller, bx, eF)] ++ fD) ++ bh(eL.caller, (cN - bx))) ++ bj((bi() - bx))), unit)
20042005 }
20052006 else throw("Strict value is not equal to itself.")
20062007 }
20072008 else throw("Strict value is not equal to itself.")
20082009 }
20092010
20102011
20112012
2012-@Callable(eK)
2013+@Callable(eL)
20132014 func claim (be) = {
20142015 let bW = if (br())
20152016 then bs()
20162017 else false
20172018 if ((bW == bW))
20182019 then {
2019- let fA = if ((size(be) > 0))
2020+ let fB = if ((size(be) > 0))
20202021 then valueOrErrorMessage(addressFromString(be), "claim: invalid user")
2021- else eK.caller
2022+ else eL.caller
20222023 let bq = aH()
2023- let eE = bq._1
2024- let fb = av(eE)
2025- let do = [fb, aL()]
2026- let fJ = (size(do) - 1)
2027- let cN = bg(fA)
2028- let fK = cM(fA)
2029- let fC = fK._1
2030- let cO = fK._2
2031- func aa (ab,fL) = {
2024+ let eF = bq._1
2025+ let fc = av(eF)
2026+ let do = [fc, aL()]
2027+ let fK = (size(do) - 1)
2028+ let cN = bg(fB)
2029+ let fL = cM(fB)
2030+ let fD = fL._1
2031+ let cO = fL._2
2032+ func aa (ab,fM) = {
20322033 let bO = ab._1
2033- if (if ((fJ >= bO))
2034- then (fL > 0)
2034+ if (if ((fK >= bO))
2035+ then (fM > 0)
20352036 else false)
20362037 then {
2037- let fM = do[bO]
2038- $Tuple3((bO + 1), (ab._2 :+ 0), (ab._3 :+ ScriptTransfer(fA, fL, ax(fM))))
2038+ let fN = do[bO]
2039+ $Tuple3((bO + 1), (ab._2 :+ 0), (ab._3 :+ ScriptTransfer(fB, fM, ax(fN))))
20392040 }
2040- else $Tuple3((bO + 1), (ab._2 :+ fL), ab._3)
2041+ else $Tuple3((bO + 1), (ab._2 :+ fM), ab._3)
20412042 }
20422043
2043- let fN = {
2044+ let fO = {
20442045 let ad = cO
20452046 let ae = size(ad)
20462047 let af = $Tuple3(0, nil, nil)
20472048 func ag (ah,ai) = if ((ai >= ae))
20482049 then ah
20492050 else aa(ah, ad[ai])
20502051
20512052 func aj (ah,ai) = if ((ai >= ae))
20522053 then ah
20532054 else throw("List size exceeds 11")
20542055
20552056 aj(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(ag(af, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
20562057 }
2057- let cT = fN._1
2058- let fO = fN._2
2059- let fP = fN._3
2060- $Tuple2(((fP ++ removeByIndex(fC, 0)) ++ bl(fA, fO)), unit)
2061- }
2062- else throw("Strict value is not equal to itself.")
2063- }
2064-
2065-
2066-
2067-@Callable(eK)
2058+ let cT = fO._1
2059+ let fP = fO._2
2060+ let fQ = fO._3
2061+ $Tuple2(((fQ ++ removeByIndex(fD, 0)) ++ bl(fB, fP)), unit)
2062+ }
2063+ else throw("Strict value is not equal to itself.")
2064+ }
2065+
2066+
2067+
2068+@Callable(eL)
20682069 func pause () = {
2069- let bW = if (if (bu(eK.caller))
2070+ let bW = if (if (bu(eL.caller))
20702071 then br()
20712072 else false)
20722073 then bs()
20732074 else false
20742075 if ((bW == bW))
20752076 then $Tuple2(az(true), unit)
20762077 else throw("Strict value is not equal to itself.")
20772078 }
20782079
20792080
20802081
2081-@Callable(eK)
2082+@Callable(eL)
20822083 func unpause () = {
2083- let bW = if (if (bu(eK.caller))
2084+ let bW = if (if (bu(eL.caller))
20842085 then br()
20852086 else false)
20862087 then bt()
20872088 else false
20882089 if ((bW == bW))
20892090 then $Tuple2(az(false), unit)
20902091 else throw("Strict value is not equal to itself.")
20912092 }
20922093
20932094
20942095
2095-@Callable(eK)
2096+@Callable(eL)
20962097 func updatePauser (aD) = {
2097- let bW = if (if (bm(eK.caller))
2098+ let bW = if (if (bm(eL.caller))
20982099 then br()
20992100 else false)
21002101 then I(aD, "updatePauser: invalid pauser")
21012102 else false
21022103 if ((bW == bW))
21032104 then $Tuple2(aC(addressFromStringValue(aD)), unit)
21042105 else throw("Strict value is not equal to itself.")
21052106 }
21062107
21072108
21082109
2109-@Callable(eK)
2110+@Callable(eL)
21102111 func setMultisig (aG) = {
2111- let bW = if (bm(eK.caller))
2112+ let bW = if (bm(eL.caller))
21122113 then I(aG, "setMultisig: invalid multisig")
21132114 else false
21142115 if ((bW == bW))
21152116 then $Tuple2(aF(addressFromStringValue(aG)), unit)
21162117 else throw("Strict value is not equal to itself.")
21172118 }
21182119
21192120
2120-@Verifier(fQ)
2121-func fR () = {
2121+@Verifier(fR)
2122+func fS () = {
21222123 let L = getString(s)
21232124 if ($isInstanceOf(L, "String"))
21242125 then {
2125- let fS = L
2126- valueOrElse(getBoolean(addressFromStringValue(fS), makeString([t, toString(this), toBase58String(fQ.id)], a)), false)
2127- }
2128- else sigVerify(fQ.bodyBytes, fQ.proofs[0], fQ.senderPublicKey)
2126+ let fT = L
2127+ valueOrElse(getBoolean(addressFromStringValue(fT), makeString([t, toString(this), toBase58String(fR.id)], a)), false)
2128+ }
2129+ else sigVerify(fR.bodyBytes, fR.proofs[0], fR.senderPublicKey)
21292130 }
21302131

github/deemru/w8io/3ef1775 
293.45 ms