occam-furtle 2.0.280 → 2.0.283

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/README.md +0 -11
  2. package/lib/constants.js +29 -1
  3. package/lib/context/block.js +15 -1
  4. package/lib/context/file.js +129 -52
  5. package/lib/element/assignment/array.js +186 -0
  6. package/lib/element/assignment/object.js +244 -0
  7. package/lib/element/assignment/variable.js +144 -0
  8. package/lib/element/assignments/variable.js +158 -0
  9. package/lib/element/block/return.js +198 -0
  10. package/lib/element/comparison.js +179 -0
  11. package/lib/element/declaration/procedure.js +139 -0
  12. package/lib/{dom → element}/error.js +12 -4
  13. package/lib/element/every.js +179 -0
  14. package/lib/element/expression/bitwise.js +186 -0
  15. package/lib/element/expression/bracketed.js +149 -0
  16. package/lib/element/expression/negated.js +166 -0
  17. package/lib/element/expression.js +578 -0
  18. package/lib/element/expressions.js +210 -0
  19. package/lib/{dom → element}/label.js +4 -4
  20. package/lib/element/parameter/named.js +198 -0
  21. package/lib/element/parameter.js +165 -0
  22. package/lib/element/parameters/named.js +220 -0
  23. package/lib/element/parameters.js +198 -0
  24. package/lib/element/procedure/anonymous.js +181 -0
  25. package/lib/element/procedure.js +212 -0
  26. package/lib/element/procedureCall.js +166 -0
  27. package/lib/element/query/node.js +186 -0
  28. package/lib/element/query/nodes.js +179 -0
  29. package/lib/element/reduce.js +181 -0
  30. package/lib/element/reference.js +138 -0
  31. package/lib/element/some.js +179 -0
  32. package/lib/element/statement/return.js +138 -0
  33. package/lib/element/step.js +154 -0
  34. package/lib/element/ternary.js +171 -0
  35. package/lib/element/variable.js +279 -0
  36. package/lib/elements.js +27 -0
  37. package/lib/index.js +13 -5
  38. package/lib/log.js +202 -0
  39. package/lib/preamble.js +32 -32
  40. package/lib/process/verify.js +289 -0
  41. package/lib/utilities/context.js +46 -5
  42. package/lib/utilities/element.js +3 -0
  43. package/lib/utilities/node.js +71 -0
  44. package/package.json +3 -1
  45. package/src/constants.js +16 -0
  46. package/src/context/block.js +10 -0
  47. package/src/context/file.js +97 -55
  48. package/src/{dom → element}/assignment/array.js +6 -6
  49. package/src/{dom → element}/assignment/object.js +8 -8
  50. package/src/{dom → element}/assignment/variable.js +4 -4
  51. package/src/{dom → element}/assignments/variable.js +5 -5
  52. package/src/{dom → element}/block/return.js +5 -5
  53. package/src/{dom → element}/comparison.js +5 -5
  54. package/src/{dom → element}/declaration/procedure.js +22 -4
  55. package/src/{dom → element}/error.js +13 -4
  56. package/src/{dom → element}/every.js +6 -6
  57. package/src/{dom → element}/expression/bitwise.js +5 -5
  58. package/src/{dom → element}/expression/bracketed.js +4 -4
  59. package/src/{dom → element}/expression/negated.js +5 -5
  60. package/src/{dom → element}/expression.js +4 -4
  61. package/src/{dom → element}/expressions.js +6 -6
  62. package/src/{dom → element}/label.js +4 -4
  63. package/src/{dom → element}/parameter/named.js +4 -4
  64. package/src/{dom → element}/parameter.js +4 -4
  65. package/src/{dom → element}/parameters/named.js +5 -5
  66. package/src/{dom → element}/parameters.js +5 -5
  67. package/src/{dom → element}/procedure/anonymous.js +4 -4
  68. package/src/{dom → element}/procedure.js +5 -5
  69. package/src/{dom → element}/procedureCall.js +4 -4
  70. package/src/{dom → element}/query/node.js +5 -5
  71. package/src/{dom → element}/query/nodes.js +5 -5
  72. package/src/{dom → element}/reduce.js +5 -5
  73. package/src/{dom → element}/reference.js +4 -4
  74. package/src/{dom → element}/some.js +6 -6
  75. package/src/{dom → element}/statement/return.js +4 -4
  76. package/src/{dom → element}/step.js +4 -4
  77. package/src/{dom → element}/ternary.js +4 -4
  78. package/src/{dom → element}/variable.js +5 -5
  79. package/src/elements.js +13 -0
  80. package/src/index.js +6 -2
  81. package/src/log.js +139 -0
  82. package/src/preamble.js +31 -31
  83. package/src/process/verify.js +157 -0
  84. package/src/utilities/context.js +45 -2
  85. package/src/utilities/element.js +0 -0
  86. package/src/utilities/{string.js → node.js} +9 -14
  87. package/test/Free and bound variables.ftl +112 -0
  88. package/test/context/file.js +127 -0
  89. package/{src/example → test}/context/release.js +60 -12
  90. package/test/helpers/constants.js +17 -0
  91. package/{src/example/utilities → test/helpers}/expressions.js +8 -4
  92. package/{src/example/utilities → test/helpers}/furtle.js +8 -4
  93. package/{src/example/utilities → test/helpers}/grammar.js +8 -4
  94. package/{src/example/utilities → test/helpers}/nominal.js +10 -5
  95. package/{src/example/utilities → test/helpers}/procedure.js +6 -2
  96. package/test/main.js +55 -0
  97. package/example/Free and bound variables.ftl +0 -75
  98. package/lib/dom/assignment/array.js +0 -186
  99. package/lib/dom/assignment/object.js +0 -244
  100. package/lib/dom/assignment/variable.js +0 -144
  101. package/lib/dom/assignments/variable.js +0 -158
  102. package/lib/dom/block/return.js +0 -198
  103. package/lib/dom/comparison.js +0 -179
  104. package/lib/dom/declaration/procedure.js +0 -125
  105. package/lib/dom/every.js +0 -179
  106. package/lib/dom/expression/bitwise.js +0 -186
  107. package/lib/dom/expression/bracketed.js +0 -149
  108. package/lib/dom/expression/negated.js +0 -166
  109. package/lib/dom/expression.js +0 -578
  110. package/lib/dom/expressions.js +0 -210
  111. package/lib/dom/parameter/named.js +0 -198
  112. package/lib/dom/parameter.js +0 -165
  113. package/lib/dom/parameters/named.js +0 -220
  114. package/lib/dom/parameters.js +0 -198
  115. package/lib/dom/procedure/anonymous.js +0 -181
  116. package/lib/dom/procedure.js +0 -212
  117. package/lib/dom/procedureCall.js +0 -166
  118. package/lib/dom/query/node.js +0 -186
  119. package/lib/dom/query/nodes.js +0 -179
  120. package/lib/dom/reduce.js +0 -181
  121. package/lib/dom/reference.js +0 -138
  122. package/lib/dom/some.js +0 -179
  123. package/lib/dom/statement/return.js +0 -138
  124. package/lib/dom/step.js +0 -154
  125. package/lib/dom/ternary.js +0 -171
  126. package/lib/dom/variable.js +0 -279
  127. package/lib/dom.js +0 -27
  128. package/lib/example/context/file.js +0 -130
  129. package/lib/example/context/release.js +0 -160
  130. package/lib/example/utilities/expressions.js +0 -29
  131. package/lib/example/utilities/furtle.js +0 -19
  132. package/lib/example/utilities/grammar.js +0 -26
  133. package/lib/example/utilities/nominal.js +0 -25
  134. package/lib/example/utilities/procedure.js +0 -18
  135. package/lib/utilities/string.js +0 -78
  136. package/src/dom.js +0 -13
  137. package/src/example/context/file.js +0 -69
  138. /package/{example → test}/customGrammars.json +0 -0
package/lib/log.js ADDED
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Log;
9
+ }
10
+ });
11
+ var _constants = require("./constants");
12
+ function _array_like_to_array(arr, len) {
13
+ if (len == null || len > arr.length) len = arr.length;
14
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15
+ return arr2;
16
+ }
17
+ function _array_with_holes(arr) {
18
+ if (Array.isArray(arr)) return arr;
19
+ }
20
+ function _class_call_check(instance, Constructor) {
21
+ if (!(instance instanceof Constructor)) {
22
+ throw new TypeError("Cannot call a class as a function");
23
+ }
24
+ }
25
+ function _defineProperties(target, props) {
26
+ for(var i = 0; i < props.length; i++){
27
+ var descriptor = props[i];
28
+ descriptor.enumerable = descriptor.enumerable || false;
29
+ descriptor.configurable = true;
30
+ if ("value" in descriptor) descriptor.writable = true;
31
+ Object.defineProperty(target, descriptor.key, descriptor);
32
+ }
33
+ }
34
+ function _create_class(Constructor, protoProps, staticProps) {
35
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
36
+ if (staticProps) _defineProperties(Constructor, staticProps);
37
+ return Constructor;
38
+ }
39
+ function _iterable_to_array_limit(arr, i) {
40
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
41
+ if (_i == null) return;
42
+ var _arr = [];
43
+ var _n = true;
44
+ var _d = false;
45
+ var _s, _e;
46
+ try {
47
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
48
+ _arr.push(_s.value);
49
+ if (i && _arr.length === i) break;
50
+ }
51
+ } catch (err) {
52
+ _d = true;
53
+ _e = err;
54
+ } finally{
55
+ try {
56
+ if (!_n && _i["return"] != null) _i["return"]();
57
+ } finally{
58
+ if (_d) throw _e;
59
+ }
60
+ }
61
+ return _arr;
62
+ }
63
+ function _non_iterable_rest() {
64
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
65
+ }
66
+ function _sliced_to_array(arr, i) {
67
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
68
+ }
69
+ function _unsupported_iterable_to_array(o, minLen) {
70
+ if (!o) return;
71
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
72
+ var n = Object.prototype.toString.call(o).slice(8, -1);
73
+ if (n === "Object" && o.constructor) n = o.constructor.name;
74
+ if (n === "Map" || n === "Set") return Array.from(n);
75
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
76
+ }
77
+ var _LEVELS = _sliced_to_array(_constants.LEVELS, 5), TRACE_LEVEL = _LEVELS[0], DEBUG_LEVEL = _LEVELS[1], INFO_LEVEL = _LEVELS[2], WARNING_LEVEL = _LEVELS[3], ERROR_LEVEL = _LEVELS[4];
78
+ var Log = /*#__PURE__*/ function() {
79
+ function Log(messages, logLevel, follow) {
80
+ _class_call_check(this, Log);
81
+ this.messages = messages;
82
+ this.logLevel = logLevel;
83
+ this.follow = follow;
84
+ }
85
+ _create_class(Log, [
86
+ {
87
+ key: "getMessages",
88
+ value: function getMessages() {
89
+ return this.messages;
90
+ }
91
+ },
92
+ {
93
+ key: "getLogLevel",
94
+ value: function getLogLevel() {
95
+ return this.logLevel;
96
+ }
97
+ },
98
+ {
99
+ key: "getFollow",
100
+ value: function getFollow() {
101
+ return this.follow;
102
+ }
103
+ },
104
+ {
105
+ key: "trace",
106
+ value: function trace(message) {
107
+ var filePath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
108
+ var level = TRACE_LEVEL;
109
+ this.write(level, message, filePath, lineIndex);
110
+ }
111
+ },
112
+ {
113
+ key: "debug",
114
+ value: function debug(message) {
115
+ var filePath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
116
+ var level = DEBUG_LEVEL;
117
+ this.write(level, message, filePath, lineIndex);
118
+ }
119
+ },
120
+ {
121
+ key: "info",
122
+ value: function info(message) {
123
+ var filePath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
124
+ var level = INFO_LEVEL;
125
+ this.write(level, message, filePath, lineIndex);
126
+ }
127
+ },
128
+ {
129
+ key: "warning",
130
+ value: function warning(message) {
131
+ var filePath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
132
+ var level = WARNING_LEVEL;
133
+ this.write(level, message, filePath, lineIndex);
134
+ }
135
+ },
136
+ {
137
+ key: "error",
138
+ value: function error(message) {
139
+ var filePath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
140
+ var level = ERROR_LEVEL;
141
+ this.write(level, message, filePath, lineIndex);
142
+ }
143
+ },
144
+ {
145
+ key: "write",
146
+ value: function write(level, message, filePath, lineIndex) {
147
+ var levelIndex = _constants.LEVELS.indexOf(level), logLevelIndex = _constants.LEVELS.indexOf(this.logLevel);
148
+ if (levelIndex < logLevelIndex) {
149
+ return;
150
+ }
151
+ message = formatMessage(level, message, filePath, lineIndex); ///
152
+ this.follow ? console.log(message) : this.messages.push(message);
153
+ }
154
+ }
155
+ ], [
156
+ {
157
+ key: "fromNothing",
158
+ value: function fromNothing() {
159
+ var messages = null, logLevel = TRACE_LEVEL, follow = true, log = new Log(messages, logLevel, follow);
160
+ return log;
161
+ }
162
+ },
163
+ {
164
+ key: "fromFollowAndLogLevel",
165
+ value: function fromFollowAndLogLevel(follow, logLevel) {
166
+ var messages = follow ? null : [], log = new Log(messages, logLevel, follow);
167
+ return log;
168
+ }
169
+ }
170
+ ]);
171
+ return Log;
172
+ }();
173
+ function formatMessage(level, message, filePath, lineIndex) {
174
+ var formattedMessage = _constants.EMPTY_STRING;
175
+ var leftPaddedLevel = leftPadLevel(level), upperCaseLeftPaddedLevel = leftPaddedLevel.toUpperCase();
176
+ formattedMessage += "".concat(upperCaseLeftPaddedLevel, ":");
177
+ if (filePath !== null) {
178
+ formattedMessage += " ".concat(filePath);
179
+ }
180
+ if (lineIndex !== null) {
181
+ var leftPaddedLineIndex = leftPadLineIndex(lineIndex);
182
+ formattedMessage += " [".concat(leftPaddedLineIndex, "]");
183
+ }
184
+ formattedMessage += " - ".concat(message);
185
+ message = formattedMessage; ///
186
+ return message;
187
+ }
188
+ function leftPadLineIndex(lineIndex) {
189
+ lineIndex = "".concat(lineIndex);
190
+ var maximumLength = _constants.LINE_INDEX_MAXIMUM_LENGTH, leftPaddedLineIndex = leftPad(lineIndex, maximumLength);
191
+ return leftPaddedLineIndex;
192
+ }
193
+ function leftPadLevel(level) {
194
+ var maximumLength = _constants.LEVEL_MAXIMUM_LENGTH, leftPaddedLevel = leftPad(level, maximumLength);
195
+ return leftPaddedLevel;
196
+ }
197
+ function leftPad(string, maximumLength) {
198
+ var stringLength = string.length, length = maximumLength - stringLength, indent = _constants.SINGLE_SPACE.repeat(length), leftPaddedString = "".concat(indent).concat(string);
199
+ return leftPaddedString;
200
+ }
201
+
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2cuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IExFVkVMUywgU0lOR0xFX1NQQUNFLCBFTVBUWV9TVFJJTkcsIExFVkVMX01BWElNVU1fTEVOR1RILCBMSU5FX0lOREVYX01BWElNVU1fTEVOR1RIIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IFsgVFJBQ0VfTEVWRUwsIERFQlVHX0xFVkVMLCBJTkZPX0xFVkVMLCBXQVJOSU5HX0xFVkVMLCBFUlJPUl9MRVZFTCBdID0gTEVWRUxTO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2cge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlcywgbG9nTGV2ZWwsIGZvbGxvdykge1xuICAgIHRoaXMubWVzc2FnZXMgPSBtZXNzYWdlcztcbiAgICB0aGlzLmxvZ0xldmVsID0gbG9nTGV2ZWw7XG4gICAgdGhpcy5mb2xsb3cgPSBmb2xsb3c7XG4gIH1cblxuICBnZXRNZXNzYWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcztcbiAgfVxuXG4gIGdldExvZ0xldmVsKCkge1xuICAgIHJldHVybiB0aGlzLmxvZ0xldmVsO1xuICB9XG5cbiAgZ2V0Rm9sbG93KCkge1xuICAgIHJldHVybiB0aGlzLmZvbGxvdztcbiAgfVxuXG4gIHRyYWNlKG1lc3NhZ2UsIGZpbGVQYXRoID0gbnVsbCwgbGluZUluZGV4ID0gbnVsbCkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4KTtcbiAgfVxuXG4gIGRlYnVnKG1lc3NhZ2UsIGZpbGVQYXRoID0gbnVsbCwgbGluZUluZGV4ID0gbnVsbCkge1xuICAgIGNvbnN0IGxldmVsID0gREVCVUdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4KTtcbiAgfVxuXG4gIGluZm8obWVzc2FnZSwgZmlsZVBhdGggPSBudWxsLCBsaW5lSW5kZXggPSBudWxsKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBJTkZPX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZShsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG4gIH1cblxuICB3YXJuaW5nKG1lc3NhZ2UsIGZpbGVQYXRoID0gbnVsbCwgbGluZUluZGV4ID0gbnVsbCkge1xuICAgIGNvbnN0IGxldmVsID0gV0FSTklOR19MRVZFTDtcblxuICAgIHRoaXMud3JpdGUobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuICB9XG5cbiAgZXJyb3IobWVzc2FnZSwgZmlsZVBhdGggPSBudWxsLCBsaW5lSW5kZXggPSBudWxsKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBFUlJPUl9MRVZFTDtcblxuICAgIHRoaXMud3JpdGUobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuICB9XG5cbiAgd3JpdGUobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpIHtcbiAgICBjb25zdCBsZXZlbEluZGV4ID0gTEVWRUxTLmluZGV4T2YobGV2ZWwpLFxuICAgICAgICAgIGxvZ0xldmVsSW5kZXggPSBMRVZFTFMuaW5kZXhPZih0aGlzLmxvZ0xldmVsKTtcblxuICAgIGlmIChsZXZlbEluZGV4IDwgbG9nTGV2ZWxJbmRleCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lc3NhZ2UgPSBmb3JtYXRNZXNzYWdlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4KTsgIC8vL1xuXG4gICAgdGhpcy5mb2xsb3cgP1xuICAgICAgY29uc29sZS5sb2cobWVzc2FnZSkgOlxuICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBudWxsLFxuICAgICAgICAgIGxvZ0xldmVsID0gVFJBQ0VfTEVWRUwsXG4gICAgICAgICAgZm9sbG93ID0gdHJ1ZSxcbiAgICAgICAgICBsb2cgPSBuZXcgTG9nKG1lc3NhZ2VzLCBsb2dMZXZlbCwgZm9sbG93KTtcblxuICAgIHJldHVybiBsb2c7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZvbGxvd0FuZExvZ0xldmVsKGZvbGxvdywgbG9nTGV2ZWwpIHtcbiAgICBjb25zdCBtZXNzYWdlcyA9IGZvbGxvdyA/XG4gICAgICAgICAgICAgICAgICAgICAgIG51bGwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgIGxvZyA9IG5ldyBMb2cobWVzc2FnZXMsIGxvZ0xldmVsLCBmb2xsb3cpO1xuXG4gICAgcmV0dXJuIGxvZztcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXRNZXNzYWdlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4KSB7XG4gIGxldCBmb3JtYXR0ZWRNZXNzYWdlID0gRU1QVFlfU1RSSU5HO1xuXG4gIGNvbnN0IGxlZnRQYWRkZWRMZXZlbCA9IGxlZnRQYWRMZXZlbChsZXZlbCksXG4gICAgICAgIHVwcGVyQ2FzZUxlZnRQYWRkZWRMZXZlbCA9IGxlZnRQYWRkZWRMZXZlbC50b1VwcGVyQ2FzZSgpO1xuXG4gIGZvcm1hdHRlZE1lc3NhZ2UgKz0gYCR7dXBwZXJDYXNlTGVmdFBhZGRlZExldmVsfTpgO1xuXG4gIGlmIChmaWxlUGF0aCAhPT0gbnVsbCkge1xuICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gYCAke2ZpbGVQYXRofWA7XG4gIH1cblxuICBpZiAobGluZUluZGV4ICE9PSBudWxsKSB7XG4gICAgY29uc3QgbGVmdFBhZGRlZExpbmVJbmRleCA9IGxlZnRQYWRMaW5lSW5kZXgobGluZUluZGV4KTtcblxuICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gYCBbJHtsZWZ0UGFkZGVkTGluZUluZGV4fV1gO1xuICB9XG5cbiAgZm9ybWF0dGVkTWVzc2FnZSArPSBgIC0gJHttZXNzYWdlfWA7XG5cbiAgbWVzc2FnZSA9IGZvcm1hdHRlZE1lc3NhZ2U7IC8vL1xuXG4gIHJldHVybiBtZXNzYWdlO1xufVxuXG5mdW5jdGlvbiBsZWZ0UGFkTGluZUluZGV4KGxpbmVJbmRleCkge1xuICBsaW5lSW5kZXggPSBgJHtsaW5lSW5kZXh9YDtcblxuICBjb25zdCBtYXhpbXVtTGVuZ3RoID0gTElORV9JTkRFWF9NQVhJTVVNX0xFTkdUSCxcbiAgICAgICAgbGVmdFBhZGRlZExpbmVJbmRleCA9IGxlZnRQYWQobGluZUluZGV4LCBtYXhpbXVtTGVuZ3RoKTtcblxuICByZXR1cm4gbGVmdFBhZGRlZExpbmVJbmRleDtcbn1cblxuZnVuY3Rpb24gbGVmdFBhZExldmVsKGxldmVsKSB7XG4gIGNvbnN0IG1heGltdW1MZW5ndGggPSBMRVZFTF9NQVhJTVVNX0xFTkdUSCxcbiAgICAgICAgbGVmdFBhZGRlZExldmVsID0gbGVmdFBhZChsZXZlbCwgbWF4aW11bUxlbmd0aCk7XG5cbiAgcmV0dXJuIGxlZnRQYWRkZWRMZXZlbDtcbn1cblxuZnVuY3Rpb24gbGVmdFBhZChzdHJpbmcsIG1heGltdW1MZW5ndGgpIHtcbiAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aCxcbiAgICAgICAgbGVuZ3RoID0gbWF4aW11bUxlbmd0aCAtIHN0cmluZ0xlbmd0aCxcbiAgICAgICAgaW5kZW50ID0gU0lOR0xFX1NQQUNFLnJlcGVhdChsZW5ndGgpLFxuICAgICAgICBsZWZ0UGFkZGVkU3RyaW5nID0gYCR7aW5kZW50fSR7c3RyaW5nfWA7XG5cbiAgcmV0dXJuIGxlZnRQYWRkZWRTdHJpbmc7XG59XG5cbiJdLCJuYW1lcyI6WyJMb2ciLCJMRVZFTFMiLCJUUkFDRV9MRVZFTCIsIkRFQlVHX0xFVkVMIiwiSU5GT19MRVZFTCIsIldBUk5JTkdfTEVWRUwiLCJFUlJPUl9MRVZFTCIsIm1lc3NhZ2VzIiwibG9nTGV2ZWwiLCJmb2xsb3ciLCJnZXRNZXNzYWdlcyIsImdldExvZ0xldmVsIiwiZ2V0Rm9sbG93IiwidHJhY2UiLCJtZXNzYWdlIiwiZmlsZVBhdGgiLCJsaW5lSW5kZXgiLCJsZXZlbCIsIndyaXRlIiwiZGVidWciLCJpbmZvIiwid2FybmluZyIsImVycm9yIiwibGV2ZWxJbmRleCIsImluZGV4T2YiLCJsb2dMZXZlbEluZGV4IiwiZm9ybWF0TWVzc2FnZSIsImNvbnNvbGUiLCJsb2ciLCJwdXNoIiwiZnJvbU5vdGhpbmciLCJmcm9tRm9sbG93QW5kTG9nTGV2ZWwiLCJmb3JtYXR0ZWRNZXNzYWdlIiwiRU1QVFlfU1RSSU5HIiwibGVmdFBhZGRlZExldmVsIiwibGVmdFBhZExldmVsIiwidXBwZXJDYXNlTGVmdFBhZGRlZExldmVsIiwidG9VcHBlckNhc2UiLCJsZWZ0UGFkZGVkTGluZUluZGV4IiwibGVmdFBhZExpbmVJbmRleCIsIm1heGltdW1MZW5ndGgiLCJMSU5FX0lOREVYX01BWElNVU1fTEVOR1RIIiwibGVmdFBhZCIsIkxFVkVMX01BWElNVU1fTEVOR1RIIiwic3RyaW5nIiwic3RyaW5nTGVuZ3RoIiwibGVuZ3RoIiwiaW5kZW50IiwiU0lOR0xFX1NQQUNFIiwicmVwZWF0IiwibGVmdFBhZGRlZFN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7eUJBSitFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEcsSUFBNkVDLDJCQUFBQSxpQkFBTSxNQUEzRUMsY0FBcUVELFlBQXhERSxjQUF3REYsWUFBM0NHLGFBQTJDSCxZQUEvQkksZ0JBQStCSixZQUFoQkssY0FBZ0JMO0FBRTlELElBQUEsQUFBTUQsb0JBQU47YUFBTUEsSUFDUE8sUUFBUSxFQUFFQyxRQUFRLEVBQUVDLE1BQU07Z0NBRG5CVDtRQUVqQixJQUFJLENBQUNPLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTs7a0JBSkdUOztZQU9u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
package/lib/preamble.js CHANGED
@@ -2,41 +2,41 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- var _step = /*#__PURE__*/ _interop_require_default(require("./dom/step"));
6
- var _some = /*#__PURE__*/ _interop_require_default(require("./dom/some"));
7
- var _label = /*#__PURE__*/ _interop_require_default(require("./dom/label"));
8
- var _error = /*#__PURE__*/ _interop_require_default(require("./dom/error"));
9
- var _every = /*#__PURE__*/ _interop_require_default(require("./dom/every"));
10
- var _reduce = /*#__PURE__*/ _interop_require_default(require("./dom/reduce"));
11
- var _ternary = /*#__PURE__*/ _interop_require_default(require("./dom/ternary"));
12
- var _variable = /*#__PURE__*/ _interop_require_default(require("./dom/variable"));
13
- var _reference = /*#__PURE__*/ _interop_require_default(require("./dom/reference"));
14
- var _procedure = /*#__PURE__*/ _interop_require_default(require("./dom/procedure"));
15
- var _node = /*#__PURE__*/ _interop_require_default(require("./dom/query/node"));
16
- var _parameter = /*#__PURE__*/ _interop_require_default(require("./dom/parameter"));
17
- var _parameters = /*#__PURE__*/ _interop_require_default(require("./dom/parameters"));
18
- var _nodes = /*#__PURE__*/ _interop_require_default(require("./dom/query/nodes"));
19
- var _comparison = /*#__PURE__*/ _interop_require_default(require("./dom/comparison"));
20
- var _expression = /*#__PURE__*/ _interop_require_default(require("./dom/expression"));
21
- var _expressions = /*#__PURE__*/ _interop_require_default(require("./dom/expressions"));
22
- var _return = /*#__PURE__*/ _interop_require_default(require("./dom/block/return"));
23
- var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./dom/procedureCall"));
24
- var _named = /*#__PURE__*/ _interop_require_default(require("./dom/parameter/named"));
25
- var _array = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/array"));
26
- var _return1 = /*#__PURE__*/ _interop_require_default(require("./dom/statement/return"));
27
- var _named1 = /*#__PURE__*/ _interop_require_default(require("./dom/parameters/named"));
28
- var _object = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/object"));
29
- var _negated = /*#__PURE__*/ _interop_require_default(require("./dom/expression/negated"));
30
- var _bitwise = /*#__PURE__*/ _interop_require_default(require("./dom/expression/bitwise"));
31
- var _anonymous = /*#__PURE__*/ _interop_require_default(require("./dom/procedure/anonymous"));
32
- var _variable1 = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/variable"));
33
- var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/expression/bracketed"));
34
- var _variable2 = /*#__PURE__*/ _interop_require_default(require("./dom/assignments/variable"));
35
- var _procedure1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/procedure"));
5
+ var _step = /*#__PURE__*/ _interop_require_default(require("./element/step"));
6
+ var _some = /*#__PURE__*/ _interop_require_default(require("./element/some"));
7
+ var _label = /*#__PURE__*/ _interop_require_default(require("./element/label"));
8
+ var _error = /*#__PURE__*/ _interop_require_default(require("./element/error"));
9
+ var _every = /*#__PURE__*/ _interop_require_default(require("./element/every"));
10
+ var _reduce = /*#__PURE__*/ _interop_require_default(require("./element/reduce"));
11
+ var _ternary = /*#__PURE__*/ _interop_require_default(require("./element/ternary"));
12
+ var _variable = /*#__PURE__*/ _interop_require_default(require("./element/variable"));
13
+ var _reference = /*#__PURE__*/ _interop_require_default(require("./element/reference"));
14
+ var _procedure = /*#__PURE__*/ _interop_require_default(require("./element/procedure"));
15
+ var _node = /*#__PURE__*/ _interop_require_default(require("./element/query/node"));
16
+ var _parameter = /*#__PURE__*/ _interop_require_default(require("./element/parameter"));
17
+ var _parameters = /*#__PURE__*/ _interop_require_default(require("./element/parameters"));
18
+ var _nodes = /*#__PURE__*/ _interop_require_default(require("./element/query/nodes"));
19
+ var _comparison = /*#__PURE__*/ _interop_require_default(require("./element/comparison"));
20
+ var _expression = /*#__PURE__*/ _interop_require_default(require("./element/expression"));
21
+ var _expressions = /*#__PURE__*/ _interop_require_default(require("./element/expressions"));
22
+ var _return = /*#__PURE__*/ _interop_require_default(require("./element/block/return"));
23
+ var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./element/procedureCall"));
24
+ var _named = /*#__PURE__*/ _interop_require_default(require("./element/parameter/named"));
25
+ var _array = /*#__PURE__*/ _interop_require_default(require("./element/assignment/array"));
26
+ var _return1 = /*#__PURE__*/ _interop_require_default(require("./element/statement/return"));
27
+ var _named1 = /*#__PURE__*/ _interop_require_default(require("./element/parameters/named"));
28
+ var _object = /*#__PURE__*/ _interop_require_default(require("./element/assignment/object"));
29
+ var _negated = /*#__PURE__*/ _interop_require_default(require("./element/expression/negated"));
30
+ var _bitwise = /*#__PURE__*/ _interop_require_default(require("./element/expression/bitwise"));
31
+ var _anonymous = /*#__PURE__*/ _interop_require_default(require("./element/procedure/anonymous"));
32
+ var _variable1 = /*#__PURE__*/ _interop_require_default(require("./element/assignment/variable"));
33
+ var _bracketed = /*#__PURE__*/ _interop_require_default(require("./element/expression/bracketed"));
34
+ var _variable2 = /*#__PURE__*/ _interop_require_default(require("./element/assignments/variable"));
35
+ var _procedure1 = /*#__PURE__*/ _interop_require_default(require("./element/declaration/procedure"));
36
36
  function _interop_require_default(obj) {
37
37
  return obj && obj.__esModule ? obj : {
38
38
  default: obj
39
39
  };
40
40
  }
41
41
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVhbWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBTb21lIGZyb20gXCIuL2RvbS9zb21lXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZG9tL2xhYmVsXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZG9tL2Vycm9yXCI7XG5pbXBvcnQgRXZlcnkgZnJvbSBcIi4vZG9tL2V2ZXJ5XCI7XG5pbXBvcnQgUmVkdWNlIGZyb20gXCIuL2RvbS9yZWR1Y2VcIjtcbmltcG9ydCBUZXJuYXJ5IGZyb20gXCIuL2RvbS90ZXJuYXJ5XCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4vZG9tL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuL2RvbS9yZWZlcmVuY2VcIjtcbmltcG9ydCBQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZVwiO1xuaW1wb3J0IE5vZGVRdWVyeSBmcm9tIFwiLi9kb20vcXVlcnkvbm9kZVwiO1xuaW1wb3J0IFBhcmFtZXRlciBmcm9tIFwiLi9kb20vcGFyYW1ldGVyXCI7XG5pbXBvcnQgUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVyc1wiO1xuaW1wb3J0IE5vZGVzUXVlcnkgZnJvbSBcIi4vZG9tL3F1ZXJ5L25vZGVzXCI7XG5pbXBvcnQgQ29tcGFyaXNvbiBmcm9tIFwiLi9kb20vY29tcGFyaXNvblwiO1xuaW1wb3J0IEV4cHJlc3Npb24gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb25cIjtcbmltcG9ydCBFeHByZXNzaW9ucyBmcm9tIFwiLi9kb20vZXhwcmVzc2lvbnNcIjtcbmltcG9ydCBSZXR1cm5CbG9jayBmcm9tIFwiLi9kb20vYmxvY2svcmV0dXJuXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9kb20vcHJvY2VkdXJlQ2FsbFwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVyIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXIvbmFtZWRcIjtcbmltcG9ydCBBcnJheUFzc2lnbWVudCBmcm9tIFwiLi9kb20vYXNzaWdubWVudC9hcnJheVwiO1xuaW1wb3J0IFJldHVyblN0YXRlbWVudCBmcm9tIFwiLi9kb20vc3RhdGVtZW50L3JldHVyblwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVycy9uYW1lZFwiO1xuaW1wb3J0IE9iamVjdEFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvb2JqZWN0XCI7XG5pbXBvcnQgTmVnYXRlZEV4cHJlc3Npb24gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb24vbmVnYXRlZFwiO1xuaW1wb3J0IEJpdHdpc2VFeHByZXNzaW9uIGZyb20gXCIuL2RvbS9leHByZXNzaW9uL2JpdHdpc2VcIjtcbmltcG9ydCBBbm9ueW1vdXNQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZS9hbm9ueW1vdXNcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvdmFyaWFibGVcIjtcbmltcG9ydCBCcmFja2V0ZWRFeHByZXNzaW9uIGZyb20gXCIuL2RvbS9leHByZXNzaW9uL2JyYWNrZXRlZFwiO1xuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudHMgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnRzL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUHJvY2VkdXJlRGVjbGFyYXRpb24gZnJvbSBcIi4vZG9tL2RlY2xhcmF0aW9uL3Byb2NlZHVyZVwiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OzJEQUVpQjsyREFDQTs0REFDQzs0REFDQTs0REFDQTs2REFDQzs4REFDQzsrREFDQztnRUFDQztnRUFDQTsyREFDQTtnRUFDQTtpRUFDQzs0REFDQTtpRUFDQTtpRUFDQTtrRUFDQzs2REFDQTtvRUFDRTs0REFDQzs0REFDQTs4REFDQzs2REFDQTs2REFDQzs4REFDQzs4REFDQTtnRUFDQztnRUFDQTtnRUFDQztnRUFDQTtpRUFDQyJ9
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVhbWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZWxlbWVudC9zdGVwXCI7XG5pbXBvcnQgU29tZSBmcm9tIFwiLi9lbGVtZW50L3NvbWVcIjtcbmltcG9ydCBMYWJlbCBmcm9tIFwiLi9lbGVtZW50L2xhYmVsXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZWxlbWVudC9lcnJvclwiO1xuaW1wb3J0IEV2ZXJ5IGZyb20gXCIuL2VsZW1lbnQvZXZlcnlcIjtcbmltcG9ydCBSZWR1Y2UgZnJvbSBcIi4vZWxlbWVudC9yZWR1Y2VcIjtcbmltcG9ydCBUZXJuYXJ5IGZyb20gXCIuL2VsZW1lbnQvdGVybmFyeVwiO1xuaW1wb3J0IFZhcmlhYmxlIGZyb20gXCIuL2VsZW1lbnQvdmFyaWFibGVcIjtcbmltcG9ydCBSZWZlcmVuY2UgZnJvbSBcIi4vZWxlbWVudC9yZWZlcmVuY2VcIjtcbmltcG9ydCBQcm9jZWR1cmUgZnJvbSBcIi4vZWxlbWVudC9wcm9jZWR1cmVcIjtcbmltcG9ydCBOb2RlUXVlcnkgZnJvbSBcIi4vZWxlbWVudC9xdWVyeS9ub2RlXCI7XG5pbXBvcnQgUGFyYW1ldGVyIGZyb20gXCIuL2VsZW1lbnQvcGFyYW1ldGVyXCI7XG5pbXBvcnQgUGFyYW1ldGVycyBmcm9tIFwiLi9lbGVtZW50L3BhcmFtZXRlcnNcIjtcbmltcG9ydCBOb2Rlc1F1ZXJ5IGZyb20gXCIuL2VsZW1lbnQvcXVlcnkvbm9kZXNcIjtcbmltcG9ydCBDb21wYXJpc29uIGZyb20gXCIuL2VsZW1lbnQvY29tcGFyaXNvblwiO1xuaW1wb3J0IEV4cHJlc3Npb24gZnJvbSBcIi4vZWxlbWVudC9leHByZXNzaW9uXCI7XG5pbXBvcnQgRXhwcmVzc2lvbnMgZnJvbSBcIi4vZWxlbWVudC9leHByZXNzaW9uc1wiO1xuaW1wb3J0IFJldHVybkJsb2NrIGZyb20gXCIuL2VsZW1lbnQvYmxvY2svcmV0dXJuXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9lbGVtZW50L3Byb2NlZHVyZUNhbGxcIjtcbmltcG9ydCBOYW1lZFBhcmFtZXRlciBmcm9tIFwiLi9lbGVtZW50L3BhcmFtZXRlci9uYW1lZFwiO1xuaW1wb3J0IEFycmF5QXNzaWdtZW50IGZyb20gXCIuL2VsZW1lbnQvYXNzaWdubWVudC9hcnJheVwiO1xuaW1wb3J0IFJldHVyblN0YXRlbWVudCBmcm9tIFwiLi9lbGVtZW50L3N0YXRlbWVudC9yZXR1cm5cIjtcbmltcG9ydCBOYW1lZFBhcmFtZXRlcnMgZnJvbSBcIi4vZWxlbWVudC9wYXJhbWV0ZXJzL25hbWVkXCI7XG5pbXBvcnQgT2JqZWN0QXNzaWdubWVudCBmcm9tIFwiLi9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0XCI7XG5pbXBvcnQgTmVnYXRlZEV4cHJlc3Npb24gZnJvbSBcIi4vZWxlbWVudC9leHByZXNzaW9uL25lZ2F0ZWRcIjtcbmltcG9ydCBCaXR3aXNlRXhwcmVzc2lvbiBmcm9tIFwiLi9lbGVtZW50L2V4cHJlc3Npb24vYml0d2lzZVwiO1xuaW1wb3J0IEFub255bW91c1Byb2NlZHVyZSBmcm9tIFwiLi9lbGVtZW50L3Byb2NlZHVyZS9hbm9ueW1vdXNcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4vZWxlbWVudC9hc3NpZ25tZW50L3ZhcmlhYmxlXCI7XG5pbXBvcnQgQnJhY2tldGVkRXhwcmVzc2lvbiBmcm9tIFwiLi9lbGVtZW50L2V4cHJlc3Npb24vYnJhY2tldGVkXCI7XG5pbXBvcnQgVmFyaWFibGVBc3NpZ25tZW50cyBmcm9tIFwiLi9lbGVtZW50L2Fzc2lnbm1lbnRzL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUHJvY2VkdXJlRGVjbGFyYXRpb24gZnJvbSBcIi4vZWxlbWVudC9kZWNsYXJhdGlvbi9wcm9jZWR1cmVcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OzsyREFFaUI7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NkRBQ0M7OERBQ0M7K0RBQ0M7Z0VBQ0M7Z0VBQ0E7MkRBQ0E7Z0VBQ0E7aUVBQ0M7NERBQ0E7aUVBQ0E7aUVBQ0E7a0VBQ0M7NkRBQ0E7b0VBQ0U7NERBQ0M7NERBQ0E7OERBQ0M7NkRBQ0E7NkRBQ0M7OERBQ0M7OERBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0M7Z0VBQ0E7aUVBQ0MifQ==
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "verifyFile", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return verifyFile;
9
+ }
10
+ });
11
+ var _query = require("../utilities/query");
12
+ var _elements = /*#__PURE__*/ _interop_require_default(require("../elements"));
13
+ function _array_like_to_array(arr, len) {
14
+ if (len == null || len > arr.length) len = arr.length;
15
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
16
+ return arr2;
17
+ }
18
+ function _array_without_holes(arr) {
19
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
20
+ }
21
+ function _assert_this_initialized(self) {
22
+ if (self === void 0) {
23
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
24
+ }
25
+ return self;
26
+ }
27
+ function _call_super(_this, derived, args) {
28
+ derived = _get_prototype_of(derived);
29
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
30
+ }
31
+ function _class_call_check(instance, Constructor) {
32
+ if (!(instance instanceof Constructor)) {
33
+ throw new TypeError("Cannot call a class as a function");
34
+ }
35
+ }
36
+ function _defineProperties(target, props) {
37
+ for(var i = 0; i < props.length; i++){
38
+ var descriptor = props[i];
39
+ descriptor.enumerable = descriptor.enumerable || false;
40
+ descriptor.configurable = true;
41
+ if ("value" in descriptor) descriptor.writable = true;
42
+ Object.defineProperty(target, descriptor.key, descriptor);
43
+ }
44
+ }
45
+ function _create_class(Constructor, protoProps, staticProps) {
46
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
47
+ if (staticProps) _defineProperties(Constructor, staticProps);
48
+ return Constructor;
49
+ }
50
+ function _define_property(obj, key, value) {
51
+ if (key in obj) {
52
+ Object.defineProperty(obj, key, {
53
+ value: value,
54
+ enumerable: true,
55
+ configurable: true,
56
+ writable: true
57
+ });
58
+ } else {
59
+ obj[key] = value;
60
+ }
61
+ return obj;
62
+ }
63
+ function _get_prototype_of(o) {
64
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
65
+ return o.__proto__ || Object.getPrototypeOf(o);
66
+ };
67
+ return _get_prototype_of(o);
68
+ }
69
+ function _inherits(subClass, superClass) {
70
+ if (typeof superClass !== "function" && superClass !== null) {
71
+ throw new TypeError("Super expression must either be null or a function");
72
+ }
73
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
74
+ constructor: {
75
+ value: subClass,
76
+ writable: true,
77
+ configurable: true
78
+ }
79
+ });
80
+ if (superClass) _set_prototype_of(subClass, superClass);
81
+ }
82
+ function _interop_require_default(obj) {
83
+ return obj && obj.__esModule ? obj : {
84
+ default: obj
85
+ };
86
+ }
87
+ function _iterable_to_array(iter) {
88
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
89
+ }
90
+ function _non_iterable_spread() {
91
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
92
+ }
93
+ function _possible_constructor_return(self, call) {
94
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
95
+ return call;
96
+ }
97
+ return _assert_this_initialized(self);
98
+ }
99
+ function _set_prototype_of(o, p) {
100
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
101
+ o.__proto__ = p;
102
+ return o;
103
+ };
104
+ return _set_prototype_of(o, p);
105
+ }
106
+ function _to_consumable_array(arr) {
107
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
108
+ }
109
+ function _type_of(obj) {
110
+ "@swc/helpers - typeof";
111
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
112
+ }
113
+ function _unsupported_iterable_to_array(o, minLen) {
114
+ if (!o) return;
115
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
116
+ var n = Object.prototype.toString.call(o).slice(8, -1);
117
+ if (n === "Object" && o.constructor) n = o.constructor.name;
118
+ if (n === "Map" || n === "Set") return Array.from(n);
119
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
120
+ }
121
+ function _is_native_reflect_construct() {
122
+ try {
123
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
124
+ } catch (_) {}
125
+ return (_is_native_reflect_construct = function() {
126
+ return !!result;
127
+ })();
128
+ }
129
+ var nonTerminalNodeQuery = (0, _query.nodeQuery)("/*"), errorNodeQuery = (0, _query.nodeQuery)("/error"), procedureDeclarationNodeQuery = (0, _query.nodeQuery)("/procedureDeclaration");
130
+ var Pass = /*#__PURE__*/ function() {
131
+ function Pass() {
132
+ _class_call_check(this, Pass);
133
+ }
134
+ _create_class(Pass, [
135
+ {
136
+ key: "run",
137
+ value: function run(node) {
138
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
139
+ remainingArguments[_key - 1] = arguments[_key];
140
+ }
141
+ var success;
142
+ var visited = this.visitNode.apply(this, [
143
+ node
144
+ ].concat(_to_consumable_array(remainingArguments)));
145
+ success = visited; ///
146
+ return success;
147
+ }
148
+ },
149
+ {
150
+ key: "descend",
151
+ value: function descend(childNodes) {
152
+ var _this = this;
153
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
154
+ remainingArguments[_key - 1] = arguments[_key];
155
+ }
156
+ var descended = false;
157
+ var visited = childNodes.every(function(childNode) {
158
+ var node = childNode, visited = _this.visitNode.apply(_this, [
159
+ node
160
+ ].concat(_to_consumable_array(remainingArguments)));
161
+ if (visited) {
162
+ return true;
163
+ }
164
+ });
165
+ if (visited) {
166
+ descended = true;
167
+ }
168
+ return descended;
169
+ }
170
+ },
171
+ {
172
+ key: "visitNode",
173
+ value: function visitNode(node) {
174
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
175
+ remainingArguments[_key - 1] = arguments[_key];
176
+ }
177
+ var visited;
178
+ var nodeTerminalNode = node.isTerminalNode();
179
+ if (nodeTerminalNode) {
180
+ var terminalNode = node; ///
181
+ visited = this.visitTerminalNode.apply(this, [
182
+ terminalNode
183
+ ].concat(_to_consumable_array(remainingArguments)));
184
+ } else {
185
+ var nonTerminalNode = node; ///
186
+ visited = this.visitNonTerminalNode.apply(this, [
187
+ nonTerminalNode
188
+ ].concat(_to_consumable_array(remainingArguments)));
189
+ }
190
+ return visited;
191
+ }
192
+ },
193
+ {
194
+ key: "visitTerminalNode",
195
+ value: function visitTerminalNode(terminalNode) {
196
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
197
+ remainingArguments[_key - 1] = arguments[_key];
198
+ }
199
+ var visited = true;
200
+ return visited;
201
+ }
202
+ },
203
+ {
204
+ key: "visitNonTerminalNode",
205
+ value: function visitNonTerminalNode(nonTerminalNode) {
206
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
207
+ remainingArguments[_key - 1] = arguments[_key];
208
+ }
209
+ var _this = this;
210
+ var visited = false;
211
+ var maps = this.constructor.maps;
212
+ maps = _to_consumable_array(maps).concat([
213
+ {
214
+ nodeQuery: nonTerminalNodeQuery,
215
+ run: function(node) {
216
+ for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
217
+ remainingArguments[_key - 1] = arguments[_key];
218
+ }
219
+ var visited = false;
220
+ var childNodes = nonTerminalNode.getChildNodes(), descended = _this.descend.apply(_this, [
221
+ childNodes
222
+ ].concat(_to_consumable_array(remainingArguments)));
223
+ if (descended) {
224
+ visited = true;
225
+ }
226
+ return visited;
227
+ }
228
+ }
229
+ ]);
230
+ maps.some(function(map) {
231
+ var _$nodeQuery = map.nodeQuery, run = map.run;
232
+ var node = _$nodeQuery(nonTerminalNode);
233
+ if (node !== null) {
234
+ var success = run.apply(void 0, [
235
+ node
236
+ ].concat(_to_consumable_array(remainingArguments)));
237
+ visited = success;
238
+ return true;
239
+ }
240
+ });
241
+ return visited;
242
+ }
243
+ }
244
+ ]);
245
+ return Pass;
246
+ }();
247
+ var TopLevelPass = /*#__PURE__*/ function(Pass) {
248
+ _inherits(TopLevelPass, Pass);
249
+ function TopLevelPass() {
250
+ _class_call_check(this, TopLevelPass);
251
+ return _call_super(this, TopLevelPass, arguments);
252
+ }
253
+ return TopLevelPass;
254
+ }(Pass);
255
+ _define_property(TopLevelPass, "maps", [
256
+ {
257
+ nodeQuery: errorNodeQuery,
258
+ run: function(errorNode, context) {
259
+ var success = false;
260
+ var Error = _elements.default.Error, error = Error.fromErrorNode(errorNode, context), errorVerifies = error.verify(context);
261
+ if (errorVerifies) {
262
+ success = true;
263
+ }
264
+ return success;
265
+ }
266
+ },
267
+ {
268
+ nodeQuery: procedureDeclarationNodeQuery,
269
+ run: function(procedureDeclarationNode, context) {
270
+ var success = false;
271
+ var ProcedureDeclaration = _elements.default.ProcedureDeclaration, procedureDeclaration = ProcedureDeclaration.fromProcedureDeclarationNode(procedureDeclarationNode, context), procedureDeclarationVerifies = procedureDeclaration.verify(context);
272
+ if (procedureDeclarationVerifies) {
273
+ success = true;
274
+ }
275
+ return success;
276
+ }
277
+ }
278
+ ]);
279
+ var topLevelPass = new TopLevelPass();
280
+ function verifyFile(fileNode, context) {
281
+ var fileVerifies = false;
282
+ var node = fileNode, sucess = topLevelPass.run(node, context);
283
+ if (sucess) {
284
+ fileVerifies = true;
285
+ }
286
+ return fileVerifies;
287
+ }
288
+
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmNvbnN0IG5vblRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLypcIiksXG4gICAgICBlcnJvck5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9lcnJvclwiKSxcbiAgICAgIHByb2NlZHVyZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb2NlZHVyZURlY2xhcmF0aW9uXCIpO1xuXG5jbGFzcyBQYXNzIHtcbiAgcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgY29uc3QgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBzdWNjZXNzID0gdmlzaXRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBkZXNjZW5kKGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBkZXNjZW5kZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZpc2l0ZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHZpc2l0ZWQpIHtcbiAgICAgIGRlc2NlbmRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NlbmRlZDtcbiAgfVxuXG4gIHZpc2l0Tm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgdmlzaXRlZDtcblxuICAgIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICB2aXNpdGVkID0gdGhpcy52aXNpdFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgdmlzaXRUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCB2aXNpdGVkID0gdHJ1ZTtcblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgdmlzaXROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgbGV0IHsgbWFwcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIG1hcHMgPSBbIC8vL1xuICAgICAgLi4ubWFwcyxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgcnVuOiAobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLCAvLy9cbiAgICAgICAgICAgICAgICBkZXNjZW5kZWQgPSB0aGlzLmRlc2NlbmQoY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgIGlmIChkZXNjZW5kZWQpIHtcbiAgICAgICAgICAgIHZpc2l0ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2aXNpdGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuXG4gICAgbWFwcy5zb21lKChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgbm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVRdWVyeShub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzID0gcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgdmlzaXRlZCA9IHN1Y2Nlc3M7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxufVxuXG5jbGFzcyBUb3BMZXZlbFBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBlcnJvck5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGVycm9yTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHsgRXJyb3IgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgICBlcnJvciA9IEVycm9yLmZyb21FcnJvck5vZGUoZXJyb3JOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZXJyb3JWZXJpZmllcyA9IGVycm9yLnZlcmlmeShjb250ZXh0KTtcblxuICAgICAgICBpZiAoZXJyb3JWZXJpZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHByb2NlZHVyZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAocHJvY2VkdXJlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgeyBQcm9jZWR1cmVEZWNsYXJhdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICAgIHByb2NlZHVyZURlY2xhcmF0aW9uID0gUHJvY2VkdXJlRGVjbGFyYXRpb24uZnJvbVByb2NlZHVyZURlY2xhcmF0aW9uTm9kZShwcm9jZWR1cmVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBwcm9jZWR1cmVEZWNsYXJhdGlvblZlcmlmaWVzID0gcHJvY2VkdXJlRGVjbGFyYXRpb24udmVyaWZ5KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9jZWR1cmVEZWNsYXJhdGlvblZlcmlmaWVzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHRvcExldmVsUGFzcyA9IG5ldyBUb3BMZXZlbFBhc3MoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGZpbGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGUgPSBmaWxlTm9kZSwgLy8vXG4gICAgICAgIHN1Y2VzcyA9IHRvcExldmVsUGFzcy5ydW4obm9kZSwgY29udGV4dCk7XG5cbiAgaWYgKHN1Y2Vzcykge1xuICAgIGZpbGVWZXJpZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gZmlsZVZlcmlmaWVzO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUZpbGUiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImVycm9yTm9kZVF1ZXJ5IiwicHJvY2VkdXJlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJQYXNzIiwicnVuIiwibm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJ2aXNpdGVkIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImNoaWxkTm9kZXMiLCJkZXNjZW5kZWQiLCJldmVyeSIsImNoaWxkTm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJtYXBzIiwiZ2V0Q2hpbGROb2RlcyIsInNvbWUiLCJtYXAiLCJUb3BMZXZlbFBhc3MiLCJlcnJvck5vZGUiLCJjb250ZXh0IiwiRXJyb3IiLCJlbGVtZW50cyIsImVycm9yIiwiZnJvbUVycm9yTm9kZSIsImVycm9yVmVyaWZpZXMiLCJ2ZXJpZnkiLCJwcm9jZWR1cmVEZWNsYXJhdGlvbk5vZGUiLCJQcm9jZWR1cmVEZWNsYXJhdGlvbiIsInByb2NlZHVyZURlY2xhcmF0aW9uIiwiZnJvbVByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSIsInByb2NlZHVyZURlY2xhcmF0aW9uVmVyaWZpZXMiLCJ0b3BMZXZlbFBhc3MiLCJmaWxlTm9kZSIsImZpbGVWZXJpZmllcyIsInN1Y2VzcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUpnQkE7OztlQUFBQTs7O3FCQS9JVTsrREFFTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FB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