tx · 8X97kHimyGWmQUUpVMA2rTA6h8D7Uh2WVuL6UgUHiwjm

3PQV9AUMU36fdDYMmMZw6urSYG3BuMahQuk:  -0.03100000 Waves

2023.02.27 13:06 [3533443] smart account 3PQV9AUMU36fdDYMmMZw6urSYG3BuMahQuk > SELF 0.00000000 Waves

{ "type": 13, "id": "8X97kHimyGWmQUUpVMA2rTA6h8D7Uh2WVuL6UgUHiwjm", "fee": 3100000, "feeAssetId": null, "timestamp": 1677492404050, "version": 2, "chainId": 87, "sender": "3PQV9AUMU36fdDYMmMZw6urSYG3BuMahQuk", "senderPublicKey": "8bMNZV1S5S2hfim2ZPy5hsSdC1AHBwPHUEXPBhdEF2Mk", "proofs": [ "Rn3HeVjvQwHkNybSciR2eCRb9ArAZQLKTZ7uff1ncvpCiMUPHZKHRzFDjD59ZVwEnaQraXjT8M5qYwMzExM95uQ" ], "script": "base64:BgI6CAISABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASABIAEgASADYABm11bHRpOACAwtcvAAdtdWx0aTEwAIDIr6AlAAp1c2R0VXNkbkxQASB4p79M5F037ZUh19Z+VbL+rgR/6BH9WtYv/UMYL5a3wAANdXNkdFVzZG5MUFRDSQEgEbq0L+okyEjRx2N12BQ47VuYrn9Oj0Udy6P9HJ0xxi0ACHd4VXNkbkxQASDQT71RdBIZXVrFawprtgfBi/YgCUpkJByIvvbGrlTraAALd3hVc2RuTFBUQ0kBIN11Qao6YSJTL81WMB68w761Ca1Mhr2UU5wSoe4+o974AAp1c2RjVXNkbkxQASADaQH8GwqYCojNj/4RWYWFJpEys1qS/CbpSF3Tn95cdgANdXNkY1VzZG5MUFRDSQEg9gI33dOf74ZFL1wjRw+VX9E6baErwqe0m1RBB1L1bsYACnVzZGNVc2R0TFABIMb4pHQbVkhWEJ+QfsIz9DFriwRKLCv9mUuH9YWbfOSMAA11c2RjVXNkdExQVENJASACxoV8BEszx+Lvh2eHUvtVgv2z34QjtqBaxTXdz1dK/gAMcHV6emxlVXNkbkxQASDDM8Z0ziOqpCLfSSTlxJlreASwd1aCdP+40R1KjRzRngAPcHV6emxlVXNkbkxQVENJASC8lPrPBwcBHVd/Y0eapg399QXXxsR7znNab3wpkohHtQAKbnNidFVzZG5MUAEgicT31dZKFQ2DedPdpsG+DFTTg54zH5dU/0MbeBdDGy4ADW5zYnRVc2RuTFBUQ0kBICgxXaLek8uHs6gOXkI3Tp+jlnRzmPFJsFpxi6MWInvjAAlidGNVc2RuTFABIG+dMYPvXXk73J9vCeuuR/J7WrtDrDfS7FEZZyt2ElkUAAxidGNVc2RuTFBUQ0kBINwpv7VmBElWMulOzbysTK0CPyxuX8rUiFEnanKy0XKyAAplbm5vVXNkbkxQASD5YvUfSooT9ioYhQX26ta6TxKWm18xMMmVuqOJpTmEigANZW5ub1VzZG5MUFRDSQEgPSkc9LvTU8bku67gMaHNUACNAdqQLIkuEEeHN8DY3yQAC3dhdmVzVXNkbkxQASBd521uRqbHObG0riFDU2pol6qZD59bFfq8alENHEkZIAAOd2F2ZXNVc2RuTFBUQ0kBIMVwOjpTvkwBOF0F6nzxJwpQmHrm/nNdh2pxt/uMItipAAlsdGNVc2RuTFABIKkDUBtkmcrNXIu4/t4CphS/rb7wHmGBnvaj9gDjKs7ZAAxsdGNVc2RuTFBUQ0kBIPfGQHKKUWra5ERySzuukwC2oDGN6dYteYp8szIfoziVAAlpc1N0b3BwZWQHAAlrZXlTdGFrZWQCCVNUQUtFRF9MUAALa2V5Q29tcG91bmQCDUZyb21fQ29tcG91bmQAEWtleXd4VXNkbkNvbXBvdW5kAhBXWF9VU0ROX2NvbXBvdW5kAAlrZXlXWFVTRE4CB1dYX1VTRE4AE2tleVVzZGNVc2RuQ29tcG91bmQCElVTRENfVVNETl9jb21wb3VuZAALa2V5VVNEQ1VTRE4CCVVTRENfVVNETgATa2V5VXNkY1VzZHRDb21wb3VuZAISVVNEQ19VU0RUX2NvbXBvdW5kAAtrZXlVU0RDVVNEVAIJVVNEQ19VU0RUABVrZXlQdXp6bGVVc2RuQ29tcG91bmQCFFBVWlpMRV9VU0ROX2NvbXBvdW5kAA1rZXlQVVpaTEVVU0ROAgtQVVpaTEVfVVNETgATa2V5TnNidFVzZG5Db21wb3VuZAISTlNCVF9VU0ROX2NvbXBvdW5kAAtrZXlOU0JUVVNETgIJTlNCVF9VU0ROAAprZXlCVENVU0ROAghCVENfVVNETgASa2V5QnRjVXNkbkNvbXBvdW5kAhFCVENfVVNETl9Db21wb3VuZAALa2V5RU5OT1VTRE4CCUVOTk9fVVNETgATa2V5RW5ub1VzZG5Db21wb3VuZAISRU5OT19VU0ROX0NvbXBvdW5kAAxrZXlXQVZFU1VTRE4CCldBVkVTX1VTRE4AFGtleVdhdmVzVXNkbkNvbXBvdW5kAhNXQVZFU19VU0ROX0NvbXBvdW5kAAprZXlMVENVU0ROAghMVENfVVNETgASa2V5THRjVXNkbkNvbXBvdW5kAhFMVENfVVNETl9Db21wb3VuZAAPa2V5U1dBVkVTX1dBVkVTAgxzV0FWRVNfV0FWRVMAGGtleVNXQVZFU19XQVZFU19Db21wb3VuZAIVc1dBVkVTX1dBVkVTX0NvbXBvdW5kAANkZWYAgMLXLwAHZmVlUGVyYwCAyK+gJQACdHcBGgFXTgSp9XKM3uf50lJK3bhrU0WMeqeaOH2cAAZvcmFjbGUBGgFXNa0fpB2xFW1R889ByDqps3iUaoOKvG+JAQxjaGVja0FkZHJlc3MBBmNhbGxlcgMJAQIhPQIFBmNhbGxlcgUGb3JhY2xlBwYBCGdldFRjaUlkAQJpZAMJAAACBQJpZAUKdXNkY1VzZG5MUAUNdXNkY1VzZG5MUFRDSQMJAAACBQJpZAUId3hVc2RuTFAFC3d4VXNkbkxQVENJAwkAAAIFAmlkBQp1c2RjVXNkbkxQBQ11c2RjVXNkbkxQVENJAwkAAAIFAmlkBQp1c2RjVXNkdExQBQ11c2RjVXNkdExQVENJAwkAAAIFAmlkBQxwdXp6bGVVc2RuTFAFD3B1enpsZVVzZG5MUFRDSQkAAgECDWludmFsaWQgYXNzZXQBDGdldEtleVN0YWtlZAEFdGNpSWQDCQAAAgUFdGNpSWQFDXVzZHRVc2RuTFBUQ0kFCWtleVN0YWtlZAMJAAACBQV0Y2lJZAULd3hVc2RuTFBUQ0kFCWtleVdYVVNETgMJAAACBQV0Y2lJZAUNdXNkY1VzZG5MUFRDSQULa2V5VVNEQ1VTRE4DCQAAAgUFdGNpSWQFDXVzZGNVc2R0TFBUQ0kFC2tleVVTRENVU0RUAwkAAAIFBXRjaUlkBQ9wdXp6bGVVc2RuTFBUQ0kFDWtleVBVWlpMRVVTRE4JAAIBAhJLZXkgZG9lcyBub3QgZXhpc3QBCGVuY29kZUlkAQV0Y2lJZAMJAAACBQV0Y2lJZAUNdXNkdFVzZG5MUFRDSQkA2AQBBQp1c2R0VXNkbkxQAwkAAAIFBXRjaUlkBQt3eFVzZG5MUFRDSQkA2AQBBQh3eFVzZG5MUAMJAAACBQV0Y2lJZAUNdXNkY1VzZG5MUFRDSQkA2AQBBQp1c2RjVXNkbkxQAwkAAAIFBXRjaUlkBQ11c2RjVXNkdExQVENJCQDYBAEFCnVzZGNVc2R0TFADCQAAAgUFdGNpSWQFD3B1enpsZVVzZG5MUFRDSQkA2AQBBQxwdXp6bGVVc2RuTFAJAAIBAhJLZXkgZG9lcyBub3QgZXhpc3QBD2NvbnZlcnRUb1N0cmluZwECaWQEByRtYXRjaDAFAmlkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCQDYBAEFAmlkCQACAQIXZGVjb2RpbmcgZnVuY3Rpb24gZXJyb3IcAWkBCGRlcG9zaXQyAAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBBQZvcmFjbGUJAAIBAhhjYWxsYWJsZSBmb3Igb3JhY2xlIG9ubHkEB2Fzc2V0SWQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQFdGNpSWQJAQhnZXRUY2lJZAEFB2Fzc2V0SWQEA2tleQkBDGdldEtleVN0YWtlZAEFBXRjaUlkBAxzdGFrZWRUb2tlbnMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5AAAECXRjaUlzc3VlZAQHJG1hdGNoMAkA7AcBBQV0Y2lJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQEA2ZlZQkAawMFCXBtdEFtb3VudAUGbXVsdGk4BQdtdWx0aTEwBBJ1c2VyRGVwb3NpdEJhbGFuY2UJAGUCBQlwbXRBbW91bnQFA2ZlZQQJZm9yT25lVGNpCQBrAwUJdGNpSXNzdWVkBQZtdWx0aTgFDHN0YWtlZFRva2VucwQNYW1vdW50VG9Jc3N1ZQkAawMFEnVzZXJEZXBvc2l0QmFsYW5jZQUJZm9yT25lVGNpBQZtdWx0aTgEB0xQc3Rha2UJAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJZAUSdXNlckRlcG9zaXRCYWxhbmNlBQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQLdXBkYXRlU3RhdGUJAQxJbnRlZ2VyRW50cnkCBQNrZXkJAGQCBQxzdGFrZWRUb2tlbnMFEnVzZXJEZXBvc2l0QmFsYW5jZQQIaXNzdWVUQ0kJAQdSZWlzc3VlAwUFdGNpSWQFDWFtb3VudFRvSXNzdWUGBAt0cmFuc2ZlclRDSQkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQ1hbW91bnRUb0lzc3VlBQV0Y2lJZAQKY29sbGVjdEZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQJ0dwUDZmVlBQdhc3NldElkCQDMCAIFC3VwZGF0ZVN0YXRlCQDMCAIFCGlzc3VlVENJCQDMCAIFC3RyYW5zZmVyVENJCQDMCAIFCmNvbGxlY3RGZWUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQl3aXRoZHJhdzIAAwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEFBm9yYWNsZQkAAgECGGNhbGxhYmxlIGZvciBvcmFjbGUgb25seQQFdGNpSWQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQKbHBJZFVzdGFrZQkBCGVuY29kZUlkAQUFdGNpSWQEB2RhdGFLZXkJAQxnZXRLZXlTdGFrZWQBBQV0Y2lJZAQIYXNTdHJpbmcJAQ9jb252ZXJ0VG9TdHJpbmcBBQV0Y2lJZAQJdGNpSXNzdWVkBAckbWF0Y2gwCQDsBwEJANkEAQUIYXNTdHJpbmcDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhVDYW4ndCBwdWxsIHRjaSBpc3N1ZWQECGxwU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFB2RhdGFLZXkAAAQIdGNpUHJpY2UJAGsDBQhscFN0YWtlZAUGbXVsdGk4BQl0Y2lJc3N1ZWQEA2ZlZQkAawMFCXBtdEFtb3VudAUGbXVsdGk4BQdtdWx0aTEwBBJ1c2VyV2l0aGRyYXdBbW91bnQJAGUCBQlwbXRBbW91bnQFA2ZlZQQLbHBUb1Vuc3Rha2UJAGgCBRJ1c2VyV2l0aGRyYXdBbW91bnQFCHRjaVByaWNlBAd1bnN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCB3Vuc3Rha2UJAMwIAgUKbHBJZFVzdGFrZQkAzAgCBQtscFRvVW5zdGFrZQUDbmlsBQNuaWwDCQAAAgUHdW5zdGFrZQUHdW5zdGFrZQQHYnVyblRjaQkBBEJ1cm4CCQEIZ2V0VGNpSWQBBQV0Y2lJZAUSdXNlcldpdGhkcmF3QW1vdW50BAt0cmFuc2ZlckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQJ0dwUDZmVlBQV0Y2lJZAQOdHJhbnNmZXJVc2VyTFAJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULbHBUb1Vuc3Rha2UJANkEAQUKbHBJZFVzdGFrZQQLdXBkYXRlU3RhdGUJAQxJbnRlZ2VyRW50cnkCBQdkYXRhS2V5CQBlAgUIbHBTdGFrZWQFC2xwVG9VbnN0YWtlCQDMCAIFB2J1cm5UY2kJAMwIAgULdHJhbnNmZXJGZWUJAMwIAgUOdHJhbnNmZXJVc2VyTFAJAMwIAgULdXBkYXRlU3RhdGUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9kZXBvc2l0V3hVc2RuTFAABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQJcG10QW1vdW50CAUDcG10BmFtb3VudAMJAQIhPQIIBQNwbXQHYXNzZXRJZAUId3hVc2RuTFAJAAIBAhthdHRhY2ggV1hVU0ROTFAgdG9rZW5zIG9ubHkDBQlpc1N0b3BwZWQJAAIBAhlzbWFydCBjb250cmFjdCBpcyBvbiBsb2NrBAh0a1N0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQlrZXlXWFVTRE4AAAQLdG90YWxJc3N1ZWQEByRtYXRjaDAJAOwHAQULd3hVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhBDYW4ndCBmaW5kIGFzc2V0BANvbmUJAGsDBQt0b3RhbElzc3VlZACAwtcvBQh0a1N0YWtlZAQHdG9Jc3N1ZQkAawMFCXBtdEFtb3VudAUDb25lAIDC1y8EC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUJa2V5V1hVU0ROCQBkAgUIdGtTdGFrZWQFCXBtdEFtb3VudAQHTFBzdGFrZQkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFA3BtdAUDbmlsAwkAAAIFB0xQc3Rha2UFB0xQc3Rha2UEB0xQSXNzdWUJAQdSZWlzc3VlAwULd3hVc2RuTFBUQ0kFB3RvSXNzdWUGBAh0cmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQd0b0lzc3VlBQt3eFVzZG5MUFRDSQkAzAgCBQdMUElzc3VlCQDMCAIFCHRyYW5zZmVyCQDMCAIFC3VwZGF0ZVN0YXRlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERZGVwb3NpdFVzZHRVc2RuTFAABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQJcG10QW1vdW50CAUDcG10BmFtb3VudAMJAQIhPQIIBQNwbXQHYXNzZXRJZAUKdXNkdFVzZG5MUAkAAgECHWF0dGFjaCBVU0RUVVNETkxQIHRva2VucyBvbmx5AwUJaXNTdG9wcGVkCQACAQIZc21hcnQgY29udHJhY3QgaXMgb24gbG9jawQIdGtTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa2V5U3Rha2VkAAAEC3RvdGFsSXNzdWVkBAckbWF0Y2gwCQDsBwEFDXVzZHRVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhBDYW4ndCBmaW5kIGFzc2V0BAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULa2V5Q29tcG91bmQAAAQGZm9yT25lCQBrAwULdG90YWxJc3N1ZWQAgMLXLwUIdGtTdGFrZWQEB3RvSXNzdWUJAGsDBQlwbXRBbW91bnQFBmZvck9uZQCAwtcvBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFCWtleVN0YWtlZAkAZAIFCHRrU3Rha2VkBQlwbXRBbW91bnQEB0xQc3Rha2UJAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIFc3Rha2UFA25pbAkAzAgCBQNwbXQFA25pbAMJAAACBQdMUHN0YWtlBQdMUHN0YWtlBAdMUElzc3VlCQEHUmVpc3N1ZQMFDXVzZHRVc2RuTFBUQ0kFB3RvSXNzdWUGBAh0cmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQd0b0lzc3VlBQ11c2R0VXNkbkxQVENJCQDMCAIFB0xQSXNzdWUJAMwIAgUIdHJhbnNmZXIJAMwIAgULdXBkYXRlU3RhdGUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFkZXBvc2l0VXNkY1VzZG5MUAAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAlwbXRBbW91bnQIBQNwbXQGYW1vdW50AwkBAiE9AggFA3BtdAdhc3NldElkBQp1c2RjVXNkbkxQCQACAQIdYXR0YWNoIFVTRENVU0ROTFAgdG9rZW5zIG9ubHkDBQlpc1N0b3BwZWQJAAIBAhlzbWFydCBjb250cmFjdCBpcyBvbiBsb2NrBAh0a1N0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlVU0RDVVNETgAABAt0b3RhbElzc3VlZAQHJG1hdGNoMAkA7AcBBQ11c2RjVXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CHF1YW50aXR5CQACAQIQQ2FuJ3QgZmluZCBhc3NldAQMZnJvbUNvbXBvdW5kCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFE2tleVVzZGNVc2RuQ29tcG91bmQAAAQGZm9yT25lCQBrAwULdG90YWxJc3N1ZWQAgMLXLwUIdGtTdGFrZWQEB3RvSXNzdWUJAGsDBQlwbXRBbW91bnQFBmZvck9uZQCAwtcvBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFC2tleVVTRENVU0ROCQBkAgUIdGtTdGFrZWQFCXBtdEFtb3VudAQHTFBzdGFrZQkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFA3BtdAUDbmlsAwkAAAIFB0xQc3Rha2UFB0xQc3Rha2UEB0xQSXNzdWUJAQdSZWlzc3VlAwUNdXNkY1VzZG5MUFRDSQUHdG9Jc3N1ZQYECHRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB3RvSXNzdWUFDXVzZGNVc2RuTFBUQ0kJAMwIAgUHTFBJc3N1ZQkAzAgCBQh0cmFuc2ZlcgkAzAgCBQt1cGRhdGVTdGF0ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWRlcG9zaXRVc2RjVXNkdExQAAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAECXBtdEFtb3VudAgFA3BtdAZhbW91bnQDCQECIT0CCAUDcG10B2Fzc2V0SWQFCnVzZGNVc2R0TFAJAAIBAh1hdHRhY2ggVVNEQ1VTRFRMUCB0b2tlbnMgb25seQMFCWlzU3RvcHBlZAkAAgECGXNtYXJ0IGNvbnRyYWN0IGlzIG9uIGxvY2sECHRrU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleVVTRENVU0RUAAAEC3RvdGFsSXNzdWVkBAckbWF0Y2gwCQDsBwEFDXVzZGNVc2R0TFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhBDYW4ndCBmaW5kIGFzc2V0BAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUTa2V5VXNkY1VzZHRDb21wb3VuZAAABAZmb3JPbmUJAGsDBQt0b3RhbElzc3VlZACAwtcvBQh0a1N0YWtlZAQHdG9Jc3N1ZQkAawMFCXBtdEFtb3VudAUGZm9yT25lAIDC1y8EC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgULa2V5VVNEQ1VTRFQJAGQCBQh0a1N0YWtlZAUJcG10QW1vdW50BAdMUHN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCBXN0YWtlBQNuaWwJAMwIAgUDcG10BQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQHTFBJc3N1ZQkBB1JlaXNzdWUDBQ11c2RjVXNkdExQVENJBQd0b0lzc3VlBgQIdHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHdG9Jc3N1ZQUNdXNkY1VzZHRMUFRDSQkAzAgCBQdMUElzc3VlCQDMCAIFCHRyYW5zZmVyCQDMCAIFC3VwZGF0ZVN0YXRlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETZGVwb3NpdFB1enpsZVVzZG5MUAAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAlwbXRBbW91bnQIBQNwbXQGYW1vdW50AwkBAiE9AggFA3BtdAdhc3NldElkBQxwdXp6bGVVc2RuTFAJAAIBAh9hdHRhY2ggUFVaWkxFVURTTkxQIHRva2VucyBvbmx5AwUJaXNTdG9wcGVkCQACAQIZc21hcnQgY29udHJhY3QgaXMgb24gbG9jawQIdGtTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUNa2V5UFVaWkxFVVNETgAABAt0b3RhbElzc3VlZAQHJG1hdGNoMAkA7AcBBQ9wdXp6bGVVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhBDYW4ndCBmaW5kIGFzc2V0BAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUVa2V5UHV6emxlVXNkbkNvbXBvdW5kAAAEBmZvck9uZQkAawMFC3RvdGFsSXNzdWVkAIDC1y8FCHRrU3Rha2VkBAd0b0lzc3VlCQBrAwUJcG10QW1vdW50BQZmb3JPbmUAgMLXLwQLdXBkYXRlU3RhdGUJAQxJbnRlZ2VyRW50cnkCBQ1rZXlQVVpaTEVVU0ROCQBkAgUIdGtTdGFrZWQFCXBtdEFtb3VudAQHTFBzdGFrZQkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFA3BtdAUDbmlsAwkAAAIFB0xQc3Rha2UFB0xQc3Rha2UEB0xQSXNzdWUJAQdSZWlzc3VlAwUPcHV6emxlVXNkbkxQVENJBQd0b0lzc3VlBgQIdHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHdG9Jc3N1ZQUPcHV6emxlVXNkbkxQVENJCQDMCAIFB0xQSXNzdWUJAMwIAgUIdHJhbnNmZXIJAMwIAgULdXBkYXRlU3RhdGUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFkZXBvc2l0TnNidFVzZG5MUAAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAlwbXRBbW91bnQIBQNwbXQGYW1vdW50AwkBAiE9AggFA3BtdAdhc3NldElkBQpuc2J0VXNkbkxQCQACAQIdYXR0YWNoIE5TQlRVU0ROTFAgdG9rZW5zIG9ubHkDBQlpc1N0b3BwZWQJAAIBAhlzbWFydCBjb250cmFjdCBpcyBvbiBsb2NrBAh0a1N0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlOU0JUVVNETgAABAt0b3RhbElzc3VlZAQHJG1hdGNoMAkA7AcBBQ1uc2J0VXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CHF1YW50aXR5CQACAQIQQ2FuJ3QgZmluZCBhc3NldAQDb25lCQBrAwULdG90YWxJc3N1ZWQAgMLXLwUIdGtTdGFrZWQEB3RvSXNzdWUJAGsDBQlwbXRBbW91bnQFA29uZQCAwtcvBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFC2tleU5TQlRVU0ROCQBkAgUIdGtTdGFrZWQFCXBtdEFtb3VudAQHTFBzdGFrZQkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFA3BtdAUDbmlsAwkAAAIFB0xQc3Rha2UFB0xQc3Rha2UEB0xQSXNzdWUJAQdSZWlzc3VlAwUNbnNidFVzZG5MUFRDSQUHdG9Jc3N1ZQYECHRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB3RvSXNzdWUFDW5zYnRVc2RuTFBUQ0kJAMwIAgUHTFBJc3N1ZQkAzAgCBQh0cmFuc2ZlcgkAzAgCBQt1cGRhdGVTdGF0ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGRlcG9zaXRCdGNVc2RuTFAABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQJcG10QW1vdW50CAUDcG10BmFtb3VudAMJAQIhPQIIBQNwbXQHYXNzZXRJZAUJYnRjVXNkbkxQCQACAQIcYXR0YWNoIEJUQ1VTRE5MUCB0b2tlbnMgb25seQMFCWlzU3RvcHBlZAkAAgECGXNtYXJ0IGNvbnRyYWN0IGlzIG9uIGxvY2sECHRrU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCmtleUJUQ1VTRE4AAAQLdG90YWxJc3N1ZWQEByRtYXRjaDAJAOwHAQUMYnRjVXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CHF1YW50aXR5CQACAQIQQ2FuJ3QgZmluZCBhc3NldAQGZm9yT25lCQBrAwULdG90YWxJc3N1ZWQAgMLXLwUIdGtTdGFrZWQEB3RvSXNzdWUJAGsDBQlwbXRBbW91bnQFBmZvck9uZQCAwtcvBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFCmtleUJUQ1VTRE4JAGQCBQh0a1N0YWtlZAUJcG10QW1vdW50BAdMUHN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCBXN0YWtlBQNuaWwJAMwIAgUDcG10BQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQHTFBJc3N1ZQkBB1JlaXNzdWUDBQxidGNVc2RuTFBUQ0kFB3RvSXNzdWUGBAh0cmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQd0b0lzc3VlBQxidGNVc2RuTFBUQ0kJAMwIAgUHTFBJc3N1ZQkAzAgCBQh0cmFuc2ZlcgkAzAgCBQt1cGRhdGVTdGF0ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWRlcG9zaXRFbm5vVXNkbkxQAAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAECXBtdEFtb3VudAgFA3BtdAZhbW91bnQDCQECIT0CCAUDcG10B2Fzc2V0SWQFCmVubm9Vc2RuTFAJAAIBAh1hdHRhY2ggRU5OT1VTRE5MUCB0b2tlbnMgb25seQMFCWlzU3RvcHBlZAkAAgECGXNtYXJ0IGNvbnRyYWN0IGlzIG9uIGxvY2sECHRrU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleUVOTk9VU0ROAAAEC3RvdGFsSXNzdWVkBAckbWF0Y2gwCQDsBwEFDWVubm9Vc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhBDYW4ndCBmaW5kIGFzc2V0BANvbmUJAGsDBQt0b3RhbElzc3VlZACAwtcvBQh0a1N0YWtlZAQHdG9Jc3N1ZQkAawMFCXBtdEFtb3VudAUDb25lAIDC1y8EC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgULa2V5RU5OT1VTRE4JAGQCBQh0a1N0YWtlZAUJcG10QW1vdW50BAdMUHN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCBXN0YWtlBQNuaWwJAMwIAgUDcG10BQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQHTFBJc3N1ZQkBB1JlaXNzdWUDBQ1lbm5vVXNkbkxQVENJBQd0b0lzc3VlBgQIdHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHdG9Jc3N1ZQUNZW5ub1VzZG5MUFRDSQkAzAgCBQdMUElzc3VlCQDMCAIFCHRyYW5zZmVyCQDMCAIFC3VwZGF0ZVN0YXRlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESZGVwb3NpdFdhdmVzVXNkbkxQAAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAECXBtdEFtb3VudAgFA3BtdAZhbW91bnQDCQECIT0CCAUDcG10B2Fzc2V0SWQFC3dhdmVzVXNkbkxQCQACAQIeYXR0YWNoIFdBVkVTVVNETkxQIHRva2VucyBvbmx5AwUJaXNTdG9wcGVkCQACAQIZc21hcnQgY29udHJhY3QgaXMgb24gbG9jawQIdGtTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUMa2V5V0FWRVNVU0ROAAAEC3RvdGFsSXNzdWVkBAckbWF0Y2gwCQDsBwEFDndhdmVzVXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CHF1YW50aXR5CQACAQIQQ2FuJ3QgZmluZCBhc3NldAQDb25lCQBrAwULdG90YWxJc3N1ZWQAgMLXLwUIdGtTdGFrZWQEB3RvSXNzdWUJAGsDBQlwbXRBbW91bnQFA29uZQCAwtcvBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFDGtleVdBVkVTVVNETgkAZAIFCHRrU3Rha2VkBQlwbXRBbW91bnQEB0xQc3Rha2UJAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIFc3Rha2UFA25pbAkAzAgCBQNwbXQFA25pbAMJAAACBQdMUHN0YWtlBQdMUHN0YWtlBAdMUElzc3VlCQEHUmVpc3N1ZQMFDndhdmVzVXNkbkxQVENJBQd0b0lzc3VlBgQIdHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHdG9Jc3N1ZQUOd2F2ZXNVc2RuTFBUQ0kJAMwIAgUHTFBJc3N1ZQkAzAgCBQh0cmFuc2ZlcgkAzAgCBQt1cGRhdGVTdGF0ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGRlcG9zaXRMVENVU0ROTFAABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQJcG10QW1vdW50CAUDcG10BmFtb3VudAMJAQIhPQIIBQNwbXQHYXNzZXRJZAUJbHRjVXNkbkxQCQACAQIcYXR0YWNoIExUQ1VTRE5MUCB0b2tlbnMgb25seQMFCWlzU3RvcHBlZAkAAgECGXNtYXJ0IGNvbnRyYWN0IGlzIG9uIGxvY2sECHRrU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCmtleUxUQ1VTRE4AAAQLdG90YWxJc3N1ZWQEByRtYXRjaDAJAOwHAQUMbHRjVXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CHF1YW50aXR5CQACAQIQQ2FuJ3QgZmluZCBhc3NldAQDb25lCQBrAwULdG90YWxJc3N1ZWQAgMLXLwUIdGtTdGFrZWQEB3RvSXNzdWUJAGsDBQlwbXRBbW91bnQFA29uZQCAwtcvBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFCmtleUxUQ1VTRE4JAGQCBQh0a1N0YWtlZAUJcG10QW1vdW50BAdMUHN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCBXN0YWtlBQNuaWwJAMwIAgUDcG10BQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQHTFBJc3N1ZQkBB1JlaXNzdWUDBQxsdGNVc2RuTFBUQ0kFB3RvSXNzdWUGBAh0cmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQd0b0lzc3VlBQxsdGNVc2RuTFBUQ0kJAMwIAgUHTFBJc3N1ZQkAzAgCBQh0cmFuc2ZlcgkAzAgCBQt1cGRhdGVTdGF0ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGNvbXBvdW5kV3hVc2RuTFAABAhjb21wb3VuZAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAJjYQgFCGNvbXBvdW5kBmFtb3VudAQIaXNPcmFjbGUJAQxjaGVja0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzAwkBAiE9AggFCGNvbXBvdW5kB2Fzc2V0SWQFCHd4VXNkbkxQCQACAQIbYXR0YWNoIFdYVVNETkxQIHRva2VucyBvbmx5AwkBASEBBQhpc09yYWNsZQkAAgECLFlvdSBhcmUgbm90IGF1dGhvdGl6ZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uBAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwURa2V5d3hVc2RuQ29tcG91bmQAAAQLdG90YWxTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa2V5V1hVU0ROAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUJa2V5V1hVU0ROCQBkAgULdG90YWxTdGFrZWQFAmNhBAJ0YwkBDEludGVnZXJFbnRyeQIFEWtleXd4VXNkbkNvbXBvdW5kCQBkAgUMZnJvbUNvbXBvdW5kBQJjYQkAzAgCBQt1cGRhdGVTdGF0ZQkAzAgCBQJ0YwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmNvbXBvdW5kVXNkdFVzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUKdXNkdFVzZG5MUAkAAgECHWF0dGFjaCBVU0RUVVNETkxQIHRva2VucyBvbmx5AwkBASEBBQhpc09yYWNsZQkAAgECLFlvdSBhcmUgbm90IGF1dGhvdGl6ZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uBAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULa2V5Q29tcG91bmQAAAQLdG90YWxTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa2V5U3Rha2VkAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUJa2V5U3Rha2VkCQBkAgULdG90YWxTdGFrZWQFAmNhBAJ0YwkBDEludGVnZXJFbnRyeQIFC2tleUNvbXBvdW5kCQBkAgUMZnJvbUNvbXBvdW5kBQJjYQkAzAgCBQt1cGRhdGVTdGF0ZQkAzAgCBQJ0YwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmNvbXBvdW5kVXNkY1VzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUKdXNkY1VzZG5MUAkAAgECHWF0dGFjaCBVU0RDVVNETkxQIHRva2VucyBvbmx5AwkBASEBBQhpc09yYWNsZQkAAgECLFlvdSBhcmUgbm90IGF1dGhvdGl6ZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uBAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUTa2V5VXNkY1VzZG5Db21wb3VuZAAABAt0b3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlVU0RDVVNETgAABAZzdGFrZUMJAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIFc3Rha2UFA25pbAkAzAgCBQhjb21wb3VuZAUDbmlsAwkAAAIFBnN0YWtlQwUGc3Rha2VDBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFC2tleVVTRENVU0ROCQBkAgULdG90YWxTdGFrZWQFAmNhBAJ0YwkBDEludGVnZXJFbnRyeQIFE2tleVVzZGNVc2RuQ29tcG91bmQJAGQCBQxmcm9tQ29tcG91bmQFAmNhCQDMCAIFC3VwZGF0ZVN0YXRlCQDMCAIFAnRjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESY29tcG91bmRVc2RjVXNkdExQAAQIY29tcG91bmQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCY2EIBQhjb21wb3VuZAZhbW91bnQECGlzT3JhY2xlCQEMY2hlY2tBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwMJAQIhPQIIBQhjb21wb3VuZAdhc3NldElkBQp1c2RjVXNkdExQCQACAQIdYXR0YWNoIFVTRENVU0RUTFAgdG9rZW5zIG9ubHkDCQEBIQEFCGlzT3JhY2xlCQACAQIsWW91IGFyZSBub3QgYXV0aG90aXplZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24EDGZyb21Db21wb3VuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlVc2RjVXNkdENvbXBvdW5kAAAEC3RvdGFsU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleVVTRENVU0RUAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgULa2V5VVNEQ1VTRFQJAGQCBQt0b3RhbFN0YWtlZAUCY2EEAnRjCQEMSW50ZWdlckVudHJ5AgUTa2V5VXNkY1VzZHRDb21wb3VuZAkAZAIFDGZyb21Db21wb3VuZAUCY2EJAMwIAgULdXBkYXRlU3RhdGUJAMwIAgUCdGMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARRjb21wb3VudFB1enpsZVVzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUMcHV6emxlVXNkbkxQCQACAQIfYXR0YWNoIFBVWlpMRVVTRE5MUCB0b2tlbnMgb25seQMJAQEhAQUIaXNPcmFjbGUJAAIBAixZb3UgYXJlIG5vdCBhdXRob3RpemVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbgQMZnJvbUNvbXBvdW5kCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFWtleVB1enpsZVVzZG5Db21wb3VuZAAABAt0b3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ1rZXlQVVpaTEVVU0ROAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUNa2V5UFVaWkxFVVNETgkAZAIFC3RvdGFsU3Rha2VkBQJjYQQCdGMJAQxJbnRlZ2VyRW50cnkCBRVrZXlQdXp6bGVVc2RuQ29tcG91bmQJAGQCBQxmcm9tQ29tcG91bmQFAmNhCQDMCAIFC3VwZGF0ZVN0YXRlCQDMCAIFAnRjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESY29tcG91bmROc2J0VXNkbkxQAAQIY29tcG91bmQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCY2EIBQhjb21wb3VuZAZhbW91bnQECGlzT3JhY2xlCQEMY2hlY2tBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwMJAQIhPQIIBQhjb21wb3VuZAdhc3NldElkBQpuc2J0VXNkbkxQCQACAQIdYXR0YWNoIE5TQlRVU0ROTFAgdG9rZW5zIG9ubHkDCQEBIQEFCGlzT3JhY2xlCQACAQIsWW91IGFyZSBub3QgYXV0aG90aXplZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24EDGZyb21Db21wb3VuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlOc2J0VXNkbkNvbXBvdW5kAAAEC3RvdGFsU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU5TQlRVU0ROAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgULa2V5TlNCVFVTRE4JAGQCBQt0b3RhbFN0YWtlZAUCY2EEAnRjCQEMSW50ZWdlckVudHJ5AgUTa2V5TnNidFVzZG5Db21wb3VuZAkAZAIFDGZyb21Db21wb3VuZAUCY2EJAMwIAgULdXBkYXRlU3RhdGUJAMwIAgUCdGMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFjb21wb3VuZEJ0Y1VzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUJYnRjVXNkbkxQCQACAQIcYXR0YWNoIEJUQ1VTRE5MUCB0b2tlbnMgb25seQMJAQEhAQUIaXNPcmFjbGUJAAIBAixZb3UgYXJlIG5vdCBhdXRob3RpemVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbgQMZnJvbUNvbXBvdW5kCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEmtleUJ0Y1VzZG5Db21wb3VuZAAABAt0b3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQprZXlCVENVU0ROAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUKa2V5QlRDVVNETgkAZAIFC3RvdGFsU3Rha2VkBQJjYQQCdGMJAQxJbnRlZ2VyRW50cnkCBRJrZXlCdGNVc2RuQ29tcG91bmQJAGQCBQxmcm9tQ29tcG91bmQFAmNhCQDMCAIFC3VwZGF0ZVN0YXRlCQDMCAIFAnRjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESY29tcG91bmRFbm5vVXNkbkxQAAQIY29tcG91bmQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCY2EIBQhjb21wb3VuZAZhbW91bnQECGlzT3JhY2xlCQEMY2hlY2tBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwMJAQIhPQIIBQhjb21wb3VuZAdhc3NldElkBQplbm5vVXNkbkxQCQACAQIdYXR0YWNoIEVOTk9VU0ROTFAgdG9rZW5zIG9ubHkDCQEBIQEFCGlzT3JhY2xlCQACAQIsWW91IGFyZSBub3QgYXV0aG90aXplZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24EDGZyb21Db21wb3VuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlFbm5vVXNkbkNvbXBvdW5kAAAEC3RvdGFsU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleUVOTk9VU0ROAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgULa2V5RU5OT1VTRE4JAGQCBQt0b3RhbFN0YWtlZAUCY2EEAnRjCQEMSW50ZWdlckVudHJ5AgUTa2V5RW5ub1VzZG5Db21wb3VuZAkAZAIFDGZyb21Db21wb3VuZAUCY2EJAMwIAgULdXBkYXRlU3RhdGUJAMwIAgUCdGMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARNjb21wb3VuZFdhdmVzVXNkbkxQAAQIY29tcG91bmQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCY2EIBQhjb21wb3VuZAZhbW91bnQECGlzT3JhY2xlCQEMY2hlY2tBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwMJAQIhPQIIBQhjb21wb3VuZAdhc3NldElkBQt3YXZlc1VzZG5MUAkAAgECHmF0dGFjaCBXQVZFU1VTRE5MUCB0b2tlbnMgb25seQMJAQEhAQUIaXNPcmFjbGUJAAIBAixZb3UgYXJlIG5vdCBhdXRob3RpemVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbgQMZnJvbUNvbXBvdW5kCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFGtleVdhdmVzVXNkbkNvbXBvdW5kAAAEC3RvdGFsU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDGtleVdBVkVTVVNETgAABAZzdGFrZUMJAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIFc3Rha2UFA25pbAkAzAgCBQhjb21wb3VuZAUDbmlsAwkAAAIFBnN0YWtlQwUGc3Rha2VDBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFDGtleVdBVkVTVVNETgkAZAIFC3RvdGFsU3Rha2VkBQJjYQQCdGMJAQxJbnRlZ2VyRW50cnkCBRRrZXlXYXZlc1VzZG5Db21wb3VuZAkAZAIFDGZyb21Db21wb3VuZAUCY2EJAMwIAgULdXBkYXRlU3RhdGUJAMwIAgUCdGMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFjb21wb3VuZEx0Y1VzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUJbHRjVXNkbkxQCQACAQIcYXR0YWNoIExUQ1VTRE5MUCB0b2tlbnMgb25seQMJAQEhAQUIaXNPcmFjbGUJAAIBAixZb3UgYXJlIG5vdCBhdXRob3RpemVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbgQMZnJvbUNvbXBvdW5kCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEmtleUx0Y1VzZG5Db21wb3VuZAAABAt0b3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQxrZXlXQVZFU1VTRE4AAAQGc3Rha2VDCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCBXN0YWtlBQNuaWwJAMwIAgUIY29tcG91bmQFA25pbAMJAAACBQZzdGFrZUMFBnN0YWtlQwQLdXBkYXRlU3RhdGUJAQxJbnRlZ2VyRW50cnkCBQprZXlMVENVU0ROCQBkAgULdG90YWxTdGFrZWQFAmNhBAJ0YwkBDEludGVnZXJFbnRyeQIFEmtleUx0Y1VzZG5Db21wb3VuZAkAZAIFDGZyb21Db21wb3VuZAUCY2EJAMwIAgULdXBkYXRlU3RhdGUJAMwIAgUCdGMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxpbml0TlNCVFVTRE4ABAJwbQkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAJhbQgFAnBtBmFtb3VudAMJAQIhPQIIBQJwbQdhc3NldElkBQpuc2J0VXNkbkxQCQACAQIQVW5leHBlY3RlZCB0b2tlbgQBcwkA/AcECQEHQWRkcmVzcwEBGgFUWUAnk2tLKe6+saEO5txAuM+kjXoM67UPAgVzdGFrZQUDbmlsCQDMCAIFAnBtBQNuaWwDCQAAAgUBcwUBcwQDdXBkCQEMSW50ZWdlckVudHJ5AgULa2V5TlNCVFVTRE4FAmFtBAR1cGRLCQEMSW50ZWdlckVudHJ5AgUTa2V5TnNidFVzZG5Db21wb3VuZAAACQDMCAIFA3VwZAkAzAgCBQR1cGRLBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELaW5pdEJUQ1VTRE4ABAJwbQkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAJhbQgFAnBtBmFtb3VudAMJAQIhPQIIBQJwbQdhc3NldElkBQlidGNVc2RuTFAJAAIBAhBVbmV4cGVjdGVkIHRva2VuBAFzCQD8BwQJAQdBZGRyZXNzAQEaAVRZQCeTa0sp7r6xoQ7m3EC4z6SNegzrtQ8CBXN0YWtlBQNuaWwJAMwIAgUCcG0FA25pbAMJAAACBQFzBQFzBAN1cGQJAQxJbnRlZ2VyRW50cnkCBQprZXlCVENVU0ROBQJhbQQEdXBkSwkBDEludGVnZXJFbnRyeQIFEmtleUJ0Y1VzZG5Db21wb3VuZAAACQDMCAIFA3VwZAkAzAgCBQR1cGRLBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMaW5pdEVOTk9VU0ROAAQCcG0JAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCYW0IBQJwbQZhbW91bnQDCQECIT0CCAUCcG0HYXNzZXRJZAUKZW5ub1VzZG5MUAkAAgECEFVuZXhwZWN0ZWQgdG9rZW4EAXMJAPwHBAkBB0FkZHJlc3MBARoBVFlAJ5NrSynuvrGhDubcQLjPpI16DOu1DwIFc3Rha2UFA25pbAkAzAgCBQJwbQUDbmlsAwkAAAIFAXMFAXMEA3VwZAkBDEludGVnZXJFbnRyeQIFC2tleUVOTk9VU0ROBQJhbQQEdXBkSwkBDEludGVnZXJFbnRyeQIFE2tleUVubm9Vc2RuQ29tcG91bmQAAAkAzAgCBQN1cGQJAMwIAgUEdXBkSwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDWluaXRXQVZFU1VTRE4ABAJwbQkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAJhbQgFAnBtBmFtb3VudAMJAQIhPQIIBQJwbQdhc3NldElkBQt3YXZlc1VzZG5MUAkAAgECEFVuZXhwZWN0ZWQgdG9rZW4EAXMJAPwHBAkBB0FkZHJlc3MBARoBVFlAJ5NrSynuvrGhDubcQLjPpI16DOu1DwIFc3Rha2UFA25pbAkAzAgCBQJwbQUDbmlsAwkAAAIFAXMFAXMEA3VwZAkBDEludGVnZXJFbnRyeQIFDGtleVdBVkVTVVNETgUCYW0EBHVwZEsJAQxJbnRlZ2VyRW50cnkCBRRrZXlXYXZlc1VzZG5Db21wb3VuZAAACQDMCAIFA3VwZAkAzAgCBQR1cGRLBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELaW5pdExUQ1VTRE4ABAJwbQkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAJhbQgFAnBtBmFtb3VudAMJAQIhPQIIBQJwbQdhc3NldElkBQlsdGNVc2RuTFAJAAIBAhBVbmV4cGVjdGVkIHRva2VuBAFzCQD8BwQJAQdBZGRyZXNzAQEaAVRZQCeTa0sp7r6xoQ7m3EC4z6SNegzrtQ8CBXN0YWtlBQNuaWwJAMwIAgUCcG0FA25pbAMJAAACBQFzBQFzBAN1cGQJAQxJbnRlZ2VyRW50cnkCBQprZXlMVENVU0ROBQJhbQQEdXBkSwkBDEludGVnZXJFbnRyeQIFEmtleUx0Y1VzZG5Db21wb3VuZAAACQDMCAIFA3VwZAkAzAgCBQR1cGRLBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEId2l0aGRyYXcABAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmFtCAUHcGF5bWVudAZhbW91bnQEAmlkCAUHcGF5bWVudAdhc3NldElkAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQILMSBwbW50IGV4cGQDCQAAAgUCaWQFDXVzZHRVc2RuTFBUQ0kECVRDSUFtb3VudAQHJG1hdGNoMAkA7AcBBQ11c2R0VXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAFxBQckbWF0Y2gwCAUBcQhxdWFudGl0eQAABA51c2RuVXNkdFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQlrZXlTdGFrZWQAAAQMZm9yU2luZ2xlVENJCQBrAwUOdXNkblVzZHRTdGFrZWQFA2RlZgUJVENJQW1vdW50BBB1c2RuTHBUb1dpdGhkcmF3CQBrAwUMZm9yU2luZ2xlVENJBQJhbQUDZGVmBANmZWUJAGsDBRB1c2RuTHBUb1dpdGhkcmF3BQNkZWYFB2ZlZVBlcmMEEXVuc3Rha2VVc2R0VXNkbkxQCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCB3Vuc3Rha2UJAMwIAgIsOTd6SEZwMUMzY0I3cWZ2eDhYdjVmMnJXcDluVVNHNVVuQWFtZlBjVzZ0eGYJAMwIAgUQdXNkbkxwVG9XaXRoZHJhdwUDbmlsBQNuaWwDCQAAAgURdW5zdGFrZVVzZHRVc2RuTFAFEXVuc3Rha2VVc2R0VXNkbkxQBBF1c2RuTHBmZWVUcmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQJ0dwUDZmVlBQp1c2R0VXNkbkxQBAh0cmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBlAgUQdXNkbkxwVG9XaXRoZHJhdwUDZmVlBQp1c2R0VXNkbkxQBBJ1cGRhdGVVc2RuTHBTdGFrZWQJAQxJbnRlZ2VyRW50cnkCBQlrZXlTdGFrZWQJAGUCBQ51c2RuVXNkdFN0YWtlZAUQdXNkbkxwVG9XaXRoZHJhdwQDYnJuCQEEQnVybgIFDXVzZHRVc2RuTFBUQ0kFAmFtCQDMCAIFEXVzZG5McGZlZVRyYW5zZmVyCQDMCAIFCHRyYW5zZmVyCQDMCAIFEnVwZGF0ZVVzZG5McFN0YWtlZAkAzAgCBQNicm4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQJpZAULd3hVc2RuTFBUQ0kEB3d4VGNpQW0EByRtYXRjaDAJAOwHAQULd3hVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEAXEFByRtYXRjaDAIBQFxCHF1YW50aXR5AAAEDHd4VXNkblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQlrZXlXWFVTRE4AAAQKc2luZ2xlV1hMUAkAawMFDHd4VXNkblN0YWtlZAUDZGVmBQd3eFRjaUFtBA53eExwVG9XaXRoZHJhdwkAawMFCnNpbmdsZVdYTFAFAmFtBQNkZWYEA2ZlZQkAawMFDnd4THBUb1dpdGhkcmF3BQNkZWYFB2ZlZVBlcmMED3Vuc3Rha2VXeFVzZG5MUAkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgd1bnN0YWtlCQDMCAICLEYyQUtrQTUxM2s1eUhFSmtMc1U2dld4Q1lZazgxMUdwakxod0V2MldHd1o5CQDMCAIFDnd4THBUb1dpdGhkcmF3BQNuaWwFA25pbAMJAAACBQ91bnN0YWtlV3hVc2RuTFAFD3Vuc3Rha2VXeFVzZG5MUAQPd3hMcEZlZVRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCHd4VXNkbkxQBAx3eExwVHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIFDnd4THBUb1dpdGhkcmF3BQNmZWUFCHd4VXNkbkxQBBB1cGRhdGVXeExwU3Rha2VkCQEMSW50ZWdlckVudHJ5AgUJa2V5V1hVU0ROCQBlAgUMd3hVc2RuU3Rha2VkBQ53eExwVG9XaXRoZHJhdwQLYnVybld4THBUY2kJAQRCdXJuAgULd3hVc2RuTFBUQ0kFAmFtCQDMCAIFD3d4THBGZWVUcmFuc2ZlcgkAzAgCBQx3eExwVHJhbnNmZXIJAMwIAgUQdXBkYXRlV3hMcFN0YWtlZAkAzAgCBQtidXJuV3hMcFRjaQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFAmlkBQ11c2RjVXNkbkxQVENJBAt1c2RjVXNkblRDSQQHJG1hdGNoMAkA7AcBBQ11c2RjVXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAFxBQckbWF0Y2gwCAUBcQhxdWFudGl0eQAABA51c2RjVXNkblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlVU0RDVVNETgAABAxzaW5nbGVVc2RjTFAJAGsDBQ51c2RjVXNkblN0YWtlZAUDZGVmBQt1c2RjVXNkblRDSQQUdXNkY1VzZG5McFRvV2l0aGRyYXcJAGsDBQxzaW5nbGVVc2RjTFAFAmFtBQNkZWYEA2ZlZQkAawMFFHVzZGNVc2RuTHBUb1dpdGhkcmF3BQNkZWYFB2ZlZVBlcmMEEXVuc3Rha2VVc2RjVXNkbkxQCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCB3Vuc3Rha2UJAMwIAgIrRUs2TjdTMzh4YnRCVDNTeEFxb0dkRExDaVg2cm9qWDZHMTY5Q25TeXVFNQkAzAgCBRR1c2RjVXNkbkxwVG9XaXRoZHJhdwUDbmlsBQNuaWwDCQAAAgURdW5zdGFrZVVzZGNVc2RuTFAFEXVuc3Rha2VVc2RjVXNkbkxQBA11c2RjVXNkbkxQRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCnVzZGNVc2RuTFAEEHVzZGNVc2RuVHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIFFHVzZGNVc2RuTHBUb1dpdGhkcmF3BQNmZWUFCnVzZGNVc2RuTFAEFnVwZGF0ZVVzZGNVc2RuTHBTdGFrZWQJAQxJbnRlZ2VyRW50cnkCBQtrZXlVU0RDVVNETgkAZQIFDnVzZGNVc2RuU3Rha2VkBRR1c2RjVXNkbkxwVG9XaXRoZHJhdwQRYnVyblVzZGNVc2RuTHBUY2kJAQRCdXJuAgUNdXNkY1VzZG5MUFRDSQUCYW0JAMwIAgUNdXNkY1VzZG5MUEZlZQkAzAgCBRB1c2RjVXNkblRyYW5zZmVyCQDMCAIFFnVwZGF0ZVVzZGNVc2RuTHBTdGFrZWQJAMwIAgURYnVyblVzZGNVc2RuTHBUY2kFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQJpZAUNdXNkY1VzZHRMUFRDSQQLdXNkY1VzZHRUY2kEByRtYXRjaDAJAOwHAQUNdXNkY1VzZHRMUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQBcQUHJG1hdGNoMAgFAXEIcXVhbnRpdHkAAAQOdXNkY1VzZHRTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULa2V5VVNEQ1VTRFQAAAQOc2luZ2xlVXNkY1VzZHQJAGsDBQ51c2RjVXNkdFN0YWtlZAUDZGVmBQt1c2RjVXNkdFRjaQQUdXNkY1VzZHRMcFRvV2l0aGRyYXcJAGsDBQ5zaW5nbGVVc2RjVXNkdAUCYW0FA2RlZgQDZmVlCQBrAwUUdXNkY1VzZHRMcFRvV2l0aGRyYXcFA2RlZgUHZmVlUGVyYwQRdW5zdGFrZVVzZGNVc2R0TFAJAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIHdW5zdGFrZQkAzAgCAixFUGhkRWZtUWFOY0h5dkRtUkdobkxoZ2NKdEtaMmE0azNaQm1LV3RBRVd5SAkAzAgCBRR1c2RjVXNkdExwVG9XaXRoZHJhdwUDbmlsBQNuaWwDCQAAAgURdW5zdGFrZVVzZGNVc2R0TFAFEXVuc3Rha2VVc2RjVXNkdExQBA11c2RjVXNkdExQRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCnVzZGNVc2R0TFAEEHVzZGNVc2R0VHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIFFHVzZGNVc2R0THBUb1dpdGhkcmF3BQNmZWUFCnVzZGNVc2R0TFAEFnVwZGF0ZVVzZGNVc2R0THBTdGFrZWQJAQxJbnRlZ2VyRW50cnkCBQtrZXlVU0RDVVNEVAkAZQIFDnVzZGNVc2R0U3Rha2VkBRR1c2RjVXNkdExwVG9XaXRoZHJhdwQRYnVyblVzZGNVc2R0THBUY2kJAQRCdXJuAgUNdXNkY1VzZHRMUFRDSQUCYW0JAMwIAgUNdXNkY1VzZHRMUEZlZQkAzAgCBRB1c2RjVXNkdFRyYW5zZmVyCQDMCAIFFnVwZGF0ZVVzZGNVc2R0THBTdGFrZWQJAMwIAgURYnVyblVzZGNVc2R0THBUY2kFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQJpZAUPcHV6emxlVXNkbkxQVENJBA1wdXp6bGVVc2RuVGNpBAckbWF0Y2gwCQDsBwEFD3B1enpsZVVzZG5MUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQBcQUHJG1hdGNoMAgFAXEIcXVhbnRpdHkAAAQOcHV6emxlTFBTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUNa2V5UFVaWkxFVVNETgAABBBzaW5nbGVQdXp6bGVVc2RuCQBrAwUOcHV6emxlTFBTdGFrZWQFA2RlZgUNcHV6emxlVXNkblRjaQQScHV6emxlVXNkbldpdGhkcmF3CQBrAwUQc2luZ2xlUHV6emxlVXNkbgUCYW0FA2RlZgQDZmVlCQBrAwUScHV6emxlVXNkbldpdGhkcmF3BQNkZWYFB2ZlZVBlcmMEE3Vuc3Rha2VQdXp6bGVVc2RuTFAJAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIHdW5zdGFrZQkAzAgCAixFOHpIdTMzR2ZjTnlHTHlwWDc3Z1ppVVhmdnVaUWVhWW1pRWZzeTdWWU53UAkAzAgCBRJwdXp6bGVVc2RuV2l0aGRyYXcFA25pbAUDbmlsAwkAAAIFE3Vuc3Rha2VQdXp6bGVVc2RuTFAFE3Vuc3Rha2VQdXp6bGVVc2RuTFAED3B1enpsZVVzZG5MUEZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQJ0dwUDZmVlBQxwdXp6bGVVc2RuTFAEEnB1enpsZVVzZG5UcmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBlAgUScHV6emxlVXNkbldpdGhkcmF3BQNmZWUFDHB1enpsZVVzZG5MUAQYdXBkYXRlUHV6emxlVXNkbkxwU3Rha2VkCQEMSW50ZWdlckVudHJ5AgUNa2V5UFVaWkxFVVNETgkAZQIFDnB1enpsZUxQU3Rha2VkBRJwdXp6bGVVc2RuV2l0aGRyYXcEDWJ1cm5QdXp6bGVUQ0kJAQRCdXJuAgUPcHV6emxlVXNkbkxQVENJBQJhbQkAzAgCBQ9wdXp6bGVVc2RuTFBGZWUJAMwIAgUScHV6emxlVXNkblRyYW5zZmVyCQDMCAIFGHVwZGF0ZVB1enpsZVVzZG5McFN0YWtlZAkAzAgCBQ1idXJuUHV6emxlVENJBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUCaWQFDGJ0Y1VzZG5MUFRDSQQKYnRjVXNkblRDSQQHJG1hdGNoMAkA7AcBBQxidGNVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEAXEFByRtYXRjaDAIBQFxCHF1YW50aXR5AAAEDWJ0Y1VzZG5TdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUKa2V5QlRDVVNETgAABA1zaW5nbGVCdGNVc2RuCQBrAwUNYnRjVXNkblN0YWtlZAUDZGVmBQpidGNVc2RuVENJBA9idGNVc2RuV2l0aGRyYXcJAGsDBQ1zaW5nbGVCdGNVc2RuBQJhbQUDZGVmBANmZWUJAGsDBQ9idGNVc2RuV2l0aGRyYXcFA2RlZgUHZmVlUGVyYwQOdW5zdGFrZUJ0Y1VzZG4JAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIHdW5zdGFrZQkAzAgCAiw4V2hINUNDSjZOYWtQdkV2QUpjaXpxcUQ3SDZheGh1cGRZSERGdW1TRHdzeQkAzAgCBQ9idGNVc2RuV2l0aGRyYXcFA25pbAUDbmlsAwkAAAIFDnVuc3Rha2VCdGNVc2RuBQ51bnN0YWtlQnRjVXNkbgQMYnRjVXNkbkxQRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCWJ0Y1VzZG5MUAQPYnRjVXNkblRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCBQ9idGNVc2RuV2l0aGRyYXcFA2ZlZQUJYnRjVXNkbkxQBBV1cGRhdGVCdGNVc2RuTFBTdGFrZWQJAQxJbnRlZ2VyRW50cnkCBQprZXlCVENVU0ROCQBlAgUNYnRjVXNkblN0YWtlZAUPYnRjVXNkbldpdGhkcmF3BA5idXJuQnRjVXNkblRjaQkBBEJ1cm4CBQxidGNVc2RuTFBUQ0kFAmFtCQDMCAIFDGJ0Y1VzZG5MUEZlZQkAzAgCBQ9idGNVc2RuVHJhbnNmZXIJAMwIAgUVdXBkYXRlQnRjVXNkbkxQU3Rha2VkCQDMCAIFDmJ1cm5CdGNVc2RuVGNpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUCaWQFDndhdmVzVXNkbkxQVENJBAx3YXZlc1VzZG5UQ0kEByRtYXRjaDAJAOwHAQUOd2F2ZXNVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEAXEFByRtYXRjaDAIBQFxCHF1YW50aXR5AAAED3dhdmVzVXNkblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQxrZXlXQVZFU1VTRE4AAAQPc2luZ2xlV2F2ZXNVc2RuCQBrAwUPd2F2ZXNVc2RuU3Rha2VkBQNkZWYFDHdhdmVzVXNkblRDSQQRd2F2ZXNVc2RuV2l0aGRyYXcJAGsDBQ9zaW5nbGVXYXZlc1VzZG4FAmFtBQNkZWYEA2ZlZQkAawMFEXdhdmVzVXNkbldpdGhkcmF3BQNkZWYFB2ZlZVBlcmMEEHVuc3Rha2VXYXZlc1VzZG4JAPwHBAkBB0FkZHJlc3MBARoBV+s7535uBRjCkaSYFhfhZtdFJyDuJUlWqAIHdW5zdGFrZQkAzAgCAiw3S1piSnJWb3B3SmhrZHdiZTFlRkRCYmV4NGRrWTYzTXhqVE5qcVh0cnpqMQkAzAgCBRF3YXZlc1VzZG5XaXRoZHJhdwUDbmlsBQNuaWwDCQAAAgUQdW5zdGFrZVdhdmVzVXNkbgUQdW5zdGFrZVdhdmVzVXNkbgQMd2F2ZXNVc25kRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFC3dhdmVzVXNkbkxQBBF3YXZlc1VzZG5UcmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBlAgURd2F2ZXNVc2RuV2l0aGRyYXcFA2ZlZQULd2F2ZXNVc2RuTFAEF3VwZGF0ZVdhdmVzVXNkbkxQU3Rha2VkCQEMSW50ZWdlckVudHJ5AgUMa2V5V0FWRVNVU0ROCQBlAgUPd2F2ZXNVc2RuU3Rha2VkBRF3YXZlc1VzZG5XaXRoZHJhdwQQYnVybldhdmVzVXNkblRDSQkBBEJ1cm4CBQ53YXZlc1VzZG5MUFRDSQUCYW0JAMwIAgUMd2F2ZXNVc25kRmVlCQDMCAIFEXdhdmVzVXNkblRyYW5zZmVyCQDMCAIFF3VwZGF0ZVdhdmVzVXNkbkxQU3Rha2VkCQDMCAIFEGJ1cm5XYXZlc1VzZG5UQ0kFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQJpZAUNZW5ub1VzZG5MUFRDSQQLZW5ub1VzZG5UQ0kEByRtYXRjaDAJAOwHAQUNZW5ub1VzZG5MUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQBcQUHJG1hdGNoMAgFAXEIcXVhbnRpdHkAAAQOZW5ub1VzZG5TdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULa2V5RU5OT1VTRE4AAAQOc2luZ2xlRW5ub1VzZG4JAGsDBQ5lbm5vVXNkblN0YWtlZAUDZGVmBQtlbm5vVXNkblRDSQQQZW5ub1VzZG5XaXRoZHJhdwkAawMFDnNpbmdsZUVubm9Vc2RuBQJhbQUDZGVmBANmZWUJAGsDBRBlbm5vVXNkbldpdGhkcmF3BQNkZWYFB2ZlZVBlcmMED3Vuc3Rha2VFbm5vVXNkbgkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgd1bnN0YWtlCQDMCAICLEhuVzMzZGNFYWVVVGNnTUxkOHZIb0pSNWlBRloybmdIREFhOUU5NDk2a0RYCQDMCAIFEGVubm9Vc2RuV2l0aGRyYXcFA25pbAUDbmlsAwkAAAIFD3Vuc3Rha2VFbm5vVXNkbgUPdW5zdGFrZUVubm9Vc2RuBAtlbm5vVXNkbkZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQJ0dwUDZmVlBQplbm5vVXNkbkxQBBBlbm5vVXNkblRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCBRBlbm5vVXNkbldpdGhkcmF3BQNmZWUFCmVubm9Vc2RuTFAEFnVwZGF0ZUVubm9Vc2RuTFBTdGFrZWQJAQxJbnRlZ2VyRW50cnkCBQtrZXlFTk5PVVNETgkAZQIFDmVubm9Vc2RuU3Rha2VkBRBlbm5vVXNkbldpdGhkcmF3BA9idXJuRW5ub1VzZG5UQ0kJAQRCdXJuAgUNZW5ub1VzZG5MUFRDSQUCYW0JAMwIAgULZW5ub1VzZG5GZWUJAMwIAgUQZW5ub1VzZG5UcmFuc2ZlcgkAzAgCBRZ1cGRhdGVFbm5vVXNkbkxQU3Rha2VkCQDMCAIFD2J1cm5Fbm5vVXNkblRDSQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFAmlkBQ1uc2J0VXNkbkxQVENJBAtuc2J0VXNkblRDSQQHJG1hdGNoMAkA7AcBBQ1uc2J0VXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAFxBQckbWF0Y2gwCAUBcQhxdWFudGl0eQAABA5uc2J0VXNkblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlFTk5PVVNETgAABA5zaW5nbGVOc2J0VXNkbgkAawMFDm5zYnRVc2RuU3Rha2VkBQNkZWYFC25zYnRVc2RuVENJBBBuc2J0VXNkbldpdGhkcmF3CQBrAwUOc2luZ2xlTnNidFVzZG4FAmFtBQNkZWYEA2ZlZQkAawMFEG5zYnRVc2RuV2l0aGRyYXcFA2RlZgUHZmVlUGVyYwQPdW5zdGFrZU5zYnRVc2RuCQD8BwQJAQdBZGRyZXNzAQEaAVfrO+d+bgUYwpGkmBYX4WbXRScg7iVJVqgCB3Vuc3Rha2UJAMwIAgIsQUdvNDlIQ3RRVWdoZnhIU3BVWHViM0tCYU1YeXVuSm1UeFE0YXpnVTVBeDUJAMwIAgUQbnNidFVzZG5XaXRoZHJhdwUDbmlsBQNuaWwDCQAAAgUPdW5zdGFrZU5zYnRVc2RuBQ91bnN0YWtlTnNidFVzZG4EC25zYnRVc2RuRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCm5zYnRVc2RuTFAEEG5zYnRVc2RuVHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIFEG5zYnRVc2RuV2l0aGRyYXcFA2ZlZQUKbnNidFVzZG5MUAQUdXBkYXRlTnNidFVzZG5TdGFrZWQJAQxJbnRlZ2VyRW50cnkCBQtrZXlOU0JUVVNETgkAZQIFDm5zYnRVc2RuU3Rha2VkBRBuc2J0VXNkbldpdGhkcmF3BA9idXJuTnNidFVzZG5UQ0kJAQRCdXJuAgUNbnNidFVzZG5MUFRDSQUCYW0JAMwIAgULbnNidFVzZG5GZWUJAMwIAgUQbnNidFVzZG5UcmFuc2ZlcgkAzAgCBRR1cGRhdGVOc2J0VXNkblN0YWtlZAkAzAgCBQ9idXJuTnNidFVzZG5UQ0kFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQJpZAUMbHRjVXNkbkxQVENJBApsdGNVc2RuVENJBAckbWF0Y2gwCQDsBwEFDGx0Y1VzZG5MUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQBcQUHJG1hdGNoMAgFAXEIcXVhbnRpdHkAAAQNbHRjVXNkblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQprZXlMVENVU0ROAAAEDXNpbmdsZUx0Y1VzZG4JAGsDBQ1sdGNVc2RuU3Rha2VkBQNkZWYFCmx0Y1VzZG5UQ0kED2x0Y1VzZG5XaXRoZHJhdwkAawMFDXNpbmdsZUx0Y1VzZG4FAmFtBQNkZWYEA2ZlZQkAawMFD2x0Y1VzZG5XaXRoZHJhdwUDZGVmBQdmZWVQZXJjBA51bnN0YWtlTHRjVXNkbgkA/AcECQEHQWRkcmVzcwEBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAgd1bnN0YWtlCQDMCAICLENOa3FDNkdQaTg4OFdkSjFFdVZ0dTlKR1o5VkhwQW44ZVRId1I4WVp4WGJ2CQDMCAIFD2x0Y1VzZG5XaXRoZHJhdwUDbmlsBQNuaWwDCQAAAgUOdW5zdGFrZUx0Y1VzZG4FDnVuc3Rha2VMdGNVc2RuBApsdGNVc2RuRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCWx0Y1VzZG5MUAQPbHRjVXNkblRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCBQ9sdGNVc2RuV2l0aGRyYXcFA2ZlZQUJbHRjVXNkbkxQBBN1cGRhdGVMdGNVc2RuU3Rha2VkCQEMSW50ZWdlckVudHJ5AgUKa2V5TFRDVVNETgkAZQIFDWx0Y1VzZG5TdGFrZWQFD2x0Y1VzZG5XaXRoZHJhdwQOYnVybkx0Y1VzZG5UQ0kJAQRCdXJuAgUMbHRjVXNkbkxQVENJBQJhbQkAzAgCBQpsdGNVc2RuRmVlCQDMCAIFD2x0Y1VzZG5UcmFuc2ZlcgkAzAgCBRN1cGRhdGVMdGNVc2RuU3Rha2VkCQDMCAIFDmJ1cm5MdGNVc2RuVENJBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAg1JbnZhbGlkIGFzc2V0AQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleTU8D6I=", "height": 3533443, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G3YdFR5MsKPiHYpbS5Y7ywUEQ4X3nAhBsmK6Ay5oG8wK Next: CNQkebmjNyy9ytjaBPF9sY3F8o2h6J3Uc3wykuWYnVWh Diff:
OldNewDifferences
8787
8888 let Q = "LTC_USDN_Compound"
8989
90-let R = 100000000
90+let R = "sWAVES_WAVES"
9191
92-let S = 10000000000
92+let S = "sWAVES_WAVES_Compound"
9393
94-let T = base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm'
94+let T = 100000000
9595
96-let U = base58'3P6phwFZFQtZFuc9dvdXsgvtg8JEFVgECPA'
96+let U = 10000000000
9797
98-func V (W) = if ((W != U))
98+let V = base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm'
99+
100+let W = base58'3P6phwFZFQtZFuc9dvdXsgvtg8JEFVgECPA'
101+
102+func X (Y) = if ((Y != W))
99103 then false
100104 else true
101105
102106
103-func X (Y) = if ((Y == g))
107+func Z (aa) = if ((aa == g))
104108 then h
105- else if ((Y == e))
109+ else if ((aa == e))
106110 then f
107- else if ((Y == g))
111+ else if ((aa == g))
108112 then h
109- else if ((Y == i))
113+ else if ((aa == i))
110114 then j
111- else if ((Y == k))
115+ else if ((aa == k))
112116 then l
113117 else throw("invalid asset")
114118
115119
116-func Z (aa) = if ((aa == d))
120+func ab (ac) = if ((ac == d))
117121 then x
118- else if ((aa == f))
122+ else if ((ac == f))
119123 then A
120- else if ((aa == h))
124+ else if ((ac == h))
121125 then C
122- else if ((aa == j))
126+ else if ((ac == j))
123127 then E
124- else if ((aa == l))
128+ else if ((ac == l))
125129 then G
126130 else throw("Key does not exist")
127131
128132
129-func ab (aa) = if ((aa == d))
133+func ad (ac) = if ((ac == d))
130134 then toBase58String(c)
131- else if ((aa == f))
135+ else if ((ac == f))
132136 then toBase58String(e)
133- else if ((aa == h))
137+ else if ((ac == h))
134138 then toBase58String(g)
135- else if ((aa == j))
139+ else if ((ac == j))
136140 then toBase58String(i)
137- else if ((aa == l))
141+ else if ((ac == l))
138142 then toBase58String(k)
139143 else throw("Key does not exist")
140144
141145
142-@Callable(ac)
143-func deposit2 () = if ((ac.caller != Address(U)))
146+func ae (aa) = {
147+ let af = aa
148+ if ($isInstanceOf(af, "ByteVector"))
149+ then {
150+ let aa = af
151+ toBase58String(aa)
152+ }
153+ else throw("decoding function error")
154+ }
155+
156+
157+@Callable(ag)
158+func deposit2 () = if ((ag.caller != Address(W)))
144159 then throw("callable for oracle only")
145160 else {
146- let ad = ac.payments[0].assetId
147- let ae = value(ac.payments[0]).amount
148- let aa = X(ad)
149- let af = Z(aa)
150- let ag = valueOrElse(getInteger(this, af), 0)
151- let ah = {
152- let ai = assetInfo(aa)
153- if ($isInstanceOf(ai, "Asset"))
161+ let ah = ag.payments[0].assetId
162+ let ai = value(ag.payments[0]).amount
163+ let ac = Z(ah)
164+ let aj = ab(ac)
165+ let ak = valueOrElse(getInteger(this, aj), 0)
166+ let al = {
167+ let af = assetInfo(ac)
168+ if ($isInstanceOf(af, "Asset"))
154169 then {
155- let aj = ai
156- aj.quantity
170+ let am = af
171+ am.quantity
157172 }
158173 else throw("Can't find asset")
159174 }
160- let ak = fraction(ae, a, b)
161- let al = (ae - ak)
162- let am = fraction(ah, a, ag)
163- let an = fraction(al, am, a)
164- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [AttachedPayment(ad, al)])
165- if ((ao == ao))
175+ let an = fraction(ai, a, b)
176+ let ao = (ai - an)
177+ let ap = fraction(al, a, ak)
178+ let aq = fraction(ao, ap, a)
179+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [AttachedPayment(ah, ao)])
180+ if ((ar == ar))
166181 then {
167- let ap = IntegerEntry(af, (ag + al))
168- let aq = Reissue(aa, an, true)
169- let ar = ScriptTransfer(ac.caller, an, aa)
170- let as = ScriptTransfer(Address(T), ak, ad)
171-[ap, aq, ar, as]
182+ let as = IntegerEntry(aj, (ak + ao))
183+ let at = Reissue(ac, aq, true)
184+ let au = ScriptTransfer(ag.caller, aq, ac)
185+ let av = ScriptTransfer(Address(V), an, ah)
186+[as, at, au, av]
172187 }
173188 else throw("Strict value is not equal to itself.")
174189 }
175190
176191
177192
178-@Callable(ac)
179-func withdraw2 () = if ((ac.caller != Address(U)))
193+@Callable(ag)
194+func withdraw2 () = if ((ag.caller != Address(W)))
180195 then throw("callable for oracle only")
181196 else {
182- let aa = ac.payments[0].assetId
183- let ae = value(ac.payments[0]).amount
184- let at = ab(aa)
185- let au = Z(aa)
186- let ah = {
187- let ai = assetInfo(X(aa))
188- if ($isInstanceOf(ai, "Asset"))
197+ let ac = ag.payments[0].assetId
198+ let ai = value(ag.payments[0]).amount
199+ let aw = ad(ac)
200+ let ax = ab(ac)
201+ let ay = ae(ac)
202+ let al = {
203+ let af = assetInfo(fromBase58String(ay))
204+ if ($isInstanceOf(af, "Asset"))
189205 then {
190- let aj = ai
191- aj.quantity
206+ let am = af
207+ am.quantity
192208 }
193- else throw("Can't find asset")
209+ else throw("Can't pull tci issued")
194210 }
195- let av = valueOrElse(getInteger(this, au), 0)
196- let aw = fraction(av, a, ah)
197- let ak = fraction(ae, a, b)
198- let ax = (ae - ak)
199- let ay = (ax * aw)
200- let az = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", [at, ay], nil)
201- if ((az == az))
211+ let az = valueOrElse(getInteger(this, ax), 0)
212+ let aA = fraction(az, a, al)
213+ let an = fraction(ai, a, b)
214+ let aB = (ai - an)
215+ let aC = (aB * aA)
216+ let aD = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", [aw, aC], nil)
217+ if ((aD == aD))
202218 then {
203- let aA = Burn(X(aa), ax)
204- let aB = ScriptTransfer(Address(T), ak, aa)
205- let aC = ScriptTransfer(ac.caller, ay, fromBase58String(at))
206- let ap = IntegerEntry(au, (av - ay))
207-[aA, aB, aC, ap]
219+ let aE = Burn(Z(ac), aB)
220+ let aF = ScriptTransfer(Address(V), an, ac)
221+ let aG = ScriptTransfer(ag.caller, aC, fromBase58String(aw))
222+ let as = IntegerEntry(ax, (az - aC))
223+[aE, aF, aG, as]
208224 }
209225 else throw("Strict value is not equal to itself.")
210226 }
211227
212228
213229
214-@Callable(ac)
230+@Callable(ag)
215231 func depositWxUsdnLP () = {
216- let aD = value(ac.payments[0])
217- let ae = aD.amount
218- if ((aD.assetId != e))
232+ let aH = value(ag.payments[0])
233+ let ai = aH.amount
234+ if ((aH.assetId != e))
219235 then throw("attach WXUSDNLP tokens only")
220236 else if (w)
221237 then throw("smart contract is on lock")
222238 else {
223- let aE = valueOrElse(getInteger(this, A), 0)
224- let aF = {
225- let ai = assetInfo(f)
226- if ($isInstanceOf(ai, "Asset"))
239+ let aI = valueOrElse(getInteger(this, A), 0)
240+ let aJ = {
241+ let af = assetInfo(f)
242+ if ($isInstanceOf(af, "Asset"))
227243 then {
228- let aj = ai
229- aj.quantity
244+ let am = af
245+ am.quantity
230246 }
231247 else throw("Can't find asset")
232248 }
233- let aG = fraction(aF, 100000000, aE)
234- let aH = fraction(ae, aG, 100000000)
235- let ap = IntegerEntry(A, (aE + ae))
236- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
237- if ((ao == ao))
249+ let aK = fraction(aJ, 100000000, aI)
250+ let aL = fraction(ai, aK, 100000000)
251+ let as = IntegerEntry(A, (aI + ai))
252+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
253+ if ((ar == ar))
238254 then {
239- let aI = Reissue(f, aH, true)
240- let aJ = ScriptTransfer(ac.caller, aH, f)
241-[aI, aJ, ap]
255+ let aM = Reissue(f, aL, true)
256+ let aN = ScriptTransfer(ag.caller, aL, f)
257+[aM, aN, as]
242258 }
243259 else throw("Strict value is not equal to itself.")
244260 }
246262
247263
248264
249-@Callable(ac)
265+@Callable(ag)
250266 func depositUsdtUsdnLP () = {
251- let aD = value(ac.payments[0])
252- let ae = aD.amount
253- if ((aD.assetId != c))
267+ let aH = value(ag.payments[0])
268+ let ai = aH.amount
269+ if ((aH.assetId != c))
254270 then throw("attach USDTUSDNLP tokens only")
255271 else if (w)
256272 then throw("smart contract is on lock")
257273 else {
258- let aE = valueOrElse(getInteger(this, x), 0)
259- let aF = {
260- let ai = assetInfo(d)
261- if ($isInstanceOf(ai, "Asset"))
274+ let aI = valueOrElse(getInteger(this, x), 0)
275+ let aJ = {
276+ let af = assetInfo(d)
277+ if ($isInstanceOf(af, "Asset"))
262278 then {
263- let aj = ai
264- aj.quantity
279+ let am = af
280+ am.quantity
265281 }
266282 else throw("Can't find asset")
267283 }
268- let aK = valueOrElse(getInteger(this, y), 0)
269- let aL = fraction(aF, 100000000, aE)
270- let aH = fraction(ae, aL, 100000000)
271- let ap = IntegerEntry(x, (aE + ae))
272- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
273- if ((ao == ao))
284+ let aO = valueOrElse(getInteger(this, y), 0)
285+ let aP = fraction(aJ, 100000000, aI)
286+ let aL = fraction(ai, aP, 100000000)
287+ let as = IntegerEntry(x, (aI + ai))
288+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
289+ if ((ar == ar))
274290 then {
275- let aI = Reissue(d, aH, true)
276- let aJ = ScriptTransfer(ac.caller, aH, d)
277-[aI, aJ, ap]
291+ let aM = Reissue(d, aL, true)
292+ let aN = ScriptTransfer(ag.caller, aL, d)
293+[aM, aN, as]
278294 }
279295 else throw("Strict value is not equal to itself.")
280296 }
282298
283299
284300
285-@Callable(ac)
301+@Callable(ag)
286302 func depositUsdcUsdnLP () = {
287- let aD = value(ac.payments[0])
288- let ae = aD.amount
289- if ((aD.assetId != g))
303+ let aH = value(ag.payments[0])
304+ let ai = aH.amount
305+ if ((aH.assetId != g))
290306 then throw("attach USDCUSDNLP tokens only")
291307 else if (w)
292308 then throw("smart contract is on lock")
293309 else {
294- let aE = valueOrElse(getInteger(this, C), 0)
295- let aF = {
296- let ai = assetInfo(h)
297- if ($isInstanceOf(ai, "Asset"))
310+ let aI = valueOrElse(getInteger(this, C), 0)
311+ let aJ = {
312+ let af = assetInfo(h)
313+ if ($isInstanceOf(af, "Asset"))
298314 then {
299- let aj = ai
300- aj.quantity
315+ let am = af
316+ am.quantity
301317 }
302318 else throw("Can't find asset")
303319 }
304- let aK = valueOrElse(getInteger(this, B), 0)
305- let aL = fraction(aF, 100000000, aE)
306- let aH = fraction(ae, aL, 100000000)
307- let ap = IntegerEntry(C, (aE + ae))
308- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
309- if ((ao == ao))
320+ let aO = valueOrElse(getInteger(this, B), 0)
321+ let aP = fraction(aJ, 100000000, aI)
322+ let aL = fraction(ai, aP, 100000000)
323+ let as = IntegerEntry(C, (aI + ai))
324+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
325+ if ((ar == ar))
310326 then {
311- let aI = Reissue(h, aH, true)
312- let aJ = ScriptTransfer(ac.caller, aH, h)
313-[aI, aJ, ap]
327+ let aM = Reissue(h, aL, true)
328+ let aN = ScriptTransfer(ag.caller, aL, h)
329+[aM, aN, as]
314330 }
315331 else throw("Strict value is not equal to itself.")
316332 }
318334
319335
320336
321-@Callable(ac)
337+@Callable(ag)
322338 func depositUsdcUsdtLP () = {
323- let aD = value(ac.payments[0])
324- let ae = aD.amount
325- if ((aD.assetId != i))
339+ let aH = value(ag.payments[0])
340+ let ai = aH.amount
341+ if ((aH.assetId != i))
326342 then throw("attach USDCUSDTLP tokens only")
327343 else if (w)
328344 then throw("smart contract is on lock")
329345 else {
330- let aE = valueOrElse(getInteger(this, E), 0)
331- let aF = {
332- let ai = assetInfo(j)
333- if ($isInstanceOf(ai, "Asset"))
346+ let aI = valueOrElse(getInteger(this, E), 0)
347+ let aJ = {
348+ let af = assetInfo(j)
349+ if ($isInstanceOf(af, "Asset"))
334350 then {
335- let aj = ai
336- aj.quantity
351+ let am = af
352+ am.quantity
337353 }
338354 else throw("Can't find asset")
339355 }
340- let aK = valueOrElse(getInteger(this, D), 0)
341- let aL = fraction(aF, 100000000, aE)
342- let aH = fraction(ae, aL, 100000000)
343- let ap = IntegerEntry(E, (aE + ae))
344- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
345- if ((ao == ao))
356+ let aO = valueOrElse(getInteger(this, D), 0)
357+ let aP = fraction(aJ, 100000000, aI)
358+ let aL = fraction(ai, aP, 100000000)
359+ let as = IntegerEntry(E, (aI + ai))
360+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
361+ if ((ar == ar))
346362 then {
347- let aI = Reissue(j, aH, true)
348- let aJ = ScriptTransfer(ac.caller, aH, j)
349-[aI, aJ, ap]
363+ let aM = Reissue(j, aL, true)
364+ let aN = ScriptTransfer(ag.caller, aL, j)
365+[aM, aN, as]
350366 }
351367 else throw("Strict value is not equal to itself.")
352368 }
354370
355371
356372
357-@Callable(ac)
373+@Callable(ag)
358374 func depositPuzzleUsdnLP () = {
359- let aD = value(ac.payments[0])
360- let ae = aD.amount
361- if ((aD.assetId != k))
375+ let aH = value(ag.payments[0])
376+ let ai = aH.amount
377+ if ((aH.assetId != k))
362378 then throw("attach PUZZLEUDSNLP tokens only")
363379 else if (w)
364380 then throw("smart contract is on lock")
365381 else {
366- let aE = valueOrElse(getInteger(this, G), 0)
367- let aF = {
368- let ai = assetInfo(l)
369- if ($isInstanceOf(ai, "Asset"))
382+ let aI = valueOrElse(getInteger(this, G), 0)
383+ let aJ = {
384+ let af = assetInfo(l)
385+ if ($isInstanceOf(af, "Asset"))
370386 then {
371- let aj = ai
372- aj.quantity
387+ let am = af
388+ am.quantity
373389 }
374390 else throw("Can't find asset")
375391 }
376- let aK = valueOrElse(getInteger(this, F), 0)
377- let aL = fraction(aF, 100000000, aE)
378- let aH = fraction(ae, aL, 100000000)
379- let ap = IntegerEntry(G, (aE + ae))
380- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
381- if ((ao == ao))
392+ let aO = valueOrElse(getInteger(this, F), 0)
393+ let aP = fraction(aJ, 100000000, aI)
394+ let aL = fraction(ai, aP, 100000000)
395+ let as = IntegerEntry(G, (aI + ai))
396+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
397+ if ((ar == ar))
382398 then {
383- let aI = Reissue(l, aH, true)
384- let aJ = ScriptTransfer(ac.caller, aH, l)
385-[aI, aJ, ap]
399+ let aM = Reissue(l, aL, true)
400+ let aN = ScriptTransfer(ag.caller, aL, l)
401+[aM, aN, as]
386402 }
387403 else throw("Strict value is not equal to itself.")
388404 }
390406
391407
392408
393-@Callable(ac)
409+@Callable(ag)
394410 func depositNsbtUsdnLP () = {
395- let aD = value(ac.payments[0])
396- let ae = aD.amount
397- if ((aD.assetId != m))
411+ let aH = value(ag.payments[0])
412+ let ai = aH.amount
413+ if ((aH.assetId != m))
398414 then throw("attach NSBTUSDNLP tokens only")
399415 else if (w)
400416 then throw("smart contract is on lock")
401417 else {
402- let aE = valueOrElse(getInteger(this, I), 0)
403- let aF = {
404- let ai = assetInfo(n)
405- if ($isInstanceOf(ai, "Asset"))
418+ let aI = valueOrElse(getInteger(this, I), 0)
419+ let aJ = {
420+ let af = assetInfo(n)
421+ if ($isInstanceOf(af, "Asset"))
406422 then {
407- let aj = ai
408- aj.quantity
423+ let am = af
424+ am.quantity
409425 }
410426 else throw("Can't find asset")
411427 }
412- let aG = fraction(aF, 100000000, aE)
413- let aH = fraction(ae, aG, 100000000)
414- let ap = IntegerEntry(I, (aE + ae))
415- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
416- if ((ao == ao))
428+ let aK = fraction(aJ, 100000000, aI)
429+ let aL = fraction(ai, aK, 100000000)
430+ let as = IntegerEntry(I, (aI + ai))
431+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
432+ if ((ar == ar))
417433 then {
418- let aI = Reissue(n, aH, true)
419- let aJ = ScriptTransfer(ac.caller, aH, n)
420-[aI, aJ, ap]
434+ let aM = Reissue(n, aL, true)
435+ let aN = ScriptTransfer(ag.caller, aL, n)
436+[aM, aN, as]
421437 }
422438 else throw("Strict value is not equal to itself.")
423439 }
425441
426442
427443
428-@Callable(ac)
444+@Callable(ag)
429445 func depositBtcUsdnLP () = {
430- let aD = value(ac.payments[0])
431- let ae = aD.amount
432- if ((aD.assetId != o))
446+ let aH = value(ag.payments[0])
447+ let ai = aH.amount
448+ if ((aH.assetId != o))
433449 then throw("attach BTCUSDNLP tokens only")
434450 else if (w)
435451 then throw("smart contract is on lock")
436452 else {
437- let aE = valueOrElse(getInteger(this, J), 0)
438- let aF = {
439- let ai = assetInfo(p)
440- if ($isInstanceOf(ai, "Asset"))
453+ let aI = valueOrElse(getInteger(this, J), 0)
454+ let aJ = {
455+ let af = assetInfo(p)
456+ if ($isInstanceOf(af, "Asset"))
441457 then {
442- let aj = ai
443- aj.quantity
458+ let am = af
459+ am.quantity
444460 }
445461 else throw("Can't find asset")
446462 }
447- let aL = fraction(aF, 100000000, aE)
448- let aH = fraction(ae, aL, 100000000)
449- let ap = IntegerEntry(J, (aE + ae))
450- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
451- if ((ao == ao))
463+ let aP = fraction(aJ, 100000000, aI)
464+ let aL = fraction(ai, aP, 100000000)
465+ let as = IntegerEntry(J, (aI + ai))
466+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
467+ if ((ar == ar))
452468 then {
453- let aI = Reissue(p, aH, true)
454- let aJ = ScriptTransfer(ac.caller, aH, p)
455-[aI, aJ, ap]
469+ let aM = Reissue(p, aL, true)
470+ let aN = ScriptTransfer(ag.caller, aL, p)
471+[aM, aN, as]
456472 }
457473 else throw("Strict value is not equal to itself.")
458474 }
460476
461477
462478
463-@Callable(ac)
479+@Callable(ag)
464480 func depositEnnoUsdnLP () = {
465- let aD = value(ac.payments[0])
466- let ae = aD.amount
467- if ((aD.assetId != q))
481+ let aH = value(ag.payments[0])
482+ let ai = aH.amount
483+ if ((aH.assetId != q))
468484 then throw("attach ENNOUSDNLP tokens only")
469485 else if (w)
470486 then throw("smart contract is on lock")
471487 else {
472- let aE = valueOrElse(getInteger(this, L), 0)
473- let aF = {
474- let ai = assetInfo(r)
475- if ($isInstanceOf(ai, "Asset"))
488+ let aI = valueOrElse(getInteger(this, L), 0)
489+ let aJ = {
490+ let af = assetInfo(r)
491+ if ($isInstanceOf(af, "Asset"))
476492 then {
477- let aj = ai
478- aj.quantity
493+ let am = af
494+ am.quantity
479495 }
480496 else throw("Can't find asset")
481497 }
482- let aG = fraction(aF, 100000000, aE)
483- let aH = fraction(ae, aG, 100000000)
484- let ap = IntegerEntry(L, (aE + ae))
485- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
486- if ((ao == ao))
498+ let aK = fraction(aJ, 100000000, aI)
499+ let aL = fraction(ai, aK, 100000000)
500+ let as = IntegerEntry(L, (aI + ai))
501+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
502+ if ((ar == ar))
487503 then {
488- let aI = Reissue(r, aH, true)
489- let aJ = ScriptTransfer(ac.caller, aH, r)
490-[aI, aJ, ap]
504+ let aM = Reissue(r, aL, true)
505+ let aN = ScriptTransfer(ag.caller, aL, r)
506+[aM, aN, as]
491507 }
492508 else throw("Strict value is not equal to itself.")
493509 }
495511
496512
497513
498-@Callable(ac)
514+@Callable(ag)
499515 func depositWavesUsdnLP () = {
500- let aD = value(ac.payments[0])
501- let ae = aD.amount
502- if ((aD.assetId != s))
516+ let aH = value(ag.payments[0])
517+ let ai = aH.amount
518+ if ((aH.assetId != s))
503519 then throw("attach WAVESUSDNLP tokens only")
504520 else if (w)
505521 then throw("smart contract is on lock")
506522 else {
507- let aE = valueOrElse(getInteger(this, N), 0)
508- let aF = {
509- let ai = assetInfo(t)
510- if ($isInstanceOf(ai, "Asset"))
523+ let aI = valueOrElse(getInteger(this, N), 0)
524+ let aJ = {
525+ let af = assetInfo(t)
526+ if ($isInstanceOf(af, "Asset"))
511527 then {
512- let aj = ai
513- aj.quantity
528+ let am = af
529+ am.quantity
514530 }
515531 else throw("Can't find asset")
516532 }
517- let aG = fraction(aF, 100000000, aE)
518- let aH = fraction(ae, aG, 100000000)
519- let ap = IntegerEntry(N, (aE + ae))
520- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
521- if ((ao == ao))
533+ let aK = fraction(aJ, 100000000, aI)
534+ let aL = fraction(ai, aK, 100000000)
535+ let as = IntegerEntry(N, (aI + ai))
536+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
537+ if ((ar == ar))
522538 then {
523- let aI = Reissue(t, aH, true)
524- let aJ = ScriptTransfer(ac.caller, aH, t)
525-[aI, aJ, ap]
539+ let aM = Reissue(t, aL, true)
540+ let aN = ScriptTransfer(ag.caller, aL, t)
541+[aM, aN, as]
526542 }
527543 else throw("Strict value is not equal to itself.")
528544 }
530546
531547
532548
533-@Callable(ac)
549+@Callable(ag)
534550 func depositLTCUSDNLP () = {
535- let aD = value(ac.payments[0])
536- let ae = aD.amount
537- if ((aD.assetId != u))
551+ let aH = value(ag.payments[0])
552+ let ai = aH.amount
553+ if ((aH.assetId != u))
538554 then throw("attach LTCUSDNLP tokens only")
539555 else if (w)
540556 then throw("smart contract is on lock")
541557 else {
542- let aE = valueOrElse(getInteger(this, P), 0)
543- let aF = {
544- let ai = assetInfo(v)
545- if ($isInstanceOf(ai, "Asset"))
558+ let aI = valueOrElse(getInteger(this, P), 0)
559+ let aJ = {
560+ let af = assetInfo(v)
561+ if ($isInstanceOf(af, "Asset"))
546562 then {
547- let aj = ai
548- aj.quantity
563+ let am = af
564+ am.quantity
549565 }
550566 else throw("Can't find asset")
551567 }
552- let aG = fraction(aF, 100000000, aE)
553- let aH = fraction(ae, aG, 100000000)
554- let ap = IntegerEntry(P, (aE + ae))
555- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
556- if ((ao == ao))
568+ let aK = fraction(aJ, 100000000, aI)
569+ let aL = fraction(ai, aK, 100000000)
570+ let as = IntegerEntry(P, (aI + ai))
571+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
572+ if ((ar == ar))
557573 then {
558- let aI = Reissue(v, aH, true)
559- let aJ = ScriptTransfer(ac.caller, aH, v)
560-[aI, aJ, ap]
574+ let aM = Reissue(v, aL, true)
575+ let aN = ScriptTransfer(ag.caller, aL, v)
576+[aM, aN, as]
561577 }
562578 else throw("Strict value is not equal to itself.")
563579 }
565581
566582
567583
568-@Callable(ac)
584+@Callable(ag)
569585 func compoundWxUsdnLP () = {
570- let aM = value(ac.payments[0])
571- let aN = aM.amount
572- let aO = V(ac.caller.bytes)
573- if ((aM.assetId != e))
586+ let aQ = value(ag.payments[0])
587+ let aR = aQ.amount
588+ let aS = X(ag.caller.bytes)
589+ if ((aQ.assetId != e))
574590 then throw("attach WXUSDNLP tokens only")
575- else if (!(aO))
591+ else if (!(aS))
576592 then throw("You are not authotized to call this function")
577593 else {
578- let aK = valueOrElse(getInteger(this, z), 0)
579- let aP = valueOrElse(getInteger(this, A), 0)
580- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
581- if ((aQ == aQ))
594+ let aO = valueOrElse(getInteger(this, z), 0)
595+ let aT = valueOrElse(getInteger(this, A), 0)
596+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
597+ if ((aU == aU))
582598 then {
583- let ap = IntegerEntry(A, (aP + aN))
584- let aR = IntegerEntry(z, (aK + aN))
585-[ap, aR]
599+ let as = IntegerEntry(A, (aT + aR))
600+ let aV = IntegerEntry(z, (aO + aR))
601+[as, aV]
586602 }
587603 else throw("Strict value is not equal to itself.")
588604 }
590606
591607
592608
593-@Callable(ac)
609+@Callable(ag)
594610 func compoundUsdtUsdnLP () = {
595- let aM = value(ac.payments[0])
596- let aN = aM.amount
597- let aO = V(ac.caller.bytes)
598- if ((aM.assetId != c))
611+ let aQ = value(ag.payments[0])
612+ let aR = aQ.amount
613+ let aS = X(ag.caller.bytes)
614+ if ((aQ.assetId != c))
599615 then throw("attach USDTUSDNLP tokens only")
600- else if (!(aO))
616+ else if (!(aS))
601617 then throw("You are not authotized to call this function")
602618 else {
603- let aK = valueOrElse(getInteger(this, y), 0)
604- let aP = valueOrElse(getInteger(this, x), 0)
605- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
606- if ((aQ == aQ))
619+ let aO = valueOrElse(getInteger(this, y), 0)
620+ let aT = valueOrElse(getInteger(this, x), 0)
621+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
622+ if ((aU == aU))
607623 then {
608- let ap = IntegerEntry(x, (aP + aN))
609- let aR = IntegerEntry(y, (aK + aN))
610-[ap, aR]
624+ let as = IntegerEntry(x, (aT + aR))
625+ let aV = IntegerEntry(y, (aO + aR))
626+[as, aV]
611627 }
612628 else throw("Strict value is not equal to itself.")
613629 }
615631
616632
617633
618-@Callable(ac)
634+@Callable(ag)
619635 func compoundUsdcUsdnLP () = {
620- let aM = value(ac.payments[0])
621- let aN = aM.amount
622- let aO = V(ac.caller.bytes)
623- if ((aM.assetId != g))
636+ let aQ = value(ag.payments[0])
637+ let aR = aQ.amount
638+ let aS = X(ag.caller.bytes)
639+ if ((aQ.assetId != g))
624640 then throw("attach USDCUSDNLP tokens only")
625- else if (!(aO))
641+ else if (!(aS))
626642 then throw("You are not authotized to call this function")
627643 else {
628- let aK = valueOrElse(getInteger(this, B), 0)
629- let aP = valueOrElse(getInteger(this, C), 0)
630- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
631- if ((aQ == aQ))
644+ let aO = valueOrElse(getInteger(this, B), 0)
645+ let aT = valueOrElse(getInteger(this, C), 0)
646+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
647+ if ((aU == aU))
632648 then {
633- let ap = IntegerEntry(C, (aP + aN))
634- let aR = IntegerEntry(B, (aK + aN))
635-[ap, aR]
649+ let as = IntegerEntry(C, (aT + aR))
650+ let aV = IntegerEntry(B, (aO + aR))
651+[as, aV]
636652 }
637653 else throw("Strict value is not equal to itself.")
638654 }
640656
641657
642658
643-@Callable(ac)
659+@Callable(ag)
644660 func compoundUsdcUsdtLP () = {
645- let aM = value(ac.payments[0])
646- let aN = aM.amount
647- let aO = V(ac.caller.bytes)
648- if ((aM.assetId != i))
661+ let aQ = value(ag.payments[0])
662+ let aR = aQ.amount
663+ let aS = X(ag.caller.bytes)
664+ if ((aQ.assetId != i))
649665 then throw("attach USDCUSDTLP tokens only")
650- else if (!(aO))
666+ else if (!(aS))
651667 then throw("You are not authotized to call this function")
652668 else {
653- let aK = valueOrElse(getInteger(this, D), 0)
654- let aP = valueOrElse(getInteger(this, E), 0)
655- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
656- if ((aQ == aQ))
669+ let aO = valueOrElse(getInteger(this, D), 0)
670+ let aT = valueOrElse(getInteger(this, E), 0)
671+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
672+ if ((aU == aU))
657673 then {
658- let ap = IntegerEntry(E, (aP + aN))
659- let aR = IntegerEntry(D, (aK + aN))
660-[ap, aR]
674+ let as = IntegerEntry(E, (aT + aR))
675+ let aV = IntegerEntry(D, (aO + aR))
676+[as, aV]
661677 }
662678 else throw("Strict value is not equal to itself.")
663679 }
665681
666682
667683
668-@Callable(ac)
684+@Callable(ag)
669685 func compountPuzzleUsdnLP () = {
670- let aM = value(ac.payments[0])
671- let aN = aM.amount
672- let aO = V(ac.caller.bytes)
673- if ((aM.assetId != k))
686+ let aQ = value(ag.payments[0])
687+ let aR = aQ.amount
688+ let aS = X(ag.caller.bytes)
689+ if ((aQ.assetId != k))
674690 then throw("attach PUZZLEUSDNLP tokens only")
675- else if (!(aO))
691+ else if (!(aS))
676692 then throw("You are not authotized to call this function")
677693 else {
678- let aK = valueOrElse(getInteger(this, F), 0)
679- let aP = valueOrElse(getInteger(this, G), 0)
680- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
681- if ((aQ == aQ))
694+ let aO = valueOrElse(getInteger(this, F), 0)
695+ let aT = valueOrElse(getInteger(this, G), 0)
696+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
697+ if ((aU == aU))
682698 then {
683- let ap = IntegerEntry(G, (aP + aN))
684- let aR = IntegerEntry(F, (aK + aN))
685-[ap, aR]
699+ let as = IntegerEntry(G, (aT + aR))
700+ let aV = IntegerEntry(F, (aO + aR))
701+[as, aV]
686702 }
687703 else throw("Strict value is not equal to itself.")
688704 }
690706
691707
692708
693-@Callable(ac)
709+@Callable(ag)
694710 func compoundNsbtUsdnLP () = {
695- let aM = value(ac.payments[0])
696- let aN = aM.amount
697- let aO = V(ac.caller.bytes)
698- if ((aM.assetId != m))
711+ let aQ = value(ag.payments[0])
712+ let aR = aQ.amount
713+ let aS = X(ag.caller.bytes)
714+ if ((aQ.assetId != m))
699715 then throw("attach NSBTUSDNLP tokens only")
700- else if (!(aO))
716+ else if (!(aS))
701717 then throw("You are not authotized to call this function")
702718 else {
703- let aK = valueOrElse(getInteger(this, H), 0)
704- let aP = valueOrElse(getInteger(this, I), 0)
705- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
706- if ((aQ == aQ))
719+ let aO = valueOrElse(getInteger(this, H), 0)
720+ let aT = valueOrElse(getInteger(this, I), 0)
721+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
722+ if ((aU == aU))
707723 then {
708- let ap = IntegerEntry(I, (aP + aN))
709- let aR = IntegerEntry(H, (aK + aN))
710-[ap, aR]
724+ let as = IntegerEntry(I, (aT + aR))
725+ let aV = IntegerEntry(H, (aO + aR))
726+[as, aV]
711727 }
712728 else throw("Strict value is not equal to itself.")
713729 }
715731
716732
717733
718-@Callable(ac)
734+@Callable(ag)
719735 func compoundBtcUsdnLP () = {
720- let aM = value(ac.payments[0])
721- let aN = aM.amount
722- let aO = V(ac.caller.bytes)
723- if ((aM.assetId != o))
736+ let aQ = value(ag.payments[0])
737+ let aR = aQ.amount
738+ let aS = X(ag.caller.bytes)
739+ if ((aQ.assetId != o))
724740 then throw("attach BTCUSDNLP tokens only")
725- else if (!(aO))
741+ else if (!(aS))
726742 then throw("You are not authotized to call this function")
727743 else {
728- let aK = valueOrElse(getInteger(this, K), 0)
729- let aP = valueOrElse(getInteger(this, J), 0)
730- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
731- if ((aQ == aQ))
744+ let aO = valueOrElse(getInteger(this, K), 0)
745+ let aT = valueOrElse(getInteger(this, J), 0)
746+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
747+ if ((aU == aU))
732748 then {
733- let ap = IntegerEntry(J, (aP + aN))
734- let aR = IntegerEntry(K, (aK + aN))
735-[ap, aR]
749+ let as = IntegerEntry(J, (aT + aR))
750+ let aV = IntegerEntry(K, (aO + aR))
751+[as, aV]
736752 }
737753 else throw("Strict value is not equal to itself.")
738754 }
740756
741757
742758
743-@Callable(ac)
759+@Callable(ag)
744760 func compoundEnnoUsdnLP () = {
745- let aM = value(ac.payments[0])
746- let aN = aM.amount
747- let aO = V(ac.caller.bytes)
748- if ((aM.assetId != q))
761+ let aQ = value(ag.payments[0])
762+ let aR = aQ.amount
763+ let aS = X(ag.caller.bytes)
764+ if ((aQ.assetId != q))
749765 then throw("attach ENNOUSDNLP tokens only")
750- else if (!(aO))
766+ else if (!(aS))
751767 then throw("You are not authotized to call this function")
752768 else {
753- let aK = valueOrElse(getInteger(this, M), 0)
754- let aP = valueOrElse(getInteger(this, L), 0)
755- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
756- if ((aQ == aQ))
769+ let aO = valueOrElse(getInteger(this, M), 0)
770+ let aT = valueOrElse(getInteger(this, L), 0)
771+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
772+ if ((aU == aU))
757773 then {
758- let ap = IntegerEntry(L, (aP + aN))
759- let aR = IntegerEntry(M, (aK + aN))
760-[ap, aR]
774+ let as = IntegerEntry(L, (aT + aR))
775+ let aV = IntegerEntry(M, (aO + aR))
776+[as, aV]
761777 }
762778 else throw("Strict value is not equal to itself.")
763779 }
765781
766782
767783
768-@Callable(ac)
784+@Callable(ag)
769785 func compoundWavesUsdnLP () = {
770- let aM = value(ac.payments[0])
771- let aN = aM.amount
772- let aO = V(ac.caller.bytes)
773- if ((aM.assetId != s))
786+ let aQ = value(ag.payments[0])
787+ let aR = aQ.amount
788+ let aS = X(ag.caller.bytes)
789+ if ((aQ.assetId != s))
774790 then throw("attach WAVESUSDNLP tokens only")
775- else if (!(aO))
791+ else if (!(aS))
776792 then throw("You are not authotized to call this function")
777793 else {
778- let aK = valueOrElse(getInteger(this, O), 0)
779- let aP = valueOrElse(getInteger(this, N), 0)
780- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
781- if ((aQ == aQ))
794+ let aO = valueOrElse(getInteger(this, O), 0)
795+ let aT = valueOrElse(getInteger(this, N), 0)
796+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
797+ if ((aU == aU))
782798 then {
783- let ap = IntegerEntry(N, (aP + aN))
784- let aR = IntegerEntry(O, (aK + aN))
785-[ap, aR]
799+ let as = IntegerEntry(N, (aT + aR))
800+ let aV = IntegerEntry(O, (aO + aR))
801+[as, aV]
786802 }
787803 else throw("Strict value is not equal to itself.")
788804 }
790806
791807
792808
793-@Callable(ac)
809+@Callable(ag)
794810 func compoundLtcUsdnLP () = {
795- let aM = value(ac.payments[0])
796- let aN = aM.amount
797- let aO = V(ac.caller.bytes)
798- if ((aM.assetId != u))
811+ let aQ = value(ag.payments[0])
812+ let aR = aQ.amount
813+ let aS = X(ag.caller.bytes)
814+ if ((aQ.assetId != u))
799815 then throw("attach LTCUSDNLP tokens only")
800- else if (!(aO))
816+ else if (!(aS))
801817 then throw("You are not authotized to call this function")
802818 else {
803- let aK = valueOrElse(getInteger(this, Q), 0)
804- let aP = valueOrElse(getInteger(this, N), 0)
805- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
806- if ((aQ == aQ))
819+ let aO = valueOrElse(getInteger(this, Q), 0)
820+ let aT = valueOrElse(getInteger(this, N), 0)
821+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
822+ if ((aU == aU))
807823 then {
808- let ap = IntegerEntry(P, (aP + aN))
809- let aR = IntegerEntry(Q, (aK + aN))
810-[ap, aR]
824+ let as = IntegerEntry(P, (aT + aR))
825+ let aV = IntegerEntry(Q, (aO + aR))
826+[as, aV]
811827 }
812828 else throw("Strict value is not equal to itself.")
813829 }
815831
816832
817833
818-@Callable(ac)
834+@Callable(ag)
819835 func initNSBTUSDN () = {
820- let aS = value(ac.payments[0])
821- let aT = aS.amount
822- if ((aS.assetId != m))
836+ let aW = value(ag.payments[0])
837+ let aX = aW.amount
838+ if ((aW.assetId != m))
823839 then throw("Unexpected token")
824840 else {
825- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
826- if ((aU == aU))
841+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
842+ if ((aY == aY))
827843 then {
828- let aV = IntegerEntry(I, aT)
829- let aW = IntegerEntry(H, 0)
830-[aV, aW]
844+ let aZ = IntegerEntry(I, aX)
845+ let ba = IntegerEntry(H, 0)
846+[aZ, ba]
831847 }
832848 else throw("Strict value is not equal to itself.")
833849 }
835851
836852
837853
838-@Callable(ac)
854+@Callable(ag)
839855 func initBTCUSDN () = {
840- let aS = value(ac.payments[0])
841- let aT = aS.amount
842- if ((aS.assetId != o))
856+ let aW = value(ag.payments[0])
857+ let aX = aW.amount
858+ if ((aW.assetId != o))
843859 then throw("Unexpected token")
844860 else {
845- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
846- if ((aU == aU))
861+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
862+ if ((aY == aY))
847863 then {
848- let aV = IntegerEntry(J, aT)
849- let aW = IntegerEntry(K, 0)
850-[aV, aW]
864+ let aZ = IntegerEntry(J, aX)
865+ let ba = IntegerEntry(K, 0)
866+[aZ, ba]
851867 }
852868 else throw("Strict value is not equal to itself.")
853869 }
855871
856872
857873
858-@Callable(ac)
874+@Callable(ag)
859875 func initENNOUSDN () = {
860- let aS = value(ac.payments[0])
861- let aT = aS.amount
862- if ((aS.assetId != q))
876+ let aW = value(ag.payments[0])
877+ let aX = aW.amount
878+ if ((aW.assetId != q))
863879 then throw("Unexpected token")
864880 else {
865- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
866- if ((aU == aU))
881+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
882+ if ((aY == aY))
867883 then {
868- let aV = IntegerEntry(L, aT)
869- let aW = IntegerEntry(M, 0)
870-[aV, aW]
884+ let aZ = IntegerEntry(L, aX)
885+ let ba = IntegerEntry(M, 0)
886+[aZ, ba]
871887 }
872888 else throw("Strict value is not equal to itself.")
873889 }
875891
876892
877893
878-@Callable(ac)
894+@Callable(ag)
879895 func initWAVESUSDN () = {
880- let aS = value(ac.payments[0])
881- let aT = aS.amount
882- if ((aS.assetId != s))
896+ let aW = value(ag.payments[0])
897+ let aX = aW.amount
898+ if ((aW.assetId != s))
883899 then throw("Unexpected token")
884900 else {
885- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
886- if ((aU == aU))
901+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
902+ if ((aY == aY))
887903 then {
888- let aV = IntegerEntry(N, aT)
889- let aW = IntegerEntry(O, 0)
890-[aV, aW]
904+ let aZ = IntegerEntry(N, aX)
905+ let ba = IntegerEntry(O, 0)
906+[aZ, ba]
891907 }
892908 else throw("Strict value is not equal to itself.")
893909 }
895911
896912
897913
898-@Callable(ac)
914+@Callable(ag)
899915 func initLTCUSDN () = {
900- let aS = value(ac.payments[0])
901- let aT = aS.amount
902- if ((aS.assetId != u))
916+ let aW = value(ag.payments[0])
917+ let aX = aW.amount
918+ if ((aW.assetId != u))
903919 then throw("Unexpected token")
904920 else {
905- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
906- if ((aU == aU))
921+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
922+ if ((aY == aY))
907923 then {
908- let aV = IntegerEntry(P, aT)
909- let aW = IntegerEntry(Q, 0)
910-[aV, aW]
924+ let aZ = IntegerEntry(P, aX)
925+ let ba = IntegerEntry(Q, 0)
926+[aZ, ba]
911927 }
912928 else throw("Strict value is not equal to itself.")
913929 }
915931
916932
917933
918-@Callable(ac)
934+@Callable(ag)
919935 func withdraw () = {
920- let aX = value(ac.payments[0])
921- let aT = aX.amount
922- let Y = aX.assetId
923- if ((size(ac.payments) != 1))
936+ let bb = value(ag.payments[0])
937+ let aX = bb.amount
938+ let aa = bb.assetId
939+ if ((size(ag.payments) != 1))
924940 then throw("1 pmnt expd")
925- else if ((Y == d))
941+ else if ((aa == d))
926942 then {
927- let aY = {
928- let ai = assetInfo(d)
929- if ($isInstanceOf(ai, "Asset"))
943+ let bc = {
944+ let af = assetInfo(d)
945+ if ($isInstanceOf(af, "Asset"))
930946 then {
931- let aZ = ai
932- aZ.quantity
947+ let bd = af
948+ bd.quantity
933949 }
934950 else 0
935951 }
936- let ba = valueOrElse(getInteger(this, x), 0)
937- let bb = fraction(ba, R, aY)
938- let bc = fraction(bb, aT, R)
939- let ak = fraction(bc, R, S)
940- let bd = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf", bc], nil)
941- if ((bd == bd))
952+ let be = valueOrElse(getInteger(this, x), 0)
953+ let bf = fraction(be, T, bc)
954+ let bg = fraction(bf, aX, T)
955+ let an = fraction(bg, T, U)
956+ let bh = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf", bg], nil)
957+ if ((bh == bh))
942958 then {
943- let be = ScriptTransfer(Address(T), ak, c)
944- let aJ = ScriptTransfer(ac.caller, (bc - ak), c)
945- let bf = IntegerEntry(x, (ba - bc))
946- let bg = Burn(d, aT)
947-[be, aJ, bf, bg]
959+ let bi = ScriptTransfer(Address(V), an, c)
960+ let aN = ScriptTransfer(ag.caller, (bg - an), c)
961+ let bj = IntegerEntry(x, (be - bg))
962+ let bk = Burn(d, aX)
963+[bi, aN, bj, bk]
948964 }
949965 else throw("Strict value is not equal to itself.")
950966 }
951- else if ((Y == f))
967+ else if ((aa == f))
952968 then {
953- let bh = {
954- let ai = assetInfo(f)
955- if ($isInstanceOf(ai, "Asset"))
969+ let bl = {
970+ let af = assetInfo(f)
971+ if ($isInstanceOf(af, "Asset"))
956972 then {
957- let aZ = ai
958- aZ.quantity
973+ let bd = af
974+ bd.quantity
959975 }
960976 else 0
961977 }
962- let bi = valueOrElse(getInteger(this, A), 0)
963- let bj = fraction(bi, R, bh)
964- let bk = fraction(bj, aT, R)
965- let ak = fraction(bk, R, S)
966- let bl = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["F2AKkA513k5yHEJkLsU6vWxCYYk811GpjLhwEv2WGwZ9", bk], nil)
967- if ((bl == bl))
978+ let bm = valueOrElse(getInteger(this, A), 0)
979+ let bn = fraction(bm, T, bl)
980+ let bo = fraction(bn, aX, T)
981+ let an = fraction(bo, T, U)
982+ let bp = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["F2AKkA513k5yHEJkLsU6vWxCYYk811GpjLhwEv2WGwZ9", bo], nil)
983+ if ((bp == bp))
968984 then {
969- let bm = ScriptTransfer(Address(T), ak, e)
970- let bn = ScriptTransfer(ac.caller, (bk - ak), e)
971- let bo = IntegerEntry(A, (bi - bk))
972- let bp = Burn(f, aT)
973-[bm, bn, bo, bp]
985+ let bq = ScriptTransfer(Address(V), an, e)
986+ let br = ScriptTransfer(ag.caller, (bo - an), e)
987+ let bs = IntegerEntry(A, (bm - bo))
988+ let bt = Burn(f, aX)
989+[bq, br, bs, bt]
974990 }
975991 else throw("Strict value is not equal to itself.")
976992 }
977- else if ((Y == h))
993+ else if ((aa == h))
978994 then {
979- let bq = {
980- let ai = assetInfo(h)
981- if ($isInstanceOf(ai, "Asset"))
995+ let bu = {
996+ let af = assetInfo(h)
997+ if ($isInstanceOf(af, "Asset"))
982998 then {
983- let aZ = ai
984- aZ.quantity
999+ let bd = af
1000+ bd.quantity
9851001 }
9861002 else 0
9871003 }
988- let br = valueOrElse(getInteger(this, C), 0)
989- let bs = fraction(br, R, bq)
990- let bt = fraction(bs, aT, R)
991- let ak = fraction(bt, R, S)
992- let bu = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EK6N7S38xbtBT3SxAqoGdDLCiX6rojX6G169CnSyuE5", bt], nil)
993- if ((bu == bu))
1004+ let bv = valueOrElse(getInteger(this, C), 0)
1005+ let bw = fraction(bv, T, bu)
1006+ let bx = fraction(bw, aX, T)
1007+ let an = fraction(bx, T, U)
1008+ let by = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EK6N7S38xbtBT3SxAqoGdDLCiX6rojX6G169CnSyuE5", bx], nil)
1009+ if ((by == by))
9941010 then {
995- let bv = ScriptTransfer(Address(T), ak, g)
996- let bw = ScriptTransfer(ac.caller, (bt - ak), g)
997- let bx = IntegerEntry(C, (br - bt))
998- let by = Burn(h, aT)
999-[bv, bw, bx, by]
1011+ let bz = ScriptTransfer(Address(V), an, g)
1012+ let bA = ScriptTransfer(ag.caller, (bx - an), g)
1013+ let bB = IntegerEntry(C, (bv - bx))
1014+ let bC = Burn(h, aX)
1015+[bz, bA, bB, bC]
10001016 }
10011017 else throw("Strict value is not equal to itself.")
10021018 }
1003- else if ((Y == j))
1019+ else if ((aa == j))
10041020 then {
1005- let bz = {
1006- let ai = assetInfo(j)
1007- if ($isInstanceOf(ai, "Asset"))
1021+ let bD = {
1022+ let af = assetInfo(j)
1023+ if ($isInstanceOf(af, "Asset"))
10081024 then {
1009- let aZ = ai
1010- aZ.quantity
1025+ let bd = af
1026+ bd.quantity
10111027 }
10121028 else 0
10131029 }
1014- let bA = valueOrElse(getInteger(this, E), 0)
1015- let bB = fraction(bA, R, bz)
1016- let bC = fraction(bB, aT, R)
1017- let ak = fraction(bC, R, S)
1018- let bD = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH", bC], nil)
1019- if ((bD == bD))
1030+ let bE = valueOrElse(getInteger(this, E), 0)
1031+ let bF = fraction(bE, T, bD)
1032+ let bG = fraction(bF, aX, T)
1033+ let an = fraction(bG, T, U)
1034+ let bH = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH", bG], nil)
1035+ if ((bH == bH))
10201036 then {
1021- let bE = ScriptTransfer(Address(T), ak, i)
1022- let bF = ScriptTransfer(ac.caller, (bC - ak), i)
1023- let bG = IntegerEntry(E, (bA - bC))
1024- let bH = Burn(j, aT)
1025-[bE, bF, bG, bH]
1037+ let bI = ScriptTransfer(Address(V), an, i)
1038+ let bJ = ScriptTransfer(ag.caller, (bG - an), i)
1039+ let bK = IntegerEntry(E, (bE - bG))
1040+ let bL = Burn(j, aX)
1041+[bI, bJ, bK, bL]
10261042 }
10271043 else throw("Strict value is not equal to itself.")
10281044 }
1029- else if ((Y == l))
1045+ else if ((aa == l))
10301046 then {
1031- let bI = {
1032- let ai = assetInfo(l)
1033- if ($isInstanceOf(ai, "Asset"))
1047+ let bM = {
1048+ let af = assetInfo(l)
1049+ if ($isInstanceOf(af, "Asset"))
10341050 then {
1035- let aZ = ai
1036- aZ.quantity
1051+ let bd = af
1052+ bd.quantity
10371053 }
10381054 else 0
10391055 }
1040- let bJ = valueOrElse(getInteger(this, G), 0)
1041- let bK = fraction(bJ, R, bI)
1042- let bL = fraction(bK, aT, R)
1043- let ak = fraction(bL, R, S)
1044- let bM = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["E8zHu33GfcNyGLypX77gZiUXfvuZQeaYmiEfsy7VYNwP", bL], nil)
1045- if ((bM == bM))
1056+ let bN = valueOrElse(getInteger(this, G), 0)
1057+ let bO = fraction(bN, T, bM)
1058+ let bP = fraction(bO, aX, T)
1059+ let an = fraction(bP, T, U)
1060+ let bQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["E8zHu33GfcNyGLypX77gZiUXfvuZQeaYmiEfsy7VYNwP", bP], nil)
1061+ if ((bQ == bQ))
10461062 then {
1047- let bN = ScriptTransfer(Address(T), ak, k)
1048- let bO = ScriptTransfer(ac.caller, (bL - ak), k)
1049- let bP = IntegerEntry(G, (bJ - bL))
1050- let bQ = Burn(l, aT)
1051-[bN, bO, bP, bQ]
1063+ let bR = ScriptTransfer(Address(V), an, k)
1064+ let bS = ScriptTransfer(ag.caller, (bP - an), k)
1065+ let bT = IntegerEntry(G, (bN - bP))
1066+ let bU = Burn(l, aX)
1067+[bR, bS, bT, bU]
10521068 }
10531069 else throw("Strict value is not equal to itself.")
10541070 }
1055- else if ((Y == p))
1071+ else if ((aa == p))
10561072 then {
1057- let bR = {
1058- let ai = assetInfo(p)
1059- if ($isInstanceOf(ai, "Asset"))
1073+ let bV = {
1074+ let af = assetInfo(p)
1075+ if ($isInstanceOf(af, "Asset"))
10601076 then {
1061- let aZ = ai
1062- aZ.quantity
1077+ let bd = af
1078+ bd.quantity
10631079 }
10641080 else 0
10651081 }
1066- let bS = valueOrElse(getInteger(this, J), 0)
1067- let bT = fraction(bS, R, bR)
1068- let bU = fraction(bT, aT, R)
1069- let ak = fraction(bU, R, S)
1070- let bV = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["8WhH5CCJ6NakPvEvAJcizqqD7H6axhupdYHDFumSDwsy", bU], nil)
1071- if ((bV == bV))
1082+ let bW = valueOrElse(getInteger(this, J), 0)
1083+ let bX = fraction(bW, T, bV)
1084+ let bY = fraction(bX, aX, T)
1085+ let an = fraction(bY, T, U)
1086+ let bZ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["8WhH5CCJ6NakPvEvAJcizqqD7H6axhupdYHDFumSDwsy", bY], nil)
1087+ if ((bZ == bZ))
10721088 then {
1073- let bW = ScriptTransfer(Address(T), ak, o)
1074- let bX = ScriptTransfer(ac.caller, (bU - ak), o)
1075- let bY = IntegerEntry(J, (bS - bU))
1076- let bZ = Burn(p, aT)
1077-[bW, bX, bY, bZ]
1089+ let ca = ScriptTransfer(Address(V), an, o)
1090+ let cb = ScriptTransfer(ag.caller, (bY - an), o)
1091+ let cc = IntegerEntry(J, (bW - bY))
1092+ let cd = Burn(p, aX)
1093+[ca, cb, cc, cd]
10781094 }
10791095 else throw("Strict value is not equal to itself.")
10801096 }
1081- else if ((Y == t))
1097+ else if ((aa == t))
10821098 then {
1083- let ca = {
1084- let ai = assetInfo(t)
1085- if ($isInstanceOf(ai, "Asset"))
1099+ let ce = {
1100+ let af = assetInfo(t)
1101+ if ($isInstanceOf(af, "Asset"))
10861102 then {
1087- let aZ = ai
1088- aZ.quantity
1103+ let bd = af
1104+ bd.quantity
10891105 }
10901106 else 0
10911107 }
1092- let cb = valueOrElse(getInteger(this, N), 0)
1093- let cc = fraction(cb, R, ca)
1094- let cd = fraction(cc, aT, R)
1095- let ak = fraction(cd, R, S)
1096- let ce = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1", cd], nil)
1097- if ((ce == ce))
1108+ let cf = valueOrElse(getInteger(this, N), 0)
1109+ let cg = fraction(cf, T, ce)
1110+ let ch = fraction(cg, aX, T)
1111+ let an = fraction(ch, T, U)
1112+ let ci = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1", ch], nil)
1113+ if ((ci == ci))
10981114 then {
1099- let cf = ScriptTransfer(Address(T), ak, s)
1100- let cg = ScriptTransfer(ac.caller, (cd - ak), s)
1101- let ch = IntegerEntry(N, (cb - cd))
1102- let ci = Burn(t, aT)
1103-[cf, cg, ch, ci]
1115+ let cj = ScriptTransfer(Address(V), an, s)
1116+ let ck = ScriptTransfer(ag.caller, (ch - an), s)
1117+ let cl = IntegerEntry(N, (cf - ch))
1118+ let cm = Burn(t, aX)
1119+[cj, ck, cl, cm]
11041120 }
11051121 else throw("Strict value is not equal to itself.")
11061122 }
1107- else if ((Y == r))
1123+ else if ((aa == r))
11081124 then {
1109- let cj = {
1110- let ai = assetInfo(r)
1111- if ($isInstanceOf(ai, "Asset"))
1125+ let cn = {
1126+ let af = assetInfo(r)
1127+ if ($isInstanceOf(af, "Asset"))
11121128 then {
1113- let aZ = ai
1114- aZ.quantity
1129+ let bd = af
1130+ bd.quantity
11151131 }
11161132 else 0
11171133 }
1118- let ck = valueOrElse(getInteger(this, L), 0)
1119- let cl = fraction(ck, R, cj)
1120- let cm = fraction(cl, aT, R)
1121- let ak = fraction(cm, R, S)
1122- let cn = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["HnW33dcEaeUTcgMLd8vHoJR5iAFZ2ngHDAa9E9496kDX", cm], nil)
1123- if ((cn == cn))
1134+ let co = valueOrElse(getInteger(this, L), 0)
1135+ let cp = fraction(co, T, cn)
1136+ let cq = fraction(cp, aX, T)
1137+ let an = fraction(cq, T, U)
1138+ let cr = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["HnW33dcEaeUTcgMLd8vHoJR5iAFZ2ngHDAa9E9496kDX", cq], nil)
1139+ if ((cr == cr))
11241140 then {
1125- let co = ScriptTransfer(Address(T), ak, q)
1126- let cp = ScriptTransfer(ac.caller, (cm - ak), q)
1127- let cq = IntegerEntry(L, (ck - cm))
1128- let cr = Burn(r, aT)
1129-[co, cp, cq, cr]
1141+ let cs = ScriptTransfer(Address(V), an, q)
1142+ let ct = ScriptTransfer(ag.caller, (cq - an), q)
1143+ let cu = IntegerEntry(L, (co - cq))
1144+ let cv = Burn(r, aX)
1145+[cs, ct, cu, cv]
11301146 }
11311147 else throw("Strict value is not equal to itself.")
11321148 }
1133- else if ((Y == n))
1149+ else if ((aa == n))
11341150 then {
1135- let cs = {
1136- let ai = assetInfo(n)
1137- if ($isInstanceOf(ai, "Asset"))
1151+ let cw = {
1152+ let af = assetInfo(n)
1153+ if ($isInstanceOf(af, "Asset"))
11381154 then {
1139- let aZ = ai
1140- aZ.quantity
1155+ let bd = af
1156+ bd.quantity
11411157 }
11421158 else 0
11431159 }
1144- let ct = valueOrElse(getInteger(this, L), 0)
1145- let cu = fraction(ct, R, cs)
1146- let cv = fraction(cu, aT, R)
1147- let ak = fraction(cv, R, S)
1148- let cw = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["AGo49HCtQUghfxHSpUXub3KBaMXyunJmTxQ4azgU5Ax5", cv], nil)
1149- if ((cw == cw))
1160+ let cx = valueOrElse(getInteger(this, L), 0)
1161+ let cy = fraction(cx, T, cw)
1162+ let cz = fraction(cy, aX, T)
1163+ let an = fraction(cz, T, U)
1164+ let cA = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["AGo49HCtQUghfxHSpUXub3KBaMXyunJmTxQ4azgU5Ax5", cz], nil)
1165+ if ((cA == cA))
11501166 then {
1151- let cx = ScriptTransfer(Address(T), ak, m)
1152- let cy = ScriptTransfer(ac.caller, (cv - ak), m)
1153- let cz = IntegerEntry(I, (ct - cv))
1154- let cA = Burn(n, aT)
1155-[cx, cy, cz, cA]
1167+ let cB = ScriptTransfer(Address(V), an, m)
1168+ let cC = ScriptTransfer(ag.caller, (cz - an), m)
1169+ let cD = IntegerEntry(I, (cx - cz))
1170+ let cE = Burn(n, aX)
1171+[cB, cC, cD, cE]
11561172 }
11571173 else throw("Strict value is not equal to itself.")
11581174 }
1159- else if ((Y == v))
1175+ else if ((aa == v))
11601176 then {
1161- let cB = {
1162- let ai = assetInfo(v)
1163- if ($isInstanceOf(ai, "Asset"))
1177+ let cF = {
1178+ let af = assetInfo(v)
1179+ if ($isInstanceOf(af, "Asset"))
11641180 then {
1165- let aZ = ai
1166- aZ.quantity
1181+ let bd = af
1182+ bd.quantity
11671183 }
11681184 else 0
11691185 }
1170- let cC = valueOrElse(getInteger(this, P), 0)
1171- let cD = fraction(cC, R, cB)
1172- let cE = fraction(cD, aT, R)
1173- let ak = fraction(cE, R, S)
1174- let cF = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["CNkqC6GPi888WdJ1EuVtu9JGZ9VHpAn8eTHwR8YZxXbv", cE], nil)
1175- if ((cF == cF))
1186+ let cG = valueOrElse(getInteger(this, P), 0)
1187+ let cH = fraction(cG, T, cF)
1188+ let cI = fraction(cH, aX, T)
1189+ let an = fraction(cI, T, U)
1190+ let cJ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["CNkqC6GPi888WdJ1EuVtu9JGZ9VHpAn8eTHwR8YZxXbv", cI], nil)
1191+ if ((cJ == cJ))
11761192 then {
1177- let cG = ScriptTransfer(Address(T), ak, u)
1178- let cH = ScriptTransfer(ac.caller, (cE - ak), u)
1179- let cI = IntegerEntry(P, (cC - cE))
1180- let cJ = Burn(v, aT)
1181-[cG, cH, cI, cJ]
1193+ let cK = ScriptTransfer(Address(V), an, u)
1194+ let cL = ScriptTransfer(ag.caller, (cI - an), u)
1195+ let cM = IntegerEntry(P, (cG - cI))
1196+ let cN = Burn(v, aX)
1197+[cK, cL, cM, cN]
11821198 }
11831199 else throw("Strict value is not equal to itself.")
11841200 }
11861202 }
11871203
11881204
1189-@Verifier(cK)
1190-func cL () = sigVerify(cK.bodyBytes, cK.proofs[0], cK.senderPublicKey)
1205+@Verifier(cO)
1206+func cP () = sigVerify(cO.bodyBytes, cO.proofs[0], cO.senderPublicKey)
11911207
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = 10000000000
77
88 let c = base58'97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf'
99
1010 let d = base58'2CD44HANZzsdU7yqRsmz7L9eA2Foh4YYMC4azMbaZEj6'
1111
1212 let e = base58'F2AKkA513k5yHEJkLsU6vWxCYYk811GpjLhwEv2WGwZ9'
1313
1414 let f = base58'FuUobp3DcfARzDLcvtVW37i7FvMPvCCpgdcvWke8sBuh'
1515
1616 let g = base58'EK6N7S38xbtBT3SxAqoGdDLCiX6rojX6G169CnSyuE5'
1717
1818 let h = base58'HZKFpNfyPG5gt4D6Nfy1zQSg2Ptmqv932GjNTCyBEeKP'
1919
2020 let i = base58'EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH'
2121
2222 let j = base58'BqPYkaiz7Le6fFu1rjZ54anrpT57EpvyugZCUqrsjXj'
2323
2424 let k = base58'E8zHu33GfcNyGLypX77gZiUXfvuZQeaYmiEfsy7VYNwP'
2525
2626 let l = base58'Dh9QXSSABE5V6aRfu3mCbDAUokbpE7ER7pbZV6cvyg1A'
2727
2828 let m = base58'AGo49HCtQUghfxHSpUXub3KBaMXyunJmTxQ4azgU5Ax5'
2929
3030 let n = base58'3hty6p21a9M4t9greh13nydX84bvaPyXDhKZ2FSmLNRg'
3131
3232 let o = base58'8WhH5CCJ6NakPvEvAJcizqqD7H6axhupdYHDFumSDwsy'
3333
3434 let p = base58'FpRckcTCzfsfXwWhQCrL5rcrStRB6HxmRjP28qVFz4iu'
3535
3636 let q = base58'HnW33dcEaeUTcgMLd8vHoJR5iAFZ2ngHDAa9E9496kDX'
3737
3838 let r = base58'57kEMQuVpmhsG9eCkcGRA3hTsZZGa6axKJfNwXEU4EM1'
3939
4040 let s = base58'7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1'
4141
4242 let t = base58'EHia7oPmBSJyTd3Uix8sdpEvFXB9X18ioqreXiTaKyVJ'
4343
4444 let u = base58'CNkqC6GPi888WdJ1EuVtu9JGZ9VHpAn8eTHwR8YZxXbv'
4545
4646 let v = base58'HgD36mcgHVF5beAQi6rPtatg4gVmMckvPExFR3jEDydW'
4747
4848 let w = false
4949
5050 let x = "STAKED_LP"
5151
5252 let y = "From_Compound"
5353
5454 let z = "WX_USDN_compound"
5555
5656 let A = "WX_USDN"
5757
5858 let B = "USDC_USDN_compound"
5959
6060 let C = "USDC_USDN"
6161
6262 let D = "USDC_USDT_compound"
6363
6464 let E = "USDC_USDT"
6565
6666 let F = "PUZZLE_USDN_compound"
6767
6868 let G = "PUZZLE_USDN"
6969
7070 let H = "NSBT_USDN_compound"
7171
7272 let I = "NSBT_USDN"
7373
7474 let J = "BTC_USDN"
7575
7676 let K = "BTC_USDN_Compound"
7777
7878 let L = "ENNO_USDN"
7979
8080 let M = "ENNO_USDN_Compound"
8181
8282 let N = "WAVES_USDN"
8383
8484 let O = "WAVES_USDN_Compound"
8585
8686 let P = "LTC_USDN"
8787
8888 let Q = "LTC_USDN_Compound"
8989
90-let R = 100000000
90+let R = "sWAVES_WAVES"
9191
92-let S = 10000000000
92+let S = "sWAVES_WAVES_Compound"
9393
94-let T = base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm'
94+let T = 100000000
9595
96-let U = base58'3P6phwFZFQtZFuc9dvdXsgvtg8JEFVgECPA'
96+let U = 10000000000
9797
98-func V (W) = if ((W != U))
98+let V = base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm'
99+
100+let W = base58'3P6phwFZFQtZFuc9dvdXsgvtg8JEFVgECPA'
101+
102+func X (Y) = if ((Y != W))
99103 then false
100104 else true
101105
102106
103-func X (Y) = if ((Y == g))
107+func Z (aa) = if ((aa == g))
104108 then h
105- else if ((Y == e))
109+ else if ((aa == e))
106110 then f
107- else if ((Y == g))
111+ else if ((aa == g))
108112 then h
109- else if ((Y == i))
113+ else if ((aa == i))
110114 then j
111- else if ((Y == k))
115+ else if ((aa == k))
112116 then l
113117 else throw("invalid asset")
114118
115119
116-func Z (aa) = if ((aa == d))
120+func ab (ac) = if ((ac == d))
117121 then x
118- else if ((aa == f))
122+ else if ((ac == f))
119123 then A
120- else if ((aa == h))
124+ else if ((ac == h))
121125 then C
122- else if ((aa == j))
126+ else if ((ac == j))
123127 then E
124- else if ((aa == l))
128+ else if ((ac == l))
125129 then G
126130 else throw("Key does not exist")
127131
128132
129-func ab (aa) = if ((aa == d))
133+func ad (ac) = if ((ac == d))
130134 then toBase58String(c)
131- else if ((aa == f))
135+ else if ((ac == f))
132136 then toBase58String(e)
133- else if ((aa == h))
137+ else if ((ac == h))
134138 then toBase58String(g)
135- else if ((aa == j))
139+ else if ((ac == j))
136140 then toBase58String(i)
137- else if ((aa == l))
141+ else if ((ac == l))
138142 then toBase58String(k)
139143 else throw("Key does not exist")
140144
141145
142-@Callable(ac)
143-func deposit2 () = if ((ac.caller != Address(U)))
146+func ae (aa) = {
147+ let af = aa
148+ if ($isInstanceOf(af, "ByteVector"))
149+ then {
150+ let aa = af
151+ toBase58String(aa)
152+ }
153+ else throw("decoding function error")
154+ }
155+
156+
157+@Callable(ag)
158+func deposit2 () = if ((ag.caller != Address(W)))
144159 then throw("callable for oracle only")
145160 else {
146- let ad = ac.payments[0].assetId
147- let ae = value(ac.payments[0]).amount
148- let aa = X(ad)
149- let af = Z(aa)
150- let ag = valueOrElse(getInteger(this, af), 0)
151- let ah = {
152- let ai = assetInfo(aa)
153- if ($isInstanceOf(ai, "Asset"))
161+ let ah = ag.payments[0].assetId
162+ let ai = value(ag.payments[0]).amount
163+ let ac = Z(ah)
164+ let aj = ab(ac)
165+ let ak = valueOrElse(getInteger(this, aj), 0)
166+ let al = {
167+ let af = assetInfo(ac)
168+ if ($isInstanceOf(af, "Asset"))
154169 then {
155- let aj = ai
156- aj.quantity
170+ let am = af
171+ am.quantity
157172 }
158173 else throw("Can't find asset")
159174 }
160- let ak = fraction(ae, a, b)
161- let al = (ae - ak)
162- let am = fraction(ah, a, ag)
163- let an = fraction(al, am, a)
164- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [AttachedPayment(ad, al)])
165- if ((ao == ao))
175+ let an = fraction(ai, a, b)
176+ let ao = (ai - an)
177+ let ap = fraction(al, a, ak)
178+ let aq = fraction(ao, ap, a)
179+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [AttachedPayment(ah, ao)])
180+ if ((ar == ar))
166181 then {
167- let ap = IntegerEntry(af, (ag + al))
168- let aq = Reissue(aa, an, true)
169- let ar = ScriptTransfer(ac.caller, an, aa)
170- let as = ScriptTransfer(Address(T), ak, ad)
171-[ap, aq, ar, as]
182+ let as = IntegerEntry(aj, (ak + ao))
183+ let at = Reissue(ac, aq, true)
184+ let au = ScriptTransfer(ag.caller, aq, ac)
185+ let av = ScriptTransfer(Address(V), an, ah)
186+[as, at, au, av]
172187 }
173188 else throw("Strict value is not equal to itself.")
174189 }
175190
176191
177192
178-@Callable(ac)
179-func withdraw2 () = if ((ac.caller != Address(U)))
193+@Callable(ag)
194+func withdraw2 () = if ((ag.caller != Address(W)))
180195 then throw("callable for oracle only")
181196 else {
182- let aa = ac.payments[0].assetId
183- let ae = value(ac.payments[0]).amount
184- let at = ab(aa)
185- let au = Z(aa)
186- let ah = {
187- let ai = assetInfo(X(aa))
188- if ($isInstanceOf(ai, "Asset"))
197+ let ac = ag.payments[0].assetId
198+ let ai = value(ag.payments[0]).amount
199+ let aw = ad(ac)
200+ let ax = ab(ac)
201+ let ay = ae(ac)
202+ let al = {
203+ let af = assetInfo(fromBase58String(ay))
204+ if ($isInstanceOf(af, "Asset"))
189205 then {
190- let aj = ai
191- aj.quantity
206+ let am = af
207+ am.quantity
192208 }
193- else throw("Can't find asset")
209+ else throw("Can't pull tci issued")
194210 }
195- let av = valueOrElse(getInteger(this, au), 0)
196- let aw = fraction(av, a, ah)
197- let ak = fraction(ae, a, b)
198- let ax = (ae - ak)
199- let ay = (ax * aw)
200- let az = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", [at, ay], nil)
201- if ((az == az))
211+ let az = valueOrElse(getInteger(this, ax), 0)
212+ let aA = fraction(az, a, al)
213+ let an = fraction(ai, a, b)
214+ let aB = (ai - an)
215+ let aC = (aB * aA)
216+ let aD = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", [aw, aC], nil)
217+ if ((aD == aD))
202218 then {
203- let aA = Burn(X(aa), ax)
204- let aB = ScriptTransfer(Address(T), ak, aa)
205- let aC = ScriptTransfer(ac.caller, ay, fromBase58String(at))
206- let ap = IntegerEntry(au, (av - ay))
207-[aA, aB, aC, ap]
219+ let aE = Burn(Z(ac), aB)
220+ let aF = ScriptTransfer(Address(V), an, ac)
221+ let aG = ScriptTransfer(ag.caller, aC, fromBase58String(aw))
222+ let as = IntegerEntry(ax, (az - aC))
223+[aE, aF, aG, as]
208224 }
209225 else throw("Strict value is not equal to itself.")
210226 }
211227
212228
213229
214-@Callable(ac)
230+@Callable(ag)
215231 func depositWxUsdnLP () = {
216- let aD = value(ac.payments[0])
217- let ae = aD.amount
218- if ((aD.assetId != e))
232+ let aH = value(ag.payments[0])
233+ let ai = aH.amount
234+ if ((aH.assetId != e))
219235 then throw("attach WXUSDNLP tokens only")
220236 else if (w)
221237 then throw("smart contract is on lock")
222238 else {
223- let aE = valueOrElse(getInteger(this, A), 0)
224- let aF = {
225- let ai = assetInfo(f)
226- if ($isInstanceOf(ai, "Asset"))
239+ let aI = valueOrElse(getInteger(this, A), 0)
240+ let aJ = {
241+ let af = assetInfo(f)
242+ if ($isInstanceOf(af, "Asset"))
227243 then {
228- let aj = ai
229- aj.quantity
244+ let am = af
245+ am.quantity
230246 }
231247 else throw("Can't find asset")
232248 }
233- let aG = fraction(aF, 100000000, aE)
234- let aH = fraction(ae, aG, 100000000)
235- let ap = IntegerEntry(A, (aE + ae))
236- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
237- if ((ao == ao))
249+ let aK = fraction(aJ, 100000000, aI)
250+ let aL = fraction(ai, aK, 100000000)
251+ let as = IntegerEntry(A, (aI + ai))
252+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
253+ if ((ar == ar))
238254 then {
239- let aI = Reissue(f, aH, true)
240- let aJ = ScriptTransfer(ac.caller, aH, f)
241-[aI, aJ, ap]
255+ let aM = Reissue(f, aL, true)
256+ let aN = ScriptTransfer(ag.caller, aL, f)
257+[aM, aN, as]
242258 }
243259 else throw("Strict value is not equal to itself.")
244260 }
245261 }
246262
247263
248264
249-@Callable(ac)
265+@Callable(ag)
250266 func depositUsdtUsdnLP () = {
251- let aD = value(ac.payments[0])
252- let ae = aD.amount
253- if ((aD.assetId != c))
267+ let aH = value(ag.payments[0])
268+ let ai = aH.amount
269+ if ((aH.assetId != c))
254270 then throw("attach USDTUSDNLP tokens only")
255271 else if (w)
256272 then throw("smart contract is on lock")
257273 else {
258- let aE = valueOrElse(getInteger(this, x), 0)
259- let aF = {
260- let ai = assetInfo(d)
261- if ($isInstanceOf(ai, "Asset"))
274+ let aI = valueOrElse(getInteger(this, x), 0)
275+ let aJ = {
276+ let af = assetInfo(d)
277+ if ($isInstanceOf(af, "Asset"))
262278 then {
263- let aj = ai
264- aj.quantity
279+ let am = af
280+ am.quantity
265281 }
266282 else throw("Can't find asset")
267283 }
268- let aK = valueOrElse(getInteger(this, y), 0)
269- let aL = fraction(aF, 100000000, aE)
270- let aH = fraction(ae, aL, 100000000)
271- let ap = IntegerEntry(x, (aE + ae))
272- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
273- if ((ao == ao))
284+ let aO = valueOrElse(getInteger(this, y), 0)
285+ let aP = fraction(aJ, 100000000, aI)
286+ let aL = fraction(ai, aP, 100000000)
287+ let as = IntegerEntry(x, (aI + ai))
288+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
289+ if ((ar == ar))
274290 then {
275- let aI = Reissue(d, aH, true)
276- let aJ = ScriptTransfer(ac.caller, aH, d)
277-[aI, aJ, ap]
291+ let aM = Reissue(d, aL, true)
292+ let aN = ScriptTransfer(ag.caller, aL, d)
293+[aM, aN, as]
278294 }
279295 else throw("Strict value is not equal to itself.")
280296 }
281297 }
282298
283299
284300
285-@Callable(ac)
301+@Callable(ag)
286302 func depositUsdcUsdnLP () = {
287- let aD = value(ac.payments[0])
288- let ae = aD.amount
289- if ((aD.assetId != g))
303+ let aH = value(ag.payments[0])
304+ let ai = aH.amount
305+ if ((aH.assetId != g))
290306 then throw("attach USDCUSDNLP tokens only")
291307 else if (w)
292308 then throw("smart contract is on lock")
293309 else {
294- let aE = valueOrElse(getInteger(this, C), 0)
295- let aF = {
296- let ai = assetInfo(h)
297- if ($isInstanceOf(ai, "Asset"))
310+ let aI = valueOrElse(getInteger(this, C), 0)
311+ let aJ = {
312+ let af = assetInfo(h)
313+ if ($isInstanceOf(af, "Asset"))
298314 then {
299- let aj = ai
300- aj.quantity
315+ let am = af
316+ am.quantity
301317 }
302318 else throw("Can't find asset")
303319 }
304- let aK = valueOrElse(getInteger(this, B), 0)
305- let aL = fraction(aF, 100000000, aE)
306- let aH = fraction(ae, aL, 100000000)
307- let ap = IntegerEntry(C, (aE + ae))
308- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
309- if ((ao == ao))
320+ let aO = valueOrElse(getInteger(this, B), 0)
321+ let aP = fraction(aJ, 100000000, aI)
322+ let aL = fraction(ai, aP, 100000000)
323+ let as = IntegerEntry(C, (aI + ai))
324+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
325+ if ((ar == ar))
310326 then {
311- let aI = Reissue(h, aH, true)
312- let aJ = ScriptTransfer(ac.caller, aH, h)
313-[aI, aJ, ap]
327+ let aM = Reissue(h, aL, true)
328+ let aN = ScriptTransfer(ag.caller, aL, h)
329+[aM, aN, as]
314330 }
315331 else throw("Strict value is not equal to itself.")
316332 }
317333 }
318334
319335
320336
321-@Callable(ac)
337+@Callable(ag)
322338 func depositUsdcUsdtLP () = {
323- let aD = value(ac.payments[0])
324- let ae = aD.amount
325- if ((aD.assetId != i))
339+ let aH = value(ag.payments[0])
340+ let ai = aH.amount
341+ if ((aH.assetId != i))
326342 then throw("attach USDCUSDTLP tokens only")
327343 else if (w)
328344 then throw("smart contract is on lock")
329345 else {
330- let aE = valueOrElse(getInteger(this, E), 0)
331- let aF = {
332- let ai = assetInfo(j)
333- if ($isInstanceOf(ai, "Asset"))
346+ let aI = valueOrElse(getInteger(this, E), 0)
347+ let aJ = {
348+ let af = assetInfo(j)
349+ if ($isInstanceOf(af, "Asset"))
334350 then {
335- let aj = ai
336- aj.quantity
351+ let am = af
352+ am.quantity
337353 }
338354 else throw("Can't find asset")
339355 }
340- let aK = valueOrElse(getInteger(this, D), 0)
341- let aL = fraction(aF, 100000000, aE)
342- let aH = fraction(ae, aL, 100000000)
343- let ap = IntegerEntry(E, (aE + ae))
344- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
345- if ((ao == ao))
356+ let aO = valueOrElse(getInteger(this, D), 0)
357+ let aP = fraction(aJ, 100000000, aI)
358+ let aL = fraction(ai, aP, 100000000)
359+ let as = IntegerEntry(E, (aI + ai))
360+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
361+ if ((ar == ar))
346362 then {
347- let aI = Reissue(j, aH, true)
348- let aJ = ScriptTransfer(ac.caller, aH, j)
349-[aI, aJ, ap]
363+ let aM = Reissue(j, aL, true)
364+ let aN = ScriptTransfer(ag.caller, aL, j)
365+[aM, aN, as]
350366 }
351367 else throw("Strict value is not equal to itself.")
352368 }
353369 }
354370
355371
356372
357-@Callable(ac)
373+@Callable(ag)
358374 func depositPuzzleUsdnLP () = {
359- let aD = value(ac.payments[0])
360- let ae = aD.amount
361- if ((aD.assetId != k))
375+ let aH = value(ag.payments[0])
376+ let ai = aH.amount
377+ if ((aH.assetId != k))
362378 then throw("attach PUZZLEUDSNLP tokens only")
363379 else if (w)
364380 then throw("smart contract is on lock")
365381 else {
366- let aE = valueOrElse(getInteger(this, G), 0)
367- let aF = {
368- let ai = assetInfo(l)
369- if ($isInstanceOf(ai, "Asset"))
382+ let aI = valueOrElse(getInteger(this, G), 0)
383+ let aJ = {
384+ let af = assetInfo(l)
385+ if ($isInstanceOf(af, "Asset"))
370386 then {
371- let aj = ai
372- aj.quantity
387+ let am = af
388+ am.quantity
373389 }
374390 else throw("Can't find asset")
375391 }
376- let aK = valueOrElse(getInteger(this, F), 0)
377- let aL = fraction(aF, 100000000, aE)
378- let aH = fraction(ae, aL, 100000000)
379- let ap = IntegerEntry(G, (aE + ae))
380- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
381- if ((ao == ao))
392+ let aO = valueOrElse(getInteger(this, F), 0)
393+ let aP = fraction(aJ, 100000000, aI)
394+ let aL = fraction(ai, aP, 100000000)
395+ let as = IntegerEntry(G, (aI + ai))
396+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
397+ if ((ar == ar))
382398 then {
383- let aI = Reissue(l, aH, true)
384- let aJ = ScriptTransfer(ac.caller, aH, l)
385-[aI, aJ, ap]
399+ let aM = Reissue(l, aL, true)
400+ let aN = ScriptTransfer(ag.caller, aL, l)
401+[aM, aN, as]
386402 }
387403 else throw("Strict value is not equal to itself.")
388404 }
389405 }
390406
391407
392408
393-@Callable(ac)
409+@Callable(ag)
394410 func depositNsbtUsdnLP () = {
395- let aD = value(ac.payments[0])
396- let ae = aD.amount
397- if ((aD.assetId != m))
411+ let aH = value(ag.payments[0])
412+ let ai = aH.amount
413+ if ((aH.assetId != m))
398414 then throw("attach NSBTUSDNLP tokens only")
399415 else if (w)
400416 then throw("smart contract is on lock")
401417 else {
402- let aE = valueOrElse(getInteger(this, I), 0)
403- let aF = {
404- let ai = assetInfo(n)
405- if ($isInstanceOf(ai, "Asset"))
418+ let aI = valueOrElse(getInteger(this, I), 0)
419+ let aJ = {
420+ let af = assetInfo(n)
421+ if ($isInstanceOf(af, "Asset"))
406422 then {
407- let aj = ai
408- aj.quantity
423+ let am = af
424+ am.quantity
409425 }
410426 else throw("Can't find asset")
411427 }
412- let aG = fraction(aF, 100000000, aE)
413- let aH = fraction(ae, aG, 100000000)
414- let ap = IntegerEntry(I, (aE + ae))
415- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
416- if ((ao == ao))
428+ let aK = fraction(aJ, 100000000, aI)
429+ let aL = fraction(ai, aK, 100000000)
430+ let as = IntegerEntry(I, (aI + ai))
431+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
432+ if ((ar == ar))
417433 then {
418- let aI = Reissue(n, aH, true)
419- let aJ = ScriptTransfer(ac.caller, aH, n)
420-[aI, aJ, ap]
434+ let aM = Reissue(n, aL, true)
435+ let aN = ScriptTransfer(ag.caller, aL, n)
436+[aM, aN, as]
421437 }
422438 else throw("Strict value is not equal to itself.")
423439 }
424440 }
425441
426442
427443
428-@Callable(ac)
444+@Callable(ag)
429445 func depositBtcUsdnLP () = {
430- let aD = value(ac.payments[0])
431- let ae = aD.amount
432- if ((aD.assetId != o))
446+ let aH = value(ag.payments[0])
447+ let ai = aH.amount
448+ if ((aH.assetId != o))
433449 then throw("attach BTCUSDNLP tokens only")
434450 else if (w)
435451 then throw("smart contract is on lock")
436452 else {
437- let aE = valueOrElse(getInteger(this, J), 0)
438- let aF = {
439- let ai = assetInfo(p)
440- if ($isInstanceOf(ai, "Asset"))
453+ let aI = valueOrElse(getInteger(this, J), 0)
454+ let aJ = {
455+ let af = assetInfo(p)
456+ if ($isInstanceOf(af, "Asset"))
441457 then {
442- let aj = ai
443- aj.quantity
458+ let am = af
459+ am.quantity
444460 }
445461 else throw("Can't find asset")
446462 }
447- let aL = fraction(aF, 100000000, aE)
448- let aH = fraction(ae, aL, 100000000)
449- let ap = IntegerEntry(J, (aE + ae))
450- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
451- if ((ao == ao))
463+ let aP = fraction(aJ, 100000000, aI)
464+ let aL = fraction(ai, aP, 100000000)
465+ let as = IntegerEntry(J, (aI + ai))
466+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
467+ if ((ar == ar))
452468 then {
453- let aI = Reissue(p, aH, true)
454- let aJ = ScriptTransfer(ac.caller, aH, p)
455-[aI, aJ, ap]
469+ let aM = Reissue(p, aL, true)
470+ let aN = ScriptTransfer(ag.caller, aL, p)
471+[aM, aN, as]
456472 }
457473 else throw("Strict value is not equal to itself.")
458474 }
459475 }
460476
461477
462478
463-@Callable(ac)
479+@Callable(ag)
464480 func depositEnnoUsdnLP () = {
465- let aD = value(ac.payments[0])
466- let ae = aD.amount
467- if ((aD.assetId != q))
481+ let aH = value(ag.payments[0])
482+ let ai = aH.amount
483+ if ((aH.assetId != q))
468484 then throw("attach ENNOUSDNLP tokens only")
469485 else if (w)
470486 then throw("smart contract is on lock")
471487 else {
472- let aE = valueOrElse(getInteger(this, L), 0)
473- let aF = {
474- let ai = assetInfo(r)
475- if ($isInstanceOf(ai, "Asset"))
488+ let aI = valueOrElse(getInteger(this, L), 0)
489+ let aJ = {
490+ let af = assetInfo(r)
491+ if ($isInstanceOf(af, "Asset"))
476492 then {
477- let aj = ai
478- aj.quantity
493+ let am = af
494+ am.quantity
479495 }
480496 else throw("Can't find asset")
481497 }
482- let aG = fraction(aF, 100000000, aE)
483- let aH = fraction(ae, aG, 100000000)
484- let ap = IntegerEntry(L, (aE + ae))
485- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
486- if ((ao == ao))
498+ let aK = fraction(aJ, 100000000, aI)
499+ let aL = fraction(ai, aK, 100000000)
500+ let as = IntegerEntry(L, (aI + ai))
501+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
502+ if ((ar == ar))
487503 then {
488- let aI = Reissue(r, aH, true)
489- let aJ = ScriptTransfer(ac.caller, aH, r)
490-[aI, aJ, ap]
504+ let aM = Reissue(r, aL, true)
505+ let aN = ScriptTransfer(ag.caller, aL, r)
506+[aM, aN, as]
491507 }
492508 else throw("Strict value is not equal to itself.")
493509 }
494510 }
495511
496512
497513
498-@Callable(ac)
514+@Callable(ag)
499515 func depositWavesUsdnLP () = {
500- let aD = value(ac.payments[0])
501- let ae = aD.amount
502- if ((aD.assetId != s))
516+ let aH = value(ag.payments[0])
517+ let ai = aH.amount
518+ if ((aH.assetId != s))
503519 then throw("attach WAVESUSDNLP tokens only")
504520 else if (w)
505521 then throw("smart contract is on lock")
506522 else {
507- let aE = valueOrElse(getInteger(this, N), 0)
508- let aF = {
509- let ai = assetInfo(t)
510- if ($isInstanceOf(ai, "Asset"))
523+ let aI = valueOrElse(getInteger(this, N), 0)
524+ let aJ = {
525+ let af = assetInfo(t)
526+ if ($isInstanceOf(af, "Asset"))
511527 then {
512- let aj = ai
513- aj.quantity
528+ let am = af
529+ am.quantity
514530 }
515531 else throw("Can't find asset")
516532 }
517- let aG = fraction(aF, 100000000, aE)
518- let aH = fraction(ae, aG, 100000000)
519- let ap = IntegerEntry(N, (aE + ae))
520- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
521- if ((ao == ao))
533+ let aK = fraction(aJ, 100000000, aI)
534+ let aL = fraction(ai, aK, 100000000)
535+ let as = IntegerEntry(N, (aI + ai))
536+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
537+ if ((ar == ar))
522538 then {
523- let aI = Reissue(t, aH, true)
524- let aJ = ScriptTransfer(ac.caller, aH, t)
525-[aI, aJ, ap]
539+ let aM = Reissue(t, aL, true)
540+ let aN = ScriptTransfer(ag.caller, aL, t)
541+[aM, aN, as]
526542 }
527543 else throw("Strict value is not equal to itself.")
528544 }
529545 }
530546
531547
532548
533-@Callable(ac)
549+@Callable(ag)
534550 func depositLTCUSDNLP () = {
535- let aD = value(ac.payments[0])
536- let ae = aD.amount
537- if ((aD.assetId != u))
551+ let aH = value(ag.payments[0])
552+ let ai = aH.amount
553+ if ((aH.assetId != u))
538554 then throw("attach LTCUSDNLP tokens only")
539555 else if (w)
540556 then throw("smart contract is on lock")
541557 else {
542- let aE = valueOrElse(getInteger(this, P), 0)
543- let aF = {
544- let ai = assetInfo(v)
545- if ($isInstanceOf(ai, "Asset"))
558+ let aI = valueOrElse(getInteger(this, P), 0)
559+ let aJ = {
560+ let af = assetInfo(v)
561+ if ($isInstanceOf(af, "Asset"))
546562 then {
547- let aj = ai
548- aj.quantity
563+ let am = af
564+ am.quantity
549565 }
550566 else throw("Can't find asset")
551567 }
552- let aG = fraction(aF, 100000000, aE)
553- let aH = fraction(ae, aG, 100000000)
554- let ap = IntegerEntry(P, (aE + ae))
555- let ao = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aD])
556- if ((ao == ao))
568+ let aK = fraction(aJ, 100000000, aI)
569+ let aL = fraction(ai, aK, 100000000)
570+ let as = IntegerEntry(P, (aI + ai))
571+ let ar = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aH])
572+ if ((ar == ar))
557573 then {
558- let aI = Reissue(v, aH, true)
559- let aJ = ScriptTransfer(ac.caller, aH, v)
560-[aI, aJ, ap]
574+ let aM = Reissue(v, aL, true)
575+ let aN = ScriptTransfer(ag.caller, aL, v)
576+[aM, aN, as]
561577 }
562578 else throw("Strict value is not equal to itself.")
563579 }
564580 }
565581
566582
567583
568-@Callable(ac)
584+@Callable(ag)
569585 func compoundWxUsdnLP () = {
570- let aM = value(ac.payments[0])
571- let aN = aM.amount
572- let aO = V(ac.caller.bytes)
573- if ((aM.assetId != e))
586+ let aQ = value(ag.payments[0])
587+ let aR = aQ.amount
588+ let aS = X(ag.caller.bytes)
589+ if ((aQ.assetId != e))
574590 then throw("attach WXUSDNLP tokens only")
575- else if (!(aO))
591+ else if (!(aS))
576592 then throw("You are not authotized to call this function")
577593 else {
578- let aK = valueOrElse(getInteger(this, z), 0)
579- let aP = valueOrElse(getInteger(this, A), 0)
580- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
581- if ((aQ == aQ))
594+ let aO = valueOrElse(getInteger(this, z), 0)
595+ let aT = valueOrElse(getInteger(this, A), 0)
596+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
597+ if ((aU == aU))
582598 then {
583- let ap = IntegerEntry(A, (aP + aN))
584- let aR = IntegerEntry(z, (aK + aN))
585-[ap, aR]
599+ let as = IntegerEntry(A, (aT + aR))
600+ let aV = IntegerEntry(z, (aO + aR))
601+[as, aV]
586602 }
587603 else throw("Strict value is not equal to itself.")
588604 }
589605 }
590606
591607
592608
593-@Callable(ac)
609+@Callable(ag)
594610 func compoundUsdtUsdnLP () = {
595- let aM = value(ac.payments[0])
596- let aN = aM.amount
597- let aO = V(ac.caller.bytes)
598- if ((aM.assetId != c))
611+ let aQ = value(ag.payments[0])
612+ let aR = aQ.amount
613+ let aS = X(ag.caller.bytes)
614+ if ((aQ.assetId != c))
599615 then throw("attach USDTUSDNLP tokens only")
600- else if (!(aO))
616+ else if (!(aS))
601617 then throw("You are not authotized to call this function")
602618 else {
603- let aK = valueOrElse(getInteger(this, y), 0)
604- let aP = valueOrElse(getInteger(this, x), 0)
605- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
606- if ((aQ == aQ))
619+ let aO = valueOrElse(getInteger(this, y), 0)
620+ let aT = valueOrElse(getInteger(this, x), 0)
621+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
622+ if ((aU == aU))
607623 then {
608- let ap = IntegerEntry(x, (aP + aN))
609- let aR = IntegerEntry(y, (aK + aN))
610-[ap, aR]
624+ let as = IntegerEntry(x, (aT + aR))
625+ let aV = IntegerEntry(y, (aO + aR))
626+[as, aV]
611627 }
612628 else throw("Strict value is not equal to itself.")
613629 }
614630 }
615631
616632
617633
618-@Callable(ac)
634+@Callable(ag)
619635 func compoundUsdcUsdnLP () = {
620- let aM = value(ac.payments[0])
621- let aN = aM.amount
622- let aO = V(ac.caller.bytes)
623- if ((aM.assetId != g))
636+ let aQ = value(ag.payments[0])
637+ let aR = aQ.amount
638+ let aS = X(ag.caller.bytes)
639+ if ((aQ.assetId != g))
624640 then throw("attach USDCUSDNLP tokens only")
625- else if (!(aO))
641+ else if (!(aS))
626642 then throw("You are not authotized to call this function")
627643 else {
628- let aK = valueOrElse(getInteger(this, B), 0)
629- let aP = valueOrElse(getInteger(this, C), 0)
630- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
631- if ((aQ == aQ))
644+ let aO = valueOrElse(getInteger(this, B), 0)
645+ let aT = valueOrElse(getInteger(this, C), 0)
646+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
647+ if ((aU == aU))
632648 then {
633- let ap = IntegerEntry(C, (aP + aN))
634- let aR = IntegerEntry(B, (aK + aN))
635-[ap, aR]
649+ let as = IntegerEntry(C, (aT + aR))
650+ let aV = IntegerEntry(B, (aO + aR))
651+[as, aV]
636652 }
637653 else throw("Strict value is not equal to itself.")
638654 }
639655 }
640656
641657
642658
643-@Callable(ac)
659+@Callable(ag)
644660 func compoundUsdcUsdtLP () = {
645- let aM = value(ac.payments[0])
646- let aN = aM.amount
647- let aO = V(ac.caller.bytes)
648- if ((aM.assetId != i))
661+ let aQ = value(ag.payments[0])
662+ let aR = aQ.amount
663+ let aS = X(ag.caller.bytes)
664+ if ((aQ.assetId != i))
649665 then throw("attach USDCUSDTLP tokens only")
650- else if (!(aO))
666+ else if (!(aS))
651667 then throw("You are not authotized to call this function")
652668 else {
653- let aK = valueOrElse(getInteger(this, D), 0)
654- let aP = valueOrElse(getInteger(this, E), 0)
655- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
656- if ((aQ == aQ))
669+ let aO = valueOrElse(getInteger(this, D), 0)
670+ let aT = valueOrElse(getInteger(this, E), 0)
671+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
672+ if ((aU == aU))
657673 then {
658- let ap = IntegerEntry(E, (aP + aN))
659- let aR = IntegerEntry(D, (aK + aN))
660-[ap, aR]
674+ let as = IntegerEntry(E, (aT + aR))
675+ let aV = IntegerEntry(D, (aO + aR))
676+[as, aV]
661677 }
662678 else throw("Strict value is not equal to itself.")
663679 }
664680 }
665681
666682
667683
668-@Callable(ac)
684+@Callable(ag)
669685 func compountPuzzleUsdnLP () = {
670- let aM = value(ac.payments[0])
671- let aN = aM.amount
672- let aO = V(ac.caller.bytes)
673- if ((aM.assetId != k))
686+ let aQ = value(ag.payments[0])
687+ let aR = aQ.amount
688+ let aS = X(ag.caller.bytes)
689+ if ((aQ.assetId != k))
674690 then throw("attach PUZZLEUSDNLP tokens only")
675- else if (!(aO))
691+ else if (!(aS))
676692 then throw("You are not authotized to call this function")
677693 else {
678- let aK = valueOrElse(getInteger(this, F), 0)
679- let aP = valueOrElse(getInteger(this, G), 0)
680- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
681- if ((aQ == aQ))
694+ let aO = valueOrElse(getInteger(this, F), 0)
695+ let aT = valueOrElse(getInteger(this, G), 0)
696+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
697+ if ((aU == aU))
682698 then {
683- let ap = IntegerEntry(G, (aP + aN))
684- let aR = IntegerEntry(F, (aK + aN))
685-[ap, aR]
699+ let as = IntegerEntry(G, (aT + aR))
700+ let aV = IntegerEntry(F, (aO + aR))
701+[as, aV]
686702 }
687703 else throw("Strict value is not equal to itself.")
688704 }
689705 }
690706
691707
692708
693-@Callable(ac)
709+@Callable(ag)
694710 func compoundNsbtUsdnLP () = {
695- let aM = value(ac.payments[0])
696- let aN = aM.amount
697- let aO = V(ac.caller.bytes)
698- if ((aM.assetId != m))
711+ let aQ = value(ag.payments[0])
712+ let aR = aQ.amount
713+ let aS = X(ag.caller.bytes)
714+ if ((aQ.assetId != m))
699715 then throw("attach NSBTUSDNLP tokens only")
700- else if (!(aO))
716+ else if (!(aS))
701717 then throw("You are not authotized to call this function")
702718 else {
703- let aK = valueOrElse(getInteger(this, H), 0)
704- let aP = valueOrElse(getInteger(this, I), 0)
705- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
706- if ((aQ == aQ))
719+ let aO = valueOrElse(getInteger(this, H), 0)
720+ let aT = valueOrElse(getInteger(this, I), 0)
721+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
722+ if ((aU == aU))
707723 then {
708- let ap = IntegerEntry(I, (aP + aN))
709- let aR = IntegerEntry(H, (aK + aN))
710-[ap, aR]
724+ let as = IntegerEntry(I, (aT + aR))
725+ let aV = IntegerEntry(H, (aO + aR))
726+[as, aV]
711727 }
712728 else throw("Strict value is not equal to itself.")
713729 }
714730 }
715731
716732
717733
718-@Callable(ac)
734+@Callable(ag)
719735 func compoundBtcUsdnLP () = {
720- let aM = value(ac.payments[0])
721- let aN = aM.amount
722- let aO = V(ac.caller.bytes)
723- if ((aM.assetId != o))
736+ let aQ = value(ag.payments[0])
737+ let aR = aQ.amount
738+ let aS = X(ag.caller.bytes)
739+ if ((aQ.assetId != o))
724740 then throw("attach BTCUSDNLP tokens only")
725- else if (!(aO))
741+ else if (!(aS))
726742 then throw("You are not authotized to call this function")
727743 else {
728- let aK = valueOrElse(getInteger(this, K), 0)
729- let aP = valueOrElse(getInteger(this, J), 0)
730- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
731- if ((aQ == aQ))
744+ let aO = valueOrElse(getInteger(this, K), 0)
745+ let aT = valueOrElse(getInteger(this, J), 0)
746+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
747+ if ((aU == aU))
732748 then {
733- let ap = IntegerEntry(J, (aP + aN))
734- let aR = IntegerEntry(K, (aK + aN))
735-[ap, aR]
749+ let as = IntegerEntry(J, (aT + aR))
750+ let aV = IntegerEntry(K, (aO + aR))
751+[as, aV]
736752 }
737753 else throw("Strict value is not equal to itself.")
738754 }
739755 }
740756
741757
742758
743-@Callable(ac)
759+@Callable(ag)
744760 func compoundEnnoUsdnLP () = {
745- let aM = value(ac.payments[0])
746- let aN = aM.amount
747- let aO = V(ac.caller.bytes)
748- if ((aM.assetId != q))
761+ let aQ = value(ag.payments[0])
762+ let aR = aQ.amount
763+ let aS = X(ag.caller.bytes)
764+ if ((aQ.assetId != q))
749765 then throw("attach ENNOUSDNLP tokens only")
750- else if (!(aO))
766+ else if (!(aS))
751767 then throw("You are not authotized to call this function")
752768 else {
753- let aK = valueOrElse(getInteger(this, M), 0)
754- let aP = valueOrElse(getInteger(this, L), 0)
755- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
756- if ((aQ == aQ))
769+ let aO = valueOrElse(getInteger(this, M), 0)
770+ let aT = valueOrElse(getInteger(this, L), 0)
771+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
772+ if ((aU == aU))
757773 then {
758- let ap = IntegerEntry(L, (aP + aN))
759- let aR = IntegerEntry(M, (aK + aN))
760-[ap, aR]
774+ let as = IntegerEntry(L, (aT + aR))
775+ let aV = IntegerEntry(M, (aO + aR))
776+[as, aV]
761777 }
762778 else throw("Strict value is not equal to itself.")
763779 }
764780 }
765781
766782
767783
768-@Callable(ac)
784+@Callable(ag)
769785 func compoundWavesUsdnLP () = {
770- let aM = value(ac.payments[0])
771- let aN = aM.amount
772- let aO = V(ac.caller.bytes)
773- if ((aM.assetId != s))
786+ let aQ = value(ag.payments[0])
787+ let aR = aQ.amount
788+ let aS = X(ag.caller.bytes)
789+ if ((aQ.assetId != s))
774790 then throw("attach WAVESUSDNLP tokens only")
775- else if (!(aO))
791+ else if (!(aS))
776792 then throw("You are not authotized to call this function")
777793 else {
778- let aK = valueOrElse(getInteger(this, O), 0)
779- let aP = valueOrElse(getInteger(this, N), 0)
780- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
781- if ((aQ == aQ))
794+ let aO = valueOrElse(getInteger(this, O), 0)
795+ let aT = valueOrElse(getInteger(this, N), 0)
796+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
797+ if ((aU == aU))
782798 then {
783- let ap = IntegerEntry(N, (aP + aN))
784- let aR = IntegerEntry(O, (aK + aN))
785-[ap, aR]
799+ let as = IntegerEntry(N, (aT + aR))
800+ let aV = IntegerEntry(O, (aO + aR))
801+[as, aV]
786802 }
787803 else throw("Strict value is not equal to itself.")
788804 }
789805 }
790806
791807
792808
793-@Callable(ac)
809+@Callable(ag)
794810 func compoundLtcUsdnLP () = {
795- let aM = value(ac.payments[0])
796- let aN = aM.amount
797- let aO = V(ac.caller.bytes)
798- if ((aM.assetId != u))
811+ let aQ = value(ag.payments[0])
812+ let aR = aQ.amount
813+ let aS = X(ag.caller.bytes)
814+ if ((aQ.assetId != u))
799815 then throw("attach LTCUSDNLP tokens only")
800- else if (!(aO))
816+ else if (!(aS))
801817 then throw("You are not authotized to call this function")
802818 else {
803- let aK = valueOrElse(getInteger(this, Q), 0)
804- let aP = valueOrElse(getInteger(this, N), 0)
805- let aQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aM])
806- if ((aQ == aQ))
819+ let aO = valueOrElse(getInteger(this, Q), 0)
820+ let aT = valueOrElse(getInteger(this, N), 0)
821+ let aU = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "stake", nil, [aQ])
822+ if ((aU == aU))
807823 then {
808- let ap = IntegerEntry(P, (aP + aN))
809- let aR = IntegerEntry(Q, (aK + aN))
810-[ap, aR]
824+ let as = IntegerEntry(P, (aT + aR))
825+ let aV = IntegerEntry(Q, (aO + aR))
826+[as, aV]
811827 }
812828 else throw("Strict value is not equal to itself.")
813829 }
814830 }
815831
816832
817833
818-@Callable(ac)
834+@Callable(ag)
819835 func initNSBTUSDN () = {
820- let aS = value(ac.payments[0])
821- let aT = aS.amount
822- if ((aS.assetId != m))
836+ let aW = value(ag.payments[0])
837+ let aX = aW.amount
838+ if ((aW.assetId != m))
823839 then throw("Unexpected token")
824840 else {
825- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
826- if ((aU == aU))
841+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
842+ if ((aY == aY))
827843 then {
828- let aV = IntegerEntry(I, aT)
829- let aW = IntegerEntry(H, 0)
830-[aV, aW]
844+ let aZ = IntegerEntry(I, aX)
845+ let ba = IntegerEntry(H, 0)
846+[aZ, ba]
831847 }
832848 else throw("Strict value is not equal to itself.")
833849 }
834850 }
835851
836852
837853
838-@Callable(ac)
854+@Callable(ag)
839855 func initBTCUSDN () = {
840- let aS = value(ac.payments[0])
841- let aT = aS.amount
842- if ((aS.assetId != o))
856+ let aW = value(ag.payments[0])
857+ let aX = aW.amount
858+ if ((aW.assetId != o))
843859 then throw("Unexpected token")
844860 else {
845- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
846- if ((aU == aU))
861+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
862+ if ((aY == aY))
847863 then {
848- let aV = IntegerEntry(J, aT)
849- let aW = IntegerEntry(K, 0)
850-[aV, aW]
864+ let aZ = IntegerEntry(J, aX)
865+ let ba = IntegerEntry(K, 0)
866+[aZ, ba]
851867 }
852868 else throw("Strict value is not equal to itself.")
853869 }
854870 }
855871
856872
857873
858-@Callable(ac)
874+@Callable(ag)
859875 func initENNOUSDN () = {
860- let aS = value(ac.payments[0])
861- let aT = aS.amount
862- if ((aS.assetId != q))
876+ let aW = value(ag.payments[0])
877+ let aX = aW.amount
878+ if ((aW.assetId != q))
863879 then throw("Unexpected token")
864880 else {
865- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
866- if ((aU == aU))
881+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
882+ if ((aY == aY))
867883 then {
868- let aV = IntegerEntry(L, aT)
869- let aW = IntegerEntry(M, 0)
870-[aV, aW]
884+ let aZ = IntegerEntry(L, aX)
885+ let ba = IntegerEntry(M, 0)
886+[aZ, ba]
871887 }
872888 else throw("Strict value is not equal to itself.")
873889 }
874890 }
875891
876892
877893
878-@Callable(ac)
894+@Callable(ag)
879895 func initWAVESUSDN () = {
880- let aS = value(ac.payments[0])
881- let aT = aS.amount
882- if ((aS.assetId != s))
896+ let aW = value(ag.payments[0])
897+ let aX = aW.amount
898+ if ((aW.assetId != s))
883899 then throw("Unexpected token")
884900 else {
885- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
886- if ((aU == aU))
901+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
902+ if ((aY == aY))
887903 then {
888- let aV = IntegerEntry(N, aT)
889- let aW = IntegerEntry(O, 0)
890-[aV, aW]
904+ let aZ = IntegerEntry(N, aX)
905+ let ba = IntegerEntry(O, 0)
906+[aZ, ba]
891907 }
892908 else throw("Strict value is not equal to itself.")
893909 }
894910 }
895911
896912
897913
898-@Callable(ac)
914+@Callable(ag)
899915 func initLTCUSDN () = {
900- let aS = value(ac.payments[0])
901- let aT = aS.amount
902- if ((aS.assetId != u))
916+ let aW = value(ag.payments[0])
917+ let aX = aW.amount
918+ if ((aW.assetId != u))
903919 then throw("Unexpected token")
904920 else {
905- let aU = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aS])
906- if ((aU == aU))
921+ let aY = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [aW])
922+ if ((aY == aY))
907923 then {
908- let aV = IntegerEntry(P, aT)
909- let aW = IntegerEntry(Q, 0)
910-[aV, aW]
924+ let aZ = IntegerEntry(P, aX)
925+ let ba = IntegerEntry(Q, 0)
926+[aZ, ba]
911927 }
912928 else throw("Strict value is not equal to itself.")
913929 }
914930 }
915931
916932
917933
918-@Callable(ac)
934+@Callable(ag)
919935 func withdraw () = {
920- let aX = value(ac.payments[0])
921- let aT = aX.amount
922- let Y = aX.assetId
923- if ((size(ac.payments) != 1))
936+ let bb = value(ag.payments[0])
937+ let aX = bb.amount
938+ let aa = bb.assetId
939+ if ((size(ag.payments) != 1))
924940 then throw("1 pmnt expd")
925- else if ((Y == d))
941+ else if ((aa == d))
926942 then {
927- let aY = {
928- let ai = assetInfo(d)
929- if ($isInstanceOf(ai, "Asset"))
943+ let bc = {
944+ let af = assetInfo(d)
945+ if ($isInstanceOf(af, "Asset"))
930946 then {
931- let aZ = ai
932- aZ.quantity
947+ let bd = af
948+ bd.quantity
933949 }
934950 else 0
935951 }
936- let ba = valueOrElse(getInteger(this, x), 0)
937- let bb = fraction(ba, R, aY)
938- let bc = fraction(bb, aT, R)
939- let ak = fraction(bc, R, S)
940- let bd = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf", bc], nil)
941- if ((bd == bd))
952+ let be = valueOrElse(getInteger(this, x), 0)
953+ let bf = fraction(be, T, bc)
954+ let bg = fraction(bf, aX, T)
955+ let an = fraction(bg, T, U)
956+ let bh = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf", bg], nil)
957+ if ((bh == bh))
942958 then {
943- let be = ScriptTransfer(Address(T), ak, c)
944- let aJ = ScriptTransfer(ac.caller, (bc - ak), c)
945- let bf = IntegerEntry(x, (ba - bc))
946- let bg = Burn(d, aT)
947-[be, aJ, bf, bg]
959+ let bi = ScriptTransfer(Address(V), an, c)
960+ let aN = ScriptTransfer(ag.caller, (bg - an), c)
961+ let bj = IntegerEntry(x, (be - bg))
962+ let bk = Burn(d, aX)
963+[bi, aN, bj, bk]
948964 }
949965 else throw("Strict value is not equal to itself.")
950966 }
951- else if ((Y == f))
967+ else if ((aa == f))
952968 then {
953- let bh = {
954- let ai = assetInfo(f)
955- if ($isInstanceOf(ai, "Asset"))
969+ let bl = {
970+ let af = assetInfo(f)
971+ if ($isInstanceOf(af, "Asset"))
956972 then {
957- let aZ = ai
958- aZ.quantity
973+ let bd = af
974+ bd.quantity
959975 }
960976 else 0
961977 }
962- let bi = valueOrElse(getInteger(this, A), 0)
963- let bj = fraction(bi, R, bh)
964- let bk = fraction(bj, aT, R)
965- let ak = fraction(bk, R, S)
966- let bl = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["F2AKkA513k5yHEJkLsU6vWxCYYk811GpjLhwEv2WGwZ9", bk], nil)
967- if ((bl == bl))
978+ let bm = valueOrElse(getInteger(this, A), 0)
979+ let bn = fraction(bm, T, bl)
980+ let bo = fraction(bn, aX, T)
981+ let an = fraction(bo, T, U)
982+ let bp = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["F2AKkA513k5yHEJkLsU6vWxCYYk811GpjLhwEv2WGwZ9", bo], nil)
983+ if ((bp == bp))
968984 then {
969- let bm = ScriptTransfer(Address(T), ak, e)
970- let bn = ScriptTransfer(ac.caller, (bk - ak), e)
971- let bo = IntegerEntry(A, (bi - bk))
972- let bp = Burn(f, aT)
973-[bm, bn, bo, bp]
985+ let bq = ScriptTransfer(Address(V), an, e)
986+ let br = ScriptTransfer(ag.caller, (bo - an), e)
987+ let bs = IntegerEntry(A, (bm - bo))
988+ let bt = Burn(f, aX)
989+[bq, br, bs, bt]
974990 }
975991 else throw("Strict value is not equal to itself.")
976992 }
977- else if ((Y == h))
993+ else if ((aa == h))
978994 then {
979- let bq = {
980- let ai = assetInfo(h)
981- if ($isInstanceOf(ai, "Asset"))
995+ let bu = {
996+ let af = assetInfo(h)
997+ if ($isInstanceOf(af, "Asset"))
982998 then {
983- let aZ = ai
984- aZ.quantity
999+ let bd = af
1000+ bd.quantity
9851001 }
9861002 else 0
9871003 }
988- let br = valueOrElse(getInteger(this, C), 0)
989- let bs = fraction(br, R, bq)
990- let bt = fraction(bs, aT, R)
991- let ak = fraction(bt, R, S)
992- let bu = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EK6N7S38xbtBT3SxAqoGdDLCiX6rojX6G169CnSyuE5", bt], nil)
993- if ((bu == bu))
1004+ let bv = valueOrElse(getInteger(this, C), 0)
1005+ let bw = fraction(bv, T, bu)
1006+ let bx = fraction(bw, aX, T)
1007+ let an = fraction(bx, T, U)
1008+ let by = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EK6N7S38xbtBT3SxAqoGdDLCiX6rojX6G169CnSyuE5", bx], nil)
1009+ if ((by == by))
9941010 then {
995- let bv = ScriptTransfer(Address(T), ak, g)
996- let bw = ScriptTransfer(ac.caller, (bt - ak), g)
997- let bx = IntegerEntry(C, (br - bt))
998- let by = Burn(h, aT)
999-[bv, bw, bx, by]
1011+ let bz = ScriptTransfer(Address(V), an, g)
1012+ let bA = ScriptTransfer(ag.caller, (bx - an), g)
1013+ let bB = IntegerEntry(C, (bv - bx))
1014+ let bC = Burn(h, aX)
1015+[bz, bA, bB, bC]
10001016 }
10011017 else throw("Strict value is not equal to itself.")
10021018 }
1003- else if ((Y == j))
1019+ else if ((aa == j))
10041020 then {
1005- let bz = {
1006- let ai = assetInfo(j)
1007- if ($isInstanceOf(ai, "Asset"))
1021+ let bD = {
1022+ let af = assetInfo(j)
1023+ if ($isInstanceOf(af, "Asset"))
10081024 then {
1009- let aZ = ai
1010- aZ.quantity
1025+ let bd = af
1026+ bd.quantity
10111027 }
10121028 else 0
10131029 }
1014- let bA = valueOrElse(getInteger(this, E), 0)
1015- let bB = fraction(bA, R, bz)
1016- let bC = fraction(bB, aT, R)
1017- let ak = fraction(bC, R, S)
1018- let bD = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH", bC], nil)
1019- if ((bD == bD))
1030+ let bE = valueOrElse(getInteger(this, E), 0)
1031+ let bF = fraction(bE, T, bD)
1032+ let bG = fraction(bF, aX, T)
1033+ let an = fraction(bG, T, U)
1034+ let bH = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH", bG], nil)
1035+ if ((bH == bH))
10201036 then {
1021- let bE = ScriptTransfer(Address(T), ak, i)
1022- let bF = ScriptTransfer(ac.caller, (bC - ak), i)
1023- let bG = IntegerEntry(E, (bA - bC))
1024- let bH = Burn(j, aT)
1025-[bE, bF, bG, bH]
1037+ let bI = ScriptTransfer(Address(V), an, i)
1038+ let bJ = ScriptTransfer(ag.caller, (bG - an), i)
1039+ let bK = IntegerEntry(E, (bE - bG))
1040+ let bL = Burn(j, aX)
1041+[bI, bJ, bK, bL]
10261042 }
10271043 else throw("Strict value is not equal to itself.")
10281044 }
1029- else if ((Y == l))
1045+ else if ((aa == l))
10301046 then {
1031- let bI = {
1032- let ai = assetInfo(l)
1033- if ($isInstanceOf(ai, "Asset"))
1047+ let bM = {
1048+ let af = assetInfo(l)
1049+ if ($isInstanceOf(af, "Asset"))
10341050 then {
1035- let aZ = ai
1036- aZ.quantity
1051+ let bd = af
1052+ bd.quantity
10371053 }
10381054 else 0
10391055 }
1040- let bJ = valueOrElse(getInteger(this, G), 0)
1041- let bK = fraction(bJ, R, bI)
1042- let bL = fraction(bK, aT, R)
1043- let ak = fraction(bL, R, S)
1044- let bM = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["E8zHu33GfcNyGLypX77gZiUXfvuZQeaYmiEfsy7VYNwP", bL], nil)
1045- if ((bM == bM))
1056+ let bN = valueOrElse(getInteger(this, G), 0)
1057+ let bO = fraction(bN, T, bM)
1058+ let bP = fraction(bO, aX, T)
1059+ let an = fraction(bP, T, U)
1060+ let bQ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["E8zHu33GfcNyGLypX77gZiUXfvuZQeaYmiEfsy7VYNwP", bP], nil)
1061+ if ((bQ == bQ))
10461062 then {
1047- let bN = ScriptTransfer(Address(T), ak, k)
1048- let bO = ScriptTransfer(ac.caller, (bL - ak), k)
1049- let bP = IntegerEntry(G, (bJ - bL))
1050- let bQ = Burn(l, aT)
1051-[bN, bO, bP, bQ]
1063+ let bR = ScriptTransfer(Address(V), an, k)
1064+ let bS = ScriptTransfer(ag.caller, (bP - an), k)
1065+ let bT = IntegerEntry(G, (bN - bP))
1066+ let bU = Burn(l, aX)
1067+[bR, bS, bT, bU]
10521068 }
10531069 else throw("Strict value is not equal to itself.")
10541070 }
1055- else if ((Y == p))
1071+ else if ((aa == p))
10561072 then {
1057- let bR = {
1058- let ai = assetInfo(p)
1059- if ($isInstanceOf(ai, "Asset"))
1073+ let bV = {
1074+ let af = assetInfo(p)
1075+ if ($isInstanceOf(af, "Asset"))
10601076 then {
1061- let aZ = ai
1062- aZ.quantity
1077+ let bd = af
1078+ bd.quantity
10631079 }
10641080 else 0
10651081 }
1066- let bS = valueOrElse(getInteger(this, J), 0)
1067- let bT = fraction(bS, R, bR)
1068- let bU = fraction(bT, aT, R)
1069- let ak = fraction(bU, R, S)
1070- let bV = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["8WhH5CCJ6NakPvEvAJcizqqD7H6axhupdYHDFumSDwsy", bU], nil)
1071- if ((bV == bV))
1082+ let bW = valueOrElse(getInteger(this, J), 0)
1083+ let bX = fraction(bW, T, bV)
1084+ let bY = fraction(bX, aX, T)
1085+ let an = fraction(bY, T, U)
1086+ let bZ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["8WhH5CCJ6NakPvEvAJcizqqD7H6axhupdYHDFumSDwsy", bY], nil)
1087+ if ((bZ == bZ))
10721088 then {
1073- let bW = ScriptTransfer(Address(T), ak, o)
1074- let bX = ScriptTransfer(ac.caller, (bU - ak), o)
1075- let bY = IntegerEntry(J, (bS - bU))
1076- let bZ = Burn(p, aT)
1077-[bW, bX, bY, bZ]
1089+ let ca = ScriptTransfer(Address(V), an, o)
1090+ let cb = ScriptTransfer(ag.caller, (bY - an), o)
1091+ let cc = IntegerEntry(J, (bW - bY))
1092+ let cd = Burn(p, aX)
1093+[ca, cb, cc, cd]
10781094 }
10791095 else throw("Strict value is not equal to itself.")
10801096 }
1081- else if ((Y == t))
1097+ else if ((aa == t))
10821098 then {
1083- let ca = {
1084- let ai = assetInfo(t)
1085- if ($isInstanceOf(ai, "Asset"))
1099+ let ce = {
1100+ let af = assetInfo(t)
1101+ if ($isInstanceOf(af, "Asset"))
10861102 then {
1087- let aZ = ai
1088- aZ.quantity
1103+ let bd = af
1104+ bd.quantity
10891105 }
10901106 else 0
10911107 }
1092- let cb = valueOrElse(getInteger(this, N), 0)
1093- let cc = fraction(cb, R, ca)
1094- let cd = fraction(cc, aT, R)
1095- let ak = fraction(cd, R, S)
1096- let ce = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1", cd], nil)
1097- if ((ce == ce))
1108+ let cf = valueOrElse(getInteger(this, N), 0)
1109+ let cg = fraction(cf, T, ce)
1110+ let ch = fraction(cg, aX, T)
1111+ let an = fraction(ch, T, U)
1112+ let ci = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1", ch], nil)
1113+ if ((ci == ci))
10981114 then {
1099- let cf = ScriptTransfer(Address(T), ak, s)
1100- let cg = ScriptTransfer(ac.caller, (cd - ak), s)
1101- let ch = IntegerEntry(N, (cb - cd))
1102- let ci = Burn(t, aT)
1103-[cf, cg, ch, ci]
1115+ let cj = ScriptTransfer(Address(V), an, s)
1116+ let ck = ScriptTransfer(ag.caller, (ch - an), s)
1117+ let cl = IntegerEntry(N, (cf - ch))
1118+ let cm = Burn(t, aX)
1119+[cj, ck, cl, cm]
11041120 }
11051121 else throw("Strict value is not equal to itself.")
11061122 }
1107- else if ((Y == r))
1123+ else if ((aa == r))
11081124 then {
1109- let cj = {
1110- let ai = assetInfo(r)
1111- if ($isInstanceOf(ai, "Asset"))
1125+ let cn = {
1126+ let af = assetInfo(r)
1127+ if ($isInstanceOf(af, "Asset"))
11121128 then {
1113- let aZ = ai
1114- aZ.quantity
1129+ let bd = af
1130+ bd.quantity
11151131 }
11161132 else 0
11171133 }
1118- let ck = valueOrElse(getInteger(this, L), 0)
1119- let cl = fraction(ck, R, cj)
1120- let cm = fraction(cl, aT, R)
1121- let ak = fraction(cm, R, S)
1122- let cn = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["HnW33dcEaeUTcgMLd8vHoJR5iAFZ2ngHDAa9E9496kDX", cm], nil)
1123- if ((cn == cn))
1134+ let co = valueOrElse(getInteger(this, L), 0)
1135+ let cp = fraction(co, T, cn)
1136+ let cq = fraction(cp, aX, T)
1137+ let an = fraction(cq, T, U)
1138+ let cr = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["HnW33dcEaeUTcgMLd8vHoJR5iAFZ2ngHDAa9E9496kDX", cq], nil)
1139+ if ((cr == cr))
11241140 then {
1125- let co = ScriptTransfer(Address(T), ak, q)
1126- let cp = ScriptTransfer(ac.caller, (cm - ak), q)
1127- let cq = IntegerEntry(L, (ck - cm))
1128- let cr = Burn(r, aT)
1129-[co, cp, cq, cr]
1141+ let cs = ScriptTransfer(Address(V), an, q)
1142+ let ct = ScriptTransfer(ag.caller, (cq - an), q)
1143+ let cu = IntegerEntry(L, (co - cq))
1144+ let cv = Burn(r, aX)
1145+[cs, ct, cu, cv]
11301146 }
11311147 else throw("Strict value is not equal to itself.")
11321148 }
1133- else if ((Y == n))
1149+ else if ((aa == n))
11341150 then {
1135- let cs = {
1136- let ai = assetInfo(n)
1137- if ($isInstanceOf(ai, "Asset"))
1151+ let cw = {
1152+ let af = assetInfo(n)
1153+ if ($isInstanceOf(af, "Asset"))
11381154 then {
1139- let aZ = ai
1140- aZ.quantity
1155+ let bd = af
1156+ bd.quantity
11411157 }
11421158 else 0
11431159 }
1144- let ct = valueOrElse(getInteger(this, L), 0)
1145- let cu = fraction(ct, R, cs)
1146- let cv = fraction(cu, aT, R)
1147- let ak = fraction(cv, R, S)
1148- let cw = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["AGo49HCtQUghfxHSpUXub3KBaMXyunJmTxQ4azgU5Ax5", cv], nil)
1149- if ((cw == cw))
1160+ let cx = valueOrElse(getInteger(this, L), 0)
1161+ let cy = fraction(cx, T, cw)
1162+ let cz = fraction(cy, aX, T)
1163+ let an = fraction(cz, T, U)
1164+ let cA = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["AGo49HCtQUghfxHSpUXub3KBaMXyunJmTxQ4azgU5Ax5", cz], nil)
1165+ if ((cA == cA))
11501166 then {
1151- let cx = ScriptTransfer(Address(T), ak, m)
1152- let cy = ScriptTransfer(ac.caller, (cv - ak), m)
1153- let cz = IntegerEntry(I, (ct - cv))
1154- let cA = Burn(n, aT)
1155-[cx, cy, cz, cA]
1167+ let cB = ScriptTransfer(Address(V), an, m)
1168+ let cC = ScriptTransfer(ag.caller, (cz - an), m)
1169+ let cD = IntegerEntry(I, (cx - cz))
1170+ let cE = Burn(n, aX)
1171+[cB, cC, cD, cE]
11561172 }
11571173 else throw("Strict value is not equal to itself.")
11581174 }
1159- else if ((Y == v))
1175+ else if ((aa == v))
11601176 then {
1161- let cB = {
1162- let ai = assetInfo(v)
1163- if ($isInstanceOf(ai, "Asset"))
1177+ let cF = {
1178+ let af = assetInfo(v)
1179+ if ($isInstanceOf(af, "Asset"))
11641180 then {
1165- let aZ = ai
1166- aZ.quantity
1181+ let bd = af
1182+ bd.quantity
11671183 }
11681184 else 0
11691185 }
1170- let cC = valueOrElse(getInteger(this, P), 0)
1171- let cD = fraction(cC, R, cB)
1172- let cE = fraction(cD, aT, R)
1173- let ak = fraction(cE, R, S)
1174- let cF = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["CNkqC6GPi888WdJ1EuVtu9JGZ9VHpAn8eTHwR8YZxXbv", cE], nil)
1175- if ((cF == cF))
1186+ let cG = valueOrElse(getInteger(this, P), 0)
1187+ let cH = fraction(cG, T, cF)
1188+ let cI = fraction(cH, aX, T)
1189+ let an = fraction(cI, T, U)
1190+ let cJ = invoke(Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'), "unstake", ["CNkqC6GPi888WdJ1EuVtu9JGZ9VHpAn8eTHwR8YZxXbv", cI], nil)
1191+ if ((cJ == cJ))
11761192 then {
1177- let cG = ScriptTransfer(Address(T), ak, u)
1178- let cH = ScriptTransfer(ac.caller, (cE - ak), u)
1179- let cI = IntegerEntry(P, (cC - cE))
1180- let cJ = Burn(v, aT)
1181-[cG, cH, cI, cJ]
1193+ let cK = ScriptTransfer(Address(V), an, u)
1194+ let cL = ScriptTransfer(ag.caller, (cI - an), u)
1195+ let cM = IntegerEntry(P, (cG - cI))
1196+ let cN = Burn(v, aX)
1197+[cK, cL, cM, cN]
11821198 }
11831199 else throw("Strict value is not equal to itself.")
11841200 }
11851201 else throw("Invalid asset")
11861202 }
11871203
11881204
1189-@Verifier(cK)
1190-func cL () = sigVerify(cK.bodyBytes, cK.proofs[0], cK.senderPublicKey)
1205+@Verifier(cO)
1206+func cP () = sigVerify(cO.bodyBytes, cO.proofs[0], cO.senderPublicKey)
11911207

github/deemru/w8io/3ef1775 
425.53 ms