tx · 3ekyQ6357xiFkeVApnMBCFWbwgAZZDsSkEKtAD3EohZG

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.01500000 Waves

2019.10.25 14:58 [735621] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "3ekyQ6357xiFkeVApnMBCFWbwgAZZDsSkEKtAD3EohZG", "fee": 1500000, "feeAssetId": null, "timestamp": 1572004716561, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "4VYdqEcy3bh4Z5kofEFJUPM2TcKZ2fCExsCVx3AP6EMRc6SQghAtn2bQj7LxCHVXoAjaYbZagP6YbKS7Jy4boPfk" ], "script": "base64:AAIDAAAAAAAAAD8IARIDCgEIEgMKAQgSBQoDAQEIEgQKAggBEgQKAggIEgQKAggBEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgAAAAxAAAAAANkYXkAAAAAAAAABaAAAAAABVdBVkVTBQAAAAR1bml0AAAAAAR3QlRDAQAAACBs+mr/xe2qjAt/tSqT0qIML4KC23R6BIxT+/0TH3Og/wAAAAAEd0VVUgEAAAAg7BZhBF97kSFBBjs38+fX1Pjz08YOqoCX85C/0PoVupkAAAAABHdVU0QBAAAAIN0cvQHwz3UFMHgHsqi2OJjRRd1cH7ozWuNAb/pmWXD9AAAAAAlhdWN0VG9rZW4BAAAAAQAAAAAACXN0YXRlT3BlbgIAAAAGT3BlbmVkAAAAAA5zdGF0ZVN1Z2dlc3RlZAIAAAAJU3VnZ2VzdGVkAAAAAAtzdGF0ZUNhbmNlbAIAAAAIQ2FuY2VsZWQAAAAAD3N0YXRlSW5Qcm9ncmVzcwIAAAAKSW5Qcm9ncmVzcwAAAAARc3RhdGVXYWl0NENvbmZpcm0CAAAAE1dhaXRGb3JDb25maXJtYXRpb24AAAAADXN0YXRlQ29tcGxldGUCAAAACUNvbXBsZXRlZAAAAAAMc3RhdGVEaXNwdXRlAgAAAAdEaXNwdXRlAAAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAIAAAAPRGlzcHV0ZVJlc29sdmVkAAAAAAZjbGllbnQCAAAAAkNMAAAAAApmcmVlbGFuY2VyAgAAAAJGTAAAAAALYW1iYXNzYWRvcjECAAAALEZuZUNKcU01QlAyZUF1eXRlTWl1RUVIWUFMckU0YXhoRWZjcEhWR2JkcjVzAAAAAAthbWJhc3NhZG9yMgIAAAAsNlFBTWRzc2IxR0pqcFFWUVFjbng4ZktVOFdodGNGOVpzUWhpZmRUaEFFSzgAAAAAC2FtYmFzc2Fkb3IzAgAAACwyaXR1d1c3RFNSc0xQM1ZjYm5wcjk4UVVRTUdGUldLbXlZUEZxc1VLUkRvUAAAAAALYW1iYXNzYWRvcjQCAAAALEFOc1BRb2NFRVN5TGIzeVFxazJwd0Nkb0s3UEpReExvWlZwWXZzbTNTeFVHAAAAAAthbWJhc3NhZG9yNQIAAAAsMTNWaXh3UWluMU16WkN5WTY5TlNXTVNCTkVWMjdSemMxNTlvN3VaWFI5VlMBAAAABmdldEludAAAAAEAAAADa2V5BAAAABB2YWx1ZUpvYnNPbkdvaW5nCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQQAAAAHJG1hdGNoMAUAAAAQdmFsdWVKb2JzT25Hb2luZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABAAAACnBtdEFzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAApwbXRBc3NldElkAgAAAAVXQVZFUwMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAEd0JUQwIAAAADQlRDAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAR3RVVSAgAAAANFVVIDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAABHdVU0QCAAAAA1VTRAMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAJYXVjdFRva2VuAgAAAARBVUNUCQAAAgAAAAECAAAAFEFzc2V0SWQgaXMgaW5jb3JyZWN0AQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABAAAAEGF1Y3Rpb25Bc3NldE5hbWUDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAABVdBVkVTBQAAAAVXQVZFUwMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAADQlRDBQAAAAR3QlRDAwkAAAAAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAANFVVIFAAAABHdFVVIDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAA1VTRAUAAAAEd1VTRAMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAEQVVDVAUAAAAJYXVjdFRva2VuCQAAAgAAAAECAAAAEkluY29ycmVjdCBBc3NldCBJZAEAAAAJdGltZUNoZWNrAAAAAwAAAAtjdXJyZW50VGltZQAAAAlzdGFydFRpbWUAAAAOZXhwaXJhdGlvblRpbWUJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAJc3RhcnRUaW1lBQAAAA5leHBpcmF0aW9uVGltZQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACAAAABmFtb3VudAAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMYXVjdGlvblByaWNlCQAAAgAAAAECAAAAM0JpZCBhbW91bnQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0aGFuIGF1Y3Rpb25QcmljZQUAAAAGYW1vdW50AQAAABZpbmNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAACQAAZAAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAFhCQAAZQAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAwkAAGcAAAACBQAAAAFhAAAAAAAAAAAABQAAAAFhCQAAAgAAAAECAAAAJkZyZWV6ZWQgYW1vdW50IGNvdWxkbid0IGJlIGxlc3MgdGhhbiAwAQAAABBjbGllbnRSZWdpc3RlcmVkAAAAAQAAAAljYWxsZXJQdWIEAAAAEmNsaWVudElzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWNhbGxlclB1YgIAAAAHX0NsaWVudAQAAAAHJG1hdGNoMAUAAAASY2xpZW50SXNSZWdpc3RlcmVkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAClPbmx5IHJlZ2lzdGVyZWQgdXNlcnMgY2FuIGNyZWF0ZSBhdWN0aW9ucwEAAAAUZnJlZWxhbmNlclJlZ2lzdGVyZWQAAAABAAAACWNhbGxlclB1YgQAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWNhbGxlclB1YgIAAAALX0ZyZWVsYW5jZXIEAAAAByRtYXRjaDAFAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAAJY2FsbGVyUHViCQAAAgAAAAECAAAAI09ubHkgcmVnaXN0ZXJlZCB1c2VycyBjYW4gbWFrZSBiZXRzAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEAAAAJcG10QW1vdW50AwkAAGYAAAACBQAAAAlwbXRBbW91bnQAAAAAAAAAAAAFAAAACXBtdEFtb3VudAkAAAIAAAABAgAAABxBbW91bnQgbXVzdCBiZSBoaWdoZXIgdGhlbiAwAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVTdGF0ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVN0YXRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBTdGF0ZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQ2xpZW50UHViCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5fQXVjdGlvbkNsaWVudAQAAAAHJG1hdGNoMAUAAAAOdmFsdWVDbGllbnRQdWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlQXVjdGlvblN0YXJ0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fQXVjdGlvblN0YXJ0BAAAAAckbWF0Y2gwBQAAABF2YWx1ZUF1Y3Rpb25TdGFydAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gU3RhcnQgdGltZSB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAFHZhbHVlYXVjdGlvbkR1cmF0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfQXVjdGlvbkR1cmF0aW9uBAAAAAckbWF0Y2gwBQAAABR2YWx1ZWF1Y3Rpb25EdXJhdGlvbgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gZHVyYXRpb24gdGltZSB3YXMgbm90IGZvdW5kAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA9fSm9iUGVyZm9ybWFuY2UEAAAAByRtYXRjaDAFAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAqQXVjdGlvbiBqb2IgcGVyZm9ybWFuY2UgdGltZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQXNzZXROYW1lCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAApfQXNzZXROYW1lBAAAAAckbWF0Y2gwBQAAAA52YWx1ZUFzc2V0TmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gYXNzZXQgbmFtZSB3YXMgbm90IGZvdW5kAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVQcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVByaWNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBwcmljZSB3YXMgbm90IGZvdW5kAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEAAAAJYXVjdGlvbklkBAAAAAt2YWx1ZUNsaWVudAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0hpcmVkRnJlZWxhbmNlcgQAAAAHJG1hdGNoMAUAAAALdmFsdWVDbGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlTG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUxvd2VzdEJpZGRlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kAQAAAAZnZXRCaWQAAAACAAAACWF1Y3Rpb25JZAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVOZXdBdWN0aW9uUHJpY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAEAAAAVZGVmaW5lTmV3TG93ZXN0QmlkZGVyAAAABAAAAAlhdWN0aW9uSWQAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgAAAAliaWRBbW91bnQAAAANbmV3RnJlZWxhbmNlcgQAAAAVdmFsdWVDdXJyZW50TG93ZXN0QmlkCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViBAAAABBjdXJyZW50TG93ZXN0QmlkBAAAAAckbWF0Y2gwBQAAABV2YWx1ZUN1cnJlbnRMb3dlc3RCaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAMJAABmAAAAAgUAAAAQY3VycmVudExvd2VzdEJpZAUAAAAJYmlkQW1vdW50BQAAAA1uZXdGcmVlbGFuY2VyBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViAQAAABZjaG9vc2VkRnJlZWxhbmNlckNoZWNrAAAAAgAAAAlhdWN0aW9uSWQAAAANZnJlZWxhbmNlclB1YgQAAAANbmV3RnJlZWxhbmNlcgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANZnJlZWxhbmNlclB1YgQAAAAHJG1hdGNoMAUAAAANbmV3RnJlZWxhbmNlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAA1mcmVlbGFuY2VyUHViCQAAAgAAAAECAAAAHkVycm9yOiBJbmNvcnJlY3QgZnJlZWxhbmNlclB1YgEAAAAVbmV3RXhlY3V0aW9uVGltZUNoZWNrAAAAAgAAAA1leGVjdXRpb25EYXlzAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24EAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAADZGF5AwkAAGYAAAACBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAAgAAAAECAAAAOE5ldyBleGVjdXRpb24gdGltZSBtdXN0IG1vcmUgdGhhbiBjdXJyZW50IGV4ZWN1dGlvbiB0aW1lAQAAAAlnZXRSYXRpbmcAAAABAAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAAt2YWx1ZVJhdGluZwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZVJhdGluZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IAAAABAAAACWNhbGxlclB1YgMDAwMDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjEGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjIGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjMGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjQGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjUFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAC1Pbmx5IGRlZmluZWQgYW1iYXNzYWRvcnMgY2FuIHZvdGUgaW4gZGlzcHV0ZXMBAAAAE2FtYmFzc2Fkb3JWb3RlQ2hlY2sAAAADAAAACWF1Y3Rpb25JZAAAAA1hbWJhc3NhZG9yUHViAAAABHZvdGUEAAAACGtleVZvdGVyCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAADWFtYmFzc2Fkb3JQdWIEAAAACnZhbHVlVm90ZXIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Vm90ZXIEAAAAD2FtYmFzc2Fkb3JWb3RlZAQAAAAHJG1hdGNoMAUAAAAKdmFsdWVWb3RlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBgcDBQAAAA9hbWJhc3NhZG9yVm90ZWQJAAACAAAAAQIAAAAZQW1iYXNzYWRvciB2b3RlZCBhbHJlYWR5IAMDCQAAAAAAAAIFAAAABHZvdGUFAAAABmNsaWVudAYJAAAAAAAAAgUAAAAEdm90ZQUAAAAKZnJlZWxhbmNlcgUAAAAEdm90ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxWb3RlIGlzIGluY29ycmVjdC4gTXVzdCBiZTogBQAAAAZjbGllbnQCAAAABCBvciAFAAAACmZyZWVsYW5jZXIBAAAADmdldFZvdGVzTnVtYmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEHZhbHVlVm90ZXNOdW1iZXIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMEAAAAByRtYXRjaDAFAAAAEHZhbHVlVm90ZXNOdW1iZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABlWb3Rlc051bWJlciB3YXMgbm90IGZvdW5kAQAAABNkZWZpbmVEaXNwdXRlV2lubmVyAAAABAAAAAlhdWN0aW9uSWQAAAAHbmV3Vm90ZQAAAA1hdWN0aW9uQ2xpZW50AAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAA9hbWJhc3NhZG9yMVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yMQQAAAAPYW1iYXNzYWRvcjJWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjIEAAAAD2FtYmFzc2Fkb3IzVm90ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAAC2FtYmFzc2Fkb3IzBAAAAA9hbWJhc3NhZG9yNFZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yNAQAAAAPYW1iYXNzYWRvcjVWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjUEAAAAAnYxAwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yMVZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjIDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3IyVm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAJ2MwMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjNWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnY0AwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yNFZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjUDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3I1Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAtjdXJyZW50Vm90ZQMJAAAAAAAAAgUAAAAHbmV3Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAA52b3Rlc0ZvckNsaWVudAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAAnYxBQAAAAJ2MgUAAAACdjMFAAAAAnY0BQAAAAJ2NQUAAAALY3VycmVudFZvdGUDCQAAZgAAAAIFAAAADnZvdGVzRm9yQ2xpZW50AAAAAAAAAAACBQAAAA1hdWN0aW9uQ2xpZW50BQAAABFhdWN0aW9uRnJlZWxhbmNlcgAAAAsAAAABaQEAAAAQZnJlZWxhbmNlclNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIFAAAABGluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAQX1BlbmRpbmdFYXJuaW5ncwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA1fUGFpZEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADl9Ub3RhbEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzUGVuZGluZwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA5fSm9ic0NvbXBsZXRlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAApfSm9ic1RvdGFsAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAMY2xpZW50U2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50BQAAAARpbmZvCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzQ3JlYXRlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAxfSm9ic09uR29pbmcAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAANX0pvYkluRGlzcHV0ZQAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAADWNyZWF0ZUF1Y3Rpb24AAAADAAAAEGpvYkV4ZWN1dGlvbkRheXMAAAATYXVjdGlvbkR1cmF0aW9uRGF5cwAAAAthdWN0aW9uSW5mbwQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAJYXVjdGlvbklkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABBjbGllbnRSZWdpc3RlcmVkAAAAAQUAAAAJY2FsbGVyUHViBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAJcG10QW1vdW50CAUAAAADcG10AAAABmFtb3VudAQAAAAMYXVjdGlvblByaWNlCQEAAAAXY3JlYXRlQXVjdGlvblByaWNlQ2hlY2sAAAABBQAAAAlwbXRBbW91bnQEAAAADGF1Y3Rpb25TdGFydAUAAAAGaGVpZ2h0BAAAABVhdWN0aW9uRHVyYXRpb25CbG9ja3MJAABoAAAAAgUAAAATYXVjdGlvbkR1cmF0aW9uRGF5cwUAAAADZGF5BAAAABJibG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAAQam9iRXhlY3V0aW9uRGF5cwUAAAADZGF5BAAAAAxwbXRBc3NldE5hbWUJAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAAC2pvYnNDcmVhdGVkCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic0NyZWF0ZWQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWaW5jcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAADHBtdEFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAlzdGF0ZU9wZW4JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfSW5mbwUAAAALYXVjdGlvbkluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5fQXVjdGlvbkNsaWVudAUAAAANYXVjdGlvbkNsaWVudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9BdWN0aW9uU3RhcnQFAAAADGF1Y3Rpb25TdGFydAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9BdWN0aW9uRHVyYXRpb24FAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAD19Kb2JQZXJmb3JtYW5jZQUAAAASYmxvY2tzRm9yRXhlY3V0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAKX0Fzc2V0TmFtZQUAAAAMcG10QXNzZXROYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAMX0pvYnNDcmVhdGVkCQAAZAAAAAIFAAAAC2pvYnNDcmVhdGVkAAAAAAAAAAABBQAAAANuaWwAAAABaQEAAAAHbWFrZUJpZAAAAAIAAAAJYXVjdGlvbklkAAAABmFtb3VudAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA1uZXdGcmVlbGFuY2VyCQEAAAAUZnJlZWxhbmNlclJlZ2lzdGVyZWQAAAABBQAAAAljYWxsZXJQdWIEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UEAAAACWJpZEFtb3VudAkBAAAADmJpZEFtb3VudENoZWNrAAAAAgUAAAAGYW1vdW50BQAAAAxhdWN0aW9uUHJpY2UEAAAAEWF1Y3Rpb25UaW1laXNPdmVyCQEAAAAJdGltZUNoZWNrAAAAAwUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAC3N0YXRlQ2FuY2VsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uTG93ZXN0QmlkCQEAAAAGZ2V0QmlkAAAAAgUAAAAJYXVjdGlvbklkBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAABBhdWN0aW9uTG93ZXN0QmlkBQAAAA5kQXBwQ29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEGFtb3VudERpZmZlcmVuY2UFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1uZXdGcmVlbGFuY2VyBQAAAAliaWRBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAAJY2FsbGVyUHViBQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIJAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABJuZXdMb3dlc3RCaWRkZXJQdWIJAQAAABVkZWZpbmVOZXdMb3dlc3RCaWRkZXIAAAAEBQAAAAlhdWN0aW9uSWQFAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIFAAAACWJpZEFtb3VudAUAAAANbmV3RnJlZWxhbmNlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9Mb3dlc3RCaWRkZXJQdWIFAAAAEm5ld0xvd2VzdEJpZGRlclB1YgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADW5ld0ZyZWVsYW5jZXIFAAAACWJpZEFtb3VudAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxJbmNvcnJlY3Qgam9iSWQgc3RhdGUuIE5vdzogBQAAAAxhdWN0aW9uU3RhdGUCAAAACywgbXVzdCBiZTogBQAAAAlzdGF0ZU9wZW4CAAAABCBvciAFAAAADnN0YXRlU3VnZ2VzdGVkAAAAAWkBAAAAEGNob29zZUZyZWVsYW5jZXIAAAACAAAACWF1Y3Rpb25JZAAAAA1mcmVlbGFuY2VyUHViBAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uU3RhcnQJAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAASQXNzZXROYW1lVG9Bc3NldElkAAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAANbmV3RnJlZWxhbmNlcgkBAAAAFmNob29zZWRGcmVlbGFuY2VyQ2hlY2sAAAACBQAAAAlhdWN0aW9uSWQFAAAADWZyZWVsYW5jZXJQdWIEAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQJAQAAAAZnZXRCaWQAAAACBQAAAAlhdWN0aW9uSWQFAAAADW5ld0ZyZWVsYW5jZXIEAAAAEWF1Y3Rpb25UaW1laXNPdmVyCQEAAAAJdGltZUNoZWNrAAAAAwUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgQAAAALam9ic09uR29pbmcJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwQAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwQAAAAXZnJlZWxhbmNlclRvdGFsRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDBQAAABFhdWN0aW9uVGltZWlzT3ZlcgMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4EAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyCQEAAAAWZ2V0QXVjdGlvbkxvd2VzdEJpZGRlcgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkxvd2VzdEJpZAkBAAAABmdldEJpZAAAAAIFAAAACWF1Y3Rpb25JZAUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAABBhdWN0aW9uTG93ZXN0QmlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcJAABkAAAAAgUAAAALam9ic09uR29pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGQAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAABBhdWN0aW9uTG93ZXN0QmlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZAAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAABBhdWN0aW9uTG93ZXN0QmlkBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA1hdWN0aW9uQ2xpZW50BQAAABBhbW91bnREaWZmZXJlbmNlBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAXSW5jb3JyZWN0IGF1Y3Rpb24gc3RhdGUDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAAA1uZXdGcmVlbGFuY2VyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcJAABkAAAAAgUAAAALam9ic09uR29pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGQAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZAAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA1hdWN0aW9uQ2xpZW50CQAAZAAAAAIFAAAAEGFtb3VudERpZmZlcmVuY2UAAAAAAAAAAAEFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQkAAAIAAAABAgAAAC1Pbmx5IGF1Y3Rpb24gY3VzdG9tZXIgY2FuIGNob29zZSBhIGZyZWVsYW5jZXIAAAABaQEAAAAVaW5jcmVhc2VFeGVjdXRpb25UaW1lAAAAAgAAAAlhdWN0aW9uSWQAAAANZXhlY3V0aW9uRGF5cwQAAAAGY2FsbGVyCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAF25ld0F1Y3Rpb25FeGVjdXRpb25UaW1lCQEAAAAVbmV3RXhlY3V0aW9uVGltZUNoZWNrAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA1hdWN0aW9uQ2xpZW50AwMDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAD19Kb2JQZXJmb3JtYW5jZQUAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUFAAAAA25pbAkAAAIAAAABAgAAAA9JbmNvcnJlY3Qgc3RhdGUJAAACAAAAAQIAAAAnT25seSBDbGllbnQgY2FuIGluY3JlYXNlIGV4ZWN1dGlvbiB0aW1lAAAAAWkBAAAADWNhbmNlbEF1Y3Rpb24AAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFhbW91bnRXaXRob3V0Q29tbQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAANYXVjdGlvbkNsaWVudAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEWFtb3VudFdpdGhvdXRDb21tBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAuQXVjdGlvbiBjYW4gYmUgY2FuY2VsZWQgb25seSBieSBhdWN0aW9uIG93bmVyLgkAAAIAAAABAgAAAB5Pbmx5IENsaWVudCBjYW4gY2FuY2VsIGF1Y3Rpb24AAAABaQEAAAALb3BlbkRpc3B1dGUAAAABAAAACWF1Y3Rpb25JZAQAAAAGY2FsbGVyCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQMDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAANYXVjdGlvbkNsaWVudAYJAAAAAAAAAgUAAAAGY2FsbGVyBQAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAMc3RhdGVEaXNwdXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQkAAGQAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABBQAAAANuaWwJAAACAAAAAQIAAAArT25seSBDbGllbnQgYW5kIEZyZWVsYW5jZXIgY2FuIG9wZW4gZGlzcHV0ZQkAAAIAAAABAgAAACtJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZSBmb3IgZGlzcHV0ZSBvcGVuaW5nAAAAAWkBAAAAC3ZvdGVEaXNwdXRlAAAAAgAAAAlhdWN0aW9uSWQAAAAEdm90ZQQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAKY29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADWFtYmFzc2Fkb3JQdWIJAQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IAAAABBQAAAAljYWxsZXJQdWIEAAAADmFtYmFzc2Fkb3JWb3RlCQEAAAATYW1iYXNzYWRvclZvdGVDaGVjawAAAAMFAAAACWF1Y3Rpb25JZAUAAAANYW1iYXNzYWRvclB1YgUAAAAEdm90ZQQAAAALdm90ZXNOdW1iZXIJAQAAAA5nZXRWb3Rlc051bWJlcgAAAAEFAAAACWF1Y3Rpb25JZAQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUEAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABdmcmVlbGFuY2VyVG90YWxFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADl9Ub3RhbEVhcm5pbmdzAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQMJAAAAAAAAAgUAAAALdm90ZXNOdW1iZXIAAAAAAAAAAAQEAAAAEGRpc3B1dGVXaW5uZXJQdWIJAQAAABNkZWZpbmVEaXNwdXRlV2lubmVyAAAABAUAAAAJYXVjdGlvbklkBQAAAA5hbWJhc3NhZG9yVm90ZQUAAAANYXVjdGlvbkNsaWVudAUAAAARYXVjdGlvbkZyZWVsYW5jZXIEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQMJAAAAAAAAAgUAAAAQZGlzcHV0ZVdpbm5lclB1YgUAAAANYXVjdGlvbkNsaWVudAQAAAAScGF5bWVudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAKY29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzCQAAZAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAA1hbWJhc3NhZG9yUHViBQAAAA5hbWJhc3NhZG9yVm90ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUJAABlAAAAAgUAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGUAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZQAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAAEGRpc3B1dGVXaW5uZXJQdWIFAAAAEnBheW1lbnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsBAAAABJwYXltZW50V2l0aG91dENvbW0JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlCQAAaAAAAAIFAAAACmNvbW1pc3Npb24AAAAAAAAAAAIJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAANYW1iYXNzYWRvclB1YgUAAAAOYW1iYXNzYWRvclZvdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlCQAAZQAAAAIFAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAEF9QZW5kaW5nRWFybmluZ3MJAABlAAAAAgUAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAABBkaXNwdXRlV2lubmVyUHViBQAAABJwYXltZW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMJAABkAAAAAgUAAAALdm90ZXNOdW1iZXIAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAANYW1iYXNzYWRvclB1YgUAAAAOYW1iYXNzYWRvclZvdGUFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAGkluY29ycmVjdCBzdGF0ZS4gTXVzdCBiZTogBQAAAAxzdGF0ZURpc3B1dGUAAAABaQEAAAAMd29ya0hhbmRPdmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAAF2dldEF1Y3Rpb25GcmVlbGFuY2VyUHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAAp0aW1lSXNPdmVyCQAAZgAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24EAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwMFAAAACnRpbWVJc092ZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMCAAAAATAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAANX0pvYkluRGlzcHV0ZQkAAGQAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABBQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAEXN0YXRlV2FpdDRDb25maXJtBQAAAANuaWwJAAACAAAAAQIAAAAaQXVjdGlvbiBzdGF0ZSBpcyBpbmNvcnJlY3QJAAACAAAAAQIAAAA0T25seSBhIGZyZWVsYW5jZXIgY2FuIGluZGljYXRlIHRoYXQgdGhlIHdvcmsgaXMgZG9uZQAAAAFpAQAAAAphY2NlcHRXb3JrAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAC2pvYnNPbkdvaW5nCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcEAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABZmcmVlbGFuY2VyUGFpZEVhcm5pbmdzCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAANX1BhaWRFYXJuaW5ncwQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEWFtb3VudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQkAAGgAAAACBQAAAA5kQXBwQ29tbWlzc2lvbgAAAAAAAAAAAgQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAQZnJlZWxhbmNlclJhdGluZwkBAAAACWdldFJhdGluZwAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAARc3RhdGVXYWl0NENvbmZpcm0JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA1zdGF0ZUNvbXBsZXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nCQAAZAAAAAIFAAAAEGZyZWVsYW5jZXJSYXRpbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwkAAGUAAAACBQAAAAtqb2JzT25Hb2luZwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGUAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADV9QYWlkRWFybmluZ3MJAABkAAAAAgUAAAAWZnJlZWxhbmNlclBhaWRFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAABFhdWN0aW9uRnJlZWxhbmNlcgUAAAARYW1vdW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAGkluY29ycmVjdCBzdGF0ZS4gTXVzdCBiZTogBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQkAAAIAAAABAgAAACtPbmx5IGF1Y3Rpb24gY3VzdG9tZXIgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAADdHR4BQAAAAckbWF0Y2gwBAAAAAlhc3NldE5hbWUJAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABCAUAAAADdHR4AAAAB2Fzc2V0SWQEAAAAFHZhbHVlUmVzZXJ2ZWRCYWxhbmNlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAAAlfUmVzZXJ2ZWQEAAAAD3Jlc2VydmVkQmFsYW5jZQQAAAAHJG1hdGNoMQUAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMQUAAAABYQAAAAAAAAAAAAQAAAAQYXZhaWxhYmxlQmFsYW5jZQkAAGUAAAACCQAD6wAAAAIFAAAABHRoaXMIBQAAAAN0dHgAAAAHYXNzZXRJZAUAAAAPcmVzZXJ2ZWRCYWxhbmNlCQAAZwAAAAIFAAAAEGF2YWlsYWJsZUJhbGFuY2UIBQAAAAN0dHgAAAAGYW1vdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAADc3R4BQAAAAckbWF0Y2gwBgcHvDK9CA==", "chainId": 84, "height": 735621, "spentComplexity": 0 } View: original | compacted Prev: GwzisNzvovBpWiYkmGRb9B1f4s6y5Z4DscLeMXZTa3xj Next: H8Fq3AqZbuTQmwGUp88MW5z4tQFyLXTbuVZJGx7FHegv Diff:
OldNewDifferences
123123
124124
125125 func Q (R) = {
126- let S = getString(this, (R + "_Freelancer"))
126+ let S = getString(this, (R + "_Client"))
127127 let y = S
128+ if ($isInstanceOf(y, "String"))
129+ then {
130+ let z = y
131+ R
132+ }
133+ else throw("Only registered users can create auctions")
134+ }
135+
136+
137+func T (R) = {
138+ let U = getString(this, (R + "_Freelancer"))
139+ let y = U
128140 if ($isInstanceOf(y, "String"))
129141 then {
130142 let z = y
134146 }
135147
136148
137-func T (R) = {
138- let S = getString(this, (R + "_Freelancer"))
139- let y = S
140- if ($isInstanceOf(y, "String"))
141- then {
142- let z = y
143- R
144- }
145- else throw("Only registered users can make bets")
146- }
147-
148-
149-func U (V) = if ((V > 0))
150- then V
149+func V (W) = if ((W > 0))
150+ then W
151151 else throw("Amount must be higher then 0")
152152
153153
154-func W (X) = {
155- let Y = getString(this, (X + "_State"))
156- let y = Y
154+func X (Y) = {
155+ let Z = getString(this, (Y + "_State"))
156+ let y = Z
157157 if ($isInstanceOf(y, "String"))
158158 then {
159159 let z = y
163163 }
164164
165165
166-func Z (X) = {
167- let aa = getString(this, (X + "_AuctionClient"))
168- let y = aa
166+func aa (Y) = {
167+ let ab = getString(this, (Y + "_AuctionClient"))
168+ let y = ab
169169 if ($isInstanceOf(y, "String"))
170170 then {
171171 let z = y
175175 }
176176
177177
178-func ab (X) = {
179- let ac = getInteger(this, (X + "_AuctionStart"))
180- let y = ac
178+func ac (Y) = {
179+ let ad = getInteger(this, (Y + "_AuctionStart"))
180+ let y = ad
181181 if ($isInstanceOf(y, "Int"))
182182 then {
183183 let z = y
187187 }
188188
189189
190-func ad (X) = {
191- let ae = getInteger(this, (X + "_AuctionDuration"))
192- let y = ae
190+func ae (Y) = {
191+ let af = getInteger(this, (Y + "_AuctionDuration"))
192+ let y = af
193193 if ($isInstanceOf(y, "Int"))
194194 then {
195195 let z = y
199199 }
200200
201201
202-func af (X) = {
203- let ag = getInteger(this, (X + "_JobPerformance"))
204- let y = ag
202+func ag (Y) = {
203+ let ah = getInteger(this, (Y + "_JobPerformance"))
204+ let y = ah
205205 if ($isInstanceOf(y, "Int"))
206206 then {
207207 let z = y
211211 }
212212
213213
214-func ah (X) = {
215- let ai = getString(this, (X + "_AssetName"))
216- let y = ai
214+func ai (Y) = {
215+ let aj = getString(this, (Y + "_AssetName"))
216+ let y = aj
217217 if ($isInstanceOf(y, "String"))
218218 then {
219219 let z = y
223223 }
224224
225225
226-func aj (X) = {
227- let ak = getInteger(this, (X + "_Price"))
228- let y = ak
226+func ak (Y) = {
227+ let al = getInteger(this, (Y + "_Price"))
228+ let y = al
229229 if ($isInstanceOf(y, "Int"))
230230 then {
231231 let z = y
235235 }
236236
237237
238-func al (X) = {
239- let am = getString(this, (X + "_HiredFreelancer"))
240- let y = am
238+func am (Y) = {
239+ let an = getString(this, (Y + "_HiredFreelancer"))
240+ let y = an
241241 if ($isInstanceOf(y, "String"))
242242 then {
243243 let z = y
247247 }
248248
249249
250-func an (X) = {
251- let ao = getString(this, (X + "_LowestBidderPub"))
252- let y = ao
250+func ao (Y) = {
251+ let ap = getString(this, (Y + "_LowestBidderPub"))
252+ let y = ap
253253 if ($isInstanceOf(y, "String"))
254254 then {
255255 let z = y
259259 }
260260
261261
262-func ap (X,aq) = {
263- let ar = getInteger(this, ((X + "_Bid_") + aq))
264- let y = ar
262+func aq (Y,ar) = {
263+ let as = getInteger(this, ((Y + "_Bid_") + ar))
264+ let y = as
265265 if ($isInstanceOf(y, "Int"))
266266 then {
267267 let z = y
271271 }
272272
273273
274-func as (X,at,au,av) = {
275- let aw = getInteger(this, ((X + "_Bid_") + at))
276- let ax = {
277- let y = aw
274+func at (Y,au,av,aw) = {
275+ let ax = getInteger(this, ((Y + "_Bid_") + au))
276+ let ay = {
277+ let y = ax
278278 if ($isInstanceOf(y, "Int"))
279279 then {
280280 let z = y
282282 }
283283 else throw("Auction lowest bid was not found")
284284 }
285- if ((ax > au))
286- then av
287- else at
285+ if ((ay > av))
286+ then aw
287+ else au
288288 }
289289
290290
291-func ay (X,az) = {
292- let av = getInteger(this, ((X + "_Bid_") + az))
293- let y = av
291+func az (Y,aA) = {
292+ let aw = getInteger(this, ((Y + "_Bid_") + aA))
293+ let y = aw
294294 if ($isInstanceOf(y, "Int"))
295295 then {
296296 let z = y
297- az
297+ aA
298298 }
299299 else throw("Error: Incorrect freelancerPub")
300300 }
301301
302302
303-func aA (aB,aC) = {
304- let aD = (aB * a)
305- if ((aD > aC))
306- then aD
303+func aB (aC,aD) = {
304+ let aE = (aC * a)
305+ if ((aE > aD))
306+ then aE
307307 else throw("New execution time must more than current execution time")
308308 }
309309
310310
311-func aE (aF) = {
312- let aG = getInteger(this, (aF + "_Rating"))
313- let y = aG
311+func aF (aG) = {
312+ let aH = getInteger(this, (aG + "_Rating"))
313+ let y = aH
314314 if ($isInstanceOf(y, "Int"))
315315 then {
316316 let z = y
320320 }
321321
322322
323-func aH (R) = if (if (if (if (if ((R == q))
323+func aI (R) = if (if (if (if (if ((R == q))
324324 then true
325325 else (R == r))
326326 then true
333333 else throw("Only defined ambassadors can vote in disputes")
334334
335335
336-func aI (X,aJ,aK) = {
337- let aL = ((X + "_DiputeVote_") + aJ)
338- let aM = getString(this, aL)
339- let aN = {
340- let y = aM
336+func aJ (Y,aK,aL) = {
337+ let aM = ((Y + "_DiputeVote_") + aK)
338+ let aN = getString(this, aM)
339+ let aO = {
340+ let y = aN
341341 if ($isInstanceOf(y, "String"))
342342 then {
343343 let z = y
345345 }
346346 else false
347347 }
348- if (aN)
348+ if (aO)
349349 then throw("Ambassador voted already ")
350- else if (if ((aK == o))
350+ else if (if ((aL == o))
351351 then true
352- else (aK == p))
353- then aK
352+ else (aL == p))
353+ then aL
354354 else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
355355 }
356356
357357
358-func aO (X) = {
359- let aP = getInteger(this, (X + "_DisputeVotes"))
360- let y = aP
358+func aP (Y) = {
359+ let aQ = getInteger(this, (Y + "_DisputeVotes"))
360+ let y = aQ
361361 if ($isInstanceOf(y, "Int"))
362362 then {
363363 let z = y
367367 }
368368
369369
370-func aQ (X,aR,aS,aF) = {
371- let aT = getString(this, ((X + "_DiputeVote_") + q))
372- let aU = getString(this, ((X + "_DiputeVote_") + r))
373- let aV = getString(this, ((X + "_DiputeVote_") + s))
374- let aW = getString(this, ((X + "_DiputeVote_") + t))
375- let aX = getString(this, ((X + "_DiputeVote_") + u))
376- let aY = if ((aT == o))
377- then 1
378- else 0
370+func aR (Y,aS,aT,aG) = {
371+ let aU = getString(this, ((Y + "_DiputeVote_") + q))
372+ let aV = getString(this, ((Y + "_DiputeVote_") + r))
373+ let aW = getString(this, ((Y + "_DiputeVote_") + s))
374+ let aX = getString(this, ((Y + "_DiputeVote_") + t))
375+ let aY = getString(this, ((Y + "_DiputeVote_") + u))
379376 let aZ = if ((aU == o))
380377 then 1
381378 else 0
388385 let bc = if ((aX == o))
389386 then 1
390387 else 0
391- let bd = if ((aR == o))
388+ let bd = if ((aY == o))
392389 then 1
393390 else 0
394- let be = (((((aY + aZ) + ba) + bb) + bc) + bd)
395- if ((be > 2))
396- then aS
397- else aF
391+ let be = if ((aS == o))
392+ then 1
393+ else 0
394+ let bf = (((((aZ + ba) + bb) + bc) + bd) + be)
395+ if ((bf > 2))
396+ then aT
397+ else aG
398398 }
399399
400400
401-@Callable(bf)
402-func freelancerSignUp (bg) = {
403- let bh = toBase58String(bf.callerPublicKey)
404- WriteSet([DataEntry((bh + "_Freelancer"), bg), DataEntry((bh + "_PendingEarnings"), 0), DataEntry((bh + "_PaidEarnings"), 0), DataEntry((bh + "_TotalEarnings"), 0), DataEntry((bh + "_JobsPending"), 0), DataEntry((bh + "_JobsCompleted"), 0), DataEntry((bh + "_JobsTotal"), 0)])
401+@Callable(bg)
402+func freelancerSignUp (bh) = {
403+ let bi = toBase58String(bg.callerPublicKey)
404+ WriteSet([DataEntry((bi + "_Freelancer"), bh), DataEntry((bi + "_PendingEarnings"), 0), DataEntry((bi + "_PaidEarnings"), 0), DataEntry((bi + "_TotalEarnings"), 0), DataEntry((bi + "_JobsPending"), 0), DataEntry((bi + "_JobsCompleted"), 0), DataEntry((bi + "_JobsTotal"), 0)])
405405 }
406406
407407
408408
409-@Callable(bf)
410-func clientSignUp (bg) = {
411- let bh = toBase58String(bf.callerPublicKey)
412- WriteSet([DataEntry((bh + "_Client"), bg), DataEntry((bh + "_JobsCreated"), 0), DataEntry((bh + "_JobsOnGoing"), 0), DataEntry((bh + "_JobInDispute"), 0)])
409+@Callable(bg)
410+func clientSignUp (bh) = {
411+ let bi = toBase58String(bg.callerPublicKey)
412+ WriteSet([DataEntry((bi + "_Client"), bh), DataEntry((bi + "_JobsCreated"), 0), DataEntry((bi + "_JobsOnGoing"), 0), DataEntry((bi + "_JobInDispute"), 0)])
413413 }
414414
415415
416416
417-@Callable(bf)
418-func createAuction (bi,bj,bk) = {
419- let R = toBase58String(bf.callerPublicKey)
420- let X = toBase58String(bf.transactionId)
421- let aS = Q(R)
422- let bl = extract(bf.payment)
423- let V = bl.amount
424- let K = U(V)
425- let bm = height
426- let bn = (bj * a)
427- let bo = (bi * a)
428- let M = A(bl.assetId)
429- let bp = v((aS + "_JobsCreated"))
430- let bq = L(M, K)
431- WriteSet([DataEntry((X + "_State"), g), DataEntry((X + "_Info"), bk), DataEntry((X + "_AuctionClient"), aS), DataEntry((X + "_AuctionStart"), bm), DataEntry((X + "_AuctionDuration"), bn), DataEntry((X + "_JobPerformance"), bo), DataEntry((X + "_AssetName"), M), DataEntry((X + "_Price"), K), DataEntry((M + "_Freezed"), bq), DataEntry((aS + "_JobsCreated"), (bp + 1))])
417+@Callable(bg)
418+func createAuction (bj,bk,bl) = {
419+ let R = toBase58String(bg.callerPublicKey)
420+ let Y = toBase58String(bg.transactionId)
421+ let aT = Q(R)
422+ let bm = extract(bg.payment)
423+ let W = bm.amount
424+ let K = V(W)
425+ let bn = height
426+ let bo = (bk * a)
427+ let bp = (bj * a)
428+ let M = A(bm.assetId)
429+ let bq = v((aT + "_JobsCreated"))
430+ let br = L(M, K)
431+ WriteSet([DataEntry((Y + "_State"), g), DataEntry((Y + "_Info"), bl), DataEntry((Y + "_AuctionClient"), aT), DataEntry((Y + "_AuctionStart"), bn), DataEntry((Y + "_AuctionDuration"), bo), DataEntry((Y + "_JobPerformance"), bp), DataEntry((Y + "_AssetName"), M), DataEntry((Y + "_Price"), K), DataEntry((M + "_Freezed"), br), DataEntry((aT + "_JobsCreated"), (bq + 1))])
432432 }
433433
434434
435435
436-@Callable(bf)
437-func makeBid (X,J) = {
438- let R = toBase58String(bf.callerPublicKey)
439- let br = W(X)
440- let aS = Z(X)
441- let bm = ab(X)
442- let bs = ad(X)
443- let aC = af(X)
444- let D = ah(X)
445- let K = aj(X)
446- let bt = C(D)
447- let av = T(R)
448- let bu = ((K * 3) / 100)
449- let bq = P(D, K)
450- let au = I(J, K)
451- let bv = E(height, bm, bs)
452- if (bv)
453- then if ((br == g))
454- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), bq)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bu), bt)]))
455- else if ((br == h))
436+@Callable(bg)
437+func makeBid (Y,J) = {
438+ let R = toBase58String(bg.callerPublicKey)
439+ let bs = X(Y)
440+ let aT = aa(Y)
441+ let bn = ac(Y)
442+ let bt = ae(Y)
443+ let aD = ag(Y)
444+ let D = ai(Y)
445+ let K = ak(Y)
446+ let bu = C(D)
447+ let aw = T(R)
448+ let bv = ((K * 3) / 100)
449+ let br = P(D, K)
450+ let av = I(J, K)
451+ let bw = E(height, bn, bt)
452+ if (bw)
453+ then if ((bs == g))
454+ then ScriptResult(WriteSet([DataEntry((Y + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), (K - bv), bu)]))
455+ else if ((bs == h))
456456 then {
457- let aq = an(X)
458- let bw = ap(X, aq)
459- let bx = ((K - bw) - bu)
460- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bw)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bx, bt)]))
457+ let ar = ao(Y)
458+ let bx = aq(Y, ar)
459+ let by = ((K - bx) - bv)
460+ ScriptResult(WriteSet([DataEntry((Y + "_State"), j), DataEntry((Y + "_HiredFreelancer"), ar), DataEntry((Y + "_Price"), bx)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), by, bu)]))
461461 }
462462 else throw("Incorrect auction state")
463- else if ((br == g))
464- then WriteSet([DataEntry(((X + "_Bid_") + av), au), DataEntry((X + "_State"), h), DataEntry((X + "_LowestBidderPub"), R)])
465- else if ((br == h))
463+ else if ((bs == g))
464+ then WriteSet([DataEntry(((Y + "_Bid_") + aw), av), DataEntry((Y + "_State"), h), DataEntry((Y + "_LowestBidderPub"), R)])
465+ else if ((bs == h))
466466 then {
467- let at = an(X)
468- let by = as(X, at, au, av)
469- WriteSet([DataEntry((X + "_LowestBidderPub"), by), DataEntry(((X + "_Bid_") + av), au)])
467+ let au = ao(Y)
468+ let bz = at(Y, au, av, aw)
469+ WriteSet([DataEntry((Y + "_LowestBidderPub"), bz), DataEntry(((Y + "_Bid_") + aw), av)])
470470 }
471- else throw(((((("Incorrect jobId state. Now: " + br) + ", must be: ") + g) + " or ") + h))
471+ else throw(((((("Incorrect jobId state. Now: " + bs) + ", must be: ") + g) + " or ") + h))
472472 }
473473
474474
475475
476-@Callable(bf)
477-func chooseFreelancer (X,az) = {
478- let R = toBase58String(bf.callerPublicKey)
479- let br = W(X)
480- let aS = Z(X)
481- let bm = ab(X)
482- let bs = ad(X)
483- let D = ah(X)
484- let K = aj(X)
485- let bt = C(D)
486- let av = ay(X, az)
487- let bz = ap(X, av)
488- let bv = E(height, bm, bs)
489- let bA = v((aS + "_JobsOnGoing"))
490- let bB = v((az + "_PendingEarnings"))
491- let bC = v((az + "_TotalEarnings"))
492- if ((R == aS))
493- then if (bv)
494- then if ((br == g))
476+@Callable(bg)
477+func chooseFreelancer (Y,aA) = {
478+ let R = toBase58String(bg.callerPublicKey)
479+ let bs = X(Y)
480+ let aT = aa(Y)
481+ let bn = ac(Y)
482+ let bt = ae(Y)
483+ let D = ai(Y)
484+ let K = ak(Y)
485+ let bu = C(D)
486+ let aw = az(Y, aA)
487+ let bA = aq(Y, aw)
488+ let bw = E(height, bn, bt)
489+ let bB = v((aT + "_JobsOnGoing"))
490+ let bC = v((aA + "_PendingEarnings"))
491+ let bD = v((aA + "_TotalEarnings"))
492+ if ((R == aT))
493+ then if (bw)
494+ then if ((bs == g))
495495 then {
496- let bq = P(D, K)
497- let bu = ((K * 3) / 100)
498- ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), bq)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bu), bt)]))
496+ let br = P(D, K)
497+ let bv = ((K * 3) / 100)
498+ ScriptResult(WriteSet([DataEntry((Y + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), (K - bv), bu)]))
499499 }
500- else if ((br == h))
500+ else if ((bs == h))
501501 then {
502- let aq = an(X)
503- let bw = ap(X, aq)
504- let bx = (K - bw)
505- let bq = P(D, bx)
506- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bw), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsOnGoing"), (bA + 1)), DataEntry((az + "_PendingEarnings"), (bB + bw)), DataEntry((az + "_TotalEarnings"), (bC + bw))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bx, bt)]))
502+ let ar = ao(Y)
503+ let bx = aq(Y, ar)
504+ let by = (K - bx)
505+ let br = P(D, by)
506+ ScriptResult(WriteSet([DataEntry((Y + "_State"), j), DataEntry((Y + "_HiredFreelancer"), ar), DataEntry((Y + "_Price"), bx), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsOnGoing"), (bB + 1)), DataEntry((aA + "_PendingEarnings"), (bC + bx)), DataEntry((aA + "_TotalEarnings"), (bD + bx))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), by, bu)]))
507507 }
508508 else throw("Incorrect auction state")
509- else if (if ((br == g))
509+ else if (if ((bs == g))
510510 then true
511- else (br == h))
511+ else (bs == h))
512512 then {
513- let bx = (K - bz)
514- let bq = P(D, bx)
515- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), av), DataEntry((X + "_Price"), bz), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsOnGoing"), (bA + 1)), DataEntry((az + "_PendingEarnings"), (bB + bz)), DataEntry((az + "_TotalEarnings"), (bC + bz))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (bx + 1), bt)]))
513+ let by = (K - bA)
514+ let br = P(D, by)
515+ ScriptResult(WriteSet([DataEntry((Y + "_State"), j), DataEntry((Y + "_HiredFreelancer"), aw), DataEntry((Y + "_Price"), bA), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsOnGoing"), (bB + 1)), DataEntry((aA + "_PendingEarnings"), (bC + bA)), DataEntry((aA + "_TotalEarnings"), (bD + bA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), (by + 1), bu)]))
516516 }
517517 else throw("Incorrect auction state")
518518 else throw("Only auction customer can choose a freelancer")
520520
521521
522522
523-@Callable(bf)
524-func increaseExecutionTime (X,aB) = {
525- let bD = toBase58String(bf.callerPublicKey)
526- let br = W(X)
527- let aS = Z(X)
528- let aC = af(X)
529- let bE = aA(aB, aC)
530- if ((bD == aS))
531- then if (if (if ((br == g))
523+@Callable(bg)
524+func increaseExecutionTime (Y,aC) = {
525+ let bE = toBase58String(bg.callerPublicKey)
526+ let bs = X(Y)
527+ let aT = aa(Y)
528+ let aD = ag(Y)
529+ let bF = aB(aC, aD)
530+ if ((bE == aT))
531+ then if (if (if ((bs == g))
532532 then true
533- else (br == h))
533+ else (bs == h))
534534 then true
535- else (br == j))
536- then WriteSet([DataEntry((X + "_JobPerformance"), bE)])
535+ else (bs == j))
536+ then WriteSet([DataEntry((Y + "_JobPerformance"), bF)])
537537 else throw("Incorrect state")
538538 else throw("Only Client can increase execution time")
539539 }
540540
541541
542542
543-@Callable(bf)
544-func cancelAuction (X) = {
545- let R = toBase58String(bf.callerPublicKey)
546- let br = W(X)
547- let aS = Z(X)
548- let D = ah(X)
549- let K = aj(X)
550- let bt = C(D)
551- let bu = ((K * 3) / 100)
552- let bF = (K - bu)
553- let bq = P(D, K)
554- if ((R == aS))
555- then if ((br == g))
556- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), bq)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bF, bt)]))
543+@Callable(bg)
544+func cancelAuction (Y) = {
545+ let R = toBase58String(bg.callerPublicKey)
546+ let bs = X(Y)
547+ let aT = aa(Y)
548+ let D = ai(Y)
549+ let K = ak(Y)
550+ let bu = C(D)
551+ let bv = ((K * 3) / 100)
552+ let bG = (K - bv)
553+ let br = P(D, K)
554+ if ((R == aT))
555+ then if ((bs == g))
556+ then ScriptResult(WriteSet([DataEntry((Y + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), bG, bu)]))
557557 else throw("Auction can be canceled only by auction owner.")
558558 else throw("Only Client can cancel auction")
559559 }
560560
561561
562562
563-@Callable(bf)
564-func openDispute (X) = {
565- let bD = toBase58String(bf.callerPublicKey)
566- let br = W(X)
567- let aS = Z(X)
568- let aF = al(X)
569- let bG = v((aS + "_JobsInDispute"))
570- if (if ((br == j))
563+@Callable(bg)
564+func openDispute (Y) = {
565+ let bE = toBase58String(bg.callerPublicKey)
566+ let bs = X(Y)
567+ let aT = aa(Y)
568+ let aG = am(Y)
569+ let bH = v((aT + "_JobsInDispute"))
570+ if (if ((bs == j))
571571 then true
572- else (br == k))
573- then if (if ((bD == aS))
572+ else (bs == k))
573+ then if (if ((bE == aT))
574574 then true
575- else (bD == aF))
576- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), 0), DataEntry((aS + "_JobsInDispute"), (bG + 1))])
575+ else (bE == aG))
576+ then WriteSet([DataEntry((Y + "_State"), m), DataEntry((Y + "_DisputeVotes"), 0), DataEntry((aT + "_JobsInDispute"), (bH + 1))])
577577 else throw("Only Client and Freelancer can open dispute")
578578 else throw("Incorrect auction state for dispute opening")
579579 }
580580
581581
582582
583-@Callable(bf)
584-func voteDispute (X,aK) = {
585- let R = toBase58String(bf.callerPublicKey)
586- let br = W(X)
587- let aS = Z(X)
588- let D = ah(X)
589- let K = aj(X)
590- let aF = al(X)
591- let bH = ((K * 3) / 100)
592- let bt = C(D)
593- let aJ = aH(R)
594- let bI = aI(X, aJ, aK)
595- let bJ = aO(X)
596- let bG = v((aS + "_JobsInDispute"))
597- let bB = v((aF + "_PendingEarnings"))
598- let bC = v((aF + "_TotalEarnings"))
599- if ((br == m))
600- then if ((bJ == 4))
583+@Callable(bg)
584+func voteDispute (Y,aL) = {
585+ let R = toBase58String(bg.callerPublicKey)
586+ let bs = X(Y)
587+ let aT = aa(Y)
588+ let D = ai(Y)
589+ let K = ak(Y)
590+ let aG = am(Y)
591+ let bI = ((K * 3) / 100)
592+ let bu = C(D)
593+ let aK = aI(R)
594+ let bJ = aJ(Y, aK, aL)
595+ let bK = aP(Y)
596+ let bH = v((aT + "_JobsInDispute"))
597+ let bC = v((aG + "_PendingEarnings"))
598+ let bD = v((aG + "_TotalEarnings"))
599+ if ((bs == m))
600+ then if ((bK == 4))
601601 then {
602- let bK = aQ(X, bI, aS, aF)
603- let bq = P(D, K)
604- if ((bK == aS))
602+ let bL = aR(Y, bJ, aT, aG)
603+ let br = P(D, K)
604+ if ((bL == aT))
605605 then {
606- let bL = (K - bH)
607- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bJ + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bI), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsInDispute"), (bG - 1)), DataEntry((aF + "_PendingEarnings"), (bB - K)), DataEntry((aF + "_TotalEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bK)), bL, bt)]))
606+ let bM = (K - bI)
607+ ScriptResult(WriteSet([DataEntry((Y + "_DisputeVotes"), (bK + 1)), DataEntry((Y + "_State"), n), DataEntry(((Y + "_DiputeVote_") + aK), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsInDispute"), (bH - 1)), DataEntry((aG + "_PendingEarnings"), (bC - K)), DataEntry((aG + "_TotalEarnings"), (bD - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
608608 }
609609 else {
610- let bL = (K - (bH * 2))
611- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bJ + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bI), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsInDispute"), (bG - 1)), DataEntry((aF + "_PendingEarnings"), (bB - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bK)), bL, bt)]))
610+ let bM = (K - (bI * 2))
611+ ScriptResult(WriteSet([DataEntry((Y + "_DisputeVotes"), (bK + 1)), DataEntry((Y + "_State"), n), DataEntry(((Y + "_DiputeVote_") + aK), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsInDispute"), (bH - 1)), DataEntry((aG + "_PendingEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
612612 }
613613 }
614- else WriteSet([DataEntry((X + "_DisputeVotes"), (bJ + 1)), DataEntry(((X + "_DiputeVote_") + aJ), bI)])
614+ else WriteSet([DataEntry((Y + "_DisputeVotes"), (bK + 1)), DataEntry(((Y + "_DiputeVote_") + aK), bJ)])
615615 else throw(("Incorrect state. Must be: " + m))
616616 }
617617
618618
619619
620-@Callable(bf)
621-func workHandOver (X) = {
622- let R = toBase58String(bf.callerPublicKey)
623- let br = W(X)
624- let aS = Z(X)
625- let bm = ab(X)
626- let bs = ad(X)
627- let aC = af(X)
628- let aF = al(X)
629- let bM = ((height - bm) > aC)
630- let bG = v((aS + "_JobsInDispute"))
631- if ((R == aF))
632- then if ((br == j))
633- then if (bM)
634- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), "0"), DataEntry((aS + "_JobInDispute"), (bG + 1))])
635- else WriteSet([DataEntry((X + "_State"), k)])
620+@Callable(bg)
621+func workHandOver (Y) = {
622+ let R = toBase58String(bg.callerPublicKey)
623+ let bs = X(Y)
624+ let aT = aa(Y)
625+ let bn = ac(Y)
626+ let bt = ae(Y)
627+ let aD = ag(Y)
628+ let aG = am(Y)
629+ let bN = ((height - bn) > aD)
630+ let bH = v((aT + "_JobsInDispute"))
631+ if ((R == aG))
632+ then if ((bs == j))
633+ then if (bN)
634+ then WriteSet([DataEntry((Y + "_State"), m), DataEntry((Y + "_DisputeVotes"), "0"), DataEntry((aT + "_JobInDispute"), (bH + 1))])
635+ else WriteSet([DataEntry((Y + "_State"), k)])
636636 else throw("Auction state is incorrect")
637637 else throw("Only a freelancer can indicate that the work is done")
638638 }
639639
640640
641641
642-@Callable(bf)
643-func acceptWork (X) = {
644- let R = toBase58String(bf.callerPublicKey)
645- let br = W(X)
646- let aS = Z(X)
647- let bm = ab(X)
648- let bs = ad(X)
649- let D = ah(X)
650- let K = aj(X)
651- let aF = al(X)
652- let bA = v((aS + "_JobsOnGoing"))
653- let bB = v((aF + "_PendingEarnings"))
654- let bN = v((aF + "_PaidEarnings"))
655- let bu = ((K * 3) / 100)
656- let bF = (K - (bu * 2))
657- let bt = C(D)
658- let bq = P(D, K)
659- let bO = aE(aF)
660- if ((R == aS))
661- then if ((br == k))
662- then ScriptResult(WriteSet([DataEntry((X + "_State"), l), DataEntry((aF + "_Rating"), (bO + 1)), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsOnGoing"), (bA - 1)), DataEntry((aF + "_PendingEarnings"), (bB - K)), DataEntry((aF + "_PaidEarnings"), (bN + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aF)), bF, bt)]))
642+@Callable(bg)
643+func acceptWork (Y) = {
644+ let R = toBase58String(bg.callerPublicKey)
645+ let bs = X(Y)
646+ let aT = aa(Y)
647+ let bn = ac(Y)
648+ let bt = ae(Y)
649+ let D = ai(Y)
650+ let K = ak(Y)
651+ let aG = am(Y)
652+ let bB = v((aT + "_JobsOnGoing"))
653+ let bC = v((aG + "_PendingEarnings"))
654+ let bO = v((aG + "_PaidEarnings"))
655+ let bv = ((K * 3) / 100)
656+ let bG = (K - (bv * 2))
657+ let bu = C(D)
658+ let br = P(D, K)
659+ let bP = aF(aG)
660+ if ((R == aT))
661+ then if ((bs == k))
662+ then ScriptResult(WriteSet([DataEntry((Y + "_State"), l), DataEntry((aG + "_Rating"), (bP + 1)), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsOnGoing"), (bB - 1)), DataEntry((aG + "_PendingEarnings"), (bC - K)), DataEntry((aG + "_PaidEarnings"), (bO + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aG)), bG, bu)]))
663663 else throw(("Incorrect state. Must be: " + k))
664664 else throw("Only auction customer can use this function")
665665 }
666666
667667
668-@Verifier(bP)
669-func bQ () = if (sigVerify(bP.bodyBytes, bP.proofs[0], bP.senderPublicKey))
668+@Verifier(bQ)
669+func bR () = if (sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey))
670670 then {
671- let y = bP
671+ let y = bQ
672672 if ($isInstanceOf(y, "TransferTransaction"))
673673 then {
674- let bR = y
675- let bS = A(bR.assetId)
676- let bT = getInteger(this, (bS + "_Reserved"))
677- let bU = {
678- let bV = bT
679- if ($isInstanceOf(bV, "Int"))
674+ let bS = y
675+ let bT = A(bS.assetId)
676+ let bU = getInteger(this, (bT + "_Reserved"))
677+ let bV = {
678+ let bW = bU
679+ if ($isInstanceOf(bW, "Int"))
680680 then {
681- let z = bV
681+ let z = bW
682682 z
683683 }
684684 else 0
685685 }
686- let bW = (assetBalance(this, bR.assetId) - bU)
687- (bW >= bR.amount)
686+ let bX = (assetBalance(this, bS.assetId) - bV)
687+ (bX >= bS.amount)
688688 }
689689 else if ($isInstanceOf(y, "SetScriptTransaction"))
690690 then {
691- let bX = y
691+ let bY = y
692692 true
693693 }
694694 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1440
55
66 let b = unit
77
88 let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
99
1010 let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1111
1212 let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
1414 let f = base58'1'
1515
1616 let g = "Opened"
1717
1818 let h = "Suggested"
1919
2020 let i = "Canceled"
2121
2222 let j = "InProgress"
2323
2424 let k = "WaitForConfirmation"
2525
2626 let l = "Completed"
2727
2828 let m = "Dispute"
2929
3030 let n = "DisputeResolved"
3131
3232 let o = "CL"
3333
3434 let p = "FL"
3535
3636 let q = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
3737
3838 let r = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
3939
4040 let s = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
4141
4242 let t = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
4343
4444 let u = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
4545
4646 func v (w) = {
4747 let x = getInteger(this, w)
4848 let y = x
4949 if ($isInstanceOf(y, "Int"))
5050 then {
5151 let z = y
5252 z
5353 }
5454 else 0
5555 }
5656
5757
5858 func A (B) = if (!(isDefined(B)))
5959 then "WAVES"
6060 else if ((B == c))
6161 then "BTC"
6262 else if ((B == d))
6363 then "EUR"
6464 else if ((B == e))
6565 then "USD"
6666 else if ((B == f))
6767 then "AUCT"
6868 else throw("AssetId is incorrect")
6969
7070
7171 func C (D) = if ((D == "WAVES"))
7272 then b
7373 else if ((D == "BTC"))
7474 then c
7575 else if ((D == "EUR"))
7676 then d
7777 else if ((D == "USD"))
7878 then e
7979 else if ((D == "AUCT"))
8080 then f
8181 else throw("Incorrect Asset Id")
8282
8383
8484 func E (F,G,H) = ((F - G) > H)
8585
8686
8787 func I (J,K) = if ((J > K))
8888 then throw("Bid amount must be lower or equal than auctionPrice")
8989 else J
9090
9191
9292 func L (M,K) = {
9393 let N = getInteger(this, (M + "_Freezed"))
9494 let O = {
9595 let y = N
9696 if ($isInstanceOf(y, "Int"))
9797 then {
9898 let z = y
9999 z
100100 }
101101 else 0
102102 }
103103 (O + K)
104104 }
105105
106106
107107 func P (M,K) = {
108108 let N = getInteger(this, (M + "_Freezed"))
109109 let O = {
110110 let y = N
111111 if ($isInstanceOf(y, "Int"))
112112 then {
113113 let z = y
114114 z
115115 }
116116 else 0
117117 }
118118 let z = (O - K)
119119 if ((z >= 0))
120120 then z
121121 else throw("Freezed amount couldn't be less than 0")
122122 }
123123
124124
125125 func Q (R) = {
126- let S = getString(this, (R + "_Freelancer"))
126+ let S = getString(this, (R + "_Client"))
127127 let y = S
128+ if ($isInstanceOf(y, "String"))
129+ then {
130+ let z = y
131+ R
132+ }
133+ else throw("Only registered users can create auctions")
134+ }
135+
136+
137+func T (R) = {
138+ let U = getString(this, (R + "_Freelancer"))
139+ let y = U
128140 if ($isInstanceOf(y, "String"))
129141 then {
130142 let z = y
131143 R
132144 }
133145 else throw("Only registered users can make bets")
134146 }
135147
136148
137-func T (R) = {
138- let S = getString(this, (R + "_Freelancer"))
139- let y = S
140- if ($isInstanceOf(y, "String"))
141- then {
142- let z = y
143- R
144- }
145- else throw("Only registered users can make bets")
146- }
147-
148-
149-func U (V) = if ((V > 0))
150- then V
149+func V (W) = if ((W > 0))
150+ then W
151151 else throw("Amount must be higher then 0")
152152
153153
154-func W (X) = {
155- let Y = getString(this, (X + "_State"))
156- let y = Y
154+func X (Y) = {
155+ let Z = getString(this, (Y + "_State"))
156+ let y = Z
157157 if ($isInstanceOf(y, "String"))
158158 then {
159159 let z = y
160160 z
161161 }
162162 else throw("Auction State was not found")
163163 }
164164
165165
166-func Z (X) = {
167- let aa = getString(this, (X + "_AuctionClient"))
168- let y = aa
166+func aa (Y) = {
167+ let ab = getString(this, (Y + "_AuctionClient"))
168+ let y = ab
169169 if ($isInstanceOf(y, "String"))
170170 then {
171171 let z = y
172172 z
173173 }
174174 else throw("Auction Client was not found")
175175 }
176176
177177
178-func ab (X) = {
179- let ac = getInteger(this, (X + "_AuctionStart"))
180- let y = ac
178+func ac (Y) = {
179+ let ad = getInteger(this, (Y + "_AuctionStart"))
180+ let y = ad
181181 if ($isInstanceOf(y, "Int"))
182182 then {
183183 let z = y
184184 z
185185 }
186186 else throw("Auction Start time was not found")
187187 }
188188
189189
190-func ad (X) = {
191- let ae = getInteger(this, (X + "_AuctionDuration"))
192- let y = ae
190+func ae (Y) = {
191+ let af = getInteger(this, (Y + "_AuctionDuration"))
192+ let y = af
193193 if ($isInstanceOf(y, "Int"))
194194 then {
195195 let z = y
196196 z
197197 }
198198 else throw("Auction duration time was not found")
199199 }
200200
201201
202-func af (X) = {
203- let ag = getInteger(this, (X + "_JobPerformance"))
204- let y = ag
202+func ag (Y) = {
203+ let ah = getInteger(this, (Y + "_JobPerformance"))
204+ let y = ah
205205 if ($isInstanceOf(y, "Int"))
206206 then {
207207 let z = y
208208 z
209209 }
210210 else throw("Auction job performance time was not found")
211211 }
212212
213213
214-func ah (X) = {
215- let ai = getString(this, (X + "_AssetName"))
216- let y = ai
214+func ai (Y) = {
215+ let aj = getString(this, (Y + "_AssetName"))
216+ let y = aj
217217 if ($isInstanceOf(y, "String"))
218218 then {
219219 let z = y
220220 z
221221 }
222222 else throw("Auction asset name was not found")
223223 }
224224
225225
226-func aj (X) = {
227- let ak = getInteger(this, (X + "_Price"))
228- let y = ak
226+func ak (Y) = {
227+ let al = getInteger(this, (Y + "_Price"))
228+ let y = al
229229 if ($isInstanceOf(y, "Int"))
230230 then {
231231 let z = y
232232 z
233233 }
234234 else throw("Auction price was not found")
235235 }
236236
237237
238-func al (X) = {
239- let am = getString(this, (X + "_HiredFreelancer"))
240- let y = am
238+func am (Y) = {
239+ let an = getString(this, (Y + "_HiredFreelancer"))
240+ let y = an
241241 if ($isInstanceOf(y, "String"))
242242 then {
243243 let z = y
244244 z
245245 }
246246 else throw("Auction Client was not found")
247247 }
248248
249249
250-func an (X) = {
251- let ao = getString(this, (X + "_LowestBidderPub"))
252- let y = ao
250+func ao (Y) = {
251+ let ap = getString(this, (Y + "_LowestBidderPub"))
252+ let y = ap
253253 if ($isInstanceOf(y, "String"))
254254 then {
255255 let z = y
256256 z
257257 }
258258 else throw("Auction lowest bidder was not found")
259259 }
260260
261261
262-func ap (X,aq) = {
263- let ar = getInteger(this, ((X + "_Bid_") + aq))
264- let y = ar
262+func aq (Y,ar) = {
263+ let as = getInteger(this, ((Y + "_Bid_") + ar))
264+ let y = as
265265 if ($isInstanceOf(y, "Int"))
266266 then {
267267 let z = y
268268 z
269269 }
270270 else throw("Auction lowest bid was not found")
271271 }
272272
273273
274-func as (X,at,au,av) = {
275- let aw = getInteger(this, ((X + "_Bid_") + at))
276- let ax = {
277- let y = aw
274+func at (Y,au,av,aw) = {
275+ let ax = getInteger(this, ((Y + "_Bid_") + au))
276+ let ay = {
277+ let y = ax
278278 if ($isInstanceOf(y, "Int"))
279279 then {
280280 let z = y
281281 z
282282 }
283283 else throw("Auction lowest bid was not found")
284284 }
285- if ((ax > au))
286- then av
287- else at
285+ if ((ay > av))
286+ then aw
287+ else au
288288 }
289289
290290
291-func ay (X,az) = {
292- let av = getInteger(this, ((X + "_Bid_") + az))
293- let y = av
291+func az (Y,aA) = {
292+ let aw = getInteger(this, ((Y + "_Bid_") + aA))
293+ let y = aw
294294 if ($isInstanceOf(y, "Int"))
295295 then {
296296 let z = y
297- az
297+ aA
298298 }
299299 else throw("Error: Incorrect freelancerPub")
300300 }
301301
302302
303-func aA (aB,aC) = {
304- let aD = (aB * a)
305- if ((aD > aC))
306- then aD
303+func aB (aC,aD) = {
304+ let aE = (aC * a)
305+ if ((aE > aD))
306+ then aE
307307 else throw("New execution time must more than current execution time")
308308 }
309309
310310
311-func aE (aF) = {
312- let aG = getInteger(this, (aF + "_Rating"))
313- let y = aG
311+func aF (aG) = {
312+ let aH = getInteger(this, (aG + "_Rating"))
313+ let y = aH
314314 if ($isInstanceOf(y, "Int"))
315315 then {
316316 let z = y
317317 z
318318 }
319319 else 0
320320 }
321321
322322
323-func aH (R) = if (if (if (if (if ((R == q))
323+func aI (R) = if (if (if (if (if ((R == q))
324324 then true
325325 else (R == r))
326326 then true
327327 else (R == s))
328328 then true
329329 else (R == t))
330330 then true
331331 else (R == u))
332332 then R
333333 else throw("Only defined ambassadors can vote in disputes")
334334
335335
336-func aI (X,aJ,aK) = {
337- let aL = ((X + "_DiputeVote_") + aJ)
338- let aM = getString(this, aL)
339- let aN = {
340- let y = aM
336+func aJ (Y,aK,aL) = {
337+ let aM = ((Y + "_DiputeVote_") + aK)
338+ let aN = getString(this, aM)
339+ let aO = {
340+ let y = aN
341341 if ($isInstanceOf(y, "String"))
342342 then {
343343 let z = y
344344 true
345345 }
346346 else false
347347 }
348- if (aN)
348+ if (aO)
349349 then throw("Ambassador voted already ")
350- else if (if ((aK == o))
350+ else if (if ((aL == o))
351351 then true
352- else (aK == p))
353- then aK
352+ else (aL == p))
353+ then aL
354354 else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
355355 }
356356
357357
358-func aO (X) = {
359- let aP = getInteger(this, (X + "_DisputeVotes"))
360- let y = aP
358+func aP (Y) = {
359+ let aQ = getInteger(this, (Y + "_DisputeVotes"))
360+ let y = aQ
361361 if ($isInstanceOf(y, "Int"))
362362 then {
363363 let z = y
364364 z
365365 }
366366 else throw("VotesNumber was not found")
367367 }
368368
369369
370-func aQ (X,aR,aS,aF) = {
371- let aT = getString(this, ((X + "_DiputeVote_") + q))
372- let aU = getString(this, ((X + "_DiputeVote_") + r))
373- let aV = getString(this, ((X + "_DiputeVote_") + s))
374- let aW = getString(this, ((X + "_DiputeVote_") + t))
375- let aX = getString(this, ((X + "_DiputeVote_") + u))
376- let aY = if ((aT == o))
377- then 1
378- else 0
370+func aR (Y,aS,aT,aG) = {
371+ let aU = getString(this, ((Y + "_DiputeVote_") + q))
372+ let aV = getString(this, ((Y + "_DiputeVote_") + r))
373+ let aW = getString(this, ((Y + "_DiputeVote_") + s))
374+ let aX = getString(this, ((Y + "_DiputeVote_") + t))
375+ let aY = getString(this, ((Y + "_DiputeVote_") + u))
379376 let aZ = if ((aU == o))
380377 then 1
381378 else 0
382379 let ba = if ((aV == o))
383380 then 1
384381 else 0
385382 let bb = if ((aW == o))
386383 then 1
387384 else 0
388385 let bc = if ((aX == o))
389386 then 1
390387 else 0
391- let bd = if ((aR == o))
388+ let bd = if ((aY == o))
392389 then 1
393390 else 0
394- let be = (((((aY + aZ) + ba) + bb) + bc) + bd)
395- if ((be > 2))
396- then aS
397- else aF
391+ let be = if ((aS == o))
392+ then 1
393+ else 0
394+ let bf = (((((aZ + ba) + bb) + bc) + bd) + be)
395+ if ((bf > 2))
396+ then aT
397+ else aG
398398 }
399399
400400
401-@Callable(bf)
402-func freelancerSignUp (bg) = {
403- let bh = toBase58String(bf.callerPublicKey)
404- WriteSet([DataEntry((bh + "_Freelancer"), bg), DataEntry((bh + "_PendingEarnings"), 0), DataEntry((bh + "_PaidEarnings"), 0), DataEntry((bh + "_TotalEarnings"), 0), DataEntry((bh + "_JobsPending"), 0), DataEntry((bh + "_JobsCompleted"), 0), DataEntry((bh + "_JobsTotal"), 0)])
401+@Callable(bg)
402+func freelancerSignUp (bh) = {
403+ let bi = toBase58String(bg.callerPublicKey)
404+ WriteSet([DataEntry((bi + "_Freelancer"), bh), DataEntry((bi + "_PendingEarnings"), 0), DataEntry((bi + "_PaidEarnings"), 0), DataEntry((bi + "_TotalEarnings"), 0), DataEntry((bi + "_JobsPending"), 0), DataEntry((bi + "_JobsCompleted"), 0), DataEntry((bi + "_JobsTotal"), 0)])
405405 }
406406
407407
408408
409-@Callable(bf)
410-func clientSignUp (bg) = {
411- let bh = toBase58String(bf.callerPublicKey)
412- WriteSet([DataEntry((bh + "_Client"), bg), DataEntry((bh + "_JobsCreated"), 0), DataEntry((bh + "_JobsOnGoing"), 0), DataEntry((bh + "_JobInDispute"), 0)])
409+@Callable(bg)
410+func clientSignUp (bh) = {
411+ let bi = toBase58String(bg.callerPublicKey)
412+ WriteSet([DataEntry((bi + "_Client"), bh), DataEntry((bi + "_JobsCreated"), 0), DataEntry((bi + "_JobsOnGoing"), 0), DataEntry((bi + "_JobInDispute"), 0)])
413413 }
414414
415415
416416
417-@Callable(bf)
418-func createAuction (bi,bj,bk) = {
419- let R = toBase58String(bf.callerPublicKey)
420- let X = toBase58String(bf.transactionId)
421- let aS = Q(R)
422- let bl = extract(bf.payment)
423- let V = bl.amount
424- let K = U(V)
425- let bm = height
426- let bn = (bj * a)
427- let bo = (bi * a)
428- let M = A(bl.assetId)
429- let bp = v((aS + "_JobsCreated"))
430- let bq = L(M, K)
431- WriteSet([DataEntry((X + "_State"), g), DataEntry((X + "_Info"), bk), DataEntry((X + "_AuctionClient"), aS), DataEntry((X + "_AuctionStart"), bm), DataEntry((X + "_AuctionDuration"), bn), DataEntry((X + "_JobPerformance"), bo), DataEntry((X + "_AssetName"), M), DataEntry((X + "_Price"), K), DataEntry((M + "_Freezed"), bq), DataEntry((aS + "_JobsCreated"), (bp + 1))])
417+@Callable(bg)
418+func createAuction (bj,bk,bl) = {
419+ let R = toBase58String(bg.callerPublicKey)
420+ let Y = toBase58String(bg.transactionId)
421+ let aT = Q(R)
422+ let bm = extract(bg.payment)
423+ let W = bm.amount
424+ let K = V(W)
425+ let bn = height
426+ let bo = (bk * a)
427+ let bp = (bj * a)
428+ let M = A(bm.assetId)
429+ let bq = v((aT + "_JobsCreated"))
430+ let br = L(M, K)
431+ WriteSet([DataEntry((Y + "_State"), g), DataEntry((Y + "_Info"), bl), DataEntry((Y + "_AuctionClient"), aT), DataEntry((Y + "_AuctionStart"), bn), DataEntry((Y + "_AuctionDuration"), bo), DataEntry((Y + "_JobPerformance"), bp), DataEntry((Y + "_AssetName"), M), DataEntry((Y + "_Price"), K), DataEntry((M + "_Freezed"), br), DataEntry((aT + "_JobsCreated"), (bq + 1))])
432432 }
433433
434434
435435
436-@Callable(bf)
437-func makeBid (X,J) = {
438- let R = toBase58String(bf.callerPublicKey)
439- let br = W(X)
440- let aS = Z(X)
441- let bm = ab(X)
442- let bs = ad(X)
443- let aC = af(X)
444- let D = ah(X)
445- let K = aj(X)
446- let bt = C(D)
447- let av = T(R)
448- let bu = ((K * 3) / 100)
449- let bq = P(D, K)
450- let au = I(J, K)
451- let bv = E(height, bm, bs)
452- if (bv)
453- then if ((br == g))
454- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), bq)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bu), bt)]))
455- else if ((br == h))
436+@Callable(bg)
437+func makeBid (Y,J) = {
438+ let R = toBase58String(bg.callerPublicKey)
439+ let bs = X(Y)
440+ let aT = aa(Y)
441+ let bn = ac(Y)
442+ let bt = ae(Y)
443+ let aD = ag(Y)
444+ let D = ai(Y)
445+ let K = ak(Y)
446+ let bu = C(D)
447+ let aw = T(R)
448+ let bv = ((K * 3) / 100)
449+ let br = P(D, K)
450+ let av = I(J, K)
451+ let bw = E(height, bn, bt)
452+ if (bw)
453+ then if ((bs == g))
454+ then ScriptResult(WriteSet([DataEntry((Y + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), (K - bv), bu)]))
455+ else if ((bs == h))
456456 then {
457- let aq = an(X)
458- let bw = ap(X, aq)
459- let bx = ((K - bw) - bu)
460- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bw)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bx, bt)]))
457+ let ar = ao(Y)
458+ let bx = aq(Y, ar)
459+ let by = ((K - bx) - bv)
460+ ScriptResult(WriteSet([DataEntry((Y + "_State"), j), DataEntry((Y + "_HiredFreelancer"), ar), DataEntry((Y + "_Price"), bx)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), by, bu)]))
461461 }
462462 else throw("Incorrect auction state")
463- else if ((br == g))
464- then WriteSet([DataEntry(((X + "_Bid_") + av), au), DataEntry((X + "_State"), h), DataEntry((X + "_LowestBidderPub"), R)])
465- else if ((br == h))
463+ else if ((bs == g))
464+ then WriteSet([DataEntry(((Y + "_Bid_") + aw), av), DataEntry((Y + "_State"), h), DataEntry((Y + "_LowestBidderPub"), R)])
465+ else if ((bs == h))
466466 then {
467- let at = an(X)
468- let by = as(X, at, au, av)
469- WriteSet([DataEntry((X + "_LowestBidderPub"), by), DataEntry(((X + "_Bid_") + av), au)])
467+ let au = ao(Y)
468+ let bz = at(Y, au, av, aw)
469+ WriteSet([DataEntry((Y + "_LowestBidderPub"), bz), DataEntry(((Y + "_Bid_") + aw), av)])
470470 }
471- else throw(((((("Incorrect jobId state. Now: " + br) + ", must be: ") + g) + " or ") + h))
471+ else throw(((((("Incorrect jobId state. Now: " + bs) + ", must be: ") + g) + " or ") + h))
472472 }
473473
474474
475475
476-@Callable(bf)
477-func chooseFreelancer (X,az) = {
478- let R = toBase58String(bf.callerPublicKey)
479- let br = W(X)
480- let aS = Z(X)
481- let bm = ab(X)
482- let bs = ad(X)
483- let D = ah(X)
484- let K = aj(X)
485- let bt = C(D)
486- let av = ay(X, az)
487- let bz = ap(X, av)
488- let bv = E(height, bm, bs)
489- let bA = v((aS + "_JobsOnGoing"))
490- let bB = v((az + "_PendingEarnings"))
491- let bC = v((az + "_TotalEarnings"))
492- if ((R == aS))
493- then if (bv)
494- then if ((br == g))
476+@Callable(bg)
477+func chooseFreelancer (Y,aA) = {
478+ let R = toBase58String(bg.callerPublicKey)
479+ let bs = X(Y)
480+ let aT = aa(Y)
481+ let bn = ac(Y)
482+ let bt = ae(Y)
483+ let D = ai(Y)
484+ let K = ak(Y)
485+ let bu = C(D)
486+ let aw = az(Y, aA)
487+ let bA = aq(Y, aw)
488+ let bw = E(height, bn, bt)
489+ let bB = v((aT + "_JobsOnGoing"))
490+ let bC = v((aA + "_PendingEarnings"))
491+ let bD = v((aA + "_TotalEarnings"))
492+ if ((R == aT))
493+ then if (bw)
494+ then if ((bs == g))
495495 then {
496- let bq = P(D, K)
497- let bu = ((K * 3) / 100)
498- ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), bq)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bu), bt)]))
496+ let br = P(D, K)
497+ let bv = ((K * 3) / 100)
498+ ScriptResult(WriteSet([DataEntry((Y + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), (K - bv), bu)]))
499499 }
500- else if ((br == h))
500+ else if ((bs == h))
501501 then {
502- let aq = an(X)
503- let bw = ap(X, aq)
504- let bx = (K - bw)
505- let bq = P(D, bx)
506- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bw), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsOnGoing"), (bA + 1)), DataEntry((az + "_PendingEarnings"), (bB + bw)), DataEntry((az + "_TotalEarnings"), (bC + bw))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bx, bt)]))
502+ let ar = ao(Y)
503+ let bx = aq(Y, ar)
504+ let by = (K - bx)
505+ let br = P(D, by)
506+ ScriptResult(WriteSet([DataEntry((Y + "_State"), j), DataEntry((Y + "_HiredFreelancer"), ar), DataEntry((Y + "_Price"), bx), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsOnGoing"), (bB + 1)), DataEntry((aA + "_PendingEarnings"), (bC + bx)), DataEntry((aA + "_TotalEarnings"), (bD + bx))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), by, bu)]))
507507 }
508508 else throw("Incorrect auction state")
509- else if (if ((br == g))
509+ else if (if ((bs == g))
510510 then true
511- else (br == h))
511+ else (bs == h))
512512 then {
513- let bx = (K - bz)
514- let bq = P(D, bx)
515- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), av), DataEntry((X + "_Price"), bz), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsOnGoing"), (bA + 1)), DataEntry((az + "_PendingEarnings"), (bB + bz)), DataEntry((az + "_TotalEarnings"), (bC + bz))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (bx + 1), bt)]))
513+ let by = (K - bA)
514+ let br = P(D, by)
515+ ScriptResult(WriteSet([DataEntry((Y + "_State"), j), DataEntry((Y + "_HiredFreelancer"), aw), DataEntry((Y + "_Price"), bA), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsOnGoing"), (bB + 1)), DataEntry((aA + "_PendingEarnings"), (bC + bA)), DataEntry((aA + "_TotalEarnings"), (bD + bA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), (by + 1), bu)]))
516516 }
517517 else throw("Incorrect auction state")
518518 else throw("Only auction customer can choose a freelancer")
519519 }
520520
521521
522522
523-@Callable(bf)
524-func increaseExecutionTime (X,aB) = {
525- let bD = toBase58String(bf.callerPublicKey)
526- let br = W(X)
527- let aS = Z(X)
528- let aC = af(X)
529- let bE = aA(aB, aC)
530- if ((bD == aS))
531- then if (if (if ((br == g))
523+@Callable(bg)
524+func increaseExecutionTime (Y,aC) = {
525+ let bE = toBase58String(bg.callerPublicKey)
526+ let bs = X(Y)
527+ let aT = aa(Y)
528+ let aD = ag(Y)
529+ let bF = aB(aC, aD)
530+ if ((bE == aT))
531+ then if (if (if ((bs == g))
532532 then true
533- else (br == h))
533+ else (bs == h))
534534 then true
535- else (br == j))
536- then WriteSet([DataEntry((X + "_JobPerformance"), bE)])
535+ else (bs == j))
536+ then WriteSet([DataEntry((Y + "_JobPerformance"), bF)])
537537 else throw("Incorrect state")
538538 else throw("Only Client can increase execution time")
539539 }
540540
541541
542542
543-@Callable(bf)
544-func cancelAuction (X) = {
545- let R = toBase58String(bf.callerPublicKey)
546- let br = W(X)
547- let aS = Z(X)
548- let D = ah(X)
549- let K = aj(X)
550- let bt = C(D)
551- let bu = ((K * 3) / 100)
552- let bF = (K - bu)
553- let bq = P(D, K)
554- if ((R == aS))
555- then if ((br == g))
556- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), bq)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bF, bt)]))
543+@Callable(bg)
544+func cancelAuction (Y) = {
545+ let R = toBase58String(bg.callerPublicKey)
546+ let bs = X(Y)
547+ let aT = aa(Y)
548+ let D = ai(Y)
549+ let K = ak(Y)
550+ let bu = C(D)
551+ let bv = ((K * 3) / 100)
552+ let bG = (K - bv)
553+ let br = P(D, K)
554+ if ((R == aT))
555+ then if ((bs == g))
556+ then ScriptResult(WriteSet([DataEntry((Y + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aT)), bG, bu)]))
557557 else throw("Auction can be canceled only by auction owner.")
558558 else throw("Only Client can cancel auction")
559559 }
560560
561561
562562
563-@Callable(bf)
564-func openDispute (X) = {
565- let bD = toBase58String(bf.callerPublicKey)
566- let br = W(X)
567- let aS = Z(X)
568- let aF = al(X)
569- let bG = v((aS + "_JobsInDispute"))
570- if (if ((br == j))
563+@Callable(bg)
564+func openDispute (Y) = {
565+ let bE = toBase58String(bg.callerPublicKey)
566+ let bs = X(Y)
567+ let aT = aa(Y)
568+ let aG = am(Y)
569+ let bH = v((aT + "_JobsInDispute"))
570+ if (if ((bs == j))
571571 then true
572- else (br == k))
573- then if (if ((bD == aS))
572+ else (bs == k))
573+ then if (if ((bE == aT))
574574 then true
575- else (bD == aF))
576- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), 0), DataEntry((aS + "_JobsInDispute"), (bG + 1))])
575+ else (bE == aG))
576+ then WriteSet([DataEntry((Y + "_State"), m), DataEntry((Y + "_DisputeVotes"), 0), DataEntry((aT + "_JobsInDispute"), (bH + 1))])
577577 else throw("Only Client and Freelancer can open dispute")
578578 else throw("Incorrect auction state for dispute opening")
579579 }
580580
581581
582582
583-@Callable(bf)
584-func voteDispute (X,aK) = {
585- let R = toBase58String(bf.callerPublicKey)
586- let br = W(X)
587- let aS = Z(X)
588- let D = ah(X)
589- let K = aj(X)
590- let aF = al(X)
591- let bH = ((K * 3) / 100)
592- let bt = C(D)
593- let aJ = aH(R)
594- let bI = aI(X, aJ, aK)
595- let bJ = aO(X)
596- let bG = v((aS + "_JobsInDispute"))
597- let bB = v((aF + "_PendingEarnings"))
598- let bC = v((aF + "_TotalEarnings"))
599- if ((br == m))
600- then if ((bJ == 4))
583+@Callable(bg)
584+func voteDispute (Y,aL) = {
585+ let R = toBase58String(bg.callerPublicKey)
586+ let bs = X(Y)
587+ let aT = aa(Y)
588+ let D = ai(Y)
589+ let K = ak(Y)
590+ let aG = am(Y)
591+ let bI = ((K * 3) / 100)
592+ let bu = C(D)
593+ let aK = aI(R)
594+ let bJ = aJ(Y, aK, aL)
595+ let bK = aP(Y)
596+ let bH = v((aT + "_JobsInDispute"))
597+ let bC = v((aG + "_PendingEarnings"))
598+ let bD = v((aG + "_TotalEarnings"))
599+ if ((bs == m))
600+ then if ((bK == 4))
601601 then {
602- let bK = aQ(X, bI, aS, aF)
603- let bq = P(D, K)
604- if ((bK == aS))
602+ let bL = aR(Y, bJ, aT, aG)
603+ let br = P(D, K)
604+ if ((bL == aT))
605605 then {
606- let bL = (K - bH)
607- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bJ + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bI), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsInDispute"), (bG - 1)), DataEntry((aF + "_PendingEarnings"), (bB - K)), DataEntry((aF + "_TotalEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bK)), bL, bt)]))
606+ let bM = (K - bI)
607+ ScriptResult(WriteSet([DataEntry((Y + "_DisputeVotes"), (bK + 1)), DataEntry((Y + "_State"), n), DataEntry(((Y + "_DiputeVote_") + aK), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsInDispute"), (bH - 1)), DataEntry((aG + "_PendingEarnings"), (bC - K)), DataEntry((aG + "_TotalEarnings"), (bD - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
608608 }
609609 else {
610- let bL = (K - (bH * 2))
611- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bJ + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bI), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsInDispute"), (bG - 1)), DataEntry((aF + "_PendingEarnings"), (bB - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bK)), bL, bt)]))
610+ let bM = (K - (bI * 2))
611+ ScriptResult(WriteSet([DataEntry((Y + "_DisputeVotes"), (bK + 1)), DataEntry((Y + "_State"), n), DataEntry(((Y + "_DiputeVote_") + aK), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsInDispute"), (bH - 1)), DataEntry((aG + "_PendingEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
612612 }
613613 }
614- else WriteSet([DataEntry((X + "_DisputeVotes"), (bJ + 1)), DataEntry(((X + "_DiputeVote_") + aJ), bI)])
614+ else WriteSet([DataEntry((Y + "_DisputeVotes"), (bK + 1)), DataEntry(((Y + "_DiputeVote_") + aK), bJ)])
615615 else throw(("Incorrect state. Must be: " + m))
616616 }
617617
618618
619619
620-@Callable(bf)
621-func workHandOver (X) = {
622- let R = toBase58String(bf.callerPublicKey)
623- let br = W(X)
624- let aS = Z(X)
625- let bm = ab(X)
626- let bs = ad(X)
627- let aC = af(X)
628- let aF = al(X)
629- let bM = ((height - bm) > aC)
630- let bG = v((aS + "_JobsInDispute"))
631- if ((R == aF))
632- then if ((br == j))
633- then if (bM)
634- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), "0"), DataEntry((aS + "_JobInDispute"), (bG + 1))])
635- else WriteSet([DataEntry((X + "_State"), k)])
620+@Callable(bg)
621+func workHandOver (Y) = {
622+ let R = toBase58String(bg.callerPublicKey)
623+ let bs = X(Y)
624+ let aT = aa(Y)
625+ let bn = ac(Y)
626+ let bt = ae(Y)
627+ let aD = ag(Y)
628+ let aG = am(Y)
629+ let bN = ((height - bn) > aD)
630+ let bH = v((aT + "_JobsInDispute"))
631+ if ((R == aG))
632+ then if ((bs == j))
633+ then if (bN)
634+ then WriteSet([DataEntry((Y + "_State"), m), DataEntry((Y + "_DisputeVotes"), "0"), DataEntry((aT + "_JobInDispute"), (bH + 1))])
635+ else WriteSet([DataEntry((Y + "_State"), k)])
636636 else throw("Auction state is incorrect")
637637 else throw("Only a freelancer can indicate that the work is done")
638638 }
639639
640640
641641
642-@Callable(bf)
643-func acceptWork (X) = {
644- let R = toBase58String(bf.callerPublicKey)
645- let br = W(X)
646- let aS = Z(X)
647- let bm = ab(X)
648- let bs = ad(X)
649- let D = ah(X)
650- let K = aj(X)
651- let aF = al(X)
652- let bA = v((aS + "_JobsOnGoing"))
653- let bB = v((aF + "_PendingEarnings"))
654- let bN = v((aF + "_PaidEarnings"))
655- let bu = ((K * 3) / 100)
656- let bF = (K - (bu * 2))
657- let bt = C(D)
658- let bq = P(D, K)
659- let bO = aE(aF)
660- if ((R == aS))
661- then if ((br == k))
662- then ScriptResult(WriteSet([DataEntry((X + "_State"), l), DataEntry((aF + "_Rating"), (bO + 1)), DataEntry((D + "_Freezed"), bq), DataEntry((aS + "_JobsOnGoing"), (bA - 1)), DataEntry((aF + "_PendingEarnings"), (bB - K)), DataEntry((aF + "_PaidEarnings"), (bN + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aF)), bF, bt)]))
642+@Callable(bg)
643+func acceptWork (Y) = {
644+ let R = toBase58String(bg.callerPublicKey)
645+ let bs = X(Y)
646+ let aT = aa(Y)
647+ let bn = ac(Y)
648+ let bt = ae(Y)
649+ let D = ai(Y)
650+ let K = ak(Y)
651+ let aG = am(Y)
652+ let bB = v((aT + "_JobsOnGoing"))
653+ let bC = v((aG + "_PendingEarnings"))
654+ let bO = v((aG + "_PaidEarnings"))
655+ let bv = ((K * 3) / 100)
656+ let bG = (K - (bv * 2))
657+ let bu = C(D)
658+ let br = P(D, K)
659+ let bP = aF(aG)
660+ if ((R == aT))
661+ then if ((bs == k))
662+ then ScriptResult(WriteSet([DataEntry((Y + "_State"), l), DataEntry((aG + "_Rating"), (bP + 1)), DataEntry((D + "_Freezed"), br), DataEntry((aT + "_JobsOnGoing"), (bB - 1)), DataEntry((aG + "_PendingEarnings"), (bC - K)), DataEntry((aG + "_PaidEarnings"), (bO + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aG)), bG, bu)]))
663663 else throw(("Incorrect state. Must be: " + k))
664664 else throw("Only auction customer can use this function")
665665 }
666666
667667
668-@Verifier(bP)
669-func bQ () = if (sigVerify(bP.bodyBytes, bP.proofs[0], bP.senderPublicKey))
668+@Verifier(bQ)
669+func bR () = if (sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey))
670670 then {
671- let y = bP
671+ let y = bQ
672672 if ($isInstanceOf(y, "TransferTransaction"))
673673 then {
674- let bR = y
675- let bS = A(bR.assetId)
676- let bT = getInteger(this, (bS + "_Reserved"))
677- let bU = {
678- let bV = bT
679- if ($isInstanceOf(bV, "Int"))
674+ let bS = y
675+ let bT = A(bS.assetId)
676+ let bU = getInteger(this, (bT + "_Reserved"))
677+ let bV = {
678+ let bW = bU
679+ if ($isInstanceOf(bW, "Int"))
680680 then {
681- let z = bV
681+ let z = bW
682682 z
683683 }
684684 else 0
685685 }
686- let bW = (assetBalance(this, bR.assetId) - bU)
687- (bW >= bR.amount)
686+ let bX = (assetBalance(this, bS.assetId) - bV)
687+ (bX >= bS.amount)
688688 }
689689 else if ($isInstanceOf(y, "SetScriptTransaction"))
690690 then {
691- let bX = y
691+ let bY = y
692692 true
693693 }
694694 else false
695695 }
696696 else false
697697

github/deemru/w8io/169f3d6 
231.95 ms