tx · FePiXoA2RFyePt7v3AAci7iSCNXhVj4Ag8VD65Vv6vkH

3NCBtz3MDVBU6G54EAvHRRQ6k2YE6TCuPUv:  -0.01500000 Waves

2019.09.29 16:22 [697779] smart account 3NCBtz3MDVBU6G54EAvHRRQ6k2YE6TCuPUv > SELF 0.00000000 Waves

{ "type": 13, "id": "FePiXoA2RFyePt7v3AAci7iSCNXhVj4Ag8VD65Vv6vkH", "fee": 1500000, "feeAssetId": null, "timestamp": 1569763370972, "version": 1, "sender": "3NCBtz3MDVBU6G54EAvHRRQ6k2YE6TCuPUv", "senderPublicKey": "9ft3D8mA7Qj2tvLPBg2resprWt2Gj2yvuanKNshrY6xb", "proofs": [ "3wu4tqMHuFoLgkKn8cxrM7fvnzcJEcx33ECZrNM3kfYA9XgNsvgHg8hPhti1F3JpuqzAotjxd6zxxzTyVNkQQ5B5" ], "script": "base64:AAIDAAAAAAAAAD8IARIDCgEIEgMKAQgSBQoDAQEIEgQKAggBEgQKAggIEgQKAggBEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgAAAAjAAAAAANkYXkAAAAAAAAABaAAAAAABVdBVkVTBQAAAAR1bml0AAAAAAR3QlRDAQAAACBs+mr/xe2qjAt/tSqT0qIML4KC23R6BIxT+/0TH3Og/wAAAAAEd0VVUgEAAAAg7BZhBF97kSFBBjs38+fX1Pjz08YOqoCX85C/0PoVupkAAAAABHdVU0QBAAAAIN0cvQHwz3UFMHgHsqi2OJjRRd1cH7ozWuNAb/pmWXD9AAAAAAlzdGF0ZU9wZW4CAAAABk9wZW5lZAAAAAAOc3RhdGVTdWdnZXN0ZWQCAAAACVN1Z2dlc3RlZAAAAAALc3RhdGVDYW5jZWwCAAAACENhbmNlbGVkAAAAAA9zdGF0ZUluUHJvZ3Jlc3MCAAAACkluUHJvZ3Jlc3MAAAAAEXN0YXRlV2FpdDRDb25maXJtAgAAABNXYWl0Rm9yQ29uZmlybWF0aW9uAAAAAA1zdGF0ZUNvbXBsZXRlAgAAAAlDb21wbGV0ZWQAAAAADHN0YXRlRGlzcHV0ZQIAAAAHRGlzcHV0ZQAAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQCAAAAD0Rpc3B1dGVSZXNvbHZlZAAAAAAGY2xpZW50AgAAAANDTVIAAAAACmZyZWVsYW5jZXICAAAAAkZMAAAAAAthbWJhc3NhZG9yMQEAAAABAAAAAAALYW1iYXNzYWRvcjIBAAAAAQAAAAAAC2FtYmFzc2Fkb3IzAQAAAAEAAAAAAAthbWJhc3NhZG9yNAEAAAABAAAAAAALYW1iYXNzYWRvcjUBAAAAAQABAAAAEEF1Y3Rpb25JZERhdGFLZXkAAAABAAAACWF1Y3Rpb25JZAkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9BdWN0aW9uRGF0YQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABAAAAEGF1Y3Rpb25Bc3NldE5hbWUDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAABVdBVkVTBQAAAAVXQVZFUwMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAADQlRDBQAAAAR3QlRDAwkAAAAAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAANFVVIFAAAABHdFVVIDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAA1VTRAUAAAAEd1VTRAkAAAIAAAABAgAAABJJbmNvcnJlY3QgQXNzZXQgSWQBAAAACXRpbWVDaGVjawAAAAMAAAALY3VycmVudFRpbWUAAAAJc3RhcnRUaW1lAAAADmV4cGlyYXRpb25UaW1lCQAAZgAAAAIJAABlAAAAAgUAAAALY3VycmVudFRpbWUFAAAACXN0YXJ0VGltZQUAAAAOZXhwaXJhdGlvblRpbWUBAAAAFmluY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACAAAADHBtdEFzc2V0TmFtZQAAAAxhdWN0aW9uUHJpY2UEAAAAD2tleUZyZWV6ZWRGdW5kcwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADHBtdEFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQEAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAPa2V5RnJlZXplZEZ1bmRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAJAABkAAAAAgUAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBQAAAAxhdWN0aW9uUHJpY2UBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACAAAADHBtdEFzc2V0TmFtZQAAAAxhdWN0aW9uUHJpY2UEAAAAD2tleUZyZWV6ZWRGdW5kcwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADHBtdEFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQEAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAPa2V5RnJlZXplZEZ1bmRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAAWEJAABlAAAAAgUAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBQAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAAAWEAAAAAAAAAAAAFAAAAAWEJAAACAAAAAQIAAAAmRnJlZXplZCBhbW91bnQgY291bGRuJ3QgYmUgbGVzcyB0aGFuIDABAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQAAAABAAAACWNhbGxlclB1YgQAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWNhbGxlclB1YgIAAAALX0ZyZWVsYW5jZXIEAAAAByRtYXRjaDAFAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAAJY2FsbGVyUHViCQAAAgAAAAECAAAAI09ubHkgcmVnaXN0ZXJlZCB1c2VycyBjYW4gbWFrZSBiZXRzAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEAAAAJcG10QW1vdW50AwkAAGYAAAACBQAAAAlwbXRBbW91bnQAAAAAAAAAAAAFAAAACXBtdEFtb3VudAkAAAIAAAABAgAAABxBbW91bnQgbXVzdCBiZSBoaWdoZXIgdGhlbiAwAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVTdGF0ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVN0YXRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBTdGF0ZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQAAAAlhdWN0aW9uSWQEAAAAC3ZhbHVlQ2xpZW50CQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAdfQ2xpZW50BAAAAAFhBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZUNsaWVudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAHEF1Y3Rpb24gQ2xpZW50IHdhcyBub3QgZm91bmQJAAJZAAAAAQUAAAABYQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEAAAAJYXVjdGlvbklkBAAAABF2YWx1ZUF1Y3Rpb25TdGFydAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0F1Y3Rpb25TdGFydAQAAAAHJG1hdGNoMAUAAAARdmFsdWVBdWN0aW9uU3RhcnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIFN0YXJ0IHRpbWUgd2FzIG5vdCBmb3VuZAEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEAAAAJYXVjdGlvbklkBAAAABR2YWx1ZWF1Y3Rpb25EdXJhdGlvbgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0F1Y3Rpb25EdXJhdGlvbgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVhdWN0aW9uRHVyYXRpb24DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACNBdWN0aW9uIGR1cmF0aW9uIHRpbWUgd2FzIG5vdCBmb3VuZAEAAAAcZ2V0QXVjdGlvbkpvYlBlcmZvcm1hbmNlVGltZQAAAAEAAAAJYXVjdGlvbklkBAAAABd2YWx1ZUJsb2Nrc0ZvckV4ZWN1dGlvbgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAPX0pvYlBlcmZvcm1hbmNlBAAAAAckbWF0Y2gwBQAAABd2YWx1ZUJsb2Nrc0ZvckV4ZWN1dGlvbgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAKkF1Y3Rpb24gam9iIHBlcmZvcm1hbmNlIHRpbWUgd2FzIG5vdCBmb3VuZAEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEAAAAJYXVjdGlvbklkBAAAAA52YWx1ZUFzc2V0TmFtZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAKX0Fzc2V0TmFtZQQAAAAHJG1hdGNoMAUAAAAOdmFsdWVBc3NldE5hbWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGFzc2V0IG5hbWUgd2FzIG5vdCBmb3VuZAEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQAAAAlhdWN0aW9uSWQEAAAACnZhbHVlUHJpY2UJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9QcmljZQQAAAAHJG1hdGNoMAUAAAAKdmFsdWVQcmljZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAG0F1Y3Rpb24gcHJpY2Ugd2FzIG5vdCBmb3VuZAEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABAAAACWF1Y3Rpb25JZAQAAAALdmFsdWVDbGllbnQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAC19GcmVlbGFuY2VyBAAAAAFhBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZUNsaWVudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAHEF1Y3Rpb24gQ2xpZW50IHdhcyBub3QgZm91bmQJAAJZAAAAAQUAAAABYQAAAAsAAAABaQEAAAAQZnJlZWxhbmNlclNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAACAAAAAQIAAAAXVXNlciBhbHJlYWR5IHJlZ2lzdGVyZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIFAAAABGluZm8FAAAAA25pbAAAAAFpAQAAAAxjbGllbnRTaWduVXAAAAABAAAABGluZm8EAAAADXVzZXJQdWJsaWNLZXkJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABFhbHJlYWR5UmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAAB19DbGllbnQDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAACAAAAAQIAAAAXVXNlciBhbHJlYWR5IHJlZ2lzdGVyZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAHX0NsaWVudAUAAAAEaW5mbwUAAAADbmlsAAAAAWkBAAAADWNyZWF0ZUF1Y3Rpb24AAAADAAAAEGpvYkV4ZWN1dGlvbkRheXMAAAATYXVjdGlvbkR1cmF0aW9uRGF5cwAAAAthdWN0aW9uSW5mbwQAAAAJYXVjdGlvbklkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAJcG10QW1vdW50CAUAAAADcG10AAAABmFtb3VudAQAAAAMYXVjdGlvblByaWNlCQEAAAAXY3JlYXRlQXVjdGlvblByaWNlQ2hlY2sAAAABBQAAAAlwbXRBbW91bnQEAAAADGF1Y3Rpb25TdGFydAUAAAAGaGVpZ2h0BAAAABVhdWN0aW9uRHVyYXRpb25CbG9ja3MJAABoAAAAAgUAAAATYXVjdGlvbkR1cmF0aW9uRGF5cwUAAAADZGF5BAAAABJibG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAAQam9iRXhlY3V0aW9uRGF5cwUAAAADZGF5BAAAAAxwbXRBc3NldE5hbWUDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQCAAAABVdBVkVTAwkAAAAAAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAABHdCVEMCAAAAA0JUQwMJAAAAAAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAR3RVVSAgAAAANFVVIDCQAAAAAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAEd1VTRAIAAAADVVNECQAAAgAAAAECAAAAFEFzc2V0SWQgaXMgaW5jb3JyZWN0BAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmluY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAAAxwbXRBc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAJc3RhdGVPcGVuCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0luZm8FAAAAC2F1Y3Rpb25JbmZvCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAHX0NsaWVudAUAAAANYXVjdGlvbkNsaWVudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9BdWN0aW9uU3RhcnQFAAAADGF1Y3Rpb25TdGFydAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9BdWN0aW9uRHVyYXRpb24FAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAD19Kb2JQZXJmb3JtYW5jZQUAAAASYmxvY2tzRm9yRXhlY3V0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAKX0Fzc2V0TmFtZQUAAAAMcG10QXNzZXROYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAAAAAFpAQAAAAdtYWtlQmlkAAAAAgAAAAlhdWN0aW9uSWQAAAAIYmV0UHJpY2UEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAB2JldFRpbWUFAAAABmhlaWdodAQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADW5ld0ZyZWVsYW5jZXIJAQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAAAAAQUAAAAJY2FsbGVyUHViBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlBAAAABFhdWN0aW9uVGltZWlzT3ZlcgkBAAAACXRpbWVDaGVjawAAAAMFAAAAB2JldFRpbWUFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uAwUAAAARYXVjdGlvblRpbWVpc092ZXIDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAALc3RhdGVDYW5jZWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIEAAAAEXZhbHVlTG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUxvd2VzdEJpZGRlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kBAAAAA9uZXdBdWN0aW9uUHJpY2UEAAAAFHZhbHVlTmV3QXVjdGlvblByaWNlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAAAckbWF0Y2gwBQAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gbG93ZXN0IGJpZCB3YXMgbm90IGZvdW5kBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA9uZXdBdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAALX0ZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAD25ld0F1Y3Rpb25QcmljZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEGFtb3VudERpZmZlcmVuY2UFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1uZXdGcmVlbGFuY2VyBQAAAAhiZXRQcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBQAAAAljYWxsZXJQdWIFAAAAA25pbAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAQAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgQAAAAMbG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAAAxsb3dlc3RCaWRkZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACNBdWN0aW9uIGxvd2VzdCBiaWRkZXIgd2FzIG5vdCBmb3VuZAQAAAASbmV3TG93ZXN0QmlkZGVyUHViBAAAABV2YWx1ZUN1cnJlbnRMb3dlc3RCaWQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIEAAAAEGN1cnJlbnRMb3dlc3RCaWQEAAAAByRtYXRjaDAFAAAAFXZhbHVlQ3VycmVudExvd2VzdEJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gbG93ZXN0IGJpZCB3YXMgbm90IGZvdW5kAwkAAGYAAAACBQAAABBjdXJyZW50TG93ZXN0QmlkBQAAAAhiZXRQcmljZQUAAAANbmV3RnJlZWxhbmNlcgUAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9Mb3dlc3RCaWRkZXJQdWIFAAAAEm5ld0xvd2VzdEJpZGRlclB1YgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADW5ld0ZyZWVsYW5jZXIFAAAACGJldFByaWNlBQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHEluY29ycmVjdCBqb2JJZCBzdGF0ZS4gTm93OiAFAAAADGF1Y3Rpb25TdGF0ZQIAAAALLCBtdXN0IGJlOiAFAAAACXN0YXRlT3BlbgIAAAAEIG9yIAUAAAAOc3RhdGVTdWdnZXN0ZWQAAAABaQEAAAAQY2hvb3NlRnJlZWxhbmNlcgAAAAIAAAAJYXVjdGlvbklkAAAADWZyZWVsYW5jZXJQdWIEAAAACWNhbGxlclB1YgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAB2JldFRpbWUFAAAABmhlaWdodAQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEUFzc2V0TmFtZVRvQmFzZTU4AAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAATZnJlZWxhbmNlckJpZEFtb3VudAQAAAAQa2V5RnJlZWxhbmNlckJpZAkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADWZyZWVsYW5jZXJQdWIEAAAAEXZhbHVlRnJlZWxhY2VyQmlkCQAEGgAAAAIFAAAABHRoaXMFAAAAEGtleUZyZWVsYW5jZXJCaWQEAAAAByRtYXRjaDAFAAAAEXZhbHVlRnJlZWxhY2VyQmlkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAeRnJlZWxhbmNlcidzIGJldCB3YXMgbm90IGZvdW5kBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEWF1Y3Rpb25UaW1laXNPdmVyCQEAAAAJdGltZUNoZWNrAAAAAwUAAAAHYmV0VGltZQUAAAAMYXVjdGlvblN0YXJ0BQAAAA9hdWN0aW9uRHVyYXRpb24DCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAANYXVjdGlvbkNsaWVudAMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAALc3RhdGVDYW5jZWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIEAAAAEXZhbHVlTG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUxvd2VzdEJpZGRlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kBAAAAA9uZXdBdWN0aW9uUHJpY2UEAAAAFHZhbHVlTmV3QXVjdGlvblByaWNlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAAAckbWF0Y2gwBQAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gbG93ZXN0IGJpZCB3YXMgbm90IGZvdW5kBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAPbmV3QXVjdGlvblByaWNlBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAABBhbW91bnREaWZmZXJlbmNlCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAALX0ZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAD25ld0F1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA1hdWN0aW9uQ2xpZW50BQAAABBhbW91bnREaWZmZXJlbmNlBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAXSW5jb3JyZWN0IGF1Y3Rpb24gc3RhdGUEAAAAEHNldE5ld0ZyZWVsYW5jZXIEAAAADW5ld0ZyZWVsYW5jZXIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADWZyZWVsYW5jZXJQdWIEAAAAByRtYXRjaDAFAAAADW5ld0ZyZWVsYW5jZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAANZnJlZWxhbmNlclB1YgkAAAIAAAABAgAAAB5FcnJvcjogSW5jb3JyZWN0IGZyZWVsYW5jZXJQdWIEAAAAD25ld0F1Y3Rpb25QcmljZQQAAAANZnJlZWxhbmNlckJpZAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANZnJlZWxhbmNlclB1YgQAAAAHJG1hdGNoMAUAAAANZnJlZWxhbmNlckJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAATZnJlZWxhbmNlckJpZEFtb3VudAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAQYW1vdW50RGlmZmVyZW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAC19GcmVlbGFuY2VyBQAAABBzZXROZXdGcmVlbGFuY2VyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAAA9uZXdBdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAABBhbW91bnREaWZmZXJlbmNlBQAAAA5kQXBwQ29tbWlzc2lvbgUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAECAAAALU9ubHkgYXVjdGlvbiBjdXN0b21lciBjYW4gY2hvb3NlIGEgZnJlZWxhbmNlcgAAAAFpAQAAABVpbmNyZWFzZUV4ZWN1dGlvblRpbWUAAAACAAAACWF1Y3Rpb25JZAAAAA1leGVjdXRpb25EYXlzBAAAAAZjYWxsZXIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAAcZ2V0QXVjdGlvbkpvYlBlcmZvcm1hbmNlVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUEAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAADZGF5AwkAAGYAAAACBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAAgAAAAECAAAAOE5ldyBleGVjdXRpb24gdGltZSBtdXN0IG1vcmUgdGhhbiBjdXJyZW50IGV4ZWN1dGlvbiB0aW1lAwkAAAAAAAACBQAAAAZjYWxsZXIFAAAADWF1Y3Rpb25DbGllbnQDAwMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4GCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQGCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAPX0pvYlBlcmZvcm1hbmNlBQAAABduZXdBdWN0aW9uRXhlY3V0aW9uVGltZQUAAAADbmlsCQAAAgAAAAECAAAAD0luY29ycmVjdCBzdGF0ZQkAAAIAAAABAgAAACdPbmx5IENsaWVudCBjYW4gaW5jcmVhc2UgZXhlY3V0aW9uIHRpbWUAAAABaQEAAAANY2FuY2VsQXVjdGlvbgAAAAEAAAAJYXVjdGlvbklkBAAAAAljYWxsZXJQdWIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAARYW1vdW50V2l0aG91dENvbW0JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlBAAAAA5jYWxsZXJJc0NsaWVudAMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAA1hdWN0aW9uQ2xpZW50BgkAAAIAAAABAgAAAC5BdWN0aW9uIGNhbiBiZSBjYW5jZWxlZCBvbmx5IGJ5IGF1Y3Rpb24gb3duZXIuAwUAAAAOY2FsbGVySXNDbGllbnQDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAALc3RhdGVDYW5jZWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAUAAAARYW1vdW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABhJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZS4JAAACAAAAAQIAAAAeT25seSBDbGllbnQgY2FuIGNhbmNlbCBhdWN0aW9uAAAAAWkBAAAAC29wZW5EaXNwdXRlAAAAAQAAAAlhdWN0aW9uSWQEAAAABmNhbGxlcgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAkAAAIAAAABAgAAACtJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZSBmb3IgZGlzcHV0ZSBvcGVuaW5nAwMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA1hdWN0aW9uQ2xpZW50BgkAAAAAAAACBQAAAAZjYWxsZXIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAxzdGF0ZURpc3B1dGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzAAAAAAAAAAAABQAAAANuaWwJAAACAAAAAQIAAAAtT25seSBjdXN0b21lciBhbmQgZnJlZWxhbmNlciBjYW4gb3BlbiBkaXNwdXRlAAAAAWkBAAAAC3ZvdGVEaXNwdXRlAAAAAgAAAAlhdWN0aW9uSWQAAAAEdm90ZQQAAAAJY2FsbGVyUHViCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAJY29taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAABJjYWxsZXJJc0FtYmFzc2Fkb3IDAwMDAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3IxBgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3IyBgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3IzBgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3I0BgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3I1CQACWAAAAAEFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAC1Pbmx5IGRlZmluZWQgYW1iYXNzYWRvcnMgY2FuIHZvdGUgaW4gZGlzcHV0ZXMEAAAAB25ld1ZvdGUDAwkAAAAAAAACBQAAAAR2b3RlBQAAAAZjbGllbnQGCQAAAAAAAAIFAAAABHZvdGUFAAAACmZyZWVsYW5jZXIFAAAABHZvdGUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAcVm90ZSBpcyBpbmNvcnJlY3QuIE11c3QgYmU6IAUAAAAGY2xpZW50AgAAAAQgb3IgBQAAAApmcmVlbGFuY2VyBAAAAAhuZXdWb3RlcgQAAAAIa2V5Vm90ZXIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAASY2FsbGVySXNBbWJhc3NhZG9yBAAAAAp2YWx1ZVZvdGVyCQAEHQAAAAIFAAAABHRoaXMFAAAACGtleVZvdGVyBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVZvdGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAJAAACAAAAAQIAAAASVXNlciBhbHJlYWR5IHZvdGVkBQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IEAAAAC3ZvdGVzTnVtYmVyBAAAABB2YWx1ZVZvdGVzTnVtYmVyCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzBAAAAAckbWF0Y2gwBQAAABB2YWx1ZVZvdGVzTnVtYmVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAZVm90ZXNOdW1iZXIgd2FzIG5vdCBmb3VuZAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAxzdGF0ZURpc3B1dGUDCQAAAAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAAEBAAAAA1kaXNwdXRlV2lubmVyBAAAAA9hbWJhc3NhZG9yMVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3IxBAAAAA9hbWJhc3NhZG9yMlZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3IyBAAAAA9hbWJhc3NhZG9yM1ZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3IzBAAAAA9hbWJhc3NhZG9yNFZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3I0BAAAAA9hbWJhc3NhZG9yNVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3I1BAAAAAJ2MQMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjFWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnYyAwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yMlZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjMDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3IzVm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAJ2NAMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjRWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnY1AwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yNVZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALY3VycmVudFZvdGUDCQAAAAAAAAIFAAAAB25ld1ZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAOdm90ZXNGb3JDbGllbnQJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAJ2MQUAAAACdjIFAAAAAnYzBQAAAAJ2NAUAAAACdjUFAAAAC2N1cnJlbnRWb3RlAwkAAGYAAAACBQAAAA52b3Rlc0ZvckNsaWVudAAAAAAAAAAAAgUAAAANYXVjdGlvbkNsaWVudAUAAAARYXVjdGlvbkZyZWVsYW5jZXIEAAAAEnBheW1lbnRXaXRob3V0Q29tbQMJAAAAAAAAAgUAAAANZGlzcHV0ZVdpbm5lcgUAAAANYXVjdGlvbkNsaWVudAUAAAAMYXVjdGlvblByaWNlCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAJY29taXNzaW9uBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAASY2FsbGVySXNBbWJhc3NhZG9yBQAAAAduZXdWb3RlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWRpc3B1dGVXaW5uZXIFAAAAEnBheW1lbnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IFAAAAB25ld1ZvdGUFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAGkluY29ycmVjdCBzdGF0ZS4gTXVzdCBiZTogBQAAAAxzdGF0ZURpc3B1dGUAAAABaQEAAAAMd29ya0hhbmRPdmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAC2N1cnJlbnRUaW1lBQAAAAZoZWlnaHQEAAAAEmZyZWVsYW5jZXJQdWJDaGVjawMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAABFhdWN0aW9uRnJlZWxhbmNlcgUAAAAJY2FsbGVyUHViCQAAAgAAAAECAAAANE9ubHkgYSBmcmVlbGFuY2VyIGNhbiBpbmRpY2F0ZSB0aGF0IHRoZSB3b3JrIGlzIGRvbmUEAAAACnRpbWVJc092ZXIJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAMYXVjdGlvblN0YXJ0BQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwMFAAAACnRpbWVJc092ZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMCAAAAATAFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAARc3RhdGVXYWl0NENvbmZpcm0FAAAAA25pbAkAAAIAAAABAgAAABpBdWN0aW9uIHN0YXRlIGlzIGluY29ycmVjdAAAAAFpAQAAAAphY2NlcHRXb3JrAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFhbW91bnRXaXRob3V0Q29tbQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UEAAAACW5ld1JhdGluZwQAAAALdmFsdWVSYXRpbmcJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQACWAAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nBAAAAA1jdXJyZW50UmF0aW5nBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZVJhdGluZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAACQAAZAAAAAIFAAAADWN1cnJlbnRSYXRpbmcAAAAAAAAAAAEDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAANYXVjdGlvbkNsaWVudAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADXN0YXRlQ29tcGxldGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAHX1JhdGluZwUAAAAJbmV3UmF0aW5nCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyBQAAABFhbW91bnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgIAAAAaSW5jb3JyZWN0IHN0YXRlLiBNdXN0IGJlOiAFAAAAEXN0YXRlV2FpdDRDb25maXJtCQAAAgAAAAECAAAAK09ubHkgYXVjdGlvbiBjdXN0b21lciBjYW4gdXNlIHRoaXMgZnVuY3Rpb24AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAN0dHgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAADc3R4BQAAAAckbWF0Y2gwBgcHJ5u+KQ==", "chainId": 84, "height": 697779, "spentComplexity": 0 } View: original | compacted Prev: AMAjavsEWaNWXhrJS5wktiNwYV5jk3oxp6QQjJVKg1BD Next: Bmx2sW7boaYrPAWkXw2pRc7ukuZ2jjpqhtBk4iERqoRC Diff:
OldNewDifferences
4444 func u (v) = (v + "_AuctionData")
4545
4646
47-func w (v) = {
48- let x = getString(this, v)
49- let y = {
50- let z = x
51- if ($isInstanceOf(z, "String"))
52- then {
53- let y = z
54- y
55- }
56- else throw("AuctionId was not found")
57- }
58- split(y, "_")
59- }
60-
61-
62-func A (v) = {
63- let B = ((v + "_") + l)
64- let C = getString(this, B)
65- let y = {
66- let z = C
67- if ($isInstanceOf(z, "String"))
68- then {
69- let y = z
70- y
71- }
72- else throw("Dispute data was not found")
73- }
74- split(y, "/")
75- }
76-
77-
78-func D (E) = if ((E == "WAVES"))
47+func w (x) = if ((x == "WAVES"))
7948 then b
80- else if ((E == "BTC"))
49+ else if ((x == "BTC"))
8150 then c
82- else if ((E == "EUR"))
51+ else if ((x == "EUR"))
8352 then d
84- else if ((E == "USD"))
53+ else if ((x == "USD"))
8554 then e
8655 else throw("Incorrect Asset Id")
8756
8857
89-func F (G,H,I) = ((G - H) > I)
58+func y (z,A,B) = ((z - A) > B)
9059
9160
92-func J (K,L) = {
93- let M = getInteger(this, (K + "_Freezed"))
94- let N = {
95- let z = M
96- if ($isInstanceOf(z, "Int"))
61+func C (D,E) = {
62+ let F = getInteger(this, (D + "_Freezed"))
63+ let G = {
64+ let H = F
65+ if ($isInstanceOf(H, "Int"))
9766 then {
98- let y = z
99- y
67+ let I = H
68+ I
10069 }
10170 else 0
10271 }
103- (N + L)
72+ (G + E)
10473 }
10574
10675
107-func O (K,L) = {
108- let M = getInteger(this, (K + "_Freezed"))
109- let N = {
110- let z = M
111- if ($isInstanceOf(z, "Int"))
76+func J (D,E) = {
77+ let F = getInteger(this, (D + "_Freezed"))
78+ let G = {
79+ let H = F
80+ if ($isInstanceOf(H, "Int"))
11281 then {
113- let y = z
114- y
82+ let I = H
83+ I
11584 }
11685 else 0
11786 }
118- let y = (N - L)
119- if ((y > 0))
120- then y
87+ let I = (G - E)
88+ if ((I > 0))
89+ then I
12190 else throw("Freezed amount couldn't be less than 0")
12291 }
12392
12493
125-func P (Q) = {
126- let P = getString(this, (Q + "_Freelancer"))
127- let z = P
128- if ($isInstanceOf(z, "String"))
94+func K (L) = {
95+ let K = getString(this, (L + "_Freelancer"))
96+ let H = K
97+ if ($isInstanceOf(H, "String"))
12998 then {
130- let y = z
131- Q
99+ let I = H
100+ L
132101 }
133102 else throw("Only registered users can make bets")
134103 }
135104
136105
137-@Callable(R)
138-func freelancerSignUp (S) = {
139- let T = toBase58String(R.callerPublicKey)
140- let U = getString(this, (T + "_Freelancer"))
141- if (isDefined(U))
106+func M (N) = if ((N > 0))
107+ then N
108+ else throw("Amount must be higher then 0")
109+
110+
111+func O (v) = {
112+ let P = getString(this, (v + "_State"))
113+ let H = P
114+ if ($isInstanceOf(H, "String"))
115+ then {
116+ let I = H
117+ I
118+ }
119+ else throw("Auction State was not found")
120+ }
121+
122+
123+func Q (v) = {
124+ let R = getString(this, (v + "_Client"))
125+ let I = {
126+ let H = R
127+ if ($isInstanceOf(H, "String"))
128+ then {
129+ let I = H
130+ I
131+ }
132+ else throw("Auction Client was not found")
133+ }
134+ fromBase58String(I)
135+ }
136+
137+
138+func S (v) = {
139+ let T = getInteger(this, (v + "_AuctionStart"))
140+ let H = T
141+ if ($isInstanceOf(H, "Int"))
142+ then {
143+ let I = H
144+ I
145+ }
146+ else throw("Auction Start time was not found")
147+ }
148+
149+
150+func U (v) = {
151+ let V = getInteger(this, (v + "_AuctionDuration"))
152+ let H = V
153+ if ($isInstanceOf(H, "Int"))
154+ then {
155+ let I = H
156+ I
157+ }
158+ else throw("Auction duration time was not found")
159+ }
160+
161+
162+func W (v) = {
163+ let X = getInteger(this, (v + "_JobPerformance"))
164+ let H = X
165+ if ($isInstanceOf(H, "Int"))
166+ then {
167+ let I = H
168+ I
169+ }
170+ else throw("Auction job performance time was not found")
171+ }
172+
173+
174+func Y (v) = {
175+ let Z = getString(this, (v + "_AssetName"))
176+ let H = Z
177+ if ($isInstanceOf(H, "String"))
178+ then {
179+ let I = H
180+ I
181+ }
182+ else throw("Auction asset name was not found")
183+ }
184+
185+
186+func aa (v) = {
187+ let ab = getInteger(this, (v + "_Price"))
188+ let H = ab
189+ if ($isInstanceOf(H, "Int"))
190+ then {
191+ let I = H
192+ I
193+ }
194+ else throw("Auction price was not found")
195+ }
196+
197+
198+func ac (v) = {
199+ let R = getString(this, (v + "_Freelancer"))
200+ let I = {
201+ let H = R
202+ if ($isInstanceOf(H, "String"))
203+ then {
204+ let I = H
205+ I
206+ }
207+ else throw("Auction Client was not found")
208+ }
209+ fromBase58String(I)
210+ }
211+
212+
213+@Callable(ad)
214+func freelancerSignUp (ae) = {
215+ let af = toBase58String(ad.callerPublicKey)
216+ let ag = getString(this, (af + "_Freelancer"))
217+ if (isDefined(ag))
142218 then throw("User already registered")
143- else WriteSet([DataEntry((T + "_Freelancer"), S)])
219+ else WriteSet([DataEntry((af + "_Freelancer"), ae)])
144220 }
145221
146222
147223
148-@Callable(R)
149-func clientSignUp (S) = {
150- let T = toBase58String(R.callerPublicKey)
151- let U = getString(this, (T + "_Client"))
152- if (isDefined(U))
224+@Callable(ad)
225+func clientSignUp (ae) = {
226+ let af = toBase58String(ad.callerPublicKey)
227+ let ag = getString(this, (af + "_Client"))
228+ if (isDefined(ag))
153229 then throw("User already registered")
154- else WriteSet([DataEntry((T + "_Client"), S)])
230+ else WriteSet([DataEntry((af + "_Client"), ae)])
155231 }
156232
157233
158234
159-@Callable(R)
160-func createAuction (V,W,X) = {
161- let v = toBase58String(R.transactionId)
162- let Y = toBase58String(R.callerPublicKey)
163- let Z = extract(R.payment)
164- let aa = Z.amount
165- let L = if ((aa > 0))
166- then aa
167- else throw("Amount must be higher then 0")
168- let ab = height
169- let ac = (W * a)
170- let ad = (V * a)
171- let K = if (!(isDefined(Z.assetId)))
235+@Callable(ad)
236+func createAuction (ah,ai,aj) = {
237+ let v = toBase58String(ad.transactionId)
238+ let ak = toBase58String(ad.callerPublicKey)
239+ let al = extract(ad.payment)
240+ let N = al.amount
241+ let E = M(N)
242+ let am = height
243+ let an = (ai * a)
244+ let ao = (ah * a)
245+ let D = if (!(isDefined(al.assetId)))
172246 then "WAVES"
173- else if ((Z.assetId == c))
247+ else if ((al.assetId == c))
174248 then "BTC"
175- else if ((Z.assetId == d))
249+ else if ((al.assetId == d))
176250 then "EUR"
177- else if ((Z.assetId == e))
251+ else if ((al.assetId == e))
178252 then "USD"
179253 else throw("AssetId is incorrect")
180- let ae = J(K, L)
181- WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), X), DataEntry((v + "_Client"), Y), DataEntry((v + "_AuctionStart"), ab), DataEntry((v + "_AuctionDuration"), ac), DataEntry((v + "_JobPerformance"), ad), DataEntry((v + "_AssetName"), K), DataEntry((v + "_Price"), L), DataEntry((K + "_Freezed"), ae)])
254+ let ap = C(D, E)
255+ WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), aj), DataEntry((v + "_Client"), ak), DataEntry((v + "_AuctionStart"), am), DataEntry((v + "_AuctionDuration"), an), DataEntry((v + "_JobPerformance"), ao), DataEntry((v + "_AssetName"), D), DataEntry((v + "_Price"), E), DataEntry((D + "_Freezed"), ap)])
182256 }
183257
184258
185259
186-@Callable(R)
187-func makeBid (v,af) = {
188- let Q = toBase58String(R.callerPublicKey)
189- let ag = height
190- let ah = {
191- let ai = getString(this, (v + "_State"))
192- let z = ai
193- if ($isInstanceOf(z, "String"))
194- then {
195- let y = z
196- y
197- }
198- else throw("Auction State was not found")
199- }
200- let X = {
201- let aj = getString(this, (v + "_Info"))
202- let z = aj
203- if ($isInstanceOf(z, "String"))
204- then {
205- let y = z
206- y
207- }
208- else throw("Auction info was not found")
209- }
210- let Y = {
211- let ak = getString(this, (v + "_Client"))
212- let y = {
213- let z = ak
214- if ($isInstanceOf(z, "String"))
260+@Callable(ad)
261+func makeBid (v,aq) = {
262+ let L = toBase58String(ad.callerPublicKey)
263+ let ar = height
264+ let as = O(v)
265+ let ak = Q(v)
266+ let am = S(v)
267+ let at = U(v)
268+ let au = W(v)
269+ let x = Y(v)
270+ let E = aa(v)
271+ let av = w(x)
272+ let aw = K(L)
273+ let ax = ((E * 3) / 100)
274+ let ap = J(x, E)
275+ let ay = y(ar, am, at)
276+ if (ay)
277+ then if ((as == f))
278+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
279+ else if ((as == g))
215280 then {
216- let y = z
217- y
218- }
219- else throw("Auction Client was not found")
220- }
221- fromBase58String(y)
222- }
223- let ab = {
224- let al = getInteger(this, (v + "_AuctionStart"))
225- let z = al
226- if ($isInstanceOf(z, "Int"))
227- then {
228- let y = z
229- y
230- }
231- else throw("Auction Start time was not found")
232- }
233- let am = {
234- let an = getInteger(this, (v + "_AuctionDuration"))
235- let z = an
236- if ($isInstanceOf(z, "Int"))
237- then {
238- let y = z
239- y
240- }
241- else throw("Auction duration time was not found")
242- }
243- let ao = {
244- let ap = getInteger(this, (v + "_JobPerformance"))
245- let z = ap
246- if ($isInstanceOf(z, "Int"))
247- then {
248- let y = z
249- y
250- }
251- else throw("Auction job performance time was not found")
252- }
253- let E = {
254- let aq = getString(this, (v + "_AssetName"))
255- let z = aq
256- if ($isInstanceOf(z, "String"))
257- then {
258- let y = z
259- y
260- }
261- else throw("Auction asset name was not found")
262- }
263- let L = {
264- let ar = getInteger(this, (v + "_Price"))
265- let z = ar
266- if ($isInstanceOf(z, "Int"))
267- then {
268- let y = z
269- y
270- }
271- else throw("Auction price was not found")
272- }
273- let as = D(E)
274- let at = P(Q)
275- let au = ((L * 3) / 100)
276- let ae = O(E, L)
277- let av = F(ag, ab, am)
278- if (av)
279- then if ((ah == f))
280- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), (L - au), as)]))
281- else if ((ah == g))
282- then {
283- let aw = {
284- let ax = getString(this, (v + "_LowestBidderPub"))
285- let z = ax
286- if ($isInstanceOf(z, "String"))
281+ let az = {
282+ let aA = getString(this, (v + "_LowestBidderPub"))
283+ let H = aA
284+ if ($isInstanceOf(H, "String"))
287285 then {
288- let y = z
289- y
286+ let I = H
287+ I
290288 }
291289 else throw("Auction lowest bidder was not found")
292290 }
293- let ay = {
294- let az = getInteger(this, ((v + "_Bid_") + aw))
295- let z = az
296- if ($isInstanceOf(z, "Int"))
291+ let aB = {
292+ let aC = getInteger(this, ((v + "_Bid_") + az))
293+ let H = aC
294+ if ($isInstanceOf(H, "Int"))
297295 then {
298- let y = z
299- y
296+ let I = H
297+ I
300298 }
301299 else throw("Auction lowest bid was not found")
302300 }
303- let aA = ((L - ay) - au)
304- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aw), DataEntry((v + "_Price"), ay)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), aA, as)]))
301+ let aD = ((E - aB) - ax)
302+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), az), DataEntry((v + "_Price"), aB)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
305303 }
306304 else throw("Incorrect auction state")
307- else if ((ah == f))
308- then WriteSet([DataEntry(((v + "_Bid_") + at), af), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), Q), DataEntry((v + Q), af)])
309- else if ((ah == g))
305+ else if ((as == f))
306+ then WriteSet([DataEntry(((v + "_Bid_") + aw), aq), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), L)])
307+ else if ((as == g))
310308 then {
311- let aB = {
312- let aC = getString(this, (v + "_LowestBidderPub"))
313- let z = aC
314- if ($isInstanceOf(z, "String"))
309+ let aE = {
310+ let aF = getString(this, (v + "_LowestBidderPub"))
311+ let H = aF
312+ if ($isInstanceOf(H, "String"))
315313 then {
316- let y = z
317- y
314+ let I = H
315+ I
318316 }
319317 else throw("Auction lowest bidder was not found")
320318 }
321- let aD = {
322- let aE = getInteger(this, ((v + "_Bid_") + aB))
323- let aF = {
324- let z = aE
325- if ($isInstanceOf(z, "Int"))
319+ let aG = {
320+ let aH = getInteger(this, ((v + "_Bid_") + aE))
321+ let aI = {
322+ let H = aH
323+ if ($isInstanceOf(H, "Int"))
326324 then {
327- let y = z
328- y
325+ let I = H
326+ I
329327 }
330328 else throw("Auction lowest bid was not found")
331329 }
332- if ((aF > af))
333- then at
334- else aB
330+ if ((aI > aq))
331+ then aw
332+ else aE
335333 }
336- WriteSet([DataEntry((v + "_LowestBidderPub"), aD), DataEntry(((v + "_Bid_") + at), af)])
334+ WriteSet([DataEntry((v + "_LowestBidderPub"), aG), DataEntry(((v + "_Bid_") + aw), aq)])
337335 }
338- else throw(((((("Incorrect jobId state. Now: " + ah) + ", must be: ") + f) + " or ") + g))
336+ else throw(((((("Incorrect jobId state. Now: " + as) + ", must be: ") + f) + " or ") + g))
339337 }
340338
341339
342340
343-@Callable(R)
344-func chooseFreelancer (v,aG) = {
345- let Q = extract(R.callerPublicKey)
346- let ag = height
347- let ah = {
348- let ai = getString(this, (v + "_State"))
349- let z = ai
350- if ($isInstanceOf(z, "String"))
341+@Callable(ad)
342+func chooseFreelancer (v,aJ) = {
343+ let L = extract(ad.callerPublicKey)
344+ let ar = height
345+ let as = O(v)
346+ let ak = Q(v)
347+ let am = S(v)
348+ let at = U(v)
349+ let x = Y(v)
350+ let E = aa(v)
351+ let av = w(x)
352+ let aK = {
353+ let aL = ((v + "_Bid_") + aJ)
354+ let aM = getInteger(this, aL)
355+ let H = aM
356+ if ($isInstanceOf(H, "Int"))
351357 then {
352- let y = z
353- y
354- }
355- else throw("Auction State was not found")
356- }
357- let Y = {
358- let ak = getString(this, (v + "_Client"))
359- let y = {
360- let z = ak
361- if ($isInstanceOf(z, "String"))
362- then {
363- let y = z
364- y
365- }
366- else throw("Auction Client was not found")
367- }
368- fromBase58String(y)
369- }
370- let ab = {
371- let al = getInteger(this, (v + "_AuctionStart"))
372- let z = al
373- if ($isInstanceOf(z, "Int"))
374- then {
375- let y = z
376- y
377- }
378- else throw("Auction Start time was not found")
379- }
380- let am = {
381- let an = getInteger(this, (v + "_AuctionDuration"))
382- let z = an
383- if ($isInstanceOf(z, "Int"))
384- then {
385- let y = z
386- y
387- }
388- else throw("Auction duration time was not found")
389- }
390- let E = {
391- let aq = getString(this, (v + "_AssetName"))
392- let z = aq
393- if ($isInstanceOf(z, "String"))
394- then {
395- let y = z
396- y
397- }
398- else throw("Auction asset name was not found")
399- }
400- let L = {
401- let ar = getInteger(this, (v + "_Price"))
402- let z = ar
403- if ($isInstanceOf(z, "Int"))
404- then {
405- let y = z
406- y
407- }
408- else throw("Auction price was not found")
409- }
410- let as = D(E)
411- let aH = {
412- let aI = ((v + "_Bid_") + aG)
413- let aJ = getInteger(this, aI)
414- let z = aJ
415- if ($isInstanceOf(z, "Int"))
416- then {
417- let y = z
418- y
358+ let I = H
359+ I
419360 }
420361 else throw("Freelancer's bet was not found")
421362 }
422- let au = ((L * 3) / 100)
423- let aA = ((L - aH) - au)
424- let av = F(ag, ab, am)
425- if ((Q == Y))
426- then if (av)
427- then if ((ah == f))
363+ let ax = ((aK * 3) / 100)
364+ let ay = y(ar, am, at)
365+ if ((L == ak))
366+ then if (ay)
367+ then if ((as == f))
428368 then {
429- let aK = (L - au)
430- let ae = O(E, aK)
431- ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), aK, as)]))
369+ let ap = J(x, E)
370+ ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
432371 }
433- else if ((ah == g))
372+ else if ((as == g))
434373 then {
435- let aw = {
436- let ax = getString(this, (v + "_LowestBidderPub"))
437- let z = ax
438- if ($isInstanceOf(z, "String"))
374+ let az = {
375+ let aA = getString(this, (v + "_LowestBidderPub"))
376+ let H = aA
377+ if ($isInstanceOf(H, "String"))
439378 then {
440- let y = z
441- y
379+ let I = H
380+ I
442381 }
443382 else throw("Auction lowest bidder was not found")
444383 }
445- let ay = {
446- let az = getInteger(this, ((v + "_Bid_") + aw))
447- let z = az
448- if ($isInstanceOf(z, "Int"))
384+ let aB = {
385+ let aC = getInteger(this, ((v + "_Bid_") + az))
386+ let H = aC
387+ if ($isInstanceOf(H, "Int"))
449388 then {
450- let y = z
451- y
389+ let I = H
390+ I
452391 }
453392 else throw("Auction lowest bid was not found")
454393 }
455- WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aw), DataEntry((v + "_Price"), ay)])
394+ let aD = (E - aB)
395+ let ap = J(x, aD)
396+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), az), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
456397 }
457398 else throw("Incorrect auction state")
458399 else {
459- let aL = {
460- let at = getInteger(this, ((v + "_Bid_") + aG))
461- let z = at
462- if ($isInstanceOf(z, "Int"))
400+ let aN = {
401+ let aw = getInteger(this, ((v + "_Bid_") + aJ))
402+ let H = aw
403+ if ($isInstanceOf(H, "Int"))
463404 then {
464- let y = z
465- aG
405+ let I = H
406+ aJ
466407 }
467408 else throw("Error: Incorrect freelancerPub")
468409 }
469- let aM = {
470- let aN = getInteger(this, ((v + "_Bid_") + aG))
471- let z = aN
472- if ($isInstanceOf(z, "Int"))
410+ let aB = {
411+ let aO = getInteger(this, ((v + "_Bid_") + aJ))
412+ let H = aO
413+ if ($isInstanceOf(H, "Int"))
473414 then {
474- let y = z
475- y
415+ let I = H
416+ I
476417 }
477418 else throw("Auction lowest bidder was not found")
478419 }
479- let ae = O(E, aM)
480- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aL), DataEntry((v + "_Price"), aM), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), aA, as)]))
420+ let aD = (E - aK)
421+ let ap = J(x, aD)
422+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aN), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (aD - ax), av)]))
481423 }
482424 else throw("Only auction customer can choose a freelancer")
483425 }
484426
485427
486428
487-@Callable(R)
488-func increaseExecutionTime (v,aO) = {
489- let aP = extract(R.callerPublicKey)
490- let ah = {
491- let ai = getString(this, (v + "_State"))
492- let z = ai
493- if ($isInstanceOf(z, "String"))
494- then {
495- let y = z
496- y
497- }
498- else throw("Auction State was not found")
499- }
500- let Y = {
501- let ak = getString(this, (v + "_Client"))
502- let y = {
503- let z = ak
504- if ($isInstanceOf(z, "String"))
505- then {
506- let y = z
507- y
508- }
509- else throw("Auction Client was not found")
510- }
511- fromBase58String(y)
512- }
513- let aQ = {
514- let ap = getInteger(this, (v + "JobPerformance"))
515- let z = ap
516- if ($isInstanceOf(z, "Int"))
517- then {
518- let y = z
519- y
520- }
521- else throw("Auction job performance time was not found")
522- }
429+@Callable(ad)
430+func increaseExecutionTime (v,aP) = {
431+ let aQ = extract(ad.callerPublicKey)
432+ let as = O(v)
433+ let ak = Q(v)
434+ let au = W(v)
523435 let aR = {
524- let aS = (aO * a)
525- if ((aS > aQ))
436+ let aS = (aP * a)
437+ if ((aS > au))
526438 then aS
527439 else throw("New execution time must more than current execution time")
528440 }
529- if ((aP == Y))
530- then if (if (if ((ah == f))
441+ if ((aQ == ak))
442+ then if (if (if ((as == f))
531443 then true
532- else (ah == g))
444+ else (as == g))
533445 then true
534- else (ah == i))
446+ else (as == i))
535447 then WriteSet([DataEntry((v + "_JobPerformance"), aR)])
536448 else throw("Incorrect state")
537449 else throw("Only Client can increase execution time")
539451
540452
541453
542-@Callable(R)
454+@Callable(ad)
543455 func cancelAuction (v) = {
544- let Q = extract(R.callerPublicKey)
545- let ah = {
546- let ai = getString(this, (v + "_State"))
547- let z = ai
548- if ($isInstanceOf(z, "String"))
549- then {
550- let y = z
551- y
552- }
553- else throw("Auction State was not found")
554- }
555- let Y = {
556- let ak = getString(this, (v + "_Client"))
557- let y = {
558- let z = ak
559- if ($isInstanceOf(z, "String"))
560- then {
561- let y = z
562- y
563- }
564- else throw("Auction Client was not found")
565- }
566- fromBase58String(y)
567- }
568- let aT = if ((Q == Y))
456+ let L = extract(ad.callerPublicKey)
457+ let as = O(v)
458+ let ak = Q(v)
459+ let x = Y(v)
460+ let E = aa(v)
461+ let av = w(x)
462+ let ax = ((E * 3) / 100)
463+ let aT = (E - ax)
464+ let ap = J(x, E)
465+ let aU = if ((L == ak))
569466 then true
570- else throw("Auction can be canceled only by owner.")
571- if (aT)
572- then if ((ah == f))
573- then WriteSet([DataEntry((v + "_State"), h)])
467+ else throw("Auction can be canceled only by auction owner.")
468+ if (aU)
469+ then if ((as == f))
470+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aT, av)]))
574471 else throw("Incorrect auction state.")
575472 else throw("Only Client can cancel auction")
576473 }
577474
578475
579476
580-@Callable(R)
477+@Callable(ad)
581478 func openDispute (v) = {
582- let aP = extract(R.callerPublicKey)
583- let ah = {
584- let ai = getString(this, (v + "_State"))
585- let z = ai
586- if ($isInstanceOf(z, "String"))
587- then {
588- let y = z
589- y
590- }
591- else throw("Auction State was not found")
592- }
593- let Y = {
594- let ak = getString(this, (v + "_Client"))
595- let y = {
596- let z = ak
597- if ($isInstanceOf(z, "String"))
598- then {
599- let y = z
600- y
601- }
602- else throw("Auction Client was not found")
603- }
604- fromBase58String(y)
605- }
606- let aU = {
607- let ak = getString(this, (v + "_Freelancer"))
608- let y = {
609- let z = ak
610- if ($isInstanceOf(z, "String"))
611- then {
612- let y = z
613- y
614- }
615- else throw("Auction Client was not found")
616- }
617- fromBase58String(y)
618- }
619- if (if ((ah == f))
479+ let aQ = extract(ad.callerPublicKey)
480+ let as = O(v)
481+ let ak = Q(v)
482+ let aV = ac(v)
483+ if (if ((as == f))
620484 then true
621- else (ah == g))
485+ else (as == g))
622486 then throw("Incorrect auction state for dispute opening")
623- else if (if ((aP == Y))
487+ else if (if ((aQ == ak))
624488 then true
625- else (aP == aU))
489+ else (aQ == aV))
626490 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0)])
627491 else throw("Only customer and freelancer can open dispute")
628492 }
629493
630494
631495
632-@Callable(R)
633-func voteDispute (v,aV) = {
634- let Q = extract(R.callerPublicKey)
635- let ah = {
636- let ai = getString(this, (v + "_State"))
637- let z = ai
638- if ($isInstanceOf(z, "String"))
496+@Callable(ad)
497+func voteDispute (v,aW) = {
498+ let L = extract(ad.callerPublicKey)
499+ let as = O(v)
500+ let ak = Q(v)
501+ let x = Y(v)
502+ let E = aa(v)
503+ let aV = ac(v)
504+ let aX = ((E * 3) / 100)
505+ let av = w(x)
506+ let aY = if (if (if (if (if ((L == p))
507+ then true
508+ else (L == q))
509+ then true
510+ else (L == r))
511+ then true
512+ else (L == s))
513+ then true
514+ else (L == t))
515+ then toBase58String(L)
516+ else throw("Only defined ambassadors can vote in disputes")
517+ let aZ = if (if ((aW == n))
518+ then true
519+ else (aW == o))
520+ then aW
521+ else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
522+ let ba = {
523+ let bb = ((v + "_DiputeVote_") + aY)
524+ let bc = getString(this, bb)
525+ let H = bc
526+ if ($isInstanceOf(H, "String"))
639527 then {
640- let y = z
641- y
642- }
643- else throw("Auction State was not found")
644- }
645- let Y = {
646- let ak = getString(this, (v + "_Client"))
647- let y = {
648- let z = ak
649- if ($isInstanceOf(z, "String"))
650- then {
651- let y = z
652- y
653- }
654- else throw("Auction Client was not found")
655- }
656- fromBase58String(y)
657- }
658- let E = {
659- let aq = getString(this, (v + "_AssetName"))
660- let z = aq
661- if ($isInstanceOf(z, "String"))
662- then {
663- let y = z
664- y
665- }
666- else throw("Auction asset name was not found")
667- }
668- let L = {
669- let ar = getInteger(this, (v + "_Price"))
670- let z = ar
671- if ($isInstanceOf(z, "Int"))
672- then {
673- let y = z
674- y
675- }
676- else throw("Auction price was not found")
677- }
678- let aU = {
679- let ak = getString(this, (v + "_Freelancer"))
680- let y = {
681- let z = ak
682- if ($isInstanceOf(z, "String"))
683- then {
684- let y = z
685- y
686- }
687- else throw("Auction Client was not found")
688- }
689- fromBase58String(y)
690- }
691- let aW = ((L * 3) / 100)
692- let as = D(E)
693- let aX = if (if (if (if (if ((Q == p))
694- then true
695- else (Q == q))
696- then true
697- else (Q == r))
698- then true
699- else (Q == s))
700- then true
701- else (Q == t))
702- then toBase58String(Q)
703- else throw("Only defined ambassadors can vote in disputes")
704- let aY = if (if ((aV == n))
705- then true
706- else (aV == o))
707- then aV
708- else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
709- let aZ = {
710- let ba = ((v + "_DiputeVote_") + aX)
711- let bb = getString(this, ba)
712- let z = bb
713- if ($isInstanceOf(z, "String"))
714- then {
715- let y = z
528+ let I = H
716529 throw("User already voted")
717530 }
718- else aX
531+ else aY
719532 }
720- let bc = {
721- let bd = getInteger(this, (v + "_DisputeVotes"))
722- let z = bd
723- if ($isInstanceOf(z, "Int"))
533+ let bd = {
534+ let be = getInteger(this, (v + "_DisputeVotes"))
535+ let H = be
536+ if ($isInstanceOf(H, "Int"))
724537 then {
725- let y = z
726- y
538+ let I = H
539+ I
727540 }
728541 else throw("VotesNumber was not found")
729542 }
730- if ((ah == l))
731- then if ((bc == 4))
543+ if ((as == l))
544+ then if ((bd == 4))
732545 then {
733- let be = {
734- let bf = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
735- let bg = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
736- let bh = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
737- let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
738- let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
739- let bk = if ((bf == n))
740- then 1
741- else 0
546+ let bf = {
547+ let bg = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
548+ let bh = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
549+ let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
550+ let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
551+ let bk = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
742552 let bl = if ((bg == n))
743553 then 1
744554 else 0
751561 let bo = if ((bj == n))
752562 then 1
753563 else 0
754- let bp = if ((aY == n))
564+ let bp = if ((bk == n))
755565 then 1
756566 else 0
757- let bq = (((((bk + bl) + bm) + bn) + bo) + bp)
758- if ((bq > 2))
759- then Y
760- else aU
567+ let bq = if ((aZ == n))
568+ then 1
569+ else 0
570+ let br = (((((bl + bm) + bn) + bo) + bp) + bq)
571+ if ((br > 2))
572+ then ak
573+ else aV
761574 }
762- let br = if ((be == Y))
763- then L
764- else (L - aW)
765- let ae = O(E, br)
766- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bc + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + aX), aY), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(be), br, as)]))
575+ let bs = if ((bf == ak))
576+ then E
577+ else (E - aX)
578+ let ap = J(x, E)
579+ ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + aY), aZ), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(bf), bs, av)]))
767580 }
768- else WriteSet([DataEntry((v + "_DisputeVotes"), (bc + 1)), DataEntry(((v + "_DiputeVote_") + aX), aY)])
581+ else WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry(((v + "_DiputeVote_") + aY), aZ)])
769582 else throw(("Incorrect state. Must be: " + l))
770583 }
771584
772585
773586
774-@Callable(R)
587+@Callable(ad)
775588 func workHandOver (v) = {
776- let Q = extract(R.callerPublicKey)
777- let ah = {
778- let ai = getString(this, (v + "_State"))
779- let z = ai
780- if ($isInstanceOf(z, "String"))
781- then {
782- let y = z
783- y
784- }
785- else throw("Auction State was not found")
786- }
787- let ab = {
788- let al = getInteger(this, (v + "_AuctionStart"))
789- let z = al
790- if ($isInstanceOf(z, "Int"))
791- then {
792- let y = z
793- y
794- }
795- else throw("Auction Start time was not found")
796- }
797- let am = {
798- let an = getInteger(this, (v + "_AuctionDuration"))
799- let z = an
800- if ($isInstanceOf(z, "Int"))
801- then {
802- let y = z
803- y
804- }
805- else throw("Auction duration time was not found")
806- }
807- let aQ = {
808- let ap = getInteger(this, (v + "_JobPerformance"))
809- let z = ap
810- if ($isInstanceOf(z, "Int"))
811- then {
812- let y = z
813- y
814- }
815- else throw("Auction job performance time was not found")
816- }
817- let aU = {
818- let ak = getString(this, (v + "_Freelancer"))
819- let y = {
820- let z = ak
821- if ($isInstanceOf(z, "String"))
822- then {
823- let y = z
824- y
825- }
826- else throw("Auction Client was not found")
827- }
828- fromBase58String(y)
829- }
830- let G = height
831- let bs = if ((Q == aU))
832- then Q
589+ let L = extract(ad.callerPublicKey)
590+ let as = O(v)
591+ let am = S(v)
592+ let at = U(v)
593+ let au = W(v)
594+ let aV = ac(v)
595+ let z = height
596+ let bt = if ((L == aV))
597+ then L
833598 else throw("Only a freelancer can indicate that the work is done")
834- let bt = ((G - ab) > aQ)
835- if ((ah == i))
836- then if (bt)
599+ let bu = ((z - am) > au)
600+ if ((as == i))
601+ then if (bu)
837602 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0")])
838603 else WriteSet([DataEntry((v + "_State"), j)])
839604 else throw("Auction state is incorrect")
841606
842607
843608
844-@Callable(R)
609+@Callable(ad)
845610 func acceptWork (v) = {
846- let Q = extract(R.callerPublicKey)
847- let ah = {
848- let ai = getString(this, (v + "_State"))
849- let z = ai
850- if ($isInstanceOf(z, "String"))
851- then {
852- let y = z
853- y
854- }
855- else throw("Auction State was not found")
856- }
857- let Y = {
858- let ak = getString(this, (v + "_Client"))
859- let y = {
860- let z = ak
861- if ($isInstanceOf(z, "String"))
611+ let L = extract(ad.callerPublicKey)
612+ let as = O(v)
613+ let ak = Q(v)
614+ let am = S(v)
615+ let at = U(v)
616+ let x = Y(v)
617+ let E = aa(v)
618+ let aV = ac(v)
619+ let ax = ((E * 3) / 100)
620+ let aT = (E - ax)
621+ let av = w(x)
622+ let ap = J(x, E)
623+ let bv = {
624+ let bw = getInteger(this, (toBase58String(aV) + "_Rating"))
625+ let bx = {
626+ let H = bw
627+ if ($isInstanceOf(H, "Int"))
862628 then {
863- let y = z
864- y
865- }
866- else throw("Auction Client was not found")
867- }
868- fromBase58String(y)
869- }
870- let ab = {
871- let al = getInteger(this, (v + "_AuctionStart"))
872- let z = al
873- if ($isInstanceOf(z, "Int"))
874- then {
875- let y = z
876- y
877- }
878- else throw("Auction Start time was not found")
879- }
880- let am = {
881- let an = getInteger(this, (v + "_AuctionDuration"))
882- let z = an
883- if ($isInstanceOf(z, "Int"))
884- then {
885- let y = z
886- y
887- }
888- else throw("Auction duration time was not found")
889- }
890- let aQ = {
891- let ap = getInteger(this, (v + "_JobPerformance"))
892- let z = ap
893- if ($isInstanceOf(z, "Int"))
894- then {
895- let y = z
896- y
897- }
898- else throw("Auction job performance time was not found")
899- }
900- let E = {
901- let aq = getString(this, (v + "_AssetName"))
902- let z = aq
903- if ($isInstanceOf(z, "String"))
904- then {
905- let y = z
906- y
907- }
908- else throw("Auction asset name was not found")
909- }
910- let L = {
911- let ar = getInteger(this, (v + "_Price"))
912- let z = ar
913- if ($isInstanceOf(z, "Int"))
914- then {
915- let y = z
916- y
917- }
918- else throw("Auction price was not found")
919- }
920- let aU = {
921- let ak = getString(this, (v + "_Freelancer"))
922- let y = {
923- let z = ak
924- if ($isInstanceOf(z, "String"))
925- then {
926- let y = z
927- y
928- }
929- else throw("Auction Client was not found")
930- }
931- fromBase58String(y)
932- }
933- let au = ((L * 3) / 100)
934- let bu = (L - au)
935- let as = D(E)
936- let bv = {
937- let bw = getInteger(this, (toBase58String(aU) + "_Rating"))
938- let bx = {
939- let z = bw
940- if ($isInstanceOf(z, "Int"))
941- then {
942- let y = z
943- y
629+ let I = H
630+ I
944631 }
945632 else 0
946633 }
947634 (bx + 1)
948635 }
949- if ((Q == Y))
950- then if ((ah == j))
951- then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aU) + "_Rating"), bv)]), TransferSet([ScriptTransfer(addressFromPublicKey(aU), bu, as)]))
636+ if ((L == ak))
637+ then if ((as == j))
638+ then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aV) + "_Rating"), bv), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(aV), aT, av)]))
952639 else throw(("Incorrect state. Must be: " + j))
953640 else throw("Only auction customer can use this function")
954641 }
957644 @Verifier(by)
958645 func bz () = if (sigVerify(by.bodyBytes, by.proofs[0], by.senderPublicKey))
959646 then {
960- let z = by
961- if ($isInstanceOf(z, "TransferTransaction"))
647+ let H = by
648+ if ($isInstanceOf(H, "TransferTransaction"))
962649 then {
963- let bA = z
650+ let bA = H
964651 true
965652 }
966- else if ($isInstanceOf(z, "SetScriptTransaction"))
653+ else if ($isInstanceOf(H, "SetScriptTransaction"))
967654 then {
968- let bB = z
655+ let bB = H
969656 true
970657 }
971658 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 = "Opened"
1515
1616 let g = "Suggested"
1717
1818 let h = "Canceled"
1919
2020 let i = "InProgress"
2121
2222 let j = "WaitForConfirmation"
2323
2424 let k = "Completed"
2525
2626 let l = "Dispute"
2727
2828 let m = "DisputeResolved"
2929
3030 let n = "CMR"
3131
3232 let o = "FL"
3333
3434 let p = base58'1'
3535
3636 let q = base58'1'
3737
3838 let r = base58'1'
3939
4040 let s = base58'1'
4141
4242 let t = base58'1'
4343
4444 func u (v) = (v + "_AuctionData")
4545
4646
47-func w (v) = {
48- let x = getString(this, v)
49- let y = {
50- let z = x
51- if ($isInstanceOf(z, "String"))
52- then {
53- let y = z
54- y
55- }
56- else throw("AuctionId was not found")
57- }
58- split(y, "_")
59- }
60-
61-
62-func A (v) = {
63- let B = ((v + "_") + l)
64- let C = getString(this, B)
65- let y = {
66- let z = C
67- if ($isInstanceOf(z, "String"))
68- then {
69- let y = z
70- y
71- }
72- else throw("Dispute data was not found")
73- }
74- split(y, "/")
75- }
76-
77-
78-func D (E) = if ((E == "WAVES"))
47+func w (x) = if ((x == "WAVES"))
7948 then b
80- else if ((E == "BTC"))
49+ else if ((x == "BTC"))
8150 then c
82- else if ((E == "EUR"))
51+ else if ((x == "EUR"))
8352 then d
84- else if ((E == "USD"))
53+ else if ((x == "USD"))
8554 then e
8655 else throw("Incorrect Asset Id")
8756
8857
89-func F (G,H,I) = ((G - H) > I)
58+func y (z,A,B) = ((z - A) > B)
9059
9160
92-func J (K,L) = {
93- let M = getInteger(this, (K + "_Freezed"))
94- let N = {
95- let z = M
96- if ($isInstanceOf(z, "Int"))
61+func C (D,E) = {
62+ let F = getInteger(this, (D + "_Freezed"))
63+ let G = {
64+ let H = F
65+ if ($isInstanceOf(H, "Int"))
9766 then {
98- let y = z
99- y
67+ let I = H
68+ I
10069 }
10170 else 0
10271 }
103- (N + L)
72+ (G + E)
10473 }
10574
10675
107-func O (K,L) = {
108- let M = getInteger(this, (K + "_Freezed"))
109- let N = {
110- let z = M
111- if ($isInstanceOf(z, "Int"))
76+func J (D,E) = {
77+ let F = getInteger(this, (D + "_Freezed"))
78+ let G = {
79+ let H = F
80+ if ($isInstanceOf(H, "Int"))
11281 then {
113- let y = z
114- y
82+ let I = H
83+ I
11584 }
11685 else 0
11786 }
118- let y = (N - L)
119- if ((y > 0))
120- then y
87+ let I = (G - E)
88+ if ((I > 0))
89+ then I
12190 else throw("Freezed amount couldn't be less than 0")
12291 }
12392
12493
125-func P (Q) = {
126- let P = getString(this, (Q + "_Freelancer"))
127- let z = P
128- if ($isInstanceOf(z, "String"))
94+func K (L) = {
95+ let K = getString(this, (L + "_Freelancer"))
96+ let H = K
97+ if ($isInstanceOf(H, "String"))
12998 then {
130- let y = z
131- Q
99+ let I = H
100+ L
132101 }
133102 else throw("Only registered users can make bets")
134103 }
135104
136105
137-@Callable(R)
138-func freelancerSignUp (S) = {
139- let T = toBase58String(R.callerPublicKey)
140- let U = getString(this, (T + "_Freelancer"))
141- if (isDefined(U))
106+func M (N) = if ((N > 0))
107+ then N
108+ else throw("Amount must be higher then 0")
109+
110+
111+func O (v) = {
112+ let P = getString(this, (v + "_State"))
113+ let H = P
114+ if ($isInstanceOf(H, "String"))
115+ then {
116+ let I = H
117+ I
118+ }
119+ else throw("Auction State was not found")
120+ }
121+
122+
123+func Q (v) = {
124+ let R = getString(this, (v + "_Client"))
125+ let I = {
126+ let H = R
127+ if ($isInstanceOf(H, "String"))
128+ then {
129+ let I = H
130+ I
131+ }
132+ else throw("Auction Client was not found")
133+ }
134+ fromBase58String(I)
135+ }
136+
137+
138+func S (v) = {
139+ let T = getInteger(this, (v + "_AuctionStart"))
140+ let H = T
141+ if ($isInstanceOf(H, "Int"))
142+ then {
143+ let I = H
144+ I
145+ }
146+ else throw("Auction Start time was not found")
147+ }
148+
149+
150+func U (v) = {
151+ let V = getInteger(this, (v + "_AuctionDuration"))
152+ let H = V
153+ if ($isInstanceOf(H, "Int"))
154+ then {
155+ let I = H
156+ I
157+ }
158+ else throw("Auction duration time was not found")
159+ }
160+
161+
162+func W (v) = {
163+ let X = getInteger(this, (v + "_JobPerformance"))
164+ let H = X
165+ if ($isInstanceOf(H, "Int"))
166+ then {
167+ let I = H
168+ I
169+ }
170+ else throw("Auction job performance time was not found")
171+ }
172+
173+
174+func Y (v) = {
175+ let Z = getString(this, (v + "_AssetName"))
176+ let H = Z
177+ if ($isInstanceOf(H, "String"))
178+ then {
179+ let I = H
180+ I
181+ }
182+ else throw("Auction asset name was not found")
183+ }
184+
185+
186+func aa (v) = {
187+ let ab = getInteger(this, (v + "_Price"))
188+ let H = ab
189+ if ($isInstanceOf(H, "Int"))
190+ then {
191+ let I = H
192+ I
193+ }
194+ else throw("Auction price was not found")
195+ }
196+
197+
198+func ac (v) = {
199+ let R = getString(this, (v + "_Freelancer"))
200+ let I = {
201+ let H = R
202+ if ($isInstanceOf(H, "String"))
203+ then {
204+ let I = H
205+ I
206+ }
207+ else throw("Auction Client was not found")
208+ }
209+ fromBase58String(I)
210+ }
211+
212+
213+@Callable(ad)
214+func freelancerSignUp (ae) = {
215+ let af = toBase58String(ad.callerPublicKey)
216+ let ag = getString(this, (af + "_Freelancer"))
217+ if (isDefined(ag))
142218 then throw("User already registered")
143- else WriteSet([DataEntry((T + "_Freelancer"), S)])
219+ else WriteSet([DataEntry((af + "_Freelancer"), ae)])
144220 }
145221
146222
147223
148-@Callable(R)
149-func clientSignUp (S) = {
150- let T = toBase58String(R.callerPublicKey)
151- let U = getString(this, (T + "_Client"))
152- if (isDefined(U))
224+@Callable(ad)
225+func clientSignUp (ae) = {
226+ let af = toBase58String(ad.callerPublicKey)
227+ let ag = getString(this, (af + "_Client"))
228+ if (isDefined(ag))
153229 then throw("User already registered")
154- else WriteSet([DataEntry((T + "_Client"), S)])
230+ else WriteSet([DataEntry((af + "_Client"), ae)])
155231 }
156232
157233
158234
159-@Callable(R)
160-func createAuction (V,W,X) = {
161- let v = toBase58String(R.transactionId)
162- let Y = toBase58String(R.callerPublicKey)
163- let Z = extract(R.payment)
164- let aa = Z.amount
165- let L = if ((aa > 0))
166- then aa
167- else throw("Amount must be higher then 0")
168- let ab = height
169- let ac = (W * a)
170- let ad = (V * a)
171- let K = if (!(isDefined(Z.assetId)))
235+@Callable(ad)
236+func createAuction (ah,ai,aj) = {
237+ let v = toBase58String(ad.transactionId)
238+ let ak = toBase58String(ad.callerPublicKey)
239+ let al = extract(ad.payment)
240+ let N = al.amount
241+ let E = M(N)
242+ let am = height
243+ let an = (ai * a)
244+ let ao = (ah * a)
245+ let D = if (!(isDefined(al.assetId)))
172246 then "WAVES"
173- else if ((Z.assetId == c))
247+ else if ((al.assetId == c))
174248 then "BTC"
175- else if ((Z.assetId == d))
249+ else if ((al.assetId == d))
176250 then "EUR"
177- else if ((Z.assetId == e))
251+ else if ((al.assetId == e))
178252 then "USD"
179253 else throw("AssetId is incorrect")
180- let ae = J(K, L)
181- WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), X), DataEntry((v + "_Client"), Y), DataEntry((v + "_AuctionStart"), ab), DataEntry((v + "_AuctionDuration"), ac), DataEntry((v + "_JobPerformance"), ad), DataEntry((v + "_AssetName"), K), DataEntry((v + "_Price"), L), DataEntry((K + "_Freezed"), ae)])
254+ let ap = C(D, E)
255+ WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), aj), DataEntry((v + "_Client"), ak), DataEntry((v + "_AuctionStart"), am), DataEntry((v + "_AuctionDuration"), an), DataEntry((v + "_JobPerformance"), ao), DataEntry((v + "_AssetName"), D), DataEntry((v + "_Price"), E), DataEntry((D + "_Freezed"), ap)])
182256 }
183257
184258
185259
186-@Callable(R)
187-func makeBid (v,af) = {
188- let Q = toBase58String(R.callerPublicKey)
189- let ag = height
190- let ah = {
191- let ai = getString(this, (v + "_State"))
192- let z = ai
193- if ($isInstanceOf(z, "String"))
194- then {
195- let y = z
196- y
197- }
198- else throw("Auction State was not found")
199- }
200- let X = {
201- let aj = getString(this, (v + "_Info"))
202- let z = aj
203- if ($isInstanceOf(z, "String"))
204- then {
205- let y = z
206- y
207- }
208- else throw("Auction info was not found")
209- }
210- let Y = {
211- let ak = getString(this, (v + "_Client"))
212- let y = {
213- let z = ak
214- if ($isInstanceOf(z, "String"))
260+@Callable(ad)
261+func makeBid (v,aq) = {
262+ let L = toBase58String(ad.callerPublicKey)
263+ let ar = height
264+ let as = O(v)
265+ let ak = Q(v)
266+ let am = S(v)
267+ let at = U(v)
268+ let au = W(v)
269+ let x = Y(v)
270+ let E = aa(v)
271+ let av = w(x)
272+ let aw = K(L)
273+ let ax = ((E * 3) / 100)
274+ let ap = J(x, E)
275+ let ay = y(ar, am, at)
276+ if (ay)
277+ then if ((as == f))
278+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
279+ else if ((as == g))
215280 then {
216- let y = z
217- y
218- }
219- else throw("Auction Client was not found")
220- }
221- fromBase58String(y)
222- }
223- let ab = {
224- let al = getInteger(this, (v + "_AuctionStart"))
225- let z = al
226- if ($isInstanceOf(z, "Int"))
227- then {
228- let y = z
229- y
230- }
231- else throw("Auction Start time was not found")
232- }
233- let am = {
234- let an = getInteger(this, (v + "_AuctionDuration"))
235- let z = an
236- if ($isInstanceOf(z, "Int"))
237- then {
238- let y = z
239- y
240- }
241- else throw("Auction duration time was not found")
242- }
243- let ao = {
244- let ap = getInteger(this, (v + "_JobPerformance"))
245- let z = ap
246- if ($isInstanceOf(z, "Int"))
247- then {
248- let y = z
249- y
250- }
251- else throw("Auction job performance time was not found")
252- }
253- let E = {
254- let aq = getString(this, (v + "_AssetName"))
255- let z = aq
256- if ($isInstanceOf(z, "String"))
257- then {
258- let y = z
259- y
260- }
261- else throw("Auction asset name was not found")
262- }
263- let L = {
264- let ar = getInteger(this, (v + "_Price"))
265- let z = ar
266- if ($isInstanceOf(z, "Int"))
267- then {
268- let y = z
269- y
270- }
271- else throw("Auction price was not found")
272- }
273- let as = D(E)
274- let at = P(Q)
275- let au = ((L * 3) / 100)
276- let ae = O(E, L)
277- let av = F(ag, ab, am)
278- if (av)
279- then if ((ah == f))
280- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), (L - au), as)]))
281- else if ((ah == g))
282- then {
283- let aw = {
284- let ax = getString(this, (v + "_LowestBidderPub"))
285- let z = ax
286- if ($isInstanceOf(z, "String"))
281+ let az = {
282+ let aA = getString(this, (v + "_LowestBidderPub"))
283+ let H = aA
284+ if ($isInstanceOf(H, "String"))
287285 then {
288- let y = z
289- y
286+ let I = H
287+ I
290288 }
291289 else throw("Auction lowest bidder was not found")
292290 }
293- let ay = {
294- let az = getInteger(this, ((v + "_Bid_") + aw))
295- let z = az
296- if ($isInstanceOf(z, "Int"))
291+ let aB = {
292+ let aC = getInteger(this, ((v + "_Bid_") + az))
293+ let H = aC
294+ if ($isInstanceOf(H, "Int"))
297295 then {
298- let y = z
299- y
296+ let I = H
297+ I
300298 }
301299 else throw("Auction lowest bid was not found")
302300 }
303- let aA = ((L - ay) - au)
304- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aw), DataEntry((v + "_Price"), ay)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), aA, as)]))
301+ let aD = ((E - aB) - ax)
302+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), az), DataEntry((v + "_Price"), aB)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
305303 }
306304 else throw("Incorrect auction state")
307- else if ((ah == f))
308- then WriteSet([DataEntry(((v + "_Bid_") + at), af), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), Q), DataEntry((v + Q), af)])
309- else if ((ah == g))
305+ else if ((as == f))
306+ then WriteSet([DataEntry(((v + "_Bid_") + aw), aq), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), L)])
307+ else if ((as == g))
310308 then {
311- let aB = {
312- let aC = getString(this, (v + "_LowestBidderPub"))
313- let z = aC
314- if ($isInstanceOf(z, "String"))
309+ let aE = {
310+ let aF = getString(this, (v + "_LowestBidderPub"))
311+ let H = aF
312+ if ($isInstanceOf(H, "String"))
315313 then {
316- let y = z
317- y
314+ let I = H
315+ I
318316 }
319317 else throw("Auction lowest bidder was not found")
320318 }
321- let aD = {
322- let aE = getInteger(this, ((v + "_Bid_") + aB))
323- let aF = {
324- let z = aE
325- if ($isInstanceOf(z, "Int"))
319+ let aG = {
320+ let aH = getInteger(this, ((v + "_Bid_") + aE))
321+ let aI = {
322+ let H = aH
323+ if ($isInstanceOf(H, "Int"))
326324 then {
327- let y = z
328- y
325+ let I = H
326+ I
329327 }
330328 else throw("Auction lowest bid was not found")
331329 }
332- if ((aF > af))
333- then at
334- else aB
330+ if ((aI > aq))
331+ then aw
332+ else aE
335333 }
336- WriteSet([DataEntry((v + "_LowestBidderPub"), aD), DataEntry(((v + "_Bid_") + at), af)])
334+ WriteSet([DataEntry((v + "_LowestBidderPub"), aG), DataEntry(((v + "_Bid_") + aw), aq)])
337335 }
338- else throw(((((("Incorrect jobId state. Now: " + ah) + ", must be: ") + f) + " or ") + g))
336+ else throw(((((("Incorrect jobId state. Now: " + as) + ", must be: ") + f) + " or ") + g))
339337 }
340338
341339
342340
343-@Callable(R)
344-func chooseFreelancer (v,aG) = {
345- let Q = extract(R.callerPublicKey)
346- let ag = height
347- let ah = {
348- let ai = getString(this, (v + "_State"))
349- let z = ai
350- if ($isInstanceOf(z, "String"))
341+@Callable(ad)
342+func chooseFreelancer (v,aJ) = {
343+ let L = extract(ad.callerPublicKey)
344+ let ar = height
345+ let as = O(v)
346+ let ak = Q(v)
347+ let am = S(v)
348+ let at = U(v)
349+ let x = Y(v)
350+ let E = aa(v)
351+ let av = w(x)
352+ let aK = {
353+ let aL = ((v + "_Bid_") + aJ)
354+ let aM = getInteger(this, aL)
355+ let H = aM
356+ if ($isInstanceOf(H, "Int"))
351357 then {
352- let y = z
353- y
354- }
355- else throw("Auction State was not found")
356- }
357- let Y = {
358- let ak = getString(this, (v + "_Client"))
359- let y = {
360- let z = ak
361- if ($isInstanceOf(z, "String"))
362- then {
363- let y = z
364- y
365- }
366- else throw("Auction Client was not found")
367- }
368- fromBase58String(y)
369- }
370- let ab = {
371- let al = getInteger(this, (v + "_AuctionStart"))
372- let z = al
373- if ($isInstanceOf(z, "Int"))
374- then {
375- let y = z
376- y
377- }
378- else throw("Auction Start time was not found")
379- }
380- let am = {
381- let an = getInteger(this, (v + "_AuctionDuration"))
382- let z = an
383- if ($isInstanceOf(z, "Int"))
384- then {
385- let y = z
386- y
387- }
388- else throw("Auction duration time was not found")
389- }
390- let E = {
391- let aq = getString(this, (v + "_AssetName"))
392- let z = aq
393- if ($isInstanceOf(z, "String"))
394- then {
395- let y = z
396- y
397- }
398- else throw("Auction asset name was not found")
399- }
400- let L = {
401- let ar = getInteger(this, (v + "_Price"))
402- let z = ar
403- if ($isInstanceOf(z, "Int"))
404- then {
405- let y = z
406- y
407- }
408- else throw("Auction price was not found")
409- }
410- let as = D(E)
411- let aH = {
412- let aI = ((v + "_Bid_") + aG)
413- let aJ = getInteger(this, aI)
414- let z = aJ
415- if ($isInstanceOf(z, "Int"))
416- then {
417- let y = z
418- y
358+ let I = H
359+ I
419360 }
420361 else throw("Freelancer's bet was not found")
421362 }
422- let au = ((L * 3) / 100)
423- let aA = ((L - aH) - au)
424- let av = F(ag, ab, am)
425- if ((Q == Y))
426- then if (av)
427- then if ((ah == f))
363+ let ax = ((aK * 3) / 100)
364+ let ay = y(ar, am, at)
365+ if ((L == ak))
366+ then if (ay)
367+ then if ((as == f))
428368 then {
429- let aK = (L - au)
430- let ae = O(E, aK)
431- ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), aK, as)]))
369+ let ap = J(x, E)
370+ ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
432371 }
433- else if ((ah == g))
372+ else if ((as == g))
434373 then {
435- let aw = {
436- let ax = getString(this, (v + "_LowestBidderPub"))
437- let z = ax
438- if ($isInstanceOf(z, "String"))
374+ let az = {
375+ let aA = getString(this, (v + "_LowestBidderPub"))
376+ let H = aA
377+ if ($isInstanceOf(H, "String"))
439378 then {
440- let y = z
441- y
379+ let I = H
380+ I
442381 }
443382 else throw("Auction lowest bidder was not found")
444383 }
445- let ay = {
446- let az = getInteger(this, ((v + "_Bid_") + aw))
447- let z = az
448- if ($isInstanceOf(z, "Int"))
384+ let aB = {
385+ let aC = getInteger(this, ((v + "_Bid_") + az))
386+ let H = aC
387+ if ($isInstanceOf(H, "Int"))
449388 then {
450- let y = z
451- y
389+ let I = H
390+ I
452391 }
453392 else throw("Auction lowest bid was not found")
454393 }
455- WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aw), DataEntry((v + "_Price"), ay)])
394+ let aD = (E - aB)
395+ let ap = J(x, aD)
396+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), az), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
456397 }
457398 else throw("Incorrect auction state")
458399 else {
459- let aL = {
460- let at = getInteger(this, ((v + "_Bid_") + aG))
461- let z = at
462- if ($isInstanceOf(z, "Int"))
400+ let aN = {
401+ let aw = getInteger(this, ((v + "_Bid_") + aJ))
402+ let H = aw
403+ if ($isInstanceOf(H, "Int"))
463404 then {
464- let y = z
465- aG
405+ let I = H
406+ aJ
466407 }
467408 else throw("Error: Incorrect freelancerPub")
468409 }
469- let aM = {
470- let aN = getInteger(this, ((v + "_Bid_") + aG))
471- let z = aN
472- if ($isInstanceOf(z, "Int"))
410+ let aB = {
411+ let aO = getInteger(this, ((v + "_Bid_") + aJ))
412+ let H = aO
413+ if ($isInstanceOf(H, "Int"))
473414 then {
474- let y = z
475- y
415+ let I = H
416+ I
476417 }
477418 else throw("Auction lowest bidder was not found")
478419 }
479- let ae = O(E, aM)
480- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aL), DataEntry((v + "_Price"), aM), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(Y), aA, as)]))
420+ let aD = (E - aK)
421+ let ap = J(x, aD)
422+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_Freelancer"), aN), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (aD - ax), av)]))
481423 }
482424 else throw("Only auction customer can choose a freelancer")
483425 }
484426
485427
486428
487-@Callable(R)
488-func increaseExecutionTime (v,aO) = {
489- let aP = extract(R.callerPublicKey)
490- let ah = {
491- let ai = getString(this, (v + "_State"))
492- let z = ai
493- if ($isInstanceOf(z, "String"))
494- then {
495- let y = z
496- y
497- }
498- else throw("Auction State was not found")
499- }
500- let Y = {
501- let ak = getString(this, (v + "_Client"))
502- let y = {
503- let z = ak
504- if ($isInstanceOf(z, "String"))
505- then {
506- let y = z
507- y
508- }
509- else throw("Auction Client was not found")
510- }
511- fromBase58String(y)
512- }
513- let aQ = {
514- let ap = getInteger(this, (v + "JobPerformance"))
515- let z = ap
516- if ($isInstanceOf(z, "Int"))
517- then {
518- let y = z
519- y
520- }
521- else throw("Auction job performance time was not found")
522- }
429+@Callable(ad)
430+func increaseExecutionTime (v,aP) = {
431+ let aQ = extract(ad.callerPublicKey)
432+ let as = O(v)
433+ let ak = Q(v)
434+ let au = W(v)
523435 let aR = {
524- let aS = (aO * a)
525- if ((aS > aQ))
436+ let aS = (aP * a)
437+ if ((aS > au))
526438 then aS
527439 else throw("New execution time must more than current execution time")
528440 }
529- if ((aP == Y))
530- then if (if (if ((ah == f))
441+ if ((aQ == ak))
442+ then if (if (if ((as == f))
531443 then true
532- else (ah == g))
444+ else (as == g))
533445 then true
534- else (ah == i))
446+ else (as == i))
535447 then WriteSet([DataEntry((v + "_JobPerformance"), aR)])
536448 else throw("Incorrect state")
537449 else throw("Only Client can increase execution time")
538450 }
539451
540452
541453
542-@Callable(R)
454+@Callable(ad)
543455 func cancelAuction (v) = {
544- let Q = extract(R.callerPublicKey)
545- let ah = {
546- let ai = getString(this, (v + "_State"))
547- let z = ai
548- if ($isInstanceOf(z, "String"))
549- then {
550- let y = z
551- y
552- }
553- else throw("Auction State was not found")
554- }
555- let Y = {
556- let ak = getString(this, (v + "_Client"))
557- let y = {
558- let z = ak
559- if ($isInstanceOf(z, "String"))
560- then {
561- let y = z
562- y
563- }
564- else throw("Auction Client was not found")
565- }
566- fromBase58String(y)
567- }
568- let aT = if ((Q == Y))
456+ let L = extract(ad.callerPublicKey)
457+ let as = O(v)
458+ let ak = Q(v)
459+ let x = Y(v)
460+ let E = aa(v)
461+ let av = w(x)
462+ let ax = ((E * 3) / 100)
463+ let aT = (E - ax)
464+ let ap = J(x, E)
465+ let aU = if ((L == ak))
569466 then true
570- else throw("Auction can be canceled only by owner.")
571- if (aT)
572- then if ((ah == f))
573- then WriteSet([DataEntry((v + "_State"), h)])
467+ else throw("Auction can be canceled only by auction owner.")
468+ if (aU)
469+ then if ((as == f))
470+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aT, av)]))
574471 else throw("Incorrect auction state.")
575472 else throw("Only Client can cancel auction")
576473 }
577474
578475
579476
580-@Callable(R)
477+@Callable(ad)
581478 func openDispute (v) = {
582- let aP = extract(R.callerPublicKey)
583- let ah = {
584- let ai = getString(this, (v + "_State"))
585- let z = ai
586- if ($isInstanceOf(z, "String"))
587- then {
588- let y = z
589- y
590- }
591- else throw("Auction State was not found")
592- }
593- let Y = {
594- let ak = getString(this, (v + "_Client"))
595- let y = {
596- let z = ak
597- if ($isInstanceOf(z, "String"))
598- then {
599- let y = z
600- y
601- }
602- else throw("Auction Client was not found")
603- }
604- fromBase58String(y)
605- }
606- let aU = {
607- let ak = getString(this, (v + "_Freelancer"))
608- let y = {
609- let z = ak
610- if ($isInstanceOf(z, "String"))
611- then {
612- let y = z
613- y
614- }
615- else throw("Auction Client was not found")
616- }
617- fromBase58String(y)
618- }
619- if (if ((ah == f))
479+ let aQ = extract(ad.callerPublicKey)
480+ let as = O(v)
481+ let ak = Q(v)
482+ let aV = ac(v)
483+ if (if ((as == f))
620484 then true
621- else (ah == g))
485+ else (as == g))
622486 then throw("Incorrect auction state for dispute opening")
623- else if (if ((aP == Y))
487+ else if (if ((aQ == ak))
624488 then true
625- else (aP == aU))
489+ else (aQ == aV))
626490 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0)])
627491 else throw("Only customer and freelancer can open dispute")
628492 }
629493
630494
631495
632-@Callable(R)
633-func voteDispute (v,aV) = {
634- let Q = extract(R.callerPublicKey)
635- let ah = {
636- let ai = getString(this, (v + "_State"))
637- let z = ai
638- if ($isInstanceOf(z, "String"))
496+@Callable(ad)
497+func voteDispute (v,aW) = {
498+ let L = extract(ad.callerPublicKey)
499+ let as = O(v)
500+ let ak = Q(v)
501+ let x = Y(v)
502+ let E = aa(v)
503+ let aV = ac(v)
504+ let aX = ((E * 3) / 100)
505+ let av = w(x)
506+ let aY = if (if (if (if (if ((L == p))
507+ then true
508+ else (L == q))
509+ then true
510+ else (L == r))
511+ then true
512+ else (L == s))
513+ then true
514+ else (L == t))
515+ then toBase58String(L)
516+ else throw("Only defined ambassadors can vote in disputes")
517+ let aZ = if (if ((aW == n))
518+ then true
519+ else (aW == o))
520+ then aW
521+ else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
522+ let ba = {
523+ let bb = ((v + "_DiputeVote_") + aY)
524+ let bc = getString(this, bb)
525+ let H = bc
526+ if ($isInstanceOf(H, "String"))
639527 then {
640- let y = z
641- y
642- }
643- else throw("Auction State was not found")
644- }
645- let Y = {
646- let ak = getString(this, (v + "_Client"))
647- let y = {
648- let z = ak
649- if ($isInstanceOf(z, "String"))
650- then {
651- let y = z
652- y
653- }
654- else throw("Auction Client was not found")
655- }
656- fromBase58String(y)
657- }
658- let E = {
659- let aq = getString(this, (v + "_AssetName"))
660- let z = aq
661- if ($isInstanceOf(z, "String"))
662- then {
663- let y = z
664- y
665- }
666- else throw("Auction asset name was not found")
667- }
668- let L = {
669- let ar = getInteger(this, (v + "_Price"))
670- let z = ar
671- if ($isInstanceOf(z, "Int"))
672- then {
673- let y = z
674- y
675- }
676- else throw("Auction price was not found")
677- }
678- let aU = {
679- let ak = getString(this, (v + "_Freelancer"))
680- let y = {
681- let z = ak
682- if ($isInstanceOf(z, "String"))
683- then {
684- let y = z
685- y
686- }
687- else throw("Auction Client was not found")
688- }
689- fromBase58String(y)
690- }
691- let aW = ((L * 3) / 100)
692- let as = D(E)
693- let aX = if (if (if (if (if ((Q == p))
694- then true
695- else (Q == q))
696- then true
697- else (Q == r))
698- then true
699- else (Q == s))
700- then true
701- else (Q == t))
702- then toBase58String(Q)
703- else throw("Only defined ambassadors can vote in disputes")
704- let aY = if (if ((aV == n))
705- then true
706- else (aV == o))
707- then aV
708- else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
709- let aZ = {
710- let ba = ((v + "_DiputeVote_") + aX)
711- let bb = getString(this, ba)
712- let z = bb
713- if ($isInstanceOf(z, "String"))
714- then {
715- let y = z
528+ let I = H
716529 throw("User already voted")
717530 }
718- else aX
531+ else aY
719532 }
720- let bc = {
721- let bd = getInteger(this, (v + "_DisputeVotes"))
722- let z = bd
723- if ($isInstanceOf(z, "Int"))
533+ let bd = {
534+ let be = getInteger(this, (v + "_DisputeVotes"))
535+ let H = be
536+ if ($isInstanceOf(H, "Int"))
724537 then {
725- let y = z
726- y
538+ let I = H
539+ I
727540 }
728541 else throw("VotesNumber was not found")
729542 }
730- if ((ah == l))
731- then if ((bc == 4))
543+ if ((as == l))
544+ then if ((bd == 4))
732545 then {
733- let be = {
734- let bf = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
735- let bg = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
736- let bh = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
737- let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
738- let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
739- let bk = if ((bf == n))
740- then 1
741- else 0
546+ let bf = {
547+ let bg = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
548+ let bh = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
549+ let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
550+ let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
551+ let bk = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
742552 let bl = if ((bg == n))
743553 then 1
744554 else 0
745555 let bm = if ((bh == n))
746556 then 1
747557 else 0
748558 let bn = if ((bi == n))
749559 then 1
750560 else 0
751561 let bo = if ((bj == n))
752562 then 1
753563 else 0
754- let bp = if ((aY == n))
564+ let bp = if ((bk == n))
755565 then 1
756566 else 0
757- let bq = (((((bk + bl) + bm) + bn) + bo) + bp)
758- if ((bq > 2))
759- then Y
760- else aU
567+ let bq = if ((aZ == n))
568+ then 1
569+ else 0
570+ let br = (((((bl + bm) + bn) + bo) + bp) + bq)
571+ if ((br > 2))
572+ then ak
573+ else aV
761574 }
762- let br = if ((be == Y))
763- then L
764- else (L - aW)
765- let ae = O(E, br)
766- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bc + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + aX), aY), DataEntry((E + "_Freezed"), ae)]), TransferSet([ScriptTransfer(addressFromPublicKey(be), br, as)]))
575+ let bs = if ((bf == ak))
576+ then E
577+ else (E - aX)
578+ let ap = J(x, E)
579+ ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + aY), aZ), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(bf), bs, av)]))
767580 }
768- else WriteSet([DataEntry((v + "_DisputeVotes"), (bc + 1)), DataEntry(((v + "_DiputeVote_") + aX), aY)])
581+ else WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry(((v + "_DiputeVote_") + aY), aZ)])
769582 else throw(("Incorrect state. Must be: " + l))
770583 }
771584
772585
773586
774-@Callable(R)
587+@Callable(ad)
775588 func workHandOver (v) = {
776- let Q = extract(R.callerPublicKey)
777- let ah = {
778- let ai = getString(this, (v + "_State"))
779- let z = ai
780- if ($isInstanceOf(z, "String"))
781- then {
782- let y = z
783- y
784- }
785- else throw("Auction State was not found")
786- }
787- let ab = {
788- let al = getInteger(this, (v + "_AuctionStart"))
789- let z = al
790- if ($isInstanceOf(z, "Int"))
791- then {
792- let y = z
793- y
794- }
795- else throw("Auction Start time was not found")
796- }
797- let am = {
798- let an = getInteger(this, (v + "_AuctionDuration"))
799- let z = an
800- if ($isInstanceOf(z, "Int"))
801- then {
802- let y = z
803- y
804- }
805- else throw("Auction duration time was not found")
806- }
807- let aQ = {
808- let ap = getInteger(this, (v + "_JobPerformance"))
809- let z = ap
810- if ($isInstanceOf(z, "Int"))
811- then {
812- let y = z
813- y
814- }
815- else throw("Auction job performance time was not found")
816- }
817- let aU = {
818- let ak = getString(this, (v + "_Freelancer"))
819- let y = {
820- let z = ak
821- if ($isInstanceOf(z, "String"))
822- then {
823- let y = z
824- y
825- }
826- else throw("Auction Client was not found")
827- }
828- fromBase58String(y)
829- }
830- let G = height
831- let bs = if ((Q == aU))
832- then Q
589+ let L = extract(ad.callerPublicKey)
590+ let as = O(v)
591+ let am = S(v)
592+ let at = U(v)
593+ let au = W(v)
594+ let aV = ac(v)
595+ let z = height
596+ let bt = if ((L == aV))
597+ then L
833598 else throw("Only a freelancer can indicate that the work is done")
834- let bt = ((G - ab) > aQ)
835- if ((ah == i))
836- then if (bt)
599+ let bu = ((z - am) > au)
600+ if ((as == i))
601+ then if (bu)
837602 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0")])
838603 else WriteSet([DataEntry((v + "_State"), j)])
839604 else throw("Auction state is incorrect")
840605 }
841606
842607
843608
844-@Callable(R)
609+@Callable(ad)
845610 func acceptWork (v) = {
846- let Q = extract(R.callerPublicKey)
847- let ah = {
848- let ai = getString(this, (v + "_State"))
849- let z = ai
850- if ($isInstanceOf(z, "String"))
851- then {
852- let y = z
853- y
854- }
855- else throw("Auction State was not found")
856- }
857- let Y = {
858- let ak = getString(this, (v + "_Client"))
859- let y = {
860- let z = ak
861- if ($isInstanceOf(z, "String"))
611+ let L = extract(ad.callerPublicKey)
612+ let as = O(v)
613+ let ak = Q(v)
614+ let am = S(v)
615+ let at = U(v)
616+ let x = Y(v)
617+ let E = aa(v)
618+ let aV = ac(v)
619+ let ax = ((E * 3) / 100)
620+ let aT = (E - ax)
621+ let av = w(x)
622+ let ap = J(x, E)
623+ let bv = {
624+ let bw = getInteger(this, (toBase58String(aV) + "_Rating"))
625+ let bx = {
626+ let H = bw
627+ if ($isInstanceOf(H, "Int"))
862628 then {
863- let y = z
864- y
865- }
866- else throw("Auction Client was not found")
867- }
868- fromBase58String(y)
869- }
870- let ab = {
871- let al = getInteger(this, (v + "_AuctionStart"))
872- let z = al
873- if ($isInstanceOf(z, "Int"))
874- then {
875- let y = z
876- y
877- }
878- else throw("Auction Start time was not found")
879- }
880- let am = {
881- let an = getInteger(this, (v + "_AuctionDuration"))
882- let z = an
883- if ($isInstanceOf(z, "Int"))
884- then {
885- let y = z
886- y
887- }
888- else throw("Auction duration time was not found")
889- }
890- let aQ = {
891- let ap = getInteger(this, (v + "_JobPerformance"))
892- let z = ap
893- if ($isInstanceOf(z, "Int"))
894- then {
895- let y = z
896- y
897- }
898- else throw("Auction job performance time was not found")
899- }
900- let E = {
901- let aq = getString(this, (v + "_AssetName"))
902- let z = aq
903- if ($isInstanceOf(z, "String"))
904- then {
905- let y = z
906- y
907- }
908- else throw("Auction asset name was not found")
909- }
910- let L = {
911- let ar = getInteger(this, (v + "_Price"))
912- let z = ar
913- if ($isInstanceOf(z, "Int"))
914- then {
915- let y = z
916- y
917- }
918- else throw("Auction price was not found")
919- }
920- let aU = {
921- let ak = getString(this, (v + "_Freelancer"))
922- let y = {
923- let z = ak
924- if ($isInstanceOf(z, "String"))
925- then {
926- let y = z
927- y
928- }
929- else throw("Auction Client was not found")
930- }
931- fromBase58String(y)
932- }
933- let au = ((L * 3) / 100)
934- let bu = (L - au)
935- let as = D(E)
936- let bv = {
937- let bw = getInteger(this, (toBase58String(aU) + "_Rating"))
938- let bx = {
939- let z = bw
940- if ($isInstanceOf(z, "Int"))
941- then {
942- let y = z
943- y
629+ let I = H
630+ I
944631 }
945632 else 0
946633 }
947634 (bx + 1)
948635 }
949- if ((Q == Y))
950- then if ((ah == j))
951- then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aU) + "_Rating"), bv)]), TransferSet([ScriptTransfer(addressFromPublicKey(aU), bu, as)]))
636+ if ((L == ak))
637+ then if ((as == j))
638+ then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aV) + "_Rating"), bv), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(aV), aT, av)]))
952639 else throw(("Incorrect state. Must be: " + j))
953640 else throw("Only auction customer can use this function")
954641 }
955642
956643
957644 @Verifier(by)
958645 func bz () = if (sigVerify(by.bodyBytes, by.proofs[0], by.senderPublicKey))
959646 then {
960- let z = by
961- if ($isInstanceOf(z, "TransferTransaction"))
647+ let H = by
648+ if ($isInstanceOf(H, "TransferTransaction"))
962649 then {
963- let bA = z
650+ let bA = H
964651 true
965652 }
966- else if ($isInstanceOf(z, "SetScriptTransaction"))
653+ else if ($isInstanceOf(H, "SetScriptTransaction"))
967654 then {
968- let bB = z
655+ let bB = H
969656 true
970657 }
971658 else false
972659 }
973660 else false
974661

github/deemru/w8io/169f3d6 
140.89 ms