tx · 6Km3c1SScjvvHBuQWWQLwdjGXZ5p3ezXihxWU5bVi6fK

3MsbsA56tGxLaTgwZnfPEPcnrWznTD4vaLN:  -0.02200000 Waves

2022.09.07 08:36 [2218275] smart account 3MsbsA56tGxLaTgwZnfPEPcnrWznTD4vaLN > SELF 0.00000000 Waves

{ "type": 13, "id": "6Km3c1SScjvvHBuQWWQLwdjGXZ5p3ezXihxWU5bVi6fK", "fee": 2200000, "feeAssetId": null, "timestamp": 1662529004271, "version": 2, "chainId": 84, "sender": "3MsbsA56tGxLaTgwZnfPEPcnrWznTD4vaLN", "senderPublicKey": "rgQsufFYRxVgm9o1imPx68WHWgm68pyggV5yW2f9qmq", "proofs": [ "4YXZspqNFWkF4AkXxcwYrmLo1u69FfBmFwdFJ2FnFp914BjfpywjjXGo95ndSC7b7yi4GFVsPVH7tzud8HVkRG3A" ], "script": "base64:BgJaCAISBAoCCAgSDgoMCAgICAgICAgICAgIEg0KCwgICAgICAgICAgIEgYKBAgICAgSBAoCCAgSBwoFCAEBCAESBAoCCAgSBAoCCAgSBgoECAgICBIGCgQICAgISgAHVkVSU0lPTgIFMS4xLjYBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgAACHVuaXRUZXN0BgAJb3JhY2xlRmVlCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECD2NvbmZfb3JhY2xlX2ZlZQAIc2lnbkRhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQIRY29uZl9zaWdud2ViX2RhcHAAC2ZlZVJlY2VpdmVyCQEOZ2V0U3RyaW5nQnlLZXkBAhFjb25mX2ZlZV9yZWNlaXZlcgAIdXNlckRhcHADBQh1bml0VGVzdAkBBXZhbHVlAQkApggBAiMzTXQ0UkdNRXlqU1dZQW9jVFBxZDU1d2RIUVFCM1BVMlVDbQkBBXZhbHVlAQkApggBCQEOZ2V0U3RyaW5nQnlLZXkBAg9jb25mX3VzZXJzX2RhcHAADXdoaXRlbGlzdERhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQITY29uZl93aGl0ZWxpc3RfZGFwcAALc2lnbkFzc2V0SWQJANkEAQkBDmdldFN0cmluZ0J5S2V5AQIYY29uZl9hY2NlcHRlZF9hc3NldF9TSUdOAAt1c2RuQXNzZXRJZAkA2QQBCQEOZ2V0U3RyaW5nQnlLZXkBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRE4ADHdhdmVzQXNzZXRJZAEAAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl9hZG1pbl8xAARqb2VwCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzIBGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFCW9yYWNsZUZlZQUDa2V5Ah9JbnRlZ2VyIHVuZGVmaW5lIG9yIDAgaW4gb3JhY2xlAQ9nZXRJbnRlZ2VyQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAEOY2hlY2tXaGl0ZWxpc3QBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ13aGl0ZWxpc3REYXBwBQNrZXkAAAEPZ2V0Qm9vbGVhbkJ5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUDa2V5BwAHc2lnbkN1dAAHAAt1c2RuV2F2ZUN1dAAKAA5kZWZhdWx0TGljZW5jZQkBDmdldFN0cmluZ0J5S2V5AQIUY29uZl9kZWZhdWx0X2xpY2VuY2UAEmRlZmF1bHRIYXNoTGljZW5jZQkBDmdldFN0cmluZ0J5S2V5AQIZY29uZl9kZWZhdWx0X2xpY2VuY2VfaGFzaAALZGFwcFJ1bm5pbmcJAQt2YWx1ZU9yRWxzZQIJAJsIAgUIdXNlckRhcHACFGNvbmZfZGFwcF9pc19ydW5uaW5nBgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHACFGNvbmZfbWFpbnRlbmFuY2VfbXNnAgAADXVzZXJTdXNwZW5kZWQCCVNVU1BFTkRFRAALdXNlclJlbW92ZWQCB1JFTU9WRUQAEHVzZXJVbnJlZ2lzdGVyZWQCDFVOUkVHSVNURVJFRAALdXNlckFsbG93ZWQCB0FMTE9XRUQAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJARlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlAQkArAICAhJjZXJ0aWZpY2F0aW9uX2ZlZV8JANgEAQULc2lnbkFzc2V0SWQBFGNoZWNrU2lnbkNlcnRpZmljYXRlAwZzaWduSUQFT3duZXIKc2hhMjU2SGFzaAQHJG1hdGNoMAkAnQgCBQhzaWduRGFwcAkArAICCQCsAgIJAKwCAgIIZGF0YV9mY18FBnNpZ25JRAIBXwUFT3duZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwAwkBCGNvbnRhaW5zAgUBYQUKc2hhMjU2SGFzaAYHBwELdmFsaWRhdGVDSUQBA2NpZAMJAQhjb250YWlucwIFA2NpZAIBLwMDCQBmAgBMCQCxAgEFA2NpZAkAAAIJALECAQkAkQMCCQC1CQIFA2NpZAIBLwAAADsHCQBmAgAQCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAQcHAQx2YWxpZGF0ZUhhc2gBBGhhc2gJAAACCQCxAgEFBGhhc2gAQAENa2V5VXNlclN0YXR1cwEGY2FsbGVyCQCsAgICDHVzZXJfc3RhdHVzXwUGY2FsbGVyAQdrZXlEYXRlAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICCWFydF9kYXRlXwUFYXJ0SWQCAV8FBmNhbGxlcgEHa2V5TmFtZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfbmFtZV8FBWFydElkAgFfBQZjYWxsZXIBB2tleURlc2MCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X2Rlc2NfBQVhcnRJZAIBXwUGY2FsbGVyAQ1rZXlEaXNwbGF5Q2lkAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICEGFydF9kaXNwbGF5X2NpZF8FBWFydElkAgFfBQZjYWxsZXIBDWtleUV4cG9ydEhhc2gCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIQYXJ0X2V4cG9ydF9oYXNoXwUFYXJ0SWQCAV8FBmNhbGxlcgEMa2V5RXhwb3J0Q2lkAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICD2FydF9leHBvcnRfY2lkXwUFYXJ0SWQCAV8FBmNhbGxlcgEKa2V5TWF4TWludAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAgxhcnRfbWF4bWludF8FBWFydElkAgFfBQZjYWxsZXIBCWtleVNpZ25JRAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAgthcnRfc2lnbmlkXwUFYXJ0SWQCAV8FBmNhbGxlcgEJa2V5SXNzdWVkAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICC2FydF9pc3N1ZWRfBQVhcnRJZAIBXwUGY2FsbGVyAQlrZXlPblNhbGUCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgILYXJ0X29uc2FsZV8FBWFydElkAgFfBQZjYWxsZXIBDmtleUxpY2VuY2VIYXNoAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICEWFydF9saWNlbmNlX2hhc2hfBQVhcnRJZAIBXwUGY2FsbGVyAQ1rZXlMaWNlbmNlQ2lkAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICEGFydF9saWNlbmNlX2NpZF8FBWFydElkAgFfBQZjYWxsZXIBB2tleVRhZ3MCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X3RhZ3NfBQVhcnRJZAIBXwUGY2FsbGVyAQdrZXlUeXBlAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICCWFydF90eXBlXwUFYXJ0SWQCAV8FBmNhbGxlcgEHa2V5Tm90ZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfbm90ZV8FBWFydElkAgFfBQZjYWxsZXIBCmtleUNyYXdsZXICBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIQYXJ0X2NyYXdsZXJfY2lkXwUFYXJ0SWQCAV8FBmNhbGxlcgEIa2V5UHJpY2UCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIKYXJ0X3ByaWNlXwUFYXJ0SWQCAV8FBmNhbGxlcgEKa2V5RW5kU2FsZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAgxhcnRfZW5kc2FsZV8FBWFydElkAgFfBQZjYWxsZXIBEmtleUFzc2V0SWRBY2NlcHRlZAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAhJhcnRfYXNzZXRBY2NlcHRlZF8FBWFydElkAgFfBQZjYWxsZXIBB2tleUZsYWcCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X2ZsYWdfBQVhcnRJZAIBXwUGY2FsbGVyARJrZXlBcnRpc3RBZ2VudEFkZHIBCmFydGlzdEFkZHIJAKwCAgINYXJ0aXN0X2FnZW50XwUKYXJ0aXN0QWRkcgEPa2V5UHJpbWFyeVNoYXJlAQphcnRpc3RBZGRyCQCsAgICFWFydGlzdF9hZ2VudF9wcmltYXJ5XwUKYXJ0aXN0QWRkcgERa2V5SGFzaEJ5VHhpZEFkZHICBmNhbGxlcgR0eGlkCQCsAgIJAKwCAgkArAICAhNnZXRfaGFzaGJ5dHhpZGFkZHJfBQR0eGlkAgFfBQZjYWxsZXIBDmtleU93bmVyQnlIYXNoAQpzaGEyNTZIYXNoCQCsAgICEmdldF9vd25lcl9ieV9oYXNoXwUKc2hhMjU2SGFzaAENa2V5aWRCeVNpZ25pZAIGY2FsbGVyBnNpZ25JZAkArAICCQCsAgIJAKwCAgISZ2V0X2FydGlkYnlzaWduaWRfBQZzaWduSWQCAV8FBmNhbGxlcgESa2V5VHhpZEJ5SGFzaE93bmVyAgpzaGEyNTZIYXNoBmNhbGxlcgkArAICAhdnZXRfdHhpZF9ieV9oYXNoX293bmVyXwkA2AQBCQDUFgEJAJsDAQkArAICBQpzaGEyNTZIYXNoBQZjYWxsZXIBDnZhbGlkYXRlQWxsQ0lEAwpjaWREaXNwbGF5CWNpZEV4cG9ydApjaWRMaWNlbmNlAwkBASEBCQELdmFsaWRhdGVDSUQBBQpjaWREaXNwbGF5CQACAQIRV3JvbmcgRGlzcGxheSBDSUQDCQEBIQEJAQt2YWxpZGF0ZUNJRAEFCWNpZEV4cG9ydAkAAgECEFdyb25nIEV4cG9ydCBDSUQDAwkBAiE9AgUKY2lkTGljZW5jZQIACQEBIQEJAQt2YWxpZGF0ZUNJRAEFCmNpZExpY2VuY2UHCQACAQIRV3JvbmcgTGljZW5jZSBDSUQGAQ92YWxpZGF0ZUFsbEhhc2gCDHNoYTI1NkV4cG9ydA1zaGEyNTZMaWNlbmNlAwkBASEBCQEMdmFsaWRhdGVIYXNoAQUMc2hhMjU2RXhwb3J0CQACAQIYRXhwb3J0IEhhc2ggNjQgY2hhci4gbWF4AwkBASEBCQEMdmFsaWRhdGVIYXNoAQUNc2hhMjU2TGljZW5jZQkAAgECGUxpY2VuY2UgSGFzaCA2NCBjaGFyLiBtYXgGAQ52YWxpZGF0ZVN0cmluZwIDc3RyA21heAMJAAACCQCxAgEFA3N0cgAACQACAQIYRmllbGQgY2Fubm90IGJlIGlzIGVtcHR5AwkAZgIJALECAQUDc3RyBQNtYXgJAAIBCQCsAgIFA3N0cgIMIGlzIHRvbyBsb25nBgEMdmFsaWRhdGVVc2VyAQZjYWxsZXIECnVzZXJTdGF0dXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyBRB1c2VyVW5yZWdpc3RlcmVkAwMJAAACBQp1c2VyU3RhdHVzBRB1c2VyVW5yZWdpc3RlcmVkBgkAAAIFCnVzZXJTdGF0dXMFC3VzZXJBbGxvd2VkAi5SZWdpc3RlciB0aGlzIGFjY291bnQgZmlyc3Qgd2l0aCAiQWNjb3VudCIgdGFiAwkAAAIFCnVzZXJTdGF0dXMFDXVzZXJTdXNwZW5kZWQCEUFjY291bnQgc3VzcGVuZGVkAwkAAAIFCnVzZXJTdGF0dXMFC3VzZXJSZW1vdmVkAg9BY2NvdW50IHJlbW92ZWQCAAEKc2V0TEljZW5jZQIKY2lkTGljZW5jZQ1zaGEyNTZMaWNlbmNlBANjaWQDCQAAAgkAsQIBBQpjaWRMaWNlbmNlAAAFDmRlZmF1bHRMaWNlbmNlBQpjaWRMaWNlbmNlBARoYXNoAwkAAAIJALECAQUNc2hhMjU2TGljZW5jZQAABRJkZWZhdWx0SGFzaExpY2VuY2UFDXNoYTI1NkxpY2VuY2UJAJQKAgUDY2lkBQRoYXNoARN2YWxpZGF0ZUFydHdvcmtEYXRhCQZjYWxsZXIKY2lkRGlzcGxheQljaWRFeHBvcnQKbGljZW5jZUNJRAxzaGEyNTZFeHBvcnQLbGljZW5jZUhhc2gEbmFtZQtkZXNjcmlwdGlvbgR0YWdzBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAAACCQCxAgEFCmNpZERpc3BsYXkAAAkAAgECG0Rpc3BsYXkgQ0lEIGNhbm5vdCBiZSBlbXB0eQMJAQEhAQkBDnZhbGlkYXRlQWxsQ0lEAwUKY2lkRGlzcGxheQUJY2lkRXhwb3J0BQpsaWNlbmNlQ0lECQACAQIQUHJvYmxlbSB3aXRoIENJRAMJAQEhAQkBD3ZhbGlkYXRlQWxsSGFzaAIFDHNoYTI1NkV4cG9ydAULbGljZW5jZUhhc2gJAAIBAhNQcm9ibGVtIHdpdGggSGFzaGVzAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQRuYW1lAGQJAAIBAhIxMDAgQ2hhci4gbWF4IG5hbWUDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFC2Rlc2NyaXB0aW9uAOgHCQACAQIaMTAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DCQBmAgkAkAMBCQC1CQIFBHRhZ3MCASwABQkAAgECCzUgdGFncyBtYXguAgABCWlzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAkBBXZhbHVlAQgFB3BheW1lbnQGYW1vdW50CQCUCgIFB3BheW1lbnQFBmFtb3VudAEPdmFsaWRhdGVQYXltZW50AQFpBAskdDA4NTk5ODYzNQkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQskdDA4NTk5ODYzNQJfMQQGYW1vdW50CAULJHQwODU5OTg2MzUCXzIEB2Fzc2V0SWQDAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAACCAUHcGF5bWVudAdhc3NldElkBQtzaWduQXNzZXRJZAcIBQdwYXltZW50B2Fzc2V0SWQJAAIBAitPbmx5IFNJR04gdG9rZW4gYWNjZXB0ZWQgYXMgdHJhbnNhY3Rpb24gZmVlAwkBAiE9AgUGYW1vdW50BRljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlCQACAQkArAICAhlQYXltZW50IGFtb3VudCBzaG91bGQgYmUgCQCkAwEFGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAJQKAgUGYW1vdW50BQdhc3NldElkAQtpc0FydE1pbnRlZAIJYWRkclRvVXNlBWFydElkBAckbWF0Y2gwCQCaCAIFBHRoaXMJAQlrZXlJc3N1ZWQCBQlhZGRyVG9Vc2UFBWFydElkAwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAMJAQIhPQIFAWIAAAYHBwEUdmFsaWRhdGVQcmljZUFzc2V0SWQDAWkMcHJpY2VBc3NldElkDGFydHdvcmtQcmljZQQLJHQwOTI0MjkyNzgJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAULJHQwOTI0MjkyNzgCXzEEBmFtb3VudAgFCyR0MDkyNDI5Mjc4Al8yBAdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAUEdW5pdAMDCQBmAgkAsQIBBQxwcmljZUFzc2V0SWQAAAkAAAIJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAUMcHJpY2VBc3NldElkBwgFB3BheW1lbnQHYXNzZXRJZAkAAgECDldyb25nIGFzc2V0IGlkAwMJAAACBQdhc3NldElkBQR1bml0CQECIT0CBQxwcmljZUFzc2V0SWQCAAcJAAIBAg5Xcm9uZyBhc3NldCBpZAMJAQIhPQIFDGFydHdvcmtQcmljZQUGYW1vdW50CQACAQITUGF5bWVudCBkb24ndCBtYXRjaAkAlAoCBQZhbW91bnQFB2Fzc2V0SWQBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDAwMDCQECIT0CBQdhc3NldElkCQDYBAEFC3NpZ25Bc3NldElkCQECIT0CBQdhc3NldElkCQDYBAEFDHdhdmVzQXNzZXRJZAcJAQIhPQIFB2Fzc2V0SWQCBVdBVkVTBwkBAiE9AgUHYXNzZXRJZAkA2AQBBQt1c2RuQXNzZXRJZAcJAAIBAiFPbmx5IFNJR04sIFVTRE4gb3IgV0FWRVMgYWNjZXB0ZWQGAQ92YWxpZGF0ZU1pblNlbGwCB2Fzc2V0SWQFcHJpY2UEDG1pblNlbGxXYXZlcwMFCHVuaXRUZXN0AAoJARlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlAQIOd2F2ZXNfbWluX3NlbGwEC21pblNlbGxVc2RuAMCEPQQLbWluU2VsbFNpZ24DBQh1bml0VGVzdAABCQBoAgUZY3VycmVudENlcnRpZmljYXRpb25QcmljZQACAwMDAwMJAAACBQdhc3NldElkCQDYBAEFC3VzZG5Bc3NldElkCQBmAgULbWluU2VsbFVzZG4FBXByaWNlBwkBAiE9AgUFcHJpY2UAAAcGAwMJAAACBQdhc3NldElkCQDYBAEFC3NpZ25Bc3NldElkCQBmAgULbWluU2VsbFNpZ24FBXByaWNlBwkBAiE9AgUFcHJpY2UAAAcGAwMDCQAAAgUHYXNzZXRJZAkA2AQBBQx3YXZlc0Fzc2V0SWQGCQAAAgUHYXNzZXRJZAIFV0FWRVMJAGYCBQxtaW5TZWxsV2F2ZXMFBXByaWNlBwkBAiE9AgUFcHJpY2UAAAcJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UGAQ1nZXRCaWRBc3NldElkAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQCBVdBVkVTBQR1bml0CQDZBAEFB2Fzc2V0SWQBFmdldFByaWNlQXNzZXRJZEZyb21CaWQBCmJpZERhdGFLZXkEB2JpZERhdGEJAQ5nZXRTdHJpbmdCeUtleQEJAKwCAgUKYmlkRGF0YUtleQIFX09QRU4DCQAAAgUHYmlkRGF0YQIACQACAQINQmlkIG5vdCBmb3VuZAQKYmlkRGF0YUFycgkAtQkCBQdiaWREYXRhAgFfBAliaWRBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpiaWREYXRhQXJyAAEECmJpZEFzc2V0SWQJAQ1nZXRCaWRBc3NldElkAQkAkQMCBQpiaWREYXRhQXJyAAADCQBnAgAABQliaWRBbW91bnQJAAIBAgxXcm9uZyBhbW91bnQJAJQKAgUJYmlkQW1vdW50BQpiaWRBc3NldElkAQxpZENhbGxlckRhdGUBAWkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cJAJUKAwkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMIBQlsYXN0QmxvY2sJdGltZXN0YW1wAQdidXlNaW50BQFpBWFydElkBmlzc3VlcgViaWRJZAhiaWRPd25lcgQNJHQwMTE1NDUxMTYwNQkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTE1NDUxMTYwNQJfMQQGY2FsbGVyCAUNJHQwMTE1NDUxMTYwNQJfMgQEZGF0ZQgFDSR0MDExNTQ1MTE2MDUCXzMEBWlzQmlkAwMDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBQZpc3N1ZXIJAQIhPQIFCGJpZE93bmVyAgAHCQECIT0CBQViaWRJZAIABwYHBAhibG9ja0VuZAkBD2dldEludGVnZXJCeUtleQEJAQprZXlFbmRTYWxlAgUGY2FsbGVyBQVhcnRJZAMDAwkBAiE9AgUIYmxvY2tFbmQAAAkAZwIFBmhlaWdodAUIYmxvY2tFbmQHCQEBIQEFBWlzQmlkBwkAAgECC1NhbGUgZW5kZWQuBA5jYWxsZXJJc0lzc3VlcgkAAAIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwUGaXNzdWVyBAh0b3RhbE5GVAkBD2dldEludGVnZXJCeUtleQECEHRvdGFsX25mdF9pc3N1ZWQEBnNpZ25JRAkBDmdldFN0cmluZ0J5S2V5AQkBCWtleVNpZ25JRAIFBmlzc3VlcgUFYXJ0SWQEC2FydHdvcmtOYW1lCQEOZ2V0U3RyaW5nQnlLZXkBCQEHa2V5TmFtZQIFBmlzc3VlcgUFYXJ0SWQDCQAAAgULYXJ0d29ya05hbWUCAAkAAgECEUFydCBkb2Vzbid0IGV4aXN0BAhpc09uU2FsZQkBD2dldEJvb2xlYW5CeUtleQEJAQlrZXlPblNhbGUCBQZpc3N1ZXIFBWFydElkBAphbW91bnRTb2xkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCWtleUlzc3VlZAIFBmlzc3VlcgUFYXJ0SWQEDGFydHdvcmtQcmljZQMFDmNhbGxlcklzSXNzdWVyCQBoAgUZY3VycmVudENlcnRpZmljYXRpb25QcmljZQACCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCGtleVByaWNlAgUGaXNzdWVyBQVhcnRJZAQMcHJpY2VBc3NldElkAwUOY2FsbGVySXNJc3N1ZXIJANgEAQULc2lnbkFzc2V0SWQJAQ5nZXRTdHJpbmdCeUtleQEJARJrZXlBc3NldElkQWNjZXB0ZWQCBQZpc3N1ZXIFBWFydElkBAptYXhDYW5TZWxsCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCmtleU1heE1pbnQCBQZpc3N1ZXIFBWFydElkAwMDCQEBIQEFBWlzQmlkCQEBIQEFDmNhbGxlcklzSXNzdWVyBwMDCQBnAgAABQxhcnR3b3JrUHJpY2UGCQEBIQEFCGlzT25TYWxlBgkAZwIAAAUKbWF4Q2FuU2VsbAcJAAIBAhBBcnQgbm90IGZvciBzYWxlAwMDCQEBIQEFBWlzQmlkBQ5jYWxsZXJJc0lzc3VlcgcJAGcCAAAFCm1heENhblNlbGwHCQACAQIUTWF4IGlzc3VhYmxlIG5vdCBzZXQECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmlzc3VlcgMDBQVpc0JpZAkBAiE9AgUJY2hlY2tVc2VyAgAHCQACAQUJY2hlY2tVc2VyBApiaWREYXRhS2V5CQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICBGJpZF8FBWFydElkAgFfBQZpc3N1ZXICAV8FCGJpZE93bmVyAgFfBQViaWRJZAQNJHQwMTMzODQxMzU1NQMFBWlzQmlkCQEWZ2V0UHJpY2VBc3NldElkRnJvbUJpZAEFCmJpZERhdGFLZXkJARR2YWxpZGF0ZVByaWNlQXNzZXRJZAMFAWkFDHByaWNlQXNzZXRJZAUMYXJ0d29ya1ByaWNlBAZhbW91bnQIBQ0kdDAxMzM4NDEzNTU1Al8xBAdhc3NldElkCAUNJHQwMTMzODQxMzU1NQJfMgQFYWdlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAJARJrZXlBcnRpc3RBZ2VudEFkZHIBBQZpc3N1ZXIFC2ZlZVJlY2VpdmVyBAphZ2VudFNoYXJlCQELdmFsdWVPckVsc2UCCQCaCAIFCHVzZXJEYXBwCQEPa2V5UHJpbWFyeVNoYXJlAQUGaXNzdWVyAAAEDWlzV2hpdGVsaXN0ZWQJAQ5jaGVja1doaXRlbGlzdAEFBmlzc3VlcgQDY3V0AwkAZgIFDWlzV2hpdGVsaXN0ZWQFBmhlaWdodAAAAwkAAAIFB2Fzc2V0SWQFC3NpZ25Bc3NldElkBQdzaWduQ3V0BQt1c2RuV2F2ZUN1dAQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUDY3V0AGQEDmFtb3VudEZvckFnZW50AwMDCQECIT0CBQVhZ2VudAULZmVlUmVjZWl2ZXIJAGYCBQphZ2VudFNoYXJlAAAHCQBmAgUGaGVpZ2h0BQ1pc1doaXRlbGlzdGVkBwkAawMFBmFtb3VudAUKYWdlbnRTaGFyZQBkAAAEEGFtb3VudEZvckNyZWF0b3IJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24DCQAAAgUKYW1vdW50U29sZAUKbWF4Q2FuU2VsbAkAAgECDEFydCBzb2xkIG91dAQNbmV3QW1vdW50U29sZAkAZAIFCmFtb3VudFNvbGQAAQQJaXNzdWVNZXRhCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIJQ3JlYXRvcjogBQZpc3N1ZXICCiwKIEFydElEOiAFBWFydElkAgssCiBTaWduSUQ6IAUGc2lnbklEAhEsCiBBcnR3b3JrIG5hbWU6IAULYXJ0d29ya05hbWUCCiwKIElzc3VlOiAJAKQDAQUNbmV3QW1vdW50U29sZAIBLwkApAMBBQptYXhDYW5TZWxsBAhpc3N1ZU5GVAkAwggFCQCsAgICA1NBXwkApAMBCQBkAgUIdG90YWxORlQAAQUJaXNzdWVNZXRhAAEAAAcEBWlkTkZUCQC4CAEFCGlzc3VlTkZUBApzZWxsU3RhdHVzAwMJAAACBQ1uZXdBbW91bnRTb2xkBQptYXhDYW5TZWxsBgkBASEBBQhpc09uU2FsZQcGBApyZWNlaXZlTkZUAwMDCQAAAgUGY2FsbGVyBQZpc3N1ZXIJAQIhPQIFCGJpZE93bmVyAgAHCQECIT0CBQViaWRJZAIABwkBEUBleHRyTmF0aXZlKDEwNjIpAQUIYmlkT3duZXIIBQFpBmNhbGxlcgQKYXNzZXRJZEJpZAMJAQEhAQkBCWlzRGVmaW5lZAEFB2Fzc2V0SWQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFB2Fzc2V0SWQEB2JpZERhdGEJAQ5nZXRTdHJpbmdCeUtleQEJAKwCAgUKYmlkRGF0YUtleQIFX09QRU4ECWJpZERlbE9sZAkBC0RlbGV0ZUVudHJ5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgQJYmlkVXBkYXRlCQELU3RyaW5nRW50cnkCCQCsAgIFCmJpZERhdGFLZXkCB19DTE9TRUQJAKwCAgkArAICBQdiaWREYXRhAgFfCQCkAwEFBGRhdGUEB3NvbGRLZXkJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIJYXJ0X3NvbGRfCQCkAwEFDW5ld0Ftb3VudFNvbGQCBF9vZl8JAKQDAQUKbWF4Q2FuU2VsbAIBXwUFYXJ0SWQCAV8FBmlzc3VlcgQJc29sZFZhbHVlAwkBASEBBQVpc0JpZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQZjYWxsZXICAV8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8JAKQDAQUMYXJ0d29ya1ByaWNlAgFfBQxwcmljZUFzc2V0SWQCAV8JANgEAQUFaWRORlQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkApQgBBQpyZWNlaXZlTkZUAgFfCQCkAwEFBGRhdGUCAV8FAmlkAgFfCQCkAwEFBmFtb3VudAIBXwUKYXNzZXRJZEJpZAIBXwkA2AQBBQVpZE5GVAQIc29sZERhdGEJAQtTdHJpbmdFbnRyeQIFB3NvbGRLZXkFCXNvbGRWYWx1ZQQLY29tbWlzc2lvbnMDCQECIT0CBQ5hbW91bnRGb3JBZ2VudAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtmZWVSZWNlaXZlcgkAZQIFDWFtb3VudEZvclNpZ24FDmFtb3VudEZvckFnZW50BQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQVhZ2VudAUOYW1vdW50Rm9yQWdlbnQFB2Fzc2V0SWQFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIFDWFtb3VudEZvclNpZ24FB2Fzc2V0SWQFA25pbAQGYnV5UmVzCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQlrZXlJc3N1ZWQCBQZpc3N1ZXIFBWFydElkBQ1uZXdBbW91bnRTb2xkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgIEbmZ0XwkA2AQBBQVpZE5GVAUHc29sZEtleQkAzAgCCQEMSW50ZWdlckVudHJ5AgIQdG90YWxfbmZ0X2lzc3VlZAkAZAIFCHRvdGFsTkZUAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQprZXlFbmRTYWxlAgUGaXNzdWVyBQVhcnRJZAAACQDMCAIJAQxCb29sZWFuRW50cnkCCQEJa2V5T25TYWxlAgUGaXNzdWVyBQVhcnRJZAUKc2VsbFN0YXR1cwkAzAgCBQhpc3N1ZU5GVAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGaXNzdWVyBRBhbW91bnRGb3JDcmVhdG9yBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCnJlY2VpdmVORlQAAQUFaWRORlQFA25pbAULY29tbWlzc2lvbnMDBQVpc0JpZAkAzAgCBQhzb2xkRGF0YQkAzAgCBQliaWRVcGRhdGUJAMwIAgUJYmlkRGVsT2xkBQZidXlSZXMJAMwIAgUIc29sZERhdGEFBmJ1eVJlcwoGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkBCGNvbnRhaW5zAgUDa2V5AgVjb25mXwkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIgRW50cmllcyBzdGFydGluZyB3aXRoIGNvbmZfIG9ubHkJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAWkBCmFkZEFydHdvcmsMCnNoYTI1Nkhhc2gGc2lnbklEBG5hbWULZGVzY3JpcHRpb24EdGFncwR0eXBlCmNpZERpc3BsYXkMc2hhMjU2RXhwb3J0CWNpZEV4cG9ydA1zaGEyNTZMaWNlbmNlCmNpZExpY2VuY2UHY3Jhd2xlcgQNJHQwMTc0MTcxNzQ1OAkBDGlkQ2FsbGVyRGF0ZQEFAWkEBWFydElkCAUNJHQwMTc0MTcxNzQ1OAJfMQQGY2FsbGVyCAUNJHQwMTc0MTcxNzQ1OAJfMgQEZGF0ZQgFDSR0MDE3NDE3MTc0NTgCXzMDCQEBIQEJAQx2YWxpZGF0ZUhhc2gBBQpzaGEyNTZIYXNoCQACAQIkSGFzaCBzaG91bGQgYmUgNjQgY2hhcmFjdGVycyBtYXhpbXVtBA0kdDAxNzU2MzE3NjMyCQEKc2V0TEljZW5jZQIFCmNpZExpY2VuY2UFDXNoYTI1NkxpY2VuY2UECmxpY2VuY2VDSUQIBQ0kdDAxNzU2MzE3NjMyAl8xBAtsaWNlbmNlSGFzaAgFDSR0MDE3NTYzMTc2MzICXzIED3ZhbGlkYXRlQXJ0d29yawkBE3ZhbGlkYXRlQXJ0d29ya0RhdGEJBQZjYWxsZXIFCmNpZERpc3BsYXkFCWNpZEV4cG9ydAUKbGljZW5jZUNJRAUMc2hhMjU2RXhwb3J0BQtsaWNlbmNlSGFzaAUEbmFtZQULZGVzY3JpcHRpb24FBHRhZ3MDCQECIT0CBQ92YWxpZGF0ZUFydHdvcmsCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQNJHQwMTc4NTYxNzg5OAkBD3ZhbGlkYXRlUGF5bWVudAEFAWkEBmFtb3VudAgFDSR0MDE3ODU2MTc4OTgCXzEEB2Fzc2V0SWQIBQ0kdDAxNzg1NjE3ODk4Al8yAwkBASEBCQEJaXNEZWZpbmVkAQUGYW1vdW50CQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcECmVudHJ5RXhpc3QJAQ5nZXRTdHJpbmdCeUtleQEJARJrZXlUeGlkQnlIYXNoT3duZXICBQpzaGEyNTZIYXNoBQZjYWxsZXIDCQECIT0CBQplbnRyeUV4aXN0AgAJAAIBAhRZb3UgYWxyZWFkeSBhZGRlZCBpdAQJaGFzaEV4aXN0CQEOZ2V0U3RyaW5nQnlLZXkBCQEOa2V5T3duZXJCeUhhc2gBBQpzaGEyNTZIYXNoAwkBAiE9AgUJaGFzaEV4aXN0AgAJAAIBAhdIYXNoIGFscmVhZHkgcmVnaXN0ZXJlZAQPaXNTaWduQ2VydGlmaWVkCQEUY2hlY2tTaWduQ2VydGlmaWNhdGUDBQZzaWduSUQFBmNhbGxlcgUKc2hhMjU2SGFzaAMJAQEhAQUPaXNTaWduQ2VydGlmaWVkCQACAQIsU2lnbiBDZXJ0aWZpY2F0ZSBub3QgZm91bmQgZm9yIHRoaXMgYWRkcmVzcy4JAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleU93bmVyQnlIYXNoAQUKc2hhMjU2SGFzaAUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlUeGlkQnlIYXNoT3duZXICBQpzaGEyNTZIYXNoBQZjYWxsZXIFBWFydElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5RGF0ZQIFBmNhbGxlcgUFYXJ0SWQFBGRhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleU5hbWUCBQZjYWxsZXIFBWFydElkBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQdrZXlEZXNjAgUGY2FsbGVyBQVhcnRJZAULZGVzY3JpcHRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleURpc3BsYXlDaWQCBQZjYWxsZXIFBWFydElkBQpjaWREaXNwbGF5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFeHBvcnRDaWQCBQZjYWxsZXIFBWFydElkBQljaWRFeHBvcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleUV4cG9ydEhhc2gCBQZjYWxsZXIFBWFydElkBQxzaGEyNTZFeHBvcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleUxpY2VuY2VIYXNoAgUGY2FsbGVyBQVhcnRJZAULbGljZW5jZUhhc2gJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleUxpY2VuY2VDaWQCBQZjYWxsZXIFBWFydElkBQpsaWNlbmNlQ0lECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQdrZXlUeXBlAgUGY2FsbGVyBQVhcnRJZAUEdHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5VGFncwIFBmNhbGxlcgUFYXJ0SWQFBHRhZ3MJAMwIAgkBDEludGVnZXJFbnRyeQIJAQprZXlNYXhNaW50AgUGY2FsbGVyBQVhcnRJZAAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAQlrZXlTaWduSUQCBQZjYWxsZXIFBWFydElkBQZzaWduSUQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQlrZXlJc3N1ZWQCBQZjYWxsZXIFBWFydElkAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQlrZXlPblNhbGUCBQZjYWxsZXIFBWFydElkBwkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5aWRCeVNpZ25pZAIFBmNhbGxlcgUGc2lnbklEBQVhcnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5SGFzaEJ5VHhpZEFkZHICBQZjYWxsZXIFBWFydElkBQpzaGEyNTZIYXNoCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQprZXlDcmF3bGVyAgUGY2FsbGVyBQVhcnRJZAUHY3Jhd2xlcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIFBmFtb3VudAUHYXNzZXRJZAUDbmlsAWkBDXVwZGF0ZUFydHdvcmsLBHR4aWQEbmFtZQtkZXNjcmlwdGlvbgR0YWdzBHR5cGUKY2lkRGlzcGxheQxzaGEyNTZFeHBvcnQJY2lkRXhwb3J0DXNoYTI1NkxpY2VuY2UKY2lkTGljZW5jZQdjcmF3bGVyAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBAZjYWxsZXIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQNJHQwMjA2NzgyMDc0NwkBCnNldExJY2VuY2UCBQpjaWRMaWNlbmNlBQ1zaGEyNTZMaWNlbmNlBApsaWNlbmNlQ0lECAUNJHQwMjA2NzgyMDc0NwJfMQQLbGljZW5jZUhhc2gIBQ0kdDAyMDY3ODIwNzQ3Al8yBA92YWxpZGF0ZUFydHdvcmsJARN2YWxpZGF0ZUFydHdvcmtEYXRhCQUGY2FsbGVyBQpjaWREaXNwbGF5BQljaWRFeHBvcnQFCmxpY2VuY2VDSUQFDHNoYTI1NkV4cG9ydAULbGljZW5jZUhhc2gFBG5hbWUFC2Rlc2NyaXB0aW9uBQR0YWdzAwkBAiE9AgUPdmFsaWRhdGVBcnR3b3JrAgAJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEECmVudHJ5RXhpc3QJAQ5nZXRTdHJpbmdCeUtleQEJAQdrZXlOYW1lAgUGY2FsbGVyBQR0eGlkAwkAAAIFCmVudHJ5RXhpc3QCAAkAAgECD0VudHJ5IG5vdCBmb3VuZAQEZmxhZwkBDmdldFN0cmluZ0J5S2V5AQkBB2tleUZsYWcCBQZjYWxsZXIFBHR4aWQDCQAAAgUEZmxhZwIHSUxMRUdBTAkAAgECHUNhbm5vdCB1cGRhdGUgSUxMRUdBTCBhcnR3b3JrAwkBASEBCQELaXNBcnRNaW50ZWQCBQZjYWxsZXIFBHR4aWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleU5hbWUCBQZjYWxsZXIFBHR4aWQFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleURlc2MCBQZjYWxsZXIFBHR4aWQFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlEaXNwbGF5Q2lkAgUGY2FsbGVyBQR0eGlkBQpjaWREaXNwbGF5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFeHBvcnRDaWQCBQZjYWxsZXIFBHR4aWQFCWNpZEV4cG9ydAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5RXhwb3J0SGFzaAIFBmNhbGxlcgUEdHhpZAUMc2hhMjU2RXhwb3J0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlMaWNlbmNlQ2lkAgUGY2FsbGVyBQR0eGlkBQpsaWNlbmNlQ0lECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlMaWNlbmNlSGFzaAIFBmNhbGxlcgUEdHhpZAULbGljZW5jZUhhc2gJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleVRhZ3MCBQZjYWxsZXIFBHR4aWQFBHRhZ3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleVR5cGUCBQZjYWxsZXIFBHR4aWQFBHR5cGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleUNyYXdsZXICBQZjYWxsZXIFBHR4aWQFB2NyYXdsZXIFA25pbAkAAgECDkFscmVhZHkgbWludGVkAWkBC2ZsYWdBcnR3b3JrBAVhcnRJZARhZGRyBGZsYWcEbm90ZQQNJHQwMjIyMDMyMjIzNgkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMjIyMDMyMjIzNgJfMQQGY2FsbGVyCAUNJHQwMjIyMDMyMjIzNgJfMgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAgdDT05TRU5UCQDMCAICAAkAzAgCAg9DSEFOR0VfUkVRVUlSRUQJAMwIAgIHRkxBR0dFRAkAzAgCAgdJTExFR0FMBQNuaWwFBGZsYWcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleUZsYWcCBQRhZGRyBQVhcnRJZAUEZmxhZwkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5Tm90ZQIFBGFkZHIFBWFydElkBQRub3RlBQNuaWwJAAIBCQCsAgICDlVua25vdyBzdGF0dXMgBQRmbGFnCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAFpAQ1kZWxldGVBcnR3b3JrAgVhcnRJZARhZGRyBA0kdDAyMjY4NjIyNzE5CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAyMjY4NjIyNzE5Al8xBAZjYWxsZXIIBQ0kdDAyMjY4NjIyNzE5Al8yBAlhZGRyVG9Vc2UDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCBQRqb2VwCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIFBGFkZHIFBmNhbGxlcgQKZW50cnlFeGlzdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQEOZ2V0U3RyaW5nQnlLZXkBCQEHa2V5TmFtZQIFCWFkZHJUb1VzZQUFYXJ0SWQCIE5vIGFydCBtYXRjaGluZyBmb3IgdGhpcyBhZGRyZXNzAwkAAAIFCmVudHJ5RXhpc3QCAAkAAgECIE5vIGFydCBtYXRjaGluZyBmb3IgdGhpcyBhZGRyZXNzBApzaGEyNTZIYXNoCQEOZ2V0U3RyaW5nQnlLZXkBCQERa2V5SGFzaEJ5VHhpZEFkZHICBQlhZGRyVG9Vc2UFBWFydElkAwkAAAIFCnNoYTI1Nkhhc2gCAAkAAgECJU5vIGFydCBoYXNoIG1hdGNoaW5nIGZvciB0aGlzIGFkZHJlc3MEBnNpZ25JRAkBDmdldFN0cmluZ0J5S2V5AQkBCWtleVNpZ25JRAIFCWFkZHJUb1VzZQUFYXJ0SWQDCQAAAgUGc2lnbklEAgAJAAIBAhNObyBTSUdOIElEIG1hdGNoaW5nBAxkYXRhVG9EZWxldGUJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleURhdGUCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlOYW1lAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5RGVzYwIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleURpc3BsYXlDaWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxrZXlFeHBvcnRDaWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlFeHBvcnRIYXNoAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEOa2V5TGljZW5jZUhhc2gCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlMaWNlbmNlQ2lkAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5VHlwZQIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleVRhZ3MCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQprZXlNYXhNaW50AgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEJa2V5U2lnbklEAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEJa2V5SXNzdWVkAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEJa2V5T25TYWxlAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5RmxhZwIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCGtleVByaWNlAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5QXNzZXRJZEFjY2VwdGVkAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEOa2V5T3duZXJCeUhhc2gBBQpzaGEyNTZIYXNoCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlpZEJ5U2lnbmlkAgUJYWRkclRvVXNlBQZzaWduSUQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleVR4aWRCeUhhc2hPd25lcgIFCnNoYTI1Nkhhc2gFCWFkZHJUb1VzZQkAzAgCCQELRGVsZXRlRW50cnkBCQEKa2V5RW5kU2FsZQIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleU5vdGUCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQprZXlDcmF3bGVyAgUJYWRkclRvVXNlBQVhcnRJZAUDbmlsAwkBASEBCQELaXNBcnRNaW50ZWQCBQlhZGRyVG9Vc2UFBWFydElkAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBQxkYXRhVG9EZWxldGUDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyBQxkYXRhVG9EZWxldGUJAAIBAihBcnQgYWxyZWFkeSBtaW50ZWQsIHlvdSBjYW5ub3QgZGVsZXRlIGl0AWkBC3NlbGxBcnR3b3JrBQVhcnRJZAVwcmljZQdtYXhNaW50B2Fzc2V0SWQIYmxvY2tFbmQEDSR0MDI1NTQ2MjU1NzkJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDI1NTQ2MjU1NzkCXzEEBmNhbGxlcggFDSR0MDI1NTQ2MjU1NzkCXzIEC2FydHdvcmtOYW1lCQEOZ2V0U3RyaW5nQnlLZXkBCQEHa2V5TmFtZQIFBmNhbGxlcgUFYXJ0SWQDCQAAAgULYXJ0d29ya05hbWUCAAkAAgECI1RoaXMgYXJ0IGRvZXNuJ3QgbWF0Y2ggeW91ciBhY2NvdW50BARmbGFnCQEOZ2V0U3RyaW5nQnlLZXkBCQEHa2V5RmxhZwIFBmNhbGxlcgUFYXJ0SWQDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAg9DSEFOR0VfUkVRVUlSRUQJAMwIAgIHRkxBR0dFRAkAzAgCAgdJTExFR0FMBQNuaWwFBGZsYWcJAAIBAg9GbGFnZ2VkIGFydHdvcmsEBmJpZE5icgkBD2dldEludGVnZXJCeUtleQEJAKwCAgISY3VycmVudF9iaWRhbW91bnRfBQVhcnRJZAMJAGYCAAAFCGJsb2NrRW5kCQACAQIMTmVnYXRpdmUgZW5kAwMJAGYCBQhibG9ja0VuZAAAAwkBAiE9AgUHbWF4TWludAABBgkBAiE9AgUFcHJpY2UAAAcJAAIBAjpUaW1lZCBvZmZlciBvbmx5IGFsbG93ZWQgZm9yIHVuaXF1ZSBlZGl0aW9uIGFuZCBvZmZlciBvbmx5BApiYXNlSGVpZ2h0AwkAAAIFCGJsb2NrRW5kAAAAAAUGaGVpZ2h0AwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFB2Fzc2V0SWQJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwCBQdhc3NldElkBQVwcmljZQkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIECmFtb3VudFNvbGQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEJa2V5SXNzdWVkAgUGY2FsbGVyBQVhcnRJZAQKbWF4Q2FuU2VsbAkBD2dldEludGVnZXJCeUtleQEJAQprZXlNYXhNaW50AgUGY2FsbGVyBQVhcnRJZAMJAGYCBQdtYXhNaW50AGQJAAIBAhwxMDAgZWRpdGlvbnMgbWF4IHBlciBhcnR3b3JrAwMJAQIhPQIFCmFtb3VudFNvbGQAAAkAAAIFCmFtb3VudFNvbGQFCm1heENhblNlbGwHCQACAQIUTWF4IGVkaXRpb24gcmVhY2hlZC4DAwkAZgIFCmFtb3VudFNvbGQAAAkBAiE9AgUKbWF4Q2FuU2VsbAUHbWF4TWludAcJAAIBAiZDYW5ub3QgY2hhbmdlIG1heGltdW0gaXNzdWFibGUgYW55bW9yZQMDCQBmAgUGYmlkTmJyAAAJAQIhPQIFCm1heENhblNlbGwFB21heE1pbnQHCQACAQIxQ2Fubm90IGNoYW5nZSBtYXhpbXVtIGlzc3VhYmxlIHdpdGggYWN0aXZlIG9yZGVycwQKc2VsbFN0YXR1cwMDCQBmAgUFcHJpY2UAAAkAZgIFB21heE1pbnQAAAcGBwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCWtleU9uU2FsZQIFBmNhbGxlcgUFYXJ0SWQFCnNlbGxTdGF0dXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAQhrZXlQcmljZQIFBmNhbGxlcgUFYXJ0SWQFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEKa2V5TWF4TWludAIFBmNhbGxlcgUFYXJ0SWQFB21heE1pbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUFzc2V0SWRBY2NlcHRlZAIFBmNhbGxlcgUFYXJ0SWQFB2Fzc2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQprZXlFbmRTYWxlAgUGY2FsbGVyBQVhcnRJZAkAZAIFCmJhc2VIZWlnaHQFCGJsb2NrRW5kBQNuaWwBaQEKYnV5QXJ0d29yawIFYXJ0SWQGaXNzdWVyCQEHYnV5TWludAUFAWkFBWFydElkBQZpc3N1ZXICAAIAAWkBBnNldEJpZAIFYXJ0SWQGaXNzdWVyBA0kdDAyNzg4OTI3OTI3CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAyNzg4OTI3OTI3Al8xBAZjYWxsZXIIBQ0kdDAyNzg4OTI3OTI3Al8yBARkYXRlCAUNJHQwMjc4ODkyNzkyNwJfMwQNJHQwMjc5MzMyNzk2OQkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAyNzkzMzI3OTY5Al8xBAZhbW91bnQIBQ0kdDAyNzkzMzI3OTY5Al8yBAdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAIFV0FWRVMJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAQIYmxvY2tFbmQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEKa2V5RW5kU2FsZQIFBmlzc3VlcgUFYXJ0SWQDAwkBAiE9AgUIYmxvY2tFbmQAAAkAZwIFBmhlaWdodAUIYmxvY2tFbmQHCQACAQILU2FsZSBlbmRlZC4EBmJpZE5icgkBD2dldEludGVnZXJCeUtleQEJAKwCAgISY3VycmVudF9iaWRhbW91bnRfBQVhcnRJZAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQISYXNzZXQgbm90IGFjY2VwdGVkAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAgUHYXNzZXRJZAUGYW1vdW50CQACAQIOV3JvbmcgbWluIHNlbGwECmFtb3VudFNvbGQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEJa2V5SXNzdWVkAgUGaXNzdWVyBQVhcnRJZAQKbWF4Q2FuU2VsbAkBD2dldEludGVnZXJCeUtleQEJAQprZXlNYXhNaW50AgUGaXNzdWVyBQVhcnRJZAMJAGcCAAAFCm1heENhblNlbGwJAAIBAiNObyBtYXggZWRpdGlvbiBzZXQgZm9yIHRoaXMgYXJ0d29yawMJAGcCBQphbW91bnRTb2xkBQptYXhDYW5TZWxsCQACAQIYU29sZCBvdXQsIHlvdSBjYW5ub3QgYmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgRiaWRfBQVhcnRJZAIBXwUGaXNzdWVyAgFfBQZjYWxsZXICAV8FAmlkAgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICBQdhc3NldElkAgFfCQCkAwEFBmFtb3VudAIBXwkApAMBBQRkYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgICEmN1cnJlbnRfYmlkYW1vdW50XwUFYXJ0SWQJAGQCBQZiaWROYnIAAQUDbmlsAWkBCWFjY2VwdEJpZAQFYXJ0SWQGaXNzdWVyBWJpZElkCGJpZE93bmVyBAZjYWxsZXIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwMJAQIhPQIFBmNhbGxlcgUGaXNzdWVyCQACAQIZWW91IGNhbm5vdCBkbyB0aGlzIGFjdGlvbgkBB2J1eU1pbnQFBQFpBQVhcnRJZAUGaXNzdWVyBQViaWRJZAUIYmlkT3duZXIBaQEJY2FuY2VsQmlkBAVhcnRJZAZpc3N1ZXIFYmlkSWQIYmlkT3duZXIEDSR0MDI5NDI5Mjk0ODkJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDI5NDI5Mjk0ODkCXzEEBmNhbGxlcggFDSR0MDI5NDI5Mjk0ODkCXzIEBGRhdGUIBQ0kdDAyOTQyOTI5NDg5Al8zAwMJAQIhPQIFBmNhbGxlcgUIYmlkT3duZXIJAQIhPQIFBmNhbGxlcgUGaXNzdWVyBwkAAgECGVlvdSBjYW5ub3QgZG8gdGhpcyBhY3Rpb24EDXJldHVybk1vbmV5VG8DCQAAAgUGY2FsbGVyBQZpc3N1ZXIFCGJpZE93bmVyBQZjYWxsZXIEBmJpZE5icgkBD2dldEludGVnZXJCeUtleQEJAKwCAgISY3VycmVudF9iaWRhbW91bnRfBQVhcnRJZAQKYmlkRGF0YUtleQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgRiaWRfBQVhcnRJZAIBXwUGaXNzdWVyAgFfBQhiaWRPd25lcgIBXwUFYmlkSWQEB2JpZERhdGEJAQ5nZXRTdHJpbmdCeUtleQEJAKwCAgUKYmlkRGF0YUtleQIFX09QRU4DCQAAAgUHYmlkRGF0YQIACQACAQINQmlkIG5vdCBmb3VuZAQKYmlkRGF0YUFycgkAtQkCBQdiaWREYXRhAgFfBAdhc3NldElkCQENZ2V0QmlkQXNzZXRJZAEJAJEDAgUKYmlkRGF0YUFycgAABAliaWRTdGF0dXMCCENBTkNFTEVECQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUKYmlkRGF0YUtleQIFX09QRU4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFCmJpZERhdGFLZXkCAV8FCWJpZFN0YXR1cwkArAICCQCsAgIFB2JpZERhdGECAV8JAKQDAQUEZGF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FBWFydElkCQBlAgUGYmlkTmJyAAEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFDXJldHVybk1vbmV5VG8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpiaWREYXRhQXJyAAEFB2Fzc2V0SWQFA25pbADAijRA", "height": 2218275, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "1.1.6"
5+
6+func b (c) = valueOrElse(getString(this, c), "")
7+
8+
9+let d = true
10+
11+let e = value(addressFromString(b("conf_oracle_fee")))
12+
13+let f = value(addressFromString(b("conf_signweb_dapp")))
14+
15+let g = b("conf_fee_receiver")
16+
17+let h = if (d)
18+ then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
19+ else value(addressFromString(b("conf_users_dapp")))
20+
21+let i = value(addressFromString(b("conf_whitelist_dapp")))
22+
23+let j = fromBase58String(b("conf_accepted_asset_SIGN"))
24+
25+let k = fromBase58String(b("conf_accepted_asset_USDN"))
26+
27+let l = base58''
28+
29+let m = b("conf_admin_1")
30+
31+let n = b("conf_admin_2")
32+
33+func o (c) = valueOrErrorMessage(getInteger(e, c), "Integer undefine or 0 in oracle")
34+
35+
36+func p (c) = valueOrElse(getInteger(this, c), 0)
37+
38+
39+func q (c) = valueOrElse(getInteger(i, c), 0)
40+
41+
42+func r (c) = valueOrElse(getBoolean(this, c), false)
43+
44+
45+let s = 7
46+
47+let t = 10
48+
49+let u = b("conf_default_licence")
50+
51+let v = b("conf_default_licence_hash")
52+
53+let w = valueOrElse(getBoolean(h, "conf_dapp_is_running"), true)
54+
55+let x = valueOrElse(getString(h, "conf_maintenance_msg"), "")
56+
57+let y = "SUSPENDED"
58+
59+let z = "REMOVED"
60+
61+let A = "UNREGISTERED"
62+
63+let B = "ALLOWED"
64+
65+let C = o(("certification_fee_" + toBase58String(j)))
66+
67+func D (E,F,G) = {
68+ let H = getString(f, ((("data_fc_" + E) + "_") + F))
69+ if ($isInstanceOf(H, "String"))
70+ then {
71+ let I = H
72+ if (contains(I, G))
73+ then true
74+ else false
75+ }
76+ else false
77+ }
78+
79+
80+func J (K) = if (contains(K, "/"))
81+ then if (if ((76 > size(K)))
82+ then (size(split(K, "/")[0]) == 59)
83+ else false)
84+ then (16 > size(split(K, "/")[1]))
85+ else false
86+ else false
87+
88+
89+func L (M) = (size(M) == 64)
90+
91+
92+func N (O) = ("user_status_" + O)
93+
94+
95+func P (O,Q) = ((("art_date_" + Q) + "_") + O)
96+
97+
98+func R (O,Q) = ((("art_name_" + Q) + "_") + O)
99+
100+
101+func S (O,Q) = ((("art_desc_" + Q) + "_") + O)
102+
103+
104+func T (O,Q) = ((("art_display_cid_" + Q) + "_") + O)
105+
106+
107+func U (O,Q) = ((("art_export_hash_" + Q) + "_") + O)
108+
109+
110+func V (O,Q) = ((("art_export_cid_" + Q) + "_") + O)
111+
112+
113+func W (O,Q) = ((("art_maxmint_" + Q) + "_") + O)
114+
115+
116+func X (O,Q) = ((("art_signid_" + Q) + "_") + O)
117+
118+
119+func Y (O,Q) = ((("art_issued_" + Q) + "_") + O)
120+
121+
122+func Z (O,Q) = ((("art_onsale_" + Q) + "_") + O)
123+
124+
125+func aa (O,Q) = ((("art_licence_hash_" + Q) + "_") + O)
126+
127+
128+func ab (O,Q) = ((("art_licence_cid_" + Q) + "_") + O)
129+
130+
131+func ac (O,Q) = ((("art_tags_" + Q) + "_") + O)
132+
133+
134+func ad (O,Q) = ((("art_type_" + Q) + "_") + O)
135+
136+
137+func ae (O,Q) = ((("art_note_" + Q) + "_") + O)
138+
139+
140+func af (O,Q) = ((("art_crawler_cid_" + Q) + "_") + O)
141+
142+
143+func ag (O,Q) = ((("art_price_" + Q) + "_") + O)
144+
145+
146+func ah (O,Q) = ((("art_endsale_" + Q) + "_") + O)
147+
148+
149+func ai (O,Q) = ((("art_assetAccepted_" + Q) + "_") + O)
150+
151+
152+func aj (O,Q) = ((("art_flag_" + Q) + "_") + O)
153+
154+
155+func ak (al) = ("artist_agent_" + al)
156+
157+
158+func am (al) = ("artist_agent_primary_" + al)
159+
160+
161+func an (O,ao) = ((("get_hashbytxidaddr_" + ao) + "_") + O)
162+
163+
164+func ap (G) = ("get_owner_by_hash_" + G)
165+
166+
167+func aq (O,ar) = ((("get_artidbysignid_" + ar) + "_") + O)
168+
169+
170+func as (G,O) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((G + O)))))
171+
172+
173+func at (au,av,aw) = if (!(J(au)))
174+ then throw("Wrong Display CID")
175+ else if (!(J(av)))
176+ then throw("Wrong Export CID")
177+ else if (if ((aw != ""))
178+ then !(J(aw))
179+ else false)
180+ then throw("Wrong Licence CID")
181+ else true
182+
183+
184+func ax (ay,az) = if (!(L(ay)))
185+ then throw("Export Hash 64 char. max")
186+ else if (!(L(az)))
187+ then throw("Licence Hash 64 char. max")
188+ else true
189+
190+
191+func aA (aB,aC) = if ((size(aB) == 0))
192+ then throw("Field cannot be is empty")
193+ else if ((size(aB) > aC))
194+ then throw((aB + " is too long"))
195+ else true
196+
197+
198+func aD (O) = {
199+ let aE = valueOrElse(getString(h, N(O)), A)
200+ if (if ((aE == A))
201+ then true
202+ else (aE == B))
203+ then "Register this account first with \"Account\" tab"
204+ else if ((aE == y))
205+ then "Account suspended"
206+ else if ((aE == z))
207+ then "Account removed"
208+ else ""
209+ }
210+
211+
212+func aF (aw,az) = {
213+ let K = if ((size(aw) == 0))
214+ then u
215+ else aw
216+ let M = if ((size(az) == 0))
217+ then v
218+ else az
219+ $Tuple2(K, M)
220+ }
221+
222+
223+func aG (O,au,av,aH,ay,aI,aJ,aK,aL) = {
224+ let aM = aD(O)
225+ if ((aM != ""))
226+ then throw(aM)
227+ else if ((size(au) == 0))
228+ then throw("Display CID cannot be empty")
229+ else if (!(at(au, av, aH)))
230+ then throw("Problem with CID")
231+ else if (!(ax(ay, aI)))
232+ then throw("Problem with Hashes")
233+ else if (!(aA(aJ, 100)))
234+ then throw("100 Char. max name")
235+ else if (!(aA(aK, 1000)))
236+ then throw("1000 Char. max description")
237+ else if ((size(split(aL, ",")) > 5))
238+ then throw("5 tags max.")
239+ else ""
240+ }
241+
242+
243+func aN (aO) = if ((size(aO.payments) == 0))
244+ then throw("No payment attached")
245+ else {
246+ let aP = value(aO.payments[0])
247+ let aQ = value(aP.amount)
248+ $Tuple2(aP, aQ)
249+ }
250+
251+
252+func aR (aO) = {
253+ let aS = aN(aO)
254+ let aP = aS._1
255+ let aQ = aS._2
256+ let aT = if (if (isDefined(aP.assetId))
257+ then (aP.assetId == j)
258+ else false)
259+ then aP.assetId
260+ else throw("Only SIGN token accepted as transaction fee")
261+ if ((aQ != C))
262+ then throw(("Payment amount should be " + toString(C)))
263+ else $Tuple2(aQ, aT)
264+ }
265+
266+
267+func aU (aV,Q) = {
268+ let H = getInteger(this, Y(aV, Q))
269+ if ($isInstanceOf(H, "Int"))
270+ then {
271+ let aW = H
272+ if ((aW != 0))
273+ then true
274+ else false
275+ }
276+ else false
277+ }
278+
279+
280+func aX (aO,aY,aZ) = {
281+ let ba = aN(aO)
282+ let aP = ba._1
283+ let aQ = ba._2
284+ let aT = if (!(isDefined(aP.assetId)))
285+ then unit
286+ else if (if ((size(aY) > 0))
287+ then (toBase58String(value(aP.assetId)) == aY)
288+ else false)
289+ then aP.assetId
290+ else throw("Wrong asset id")
291+ if (if ((aT == unit))
292+ then (aY != "")
293+ else false)
294+ then throw("Wrong asset id")
295+ else if ((aZ != aQ))
296+ then throw("Payment don't match")
297+ else $Tuple2(aQ, aT)
298+ }
299+
300+
301+func bb (aT) = if (if (if (if ((aT != toBase58String(j)))
302+ then (aT != toBase58String(l))
303+ else false)
304+ then (aT != "WAVES")
305+ else false)
306+ then (aT != toBase58String(k))
307+ else false)
308+ then throw("Only SIGN, USDN or WAVES accepted")
309+ else true
310+
311+
312+func bc (aT,bd) = {
313+ let be = if (d)
314+ then 10
315+ else o("waves_min_sell")
316+ let bf = 1000000
317+ let bg = if (d)
318+ then 1
319+ else (C * 2)
320+ if (if (if (if (if ((aT == toBase58String(k)))
321+ then (bf > bd)
322+ else false)
323+ then (bd != 0)
324+ else false)
325+ then true
326+ else if (if ((aT == toBase58String(j)))
327+ then (bg > bd)
328+ else false)
329+ then (bd != 0)
330+ else false)
331+ then true
332+ else if (if (if ((aT == toBase58String(l)))
333+ then true
334+ else (aT == "WAVES"))
335+ then (be > bd)
336+ else false)
337+ then (bd != 0)
338+ else false)
339+ then throw("Wrong minimum sell price")
340+ else true
341+ }
342+
343+
344+func bh (aT) = if ((aT == "WAVES"))
345+ then unit
346+ else fromBase58String(aT)
347+
348+
349+func bi (bj) = {
350+ let bk = b((bj + "_OPEN"))
351+ if ((bk == ""))
352+ then throw("Bid not found")
353+ else {
354+ let bl = split(bk, "_")
355+ let bm = parseIntValue(bl[1])
356+ let bn = bh(bl[0])
357+ if ((0 >= bm))
358+ then throw("Wrong amount")
359+ else $Tuple2(bm, bn)
360+ }
361+ }
362+
363+
364+func bo (aO) = if (!(w))
365+ then throw(x)
366+ else $Tuple3(toBase58String(aO.transactionId), toBase58String(aO.caller.bytes), lastBlock.timestamp)
367+
368+
369+func bp (aO,Q,bq,br,bs) = {
370+ let bt = bo(aO)
371+ let bu = bt._1
372+ let O = bt._2
373+ let bv = bt._3
374+ let bw = if (if (if ((toBase58String(aO.caller.bytes) == bq))
375+ then (bs != "")
376+ else false)
377+ then (br != "")
378+ else false)
379+ then true
380+ else false
381+ let bx = p(ah(O, Q))
382+ if (if (if ((bx != 0))
383+ then (height >= bx)
384+ else false)
385+ then !(bw)
386+ else false)
387+ then throw("Sale ended.")
388+ else {
389+ let by = (toBase58String(aO.caller.bytes) == bq)
390+ let bz = p("total_nft_issued")
391+ let E = b(X(bq, Q))
392+ let bA = b(R(bq, Q))
393+ if ((bA == ""))
394+ then throw("Art doesn't exist")
395+ else {
396+ let bB = r(Z(bq, Q))
397+ let bC = p(Y(bq, Q))
398+ let aZ = if (by)
399+ then (C * 2)
400+ else p(ag(bq, Q))
401+ let aY = if (by)
402+ then toBase58String(j)
403+ else b(ai(bq, Q))
404+ let bD = p(W(bq, Q))
405+ if (if (if (!(bw))
406+ then !(by)
407+ else false)
408+ then if (if ((0 >= aZ))
409+ then true
410+ else !(bB))
411+ then true
412+ else (0 >= bD)
413+ else false)
414+ then throw("Art not for sale")
415+ else if (if (if (!(bw))
416+ then by
417+ else false)
418+ then (0 >= bD)
419+ else false)
420+ then throw("Max issuable not set")
421+ else {
422+ let aM = aD(bq)
423+ if (if (bw)
424+ then (aM != "")
425+ else false)
426+ then throw(aM)
427+ else {
428+ let bj = ((((((("bid_" + Q) + "_") + bq) + "_") + bs) + "_") + br)
429+ let bE = if (bw)
430+ then bi(bj)
431+ else aX(aO, aY, aZ)
432+ let aQ = bE._1
433+ let aT = bE._2
434+ let bF = valueOrElse(getString(h, ak(bq)), g)
435+ let bG = valueOrElse(getInteger(h, am(bq)), 0)
436+ let bH = q(bq)
437+ let bI = if ((bH > height))
438+ then 0
439+ else if ((aT == j))
440+ then s
441+ else t
442+ let bJ = fraction(aQ, bI, 100)
443+ let bK = if (if (if ((bF != g))
444+ then (bG > 0)
445+ else false)
446+ then (height > bH)
447+ else false)
448+ then fraction(aQ, bG, 100)
449+ else 0
450+ let bL = (aQ - bJ)
451+ if ((bC == bD))
452+ then throw("Art sold out")
453+ else {
454+ let bM = (bC + 1)
455+ let bN = ((((((((((("Creator: " + bq) + ",
456+ ArtID: ") + Q) + ",
457+ SignID: ") + E) + ",
458+ Artwork name: ") + bA) + ",
459+ Issue: ") + toString(bM)) + "/") + toString(bD))
460+ let bO = Issue(("SA_" + toString((bz + 1))), bN, 1, 0, false)
461+ let bP = calculateAssetId(bO)
462+ let bQ = if (if ((bM == bD))
463+ then true
464+ else !(bB))
465+ then false
466+ else true
467+ let bR = if (if (if ((O == bq))
468+ then (bs != "")
469+ else false)
470+ then (br != "")
471+ else false)
472+ then addressFromStringValue(bs)
473+ else aO.caller
474+ let bS = if (!(isDefined(aT)))
475+ then "WAVES"
476+ else toBase58String(value(aT))
477+ let bk = b((bj + "_OPEN"))
478+ let bT = DeleteEntry((bj + "_OPEN"))
479+ let bU = StringEntry((bj + "_CLOSED"), ((bk + "_") + toString(bv)))
480+ let bV = ((((((("art_sold_" + toString(bM)) + "_of_") + toString(bD)) + "_") + Q) + "_") + bq)
481+ let bW = if (!(bw))
482+ then ((((((((((O + "_") + toString(bv)) + "_") + bu) + "_") + toString(aZ)) + "_") + aY) + "_") + toBase58String(bP))
483+ else ((((((((((toString(bR) + "_") + toString(bv)) + "_") + bu) + "_") + toString(aQ)) + "_") + bS) + "_") + toBase58String(bP))
484+ let bX = StringEntry(bV, bW)
485+ let bY = if ((bK != 0))
486+ then [ScriptTransfer(Address(fromBase58String(g)), (bJ - bK), aT), ScriptTransfer(Address(fromBase58String(bF)), bK, aT)]
487+ else [ScriptTransfer(Address(fromBase58String(g)), bJ, aT)]
488+ let bZ = ([IntegerEntry(Y(bq, Q), bM), StringEntry(("nft_" + toBase58String(bP)), bV), IntegerEntry("total_nft_issued", (bz + 1)), IntegerEntry(ah(bq, Q), 0), BooleanEntry(Z(bq, Q), bQ), bO, ScriptTransfer(Address(fromBase58String(bq)), bL, aT), ScriptTransfer(bR, 1, bP)] ++ bY)
489+ if (bw)
490+ then [bX, bU, bT] :: bZ
491+ else bX :: bZ
492+ }
493+ }
494+ }
495+ }
496+ }
497+ }
498+
499+
500+@Callable(ca)
501+func setConf (c,cb) = {
502+ let O = toString(ca.caller)
503+ if (containsElement([m, toString(this)], O))
504+ then if (contains(c, "conf_"))
505+ then [StringEntry(c, cb)]
506+ else throw("Entries starting with conf_ only")
507+ else throw("You are not allowed to change this")
508+ }
509+
510+
511+
512+@Callable(aO)
513+func addArtwork (G,E,aJ,aK,aL,cc,au,ay,av,az,aw,cd) = {
514+ let ce = bo(aO)
515+ let Q = ce._1
516+ let O = ce._2
517+ let bv = ce._3
518+ if (!(L(G)))
519+ then throw("Hash should be 64 characters maximum")
520+ else {
521+ let cf = aF(aw, az)
522+ let aH = cf._1
523+ let aI = cf._2
524+ let cg = aG(O, au, av, aH, ay, aI, aJ, aK, aL)
525+ if ((cg != ""))
526+ then throw("Something went wrong!")
527+ else {
528+ let ch = aR(aO)
529+ let aQ = ch._1
530+ let aT = ch._2
531+ if (!(isDefined(aQ)))
532+ then throw("Something went wrong")
533+ else {
534+ let ci = b(as(G, O))
535+ if ((ci != ""))
536+ then throw("You already added it")
537+ else {
538+ let cj = b(ap(G))
539+ if ((cj != ""))
540+ then throw("Hash already registered")
541+ else {
542+ let ck = D(E, O, G)
543+ if (!(ck))
544+ then throw("Sign Certificate not found for this address.")
545+ else [StringEntry(ap(G), O), StringEntry(as(G, O), Q), IntegerEntry(P(O, Q), bv), StringEntry(R(O, Q), aJ), StringEntry(S(O, Q), aK), StringEntry(T(O, Q), au), StringEntry(V(O, Q), av), StringEntry(U(O, Q), ay), StringEntry(aa(O, Q), aI), StringEntry(ab(O, Q), aH), StringEntry(ad(O, Q), cc), StringEntry(ac(O, Q), aL), IntegerEntry(W(O, Q), 0), StringEntry(X(O, Q), E), IntegerEntry(Y(O, Q), 0), BooleanEntry(Z(O, Q), false), StringEntry(aq(O, E), Q), StringEntry(an(O, Q), G), StringEntry(af(O, Q), cd), ScriptTransfer(Address(fromBase58String(g)), aQ, aT)]
546+ }
547+ }
548+ }
549+ }
550+ }
551+ }
552+
553+
554+
555+@Callable(aO)
556+func updateArtwork (ao,aJ,aK,aL,cc,au,ay,av,az,aw,cd) = if (!(w))
557+ then throw(x)
558+ else {
559+ let O = toBase58String(aO.caller.bytes)
560+ let cl = aF(aw, az)
561+ let aH = cl._1
562+ let aI = cl._2
563+ let cg = aG(O, au, av, aH, ay, aI, aJ, aK, aL)
564+ if ((cg != ""))
565+ then throw("Something went wrong!")
566+ else {
567+ let ci = b(R(O, ao))
568+ if ((ci == ""))
569+ then throw("Entry not found")
570+ else {
571+ let cm = b(aj(O, ao))
572+ if ((cm == "ILLEGAL"))
573+ then throw("Cannot update ILLEGAL artwork")
574+ else if (!(aU(O, ao)))
575+ then [StringEntry(R(O, ao), aJ), StringEntry(S(O, ao), aK), StringEntry(T(O, ao), au), StringEntry(V(O, ao), av), StringEntry(U(O, ao), ay), StringEntry(ab(O, ao), aH), StringEntry(aa(O, ao), aI), StringEntry(ac(O, ao), aL), StringEntry(ad(O, ao), cc), StringEntry(af(O, ao), cd)]
576+ else throw("Already minted")
577+ }
578+ }
579+ }
580+
581+
582+
583+@Callable(aO)
584+func flagArtwork (Q,cn,cm,co) = {
585+ let cp = bo(aO)
586+ let bu = cp._1
587+ let O = cp._2
588+ if (containsElement([m, toString(this)], O))
589+ then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cm))
590+ then [StringEntry(aj(cn, Q), cm), StringEntry(ae(cn, Q), co)]
591+ else throw(("Unknow status " + cm))
592+ else throw("You are not allowed")
593+ }
594+
595+
596+
597+@Callable(aO)
598+func deleteArtwork (Q,cn) = {
599+ let cq = bo(aO)
600+ let bu = cq._1
601+ let O = cq._2
602+ let aV = if (containsElement([m, n, toString(this)], O))
603+ then cn
604+ else O
605+ let ci = valueOrErrorMessage(b(R(aV, Q)), "No art matching for this address")
606+ if ((ci == ""))
607+ then throw("No art matching for this address")
608+ else {
609+ let G = b(an(aV, Q))
610+ if ((G == ""))
611+ then throw("No art hash matching for this address")
612+ else {
613+ let E = b(X(aV, Q))
614+ if ((E == ""))
615+ then throw("No SIGN ID matching")
616+ else {
617+ let cr = [DeleteEntry(P(aV, Q)), DeleteEntry(R(aV, Q)), DeleteEntry(S(aV, Q)), DeleteEntry(T(aV, Q)), DeleteEntry(V(aV, Q)), DeleteEntry(U(aV, Q)), DeleteEntry(aa(aV, Q)), DeleteEntry(ab(aV, Q)), DeleteEntry(ad(aV, Q)), DeleteEntry(ac(aV, Q)), DeleteEntry(W(aV, Q)), DeleteEntry(X(aV, Q)), DeleteEntry(Y(aV, Q)), DeleteEntry(Z(aV, Q)), DeleteEntry(aj(aV, Q)), DeleteEntry(ag(aV, Q)), DeleteEntry(ai(aV, Q)), DeleteEntry(ap(G)), DeleteEntry(aq(aV, E)), DeleteEntry(as(G, aV)), DeleteEntry(ah(aV, Q)), DeleteEntry(ae(aV, Q)), DeleteEntry(af(aV, Q))]
618+ if (!(aU(aV, Q)))
619+ then if (!(w))
620+ then throw(x)
621+ else cr
622+ else if (containsElement([m, toString(this)], O))
623+ then cr
624+ else throw("Art already minted, you cannot delete it")
625+ }
626+ }
627+ }
628+ }
629+
630+
631+
632+@Callable(aO)
633+func sellArtwork (Q,bd,cs,aT,bx) = {
634+ let ct = bo(aO)
635+ let bu = ct._1
636+ let O = ct._2
637+ let bA = b(R(O, Q))
638+ if ((bA == ""))
639+ then throw("This art doesn't match your account")
640+ else {
641+ let cm = b(aj(O, Q))
642+ if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cm))
643+ then throw("Flagged artwork")
644+ else {
645+ let cu = p(("current_bidamount_" + Q))
646+ if ((0 > bx))
647+ then throw("Negative end")
648+ else if (if ((bx > 0))
649+ then if ((cs != 1))
650+ then true
651+ else (bd != 0)
652+ else false)
653+ then throw("Timed offer only allowed for unique edition and offer only")
654+ else {
655+ let cv = if ((bx == 0))
656+ then 0
657+ else height
658+ if (!(bb(aT)))
659+ then throw("Something went wrong!")
660+ else if (!(bc(aT, bd)))
661+ then throw("Something went wrong!")
662+ else {
663+ let aM = aD(O)
664+ if ((aM != ""))
665+ then throw(aM)
666+ else {
667+ let bC = p(Y(O, Q))
668+ let bD = p(W(O, Q))
669+ if ((cs > 100))
670+ then throw("100 editions max per artwork")
671+ else if (if ((bC != 0))
672+ then (bC == bD)
673+ else false)
674+ then throw("Max edition reached.")
675+ else if (if ((bC > 0))
676+ then (bD != cs)
677+ else false)
678+ then throw("Cannot change maximum issuable anymore")
679+ else if (if ((cu > 0))
680+ then (bD != cs)
681+ else false)
682+ then throw("Cannot change maximum issuable with active orders")
683+ else {
684+ let bQ = if (if ((bd > 0))
685+ then (cs > 0)
686+ else false)
687+ then true
688+ else false
689+[BooleanEntry(Z(O, Q), bQ), IntegerEntry(ag(O, Q), bd), IntegerEntry(W(O, Q), cs), StringEntry(ai(O, Q), aT), IntegerEntry(ah(O, Q), (cv + bx))]
690+ }
691+ }
692+ }
693+ }
694+ }
695+ }
696+ }
697+
698+
699+
700+@Callable(aO)
701+func buyArtwork (Q,bq) = bp(aO, Q, bq, "", "")
702+
703+
704+
705+@Callable(aO)
706+func setBid (Q,bq) = {
707+ let cw = bo(aO)
708+ let bu = cw._1
709+ let O = cw._2
710+ let bv = cw._3
711+ let cx = aN(aO)
712+ let aP = cx._1
713+ let aQ = cx._2
714+ let aT = if (!(isDefined(aP.assetId)))
715+ then "WAVES"
716+ else toBase58String(value(aP.assetId))
717+ let bx = p(ah(bq, Q))
718+ if (if ((bx != 0))
719+ then (height >= bx)
720+ else false)
721+ then throw("Sale ended.")
722+ else {
723+ let cu = p(("current_bidamount_" + Q))
724+ if (!(bb(aT)))
725+ then throw("asset not accepted")
726+ else if (!(bc(aT, aQ)))
727+ then throw("Wrong min sell")
728+ else {
729+ let bC = p(Y(bq, Q))
730+ let bD = p(W(bq, Q))
731+ if ((0 >= bD))
732+ then throw("No max edition set for this artwork")
733+ else if ((bC >= bD))
734+ then throw("Sold out, you cannot bid")
735+ else [StringEntry((((((((("bid_" + Q) + "_") + bq) + "_") + O) + "_") + bu) + "_OPEN"), ((((aT + "_") + toString(aQ)) + "_") + toString(bv))), IntegerEntry(("current_bidamount_" + Q), (cu + 1))]
736+ }
737+ }
738+ }
739+
740+
741+
742+@Callable(aO)
743+func acceptBid (Q,bq,br,bs) = {
744+ let O = toBase58String(aO.caller.bytes)
745+ if ((O != bq))
746+ then throw("You cannot do this action")
747+ else bp(aO, Q, bq, br, bs)
748+ }
749+
750+
751+
752+@Callable(aO)
753+func cancelBid (Q,bq,br,bs) = {
754+ let cy = bo(aO)
755+ let bu = cy._1
756+ let O = cy._2
757+ let bv = cy._3
758+ if (if ((O != bs))
759+ then (O != bq)
760+ else false)
761+ then throw("You cannot do this action")
762+ else {
763+ let cz = if ((O == bq))
764+ then bs
765+ else O
766+ let cu = p(("current_bidamount_" + Q))
767+ let bj = ((((((("bid_" + Q) + "_") + bq) + "_") + bs) + "_") + br)
768+ let bk = b((bj + "_OPEN"))
769+ if ((bk == ""))
770+ then throw("Bid not found")
771+ else {
772+ let bl = split(bk, "_")
773+ let aT = bh(bl[0])
774+ let cA = "CANCELED"
775+[DeleteEntry((bj + "_OPEN")), StringEntry(((bj + "_") + cA), ((bk + "_") + toString(bv))), IntegerEntry(("current_bidamount_" + Q), (cu - 1)), ScriptTransfer(Address(fromBase58String(cz)), parseIntValue(bl[1]), aT)]
776+ }
777+ }
778+ }
779+
780+

github/deemru/w8io/169f3d6 
50.19 ms