tx · 2qRzKZdmurowyBEXEwxVC2au5ZwaH61iEi2Ddcc7neey

3MxZ7YNAqigXR5jrgvpb48Uc6B29ouDzQyN:  -0.03700000 Waves

2023.05.23 14:28 [2590562] smart account 3MxZ7YNAqigXR5jrgvpb48Uc6B29ouDzQyN > SELF 0.00000000 Waves

{ "type": 13, "id": "2qRzKZdmurowyBEXEwxVC2au5ZwaH61iEi2Ddcc7neey", "fee": 3700000, "feeAssetId": null, "timestamp": 1684841333903, "version": 2, "chainId": 84, "sender": "3MxZ7YNAqigXR5jrgvpb48Uc6B29ouDzQyN", "senderPublicKey": "HHCdafdi3D2htEYJw8cBoNYC8w76euLWKYENK4kanmGM", "proofs": [ "3SY3pentYxwdRKvQqC8s3iZQv6t51hULXeMj6s68NYThH7TL2ejBMBkRoWpVgtpCrwMTSzmpGUAybwWcQhD2ugbn" ], "script": "base64:BgI1CAISABIFCgMICAESABIDCgEBEgASABIAEgMKAQESAwoBARIAEgASAwoBCBIDCgEIEgMKAQhfAA1rX3RvdGFsU3VwcGx5Ag1rX3RvdGFsU3VwcGx5AA9rX3Jld2FyZEJhbGFuY2UCD2tfcmV3YXJkQmFsYW5jZQAPa19sb2NrZWRCYWxhbmNlAg9rX2xvY2tlZEJhbGFuY2UADWtfZnJlZUJhbGFuY2UCDWtfZnJlZUJhbGFuY2UAD2tfZXhjZXNzQmFsYW5jZQIPa19leGNlc3NCYWxhbmNlAAxrX3ZhdWx0QXNzZXQCDGtfdmF1bHRBc3NldAAUa192YXVsdEFzc2V0RGVjaW1hbHMCFGtfdmF1bHRBc3NldERlY2ltYWxzABRrX21heFNwb3RVdGlsaXphdGlvbgIUa19tYXhTcG90VXRpbGl6YXRpb24ABmtfcmF0ZQIGa19yYXRlABBrX2xhc3RVcGRhdGVUaW1lAhBrX2xhc3RVcGRhdGVUaW1lABZrX3Jld2FyZFBlclRva2VuU3RvcmVkAhZrX3Jld2FyZFBlclRva2VuU3RvcmVkAAxrX3Jld2FyZFJhdGUCDGtfcmV3YXJkUmF0ZQAOa19wZXJpb2RGaW5pc2gCDmtfcGVyaW9kRmluaXNoABRrX3VzZXJSZXdhcmRQZXJUb2tlbgIUa191c2VyUmV3YXJkUGVyVG9rZW4ADGtfdXNlclJld2FyZAIMa191c2VyUmV3YXJkAAlrX2JhbGFuY2UCCWtfYmFsYW5jZQAOa19hdmVyYWdlX3JhdGUCDmtfYXZlcmFnZV9yYXRlABBrX3dpdGhkcmF3X2xpbWl0AhBrX3dpdGhkcmF3X2xpbWl0ABRrX2xhc3Rfd2l0aGRyYXdfZGF0ZQIUa19sYXN0X3dpdGhkcmF3X2RhdGUAFGtfd2l0aGRyYXdfaW5fcGVyaW9kAhRrX3dpdGhkcmF3X2luX3BlcmlvZAANa19pbml0aWFsaXplZAINa19pbml0aWFsaXplZAAUa19jb29yZGluYXRvckFkZHJlc3MCFGtfY29vcmRpbmF0b3JBZGRyZXNzAAVrX2FtbQIFa19hbW0AEmtfZ292ZXJuYW5jZV9hc3NldAILa19nb3ZfYXNzZXQADWtfcXVvdGVfYXNzZXQCDWtfcXVvdGVfYXNzZXQAD2tfYWRtaW5fYWRkcmVzcwIPa19hZG1pbl9hZGRyZXNzABFrX21hbmFnZXJfYWRkcmVzcwIRa19tYW5hZ2VyX2FkZHJlc3MADmtfc3BvdF9hZGRyZXNzAg5rX3Nwb3RfYWRkcmVzcwAUa19jb2xsYXRlcmFsX2FkZHJlc3MCFGtfY29sbGF0ZXJhbF9hZGRyZXNzAQ50b0NvbXBvc2l0ZUtleQIEX2tleQhfYWRkcmVzcwkArAICCQCsAgIFBF9rZXkCAV8FCF9hZGRyZXNzAQtjb29yZGluYXRvcgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQCG0Nvb3JkaW5hdG9yIGFkZHJlc3MgaW52YWxpZAEMYWRtaW5BZGRyZXNzAAkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAUPa19hZG1pbl9hZGRyZXNzAhVBZG1pbiBhZGRyZXNzIG5vdCBzZXQBC2lzV2hpdGVsaXN0AQhfYWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmwgCCQELY29vcmRpbmF0b3IACQEOdG9Db21wb3NpdGVLZXkCBQVrX2FtbQUIX2FkZHJlc3MHAQ9nb3Zlcm5hbmNlQXNzZXQACQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABRJrX2dvdmVybmFuY2VfYXNzZXQCGEdvdmVybmFuY2UgYXNzZXQgbm90IHNldAEKcXVvdGVBc3NldAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBC2Nvb3JkaW5hdG9yAAUNa19xdW90ZV9hc3NldAENdmF1bHRBc3NldFN0cgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQxrX3ZhdWx0QXNzZXQCE1ZhdWx0IGFzc2V0IG5vdCBzZXQBCnZhdWx0QXNzZXQABAtfYXNzZXRJZFN0cgkBDXZhdWx0QXNzZXRTdHIAAwkAAAIFC19hc3NldElkU3RyAgVXQVZFUwUEdW5pdAkA2QQBBQtfYXNzZXRJZFN0cgESdmF1bHRBc3NldERlY2ltYWxzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFFGtfdmF1bHRBc3NldERlY2ltYWxzAhxWYXVsdCBhc3NldCBkZWNpbWFscyBub3Qgc2V0AQ5tYW5hZ2VyQWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAURa19tYW5hZ2VyX2FkZHJlc3MCF01hbmFnZXIgYWRkcmVzcyBub3Qgc2V0AhdNYW5hZ2VyIGFkZHJlc3MgaW52YWxpZAAMREVDSU1BTF9VTklUCQBoAgABCQBoAgkAaAIJAGgCCQBoAgkAaAIJAGgCCQBoAgAKAAoACgAKAAoACgAKAAoACERVUkFUSU9OCQBoAgkAaAIJAGgCAAcAPAA8ABgACk5PX0FERFJFU1MCAAAJTk9fU1RBS0VSAAABEWFzc2V0RnJvbURlY2ltYWxzAQdfYW1vdW50BA1hc3NldERlY2ltYWxzCQESdmF1bHRBc3NldERlY2ltYWxzAAMJAAACBQ1hc3NldERlY2ltYWxzAAYJAGkCBQdfYW1vdW50AGQDCQAAAgUNYXNzZXREZWNpbWFscwAIBQdfYW1vdW50CQACAQIWSW52YWxpZCBhc3NldCBkZWNpbWFscwEPYXNzZXRUb0RlY2ltYWxzAQdfYW1vdW50BA1hc3NldERlY2ltYWxzCQESdmF1bHRBc3NldERlY2ltYWxzAAMJAAACBQ1hc3NldERlY2ltYWxzAAYJAGgCBQdfYW1vdW50AGQDCQAAAgUNYXNzZXREZWNpbWFscwAIBQdfYW1vdW50CQACAQIWSW52YWxpZCBhc3NldCBkZWNpbWFscwEEZGl2ZAICX3gCX3kJAG4EBQJfeAUMREVDSU1BTF9VTklUBQJfeQUISEFMRkVWRU4BBG11bGQCAl94Al95CQBuBAUCX3gFAl95BQxERUNJTUFMX1VOSVQFCEhBTEZFVkVOAQNhYnMBAl94AwkAZgIFAl94AAAFAl94CQEBLQEFAl94AQRtaW52AgJfeAJfeQMJAGYCBQJfeAUCX3kFAl95BQJfeAAPV0lUSERSQVdfUEVSSU9ECQBoAgCAowUA6AcAE1dJVEhEUkFXX1BFUl9QRVJJT0QJAQRkaXZkAgkAaAIAAQUMREVDSU1BTF9VTklUCQBoAgAEBQxERUNJTUFMX1VOSVQBA2ludAEBawkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAWsJAKwCAgINbm8gdmFsdWUgZm9yIAUBawEEaW50MAEBawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFrAAABBGludDEBAWsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBawUMREVDSU1BTF9VTklUAQt0b3RhbFN1cHBseQAJAQRpbnQwAQUNa190b3RhbFN1cHBseQEEcmF0ZQAJAQRpbnQxAQUGa19yYXRlAQliYWxhbmNlT2YBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUJa19iYWxhbmNlBQdfc3Rha2VyAQthdmVyYWdlUmF0ZQEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBQ5rX2F2ZXJhZ2VfcmF0ZQUHX3N0YWtlcgENd2l0aGRyYXdMaW1pdAEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBRBrX3dpdGhkcmF3X2xpbWl0BQdfc3Rha2VyARF3aXRoZHJhd25JblBlcmlvZAEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBRRrX3dpdGhkcmF3X2luX3BlcmlvZAUHX3N0YWtlcgERbGFzdFdpdGhkcmF3bkRhdGUBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUUa19sYXN0X3dpdGhkcmF3X2RhdGUFB19zdGFrZXIBC2ZyZWVCYWxhbmNlAAkBBGludDABBQ1rX2ZyZWVCYWxhbmNlAQ1sb2NrZWRCYWxhbmNlAAkBBGludDABBQ9rX2xvY2tlZEJhbGFuY2UBDWV4Y2Vzc0JhbGFuY2UACQEEaW50MAEFD2tfZXhjZXNzQmFsYW5jZQEUcmV3YXJkUGVyVG9rZW5TdG9yZWQACQEEaW50MAEFFmtfcmV3YXJkUGVyVG9rZW5TdG9yZWQBDmxhc3RVcGRhdGVUaW1lAAkBBGludDABBRBrX2xhc3RVcGRhdGVUaW1lAQpyZXdhcmRSYXRlAAkBBGludDABBQxrX3Jld2FyZFJhdGUBDHBlcmlvZEZpbmlzaAAJAQRpbnQwAQUOa19wZXJpb2RGaW5pc2gBDXJld2FyZEJhbGFuY2UACQEEaW50MAEFD2tfcmV3YXJkQmFsYW5jZQEHcmV3YXJkcwEHX3N0YWtlcgkBBGludDABCQEOdG9Db21wb3NpdGVLZXkCBQxrX3VzZXJSZXdhcmQFB19zdGFrZXIBFnVzZXJSZXdhcmRQZXJUb2tlblBhaWQBB19zdGFrZXIJAQRpbnQwAQkBDnRvQ29tcG9zaXRlS2V5AgUUa191c2VyUmV3YXJkUGVyVG9rZW4FB19zdGFrZXIBEm1heFNwb3RVdGlsaXphdGlvbgAJAQRpbnQwAQUUa19tYXhTcG90VXRpbGl6YXRpb24BC2luaXRpYWxpemVkAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ1rX2luaXRpYWxpemVkBwEQY3VycmVudFRpbWVzdGFtcAAIBQlsYXN0QmxvY2sJdGltZXN0YW1wARNjdXJyZW50VGltZXN0YW1wU2VjAAkAaQIJARBjdXJyZW50VGltZXN0YW1wAADoBwEUZ2V0V2l0aGRyYXdMaW1pdExlZnQBB19zdGFrZXIEC2N1cnJlbnREYXRlCQEQY3VycmVudFRpbWVzdGFtcAAEEGxhc3RXaXRoZHJhd0RhdGUJARFsYXN0V2l0aGRyYXduRGF0ZQEFB19zdGFrZXIECyR0MDYyNjc2NTg4AwkAZgIJAGUCBQtjdXJyZW50RGF0ZQUQbGFzdFdpdGhkcmF3RGF0ZQUPV0lUSERSQVdfUEVSSU9ECQCVCgMFC2N1cnJlbnREYXRlCQENd2l0aGRyYXdMaW1pdAEFB19zdGFrZXIAAAkAlQoDBRBsYXN0V2l0aGRyYXdEYXRlCQBlAgkBDXdpdGhkcmF3TGltaXQBBQdfc3Rha2VyCQERd2l0aGRyYXduSW5QZXJpb2QBBQdfc3Rha2VyCQERd2l0aGRyYXduSW5QZXJpb2QBBQdfc3Rha2VyBBRuZXdMYXN0V2l0aGRyYXduRGF0ZQgFCyR0MDYyNjc2NTg4Al8xBBF3aXRoZHJhd0xpbWl0TGVmdAgFCyR0MDYyNjc2NTg4Al8yBBhhbHJlYWR5V2l0aGRyYXduSW5QZXJpb2QIBQskdDA2MjY3NjU4OAJfMwkAlQoDBRRuZXdMYXN0V2l0aGRyYXduRGF0ZQURd2l0aGRyYXdMaW1pdExlZnQFGGFscmVhZHlXaXRoZHJhd25JblBlcmlvZAEOY29tcHV0ZU5ld1JhdGUBE19hbW91bnRPZlF1b3RlQXNzZXQEB25ld1JhdGUDCQBmAgkBC3RvdGFsU3VwcGx5AAAACQEEZGl2ZAIJAGQCCQELZnJlZUJhbGFuY2UABRNfYW1vdW50T2ZRdW90ZUFzc2V0CQELdG90YWxTdXBwbHkABQxERUNJTUFMX1VOSVQFB25ld1JhdGUBGGxhc3RUaW1lUmV3YXJkQXBwbGljYWJsZQAJAQRtaW52AgkBE2N1cnJlbnRUaW1lc3RhbXBTZWMACQEMcGVyaW9kRmluaXNoAAEOcmV3YXJkUGVyVG9rZW4BDV9iYWxhbmNlRGVsdGEDCQAAAgkAZAIJAQt0b3RhbFN1cHBseQAFDV9iYWxhbmNlRGVsdGEAAAkBFHJld2FyZFBlclRva2VuU3RvcmVkAAQMdGltZUludGVydmFsCQBlAgkBGGxhc3RUaW1lUmV3YXJkQXBwbGljYWJsZQAJAQ5sYXN0VXBkYXRlVGltZQAEEmFjdHVhbFRpbWVJbnRlcnZhbAMJAGYCAAAFDHRpbWVJbnRlcnZhbAAABQx0aW1lSW50ZXJ2YWwEBGRpZmYJAQRkaXZkAgkAaAIJAQpyZXdhcmRSYXRlAAUSYWN0dWFsVGltZUludGVydmFsCQBkAgkBC3RvdGFsU3VwcGx5AAUNX2JhbGFuY2VEZWx0YQkAZAIJARRyZXdhcmRQZXJUb2tlblN0b3JlZAAFBGRpZmYBBmVhcm5lZAIHX3N0YWtlcg1fYmFsYW5jZURlbHRhBAtyZXdhcmREZWx0YQkAZQIJAQ5yZXdhcmRQZXJUb2tlbgEFDV9iYWxhbmNlRGVsdGEJARZ1c2VyUmV3YXJkUGVyVG9rZW5QYWlkAQUHX3N0YWtlcgkAZAIJAQRtdWxkAgkAZAIJAQliYWxhbmNlT2YBBQdfc3Rha2VyBQ1fYmFsYW5jZURlbHRhBQtyZXdhcmREZWx0YQkBB3Jld2FyZHMBBQdfc3Rha2VyAQx1cGRhdGVSZXdhcmQCB19zdGFrZXINX2JhbGFuY2VEZWx0YQQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJAQ5yZXdhcmRQZXJUb2tlbgEFDV9iYWxhbmNlRGVsdGEEEW5ld0xhc3RVcGRhdGVUaW1lCQETY3VycmVudFRpbWVzdGFtcFNlYwAECyR0MDc4MTA4MDAyAwkBAiE9AgUHX3N0YWtlcgIACQCUCgIJAQZlYXJuZWQCBQdfc3Rha2VyBQ1fYmFsYW5jZURlbHRhBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkAlAoCAAAAAAQMc3Rha2VyRWFybmVkCAULJHQwNzgxMDgwMDICXzEEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFCyR0MDc4MTA4MDAyAl8yCQCWCgQFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkBRFuZXdMYXN0VXBkYXRlVGltZQUMc3Rha2VyRWFybmVkBRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQBEXVwZGF0ZVVzZXJCYWxhbmNlAgVfdXNlcgdfY2hhbmdlAwkAZwIJAGQCCQEJYmFsYW5jZU9mAQUFX3VzZXIFB19jaGFuZ2UAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUJa19iYWxhbmNlBQVfdXNlcgkAZAIJAQliYWxhbmNlT2YBBQVfdXNlcgUHX2NoYW5nZQUDbmlsCQACAQkArAICCQCsAgIJAKwCAgItVmF1bHQ6IGNhbiBub3QgdXBkYXRlIHVzZXIgYmFsYW5jZS4gQmFsYW5jZTogCQCkAwEJAQliYWxhbmNlT2YBBQVfdXNlcgIJIGNoYW5nZTogCQCkAwEFB19jaGFuZ2UBFHNldFVzZXJXaXRoZHJhd0xpbWl0AgVfdXNlcgVfcmF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUQa193aXRoZHJhd19saW1pdAUFX3VzZXIFBV9yYXRlBQNuaWwBEnNldFVzZXJBdmVyYWdlUmF0ZQIFX3VzZXIFX3JhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFDmtfYXZlcmFnZV9yYXRlBQVfdXNlcgUFX3JhdGUFA25pbAERdXBkYXRlRnJlZUJhbGFuY2UBB19jaGFuZ2UEB2JhbGFuY2UJAQtmcmVlQmFsYW5jZQADCQBnAgkAZAIFB2JhbGFuY2UFB19jaGFuZ2UAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa19mcmVlQmFsYW5jZQkAZAIFB2JhbGFuY2UFB19jaGFuZ2UFA25pbAkAAgEJAKwCAgkArAICCQCsAgICLVZhdWx0OiBjYW4gbm90IHVwZGF0ZSBmcmVlIGJhbGFuY2UuIEJhbGFuY2U6IAkApAMBBQdiYWxhbmNlAgkgY2hhbmdlOiAJAKQDAQUHX2NoYW5nZQETdXBkYXRlTG9ja2VkQmFsYW5jZQEHX2NoYW5nZQQHYmFsYW5jZQkBDWxvY2tlZEJhbGFuY2UAAwkAZwIJAGQCBQdiYWxhbmNlBQdfY2hhbmdlAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tfbG9ja2VkQmFsYW5jZQkAZAIFB2JhbGFuY2UFB19jaGFuZ2UFA25pbAkAAgEJAKwCAgkArAICCQCsAgICL1ZhdWx0OiBjYW4gbm90IHVwZGF0ZSBsb2NrZWQgYmFsYW5jZS4gQmFsYW5jZTogCQCkAwEFB2JhbGFuY2UCCSBjaGFuZ2U6IAkApAMBBQdfY2hhbmdlARN1cGRhdGVFeGNlc3NCYWxhbmNlAQdfY2hhbmdlBAxuZXdJbWJhbGFuY2UJAGQCCQENZXhjZXNzQmFsYW5jZQAFB19jaGFuZ2UED3V0aWxpemF0aW9uUmF0ZQkBBGRpdmQCCQEDYWJzAQUMbmV3SW1iYWxhbmNlCQELZnJlZUJhbGFuY2UAAwkAZgIJARJtYXhTcG90VXRpbGl6YXRpb24ABQ91dGlsaXphdGlvblJhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tfZXhjZXNzQmFsYW5jZQUMbmV3SW1iYWxhbmNlBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICL1ZhdWx0OiBjYW4gbm90IHVwZGF0ZSBleGNlc3MgYmFsYW5jZS4gQmFsYW5jZTogCQCkAwEJAQ1leGNlc3NCYWxhbmNlAAIJIGNoYW5nZTogCQCkAwEFB19jaGFuZ2UCEyB1dGlsaXphdGlvbiByYXRlOiAJAKQDAQUPdXRpbGl6YXRpb25SYXRlAhcgbWF4IHV0aWxpemF0aW9uIHJhdGU6IAkApAMBCQESbWF4U3BvdFV0aWxpemF0aW9uAAERdXBkYXRlVG90YWxTdXBwbHkBB19jaGFuZ2UJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtfdG90YWxTdXBwbHkJAGQCCQELdG90YWxTdXBwbHkABQdfY2hhbmdlBQNuaWwBCnVwZGF0ZVJhdGUBBV9yYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQZrX3JhdGUFBV9yYXRlBQNuaWwBFXNldFVzZXJXaXRoZHJhd1BhcmFtcwMFX3VzZXIRX2xhc3RXaXRoZHJhd0RhdGUKX3dpdGhkcmF3bgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUUa19sYXN0X3dpdGhkcmF3X2RhdGUFBV91c2VyBRFfbGFzdFdpdGhkcmF3RGF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUUa193aXRoZHJhd19pbl9wZXJpb2QFBV91c2VyBQpfd2l0aGRyYXduBQNuaWwBE3VwZGF0ZVJld2FyZEJhbGFuY2UBBl9kZWx0YQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa19yZXdhcmRCYWxhbmNlCQBkAgkBDXJld2FyZEJhbGFuY2UABQZfZGVsdGEFA25pbAEQdXBkYXRlUmV3YXJkUmF0ZQELX3Jld2FyZFJhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtfcmV3YXJkUmF0ZQULX3Jld2FyZFJhdGUFA25pbAEKdXBkYXRlVGltZQIPX2xhc3RVcGRhdGVUaW1lDV9wZXJpb2RGaW5pc2gJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtfbGFzdFVwZGF0ZVRpbWUFD19sYXN0VXBkYXRlVGltZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa19wZXJpb2RGaW5pc2gFDV9wZXJpb2RGaW5pc2gFA25pbAEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBFV9yZXdhcmRQZXJUb2tlblN0b3JlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUWa19yZXdhcmRQZXJUb2tlblN0b3JlZAUVX3Jld2FyZFBlclRva2VuU3RvcmVkBQNuaWwBEXVwZGF0ZVVzZXJSZXdhcmRzAwdfc3Rha2VyB19yZXdhcmQTX3VzZXJSZXdhcmRQZXJUb2tlbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUMa191c2VyUmV3YXJkBQdfc3Rha2VyBQdfcmV3YXJkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBRRrX3VzZXJSZXdhcmRQZXJUb2tlbgUHX3N0YWtlcgUTX3VzZXJSZXdhcmRQZXJUb2tlbgUDbmlsDgFpAQdtaWdyYXRlAAMJAQIhPQIIBQFpBmNhbGxlcgkBDGFkbWluQWRkcmVzcwAJAAIBAhpJbnZhbGlkIG1pZ3JhdGUgcGFyYW1ldGVycwQLX3ZhdWx0QXNzZXQJANgEAQkBCnF1b3RlQXNzZXQABA1hc3NldERlY2ltYWxzAwkAAAIFC192YXVsdEFzc2V0AgVXQVZFUwAIBARpbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQtfdmF1bHRBc3NldAkArAICAhJJbnZhbGlkIHRva2VuIGlkOiAFC192YXVsdEFzc2V0CAUEaW5mbwhkZWNpbWFscwkAzAgCCQELU3RyaW5nRW50cnkCBQxrX3ZhdWx0QXNzZXQFC192YXVsdEFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrX3ZhdWx0QXNzZXREZWNpbWFscwUNYXNzZXREZWNpbWFscwkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa19tYXhTcG90VXRpbGl6YXRpb24AAAUDbmlsAWkBCmluaXRpYWxpemUDDF9jb29yZGluYXRvcgtfdmF1bHRBc3NldBNfbWF4U3BvdFV0aWxpemF0aW9uAwMDAwkBC2luaXRpYWxpemVkAAYJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwYJAGYCAAAFE19tYXhTcG90VXRpbGl6YXRpb24GCQBmAgUTX21heFNwb3RVdGlsaXphdGlvbgUMREVDSU1BTF9VTklUCQACAQIUVW5hYmxlIHRvIGluaXRpYWxpemUEDWFzc2V0RGVjaW1hbHMDCQAAAgULX3ZhdWx0QXNzZXQCBVdBVkVTAAgEBGluZm8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFC192YXVsdEFzc2V0CQCsAgICEkludmFsaWQgdG9rZW4gaWQ6IAULX3ZhdWx0QXNzZXQIBQRpbmZvCGRlY2ltYWxzCQDMCAIJAQtTdHJpbmdFbnRyeQIFFGtfY29vcmRpbmF0b3JBZGRyZXNzCQClCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQxfY29vcmRpbmF0b3ICG0ludmFsaWQgY29vcmRpbmF0b3IgYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBQxrX3ZhdWx0QXNzZXQFC192YXVsdEFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrX3ZhdWx0QXNzZXREZWNpbWFscwUNYXNzZXREZWNpbWFscwkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa19tYXhTcG90VXRpbGl6YXRpb24FE19tYXhTcG90VXRpbGl6YXRpb24JAMwIAgkBDEJvb2xlYW5FbnRyeQIFDWtfaW5pdGlhbGl6ZWQGBQNuaWwBaQEFc3Rha2UABAdfc3Rha2VyCQClCAEIBQFpBmNhbGxlcgQHX2Ftb3VudAkBD2Fzc2V0VG9EZWNpbWFscwEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwMDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQp2YXVsdEFzc2V0AAYJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECFUludmFsaWQgY2FsbCB0byBzdGFrZQQNJHQwMTMxNDcxMzM3NgkBDHVwZGF0ZVJld2FyZAIFB19zdGFrZXIAAAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQIBQ0kdDAxMzE0NzEzMzc2Al8xBBFuZXdMYXN0VXBkYXRlVGltZQgFDSR0MDEzMTQ3MTMzNzYCXzIEDHN0YWtlckVhcm5lZAgFDSR0MDEzMTQ3MTMzNzYCXzMEGHN0YWtlclJld2FyZFBlclRva2VuUGFpZAgFDSR0MDEzMTQ3MTMzNzYCXzQEC2N1cnJlbnRSYXRlCQEEcmF0ZQAED3ByZXZBdmVyYWdlUmF0ZQkBC2F2ZXJhZ2VSYXRlAQUHX3N0YWtlcgQHdkFtb3VudAkBBGRpdmQCBQdfYW1vdW50BQtjdXJyZW50UmF0ZQQObmV3QXZlcmFnZVJhdGUJAQRkaXZkAgkAZAIJAQRtdWxkAgUHdkFtb3VudAULY3VycmVudFJhdGUJAQRtdWxkAgkBCWJhbGFuY2VPZgEFB19zdGFrZXIFD3ByZXZBdmVyYWdlUmF0ZQkAZAIFB3ZBbW91bnQJAQliYWxhbmNlT2YBBQdfc3Rha2VyBA9uZXdUb3RhbEJhbGFuY2UJAGQCBQd2QW1vdW50CQEJYmFsYW5jZU9mAQUHX3N0YWtlcgQQbmV3V2l0aGRyYXdMaW1pdAkBBG11bGQCBQ9uZXdUb3RhbEJhbGFuY2UFE1dJVEhEUkFXX1BFUl9QRVJJT0QEBXN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBCnZhdWx0QXNzZXQACQERYXNzZXRGcm9tRGVjaW1hbHMBBQdfYW1vdW50BQNuaWwDCQAAAgUFc3Rha2UFBXN0YWtlCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJARF1cGRhdGVVc2VyUmV3YXJkcwMFB19zdGFrZXIFDHN0YWtlckVhcm5lZAUYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBCnVwZGF0ZVRpbWUCBRFuZXdMYXN0VXBkYXRlVGltZQkBDHBlcmlvZEZpbmlzaAAJARF1cGRhdGVGcmVlQmFsYW5jZQEFB19hbW91bnQJARF1cGRhdGVVc2VyQmFsYW5jZQIFB19zdGFrZXIFB3ZBbW91bnQJARJzZXRVc2VyQXZlcmFnZVJhdGUCBQdfc3Rha2VyBQ5uZXdBdmVyYWdlUmF0ZQkBFHNldFVzZXJXaXRoZHJhd0xpbWl0AgUHX3N0YWtlcgUQbmV3V2l0aGRyYXdMaW1pdAkBEXVwZGF0ZVRvdGFsU3VwcGx5AQUHdkFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQd1blN0YWtlAQdfYW1vdW50BAdfc3Rha2VyCQClCAEIBQFpBmNhbGxlcgQSYW1vdW50T2ZRdW90ZUFzc2V0CQEPYXNzZXRUb0RlY2ltYWxzAQUHX2Ftb3VudAMDAwkBAiE9AggFAWkIcGF5bWVudHMFA25pbAYJAGcCAAAFEmFtb3VudE9mUXVvdGVBc3NldAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECF0ludmFsaWQgY2FsbCB0byB1blN0YWtlBA0kdDAxNDg4NDE1MTAwCQEMdXBkYXRlUmV3YXJkAgUHX3N0YWtlcgAABBduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAgFDSR0MDE0ODg0MTUxMDACXzEEEW5ld0xhc3RVcGRhdGVUaW1lCAUNJHQwMTQ4ODQxNTEwMAJfMgQMc3Rha2VyRWFybmVkCAUNJHQwMTQ4ODQxNTEwMAJfMwQYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCAUNJHQwMTQ4ODQxNTEwMAJfNAQNJHQwMTUxMDcxNTI3NAkBFGdldFdpdGhkcmF3TGltaXRMZWZ0AQUHX3N0YWtlcgQUbmV3TGFzdFdpdGhkcmF3bkRhdGUIBQ0kdDAxNTEwNzE1Mjc0Al8xBBF3aXRoZHJhd0xpbWl0TGVmdAgFDSR0MDE1MTA3MTUyNzQCXzIEGGFscmVhZHlXaXRoZHJhd25JblBlcmlvZAgFDSR0MDE1MTA3MTUyNzQCXzMEB3ZBbW91bnQJAQRkaXZkAgUSYW1vdW50T2ZRdW90ZUFzc2V0CQEEcmF0ZQADCQBmAgUHdkFtb3VudAURd2l0aGRyYXdMaW1pdExlZnQJAAIBAixJbnZhbGlkIGNhbGwgdG8gdW5TdGFrZTogd2l0aGRyYXcgb3ZlciBsaW1pdAQUbmV3V2l0aGRyYXduSW5QZXJpb2QJAGQCBRhhbHJlYWR5V2l0aGRyYXduSW5QZXJpb2QFB3ZBbW91bnQDCQBmAgUSYW1vdW50T2ZRdW90ZUFzc2V0CQELZnJlZUJhbGFuY2UACQACAQIoSW52YWxpZCBjYWxsIHRvIHVuU3Rha2U6IGJhbGFuY2UgdG9vIGxvdwQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgh3aXRoZHJhdwkAzAgCCQENdmF1bHRBc3NldFN0cgAJAMwIAgkBEWFzc2V0RnJvbURlY2ltYWxzAQUSYW1vdW50T2ZRdW90ZUFzc2V0BQNuaWwFA25pbAMJAAACBQd1bnN0YWtlBQd1bnN0YWtlCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJARF1cGRhdGVVc2VyUmV3YXJkcwMFB19zdGFrZXIFDHN0YWtlckVhcm5lZAUYc3Rha2VyUmV3YXJkUGVyVG9rZW5QYWlkCQEadXBkYXRlUmV3YXJkUGVyVG9rZW5TdG9yZWQBBRduZXdSZXdhcmRQZXJUb2tlblN0b3JlZAkBCnVwZGF0ZVRpbWUCBRFuZXdMYXN0VXBkYXRlVGltZQkBDHBlcmlvZEZpbmlzaAAJARF1cGRhdGVGcmVlQmFsYW5jZQEJAQEtAQUSYW1vdW50T2ZRdW90ZUFzc2V0CQERdXBkYXRlVXNlckJhbGFuY2UCBQdfc3Rha2VyCQEBLQEFB3ZBbW91bnQJARF1cGRhdGVUb3RhbFN1cHBseQEJAQEtAQUHdkFtb3VudAkBFXNldFVzZXJXaXRoZHJhd1BhcmFtcwMFB19zdGFrZXIFFG5ld0xhc3RXaXRoZHJhd25EYXRlBRRuZXdXaXRoZHJhd25JblBlcmlvZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJARFhc3NldEZyb21EZWNpbWFscwEFEmFtb3VudE9mUXVvdGVBc3NldAkBCnZhdWx0QXNzZXQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEPd2l0aGRyYXdSZXdhcmRzAAQHX3N0YWtlcgkApQgBCAUBaQZjYWxsZXIEDSR0MDE2NzkxMTY5MzYJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAAEF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCAUNJHQwMTY3OTExNjkzNgJfMQQRbmV3TGFzdFVwZGF0ZVRpbWUIBQ0kdDAxNjc5MTE2OTM2Al8yBAxzdGFrZXJFYXJuZWQIBQ0kdDAxNjc5MTE2OTM2Al8zBBhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQIBQ0kdDAxNjc5MTE2OTM2Al80AwMJAGcCAAAFDHN0YWtlckVhcm5lZAYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECEE5vIHJld2FyZDogVmF1bHQJAM4IAgkAzggCCQDOCAIJAM4IAgkBEXVwZGF0ZVVzZXJSZXdhcmRzAwUHX3N0YWtlcgAABRhzdGFrZXJSZXdhcmRQZXJUb2tlblBhaWQJARp1cGRhdGVSZXdhcmRQZXJUb2tlblN0b3JlZAEFF25ld1Jld2FyZFBlclRva2VuU3RvcmVkCQEKdXBkYXRlVGltZQIFEW5ld0xhc3RVcGRhdGVUaW1lCQEMcGVyaW9kRmluaXNoAAkBE3VwZGF0ZVJld2FyZEJhbGFuY2UBCQEBLQEFDHN0YWtlckVhcm5lZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDHN0YWtlckVhcm5lZAkBD2dvdmVybmFuY2VBc3NldAAFA25pbAFpAQdhZGRGcmVlAAQHX2Ftb3VudAkBD2Fzc2V0VG9EZWNpbWFscwEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwMDAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQEKdmF1bHRBc3NldAAGCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEBIQEJAQtpbml0aWFsaXplZAAGCQEBIQEDCQELaXNXaGl0ZWxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAAACCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MACQACAQIWSW52YWxpZCBhZGRGcmVlIHBhcmFtcwQHbmV3UmF0ZQkBDmNvbXB1dGVOZXdSYXRlAQUHX2Ftb3VudAQFc3Rha2UJAPwHBAkBDm1hbmFnZXJBZGRyZXNzAAIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKdmF1bHRBc3NldAAJARFhc3NldEZyb21EZWNpbWFscwEFB19hbW91bnQFA25pbAMJAAACBQVzdGFrZQUFc3Rha2UJAM4IAgkBEXVwZGF0ZUZyZWVCYWxhbmNlAQUHX2Ftb3VudAkBCnVwZGF0ZVJhdGUBBQduZXdSYXRlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCWFkZExvY2tlZAAEB19hbW91bnQJAQ9hc3NldFRvRGVjaW1hbHMBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMDAwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBCnZhdWx0QXNzZXQABgkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABBgkBASEBCQELaW5pdGlhbGl6ZWQABgkBASEBAwkBC2lzV2hpdGVsaXN0AQkApQgBCAUBaQZjYWxsZXIGCQAAAggFAWkGY2FsbGVyCQEMYWRtaW5BZGRyZXNzAAkAAgECGEludmFsaWQgYWRkTG9ja2VkIHBhcmFtcwQHdW5zdGFrZQkA/AcECQEObWFuYWdlckFkZHJlc3MAAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQp2YXVsdEFzc2V0AAkBEWFzc2V0RnJvbURlY2ltYWxzAQUHX2Ftb3VudAUDbmlsAwkAAAIFB3Vuc3Rha2UFB3Vuc3Rha2UJARN1cGRhdGVMb2NrZWRCYWxhbmNlAQUHX2Ftb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVleGNoYW5nZUZyZWVBbmRMb2NrZWQBB19hbW91bnQDAwkBASEBCQELaW5pdGlhbGl6ZWQABgMJAQEhAQkBC2lzV2hpdGVsaXN0AQkApQgBCAUBaQZjYWxsZXIJAQIhPQIIBQFpBmNhbGxlcgkBDGFkbWluQWRkcmVzcwAHCQACAQIkSW52YWxpZCBleGNoYW5nZUZyZWVBbmRMb2NrZWQgcGFyYW1zBBJhbW91bnRPZlF1b3RlQXNzZXQJAQ9hc3NldFRvRGVjaW1hbHMBBQdfYW1vdW50BAduZXdSYXRlCQEOY29tcHV0ZU5ld1JhdGUBCQEBLQEFEmFtb3VudE9mUXVvdGVBc3NldAkAzggCCQDOCAIJARN1cGRhdGVMb2NrZWRCYWxhbmNlAQUSYW1vdW50T2ZRdW90ZUFzc2V0CQERdXBkYXRlRnJlZUJhbGFuY2UBCQEBLQEFEmFtb3VudE9mUXVvdGVBc3NldAkBCnVwZGF0ZVJhdGUBBQduZXdSYXRlAWkBDndpdGhkcmF3TG9ja2VkAQdfYW1vdW50AwMDCQEBIQEJAQtpbml0aWFsaXplZAAGCQBnAgAABQdfYW1vdW50BgkBASEBCQELaXNXaGl0ZWxpc3QBCQClCAEIBQFpBmNhbGxlcgkAAgECHUludmFsaWQgd2l0aGRyYXdMb2NrZWQgcGFyYW1zBBJhbW91bnRPZlF1b3RlQXNzZXQJAQ9hc3NldFRvRGVjaW1hbHMBBQdfYW1vdW50BAd1bnN0YWtlCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACCHdpdGhkcmF3CQDMCAIJAQ12YXVsdEFzc2V0U3RyAAkAzAgCCQERYXNzZXRGcm9tRGVjaW1hbHMBBRJhbW91bnRPZlF1b3RlQXNzZXQFA25pbAUDbmlsAwkAAAIFB3Vuc3Rha2UFB3Vuc3Rha2UJAM4IAgkBE3VwZGF0ZUxvY2tlZEJhbGFuY2UBCQEBLQEFEmFtb3VudE9mUXVvdGVBc3NldAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJARFhc3NldEZyb21EZWNpbWFscwEFEmFtb3VudE9mUXVvdGVBc3NldAkBCnZhdWx0QXNzZXQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWRkUmV3YXJkcwADAwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBD2dvdmVybmFuY2VBc3NldAAGCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEBIQEJAQtpbml0aWFsaXplZAAJAAIBAhlJbnZhbGlkIGFkZFJld2FyZHMgcGFyYW1zBAdfcmV3YXJkCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQICQEMdXBkYXRlUmV3YXJkAgUKTk9fQUREUkVTUwUJTk9fU1RBS0VSAl8xBAl0aW1lc3RhbXAJARNjdXJyZW50VGltZXN0YW1wU2VjAAQNbmV3UmV3YXJkUmF0ZQMJAGYCBQl0aW1lc3RhbXAJAQxwZXJpb2RGaW5pc2gACQBpAgUHX3Jld2FyZAUIRFVSQVRJT04EDXJlbWFpbmluZ1RpbWUJAGUCCQEMcGVyaW9kRmluaXNoAAUJdGltZXN0YW1wBAhsZWZ0b3ZlcgkAaAIJAQpyZXdhcmRSYXRlAAUNcmVtYWluaW5nVGltZQkAaQIJAGQCBQdfcmV3YXJkBQhsZWZ0b3ZlcgUIRFVSQVRJT04JAM4IAgkAzggCCQDOCAIJARB1cGRhdGVSZXdhcmRSYXRlAQUNbmV3UmV3YXJkUmF0ZQkBGnVwZGF0ZVJld2FyZFBlclRva2VuU3RvcmVkAQUXbmV3UmV3YXJkUGVyVG9rZW5TdG9yZWQJARN1cGRhdGVSZXdhcmRCYWxhbmNlAQUHX3Jld2FyZAkBCnVwZGF0ZVRpbWUCBQl0aW1lc3RhbXAJAGQCBQl0aW1lc3RhbXAFCERVUkFUSU9OAWkBCmFja1Jld2FyZHMABApwcm9maXRSZXNwCQD8BwQJAQ5tYW5hZ2VyQWRkcmVzcwACC2NsYWltUHJvZml0CQDMCAIJAQ12YXVsdEFzc2V0U3RyAAUDbmlsBQNuaWwDCQAAAgUKcHJvZml0UmVzcAUKcHJvZml0UmVzcAQGcHJvZml0BAckbWF0Y2gwBQpwcm9maXRSZXNwAwkAAQIFByRtYXRjaDACA0ludAQBcAUHJG1hdGNoMAkBD2Fzc2V0VG9EZWNpbWFscwEFAXAJAAIBAhxJbnZhbGlkIGNsYWltUHJvZml0IHJlc3BvbnNlBAZyZXN1bHQDCQBmAgUGcHJvZml0AAAEB25ld1JhdGUJAQ5jb21wdXRlTmV3UmF0ZQEFBnByb2ZpdAQFc3Rha2UJAPwHBAkBDm1hbmFnZXJBZGRyZXNzAAIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKdmF1bHRBc3NldAAJARFhc3NldEZyb21EZWNpbWFscwEFBnByb2ZpdAUDbmlsAwkAAAIFBXN0YWtlBQVzdGFrZQkAzggCCQERdXBkYXRlRnJlZUJhbGFuY2UBBQZwcm9maXQJAQp1cGRhdGVSYXRlAQUHbmV3UmF0ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsAwkAAAIFBnJlc3VsdAUGcmVzdWx0BQZyZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELdmlld19yZXdhcmQBB19zdGFrZXIEB2JhbGFuY2UJAQliYWxhbmNlT2YBBQdfc3Rha2VyBA9kZXBvc2l0ZWRBbW91bnQJAQRtdWxkAgkBC2F2ZXJhZ2VSYXRlAQUHX3N0YWtlcgUHYmFsYW5jZQQNY3VycmVudEFtb3VudAkBBG11bGQCCQEEcmF0ZQAFB2JhbGFuY2UEC2Vhcm5lZFF1b3RlCQBlAgUNY3VycmVudEFtb3VudAUPZGVwb3NpdGVkQW1vdW50CQACAQkApAMBBQtlYXJuZWRRdW90ZQFpARJ2aWV3X3N0YWtpbmdSZXdhcmQBB19zdGFrZXIEDHN0YWtlckVhcm5lZAgJAQx1cGRhdGVSZXdhcmQCBQdfc3Rha2VyAAACXzMJAAIBCQCkAwEJARFhc3NldEZyb21EZWNpbWFscwEFDHN0YWtlckVhcm5lZAFpARJ2aWV3X3dpdGhkcmF3TGltaXQBB19zdGFrZXIEEXdpdGhkcmF3TGltaXRMZWZ0CAkBFGdldFdpdGhkcmF3TGltaXRMZWZ0AQUHX3N0YWtlcgJfMgQMbGltaXRJbkFzc2V0CQERYXNzZXRGcm9tRGVjaW1hbHMBCQEEbXVsZAIFEXdpdGhkcmF3TGltaXRMZWZ0CQEEcmF0ZQAJAAIBCQCkAwEFDGxpbWl0SW5Bc3NldAECdHgBBnZlcmlmeQAEDmNvb3JkaW5hdG9yU3RyCQCdCAIFBHRoaXMFFGtfY29vcmRpbmF0b3JBZGRyZXNzAwkBCWlzRGVmaW5lZAEFDmNvb3JkaW5hdG9yU3RyBAVhZG1pbgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBBQ5jb29yZGluYXRvclN0cgUPa19hZG1pbl9hZGRyZXNzAwkBCWlzRGVmaW5lZAEFBWFkbWluCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFBWFkbWluCQCsAgIJAKwCAgkArAICAgdzdGF0dXNfCQClCAEFBHRoaXMCAV8JANgEAQgFAnR4AmlkBwkAAgECLnVuYWJsZSB0byB2ZXJpZnk6IGFkbWluIG5vdCBzZXQgaW4gY29vcmRpbmF0b3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkYfeCM", "height": 2590562, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: wA1ZatXYhe3yozE1eFo5m2fzkzCthDYWNRLvfsHSH7W Next: DCzuVn8JPmDJ7YBHy4bXwgg8XT1ndW5FWkzccwFwzhNY Diff:
OldNewDifferences
329329
330330
331331 @Callable(bH)
332-func initialize (bI,bJ,bK) = if (if (if (if (aD())
332+func migrate () = if ((bH.caller != H()))
333+ then throw("Invalid migrate parameters")
334+ else {
335+ let bI = toBase58String(K())
336+ let W = if ((bI == "WAVES"))
337+ then 8
338+ else {
339+ let bJ = valueOrErrorMessage(assetInfo(fromBase58String(bI)), ("Invalid token id: " + bI))
340+ bJ.decimals
341+ }
342+[StringEntry(f, bI), IntegerEntry(g, W), IntegerEntry(h, 0)]
343+ }
344+
345+
346+
347+@Callable(bH)
348+func initialize (bK,bI,bL) = if (if (if (if (aD())
333349 then true
334350 else (bH.caller != this))
335351 then true
336- else (0 > bK))
352+ else (0 > bL))
337353 then true
338- else (bK > Q))
354+ else (bL > Q))
339355 then throw("Unable to initialize")
340356 else {
341- let W = if ((bJ == "WAVES"))
357+ let W = if ((bI == "WAVES"))
342358 then 8
343359 else {
344- let bL = valueOrErrorMessage(assetInfo(fromBase58String(bJ)), ("Invalid token id: " + bJ))
345- bL.decimals
360+ let bJ = valueOrErrorMessage(assetInfo(fromBase58String(bI)), ("Invalid token id: " + bI))
361+ bJ.decimals
346362 }
347-[StringEntry(v, toString(valueOrErrorMessage(addressFromString(bI), "Invalid coordinator address"))), StringEntry(f, bJ), IntegerEntry(g, W), IntegerEntry(h, bK), BooleanEntry(u, true)]
363+[StringEntry(v, toString(valueOrErrorMessage(addressFromString(bK), "Invalid coordinator address"))), StringEntry(f, bI), IntegerEntry(g, W), IntegerEntry(h, bL), BooleanEntry(u, true)]
348364 }
349365
350366
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "k_totalSupply"
55
66 let b = "k_rewardBalance"
77
88 let c = "k_lockedBalance"
99
1010 let d = "k_freeBalance"
1111
1212 let e = "k_excessBalance"
1313
1414 let f = "k_vaultAsset"
1515
1616 let g = "k_vaultAssetDecimals"
1717
1818 let h = "k_maxSpotUtilization"
1919
2020 let i = "k_rate"
2121
2222 let j = "k_lastUpdateTime"
2323
2424 let k = "k_rewardPerTokenStored"
2525
2626 let l = "k_rewardRate"
2727
2828 let m = "k_periodFinish"
2929
3030 let n = "k_userRewardPerToken"
3131
3232 let o = "k_userReward"
3333
3434 let p = "k_balance"
3535
3636 let q = "k_average_rate"
3737
3838 let r = "k_withdraw_limit"
3939
4040 let s = "k_last_withdraw_date"
4141
4242 let t = "k_withdraw_in_period"
4343
4444 let u = "k_initialized"
4545
4646 let v = "k_coordinatorAddress"
4747
4848 let w = "k_amm"
4949
5050 let x = "k_gov_asset"
5151
5252 let y = "k_quote_asset"
5353
5454 let z = "k_admin_address"
5555
5656 let A = "k_manager_address"
5757
5858 let B = "k_spot_address"
5959
6060 let C = "k_collateral_address"
6161
6262 func D (E,F) = ((E + "_") + F)
6363
6464
6565 func G () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, v), "Coordinator not set")), "Coordinator address invalid")
6666
6767
6868 func H () = addressFromString(valueOrErrorMessage(getString(G(), z), "Admin address not set"))
6969
7070
7171 func I (F) = valueOrElse(getBoolean(G(), D(w, F)), false)
7272
7373
7474 func J () = fromBase58String(valueOrErrorMessage(getString(G(), x), "Governance asset not set"))
7575
7676
7777 func K () = fromBase58String(getStringValue(G(), y))
7878
7979
8080 func L () = valueOrErrorMessage(getString(this, f), "Vault asset not set")
8181
8282
8383 func M () = {
8484 let N = L()
8585 if ((N == "WAVES"))
8686 then unit
8787 else fromBase58String(N)
8888 }
8989
9090
9191 func O () = valueOrErrorMessage(getInteger(this, g), "Vault asset decimals not set")
9292
9393
9494 func P () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(G(), A), "Manager address not set")), "Manager address invalid")
9595
9696
9797 let Q = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10))
9898
9999 let R = (((7 * 60) * 60) * 24)
100100
101101 let S = ""
102102
103103 let T = 0
104104
105105 func U (V) = {
106106 let W = O()
107107 if ((W == 6))
108108 then (V / 100)
109109 else if ((W == 8))
110110 then V
111111 else throw("Invalid asset decimals")
112112 }
113113
114114
115115 func X (V) = {
116116 let W = O()
117117 if ((W == 6))
118118 then (V * 100)
119119 else if ((W == 8))
120120 then V
121121 else throw("Invalid asset decimals")
122122 }
123123
124124
125125 func Y (Z,aa) = fraction(Z, Q, aa, HALFEVEN)
126126
127127
128128 func ab (Z,aa) = fraction(Z, aa, Q, HALFEVEN)
129129
130130
131131 func ac (Z) = if ((Z > 0))
132132 then Z
133133 else -(Z)
134134
135135
136136 func ad (Z,aa) = if ((Z > aa))
137137 then aa
138138 else Z
139139
140140
141141 let ae = (86400 * 1000)
142142
143143 let af = Y((1 * Q), (4 * Q))
144144
145145 func ag (ah) = valueOrErrorMessage(getInteger(this, ah), ("no value for " + ah))
146146
147147
148148 func ai (ah) = valueOrElse(getInteger(this, ah), 0)
149149
150150
151151 func aj (ah) = valueOrElse(getInteger(this, ah), Q)
152152
153153
154154 func ak () = ai(a)
155155
156156
157157 func al () = aj(i)
158158
159159
160160 func am (an) = ai(D(p, an))
161161
162162
163163 func ao (an) = ai(D(q, an))
164164
165165
166166 func ap (an) = ai(D(r, an))
167167
168168
169169 func aq (an) = ai(D(t, an))
170170
171171
172172 func ar (an) = ai(D(s, an))
173173
174174
175175 func as () = ai(d)
176176
177177
178178 func at () = ai(c)
179179
180180
181181 func au () = ai(e)
182182
183183
184184 func av () = ai(k)
185185
186186
187187 func aw () = ai(j)
188188
189189
190190 func ax () = ai(l)
191191
192192
193193 func ay () = ai(m)
194194
195195
196196 func az () = ai(b)
197197
198198
199199 func aA (an) = ai(D(o, an))
200200
201201
202202 func aB (an) = ai(D(n, an))
203203
204204
205205 func aC () = ai(h)
206206
207207
208208 func aD () = valueOrElse(getBoolean(this, u), false)
209209
210210
211211 func aE () = lastBlock.timestamp
212212
213213
214214 func aF () = (aE() / 1000)
215215
216216
217217 func aG (an) = {
218218 let aH = aE()
219219 let aI = ar(an)
220220 let aJ = if (((aH - aI) > ae))
221221 then $Tuple3(aH, ap(an), 0)
222222 else $Tuple3(aI, (ap(an) - aq(an)), aq(an))
223223 let aK = aJ._1
224224 let aL = aJ._2
225225 let aM = aJ._3
226226 $Tuple3(aK, aL, aM)
227227 }
228228
229229
230230 func aN (aO) = {
231231 let aP = if ((ak() > 0))
232232 then Y((as() + aO), ak())
233233 else Q
234234 aP
235235 }
236236
237237
238238 func aQ () = ad(aF(), ay())
239239
240240
241241 func aR (aS) = if (((ak() + aS) == 0))
242242 then av()
243243 else {
244244 let aT = (aQ() - aw())
245245 let aU = if ((0 > aT))
246246 then 0
247247 else aT
248248 let aV = Y((ax() * aU), (ak() + aS))
249249 (av() + aV)
250250 }
251251
252252
253253 func aW (an,aS) = {
254254 let aX = (aR(aS) - aB(an))
255255 (ab((am(an) + aS), aX) + aA(an))
256256 }
257257
258258
259259 func aY (an,aS) = {
260260 let aZ = aR(aS)
261261 let ba = aF()
262262 let bb = if ((an != ""))
263263 then $Tuple2(aW(an, aS), aZ)
264264 else $Tuple2(0, 0)
265265 let bc = bb._1
266266 let bd = bb._2
267267 $Tuple4(aZ, ba, bc, bd)
268268 }
269269
270270
271271 func be (bf,bg) = if (((am(bf) + bg) >= 0))
272272 then [IntegerEntry(D(p, bf), (am(bf) + bg))]
273273 else throw(((("Vault: can not update user balance. Balance: " + toString(am(bf))) + " change: ") + toString(bg)))
274274
275275
276276 func bh (bf,bi) = [IntegerEntry(D(r, bf), bi)]
277277
278278
279279 func bj (bf,bi) = [IntegerEntry(D(q, bf), bi)]
280280
281281
282282 func bk (bg) = {
283283 let bl = as()
284284 if (((bl + bg) >= 0))
285285 then [IntegerEntry(d, (bl + bg))]
286286 else throw(((("Vault: can not update free balance. Balance: " + toString(bl)) + " change: ") + toString(bg)))
287287 }
288288
289289
290290 func bm (bg) = {
291291 let bl = at()
292292 if (((bl + bg) >= 0))
293293 then [IntegerEntry(c, (bl + bg))]
294294 else throw(((("Vault: can not update locked balance. Balance: " + toString(bl)) + " change: ") + toString(bg)))
295295 }
296296
297297
298298 func bn (bg) = {
299299 let bo = (au() + bg)
300300 let bp = Y(ac(bo), as())
301301 if ((aC() > bp))
302302 then [IntegerEntry(e, bo)]
303303 else throw(((((((("Vault: can not update excess balance. Balance: " + toString(au())) + " change: ") + toString(bg)) + " utilization rate: ") + toString(bp)) + " max utilization rate: ") + toString(aC())))
304304 }
305305
306306
307307 func bq (bg) = [IntegerEntry(a, (ak() + bg))]
308308
309309
310310 func br (bi) = [IntegerEntry(i, bi)]
311311
312312
313313 func bs (bf,bt,bu) = [IntegerEntry(D(s, bf), bt), IntegerEntry(D(t, bf), bu)]
314314
315315
316316 func bv (bw) = [IntegerEntry(b, (az() + bw))]
317317
318318
319319 func bx (by) = [IntegerEntry(l, by)]
320320
321321
322322 func bz (bA,bB) = [IntegerEntry(j, bA), IntegerEntry(m, bB)]
323323
324324
325325 func bC (bD) = [IntegerEntry(k, bD)]
326326
327327
328328 func bE (an,bF,bG) = [IntegerEntry(D(o, an), bF), IntegerEntry(D(n, an), bG)]
329329
330330
331331 @Callable(bH)
332-func initialize (bI,bJ,bK) = if (if (if (if (aD())
332+func migrate () = if ((bH.caller != H()))
333+ then throw("Invalid migrate parameters")
334+ else {
335+ let bI = toBase58String(K())
336+ let W = if ((bI == "WAVES"))
337+ then 8
338+ else {
339+ let bJ = valueOrErrorMessage(assetInfo(fromBase58String(bI)), ("Invalid token id: " + bI))
340+ bJ.decimals
341+ }
342+[StringEntry(f, bI), IntegerEntry(g, W), IntegerEntry(h, 0)]
343+ }
344+
345+
346+
347+@Callable(bH)
348+func initialize (bK,bI,bL) = if (if (if (if (aD())
333349 then true
334350 else (bH.caller != this))
335351 then true
336- else (0 > bK))
352+ else (0 > bL))
337353 then true
338- else (bK > Q))
354+ else (bL > Q))
339355 then throw("Unable to initialize")
340356 else {
341- let W = if ((bJ == "WAVES"))
357+ let W = if ((bI == "WAVES"))
342358 then 8
343359 else {
344- let bL = valueOrErrorMessage(assetInfo(fromBase58String(bJ)), ("Invalid token id: " + bJ))
345- bL.decimals
360+ let bJ = valueOrErrorMessage(assetInfo(fromBase58String(bI)), ("Invalid token id: " + bI))
361+ bJ.decimals
346362 }
347-[StringEntry(v, toString(valueOrErrorMessage(addressFromString(bI), "Invalid coordinator address"))), StringEntry(f, bJ), IntegerEntry(g, W), IntegerEntry(h, bK), BooleanEntry(u, true)]
363+[StringEntry(v, toString(valueOrErrorMessage(addressFromString(bK), "Invalid coordinator address"))), StringEntry(f, bI), IntegerEntry(g, W), IntegerEntry(h, bL), BooleanEntry(u, true)]
348364 }
349365
350366
351367
352368 @Callable(bH)
353369 func stake () = {
354370 let an = toString(bH.caller)
355371 let V = X(bH.payments[0].amount)
356372 if (if (if ((bH.payments[0].assetId != M()))
357373 then true
358374 else (size(bH.payments) != 1))
359375 then true
360376 else !(aD()))
361377 then throw("Invalid call to stake")
362378 else {
363379 let bM = aY(an, 0)
364380 let aZ = bM._1
365381 let ba = bM._2
366382 let bc = bM._3
367383 let bd = bM._4
368384 let bN = al()
369385 let bO = ao(an)
370386 let bP = Y(V, bN)
371387 let bQ = Y((ab(bP, bN) + ab(am(an), bO)), (bP + am(an)))
372388 let bR = (bP + am(an))
373389 let bS = ab(bR, af)
374390 let bT = invoke(P(), "deposit", nil, [AttachedPayment(M(), U(V))])
375391 if ((bT == bT))
376392 then (((((((bE(an, bc, bd) ++ bC(aZ)) ++ bz(ba, ay())) ++ bk(V)) ++ be(an, bP)) ++ bj(an, bQ)) ++ bh(an, bS)) ++ bq(bP))
377393 else throw("Strict value is not equal to itself.")
378394 }
379395 }
380396
381397
382398
383399 @Callable(bH)
384400 func unStake (V) = {
385401 let an = toString(bH.caller)
386402 let bU = X(V)
387403 if (if (if ((bH.payments != nil))
388404 then true
389405 else (0 >= bU))
390406 then true
391407 else !(aD()))
392408 then throw("Invalid call to unStake")
393409 else {
394410 let bV = aY(an, 0)
395411 let aZ = bV._1
396412 let ba = bV._2
397413 let bc = bV._3
398414 let bd = bV._4
399415 let bW = aG(an)
400416 let aK = bW._1
401417 let aL = bW._2
402418 let aM = bW._3
403419 let bP = Y(bU, al())
404420 if ((bP > aL))
405421 then throw("Invalid call to unStake: withdraw over limit")
406422 else {
407423 let bX = (aM + bP)
408424 if ((bU > as()))
409425 then throw("Invalid call to unStake: balance too low")
410426 else {
411427 let bY = invoke(P(), "withdraw", [L(), U(bU)], nil)
412428 if ((bY == bY))
413429 then (((((((bE(an, bc, bd) ++ bC(aZ)) ++ bz(ba, ay())) ++ bk(-(bU))) ++ be(an, -(bP))) ++ bq(-(bP))) ++ bs(an, aK, bX)) ++ [ScriptTransfer(bH.caller, U(bU), M())])
414430 else throw("Strict value is not equal to itself.")
415431 }
416432 }
417433 }
418434 }
419435
420436
421437
422438 @Callable(bH)
423439 func withdrawRewards () = {
424440 let an = toString(bH.caller)
425441 let bZ = aY(an, 0)
426442 let aZ = bZ._1
427443 let ba = bZ._2
428444 let bc = bZ._3
429445 let bd = bZ._4
430446 if (if ((0 >= bc))
431447 then true
432448 else !(aD()))
433449 then throw("No reward: Vault")
434450 else ((((bE(an, 0, bd) ++ bC(aZ)) ++ bz(ba, ay())) ++ bv(-(bc))) ++ [ScriptTransfer(bH.caller, bc, J())])
435451 }
436452
437453
438454
439455 @Callable(bH)
440456 func addFree () = {
441457 let V = X(bH.payments[0].amount)
442458 if (if (if (if ((bH.payments[0].assetId != M()))
443459 then true
444460 else (size(bH.payments) != 1))
445461 then true
446462 else !(aD()))
447463 then true
448464 else !(if (I(toString(bH.caller)))
449465 then true
450466 else (bH.caller == H())))
451467 then throw("Invalid addFree params")
452468 else {
453469 let aP = aN(V)
454470 let bT = invoke(P(), "deposit", nil, [AttachedPayment(M(), U(V))])
455471 if ((bT == bT))
456472 then (bk(V) ++ br(aP))
457473 else throw("Strict value is not equal to itself.")
458474 }
459475 }
460476
461477
462478
463479 @Callable(bH)
464480 func addLocked () = {
465481 let V = X(bH.payments[0].amount)
466482 if (if (if (if ((bH.payments[0].assetId != M()))
467483 then true
468484 else (size(bH.payments) != 1))
469485 then true
470486 else !(aD()))
471487 then true
472488 else !(if (I(toString(bH.caller)))
473489 then true
474490 else (bH.caller == H())))
475491 then throw("Invalid addLocked params")
476492 else {
477493 let bY = invoke(P(), "deposit", nil, [AttachedPayment(M(), U(V))])
478494 if ((bY == bY))
479495 then bm(V)
480496 else throw("Strict value is not equal to itself.")
481497 }
482498 }
483499
484500
485501
486502 @Callable(bH)
487503 func exchangeFreeAndLocked (V) = if (if (!(aD()))
488504 then true
489505 else if (!(I(toString(bH.caller))))
490506 then (bH.caller != H())
491507 else false)
492508 then throw("Invalid exchangeFreeAndLocked params")
493509 else {
494510 let bU = X(V)
495511 let aP = aN(-(bU))
496512 ((bm(bU) ++ bk(-(bU))) ++ br(aP))
497513 }
498514
499515
500516
501517 @Callable(bH)
502518 func withdrawLocked (V) = if (if (if (!(aD()))
503519 then true
504520 else (0 >= V))
505521 then true
506522 else !(I(toString(bH.caller))))
507523 then throw("Invalid withdrawLocked params")
508524 else {
509525 let bU = X(V)
510526 let bY = invoke(P(), "withdraw", [L(), U(bU)], nil)
511527 if ((bY == bY))
512528 then (bm(-(bU)) ++ [ScriptTransfer(bH.caller, U(bU), M())])
513529 else throw("Strict value is not equal to itself.")
514530 }
515531
516532
517533
518534 @Callable(bH)
519535 func addRewards () = if (if (if ((bH.payments[0].assetId != J()))
520536 then true
521537 else (size(bH.payments) != 1))
522538 then true
523539 else !(aD()))
524540 then throw("Invalid addRewards params")
525541 else {
526542 let bF = bH.payments[0].amount
527543 let aZ = aY(S, T)._1
528544 let ca = aF()
529545 let cb = if ((ca > ay()))
530546 then (bF / R)
531547 else {
532548 let cc = (ay() - ca)
533549 let cd = (ax() * cc)
534550 ((bF + cd) / R)
535551 }
536552 (((bx(cb) ++ bC(aZ)) ++ bv(bF)) ++ bz(ca, (ca + R)))
537553 }
538554
539555
540556
541557 @Callable(bH)
542558 func ackRewards () = {
543559 let ce = invoke(P(), "claimProfit", [L()], nil)
544560 if ((ce == ce))
545561 then {
546562 let cf = {
547563 let cg = ce
548564 if ($isInstanceOf(cg, "Int"))
549565 then {
550566 let ch = cg
551567 X(ch)
552568 }
553569 else throw("Invalid claimProfit response")
554570 }
555571 let ci = if ((cf > 0))
556572 then {
557573 let aP = aN(cf)
558574 let bT = invoke(P(), "deposit", nil, [AttachedPayment(M(), U(cf))])
559575 if ((bT == bT))
560576 then (bk(cf) ++ br(aP))
561577 else throw("Strict value is not equal to itself.")
562578 }
563579 else nil
564580 if ((ci == ci))
565581 then ci
566582 else throw("Strict value is not equal to itself.")
567583 }
568584 else throw("Strict value is not equal to itself.")
569585 }
570586
571587
572588
573589 @Callable(bH)
574590 func view_reward (an) = {
575591 let bl = am(an)
576592 let cj = ab(ao(an), bl)
577593 let ck = ab(al(), bl)
578594 let cl = (ck - cj)
579595 throw(toString(cl))
580596 }
581597
582598
583599
584600 @Callable(bH)
585601 func view_stakingReward (an) = {
586602 let bc = aY(an, 0)._3
587603 throw(toString(U(bc)))
588604 }
589605
590606
591607
592608 @Callable(bH)
593609 func view_withdrawLimit (an) = {
594610 let aL = aG(an)._2
595611 let cm = U(ab(aL, al()))
596612 throw(toString(cm))
597613 }
598614
599615
600616 @Verifier(cn)
601617 func co () = {
602618 let cp = getString(this, v)
603619 if (isDefined(cp))
604620 then {
605621 let cq = getString(addressFromStringValue(value(cp)), z)
606622 if (isDefined(cq))
607623 then valueOrElse(getBoolean(addressFromStringValue(value(cq)), ((("status_" + toString(this)) + "_") + toBase58String(cn.id))), false)
608624 else throw("unable to verify: admin not set in coordinator")
609625 }
610626 else sigVerify(cn.bodyBytes, cn.proofs[0], cn.senderPublicKey)
611627 }
612628

github/deemru/w8io/026f985 
66.04 ms