tx · DUKzfnHFRiBkK3G387TYM1CBqqwEZrdejkfsmiM9Us7q

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.01500000 Waves

2019.10.12 17:44 [716820] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "DUKzfnHFRiBkK3G387TYM1CBqqwEZrdejkfsmiM9Us7q", "fee": 1500000, "feeAssetId": null, "timestamp": 1570891486446, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "5iHPKArfEjzGZGVZgwGspd4iN9sTcMsv37VQNNeb4Yinp2EpibpKPWewRu1484YRBYknBk7b3WjTdumBZZ6ymDZL" ], "script": "base64:AAIDAAAAAAAAAD8IARIDCgEIEgMKAQgSBQoDAQEIEgQKAggBEgQKAggIEgQKAggBEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgAAAAlAAAAAANkYXkAAAAAAAAABaAAAAAABVdBVkVTBQAAAAR1bml0AAAAAAR3QlRDAQAAACBs+mr/xe2qjAt/tSqT0qIML4KC23R6BIxT+/0TH3Og/wAAAAAEd0VVUgEAAAAg7BZhBF97kSFBBjs38+fX1Pjz08YOqoCX85C/0PoVupkAAAAABHdVU0QBAAAAIN0cvQHwz3UFMHgHsqi2OJjRRd1cH7ozWuNAb/pmWXD9AAAAAAlzdGF0ZU9wZW4CAAAABk9wZW5lZAAAAAAOc3RhdGVTdWdnZXN0ZWQCAAAACVN1Z2dlc3RlZAAAAAALc3RhdGVDYW5jZWwCAAAACENhbmNlbGVkAAAAAA9zdGF0ZUluUHJvZ3Jlc3MCAAAACkluUHJvZ3Jlc3MAAAAAEXN0YXRlV2FpdDRDb25maXJtAgAAABNXYWl0Rm9yQ29uZmlybWF0aW9uAAAAAA1zdGF0ZUNvbXBsZXRlAgAAAAlDb21wbGV0ZWQAAAAADHN0YXRlRGlzcHV0ZQIAAAAHRGlzcHV0ZQAAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQCAAAAD0Rpc3B1dGVSZXNvbHZlZAAAAAAGY2xpZW50AgAAAAJDTAAAAAAKZnJlZWxhbmNlcgIAAAACRkwAAAAAC2FtYmFzc2Fkb3IxAQAAACDbtM9SPfpaHhTOght0iiQOgEnRxWc9J+51xpyNpkfnHgAAAAALYW1iYXNzYWRvcjIBAAAAIFA5XzKZE+3Z5jqHXYn/yImTh7IRQPHxaONFL6inugwXAAAAAAthbWJhc3NhZG9yMwEAAAAgGZcysnaTa8qEtkH+SCpzAwEy6EtoJ59HZbCP/iIshXIAAAAAC2FtYmFzc2Fkb3I0AQAAACCLU1n1HRhmz6x4dKauC9JFDpma5EgBnYM3TX1jTPdycQAAAAALYW1iYXNzYWRvcjUBAAAAIACjo7B3O3btU/6EH15a/duUulLOSKqIPZtJeerrP8ExAQAAABBBdWN0aW9uSWREYXRhS2V5AAAAAQAAAAlhdWN0aW9uSWQJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfQXVjdGlvbkRhdGEBAAAABmdldEludAAAAAEAAAADa2V5BAAAABB2YWx1ZUpvYnNPbkdvaW5nCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQQAAAAHJG1hdGNoMAUAAAAQdmFsdWVKb2JzT25Hb2luZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEAAAAQYXVjdGlvbkFzc2V0TmFtZQMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAFV0FWRVMFAAAABVdBVkVTAwkAAAAAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAANCVEMFAAAABHdCVEMDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAA0VVUgUAAAAEd0VVUgMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAADVVNEBQAAAAR3VVNECQAAAgAAAAECAAAAEkluY29ycmVjdCBBc3NldCBJZAEAAAAJdGltZUNoZWNrAAAAAwAAAAtjdXJyZW50VGltZQAAAAlzdGFydFRpbWUAAAAOZXhwaXJhdGlvblRpbWUJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAJc3RhcnRUaW1lBQAAAA5leHBpcmF0aW9uVGltZQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACAAAABmFtb3VudAAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMYXVjdGlvblByaWNlCQAAAgAAAAECAAAAM0JpZCBhbW91bnQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0aGFuIGF1Y3Rpb25QcmljZQUAAAAGYW1vdW50AQAAABZpbmNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAACQAAZAAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAFhCQAAZQAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAwkAAGcAAAACBQAAAAFhAAAAAAAAAAAABQAAAAFhCQAAAgAAAAECAAAAJkZyZWV6ZWQgYW1vdW50IGNvdWxkbid0IGJlIGxlc3MgdGhhbiAwAQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAAAAAQAAAAljYWxsZXJQdWIEAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAljYWxsZXJQdWICAAAAC19GcmVlbGFuY2VyBAAAAAckbWF0Y2gwBQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAACNPbmx5IHJlZ2lzdGVyZWQgdXNlcnMgY2FuIG1ha2UgYmV0cwEAAAAXY3JlYXRlQXVjdGlvblByaWNlQ2hlY2sAAAABAAAACXBtdEFtb3VudAMJAABmAAAAAgUAAAAJcG10QW1vdW50AAAAAAAAAAAABQAAAAlwbXRBbW91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dHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9JbmZvBQAAAAthdWN0aW9uSW5mbwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADl9BdWN0aW9uQ2xpZW50BQAAAA1hdWN0aW9uQ2xpZW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0F1Y3Rpb25TdGFydAUAAAAMYXVjdGlvblN0YXJ0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0F1Y3Rpb25EdXJhdGlvbgUAAAAVYXVjdGlvbkR1cmF0aW9uQmxvY2tzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAPX0pvYlBlcmZvcm1hbmNlBQAAABJibG9ja3NGb3JFeGVjdXRpb24JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAApfQXNzZXROYW1lBQAAAAxwbXRBc3NldE5hbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAADGF1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic0NyZWF0ZWQJAABkAAAAAgUAAAALam9ic0NyZWF0ZWQAAAAAAAAAAAEFAAAAA25pbAAAAAFpAQAAAAdtYWtlQmlkAAAAAgAAAAlhdWN0aW9uSWQAAAAGYW1vdW50BAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAdiZXRUaW1lBQAAAAZoZWlnaHQEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA1uZXdGcmVlbGFuY2VyCQEAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAAAAAEFAAAACWNhbGxlclB1YgQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAJYmlkQW1vdW50CQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACBQAAAAZhbW91bnQFAAAADGF1Y3Rpb25QcmljZQQAAAARYXVjdGlvblRpbWVpc092ZXIJAQAAAAl0aW1lQ2hlY2sAAAADBQAAAAdiZXRUaW1lBQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAC3N0YXRlQ2FuY2VsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWF1Y3Rpb25DbGllbnQJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABF2YWx1ZUxvd2VzdEJpZGRlcgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgQAAAAHJG1hdGNoMAUAAAARdmFsdWVMb3dlc3RCaWRkZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACNBdWN0aW9uIGxvd2VzdCBiaWRkZXIgd2FzIG5vdCBmb3VuZAQAAAAPbmV3QXVjdGlvblByaWNlBAAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVOZXdBdWN0aW9uUHJpY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAPbmV3QXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAD25ld0F1Y3Rpb25QcmljZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEGFtb3VudERpZmZlcmVuY2UFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1uZXdGcmVlbGFuY2VyBQAAAAliaWRBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAAJY2FsbGVyUHViBQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIEAAAADGxvd2VzdEJpZGRlcgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgQAAAAHJG1hdGNoMAUAAAAMbG93ZXN0QmlkZGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAjQXVjdGlvbiBsb3dlc3QgYmlkZGVyIHdhcyBub3QgZm91bmQEAAAAEm5ld0xvd2VzdEJpZGRlclB1YgQAAAAVdmFsdWVDdXJyZW50TG93ZXN0QmlkCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViBAAAABBjdXJyZW50TG93ZXN0QmlkBAAAAAckbWF0Y2gwBQAAABV2YWx1ZUN1cnJlbnRMb3dlc3RCaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAMJAABmAAAAAgUAAAAQY3VycmVudExvd2VzdEJpZAUAAAAJYmlkQW1vdW50BQAAAA1uZXdGcmVlbGFuY2VyBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAASbmV3TG93ZXN0QmlkZGVyUHViCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANbmV3RnJlZWxhbmNlcgUAAAAJYmlkQW1vdW50BQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHEluY29ycmVjdCBqb2JJZCBzdGF0ZS4gTm93OiAFAAAADGF1Y3Rpb25TdGF0ZQIAAAALLCBtdXN0IGJlOiAFAAAACXN0YXRlT3BlbgIAAAAEIG9yIAUAAAAOc3RhdGVTdWdnZXN0ZWQAAAABaQEAAAAQY2hvb3NlRnJlZWxhbmNlcgAAAAIAAAAJYXVjdGlvbklkAAAADWZyZWVsYW5jZXJQdWIEAAAACWNhbGxlclB1YgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAB2JldFRpbWUFAAAABmhlaWdodAQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEUFzc2V0TmFtZVRvQmFzZTU4AAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAALam9ic09uR29pbmcJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIJAAJYAAAAAQUAAAANYXVjdGlvbkNsaWVudAIAAAAMX0pvYnNPbkdvaW5nBAAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1mcmVlbGFuY2VyUHViAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABdmcmVlbGFuY2VyVG90YWxFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAOX1RvdGFsRWFybmluZ3MEAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQEAAAAEGtleUZyZWVsYW5jZXJCaWQJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1mcmVlbGFuY2VyUHViBAAAABF2YWx1ZUZyZWVsYWNlckJpZAkABBoAAAACBQAAAAR0aGlzBQAAABBrZXlGcmVlbGFuY2VyQmlkBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUZyZWVsYWNlckJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAHkZyZWVsYW5jZXIncyBiZXQgd2FzIG5vdCBmb3VuZAQAAAARYXVjdGlvblRpbWVpc092ZXIJAQAAAAl0aW1lQ2hlY2sAAAADBQAAAAdiZXRUaW1lBQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAA1hdWN0aW9uQ2xpZW50AwUAAAARYXVjdGlvblRpbWVpc092ZXIDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAALc3RhdGVDYW5jZWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIEAAAAEXZhbHVlTG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUxvd2VzdEJpZGRlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kBAAAAA9uZXdBdWN0aW9uUHJpY2UEAAAAFHZhbHVlTmV3QXVjdGlvblByaWNlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAAAckbWF0Y2gwBQAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gbG93ZXN0IGJpZCB3YXMgbm90IGZvdW5kBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAPbmV3QXVjdGlvblByaWNlBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAABBhbW91bnREaWZmZXJlbmNlCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0hpcmVkRnJlZWxhbmNlcgUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9QcmljZQUAAAAPbmV3QXVjdGlvblByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQACWAAAAAEFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwkAAGQAAAACBQAAAAtqb2JzT25Hb2luZwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1mcmVlbGFuY2VyUHViAgAAABBfUGVuZGluZ0Vhcm5pbmdzCQAAZAAAAAIFAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MFAAAAD25ld0F1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1mcmVlbGFuY2VyUHViAgAAAA5fVG90YWxFYXJuaW5ncwkAAGQAAAACBQAAABdmcmVlbGFuY2VyVG90YWxFYXJuaW5ncwUAAAAPbmV3QXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAUAAAAQYW1vdW50RGlmZmVyZW5jZQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBhdWN0aW9uIHN0YXRlAwMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4GCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAEHNldE5ld0ZyZWVsYW5jZXIEAAAADW5ld0ZyZWVsYW5jZXIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADWZyZWVsYW5jZXJQdWIEAAAAByRtYXRjaDAFAAAADW5ld0ZyZWVsYW5jZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAANZnJlZWxhbmNlclB1YgkAAAIAAAABAgAAAB5FcnJvcjogSW5jb3JyZWN0IGZyZWVsYW5jZXJQdWIEAAAAD25ld0F1Y3Rpb25QcmljZQQAAAANZnJlZWxhbmNlckJpZAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANZnJlZWxhbmNlclB1YgQAAAAHJG1hdGNoMAUAAAANZnJlZWxhbmNlckJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAATZnJlZWxhbmNlckJpZEFtb3VudAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAQYW1vdW50RGlmZmVyZW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAAEHNldE5ld0ZyZWVsYW5jZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAD25ld0F1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcJAABkAAAAAgUAAAALam9ic09uR29pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGQAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAA9uZXdBdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAOX1RvdGFsRWFybmluZ3MJAABkAAAAAgUAAAAXZnJlZWxhbmNlclRvdGFsRWFybmluZ3MFAAAAD25ld0F1Y3Rpb25QcmljZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWF1Y3Rpb25DbGllbnQJAABkAAAAAgUAAAAQYW1vdW50RGlmZmVyZW5jZQAAAAAAAAAAAQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBhdWN0aW9uIHN0YXRlCQAAAgAAAAECAAAALU9ubHkgYXVjdGlvbiBjdXN0b21lciBjYW4gY2hvb3NlIGEgZnJlZWxhbmNlcgAAAAFpAQAAABVpbmNyZWFzZUV4ZWN1dGlvblRpbWUAAAACAAAACWF1Y3Rpb25JZAAAAA1leGVjdXRpb25EYXlzBAAAAAZjYWxsZXIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAAcZ2V0QXVjdGlvbkpvYlBlcmZvcm1hbmNlVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUEAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAADZGF5AwkAAGYAAAACBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAAgAAAAECAAAAOE5ldyBleGVjdXRpb24gdGltZSBtdXN0IG1vcmUgdGhhbiBjdXJyZW50IGV4ZWN1dGlvbiB0aW1lAwkAAAAAAAACBQAAAAZjYWxsZXIFAAAADWF1Y3Rpb25DbGllbnQDAwMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4GCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQGCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAPX0pvYlBlcmZvcm1hbmNlBQAAABduZXdBdWN0aW9uRXhlY3V0aW9uVGltZQUAAAADbmlsCQAAAgAAAAECAAAAD0luY29ycmVjdCBzdGF0ZQkAAAIAAAABAgAAACdPbmx5IENsaWVudCBjYW4gaW5jcmVhc2UgZXhlY3V0aW9uIHRpbWUAAAABaQEAAAANY2FuY2VsQXVjdGlvbgAAAAEAAAAJYXVjdGlvbklkBAAAAAljYWxsZXJQdWIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAARYW1vdW50V2l0aG91dENvbW0JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAALc3RhdGVDYW5jZWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAUAAAARYW1vdW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAAC5BdWN0aW9uIGNhbiBiZSBjYW5jZWxlZCBvbmx5IGJ5IGF1Y3Rpb24gb3duZXIuCQAAAgAAAAECAAAAHk9ubHkgQ2xpZW50IGNhbiBjYW5jZWwgYXVjdGlvbgAAAAFpAQAAAAtvcGVuRGlzcHV0ZQAAAAEAAAAJYXVjdGlvbklkBAAAAAZjYWxsZXIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAAF2dldEF1Y3Rpb25GcmVlbGFuY2VyUHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABNjbGllbnRKb2JzSW5EaXNwdXRlCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACCQACWAAAAAEFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlAwMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MGCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAARc3RhdGVXYWl0NENvbmZpcm0DAwkAAAAAAAACBQAAAAZjYWxsZXIFAAAADWF1Y3Rpb25DbGllbnQGCQAAAAAAAAIFAAAABmNhbGxlcgUAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQkAAGQAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABBQAAAANuaWwJAAACAAAAAQIAAAArT25seSBDbGllbnQgYW5kIEZyZWVsYW5jZXIgY2FuIG9wZW4gZGlzcHV0ZQkAAAIAAAABAgAAACtJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZSBmb3IgZGlzcHV0ZSBvcGVuaW5nAAAAAWkBAAAAC3ZvdGVEaXNwdXRlAAAAAgAAAAlhdWN0aW9uSWQAAAAEdm90ZQQAAAAJY2FsbGVyUHViCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAKY29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEUFzc2V0TmFtZVRvQmFzZTU4AAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgkAAlgAAAABBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQQAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgkAAlgAAAABBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwQAAAASY2FsbGVySXNBbWJhc3NhZG9yAwMDAwMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAAthbWJhc3NhZG9yMQYJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAAthbWJhc3NhZG9yMgYJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAAthbWJhc3NhZG9yMwYJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAAthbWJhc3NhZG9yNAYJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAAthbWJhc3NhZG9yNQkAAlgAAAABBQAAAAljYWxsZXJQdWIJAAACAAAAAQIAAAAtT25seSBkZWZpbmVkIGFtYmFzc2Fkb3JzIGNhbiB2b3RlIGluIGRpc3B1dGVzBAAAAAduZXdWb3RlAwMJAAAAAAAAAgUAAAAEdm90ZQUAAAAGY2xpZW50BgkAAAAAAAACBQAAAAR2b3RlBQAAAApmcmVlbGFuY2VyBQAAAAR2b3RlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHFZvdGUgaXMgaW5jb3JyZWN0LiBNdXN0IGJlOiAFAAAABmNsaWVudAIAAAAEIG9yIAUAAAAKZnJlZWxhbmNlcgQAAAAIbmV3Vm90ZXIEAAAACGtleVZvdGVyCQABLAAAAAIJ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ZQkAAGgAAAACBQAAAApjb21taXNzaW9uAAAAAAAAAAACBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAAIbmV3Vm90ZXIFAAAAB25ld1ZvdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAJYAAAAAQUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUJAABlAAAAAgUAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQACWAAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzCQAAZQAAAAIFAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MFAAAADGF1Y3Rpb25QcmljZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWRpc3B1dGVXaW5uZXIFAAAAEnBheW1lbnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAhuZXdWb3RlcgUAAAAHbmV3Vm90ZQUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgIAAAAaSW5jb3JyZWN0IHN0YXRlLiBNdXN0IGJlOiAFAAAADHN0YXRlRGlzcHV0ZQAAAAFpAQAAAAx3b3JrSGFuZE92ZXIAAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIJAAJYAAAAAQUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUEAAAAC2N1cnJlbnRUaW1lBQAAAAZoZWlnaHQEAAAAEmZyZWVsYW5jZXJQdWJDaGVjawMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAABFhdWN0aW9uRnJlZWxhbmNlcgUAAAAJY2FsbGVyUHViCQAAAgAAAAECAAAANE9ubHkgYSBmcmVlbGFuY2VyIGNhbiBpbmRpY2F0ZSB0aGF0IHRoZSB3b3JrIGlzIGRvbmUEAAAACnRpbWVJc092ZXIJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAMYXVjdGlvblN0YXJ0BQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwMFAAAACnRpbWVJc092ZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMCAAAAATAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA1fSm9iSW5EaXNwdXRlCQAAZAAAAAIFAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUAAAAAAAAAAAEFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAARc3RhdGVXYWl0NENvbmZpcm0FAAAAA25pbAkAAAIAAAABAgAAABpBdWN0aW9uIHN0YXRlIGlzIGluY29ycmVjdAAAAAFpAQAAAAphY2NlcHRXb3JrAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAC2pvYnNPbkdvaW5nCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACCQACWAAAAAEFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwQAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgkAAlgAAAABBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwQAAAAWZnJlZWxhbmNlclBhaWRFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgkAAlgAAAABBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAANX1BhaWRFYXJuaW5ncwQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEWFtb3VudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAOZEFwcENvbW1pc3Npb24EAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAJbmV3UmF0aW5nBAAAAAt2YWx1ZVJhdGluZwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAJYAAAAAQUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAB19SYXRpbmcEAAAADWN1cnJlbnRSYXRpbmcEAAAAByRtYXRjaDAFAAAAC3ZhbHVlUmF0aW5nAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAJAABkAAAAAgUAAAANY3VycmVudFJhdGluZwAAAAAAAAAAAQMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAA1hdWN0aW9uQ2xpZW50AwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAEXN0YXRlV2FpdDRDb25maXJtCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAANc3RhdGVDb21wbGV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQACWAAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nBQAAAAluZXdSYXRpbmcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAJYAAAAAQUAAAANYXVjdGlvbkNsaWVudAIAAAAMX0pvYnNPbkdvaW5nCQAAZQAAAAIFAAAAC2pvYnNPbkdvaW5nAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAJYAAAAAQUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAEF9QZW5kaW5nRWFybmluZ3MJAABlAAAAAgUAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAJYAAAAAQUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADV9QYWlkRWFybmluZ3MJAABkAAAAAgUAAAAWZnJlZWxhbmNlclBhaWRFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAARYXVjdGlvbkZyZWVsYW5jZXIFAAAAEWFtb3VudFdpdGhvdXRDb21tBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAABpJbmNvcnJlY3Qgc3RhdGUuIE11c3QgYmU6IAUAAAARc3RhdGVXYWl0NENvbmZpcm0JAAACAAAAAQIAAAArT25seSBhdWN0aW9uIGN1c3RvbWVyIGNhbiB1c2UgdGhpcyBmdW5jdGlvbgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAANzdHgFAAAAByRtYXRjaDAGBwf3XNQu", "chainId": 84, "height": 716820, "spentComplexity": 0 } View: original | compacted Prev: 6sDjuS2KxGc5vN1a1cLRP33wMk7stgq3sAvBtgTT2kef Next: SA49YpFDw2LFfJT6bTi5BiQQwgdbFtsNBJzDxsCnSXb Diff:
OldNewDifferences
2727
2828 let m = "DisputeResolved"
2929
30-let n = "CMR"
30+let n = "CL"
3131
3232 let o = "FL"
3333
418418 ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
419419 }
420420 else throw("Incorrect auction state")
421- else {
422- let aX = {
423- let aC = getInteger(this, ((v + "_Bid_") + aQ))
424- let z = aC
425- if ($isInstanceOf(z, "Int"))
426- then {
427- let A = z
428- aQ
429- }
430- else throw("Error: Incorrect freelancerPub")
421+ else if (if ((ay == f))
422+ then true
423+ else (ay == g))
424+ then {
425+ let aX = {
426+ let aC = getInteger(this, ((v + "_Bid_") + aQ))
427+ let z = aC
428+ if ($isInstanceOf(z, "Int"))
429+ then {
430+ let A = z
431+ aQ
432+ }
433+ else throw("Error: Incorrect freelancerPub")
434+ }
435+ let aI = {
436+ let aY = getInteger(this, ((v + "_Bid_") + aQ))
437+ let z = aY
438+ if ($isInstanceOf(z, "Int"))
439+ then {
440+ let A = z
441+ A
442+ }
443+ else throw("Auction lowest bidder was not found")
444+ }
445+ let aK = (J - aU)
446+ let aw = O(C, aK)
447+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aX), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (aK + 1), aB)]))
431448 }
432- let aI = {
433- let aY = getInteger(this, ((v + "_Bid_") + aQ))
434- let z = aY
435- if ($isInstanceOf(z, "Int"))
436- then {
437- let A = z
438- A
439- }
440- else throw("Auction lowest bidder was not found")
441- }
442- let aK = (J - aU)
443- let aw = O(C, aK)
444- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aX), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (aK + 1), aB)]))
445- }
449+ else throw("Incorrect auction state")
446450 else throw("Only auction customer can choose a freelancer")
447451 }
448452
506510 then if (if ((ba == aq))
507511 then true
508512 else (ba == be))
509- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf + 1))])
513+ then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf + 1))])
510514 else throw("Only Client and Freelancer can open dispute")
511515 else throw("Incorrect auction state for dispute opening")
512516 }
598602 then (J - bh)
599603 else (J - (bh * 2))
600604 let aw = O(C, J)
601- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + bi), bj), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J))]), TransferSet([ScriptTransfer(addressFromPublicKey(bp), bC, aB)]))
605+ ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + bk), bj), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J))]), TransferSet([ScriptTransfer(addressFromPublicKey(bp), bC, aB)]))
602606 }
603- else WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry(((v + "_DiputeVote_") + bi), bj)])
607+ else WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry(((v + "_DiputeVote_") + bk), bj)])
604608 else throw(("Incorrect state. Must be: " + l))
605609 }
606610
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
30-let n = "CMR"
30+let n = "CL"
3131
3232 let o = "FL"
3333
3434 let p = base58'FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s'
3535
3636 let q = base58'6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8'
3737
3838 let r = base58'2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP'
3939
4040 let s = base58'ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG'
4141
4242 let t = base58'13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS'
4343
4444 func u (v) = (v + "_AuctionData")
4545
4646
4747 func w (x) = {
4848 let y = getInteger(this, x)
4949 let z = y
5050 if ($isInstanceOf(z, "Int"))
5151 then {
5252 let A = z
5353 A
5454 }
5555 else 0
5656 }
5757
5858
5959 func B (C) = if ((C == "WAVES"))
6060 then b
6161 else if ((C == "BTC"))
6262 then c
6363 else if ((C == "EUR"))
6464 then d
6565 else if ((C == "USD"))
6666 then e
6767 else throw("Incorrect Asset Id")
6868
6969
7070 func D (E,F,G) = ((E - F) > G)
7171
7272
7373 func H (I,J) = if ((I > J))
7474 then throw("Bid amount must be lower or equal than auctionPrice")
7575 else I
7676
7777
7878 func K (L,J) = {
7979 let M = getInteger(this, (L + "_Freezed"))
8080 let N = {
8181 let z = M
8282 if ($isInstanceOf(z, "Int"))
8383 then {
8484 let A = z
8585 A
8686 }
8787 else 0
8888 }
8989 (N + J)
9090 }
9191
9292
9393 func O (L,J) = {
9494 let M = getInteger(this, (L + "_Freezed"))
9595 let N = {
9696 let z = M
9797 if ($isInstanceOf(z, "Int"))
9898 then {
9999 let A = z
100100 A
101101 }
102102 else 0
103103 }
104104 let A = (N - J)
105105 if ((A >= 0))
106106 then A
107107 else throw("Freezed amount couldn't be less than 0")
108108 }
109109
110110
111111 func P (Q) = {
112112 let P = getString(this, (Q + "_Freelancer"))
113113 let z = P
114114 if ($isInstanceOf(z, "String"))
115115 then {
116116 let A = z
117117 Q
118118 }
119119 else throw("Only registered users can make bets")
120120 }
121121
122122
123123 func R (S) = if ((S > 0))
124124 then S
125125 else throw("Amount must be higher then 0")
126126
127127
128128 func T (v) = {
129129 let U = getString(this, (v + "_State"))
130130 let z = U
131131 if ($isInstanceOf(z, "String"))
132132 then {
133133 let A = z
134134 A
135135 }
136136 else throw("Auction State was not found")
137137 }
138138
139139
140140 func V (v) = {
141141 let W = getString(this, (v + "_AuctionClient"))
142142 let X = {
143143 let z = W
144144 if ($isInstanceOf(z, "String"))
145145 then {
146146 let A = z
147147 A
148148 }
149149 else throw("Auction Client was not found")
150150 }
151151 fromBase58String(X)
152152 }
153153
154154
155155 func Y (v) = {
156156 let Z = getInteger(this, (v + "_AuctionStart"))
157157 let z = Z
158158 if ($isInstanceOf(z, "Int"))
159159 then {
160160 let A = z
161161 A
162162 }
163163 else throw("Auction Start time was not found")
164164 }
165165
166166
167167 func aa (v) = {
168168 let ab = getInteger(this, (v + "_AuctionDuration"))
169169 let z = ab
170170 if ($isInstanceOf(z, "Int"))
171171 then {
172172 let A = z
173173 A
174174 }
175175 else throw("Auction duration time was not found")
176176 }
177177
178178
179179 func ac (v) = {
180180 let ad = getInteger(this, (v + "_JobPerformance"))
181181 let z = ad
182182 if ($isInstanceOf(z, "Int"))
183183 then {
184184 let A = z
185185 A
186186 }
187187 else throw("Auction job performance time was not found")
188188 }
189189
190190
191191 func ae (v) = {
192192 let af = getString(this, (v + "_AssetName"))
193193 let z = af
194194 if ($isInstanceOf(z, "String"))
195195 then {
196196 let A = z
197197 A
198198 }
199199 else throw("Auction asset name was not found")
200200 }
201201
202202
203203 func ag (v) = {
204204 let ah = getInteger(this, (v + "_Price"))
205205 let z = ah
206206 if ($isInstanceOf(z, "Int"))
207207 then {
208208 let A = z
209209 A
210210 }
211211 else throw("Auction price was not found")
212212 }
213213
214214
215215 func ai (v) = {
216216 let W = getString(this, (v + "_HiredFreelancer"))
217217 let A = {
218218 let z = W
219219 if ($isInstanceOf(z, "String"))
220220 then {
221221 let A = z
222222 A
223223 }
224224 else throw("Auction Client was not found")
225225 }
226226 fromBase58String(A)
227227 }
228228
229229
230230 @Callable(aj)
231231 func freelancerSignUp (ak) = {
232232 let al = toBase58String(aj.callerPublicKey)
233233 let am = getString(this, (al + "_Freelancer"))
234234 if (isDefined(am))
235235 then throw("User already registered")
236236 else WriteSet([DataEntry((al + "_Freelancer"), ak), DataEntry((al + "_PendingEarnings"), 0), DataEntry((al + "_PaidEarnings"), 0), DataEntry((al + "_TotalEarnings"), 0), DataEntry((al + "_JobsPending"), 0), DataEntry((al + "_JobsCompleted"), 0), DataEntry((al + "_JobsTotal"), 0)])
237237 }
238238
239239
240240
241241 @Callable(aj)
242242 func clientSignUp (ak) = {
243243 let al = toBase58String(aj.callerPublicKey)
244244 let am = getString(this, (al + "_Client"))
245245 if (isDefined(am))
246246 then throw("User already registered")
247247 else WriteSet([DataEntry((al + "_Client"), ak), DataEntry((al + "_JobsCreated"), 0), DataEntry((al + "_JobsOnGoing"), 0), DataEntry((al + "_JobInDispute"), 0)])
248248 }
249249
250250
251251
252252 @Callable(aj)
253253 func createAuction (an,ao,ap) = {
254254 let v = toBase58String(aj.transactionId)
255255 let aq = toBase58String(aj.callerPublicKey)
256256 let ar = extract(aj.payment)
257257 let S = ar.amount
258258 let J = R(S)
259259 let as = height
260260 let at = (ao * a)
261261 let au = (an * a)
262262 let L = if (!(isDefined(ar.assetId)))
263263 then "WAVES"
264264 else if ((ar.assetId == c))
265265 then "BTC"
266266 else if ((ar.assetId == d))
267267 then "EUR"
268268 else if ((ar.assetId == e))
269269 then "USD"
270270 else throw("AssetId is incorrect")
271271 let av = w((aq + "_JobsCreated"))
272272 let aw = K(L, J)
273273 WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), ap), DataEntry((v + "_AuctionClient"), aq), DataEntry((v + "_AuctionStart"), as), DataEntry((v + "_AuctionDuration"), at), DataEntry((v + "_JobPerformance"), au), DataEntry((v + "_AssetName"), L), DataEntry((v + "_Price"), J), DataEntry((L + "_Freezed"), aw), DataEntry((aq + "_JobsCreated"), (av + 1))])
274274 }
275275
276276
277277
278278 @Callable(aj)
279279 func makeBid (v,I) = {
280280 let Q = toBase58String(aj.callerPublicKey)
281281 let ax = height
282282 let ay = T(v)
283283 let aq = V(v)
284284 let as = Y(v)
285285 let az = aa(v)
286286 let aA = ac(v)
287287 let C = ae(v)
288288 let J = ag(v)
289289 let aB = B(C)
290290 let aC = P(Q)
291291 let aD = ((J * 3) / 100)
292292 let aw = O(C, J)
293293 let aE = H(I, J)
294294 let aF = D(ax, as, az)
295295 if (aF)
296296 then if ((ay == f))
297297 then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
298298 else if ((ay == g))
299299 then {
300300 let aG = {
301301 let aH = getString(this, (v + "_LowestBidderPub"))
302302 let z = aH
303303 if ($isInstanceOf(z, "String"))
304304 then {
305305 let A = z
306306 A
307307 }
308308 else throw("Auction lowest bidder was not found")
309309 }
310310 let aI = {
311311 let aJ = getInteger(this, ((v + "_Bid_") + aG))
312312 let z = aJ
313313 if ($isInstanceOf(z, "Int"))
314314 then {
315315 let A = z
316316 A
317317 }
318318 else throw("Auction lowest bid was not found")
319319 }
320320 let aK = ((J - aI) - aD)
321321 ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
322322 }
323323 else throw("Incorrect auction state")
324324 else if ((ay == f))
325325 then WriteSet([DataEntry(((v + "_Bid_") + aC), aE), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), Q)])
326326 else if ((ay == g))
327327 then {
328328 let aL = {
329329 let aM = getString(this, (v + "_LowestBidderPub"))
330330 let z = aM
331331 if ($isInstanceOf(z, "String"))
332332 then {
333333 let A = z
334334 A
335335 }
336336 else throw("Auction lowest bidder was not found")
337337 }
338338 let aN = {
339339 let aO = getInteger(this, ((v + "_Bid_") + aL))
340340 let aP = {
341341 let z = aO
342342 if ($isInstanceOf(z, "Int"))
343343 then {
344344 let A = z
345345 A
346346 }
347347 else throw("Auction lowest bid was not found")
348348 }
349349 if ((aP > aE))
350350 then aC
351351 else aL
352352 }
353353 WriteSet([DataEntry((v + "_LowestBidderPub"), aN), DataEntry(((v + "_Bid_") + aC), aE)])
354354 }
355355 else throw(((((("Incorrect jobId state. Now: " + ay) + ", must be: ") + f) + " or ") + g))
356356 }
357357
358358
359359
360360 @Callable(aj)
361361 func chooseFreelancer (v,aQ) = {
362362 let Q = extract(aj.callerPublicKey)
363363 let ax = height
364364 let ay = T(v)
365365 let aq = V(v)
366366 let as = Y(v)
367367 let az = aa(v)
368368 let C = ae(v)
369369 let J = ag(v)
370370 let aB = B(C)
371371 let aR = w((toBase58String(aq) + "_JobsOnGoing"))
372372 let aS = w((aQ + "_PendingEarnings"))
373373 let aT = w((aQ + "_TotalEarnings"))
374374 let aU = {
375375 let aV = ((v + "_Bid_") + aQ)
376376 let aW = getInteger(this, aV)
377377 let z = aW
378378 if ($isInstanceOf(z, "Int"))
379379 then {
380380 let A = z
381381 A
382382 }
383383 else throw("Freelancer's bet was not found")
384384 }
385385 let aF = D(ax, as, az)
386386 if ((Q == aq))
387387 then if (aF)
388388 then if ((ay == f))
389389 then {
390390 let aw = O(C, J)
391391 let aD = ((J * 3) / 100)
392392 ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
393393 }
394394 else if ((ay == g))
395395 then {
396396 let aG = {
397397 let aH = getString(this, (v + "_LowestBidderPub"))
398398 let z = aH
399399 if ($isInstanceOf(z, "String"))
400400 then {
401401 let A = z
402402 A
403403 }
404404 else throw("Auction lowest bidder was not found")
405405 }
406406 let aI = {
407407 let aJ = getInteger(this, ((v + "_Bid_") + aG))
408408 let z = aJ
409409 if ($isInstanceOf(z, "Int"))
410410 then {
411411 let A = z
412412 A
413413 }
414414 else throw("Auction lowest bid was not found")
415415 }
416416 let aK = (J - aI)
417417 let aw = O(C, aK)
418418 ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
419419 }
420420 else throw("Incorrect auction state")
421- else {
422- let aX = {
423- let aC = getInteger(this, ((v + "_Bid_") + aQ))
424- let z = aC
425- if ($isInstanceOf(z, "Int"))
426- then {
427- let A = z
428- aQ
429- }
430- else throw("Error: Incorrect freelancerPub")
421+ else if (if ((ay == f))
422+ then true
423+ else (ay == g))
424+ then {
425+ let aX = {
426+ let aC = getInteger(this, ((v + "_Bid_") + aQ))
427+ let z = aC
428+ if ($isInstanceOf(z, "Int"))
429+ then {
430+ let A = z
431+ aQ
432+ }
433+ else throw("Error: Incorrect freelancerPub")
434+ }
435+ let aI = {
436+ let aY = getInteger(this, ((v + "_Bid_") + aQ))
437+ let z = aY
438+ if ($isInstanceOf(z, "Int"))
439+ then {
440+ let A = z
441+ A
442+ }
443+ else throw("Auction lowest bidder was not found")
444+ }
445+ let aK = (J - aU)
446+ let aw = O(C, aK)
447+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aX), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (aK + 1), aB)]))
431448 }
432- let aI = {
433- let aY = getInteger(this, ((v + "_Bid_") + aQ))
434- let z = aY
435- if ($isInstanceOf(z, "Int"))
436- then {
437- let A = z
438- A
439- }
440- else throw("Auction lowest bidder was not found")
441- }
442- let aK = (J - aU)
443- let aw = O(C, aK)
444- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aX), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (aK + 1), aB)]))
445- }
449+ else throw("Incorrect auction state")
446450 else throw("Only auction customer can choose a freelancer")
447451 }
448452
449453
450454
451455 @Callable(aj)
452456 func increaseExecutionTime (v,aZ) = {
453457 let ba = extract(aj.callerPublicKey)
454458 let ay = T(v)
455459 let aq = V(v)
456460 let aA = ac(v)
457461 let bb = {
458462 let bc = (aZ * a)
459463 if ((bc > aA))
460464 then bc
461465 else throw("New execution time must more than current execution time")
462466 }
463467 if ((ba == aq))
464468 then if (if (if ((ay == f))
465469 then true
466470 else (ay == g))
467471 then true
468472 else (ay == i))
469473 then WriteSet([DataEntry((v + "_JobPerformance"), bb)])
470474 else throw("Incorrect state")
471475 else throw("Only Client can increase execution time")
472476 }
473477
474478
475479
476480 @Callable(aj)
477481 func cancelAuction (v) = {
478482 let Q = extract(aj.callerPublicKey)
479483 let ay = T(v)
480484 let aq = V(v)
481485 let C = ae(v)
482486 let J = ag(v)
483487 let aB = B(C)
484488 let aD = ((J * 3) / 100)
485489 let bd = (J - aD)
486490 let aw = O(C, J)
487491 if ((Q == aq))
488492 then if ((ay == f))
489493 then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), bd, aB)]))
490494 else throw("Auction can be canceled only by auction owner.")
491495 else throw("Only Client can cancel auction")
492496 }
493497
494498
495499
496500 @Callable(aj)
497501 func openDispute (v) = {
498502 let ba = extract(aj.callerPublicKey)
499503 let ay = T(v)
500504 let aq = V(v)
501505 let be = ai(v)
502506 let bf = w((toBase58String(aq) + "_JobsInDispute"))
503507 if (if ((ay == i))
504508 then true
505509 else (ay == j))
506510 then if (if ((ba == aq))
507511 then true
508512 else (ba == be))
509- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf + 1))])
513+ then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf + 1))])
510514 else throw("Only Client and Freelancer can open dispute")
511515 else throw("Incorrect auction state for dispute opening")
512516 }
513517
514518
515519
516520 @Callable(aj)
517521 func voteDispute (v,bg) = {
518522 let Q = extract(aj.callerPublicKey)
519523 let ay = T(v)
520524 let aq = V(v)
521525 let C = ae(v)
522526 let J = ag(v)
523527 let be = ai(v)
524528 let bh = ((J * 3) / 100)
525529 let aB = B(C)
526530 let bf = w((toBase58String(aq) + "_JobsInDispute"))
527531 let aS = w((toBase58String(be) + "_PendingEarnings"))
528532 let bi = if (if (if (if (if ((Q == p))
529533 then true
530534 else (Q == q))
531535 then true
532536 else (Q == r))
533537 then true
534538 else (Q == s))
535539 then true
536540 else (Q == t))
537541 then toBase58String(Q)
538542 else throw("Only defined ambassadors can vote in disputes")
539543 let bj = if (if ((bg == n))
540544 then true
541545 else (bg == o))
542546 then bg
543547 else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
544548 let bk = {
545549 let bl = ((v + "_DiputeVote_") + bi)
546550 let bm = getString(this, bl)
547551 let z = bm
548552 if ($isInstanceOf(z, "String"))
549553 then {
550554 let A = z
551555 throw("User already voted")
552556 }
553557 else bi
554558 }
555559 let bn = {
556560 let bo = getInteger(this, (v + "_DisputeVotes"))
557561 let z = bo
558562 if ($isInstanceOf(z, "Int"))
559563 then {
560564 let A = z
561565 A
562566 }
563567 else throw("VotesNumber was not found")
564568 }
565569 if ((ay == l))
566570 then if ((bn == 4))
567571 then {
568572 let bp = {
569573 let bq = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
570574 let br = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
571575 let bs = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
572576 let bt = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
573577 let bu = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
574578 let bv = if ((bq == n))
575579 then 1
576580 else 0
577581 let bw = if ((br == n))
578582 then 1
579583 else 0
580584 let bx = if ((bs == n))
581585 then 1
582586 else 0
583587 let by = if ((bt == n))
584588 then 1
585589 else 0
586590 let bz = if ((bu == n))
587591 then 1
588592 else 0
589593 let bA = if ((bj == n))
590594 then 1
591595 else 0
592596 let bB = (((((bv + bw) + bx) + by) + bz) + bA)
593597 if ((bB > 2))
594598 then aq
595599 else be
596600 }
597601 let bC = if ((bp == aq))
598602 then (J - bh)
599603 else (J - (bh * 2))
600604 let aw = O(C, J)
601- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + bi), bj), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J))]), TransferSet([ScriptTransfer(addressFromPublicKey(bp), bC, aB)]))
605+ ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + bk), bj), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J))]), TransferSet([ScriptTransfer(addressFromPublicKey(bp), bC, aB)]))
602606 }
603- else WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry(((v + "_DiputeVote_") + bi), bj)])
607+ else WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry(((v + "_DiputeVote_") + bk), bj)])
604608 else throw(("Incorrect state. Must be: " + l))
605609 }
606610
607611
608612
609613 @Callable(aj)
610614 func workHandOver (v) = {
611615 let Q = extract(aj.callerPublicKey)
612616 let ay = T(v)
613617 let aq = V(v)
614618 let as = Y(v)
615619 let az = aa(v)
616620 let aA = ac(v)
617621 let be = ai(v)
618622 let bf = w((toBase58String(aq) + "_JobsInDispute"))
619623 let E = height
620624 let bD = if ((Q == be))
621625 then Q
622626 else throw("Only a freelancer can indicate that the work is done")
623627 let bE = ((E - as) > aA)
624628 if ((ay == i))
625629 then if (bE)
626630 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0"), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf + 1))])
627631 else WriteSet([DataEntry((v + "_State"), j)])
628632 else throw("Auction state is incorrect")
629633 }
630634
631635
632636
633637 @Callable(aj)
634638 func acceptWork (v) = {
635639 let Q = extract(aj.callerPublicKey)
636640 let ay = T(v)
637641 let aq = V(v)
638642 let as = Y(v)
639643 let az = aa(v)
640644 let C = ae(v)
641645 let J = ag(v)
642646 let be = ai(v)
643647 let aR = w((toBase58String(aq) + "_JobsOnGoing"))
644648 let aS = w((toBase58String(be) + "_PendingEarnings"))
645649 let bF = w((toBase58String(be) + "_PaidEarnings"))
646650 let aD = ((J * 3) / 100)
647651 let bd = (J - aD)
648652 let aB = B(C)
649653 let aw = O(C, J)
650654 let bG = {
651655 let bH = getInteger(this, (toBase58String(be) + "_Rating"))
652656 let bI = {
653657 let z = bH
654658 if ($isInstanceOf(z, "Int"))
655659 then {
656660 let A = z
657661 A
658662 }
659663 else 0
660664 }
661665 (bI + 1)
662666 }
663667 if ((Q == aq))
664668 then if ((ay == j))
665669 then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(be) + "_Rating"), bG), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J)), DataEntry((toBase58String(be) + "_PaidEarnings"), (bF + J))]), TransferSet([ScriptTransfer(addressFromPublicKey(be), bd, aB)]))
666670 else throw(("Incorrect state. Must be: " + j))
667671 else throw("Only auction customer can use this function")
668672 }
669673
670674
671675 @Verifier(bJ)
672676 func bK () = if (sigVerify(bJ.bodyBytes, bJ.proofs[0], bJ.senderPublicKey))
673677 then {
674678 let z = bJ
675679 if ($isInstanceOf(z, "TransferTransaction"))
676680 then {
677681 let bL = z
678682 true
679683 }
680684 else if ($isInstanceOf(z, "SetScriptTransaction"))
681685 then {
682686 let bM = z
683687 true
684688 }
685689 else false
686690 }
687691 else false
688692

github/deemru/w8io/873ac7e 
90.96 ms