tx · 9ardPtBRJhGekRASrjT4G6LxhJDrgshXJFrLLJAZuMDT

3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2:  -0.03200000 Waves

2023.11.30 11:25 [2865904] smart account 3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2 > SELF 0.00000000 Waves

{ "type": 13, "id": "9ardPtBRJhGekRASrjT4G6LxhJDrgshXJFrLLJAZuMDT", "fee": 3200000, "feeAssetId": null, "timestamp": 1701332690099, "version": 2, "chainId": 84, "sender": "3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2", "senderPublicKey": "DNKNL32sAVUYg4iGA3tW8Z6VXrENmGCmKfG6DLar82aP", "proofs": [ "3X7NXmmZJwAHSB7nki3w2S57d3CbcV95c7BppDrc9rBfYHbW4Fa5iTVAmfBoQs1HrFbwEpaxcca1pLp4DcZAkBPM" ], "script": "base64:AAIFAAAAAAAAAEAIAhIMCgoBAQgIAQEBCAEBEgwKCgEBCAgBAQEIAQESABIFCgMBCAgSABIECgIIARIDCgEIEgMKAQgSABIDCgEIAAAADgAAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwIAAAAjM040d0JnWXRXZ0pXMkxUUmVmMmVrV1FUckVYQ1JmWG1HTGgAAAAAFERhcHBfQWRkcmVzc19wdWJfa2V5AQAAACDI7Zjahu5VNVhgxzyW6CpbYvUiMMUf5OyBUQlo584acwAAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAAAAAYq/YBYgAAAAAAtDdXJyZW5jeV9JRAIAAAAFV0FWRVMAAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yAgAAACNQcm9kdWN0IExhdW5jaCBUaW1lc3RhbXAgaXMgc2V0IGF0IAAAAAAQbm9fcGF5bWVudF9lcnJvcgIAAAA3Tm8gcGF5bWVudCBhdHRhY2hlZCwgUGxlYXNlIEF0dGFjaCBUb2tlbiBpbiBwYXltZW50WzFdLgAAAAASY2xvc2VkX29yYWNsZV9lcm9yAgAAADFPcmFjbGUgaXMgY2xvc2VkLiBXYWl0IFVudGlsIE9yYWNsZSBpcyBUdXJuZWQgT24uAAAAABF3aGl0ZWxpc3RfYWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAURGFwcF9BZGRyZXNzX3B1Yl9rZXkAAAAACWQyZGNhbGxlcgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQEAAAAgVjmO4YcVELU8Q7V+UVV19WsVRR/5xSyznPDzMoLMOkEAAAAAC25ldHdvcmtfZmVlAAAAAAAADbugAAAAABJtaW5pbXVtX29yZGVyX3NpemUAAAAAAACYloAAAAAAEm1heGltdW1fb3JkZXJfc2l6ZQAAAAACVAvkAAAAAAAUbWF4aW11bV92b3VjaGVyX3NpemUAAAAAAAX14QAAAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAPU2h1dGRvd25fU3RhdHVzAgAAAE1Jbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93biBmdW5jdGlvbiB2YWx1ZSBpcyBub3QgU2V0LCBQbGVhc2UgU2lnbiB0aGF0IGZpcnN0LgAAAAoAAAABaQEAAAAPcGxhY2VvcHRpb25DYWxsAAAACgAAAAZBbW91bnQAAAAPT3B0aW9uQ291bnRlcklEAAAAB1VzZXJfSUQAAAAMVXNlcl9BZGRyZXNzAAAABVByaWNlAAAAC0NhbGxfTGltaXRzAAAAClB1dF9MaW1pdHMAAAANT3JhY2xlX1N0YXR1cwAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADFVzZXJfQWRkcmVzcwQAAAAIcmVhZF9UUEwJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQIAAAAkTm8gSW5pdGlhbCBQb29sIExpcXVpZGl0eSB3YXMgRm91bmQuBAAAAA9yZWFkX3VzZXJfZnVuZHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MAAAAAAAAAAAAEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZF91c2VyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAABdyZWFkX3VzZXJfdm91Y2hlcl9mdW5kcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQAAAAAAAAAAAAQAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAAZQAAAAIJAABlAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMFAAAABkFtb3VudAUAAAALbmV0d29ya19mZWUEAAAAIXJlYWRfc3RhcnRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wBAAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAB1jaGVja2lmdXNlcmNhbnBsYXl3aXRodm91Y2hlcgMJAABmAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMFAAAAG3VwZGF0ZV91c2VyX3ZvdWNoZXJfYmFsYW5jZQYHBAAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAPT3B0aW9uQ291bnRlcklEBAAAABJPcGlvbkV4cGlyZUNvdW50ZXIAAAAAAAAAAAEEAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkAAGQAAAACBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAST3Bpb25FeHBpcmVDb3VudGVyBAAAABRQcmV2aW91c09wdGlvbk9yZGVycwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAAZAAAAAIFAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzAAAAAAAAAAABBAAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkAAGQAAAACBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIFAAAABkFtb3VudAQAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAMUHJldmlvdXNDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAC1RvdGFsX0NhbGxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACVRvdGFsQ2FsbAkAAGQAAAACBQAAAAxQcmV2aW91c0NhbGwAAAAAAAAAAAEEAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGlRvdGFsQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAABBQcmV2aW91c1VzZXJDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANVG90YWxVc2VyQ2FsbAkAAGQAAAACBQAAABBQcmV2aW91c1VzZXJDYWxsAAAAAAAAAAABBAAAACFQcmV2aW91c1VzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAANX1RvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB5Ub3RhbFVzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAhUHJldmlvdXNVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA1GdW5kc19hdF9yaXNrCQAAawAAAAMFAAAACHJlYWRfVFBMAAAAAAAAAAAFAAAAAAAAAABkAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAANT3JhY2xlX1N0YXR1cwIAAAAFQ0xPU0UJAAACAAAAAQUAAAASY2xvc2VkX29yYWNsZV9lcm9yAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAPiBBZGRyZXNzIGlzIEJsYWNrbGlzdGVkLiBQbGVhc2UgY29udGFjdCBBZG1pbiB0byBXaGl0ZWxpc3QgaXQuAwkAAGcAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAkAAAIAAAABAgAAAEdPcHRpb24gT3JkZXIgcGxhY2luZyBUaW1pbmcgTGltaXRzIGFyZSBPdmVyLiBQbGVhc2UgSm9pbiBpbiBOZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAA1GdW5kc19hdF9yaXNrCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAABDTm8gbW9yZSBvcmRlcnMgYWNjZXB0ZWQsIE9wdGlvbiBIb3VzZSBSaXNrIFNpemUgaXMgb25seSBsaW1pdGVkIHRvIAkAAaQAAAABBQAAAA1GdW5kc19hdF9yaXNrAgAAABgsIFBlbmRpbmcgSG91c2UgUmlzayBpcyAJAAGkAAAAAQkAAGUAAAACBQAAAA1GdW5kc19hdF9yaXNrBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXICAAAAFS4gSm9pbiBpbiBuZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAASbWluaW11bV9vcmRlcl9zaXplBQAAAAZBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIGxlc3MgdGhhbiBbCQABpAAAAAEFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMJAABmAAAAAgUAAAAGQW1vdW50BQAAABJtYXhpbXVtX29yZGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIG1vcmUgdGhhbiBbCQABpAAAAAEFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzBgkAAAAAAAACBQAAAB1jaGVja2lmdXNlcmNhbnBsYXl3aXRodm91Y2hlcgcJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAWFBsYWNlZCBPcmRlciBBbW91bnQgaXMgZ29pbmcgbmVnYXRpdmUuIFBsZWFzZSByZWR1Y2UgdGhlIE9yZGVyIFNpemUuVXNlciBGdW5kIEFtb3VudCA9IFsJAAGkAAAAAQUAAAARdXBkYXRlX3VzZXJfZnVuZHMCAAAAAV0DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAbUVuZCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DAwkAAAAAAAACBQAAABdyZWFkX3VzZXJfdm91Y2hlcl9mdW5kcwAAAAAAAAAAAAYJAABmAAAAAgAAAAAAAAAAAAUAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIVXNlcl9JRF8FAAAADFVzZXJfQWRkcmVzcwUAAAAHVXNlcl9JRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpOZXR3b3JrX0ZlZV9Ub19QbGFjZV9PcmRlcgUAAAALbmV0d29ya19mZWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFQ2FsbF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYWxsX0Ftb3VudF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsBQAAAAZBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPQ2FsbF9TdGFydF9FbmRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAAAhyZWFkX1RQTAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA5GdW5kc19BdF9SaXNrXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAANRnVuZHNfYXRfcmlzawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQ2FsbF9MaW1pdHMFAAAAC0NhbGxfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApQdXRfTGltaXRzBQAAAApQdXRfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9DYWxscwUAAAAJVG90YWxDYWxsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAaVG90YWxDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMFAAAADVRvdGFsVXNlckNhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADV9Ub3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAHlRvdGFsVXNlckNhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwUAAAALbmV0d29ya19mZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwDBQAAAB1jaGVja2lmdXNlcmNhbnBsYXl3aXRodm91Y2hlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAACFVzZXJfSURfBQAAAAxVc2VyX0FkZHJlc3MFAAAAB1VzZXJfSUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlBQAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGk5ldHdvcmtfRmVlX1RvX1BsYWNlX09yZGVyBQAAAAtuZXR3b3JrX2ZlZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVDYWxsXwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwJAAGkAAAAAQUAAAAFUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbGxfQW1vdW50XwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwFAAAABkFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9DYWxsX1N0YXJ0X0VuZF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAIAAAABXwkAAaQAAAABBQAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX09wdGlvbl9PcmRlcnMFAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAIlRvdGFsX0Z1bmRzX0FkZGVkX0luX09wdGlvbl9PcmRlcl8JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkFAAAACHJlYWRfVFBMCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADkZ1bmRzX0F0X1Jpc2tfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA1GdW5kc19hdF9yaXNrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtDYWxsX0xpbWl0cwUAAAALQ2FsbF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClB1dF9MaW1pdHMFAAAAClB1dF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC1RvdGFsX0NhbGxzBQAAAAlUb3RhbENhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABpUb3RhbENhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADF9Ub3RhbF9DYWxscwUAAAANVG90YWxVc2VyQ2FsbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAANX1RvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAeVG90YWxVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBQAAAAtuZXR3b3JrX2ZlZQUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzBQAAAAZBbW91bnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABAgAAAAxXcm9uZyBFbnRyeS4AAAABaQEAAAAOcGxhY2VvcHRpb25QdXQAAAAKAAAABkFtb3VudAAAAA9PcHRpb25Db3VudGVySUQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAAMVXNlcl9BZGRyZXNzBAAAAAhyZWFkX1RQTAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AgAAACRObyBJbml0aWFsIFBvb2wgTGlxdWlkaXR5IHdhcyBGb3VuZC4EAAAAD3JlYWRfdXNlcl9mdW5kcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwAAAAAAAAAAAAQAAAARdXBkYXRlX3VzZXJfZnVuZHMJAABlAAAAAgkAAGUAAAACBQAAAA9yZWFkX3VzZXJfZnVuZHMFAAAABkFtb3VudAUAAAALbmV0d29ya19mZWUEAAAAF3JlYWRfdXNlcl92b3VjaGVyX2Z1bmRzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlAAAAAAAAAAAABAAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UJAABlAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMFAAAABkFtb3VudAQAAAAhcmVhZF9zdGFydF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAEAAAAH3JlYWRfZW5kX29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAE0VuZF9PcmRlcl9UaW1lc3RhbXAEAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA9PcHRpb25Db3VudGVySUQEAAAAEk9waW9uRXhwaXJlQ291bnRlcgAAAAAAAAAAAQQAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAAZAAAAAIFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABJPcGlvbkV4cGlyZUNvdW50ZXIEAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAE1RvdGFsX09wdGlvbl9PcmRlcnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAARVG90YWxPcHRpb25PcmRlcnMJAABkAAAAAgUAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMAAAAAAAAAAAEEAAAAJ1ByZXZpb3VzRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAIlRvdGFsX0Z1bmRzX0FkZGVkX0luX09wdGlvbl9PcmRlcl8JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAAZAAAAAIFAAAAJ1ByZXZpb3VzRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgUAAAAGQW1vdW50BAAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAAtQcmV2aW91c1B1dAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAApUb3RhbF9QdXRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACFRvdGFsUHV0CQAAZAAAAAIFAAAAC1ByZXZpb3VzUHV0AAAAAAAAAAABBAAAABxQcmV2aW91c1B1dGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAZVG90YWxQdXRpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAABxQcmV2aW91c1B1dGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA9QcmV2aW91c1VzZXJQdXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAC19Ub3RhbF9QdXRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADFRvdGFsVXNlclB1dAkAAGQAAAACBQAAAA9QcmV2aW91c1VzZXJQdXQAAAAAAAAAAAEEAAAAIFByZXZpb3VzVXNlclB1dGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADF9Ub3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB1Ub3RhbFVzZXJQdXRpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAACBQcmV2aW91c1VzZXJQdXRpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAANRnVuZHNfYXRfcmlzawkAAGsAAAADBQAAAAhyZWFkX1RQTAAAAAAAAAAABQAAAAAAAAAAZAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAZgAAAAIFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAABRwcm9kdWN0X2xhdW5jaF9lcnJvcgkAAaQAAAABBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXADCQAAAAAAAAIFAAAADU9yYWNsZV9TdGF0dXMCAAAABUNMT1NFCQAAAgAAAAEFAAAAEmNsb3NlZF9vcmFjbGVfZXJvcgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAEJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAD4gQWRkcmVzcyBpcyBCbGFja2xpc3RlZC4gUGxlYXNlIGNvbnRhY3QgQWRtaW4gdG8gV2hpdGVsaXN0IGl0LgMJAABnAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAH3JlYWRfZW5kX29yZGVyX3Blcm1pdF90aW1lc3RhbXAJAAACAAAAAQIAAABHT3B0aW9uIE9yZGVyIHBsYWNpbmcgVGltaW5nIExpbWl0cyBhcmUgT3Zlci4gUGxlYXNlIEpvaW4gaW4gTmV4dCBDeWNsZS4DCQAAZgAAAAIFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgUAAAANRnVuZHNfYXRfcmlzawkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAQ05vIG1vcmUgb3JkZXJzIGFjY2VwdGVkLCBPcHRpb24gSG91c2UgUmlzayBTaXplIGlzIG9ubHkgbGltaXRlZCB0byAJAAGkAAAAAQUAAAANRnVuZHNfYXRfcmlzawIAAAAYLCBQZW5kaW5nIEhvdXNlIFJpc2sgaXMgCQABpAAAAAEJAABlAAAAAgUAAAANRnVuZHNfYXRfcmlzawUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyAgAAABUuIEpvaW4gaW4gbmV4dCBDeWNsZS4DCQAAZgAAAAIFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQUAAAAGQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBQbGFjZWQgT3JkZXIgU2l6ZSBpcyBsZXNzIHRoYW4gWwkAAaQAAAABBQAAABJtaW5pbXVtX29yZGVyX3NpemUCAAAADS8xMF44XSBXQVZFUy4DCQAAZgAAAAIFAAAABkFtb3VudAUAAAASbWF4aW11bV9vcmRlcl9zaXplCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBQbGFjZWQgT3JkZXIgU2l6ZSBpcyBtb3JlIHRoYW4gWwkAAaQAAAABBQAAABJtYXhpbXVtX29yZGVyX3NpemUCAAAADS8xMF44XSBXQVZFUy4DCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAAgAAAAEJAAEsAAAAAgIAAABcUGxhY2VkIE9yZGVyIEFtb3VudCBpcyBnb2luZyBuZWdhdGl2ZS4gUGxlYXNlIHJlZHVjZSB0aGUgT3JkZXIgU2l6ZS4gTmVnYXRpdmUgRnVuZCBBbW91bnQgPSAJAAGkAAAAAQUAAAARdXBkYXRlX3VzZXJfZnVuZHMDCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAbUVuZCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAhVc2VyX0lEXwUAAAAMVXNlcl9BZGRyZXNzBQAAAAdVc2VyX0lECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlBQAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGk5ldHdvcmtfRmVlX1RvX1BsYWNlX09yZGVyBQAAAAtuZXR3b3JrX2ZlZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARQdXRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAAMVG90YWxVc2VyUHV0CQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtQdXRfQW1vdW50XwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAUAAAAGQW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADlB1dF9TdGFydF9FbmRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAAMVG90YWxVc2VyUHV0CQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAIAAAABXwkAAaQAAAABBQAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX09wdGlvbl9PcmRlcnMFAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAIlRvdGFsX0Z1bmRzX0FkZGVkX0luX09wdGlvbl9PcmRlcl8JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkFAAAACHJlYWRfVFBMCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADkZ1bmRzX0F0X1Jpc2tfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA1GdW5kc19hdF9yaXNrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtDYWxsX0xpbWl0cwUAAAALQ2FsbF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClB1dF9MaW1pdHMFAAAAClB1dF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1B1dHMFAAAACFRvdGFsUHV0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABlUb3RhbFB1dGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAALX1RvdGFsX1B1dHMFAAAADFRvdGFsVXNlclB1dAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAMX1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAB1Ub3RhbFVzZXJQdXRpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwUAAAALbmV0d29ya19mZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAXRmlsbF9Wb3VjaGVyc19MaXF1aWRpdHkAAAAABAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAAElObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIG9ubHkgV2hpdGVsaXN0ZWQgVG9rZW5zIGluIHBheW1lbnRbMV0uBAAAABdQcmV2aW91c1ZvdWNoZXJzQmFsYW5jZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABRUb3RhbFZvdWNoZXJzQmFsYW5jZQkAAGQAAAACBQAAABdQcmV2aW91c1ZvdWNoZXJzQmFsYW5jZQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGVByZXZpb3VzVm91Y2hlcnNDb3VudGVySUQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVm91Y2hlcnNfQ291bnRlcl9JRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABZUb3RhbFZvdWNoZXJzQ291bnRlcklECQAAZAAAAAIFAAAAGVByZXZpb3VzVm91Y2hlcnNDb3VudGVySUQAAAAAAAAAAAEDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAALk9ubHkgV0FWRVMgaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQDCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGkF2YWlsYWJsZV9Wb3VjaGVyc19CYWxhbmNlBQAAABRUb3RhbFZvdWNoZXJzQmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAFlRvdGFsVm91Y2hlcnNDb3VudGVySUQCAAAAFV9Wb3VjaGVyX0FkZGVkX0Ftb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1ZvdWNoZXJzX0NvdW50ZXJfSUQFAAAAFlRvdGFsVm91Y2hlcnNDb3VudGVySUQFAAAAA25pbAAAAAFpAQAAAA5Jc3N1ZV9Wb3VjaGVycwAAAAMAAAAOVm91Y2hlcl9BbW91bnQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MEAAAAGXJlYWRfVG90YWxWb3VjaGVyc0JhbGFuY2UJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQIAAABfQXZhaWxhYmxlX1ZvdWNoZXJzX0JhbGFuY2UgRW50cnkgaXMgbm90IEZvdW5kLiBJbml0aWF0ZSBGaWxsX1ZvdWNoZXJzX0xpcXVpZGl0eSBGdW5jdGlvbiBmaXJzdC4EAAAAG3VwZGF0ZV9Ub3RhbFZvdWNoZXJzQmFsYW5jZQkAAGUAAAACBQAAABlyZWFkX1RvdGFsVm91Y2hlcnNCYWxhbmNlBQAAAA5Wb3VjaGVyX0Ftb3VudAQAAAAUVm91Y2hlcnNJc3N1ZWRUb1VzZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABlUb3RhbF9Wb3VjaGVyc19Jc3N1ZWRfVG9fBQAAAAxVc2VyX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAZVG90YWxWb3VjaGVyc0lzc3VlZFRvVXNlcgkAAGQAAAACBQAAABRWb3VjaGVyc0lzc3VlZFRvVXNlcgAAAAAAAAAAAQQAAAAaVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACBUb3RhbF9Wb3VjaGVyc19BbW91bnRfSXNzdWVkX1RvXwUAAAAMVXNlcl9BZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAH1RvdGFsVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIJAABkAAAAAgUAAAAaVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIFAAAADlZvdWNoZXJfQW1vdW50BAAAAB1QcmV2aW91c1ZvdWNoZXJzQmFsYW5jZW9mVXNlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABpUb3RhbFZvdWNoZXJzQmFsYW5jZW9mVXNlcgkAAGQAAAACBQAAAB1QcmV2aW91c1ZvdWNoZXJzQmFsYW5jZW9mVXNlcgUAAAAOVm91Y2hlcl9BbW91bnQDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAAAAAAACBQAAABRyZWFkX3NodXRkb3duX3N0YXR1cwAAAAAAAAAAAQkAAAIAAAABAgAAAFtDb250cmFjdCBTdGF0dXMgaXMgQ3VycmVudGx5IFNodXRkb3duLiBQbGVhc2UgU2lnbiB0aGUgRnVuY3Rpb24gSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24uAwkAAGcAAAACAAAAAAAAAAAABQAAAA5Wb3VjaGVyX0Ftb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAABnVm91Y2hlciBCYWxhbmNlIGNhbid0IGJlIDAgb3IgZ28gaW4gbmVnYXRpdmUgU3RhdGUuIEluY3JlYXNlIHRoZSBWb3VjaGVyIEFtb3VudCB3aGVyZSBtYXhpbXVtIGxpbWl0IGlzIAkAAaQAAAABBQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQIAAAAMLzEwXjggV2F2ZXMuAwkAAGcAAAACAAAAAAAAAAAABQAAABt1cGRhdGVfVG90YWxWb3VjaGVyc0JhbGFuY2UJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAANlVwZGF0ZWQgVm91Y2hlciBCYWxhbmNlIGNhbid0IGdvIGluIG5lZ2F0aXZlIFN0YXRlIG9mIAkAAaQAAAABBQAAABt1cGRhdGVfVG90YWxWb3VjaGVyc0JhbGFuY2UCAAAAKCAvMTBeOCBXQVZFUy4gUmVkdWNlIHRoZSBWb3VjaGVyIEFtb3VudC4DCQAAZgAAAAIFAAAADlZvdWNoZXJfQW1vdW50BQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAA8SW5wdXQgVm91Y2hlciBCYWxhbmNlIGNhbid0IGV4Y2VlZCB0aGUgc2V0IG1heGltdW0gbGltaXQgb2YgCQABpAAAAAEFAAAAFG1heGltdW1fdm91Y2hlcl9zaXplAgAAAAwvMTBeOCBXYXZlcy4DCQAAZgAAAAIFAAAAGlRvdGFsVm91Y2hlcnNCYWxhbmNlb2ZVc2VyBQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAKyBWb3VjaGVyIEJhbGFuY2UgaXMgZXhjZWVkaW5nIHRoZSBsaW1pdCBvZiAJAAGkAAAAAQUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUCAAAADC8xMF44IFdhdmVzLgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABlUb3RhbF9Wb3VjaGVyc19Jc3N1ZWRfVG9fBQAAAAxVc2VyX0FkZHJlc3MFAAAAGVRvdGFsVm91Y2hlcnNJc3N1ZWRUb1VzZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAgVG90YWxfVm91Y2hlcnNfQW1vdW50X0lzc3VlZF9Ub18FAAAADFVzZXJfQWRkcmVzcwUAAAAfVG90YWxWb3VjaGVyc0Ftb3VudElzc3VlZFRvVXNlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAEF9Wb3VjaGVyX0JhbGFuY2UFAAAAGlRvdGFsVm91Y2hlcnNCYWxhbmNlb2ZVc2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlBQAAAANuaWwAAAABaQEAAAAQRGVwb3NpdFVzZXJGdW5kcwAAAAAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAASU5vIHBheW1lbnQgYXR0YWNoZWQsIFBsZWFzZSBBdHRhY2ggb25seSBXaGl0ZWxpc3RlZCBUb2tlbnMgaW4gcGF5bWVudFsxXS4EAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAANY2FsbGVyYWRkcmVzcwQAAAATUHJldmlvdXNVc2VyRGVwb3NpdAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADWNhbGxlcmFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAQVG90YWxVc2VyRGVwb3NpdAkAAGQAAAACBQAAABNQcmV2aW91c1VzZXJEZXBvc2l0CAUAAAADcG10AAAABmFtb3VudAQAAAAYUHJldmlvdXNEZXBvc2l0Q291bnRlcklEBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAEkRlcG9zaXRfQ291bnRlcl9JRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVUb3RhbERlcG9zaXRDb3VudGVySUQJAABkAAAAAgUAAAAYUHJldmlvdXNEZXBvc2l0Q291bnRlcklEAAAAAAAAAAABAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgUAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkAAAAAAAACBQAAABRyZWFkX3NodXRkb3duX3N0YXR1cwAAAAAAAAAAAQkAAAIAAAABAgAAAFtDb250cmFjdCBTdGF0dXMgaXMgQ3VycmVudGx5IFNodXRkb3duLiBQbGVhc2UgU2lnbiB0aGUgRnVuY3Rpb24gSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24uAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAD4gQWRkcmVzcyBpcyBCbGFja2xpc3RlZC4gUGxlYXNlIGNvbnRhY3QgQWRtaW4gdG8gV2hpdGVsaXN0IGl0LgMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAuT25seSBXQVZFUyBpcyBhbGxvd2VkIHRvIGRlcG9zaXQgYXQgdGhlIG1vbWVudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAA1jYWxsZXJhZGRyZXNzBQAAABBUb3RhbFVzZXJEZXBvc2l0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAVVG90YWxEZXBvc2l0Q291bnRlcklEAgAAAAFfBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAANY2FsbGVyYWRkcmVzcwgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEkRlcG9zaXRfQ291bnRlcl9JRAUAAAAVVG90YWxEZXBvc2l0Q291bnRlcklEBQAAAANuaWwAAAABaQEAAAARV2l0aGRyYXdVc2VyRnVuZHMAAAACAAAADFVzZXJfQWRkcmVzcwAAAAZBbW91bnQEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAPcmVhZHVzZXJiYWxhbmNlCQEAAAARQGV4dHJOYXRpdmUoMTA1NSkAAAABCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwQAAAARdXBkYXRlX3VzZXJfZnVuZHMJAABlAAAAAgkAAGUAAAACBQAAAA9yZWFkdXNlcmJhbGFuY2UFAAAABkFtb3VudAUAAAALbmV0d29ya19mZWUEAAAAF21pbmltaW1fd2l0aGRyYXdfYW1vdW50AAAAAAAAmJaAAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABmAAAAAgUAAAAXbWluaW1pbV93aXRoZHJhd19hbW91bnQFAAAABkFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAbTWluaW11bSBXaXRoZHJhdyBBbW91bnQgaXMgCQABpAAAAAEFAAAAF21pbmltaW1fd2l0aGRyYXdfYW1vdW50AgAAAA0vMTBeOF0gV0FWRVMuAwkAAGYAAAACAAAAAAAAAAAABQAAABF1cGRhdGVfdXNlcl9mdW5kcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAA1UGxhY2VkIFdpdGhkcmF3IEFtb3VudCBpcyBnb2luZyBpbiBuZWdhdGl2ZSBTdGF0ZSBvZiAJAAGkAAAAAQUAAAARdXBkYXRlX3VzZXJfZnVuZHMCAAAADS8xMF44XSBXQVZFUy4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEFByZXZpb3VzX0JhbGFuY2UFAAAAD3JlYWR1c2VyYmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXTmV0d29ya19GZWVfVG9fV2l0aGRyYXcFAAAAC25ldHdvcmtfZmVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARd2hpdGVsaXN0X2FkZHJlc3MFAAAAC25ldHdvcmtfZmVlBQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADFVzZXJfQWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAQQmxhY2tMaXN0QWRkcmVzcwAAAAEAAAALVXNlckFkZHJlc3MEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAALVXNlckFkZHJlc3MEAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVUb3RhbEJsYWNrTGlzdEFkZHJlc3MJAABkAAAAAgUAAAAYUHJldmlvdXNCbGFja0xpc3RBZGRyZXNzAAAAAAAAAAABAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgUAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAECAAAAKkFkZHJlc3MgaXMgYWxyZWFkeSBhdmFpbGFibGUgaW4gQmxhY2tsaXN0LgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAAtVc2VyQWRkcmVzcwIAAAADWWVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwUAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzBQAAAANuaWwAAAABaQEAAAAWRGVsZXRlQmxhY2tMaXN0QWRkcmVzcwAAAAEAAAALVXNlckFkZHJlc3MEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAALVXNlckFkZHJlc3MEAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVUb3RhbEJsYWNrTGlzdEFkZHJlc3MJAABlAAAAAgUAAAAYUHJldmlvdXNCbGFja0xpc3RBZGRyZXNzAAAAAAAAAAABAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgIAAAAjUHJvZHVjdCBMYXVuY2ggVGltZXN0YW1wIGlzIHNldCBhdCAJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAAC1VzZXJBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwUAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzBQAAAANuaWwJAAACAAAAAQIAAAAmQWRkcmVzcyBpcyBub3QgYXZhaWxhYmxlIGluIEJsYWNrbGlzdC4AAAABaQEAAAAaSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24AAAAABAAAABFhZGRTaHV0ZG93blN0YXR1cwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAA9TaHV0ZG93bl9TdGF0dXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAEWFkZFNodXRkb3duU3RhdHVzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA9TaHV0ZG93bl9TdGF0dXMAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPU2h1dGRvd25fU3RhdHVzAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAADRGVsAAAAAQAAAAVFbnRyeQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAVFbnRyeQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVPcmRlcgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAcJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V50EbRbA==", "height": 2865904, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GR1bCt4br3Jt8QXJojUmSarWDFSuXk4FzA6vGGPR3bYy Next: BwDT8duARJtx72YUpyne8jvWZqzxSWpxShtL1zhiy6di Diff:
OldNewDifferences
4040 let F = ((E - p) - j)
4141 let G = x
4242 let H = y
43- let I = q
44- let J = 1
45- let K = (I + J)
46- let L = {
47- let M = getInteger(this, "Total_Option_Orders")
48- if ($isInstanceOf(M, "Int"))
43+ let I = if ((E > F))
44+ then true
45+ else false
46+ let J = q
47+ let K = 1
48+ let L = (J + K)
49+ let M = {
50+ let N = getInteger(this, "Total_Option_Orders")
51+ if ($isInstanceOf(N, "Int"))
4952 then {
50- let N = M
51- N
53+ let O = N
54+ O
5255 }
5356 else 0
5457 }
55- let O = (L + 1)
56- let P = {
57- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
58- if ($isInstanceOf(M, "Int"))
58+ let P = (M + 1)
59+ let Q = {
60+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
61+ if ($isInstanceOf(N, "Int"))
5962 then {
60- let N = M
61- N
63+ let O = N
64+ O
6265 }
6366 else 0
6467 }
65- let Q = (P + p)
66- let R = {
67- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68- if ($isInstanceOf(M, "Int"))
68+ let R = (Q + p)
69+ let S = {
70+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
71+ if ($isInstanceOf(N, "Int"))
6972 then {
70- let N = M
71- N
73+ let O = N
74+ O
7275 }
7376 else 0
7477 }
75- let S = (R + 1)
76- let T = {
77- let M = getInteger(this, "Total_Calls")
78- if ($isInstanceOf(M, "Int"))
78+ let T = (S + 1)
79+ let U = {
80+ let N = getInteger(this, "Total_Calls")
81+ if ($isInstanceOf(N, "Int"))
7982 then {
80- let N = M
81- N
83+ let O = N
84+ O
8285 }
8386 else 0
8487 }
85- let U = (T + 1)
86- let V = {
87- let M = getInteger(this, ("Total_Calls_" + toString(I)))
88- if ($isInstanceOf(M, "Int"))
88+ let V = (U + 1)
89+ let W = {
90+ let N = getInteger(this, ("Total_Calls_" + toString(J)))
91+ if ($isInstanceOf(N, "Int"))
8992 then {
90- let N = M
91- N
93+ let O = N
94+ O
9295 }
9396 else 0
9497 }
95- let W = (V + 1)
96- let X = {
97- let M = getInteger(this, (s + "_Total_Calls"))
98- if ($isInstanceOf(M, "Int"))
98+ let X = (W + 1)
99+ let Y = {
100+ let N = getInteger(this, (s + "_Total_Calls"))
101+ if ($isInstanceOf(N, "Int"))
99102 then {
100- let N = M
101- N
103+ let O = N
104+ O
102105 }
103106 else 0
104107 }
105- let Y = (X + 1)
106- let Z = {
107- let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108- if ($isInstanceOf(M, "Int"))
108+ let Z = (Y + 1)
109+ let aa = {
110+ let N = getInteger(this, ((s + "_Total_Calls_") + toString(J)))
111+ if ($isInstanceOf(N, "Int"))
109112 then {
110- let N = M
111- N
113+ let O = N
114+ O
112115 }
113116 else 0
114117 }
115- let aa = (Z + 1)
116- let ab = fraction(B, 5, 100)
117- if (if ((o.caller != h))
118- then (o.caller != i)
119- else false)
118+ let ab = (aa + 1)
119+ let ac = fraction(B, 5, 100)
120+ if ((o.caller != h))
120121 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
121122 else if ((n == 1))
122123 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
128129 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
129130 else if ((lastBlock.timestamp >= H))
130131 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
131- else if ((Q > ab))
132- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
133- else if (if ((C == 0))
134- then (E == 0)
135- else false)
136- then throw("User Balance and Voucher Balance both are Zero. Please Add Funds to Dapp.")
137- else if (((k + j) > E))
138- then throw((("Voucher Funds is less than minimum order size [" + toString((k + j))) + "/10^8] WAVES including network fee."))
132+ else if ((R > ac))
133+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
134+ else if ((k > p))
135+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
136+ else if ((p > l))
137+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
139138 else if (if ((0 > D))
140- then (0 > F)
141- else false)
142- then throw((((("Placed Order Amount is going negative. Please reduce the Order Size. User Fund Amount = [" + toString(D)) + "], Voucher Balance [-") + toString(F)) + "]"))
143- else if ((0 > D))
144- then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
145- else if ((k > p))
146- then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
147- else if ((p > l))
148- then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
149- else if ((size(toString(x)) != 13))
150- then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
151- else if ((size(toString(y)) != 13))
152- then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
153- else if (if ((E == 0))
154- then true
155- else (0 > F))
156- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
157- else if ((F > p))
158- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
159- else throw("Wrong Entry.")
139+ then true
140+ else (I == false))
141+ then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
142+ else if ((size(toString(x)) != 13))
143+ then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
144+ else if ((size(toString(y)) != 13))
145+ then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
146+ else if (if ((E == 0))
147+ then true
148+ else (0 > F))
149+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
150+ else if (I)
151+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
152+ else throw("Wrong Entry.")
160153 }
161154
162155
172165 let F = (E - p)
173166 let G = x
174167 let H = y
175- let I = q
176- let J = 1
177- let K = (I + J)
178- let L = {
179- let M = getInteger(this, "Total_Option_Orders")
180- if ($isInstanceOf(M, "Int"))
168+ let J = q
169+ let K = 1
170+ let L = (J + K)
171+ let M = {
172+ let N = getInteger(this, "Total_Option_Orders")
173+ if ($isInstanceOf(N, "Int"))
181174 then {
182- let N = M
183- N
175+ let O = N
176+ O
184177 }
185178 else 0
186179 }
187- let O = (L + 1)
188- let P = {
189- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
190- if ($isInstanceOf(M, "Int"))
180+ let P = (M + 1)
181+ let Q = {
182+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
183+ if ($isInstanceOf(N, "Int"))
191184 then {
192- let N = M
193- N
185+ let O = N
186+ O
194187 }
195188 else 0
196189 }
197- let Q = (P + p)
198- let R = {
199- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
200- if ($isInstanceOf(M, "Int"))
190+ let R = (Q + p)
191+ let S = {
192+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
193+ if ($isInstanceOf(N, "Int"))
201194 then {
202- let N = M
203- N
195+ let O = N
196+ O
204197 }
205198 else 0
206199 }
207- let S = (R + 1)
208- let ac = {
209- let M = getInteger(this, "Total_Puts")
210- if ($isInstanceOf(M, "Int"))
200+ let T = (S + 1)
201+ let ad = {
202+ let N = getInteger(this, "Total_Puts")
203+ if ($isInstanceOf(N, "Int"))
211204 then {
212- let N = M
213- N
205+ let O = N
206+ O
214207 }
215208 else 0
216209 }
217- let ad = (ac + 1)
218- let ae = {
219- let M = getInteger(this, ("Total_Puts_" + toString(I)))
220- if ($isInstanceOf(M, "Int"))
210+ let ae = (ad + 1)
211+ let af = {
212+ let N = getInteger(this, ("Total_Puts_" + toString(J)))
213+ if ($isInstanceOf(N, "Int"))
221214 then {
222- let N = M
223- N
215+ let O = N
216+ O
224217 }
225218 else 0
226219 }
227- let af = (ae + 1)
228- let ag = {
229- let M = getInteger(this, (s + "_Total_Puts"))
230- if ($isInstanceOf(M, "Int"))
220+ let ag = (af + 1)
221+ let ah = {
222+ let N = getInteger(this, (s + "_Total_Puts"))
223+ if ($isInstanceOf(N, "Int"))
231224 then {
232- let N = M
233- N
225+ let O = N
226+ O
234227 }
235228 else 0
236229 }
237- let ah = (ag + 1)
238- let ai = {
239- let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
240- if ($isInstanceOf(M, "Int"))
230+ let ai = (ah + 1)
231+ let aj = {
232+ let N = getInteger(this, ((s + "_Total_Puts_") + toString(J)))
233+ if ($isInstanceOf(N, "Int"))
241234 then {
242- let N = M
243- N
235+ let O = N
236+ O
244237 }
245238 else 0
246239 }
247- let aj = (ai + 1)
248- let ab = fraction(B, 5, 100)
249- if (if ((o.caller != h))
250- then (o.caller != i)
251- else false)
240+ let ak = (aj + 1)
241+ let ac = fraction(B, 5, 100)
242+ if ((o.caller != h))
252243 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
253244 else if ((n == 1))
254245 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
260251 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
261252 else if ((lastBlock.timestamp >= H))
262253 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
263- else if ((Q > ab))
264- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
254+ else if ((R > ac))
255+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
265256 else if ((k > p))
266257 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
267258 else if ((p > l))
272263 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
273264 else if ((size(toString(y)) != 13))
274265 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
275- else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
266+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ai)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ai)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ai)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Puts", ae), IntegerEntry(("Total_Puts_" + toString(J)), ag), IntegerEntry((s + "_Total_Puts"), ai), IntegerEntry(((s + "_Total_Puts_") + toString(J)), ak), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
276267 }
277268
278269
280271 @Callable(o)
281272 func Fill_Vouchers_Liquidity () = {
282273 let z = toBase58String(o.caller.bytes)
283- let ak = if ((size(o.payments) == 1))
274+ let al = if ((size(o.payments) == 1))
284275 then o.payments[0]
285276 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
286- let al = {
287- let M = getInteger(this, "Available_Vouchers_Balance")
288- if ($isInstanceOf(M, "Int"))
277+ let am = {
278+ let N = getInteger(this, "Available_Vouchers_Balance")
279+ if ($isInstanceOf(N, "Int"))
289280 then {
290- let N = M
291- N
281+ let O = N
282+ O
292283 }
293284 else 0
294285 }
295- let am = (al + ak.amount)
296- let an = {
297- let M = getInteger(this, "Vouchers_Counter_ID")
298- if ($isInstanceOf(M, "Int"))
286+ let an = (am + al.amount)
287+ let ao = {
288+ let N = getInteger(this, "Vouchers_Counter_ID")
289+ if ($isInstanceOf(N, "Int"))
299290 then {
300- let N = M
301- N
291+ let O = N
292+ O
302293 }
303294 else 0
304295 }
305- let ao = (an + 1)
306- if (isDefined(ak.assetId))
296+ let ap = (ao + 1)
297+ if (isDefined(al.assetId))
307298 then throw("Only WAVES is allowed to deposit at the moment")
308299 else if ((n == 1))
309300 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
310- else [IntegerEntry("Available_Vouchers_Balance", am), IntegerEntry((toString(ao) + "_Voucher_Added_Amount"), ak.amount), IntegerEntry("Vouchers_Counter_ID", ao)]
301+ else [IntegerEntry("Available_Vouchers_Balance", an), IntegerEntry((toString(ap) + "_Voucher_Added_Amount"), al.amount), IntegerEntry("Vouchers_Counter_ID", ap)]
311302 }
312303
313304
314305
315306 @Callable(o)
316-func Issue_Vouchers (ap,r,s) = {
317- let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
318- let ar = (aq - ap)
319- let as = {
320- let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
321- if ($isInstanceOf(M, "Int"))
307+func Issue_Vouchers (aq,r,s) = {
308+ let ar = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
309+ let as = (ar - aq)
310+ let at = {
311+ let N = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
312+ if ($isInstanceOf(N, "Int"))
322313 then {
323- let N = M
324- N
314+ let O = N
315+ O
325316 }
326317 else 0
327318 }
328- let at = (as + 1)
329- let au = {
330- let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
331- if ($isInstanceOf(M, "Int"))
319+ let au = (at + 1)
320+ let av = {
321+ let N = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
322+ if ($isInstanceOf(N, "Int"))
332323 then {
333- let N = M
334- N
324+ let O = N
325+ O
335326 }
336327 else 0
337328 }
338- let av = (au + ap)
339- let aw = {
340- let M = getInteger(this, (s + "_Voucher_Balance"))
341- if ($isInstanceOf(M, "Int"))
329+ let aw = (av + aq)
330+ let ax = {
331+ let N = getInteger(this, (s + "_Voucher_Balance"))
332+ if ($isInstanceOf(N, "Int"))
342333 then {
343- let N = M
344- N
334+ let O = N
335+ O
345336 }
346337 else 0
347338 }
348- let ax = (aw + ap)
339+ let ay = (ax + aq)
349340 if ((o.caller != h))
350341 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
351342 else if ((n == 1))
352343 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
353- else if ((0 >= ap))
344+ else if ((0 >= aq))
354345 then throw((("Voucher Balance can't be 0 or go in negative State. Increase the Voucher Amount where maximum limit is " + toString(m)) + "/10^8 Waves."))
355- else if ((0 >= ar))
356- then throw((("Updated Voucher Balance can't go in negative State of " + toString(ar)) + " /10^8 WAVES. Reduce the Voucher Amount."))
357- else if ((ap > m))
346+ else if ((0 >= as))
347+ then throw((("Updated Voucher Balance can't go in negative State of " + toString(as)) + " /10^8 WAVES. Reduce the Voucher Amount."))
348+ else if ((aq > m))
358349 then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(m)) + "/10^8 Waves."))
359- else if ((ax > m))
350+ else if ((ay > m))
360351 then throw((((s + " Voucher Balance is exceeding the limit of ") + toString(m)) + "/10^8 Waves."))
361- else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), at), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), av), IntegerEntry((s + "_Voucher_Balance"), ax), IntegerEntry("Available_Vouchers_Balance", ar)]
352+ else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), au), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), aw), IntegerEntry((s + "_Voucher_Balance"), ay), IntegerEntry("Available_Vouchers_Balance", as)]
362353 }
363354
364355
366357 @Callable(o)
367358 func DepositUserFunds () = {
368359 let z = toBase58String(o.caller.bytes)
369- let ak = if ((size(o.payments) == 1))
360+ let al = if ((size(o.payments) == 1))
370361 then o.payments[0]
371362 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
372363 let A = getString(this, ("addr_BLACKLISTED_" + z))
373- let ay = {
374- let M = getInteger(this, ((d + "_") + z))
375- if ($isInstanceOf(M, "Int"))
364+ let az = {
365+ let N = getInteger(this, ((d + "_") + z))
366+ if ($isInstanceOf(N, "Int"))
376367 then {
377- let N = M
378- N
368+ let O = N
369+ O
379370 }
380371 else 0
381372 }
382- let az = (ay + ak.amount)
383- let aA = {
384- let M = getInteger(this, "Deposit_Counter_ID")
385- if ($isInstanceOf(M, "Int"))
373+ let aA = (az + al.amount)
374+ let aB = {
375+ let N = getInteger(this, "Deposit_Counter_ID")
376+ if ($isInstanceOf(N, "Int"))
386377 then {
387- let N = M
388- N
378+ let O = N
379+ O
389380 }
390381 else 0
391382 }
392- let aB = (aA + 1)
383+ let aC = (aB + 1)
393384 if ((c > lastBlock.timestamp))
394385 then throw((e + toString(c)))
395386 else if ((n == 1))
396387 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
397388 else if ((A == "Yes"))
398389 then throw((z + " Address is Blacklisted. Please contact Admin to Whitelist it."))
399- else if (isDefined(ak.assetId))
390+ else if (isDefined(al.assetId))
400391 then throw("Only WAVES is allowed to deposit at the moment")
401- else [IntegerEntry(((d + "_") + z), az), IntegerEntry(((((toString(aB) + "_") + d) + "_") + z), ak.amount), IntegerEntry("Deposit_Counter_ID", aB)]
392+ else [IntegerEntry(((d + "_") + z), aA), IntegerEntry(((((toString(aC) + "_") + d) + "_") + z), al.amount), IntegerEntry("Deposit_Counter_ID", aC)]
402393 }
403394
404395
406397 @Callable(o)
407398 func WithdrawUserFunds (s,p) = {
408399 let z = toBase58String(o.caller.bytes)
409- let aC = getIntegerValue(((d + "_") + s))
410- let D = ((aC - p) - j)
411- let aD = 10000000
400+ let aD = getIntegerValue(((d + "_") + s))
401+ let D = ((aD - p) - j)
402+ let aE = 10000000
412403 if ((o.caller != h))
413404 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
414405 else if ((n == 1))
415406 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
416- else if ((aD > p))
417- then throw((("Minimum Withdraw Amount is " + toString(aD)) + "/10^8] WAVES."))
407+ else if ((aE > p))
408+ then throw((("Minimum Withdraw Amount is " + toString(aE)) + "/10^8] WAVES."))
418409 else if ((0 > D))
419410 then throw((("Placed Withdraw Amount is going in negative State of " + toString(D)) + "/10^8] WAVES."))
420- else [IntegerEntry("Previous_Balance", aC), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
411+ else [IntegerEntry("Previous_Balance", aD), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
421412 }
422413
423414
424415
425416 @Callable(o)
426-func BlackListAddress (aE) = {
427- let A = getString(this, ("addr_BLACKLISTED_" + aE))
428- let aF = {
429- let M = getInteger(this, "Total_Black_Listed_Address")
430- if ($isInstanceOf(M, "Int"))
417+func BlackListAddress (aF) = {
418+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
419+ let aG = {
420+ let N = getInteger(this, "Total_Black_Listed_Address")
421+ if ($isInstanceOf(N, "Int"))
431422 then {
432- let N = M
433- N
423+ let O = N
424+ O
434425 }
435426 else 0
436427 }
437- let aG = (aF + 1)
428+ let aH = (aG + 1)
438429 if ((c > lastBlock.timestamp))
439430 then throw((e + toString(c)))
440431 else if ((o.caller != h))
443434 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
444435 else if ((A == "Yes"))
445436 then throw("Address is already available in Blacklist.")
446- else [StringEntry(("addr_BLACKLISTED_" + aE), "Yes"), IntegerEntry("Total_Black_Listed_Address", aG)]
437+ else [StringEntry(("addr_BLACKLISTED_" + aF), "Yes"), IntegerEntry("Total_Black_Listed_Address", aH)]
447438 }
448439
449440
450441
451442 @Callable(o)
452-func DeleteBlackListAddress (aE) = {
453- let A = getString(this, ("addr_BLACKLISTED_" + aE))
454- let aF = {
455- let M = getInteger(this, "Total_Black_Listed_Address")
456- if ($isInstanceOf(M, "Int"))
443+func DeleteBlackListAddress (aF) = {
444+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
445+ let aG = {
446+ let N = getInteger(this, "Total_Black_Listed_Address")
447+ if ($isInstanceOf(N, "Int"))
457448 then {
458- let N = M
459- N
449+ let O = N
450+ O
460451 }
461452 else 0
462453 }
463- let aG = (aF - 1)
454+ let aH = (aG - 1)
464455 if ((c > lastBlock.timestamp))
465456 then throw(("Product Launch Timestamp is set at " + toString(c)))
466457 else if ((o.caller != h))
468459 else if ((n == 1))
469460 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
470461 else if ((A == "Yes"))
471- then [DeleteEntry(("addr_BLACKLISTED_" + aE)), IntegerEntry("Total_Black_Listed_Address", aG)]
462+ then [DeleteEntry(("addr_BLACKLISTED_" + aF)), IntegerEntry("Total_Black_Listed_Address", aH)]
472463 else throw("Address is not available in Blacklist.")
473464 }
474465
476467
477468 @Callable(o)
478469 func Initiate_Contract_Shutdown () = {
479- let aH = {
480- let M = getInteger(this, "Shutdown_Status")
481- if ($isInstanceOf(M, "Int"))
470+ let aI = {
471+ let N = getInteger(this, "Shutdown_Status")
472+ if ($isInstanceOf(N, "Int"))
482473 then {
483- let N = M
484- N
474+ let O = N
475+ O
485476 }
486477 else 0
487478 }
488479 if ((o.caller != h))
489480 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
490- else if ((aH == 0))
481+ else if ((aI == 0))
491482 then [IntegerEntry("Shutdown_Status", 1)]
492483 else [IntegerEntry("Shutdown_Status", 0)]
493484 }
495486
496487
497488 @Callable(o)
498-func Del (aI) = [DeleteEntry(aI)]
489+func Del (aJ) = [DeleteEntry(aJ)]
499490
500491
501-@Verifier(aJ)
502-func aK () = {
503- let M = aJ
504- if (if ($isInstanceOf(M, "Order"))
492+@Verifier(aK)
493+func aL () = {
494+ let N = aK
495+ if (if ($isInstanceOf(N, "Order"))
505496 then true
506- else if ($isInstanceOf(M, "ExchangeTransaction"))
497+ else if ($isInstanceOf(N, "ExchangeTransaction"))
507498 then true
508- else if ($isInstanceOf(M, "MassTransferTransaction"))
499+ else if ($isInstanceOf(N, "MassTransferTransaction"))
509500 then true
510- else $isInstanceOf(M, "TransferTransaction"))
501+ else $isInstanceOf(N, "TransferTransaction"))
511502 then {
512- let aL = M
503+ let aM = N
513504 false
514505 }
515- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
506+ else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
516507 }
517508
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "3N4wBgYtWgJW2LTRef2ekWQTrEXCRfXmGLh"
55
66 let b = base58'EXLfxKmqhQPiProBaoPatTentUSZX5Dd8A8bYDcmfNwt'
77
88 let c = 1695427860000
99
1010 let d = "WAVES"
1111
1212 let e = "Product Launch Timestamp is set at "
1313
1414 let f = "No payment attached, Please Attach Token in payment[1]."
1515
1616 let g = "Oracle is closed. Wait Until Oracle is Turned On."
1717
1818 let h = addressFromPublicKey(b)
1919
2020 let i = addressFromPublicKey(base58'6oay51Q6zPcFP9bSwUC4Potx2KGyD4AUjpL5uLR4QeRN')
2121
2222 let j = 900000
2323
2424 let k = 10000000
2525
2626 let l = 10000000000
2727
2828 let m = 100000000
2929
3030 let n = valueOrErrorMessage(getInteger(this, "Shutdown_Status"), "Initiate_Contract_Shutdown function value is not Set, Please Sign that first.")
3131
3232 @Callable(o)
3333 func placeoptionCall (p,q,r,s,t,u,v,w,x,y) = {
3434 let z = toBase58String(o.caller.bytes)
3535 let A = getString(this, ("addr_BLACKLISTED_" + s))
3636 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
3737 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
3838 let D = ((C - p) - j)
3939 let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
4040 let F = ((E - p) - j)
4141 let G = x
4242 let H = y
43- let I = q
44- let J = 1
45- let K = (I + J)
46- let L = {
47- let M = getInteger(this, "Total_Option_Orders")
48- if ($isInstanceOf(M, "Int"))
43+ let I = if ((E > F))
44+ then true
45+ else false
46+ let J = q
47+ let K = 1
48+ let L = (J + K)
49+ let M = {
50+ let N = getInteger(this, "Total_Option_Orders")
51+ if ($isInstanceOf(N, "Int"))
4952 then {
50- let N = M
51- N
53+ let O = N
54+ O
5255 }
5356 else 0
5457 }
55- let O = (L + 1)
56- let P = {
57- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
58- if ($isInstanceOf(M, "Int"))
58+ let P = (M + 1)
59+ let Q = {
60+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
61+ if ($isInstanceOf(N, "Int"))
5962 then {
60- let N = M
61- N
63+ let O = N
64+ O
6265 }
6366 else 0
6467 }
65- let Q = (P + p)
66- let R = {
67- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68- if ($isInstanceOf(M, "Int"))
68+ let R = (Q + p)
69+ let S = {
70+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
71+ if ($isInstanceOf(N, "Int"))
6972 then {
70- let N = M
71- N
73+ let O = N
74+ O
7275 }
7376 else 0
7477 }
75- let S = (R + 1)
76- let T = {
77- let M = getInteger(this, "Total_Calls")
78- if ($isInstanceOf(M, "Int"))
78+ let T = (S + 1)
79+ let U = {
80+ let N = getInteger(this, "Total_Calls")
81+ if ($isInstanceOf(N, "Int"))
7982 then {
80- let N = M
81- N
83+ let O = N
84+ O
8285 }
8386 else 0
8487 }
85- let U = (T + 1)
86- let V = {
87- let M = getInteger(this, ("Total_Calls_" + toString(I)))
88- if ($isInstanceOf(M, "Int"))
88+ let V = (U + 1)
89+ let W = {
90+ let N = getInteger(this, ("Total_Calls_" + toString(J)))
91+ if ($isInstanceOf(N, "Int"))
8992 then {
90- let N = M
91- N
93+ let O = N
94+ O
9295 }
9396 else 0
9497 }
95- let W = (V + 1)
96- let X = {
97- let M = getInteger(this, (s + "_Total_Calls"))
98- if ($isInstanceOf(M, "Int"))
98+ let X = (W + 1)
99+ let Y = {
100+ let N = getInteger(this, (s + "_Total_Calls"))
101+ if ($isInstanceOf(N, "Int"))
99102 then {
100- let N = M
101- N
103+ let O = N
104+ O
102105 }
103106 else 0
104107 }
105- let Y = (X + 1)
106- let Z = {
107- let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108- if ($isInstanceOf(M, "Int"))
108+ let Z = (Y + 1)
109+ let aa = {
110+ let N = getInteger(this, ((s + "_Total_Calls_") + toString(J)))
111+ if ($isInstanceOf(N, "Int"))
109112 then {
110- let N = M
111- N
113+ let O = N
114+ O
112115 }
113116 else 0
114117 }
115- let aa = (Z + 1)
116- let ab = fraction(B, 5, 100)
117- if (if ((o.caller != h))
118- then (o.caller != i)
119- else false)
118+ let ab = (aa + 1)
119+ let ac = fraction(B, 5, 100)
120+ if ((o.caller != h))
120121 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
121122 else if ((n == 1))
122123 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
123124 else if ((c > lastBlock.timestamp))
124125 then throw((e + toString(c)))
125126 else if ((w == "CLOSE"))
126127 then throw(g)
127128 else if ((A == "Yes"))
128129 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
129130 else if ((lastBlock.timestamp >= H))
130131 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
131- else if ((Q > ab))
132- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
133- else if (if ((C == 0))
134- then (E == 0)
135- else false)
136- then throw("User Balance and Voucher Balance both are Zero. Please Add Funds to Dapp.")
137- else if (((k + j) > E))
138- then throw((("Voucher Funds is less than minimum order size [" + toString((k + j))) + "/10^8] WAVES including network fee."))
132+ else if ((R > ac))
133+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
134+ else if ((k > p))
135+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
136+ else if ((p > l))
137+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
139138 else if (if ((0 > D))
140- then (0 > F)
141- else false)
142- then throw((((("Placed Order Amount is going negative. Please reduce the Order Size. User Fund Amount = [" + toString(D)) + "], Voucher Balance [-") + toString(F)) + "]"))
143- else if ((0 > D))
144- then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
145- else if ((k > p))
146- then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
147- else if ((p > l))
148- then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
149- else if ((size(toString(x)) != 13))
150- then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
151- else if ((size(toString(y)) != 13))
152- then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
153- else if (if ((E == 0))
154- then true
155- else (0 > F))
156- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
157- else if ((F > p))
158- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
159- else throw("Wrong Entry.")
139+ then true
140+ else (I == false))
141+ then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
142+ else if ((size(toString(x)) != 13))
143+ then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
144+ else if ((size(toString(y)) != 13))
145+ then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
146+ else if (if ((E == 0))
147+ then true
148+ else (0 > F))
149+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
150+ else if (I)
151+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
152+ else throw("Wrong Entry.")
160153 }
161154
162155
163156
164157 @Callable(o)
165158 func placeoptionPut (p,q,r,s,t,u,v,w,x,y) = {
166159 let z = toBase58String(o.caller.bytes)
167160 let A = getString(this, ("addr_BLACKLISTED_" + s))
168161 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
169162 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
170163 let D = ((C - p) - j)
171164 let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
172165 let F = (E - p)
173166 let G = x
174167 let H = y
175- let I = q
176- let J = 1
177- let K = (I + J)
178- let L = {
179- let M = getInteger(this, "Total_Option_Orders")
180- if ($isInstanceOf(M, "Int"))
168+ let J = q
169+ let K = 1
170+ let L = (J + K)
171+ let M = {
172+ let N = getInteger(this, "Total_Option_Orders")
173+ if ($isInstanceOf(N, "Int"))
181174 then {
182- let N = M
183- N
175+ let O = N
176+ O
184177 }
185178 else 0
186179 }
187- let O = (L + 1)
188- let P = {
189- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
190- if ($isInstanceOf(M, "Int"))
180+ let P = (M + 1)
181+ let Q = {
182+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
183+ if ($isInstanceOf(N, "Int"))
191184 then {
192- let N = M
193- N
185+ let O = N
186+ O
194187 }
195188 else 0
196189 }
197- let Q = (P + p)
198- let R = {
199- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
200- if ($isInstanceOf(M, "Int"))
190+ let R = (Q + p)
191+ let S = {
192+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
193+ if ($isInstanceOf(N, "Int"))
201194 then {
202- let N = M
203- N
195+ let O = N
196+ O
204197 }
205198 else 0
206199 }
207- let S = (R + 1)
208- let ac = {
209- let M = getInteger(this, "Total_Puts")
210- if ($isInstanceOf(M, "Int"))
200+ let T = (S + 1)
201+ let ad = {
202+ let N = getInteger(this, "Total_Puts")
203+ if ($isInstanceOf(N, "Int"))
211204 then {
212- let N = M
213- N
205+ let O = N
206+ O
214207 }
215208 else 0
216209 }
217- let ad = (ac + 1)
218- let ae = {
219- let M = getInteger(this, ("Total_Puts_" + toString(I)))
220- if ($isInstanceOf(M, "Int"))
210+ let ae = (ad + 1)
211+ let af = {
212+ let N = getInteger(this, ("Total_Puts_" + toString(J)))
213+ if ($isInstanceOf(N, "Int"))
221214 then {
222- let N = M
223- N
215+ let O = N
216+ O
224217 }
225218 else 0
226219 }
227- let af = (ae + 1)
228- let ag = {
229- let M = getInteger(this, (s + "_Total_Puts"))
230- if ($isInstanceOf(M, "Int"))
220+ let ag = (af + 1)
221+ let ah = {
222+ let N = getInteger(this, (s + "_Total_Puts"))
223+ if ($isInstanceOf(N, "Int"))
231224 then {
232- let N = M
233- N
225+ let O = N
226+ O
234227 }
235228 else 0
236229 }
237- let ah = (ag + 1)
238- let ai = {
239- let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
240- if ($isInstanceOf(M, "Int"))
230+ let ai = (ah + 1)
231+ let aj = {
232+ let N = getInteger(this, ((s + "_Total_Puts_") + toString(J)))
233+ if ($isInstanceOf(N, "Int"))
241234 then {
242- let N = M
243- N
235+ let O = N
236+ O
244237 }
245238 else 0
246239 }
247- let aj = (ai + 1)
248- let ab = fraction(B, 5, 100)
249- if (if ((o.caller != h))
250- then (o.caller != i)
251- else false)
240+ let ak = (aj + 1)
241+ let ac = fraction(B, 5, 100)
242+ if ((o.caller != h))
252243 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
253244 else if ((n == 1))
254245 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
255246 else if ((c > lastBlock.timestamp))
256247 then throw((e + toString(c)))
257248 else if ((w == "CLOSE"))
258249 then throw(g)
259250 else if ((A == "Yes"))
260251 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
261252 else if ((lastBlock.timestamp >= H))
262253 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
263- else if ((Q > ab))
264- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
254+ else if ((R > ac))
255+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
265256 else if ((k > p))
266257 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
267258 else if ((p > l))
268259 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
269260 else if ((0 > D))
270261 then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(D)))
271262 else if ((size(toString(x)) != 13))
272263 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
273264 else if ((size(toString(y)) != 13))
274265 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
275- else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
266+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ai)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ai)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ai)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Puts", ae), IntegerEntry(("Total_Puts_" + toString(J)), ag), IntegerEntry((s + "_Total_Puts"), ai), IntegerEntry(((s + "_Total_Puts_") + toString(J)), ak), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
276267 }
277268
278269
279270
280271 @Callable(o)
281272 func Fill_Vouchers_Liquidity () = {
282273 let z = toBase58String(o.caller.bytes)
283- let ak = if ((size(o.payments) == 1))
274+ let al = if ((size(o.payments) == 1))
284275 then o.payments[0]
285276 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
286- let al = {
287- let M = getInteger(this, "Available_Vouchers_Balance")
288- if ($isInstanceOf(M, "Int"))
277+ let am = {
278+ let N = getInteger(this, "Available_Vouchers_Balance")
279+ if ($isInstanceOf(N, "Int"))
289280 then {
290- let N = M
291- N
281+ let O = N
282+ O
292283 }
293284 else 0
294285 }
295- let am = (al + ak.amount)
296- let an = {
297- let M = getInteger(this, "Vouchers_Counter_ID")
298- if ($isInstanceOf(M, "Int"))
286+ let an = (am + al.amount)
287+ let ao = {
288+ let N = getInteger(this, "Vouchers_Counter_ID")
289+ if ($isInstanceOf(N, "Int"))
299290 then {
300- let N = M
301- N
291+ let O = N
292+ O
302293 }
303294 else 0
304295 }
305- let ao = (an + 1)
306- if (isDefined(ak.assetId))
296+ let ap = (ao + 1)
297+ if (isDefined(al.assetId))
307298 then throw("Only WAVES is allowed to deposit at the moment")
308299 else if ((n == 1))
309300 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
310- else [IntegerEntry("Available_Vouchers_Balance", am), IntegerEntry((toString(ao) + "_Voucher_Added_Amount"), ak.amount), IntegerEntry("Vouchers_Counter_ID", ao)]
301+ else [IntegerEntry("Available_Vouchers_Balance", an), IntegerEntry((toString(ap) + "_Voucher_Added_Amount"), al.amount), IntegerEntry("Vouchers_Counter_ID", ap)]
311302 }
312303
313304
314305
315306 @Callable(o)
316-func Issue_Vouchers (ap,r,s) = {
317- let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
318- let ar = (aq - ap)
319- let as = {
320- let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
321- if ($isInstanceOf(M, "Int"))
307+func Issue_Vouchers (aq,r,s) = {
308+ let ar = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
309+ let as = (ar - aq)
310+ let at = {
311+ let N = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
312+ if ($isInstanceOf(N, "Int"))
322313 then {
323- let N = M
324- N
314+ let O = N
315+ O
325316 }
326317 else 0
327318 }
328- let at = (as + 1)
329- let au = {
330- let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
331- if ($isInstanceOf(M, "Int"))
319+ let au = (at + 1)
320+ let av = {
321+ let N = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
322+ if ($isInstanceOf(N, "Int"))
332323 then {
333- let N = M
334- N
324+ let O = N
325+ O
335326 }
336327 else 0
337328 }
338- let av = (au + ap)
339- let aw = {
340- let M = getInteger(this, (s + "_Voucher_Balance"))
341- if ($isInstanceOf(M, "Int"))
329+ let aw = (av + aq)
330+ let ax = {
331+ let N = getInteger(this, (s + "_Voucher_Balance"))
332+ if ($isInstanceOf(N, "Int"))
342333 then {
343- let N = M
344- N
334+ let O = N
335+ O
345336 }
346337 else 0
347338 }
348- let ax = (aw + ap)
339+ let ay = (ax + aq)
349340 if ((o.caller != h))
350341 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
351342 else if ((n == 1))
352343 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
353- else if ((0 >= ap))
344+ else if ((0 >= aq))
354345 then throw((("Voucher Balance can't be 0 or go in negative State. Increase the Voucher Amount where maximum limit is " + toString(m)) + "/10^8 Waves."))
355- else if ((0 >= ar))
356- then throw((("Updated Voucher Balance can't go in negative State of " + toString(ar)) + " /10^8 WAVES. Reduce the Voucher Amount."))
357- else if ((ap > m))
346+ else if ((0 >= as))
347+ then throw((("Updated Voucher Balance can't go in negative State of " + toString(as)) + " /10^8 WAVES. Reduce the Voucher Amount."))
348+ else if ((aq > m))
358349 then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(m)) + "/10^8 Waves."))
359- else if ((ax > m))
350+ else if ((ay > m))
360351 then throw((((s + " Voucher Balance is exceeding the limit of ") + toString(m)) + "/10^8 Waves."))
361- else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), at), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), av), IntegerEntry((s + "_Voucher_Balance"), ax), IntegerEntry("Available_Vouchers_Balance", ar)]
352+ else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), au), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), aw), IntegerEntry((s + "_Voucher_Balance"), ay), IntegerEntry("Available_Vouchers_Balance", as)]
362353 }
363354
364355
365356
366357 @Callable(o)
367358 func DepositUserFunds () = {
368359 let z = toBase58String(o.caller.bytes)
369- let ak = if ((size(o.payments) == 1))
360+ let al = if ((size(o.payments) == 1))
370361 then o.payments[0]
371362 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
372363 let A = getString(this, ("addr_BLACKLISTED_" + z))
373- let ay = {
374- let M = getInteger(this, ((d + "_") + z))
375- if ($isInstanceOf(M, "Int"))
364+ let az = {
365+ let N = getInteger(this, ((d + "_") + z))
366+ if ($isInstanceOf(N, "Int"))
376367 then {
377- let N = M
378- N
368+ let O = N
369+ O
379370 }
380371 else 0
381372 }
382- let az = (ay + ak.amount)
383- let aA = {
384- let M = getInteger(this, "Deposit_Counter_ID")
385- if ($isInstanceOf(M, "Int"))
373+ let aA = (az + al.amount)
374+ let aB = {
375+ let N = getInteger(this, "Deposit_Counter_ID")
376+ if ($isInstanceOf(N, "Int"))
386377 then {
387- let N = M
388- N
378+ let O = N
379+ O
389380 }
390381 else 0
391382 }
392- let aB = (aA + 1)
383+ let aC = (aB + 1)
393384 if ((c > lastBlock.timestamp))
394385 then throw((e + toString(c)))
395386 else if ((n == 1))
396387 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
397388 else if ((A == "Yes"))
398389 then throw((z + " Address is Blacklisted. Please contact Admin to Whitelist it."))
399- else if (isDefined(ak.assetId))
390+ else if (isDefined(al.assetId))
400391 then throw("Only WAVES is allowed to deposit at the moment")
401- else [IntegerEntry(((d + "_") + z), az), IntegerEntry(((((toString(aB) + "_") + d) + "_") + z), ak.amount), IntegerEntry("Deposit_Counter_ID", aB)]
392+ else [IntegerEntry(((d + "_") + z), aA), IntegerEntry(((((toString(aC) + "_") + d) + "_") + z), al.amount), IntegerEntry("Deposit_Counter_ID", aC)]
402393 }
403394
404395
405396
406397 @Callable(o)
407398 func WithdrawUserFunds (s,p) = {
408399 let z = toBase58String(o.caller.bytes)
409- let aC = getIntegerValue(((d + "_") + s))
410- let D = ((aC - p) - j)
411- let aD = 10000000
400+ let aD = getIntegerValue(((d + "_") + s))
401+ let D = ((aD - p) - j)
402+ let aE = 10000000
412403 if ((o.caller != h))
413404 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
414405 else if ((n == 1))
415406 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
416- else if ((aD > p))
417- then throw((("Minimum Withdraw Amount is " + toString(aD)) + "/10^8] WAVES."))
407+ else if ((aE > p))
408+ then throw((("Minimum Withdraw Amount is " + toString(aE)) + "/10^8] WAVES."))
418409 else if ((0 > D))
419410 then throw((("Placed Withdraw Amount is going in negative State of " + toString(D)) + "/10^8] WAVES."))
420- else [IntegerEntry("Previous_Balance", aC), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
411+ else [IntegerEntry("Previous_Balance", aD), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
421412 }
422413
423414
424415
425416 @Callable(o)
426-func BlackListAddress (aE) = {
427- let A = getString(this, ("addr_BLACKLISTED_" + aE))
428- let aF = {
429- let M = getInteger(this, "Total_Black_Listed_Address")
430- if ($isInstanceOf(M, "Int"))
417+func BlackListAddress (aF) = {
418+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
419+ let aG = {
420+ let N = getInteger(this, "Total_Black_Listed_Address")
421+ if ($isInstanceOf(N, "Int"))
431422 then {
432- let N = M
433- N
423+ let O = N
424+ O
434425 }
435426 else 0
436427 }
437- let aG = (aF + 1)
428+ let aH = (aG + 1)
438429 if ((c > lastBlock.timestamp))
439430 then throw((e + toString(c)))
440431 else if ((o.caller != h))
441432 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
442433 else if ((n == 1))
443434 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
444435 else if ((A == "Yes"))
445436 then throw("Address is already available in Blacklist.")
446- else [StringEntry(("addr_BLACKLISTED_" + aE), "Yes"), IntegerEntry("Total_Black_Listed_Address", aG)]
437+ else [StringEntry(("addr_BLACKLISTED_" + aF), "Yes"), IntegerEntry("Total_Black_Listed_Address", aH)]
447438 }
448439
449440
450441
451442 @Callable(o)
452-func DeleteBlackListAddress (aE) = {
453- let A = getString(this, ("addr_BLACKLISTED_" + aE))
454- let aF = {
455- let M = getInteger(this, "Total_Black_Listed_Address")
456- if ($isInstanceOf(M, "Int"))
443+func DeleteBlackListAddress (aF) = {
444+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
445+ let aG = {
446+ let N = getInteger(this, "Total_Black_Listed_Address")
447+ if ($isInstanceOf(N, "Int"))
457448 then {
458- let N = M
459- N
449+ let O = N
450+ O
460451 }
461452 else 0
462453 }
463- let aG = (aF - 1)
454+ let aH = (aG - 1)
464455 if ((c > lastBlock.timestamp))
465456 then throw(("Product Launch Timestamp is set at " + toString(c)))
466457 else if ((o.caller != h))
467458 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
468459 else if ((n == 1))
469460 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
470461 else if ((A == "Yes"))
471- then [DeleteEntry(("addr_BLACKLISTED_" + aE)), IntegerEntry("Total_Black_Listed_Address", aG)]
462+ then [DeleteEntry(("addr_BLACKLISTED_" + aF)), IntegerEntry("Total_Black_Listed_Address", aH)]
472463 else throw("Address is not available in Blacklist.")
473464 }
474465
475466
476467
477468 @Callable(o)
478469 func Initiate_Contract_Shutdown () = {
479- let aH = {
480- let M = getInteger(this, "Shutdown_Status")
481- if ($isInstanceOf(M, "Int"))
470+ let aI = {
471+ let N = getInteger(this, "Shutdown_Status")
472+ if ($isInstanceOf(N, "Int"))
482473 then {
483- let N = M
484- N
474+ let O = N
475+ O
485476 }
486477 else 0
487478 }
488479 if ((o.caller != h))
489480 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
490- else if ((aH == 0))
481+ else if ((aI == 0))
491482 then [IntegerEntry("Shutdown_Status", 1)]
492483 else [IntegerEntry("Shutdown_Status", 0)]
493484 }
494485
495486
496487
497488 @Callable(o)
498-func Del (aI) = [DeleteEntry(aI)]
489+func Del (aJ) = [DeleteEntry(aJ)]
499490
500491
501-@Verifier(aJ)
502-func aK () = {
503- let M = aJ
504- if (if ($isInstanceOf(M, "Order"))
492+@Verifier(aK)
493+func aL () = {
494+ let N = aK
495+ if (if ($isInstanceOf(N, "Order"))
505496 then true
506- else if ($isInstanceOf(M, "ExchangeTransaction"))
497+ else if ($isInstanceOf(N, "ExchangeTransaction"))
507498 then true
508- else if ($isInstanceOf(M, "MassTransferTransaction"))
499+ else if ($isInstanceOf(N, "MassTransferTransaction"))
509500 then true
510- else $isInstanceOf(M, "TransferTransaction"))
501+ else $isInstanceOf(N, "TransferTransaction"))
511502 then {
512- let aL = M
503+ let aM = N
513504 false
514505 }
515- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
506+ else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
516507 }
517508

github/deemru/w8io/169f3d6 
160.80 ms