occam-furtle 2.0.279 → 2.0.282

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 (133) 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 +127 -50
  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 +10 -2
  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/package.json +3 -1
  43. package/src/constants.js +16 -0
  44. package/src/context/block.js +10 -0
  45. package/src/context/file.js +96 -54
  46. package/src/{dom → element}/assignment/array.js +6 -6
  47. package/src/{dom → element}/assignment/object.js +8 -8
  48. package/src/{dom → element}/assignment/variable.js +4 -4
  49. package/src/{dom → element}/assignments/variable.js +5 -5
  50. package/src/{dom → element}/block/return.js +5 -5
  51. package/src/{dom → element}/comparison.js +5 -5
  52. package/src/{dom → element}/declaration/procedure.js +22 -4
  53. package/src/{dom → element}/error.js +13 -4
  54. package/src/{dom → element}/every.js +6 -6
  55. package/src/{dom → element}/expression/bitwise.js +5 -5
  56. package/src/{dom → element}/expression/bracketed.js +4 -4
  57. package/src/{dom → element}/expression/negated.js +5 -5
  58. package/src/{dom → element}/expression.js +4 -4
  59. package/src/{dom → element}/expressions.js +6 -6
  60. package/src/{dom → element}/label.js +4 -4
  61. package/src/{dom → element}/parameter/named.js +4 -4
  62. package/src/{dom → element}/parameter.js +4 -4
  63. package/src/{dom → element}/parameters/named.js +5 -5
  64. package/src/{dom → element}/parameters.js +5 -5
  65. package/src/{dom → element}/procedure/anonymous.js +4 -4
  66. package/src/{dom → element}/procedure.js +5 -5
  67. package/src/{dom → element}/procedureCall.js +4 -4
  68. package/src/{dom → element}/query/node.js +5 -5
  69. package/src/{dom → element}/query/nodes.js +5 -5
  70. package/src/{dom → element}/reduce.js +5 -5
  71. package/src/{dom → element}/reference.js +4 -4
  72. package/src/{dom → element}/some.js +6 -6
  73. package/src/{dom → element}/statement/return.js +4 -4
  74. package/src/{dom → element}/step.js +4 -4
  75. package/src/{dom → element}/ternary.js +4 -4
  76. package/src/{dom → element}/variable.js +5 -5
  77. package/src/elements.js +13 -0
  78. package/src/index.js +5 -1
  79. package/src/log.js +139 -0
  80. package/src/preamble.js +31 -31
  81. package/src/process/verify.js +157 -0
  82. package/src/utilities/context.js +45 -2
  83. package/test/Free and bound variables.ftl +112 -0
  84. package/test/context/file.js +127 -0
  85. package/{src/example → test}/context/release.js +60 -12
  86. package/test/helpers/constants.js +17 -0
  87. package/{src/example/utilities → test/helpers}/expressions.js +8 -4
  88. package/{src/example/utilities → test/helpers}/furtle.js +8 -4
  89. package/{src/example/utilities → test/helpers}/grammar.js +8 -4
  90. package/{src/example/utilities → test/helpers}/nominal.js +10 -5
  91. package/{src/example/utilities → test/helpers}/procedure.js +6 -2
  92. package/test/main.js +55 -0
  93. package/example/Free and bound variables.ftl +0 -75
  94. package/lib/dom/assignment/array.js +0 -186
  95. package/lib/dom/assignment/object.js +0 -244
  96. package/lib/dom/assignment/variable.js +0 -144
  97. package/lib/dom/assignments/variable.js +0 -158
  98. package/lib/dom/block/return.js +0 -198
  99. package/lib/dom/comparison.js +0 -179
  100. package/lib/dom/declaration/procedure.js +0 -125
  101. package/lib/dom/every.js +0 -179
  102. package/lib/dom/expression/bitwise.js +0 -186
  103. package/lib/dom/expression/bracketed.js +0 -149
  104. package/lib/dom/expression/negated.js +0 -166
  105. package/lib/dom/expression.js +0 -578
  106. package/lib/dom/expressions.js +0 -210
  107. package/lib/dom/parameter/named.js +0 -198
  108. package/lib/dom/parameter.js +0 -165
  109. package/lib/dom/parameters/named.js +0 -220
  110. package/lib/dom/parameters.js +0 -198
  111. package/lib/dom/procedure/anonymous.js +0 -181
  112. package/lib/dom/procedure.js +0 -212
  113. package/lib/dom/procedureCall.js +0 -166
  114. package/lib/dom/query/node.js +0 -186
  115. package/lib/dom/query/nodes.js +0 -179
  116. package/lib/dom/reduce.js +0 -181
  117. package/lib/dom/reference.js +0 -138
  118. package/lib/dom/some.js +0 -179
  119. package/lib/dom/statement/return.js +0 -138
  120. package/lib/dom/step.js +0 -154
  121. package/lib/dom/ternary.js +0 -171
  122. package/lib/dom/variable.js +0 -279
  123. package/lib/dom.js +0 -27
  124. package/lib/example/context/file.js +0 -130
  125. package/lib/example/context/release.js +0 -160
  126. package/lib/example/utilities/expressions.js +0 -29
  127. package/lib/example/utilities/furtle.js +0 -19
  128. package/lib/example/utilities/grammar.js +0 -26
  129. package/lib/example/utilities/nominal.js +0 -25
  130. package/lib/example/utilities/procedure.js +0 -18
  131. package/src/dom.js +0 -13
  132. package/src/example/context/file.js +0 -69
  133. /package/{example → test}/customGrammars.json +0 -0
@@ -0,0 +1,210 @@
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 _default;
9
+ }
10
+ });
11
+ var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
12
+ var _query = require("../utilities/query");
13
+ function _class_call_check(instance, Constructor) {
14
+ if (!(instance instanceof Constructor)) {
15
+ throw new TypeError("Cannot call a class as a function");
16
+ }
17
+ }
18
+ function _defineProperties(target, props) {
19
+ for(var i = 0; i < props.length; i++){
20
+ var descriptor = props[i];
21
+ descriptor.enumerable = descriptor.enumerable || false;
22
+ descriptor.configurable = true;
23
+ if ("value" in descriptor) descriptor.writable = true;
24
+ Object.defineProperty(target, descriptor.key, descriptor);
25
+ }
26
+ }
27
+ function _create_class(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
32
+ function _define_property(obj, key, value) {
33
+ if (key in obj) {
34
+ Object.defineProperty(obj, key, {
35
+ value: value,
36
+ enumerable: true,
37
+ configurable: true,
38
+ writable: true
39
+ });
40
+ } else {
41
+ obj[key] = value;
42
+ }
43
+ return obj;
44
+ }
45
+ function _getRequireWildcardCache(nodeInterop) {
46
+ if (typeof WeakMap !== "function") return null;
47
+ var cacheBabelInterop = new WeakMap();
48
+ var cacheNodeInterop = new WeakMap();
49
+ return (_getRequireWildcardCache = function(nodeInterop) {
50
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
51
+ })(nodeInterop);
52
+ }
53
+ function _interop_require_wildcard(obj, nodeInterop) {
54
+ if (!nodeInterop && obj && obj.__esModule) {
55
+ return obj;
56
+ }
57
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
58
+ return {
59
+ default: obj
60
+ };
61
+ }
62
+ var cache = _getRequireWildcardCache(nodeInterop);
63
+ if (cache && cache.has(obj)) {
64
+ return cache.get(obj);
65
+ }
66
+ var newObj = {
67
+ __proto__: null
68
+ };
69
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
70
+ for(var key in obj){
71
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
72
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
73
+ if (desc && (desc.get || desc.set)) {
74
+ Object.defineProperty(newObj, key, desc);
75
+ } else {
76
+ newObj[key] = obj[key];
77
+ }
78
+ }
79
+ }
80
+ newObj.default = obj;
81
+ if (cache) {
82
+ cache.set(obj, newObj);
83
+ }
84
+ return newObj;
85
+ }
86
+ var _Expressions;
87
+ var expressionNodesQuery = (0, _query.nodesQuery)("/expressions/expression"), procedureCallExpressionsNodeQuery = (0, _query.nodeQuery)("/procedureCall/expressions");
88
+ var _default = (0, _elements.define)((_Expressions = /*#__PURE__*/ function() {
89
+ function Expressions(string, array) {
90
+ _class_call_check(this, Expressions);
91
+ this.string = string;
92
+ this.array = array;
93
+ }
94
+ _create_class(Expressions, [
95
+ {
96
+ key: "getString",
97
+ value: function getString() {
98
+ return this.string;
99
+ }
100
+ },
101
+ {
102
+ key: "getArray",
103
+ value: function getArray() {
104
+ return this.array;
105
+ }
106
+ },
107
+ {
108
+ key: "getLength",
109
+ value: function getLength() {
110
+ var length = this.array.length;
111
+ return length;
112
+ }
113
+ },
114
+ {
115
+ key: "getExpression",
116
+ value: function getExpression(index) {
117
+ var expression = this.array[index] || null; ///
118
+ return expression;
119
+ }
120
+ },
121
+ {
122
+ key: "addExpression",
123
+ value: function addExpression(expression) {
124
+ this.array.push(expression);
125
+ }
126
+ },
127
+ {
128
+ key: "mapExpression",
129
+ value: function mapExpression(callback) {
130
+ return this.array.map(callback);
131
+ }
132
+ },
133
+ {
134
+ key: "forEachExpression",
135
+ value: function forEachExpression(callback) {
136
+ this.array.forEach(callback);
137
+ }
138
+ },
139
+ {
140
+ key: "evaluate",
141
+ value: function evaluate(context) {
142
+ var array = this.mapExpression(function(expression) {
143
+ expression = expression.evaluate(context);
144
+ return expression;
145
+ }), expressions = Expressions.fromArray(array, context); ///
146
+ return expressions;
147
+ }
148
+ }
149
+ ], [
150
+ {
151
+ key: "fromNodes",
152
+ value: function fromNodes(nodes, context) {
153
+ var array = arrayFromNodes(nodes, context), string = stringFromArray(array, context), expressions = new Expressions(string, array);
154
+ return expressions;
155
+ }
156
+ },
157
+ {
158
+ key: "fromArray",
159
+ value: function fromArray(array, context) {
160
+ var string = stringFromArray(array, context), expressions = new Expressions(string, array);
161
+ return expressions;
162
+ }
163
+ },
164
+ {
165
+ key: "fromExpression",
166
+ value: function fromExpression(expression, context) {
167
+ var array = [
168
+ expression
169
+ ], string = stringFromArray(array, context), expressions = new Expressions(string, array);
170
+ return expressions;
171
+ }
172
+ },
173
+ {
174
+ key: "fromProcedureCallNode",
175
+ value: function fromProcedureCallNode(procedureCallNode, context) {
176
+ var procedureCallExpressionsNode = procedureCallExpressionsNodeQuery(procedureCallNode), expressionsNode = procedureCallExpressionsNode, expressions = expressionsFromExpressionsNode(expressionsNode, context);
177
+ return expressions;
178
+ }
179
+ }
180
+ ]);
181
+ return Expressions;
182
+ }(), _define_property(_Expressions, "name", "Expressions"), _Expressions));
183
+ function arrayFromNodes(nodes, context) {
184
+ var Expression = _elements.default.Expression, array = nodes.map(function(node) {
185
+ var expression = Expression.fromNode(node, context);
186
+ return expression;
187
+ });
188
+ return array;
189
+ }
190
+ function stringFromArray(array, context) {
191
+ var expressionsString = array.reduce(function(expressionsString, expression) {
192
+ var expressionString = expression.asString(context);
193
+ expressionsString = expressionsString === null ? expressionString : "".concat(expressionsString, ", ").concat(expressionString);
194
+ return expressionsString;
195
+ }, null), string = expressionsString; ///
196
+ return string;
197
+ }
198
+ function arrayFromExpressionNodes(expressionNodes, context) {
199
+ var Expression = _elements.default.Expression, array = expressionNodes.map(function(expressionNode) {
200
+ var expression = Expression.fromExpressionNode(expressionNode, context);
201
+ return expression;
202
+ });
203
+ return array;
204
+ }
205
+ function expressionsFromExpressionsNode(expressionsNode, context) {
206
+ var Expressions = _elements.default.Expressions, node = expressionsNode, string = context.nodeAsString(node), expressionNodes = expressionNodesQuery(expressionsNode), array = arrayFromExpressionNodes(expressionNodes, context), expressions = new Expressions(string, array);
207
+ return expressions;
208
+ }
209
+
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBleHByZXNzaW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZXhwcmVzc2lvbnMvZXhwcmVzc2lvblwiKSxcbiAgICAgIHByb2NlZHVyZUNhbGxFeHByZXNzaW9uc05vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9jZWR1cmVDYWxsL2V4cHJlc3Npb25zXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbnMge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIGFycmF5KSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldEV4cHJlc3Npb24oaW5kZXgpIHtcbiAgICBjb25zdCBleHByZXNzaW9uID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDsgIC8vL1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cblxuICBhZGRFeHByZXNzaW9uKGV4cHJlc3Npb24pIHtcbiAgICB0aGlzLmFycmF5LnB1c2goZXhwcmVzc2lvbik7XG4gIH1cblxuICBtYXBFeHByZXNzaW9uKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5Lm1hcChjYWxsYmFjayk7IH1cblxuICBmb3JFYWNoRXhwcmVzc2lvbihjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5ID0gdGhpcy5tYXBFeHByZXNzaW9uKChleHByZXNzaW9uKSA9PiB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gZXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIGV4cHJlc3Npb247XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZXhwcmVzc2lvbnMgPSBFeHByZXNzaW9ucy5mcm9tQXJyYXkoYXJyYXksIGNvbnRleHQpOyAvLy9cblxuICAgIHJldHVybiBleHByZXNzaW9ucztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFeHByZXNzaW9uc1wiO1xuXG4gIHN0YXRpYyBmcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhcnJheSA9IGFycmF5RnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tQXJyYXkoYXJyYXksIGNvbnRleHQpLFxuICAgICAgICAgIGV4cHJlc3Npb25zID0gbmV3IEV4cHJlc3Npb25zKHN0cmluZywgYXJyYXkpO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb25zO1xuICB9XG5cbiAgc3RhdGljIGZyb21BcnJheShhcnJheSwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21BcnJheShhcnJheSwgY29udGV4dCksXG4gICAgICAgICAgZXhwcmVzc2lvbnMgPSBuZXcgRXhwcmVzc2lvbnMoc3RyaW5nLCBhcnJheSk7XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbnM7XG4gIH1cblxuICBzdGF0aWMgZnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5ID0gW1xuICAgICAgICAgICAgZXhwcmVzc2lvblxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbUFycmF5KGFycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBleHByZXNzaW9ucyA9IG5ldyBFeHByZXNzaW9ucyhzdHJpbmcsIGFycmF5KTtcblxuICAgIHJldHVybiBleHByZXNzaW9ucztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJvY2VkdXJlQ2FsbE5vZGUocHJvY2VkdXJlQ2FsbE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVDYWxsRXhwcmVzc2lvbnNOb2RlID0gcHJvY2VkdXJlQ2FsbEV4cHJlc3Npb25zTm9kZVF1ZXJ5KHByb2NlZHVyZUNhbGxOb2RlKSxcbiAgICAgICAgICBleHByZXNzaW9uc05vZGUgPSBwcm9jZWR1cmVDYWxsRXhwcmVzc2lvbnNOb2RlLCAvLy9cbiAgICAgICAgICBleHByZXNzaW9ucyA9IGV4cHJlc3Npb25zRnJvbUV4cHJlc3Npb25zTm9kZShleHByZXNzaW9uc05vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb25zO1xuICB9XG59KTtcblxuZnVuY3Rpb24gYXJyYXlGcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBFeHByZXNzaW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgYXJyYXkgPSBub2Rlcy5tYXAoKG5vZGUpID0+IHsgLy8vXG4gICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbU5vZGUobm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tQXJyYXkoYXJyYXksIGNvbnRleHQpIHtcbiAgY29uc3QgZXhwcmVzc2lvbnNTdHJpbmcgPSBhcnJheS5yZWR1Y2UoKGV4cHJlc3Npb25zU3RyaW5nLCBleHByZXNzaW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXhwcmVzc2lvblN0cmluZyA9IGV4cHJlc3Npb24uYXNTdHJpbmcoY29udGV4dCk7XG5cbiAgICAgICAgICBleHByZXNzaW9uc1N0cmluZyA9IChleHByZXNzaW9uc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvblN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZXhwcmVzc2lvbnNTdHJpbmd9LCAke2V4cHJlc3Npb25TdHJpbmd9YDtcblxuICAgICAgICAgIHJldHVybiBleHByZXNzaW9uc1N0cmluZztcbiAgICAgICAgfSwgbnVsbCksXG4gICAgICAgIHN0cmluZyA9IGV4cHJlc3Npb25zU3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZnVuY3Rpb24gYXJyYXlGcm9tRXhwcmVzc2lvbk5vZGVzKGV4cHJlc3Npb25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCB7IEV4cHJlc3Npb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBhcnJheSA9IGV4cHJlc3Npb25Ob2Rlcy5tYXAoKGV4cHJlc3Npb25Ob2RlKSA9PiB7IC8vL1xuICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBFeHByZXNzaW9uLmZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5mdW5jdGlvbiBleHByZXNzaW9uc0Zyb21FeHByZXNzaW9uc05vZGUoZXhwcmVzc2lvbnNOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgRXhwcmVzc2lvbnMgfSA9IGVsZW1lbnRzLFxuICAgICAgICBub2RlID0gZXhwcmVzc2lvbnNOb2RlLCAvLy9cbiAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgIGV4cHJlc3Npb25Ob2RlcyA9IGV4cHJlc3Npb25Ob2Rlc1F1ZXJ5KGV4cHJlc3Npb25zTm9kZSksXG4gICAgICAgIGFycmF5ID0gYXJyYXlGcm9tRXhwcmVzc2lvbk5vZGVzKGV4cHJlc3Npb25Ob2RlcywgY29udGV4dCksXG4gICAgICAgIGV4cHJlc3Npb25zID0gbmV3IEV4cHJlc3Npb25zKHN0cmluZywgYXJyYXkpO1xuXG4gIHJldHVybiBleHByZXNzaW9ucztcbn1cbiJdLCJuYW1lcyI6WyJleHByZXNzaW9uTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcm9jZWR1cmVDYWxsRXhwcmVzc2lvbnNOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJkZWZpbmUiLCJFeHByZXNzaW9ucyIsInN0cmluZyIsImFycmF5IiwiZ2V0U3RyaW5nIiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRFeHByZXNzaW9uIiwiaW5kZXgiLCJleHByZXNzaW9uIiwiYWRkRXhwcmVzc2lvbiIsInB1c2giLCJtYXBFeHByZXNzaW9uIiwiY2FsbGJhY2siLCJtYXAiLCJmb3JFYWNoRXhwcmVzc2lvbiIsImZvckVhY2giLCJldmFsdWF0ZSIsImNvbnRleHQiLCJleHByZXNzaW9ucyIsImZyb21BcnJheSIsImZyb21Ob2RlcyIsIm5vZGVzIiwiYXJyYXlGcm9tTm9kZXMiLCJzdHJpbmdGcm9tQXJyYXkiLCJmcm9tRXhwcmVzc2lvbiIsImZyb21Qcm9jZWR1cmVDYWxsTm9kZSIsInByb2NlZHVyZUNhbGxOb2RlIiwicHJvY2VkdXJlQ2FsbEV4cHJlc3Npb25zTm9kZSIsImV4cHJlc3Npb25zTm9kZSIsImV4cHJlc3Npb25zRnJvbUV4cHJlc3Npb25zTm9kZSIsIm5hbWUiLCJFeHByZXNzaW9uIiwiZWxlbWVudHMiLCJub2RlIiwiZnJvbU5vZGUiLCJleHByZXNzaW9uc1N0cmluZyIsInJlZHVjZSIsImV4cHJlc3Npb25TdHJpbmciLCJhc1N0cmluZyIsImFycmF5RnJvbUV4cHJlc3Npb25Ob2RlcyIsImV4cHJlc3Npb25Ob2RlcyIsImV4cHJlc3Npb25Ob2RlIiwiZnJvbUV4cHJlc3Npb25Ob2RlIiwibm9kZUFzU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnRUFScUI7cUJBR2lCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEMsSUFBTUEsdUJBQXVCQyxJQUFBQSxpQkFBVSxFQUFDLDRCQUNsQ0Msb0NBQW9DQyxJQUFBQSxnQkFBUyxFQUFDO0lBRXBELFdBQWVDLElBQUFBLGdCQUFNLGdDQUFDO2FBQU1DLFlBQ2RDLE1BQU0sRUFBRUMsS0FBSztnQ0FEQ0Y7UUFFeEIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxLQUFLLEdBQUdBOzs7O1lBR2ZDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsTUFBTTtZQUNwQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsS0FBSztZQUNuQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxTQUFTLElBQUksQ0FBQ0osS0FBSyxDQUFDSSxNQUFNO2dCQUVoQyxPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNDLEtBQUs7Z0JBQ2pCLElBQU1DLGFBQWEsSUFBSSxDQUFDUCxLQUFLLENBQUNNLE1BQU0sSUFBSSxNQUFPLEdBQUc7Z0JBRWxELE9BQU9DO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsY0FBY0QsVUFBVTtnQkFDdEIsSUFBSSxDQUFDUCxLQUFLLENBQUNTLElBQUksQ0FBQ0Y7WUFDbEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsY0FBY0MsUUFBUTtnQkFBSSxPQUFPLElBQUksQ0FBQ1gsS0FBSyxDQUFDWSxH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
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
11
+ var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
12
12
  var _query = require("../utilities/query");
13
13
  function _class_call_check(instance, Constructor) {
14
14
  if (!(instance instanceof Constructor)) {
@@ -85,7 +85,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
85
85
  }
86
86
  var _Label;
87
87
  var nameTerminalNodeQuery = (0, _query.nodeQuery)("/label/@name"), procedureDeclarationLabelNodeQuery = (0, _query.nodeQuery)("/procedureDeclaration/label");
88
- var _default = (0, _dom.domAssigned)((_Label = /*#__PURE__*/ function() {
88
+ var _default = (0, _elements.define)((_Label = /*#__PURE__*/ function() {
89
89
  function Label(string, name) {
90
90
  _class_call_check(this, Label);
91
91
  this.string = string;
@@ -123,7 +123,7 @@ var _default = (0, _dom.domAssigned)((_Label = /*#__PURE__*/ function() {
123
123
  return Label;
124
124
  }(), _define_property(_Label, "name", "Label"), _Label));
125
125
  function labelFromLabelNode(labelNode, context) {
126
- var Label = _dom.default.Label, name = nameFromLabelNode(labelNode, context), string = stringFromName(name, context), label = new Label(string, name);
126
+ var Label = _elements.default.Label, name = nameFromLabelNode(labelNode, context), string = stringFromName(name, context), label = new Label(string, name);
127
127
  return label;
128
128
  }
129
129
  function nameFromLabelNode(labelNode, context) {
@@ -135,4 +135,4 @@ function stringFromName(name, context) {
135
135
  return string;
136
136
  }
137
137
 
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vbGFiZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcblxuY29uc3QgbmFtZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xhYmVsL0BuYW1lXCIpLFxuICAgICAgcHJvY2VkdXJlRGVjbGFyYXRpb25MYWJlbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9jZWR1cmVEZWNsYXJhdGlvbi9sYWJlbFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgTGFiZWwge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5hbWUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAobmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xuXG4gIHN0YXRpYyBmcm9tUHJvY2VkdXJlRGVjbGFyYXRpb25Ob2RlKHByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHByb2NlZHVyZURlY2xhcmF0aW9uTGFiZWxOb2RlID0gcHJvY2VkdXJlRGVjbGFyYXRpb25MYWJlbE5vZGVRdWVyeShwcm9jZWR1cmVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IHByb2NlZHVyZURlY2xhcmF0aW9uTGFiZWxOb2RlLCAgLy8vXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGxhYmVsRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBMYWJlbCB9ID0gZG9tLFxuICAgICAgICBuYW1lID0gbmFtZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgIGxhYmVsID0gbmV3IExhYmVsKHN0cmluZywgbmFtZSk7XG5cbiAgcmV0dXJuIGxhYmVsO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgbmFtZVRlcm1pbmFsTm9kZSA9IG5hbWVUZXJtaW5hbE5vZGVRdWVyeShsYWJlbE5vZGUpLFxuICAgICAgICBuYW1lVGVybWluYWxOb2RlQ29udGVudCA9IG5hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuYW1lID0gbmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQ7IC8vL1xuXG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSB7XG4gIGNvbnN0IG5hbWVTdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgIHN0cmluZyA9IG5hbWVTdHJpbmc7ICAvLy9cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG4iXSwibmFtZXMiOlsibmFtZVRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicHJvY2VkdXJlRGVjbGFyYXRpb25MYWJlbE5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiTGFiZWwiLCJzdHJpbmciLCJuYW1lIiwiZ2V0U3RyaW5nIiwiZ2V0TmFtZSIsIm1hdGNoTmFtZSIsIm5hbWVNYXRjaGVzIiwiZnJvbVByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSIsInByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSIsImNvbnRleHQiLCJwcm9jZWR1cmVEZWNsYXJhdGlvbkxhYmVsTm9kZSIsImxhYmVsTm9kZSIsImxhYmVsIiwibGFiZWxGcm9tTGFiZWxOb2RlIiwiZG9tIiwibmFtZUZyb21MYWJlbE5vZGUiLCJzdHJpbmdGcm9tTmFtZSIsIm5hbWVUZXJtaW5hbE5vZGUiLCJuYW1lVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJuYW1lU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OzsyREFSZ0I7cUJBRVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUcxQixJQUFNQSx3QkFBd0JDLElBQUFBLGdCQUFTLEVBQUMsaUJBQ2xDQyxxQ0FBcUNELElBQUFBLGdCQUFTLEVBQUM7SUFFckQsV0FBZUUsSUFBQUEsZ0JBQVcsMEJBQUM7YUFBTUMsTUFDbkJDLE1BQU0sRUFBRUMsSUFBSTtnQ0FET0Y7UUFFN0IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxJQUFJLEdBQUdBOzs7O1lBR2RDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsTUFBTTtZQUNwQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVSCxJQUFJO2dCQUNaLElBQU1JLGNBQWVKLFNBQVMsSUFBSSxDQUFDQSxJQUFJO2dCQUV2QyxPQUFPSTtZQUNUOzs7O1lBSU9DLEtBQUFBO21CQUFQLFNBQU9BLDZCQUE2QkMsd0JBQXdCLEVBQUVDLE9BQU87Z0JBQ25FLElBQU1DLGdDQUFnQ1osbUNBQW1DVSwyQkFDbkVHLFlBQVlELCtCQUNaRSxRQUFRQyxtQkFBbUJGLFdBQVdGO2dCQUU1QyxPQUFPRztZQUNUOzs7O0tBUkEseUJBQU9WLFFBQU87QUFXaEIsU0FBU1csbUJBQW1CRixTQUFTLEVBQUVGLE9BQU87SUFDNUMsSUFBTSxBQUFFVCxRQUFVYyxZQUFHLENBQWJkLE9BQ0ZFLE9BQU9hLGtCQUFrQkosV0FBV0YsVUFDcENSLFNBQVNlLGVBQWVkLE1BQU1PLFVBQzlCRyxRQUFRLElBQUlaLE1BQU1DLFFBQVFDO0lBRWhDLE9BQU9VO0FBQ1Q7QUFFQSxTQUFTRyxrQkFBa0JKLFNBQVMsRUFBRUYsT0FBTztJQUMzQyxJQUFNUSxtQkFBbUJyQixzQkFBc0JlLFlBQ3pDTywwQkFBMEJELGlCQUFpQkUsVUFBVSxJQUNyRGpCLE9BQU9nQix5QkFBeUIsR0FBRztJQUV6QyxPQUFPaEI7QUFDVDtBQUVBLFNBQVNjLGVBQWVkLElBQUksRUFBRU8sT0FBTztJQUNuQyxJQUFNVyxhQUFhbEIsTUFDYkQsU0FBU21CLFlBQWEsR0FBRztJQUUvQixPQUFPbkI7QUFDVCJ9
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBuYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbGFiZWwvQG5hbWVcIiksXG4gICAgICBwcm9jZWR1cmVEZWNsYXJhdGlvbkxhYmVsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb2NlZHVyZURlY2xhcmF0aW9uL2xhYmVsXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTGFiZWwge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5hbWUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAobmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xuXG4gIHN0YXRpYyBmcm9tUHJvY2VkdXJlRGVjbGFyYXRpb25Ob2RlKHByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHByb2NlZHVyZURlY2xhcmF0aW9uTGFiZWxOb2RlID0gcHJvY2VkdXJlRGVjbGFyYXRpb25MYWJlbE5vZGVRdWVyeShwcm9jZWR1cmVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IHByb2NlZHVyZURlY2xhcmF0aW9uTGFiZWxOb2RlLCAgLy8vXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGxhYmVsRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBMYWJlbCB9ID0gZWxlbWVudHMsXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSxcbiAgICAgICAgbGFiZWwgPSBuZXcgTGFiZWwoc3RyaW5nLCBuYW1lKTtcblxuICByZXR1cm4gbGFiZWw7XG59XG5cbmZ1bmN0aW9uIG5hbWVGcm9tTGFiZWxOb2RlKGxhYmVsTm9kZSwgY29udGV4dCkge1xuICBjb25zdCBuYW1lVGVybWluYWxOb2RlID0gbmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KGxhYmVsTm9kZSksXG4gICAgICAgIG5hbWVUZXJtaW5hbE5vZGVDb250ZW50ID0gbmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5hbWUgPSBuYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpIHtcbiAgY29uc3QgbmFtZVN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgc3RyaW5nID0gbmFtZVN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbiJdLCJuYW1lcyI6WyJuYW1lVGVybWluYWxOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJwcm9jZWR1cmVEZWNsYXJhdGlvbkxhYmVsTm9kZVF1ZXJ5IiwiZGVmaW5lIiwiTGFiZWwiLCJzdHJpbmciLCJuYW1lIiwiZ2V0U3RyaW5nIiwiZ2V0TmFtZSIsIm1hdGNoTmFtZSIsIm5hbWVNYXRjaGVzIiwiZnJvbVByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSIsInByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSIsImNvbnRleHQiLCJwcm9jZWR1cmVEZWNsYXJhdGlvbkxhYmVsTm9kZSIsImxhYmVsTm9kZSIsImxhYmVsIiwibGFiZWxGcm9tTGFiZWxOb2RlIiwiZWxlbWVudHMiLCJuYW1lRnJvbUxhYmVsTm9kZSIsInN0cmluZ0Zyb21OYW1lIiwibmFtZVRlcm1pbmFsTm9kZSIsIm5hbWVUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsIm5hbWVTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dFQVJxQjtxQkFHSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1BLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQyxpQkFDbENDLHFDQUFxQ0QsSUFBQUEsZ0JBQVMsRUFBQztJQUVyRCxXQUFlRSxJQUFBQSxnQkFBTSwwQkFBQzthQUFNQyxNQUNkQyxNQUFNLEVBQUVDLElBQUk7Z0NBREVGO1FBRXhCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7OztZQUdkQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLE1BQU07WUFDcEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLElBQUk7WUFDbEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVUgsSUFBSTtnQkFDWixJQUFNSSxjQUFlSixTQUFTLElBQUksQ0FBQ0EsSUFBSTtnQkFFdkMsT0FBT0k7WUFDVDs7OztZQUlPQyxLQUFBQTttQkFBUCxTQUFPQSw2QkFBNkJDLHdCQUF3QixFQUFFQyxPQUFPO2dCQUNuRSxJQUFNQyxnQ0FBZ0NaLG1DQUFtQ1UsMkJBQ25FRyxZQUFZRCwrQkFDWkUsUUFBUUMsbUJBQW1CRixXQUFXRjtnQkFFNUMsT0FBT0c7WUFDVDs7OztLQVJBLHlCQUFPVixRQUFPO0FBV2hCLFNBQVNXLG1CQUFtQkYsU0FBUyxFQUFFRixPQUFPO0lBQzVDLElBQU0sQUFBRVQsUUFBVWMsaUJBQVEsQ0FBbEJkLE9BQ0ZFLE9BQU9hLGtCQUFrQkosV0FBV0YsVUFDcENSLFNBQVNlLGVBQWVkLE1BQU1PLFVBQzlCRyxRQUFRLElBQUlaLE1BQU1DLFFBQVFDO0lBRWhDLE9BQU9VO0FBQ1Q7QUFFQSxTQUFTRyxrQkFBa0JKLFNBQVMsRUFBRUYsT0FBTztJQUMzQyxJQUFNUSxtQkFBbUJyQixzQkFBc0JlLFlBQ3pDTywwQkFBMEJELGlCQUFpQkUsVUFBVSxJQUNyRGpCLE9BQU9nQix5QkFBeUIsR0FBRztJQUV6QyxPQUFPaEI7QUFDVDtBQUVBLFNBQVNjLGVBQWVkLElBQUksRUFBRU8sT0FBTztJQUNuQyxJQUFNVyxhQUFhbEIsTUFDYkQsU0FBU21CLFlBQWEsR0FBRztJQUUvQixPQUFPbkI7QUFDVCJ9
@@ -0,0 +1,198 @@
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 _default;
9
+ }
10
+ });
11
+ var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
12
+ var _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ var _query = require("../../utilities/query");
14
+ function _class_call_check(instance, Constructor) {
15
+ if (!(instance instanceof Constructor)) {
16
+ throw new TypeError("Cannot call a class as a function");
17
+ }
18
+ }
19
+ function _defineProperties(target, props) {
20
+ for(var i = 0; i < props.length; i++){
21
+ var descriptor = props[i];
22
+ descriptor.enumerable = descriptor.enumerable || false;
23
+ descriptor.configurable = true;
24
+ if ("value" in descriptor) descriptor.writable = true;
25
+ Object.defineProperty(target, descriptor.key, descriptor);
26
+ }
27
+ }
28
+ function _create_class(Constructor, protoProps, staticProps) {
29
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
+ if (staticProps) _defineProperties(Constructor, staticProps);
31
+ return Constructor;
32
+ }
33
+ function _define_property(obj, key, value) {
34
+ if (key in obj) {
35
+ Object.defineProperty(obj, key, {
36
+ value: value,
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true
40
+ });
41
+ } else {
42
+ obj[key] = value;
43
+ }
44
+ return obj;
45
+ }
46
+ function _interop_require_default(obj) {
47
+ return obj && obj.__esModule ? obj : {
48
+ default: obj
49
+ };
50
+ }
51
+ function _getRequireWildcardCache(nodeInterop) {
52
+ if (typeof WeakMap !== "function") return null;
53
+ var cacheBabelInterop = new WeakMap();
54
+ var cacheNodeInterop = new WeakMap();
55
+ return (_getRequireWildcardCache = function(nodeInterop) {
56
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
57
+ })(nodeInterop);
58
+ }
59
+ function _interop_require_wildcard(obj, nodeInterop) {
60
+ if (!nodeInterop && obj && obj.__esModule) {
61
+ return obj;
62
+ }
63
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
64
+ return {
65
+ default: obj
66
+ };
67
+ }
68
+ var cache = _getRequireWildcardCache(nodeInterop);
69
+ if (cache && cache.has(obj)) {
70
+ return cache.get(obj);
71
+ }
72
+ var newObj = {
73
+ __proto__: null
74
+ };
75
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
76
+ for(var key in obj){
77
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
78
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
79
+ if (desc && (desc.get || desc.set)) {
80
+ Object.defineProperty(newObj, key, desc);
81
+ } else {
82
+ newObj[key] = obj[key];
83
+ }
84
+ }
85
+ }
86
+ newObj.default = obj;
87
+ if (cache) {
88
+ cache.set(obj, newObj);
89
+ }
90
+ return newObj;
91
+ }
92
+ var _NamedParameter;
93
+ var typeTerminalNodeQuery = (0, _query.nodeQuery)("/namedParameter/@type"), nameTerminalNodeQuery = (0, _query.nodeQuery)("/namedParameter/@name[0]"), asNameTerminalNodeQuery = (0, _query.nodeQuery)("/namedParameter/@name[1]");
94
+ var _default = (0, _elements.define)((_NamedParameter = /*#__PURE__*/ function() {
95
+ function NamedParameter(string, type, name, asName) {
96
+ _class_call_check(this, NamedParameter);
97
+ this.string = string;
98
+ this.type = type;
99
+ this.name = name;
100
+ this.asName = asName;
101
+ }
102
+ _create_class(NamedParameter, [
103
+ {
104
+ key: "getString",
105
+ value: function getString() {
106
+ return this.string;
107
+ }
108
+ },
109
+ {
110
+ key: "getType",
111
+ value: function getType() {
112
+ return this.type;
113
+ }
114
+ },
115
+ {
116
+ key: "getName",
117
+ value: function getName() {
118
+ return this.name;
119
+ }
120
+ },
121
+ {
122
+ key: "getAsName",
123
+ value: function getAsName() {
124
+ return this.asName;
125
+ }
126
+ },
127
+ {
128
+ key: "matchExpression",
129
+ value: function matchExpression(expression, context) {
130
+ var expressionString = expression.asString(context), namedParameterString = this.string; ///
131
+ context.trace("Matching the ".concat(expressionString, " expression against the '").concat(namedParameterString, "' named parameter..."));
132
+ var expressionType = expression.getType();
133
+ if (this.type !== expressionType) {
134
+ var message = "The ".concat(expressionString, " expression's '").concat(expressionType, "' type and '").concat(namedParameterString, "' named parameter's '").concat(this.type, "' type do not match."), exception = _exception.default.fromMessage(message);
135
+ throw exception;
136
+ }
137
+ context.debug("...matched the ".concat(expressionString, " expression against the '").concat(namedParameterString, "' named parameter."));
138
+ }
139
+ },
140
+ {
141
+ key: "matchNamedParameter",
142
+ value: function matchNamedParameter(namedParameter, context) {
143
+ var namedParameterMatches;
144
+ var namedParameterA = this, namedParameterB = namedParameter; ///
145
+ var namedParameterAString = namedParameterA.getString(), namedParameterBString = namedParameterB.getString();
146
+ context.trace("Matching the '".concat(namedParameterAString, "' named parameter against the '").concat(namedParameterBString, "' named parameter..."));
147
+ var name = namedParameter.getName(), type = namedParameter.getType();
148
+ namedParameterMatches = this.name === name && this.type === type;
149
+ if (namedParameterMatches) {
150
+ context.debug("...matched the '".concat(namedParameterAString, "' named parameter against the '").concat(namedParameterBString, "' named parameter."));
151
+ }
152
+ return namedParameterMatches;
153
+ }
154
+ }
155
+ ], [
156
+ {
157
+ key: "fromNamedParameterNode",
158
+ value: function fromNamedParameterNode(namedParameterNode, context) {
159
+ var namedParameter = namedParameterFromNamedParameterNode(namedParameterNode, context);
160
+ return namedParameter;
161
+ }
162
+ }
163
+ ]);
164
+ return NamedParameter;
165
+ }(), _define_property(_NamedParameter, "name", "NamedParameter"), _NamedParameter));
166
+ function namedParameterFromNamedParameterNode(namedParameterNode, context) {
167
+ var NamedParameter = _elements.default.NamedParameter, type = typeFromNamedParameterNode(namedParameterNode, context), name = nameFromNamedParameterNode(namedParameterNode, context), asName = asNameFromNamedParameterNode(namedParameterNode, context), string = stringFromTypeNameAndAsName(type, name, asName, context), namedParameter = new NamedParameter(string, type, name, asName);
168
+ return namedParameter;
169
+ }
170
+ function stringFromTypeNameAndAsName(type, name, asName, context) {
171
+ var string;
172
+ var typeString = type, nameString = name; ///
173
+ string = "".concat(typeString, " ").concat(nameString);
174
+ if (asName !== null) {
175
+ var asNameString = asName; ///
176
+ string = "".concat(string, " As ").concat(asNameString);
177
+ }
178
+ return string;
179
+ }
180
+ function typeFromNamedParameterNode(namedParameterNode, context) {
181
+ var typeTerminalNode = typeTerminalNodeQuery(namedParameterNode), typeTerminalNodeContent = typeTerminalNode.getContent(), type = typeTerminalNodeContent; ///
182
+ return type;
183
+ }
184
+ function nameFromNamedParameterNode(namedParameterNode, context) {
185
+ var nameTerminalNode = nameTerminalNodeQuery(namedParameterNode), nameTerminalNodeContent = nameTerminalNode.getContent(), name = nameTerminalNodeContent; ///
186
+ return name;
187
+ }
188
+ function asNameFromNamedParameterNode(namedParameterNode, context) {
189
+ var asName = null;
190
+ var asNameTerminalNode = asNameTerminalNodeQuery(namedParameterNode);
191
+ if (asNameTerminalNode !== null) {
192
+ var asNameTerminalNodeContent = asNameTerminalNode.getContent();
193
+ asName = asNameTerminalNodeContent; ///
194
+ }
195
+ return asName;
196
+ }
197
+
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlci9uYW1lZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0eXBlVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbmFtZWRQYXJhbWV0ZXIvQHR5cGVcIiksXG4gICAgICBuYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbmFtZWRQYXJhbWV0ZXIvQG5hbWVbMF1cIiksXG4gICAgICBhc05hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9uYW1lZFBhcmFtZXRlci9AbmFtZVsxXVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE5hbWVkUGFyYW1ldGVyIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0eXBlLCBuYW1lLCBhc05hbWUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5hc05hbWUgPSBhc05hbWU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0QXNOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmFzTmFtZTtcbiAgfVxuXG4gIG1hdGNoRXhwcmVzc2lvbihleHByZXNzaW9uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZXhwcmVzc2lvblN0cmluZyA9IGV4cHJlc3Npb24uYXNTdHJpbmcoY29udGV4dCksXG4gICAgICAgICAgbmFtZWRQYXJhbWV0ZXJTdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICR7ZXhwcmVzc2lvblN0cmluZ30gZXhwcmVzc2lvbiBhZ2FpbnN0IHRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlci4uLmApO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvblR5cGUgPSBleHByZXNzaW9uLmdldFR5cGUoKTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09IGV4cHJlc3Npb25UeXBlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAke2V4cHJlc3Npb25TdHJpbmd9IGV4cHJlc3Npb24ncyAnJHtleHByZXNzaW9uVHlwZX0nIHR5cGUgIGFuZCAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlcidzICcke3RoaXMudHlwZX0nIHR5cGUgZG8gbm90IG1hdGNoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAke2V4cHJlc3Npb25TdHJpbmd9IGV4cHJlc3Npb24gYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuYCk7XG4gIH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgbGV0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlcztcblxuICAgIGNvbnN0IG5hbWVkUGFyYW1ldGVyQSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlckIgPSBuYW1lZFBhcmFtZXRlcjsgLy8vXG5cbiAgICBjb25zdCBuYW1lZFBhcmFtZXRlckFTdHJpbmcgPSBuYW1lZFBhcmFtZXRlckEuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRQYXJhbWV0ZXJCU3RyaW5nID0gbmFtZWRQYXJhbWV0ZXJCLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25hbWVkUGFyYW1ldGVyQVN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhZ2FpbnN0IHRoZSAnJHtuYW1lZFBhcmFtZXRlckJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKTtcblxuICAgIG5hbWVkUGFyYW1ldGVyTWF0Y2hlcyA9ICgodGhpcy5uYW1lID09PSBuYW1lKSAmJiAodGhpcy50eXBlID09PSB0eXBlKSk7XG5cbiAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtuYW1lZFBhcmFtZXRlckFTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIgYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJCU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZFBhcmFtZXRlck1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTmFtZWRQYXJhbWV0ZXJcIjtcblxuICBzdGF0aWMgZnJvbU5hbWVkUGFyYW1ldGVyTm9kZShuYW1lZFBhcmFtZXRlck5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lZFBhcmFtZXRlciA9IG5hbWVkUGFyYW1ldGVyRnJvbU5hbWVkUGFyYW1ldGVyTm9kZShuYW1lZFBhcmFtZXRlck5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIG5hbWVkUGFyYW1ldGVyO1xuICB9XG59KTtcblxuZnVuY3Rpb24gbmFtZWRQYXJhbWV0ZXJGcm9tTmFtZWRQYXJhbWV0ZXJOb2RlKG5hbWVkUGFyYW1ldGVyTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IE5hbWVkUGFyYW1ldGVyIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdHlwZSA9IHR5cGVGcm9tTmFtZWRQYXJhbWV0ZXJOb2RlKG5hbWVkUGFyYW1ldGVyTm9kZSwgY29udGV4dCksXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbU5hbWVkUGFyYW1ldGVyTm9kZShuYW1lZFBhcmFtZXRlck5vZGUsIGNvbnRleHQpLFxuICAgICAgICBhc05hbWUgPSBhc05hbWVGcm9tTmFtZWRQYXJhbWV0ZXJOb2RlKG5hbWVkUGFyYW1ldGVyTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UeXBlTmFtZUFuZEFzTmFtZSh0eXBlLCBuYW1lLCBhc05hbWUsIGNvbnRleHQpLFxuICAgICAgICBuYW1lZFBhcmFtZXRlciA9IG5ldyBOYW1lZFBhcmFtZXRlcihzdHJpbmcsIHR5cGUsIG5hbWUsIGFzTmFtZSk7XG5cbiAgcmV0dXJuIG5hbWVkUGFyYW1ldGVyO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tVHlwZU5hbWVBbmRBc05hbWUodHlwZSwgbmFtZSwgYXNOYW1lLCBjb250ZXh0KSB7XG4gIGxldCBzdHJpbmc7XG5cbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUsICAvLy9cbiAgICAgICAgbmFtZVN0cmluZyA9IG5hbWU7ICAvLy9cblxuICBzdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke25hbWVTdHJpbmd9YDtcblxuICBpZiAoYXNOYW1lICE9PSBudWxsKSB7XG4gICAgY29uc3QgYXNOYW1lU3RyaW5nID0gYXNOYW1lOyAgLy8vXG5cbiAgICBzdHJpbmcgPSBgJHtzdHJpbmd9IEFzICR7YXNOYW1lU3RyaW5nfWA7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5cbmZ1bmN0aW9uIHR5cGVGcm9tTmFtZWRQYXJhbWV0ZXJOb2RlKG5hbWVkUGFyYW1ldGVyTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB0eXBlVGVybWluYWxOb2RlID0gdHlwZVRlcm1pbmFsTm9kZVF1ZXJ5KG5hbWVkUGFyYW1ldGVyTm9kZSksXG4gICAgICAgIHR5cGVUZXJtaW5hbE5vZGVDb250ZW50ID0gdHlwZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIHR5cGUgPSB0eXBlVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIHR5cGU7XG59XG5cbmZ1bmN0aW9uIG5hbWVGcm9tTmFtZWRQYXJhbWV0ZXJOb2RlKG5hbWVkUGFyYW1ldGVyTm9kZSwgY29udGV4dCkge1xuICBjb25zdCBuYW1lVGVybWluYWxOb2RlID0gbmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KG5hbWVkUGFyYW1ldGVyTm9kZSksXG4gICAgICAgIG5hbWVUZXJtaW5hbE5vZGVDb250ZW50ID0gbmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5hbWUgPSBuYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG5cbmZ1bmN0aW9uIGFzTmFtZUZyb21OYW1lZFBhcmFtZXRlck5vZGUobmFtZWRQYXJhbWV0ZXJOb2RlLCBjb250ZXh0KSB7XG4gIGxldCBhc05hbWUgPSBudWxsO1xuXG4gIGNvbnN0IGFzTmFtZVRlcm1pbmFsTm9kZSA9IGFzTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KG5hbWVkUGFyYW1ldGVyTm9kZSk7XG5cbiAgaWYgKGFzTmFtZVRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGFzTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSBhc05hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gICAgYXNOYW1lID0gYXNOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG4gIH1cblxuICByZXR1cm4gYXNOYW1lO1xufVxuIl0sIm5hbWVzIjpbInR5cGVUZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm5hbWVUZXJtaW5hbE5vZGVRdWVyeSIsImFzTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwiZGVmaW5lIiwiTmFtZWRQYXJhbWV0ZXIiLCJzdHJpbmciLCJ0eXBlIiwibmFtZSIsImFzTmFtZSIsImdldFN0cmluZyIsImdldFR5cGUiLCJnZXROYW1lIiwiZ2V0QXNOYW1lIiwibWF0Y2hFeHByZXNzaW9uIiwiZXhwcmVzc2lvbiIsImNvbnRleHQiLCJleHByZXNzaW9uU3RyaW5nIiwiYXNTdHJpbmciLCJuYW1lZFBhcmFtZXRlclN0cmluZyIsInRyYWNlIiwiZXhwcmVzc2lvblR5cGUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyTWF0Y2hlcyIsIm5hbWVkUGFyYW1ldGVyQSIsIm5hbWVkUGFyYW1ldGVyQiIsIm5hbWVkUGFyYW1ldGVyQVN0cmluZyIsIm5hbWVkUGFyYW1ldGVyQlN0cmluZyIsImZyb21OYW1lZFBhcmFtZXRlck5vZGUiLCJuYW1lZFBhcmFtZXRlck5vZGUiLCJuYW1lZFBhcmFtZXRlckZyb21OYW1lZFBhcmFtZXRlck5vZGUiLCJlbGVtZW50cyIsInR5cGVGcm9tTmFtZWRQYXJhbWV0ZXJOb2RlIiwibmFtZUZyb21OYW1lZFBhcmFtZXRlck5vZGUiLCJhc05hbWVGcm9tTmFtZWRQYXJhbWV0ZXJOb2RlIiwic3RyaW5nRnJvbVR5cGVOYW1lQW5kQXNOYW1lIiwidHlwZVN0cmluZyIsIm5hbWVTdHJpbmciLCJhc05hbWVTdHJpbmciLCJ0eXBlVGVybWluYWxOb2RlIiwidHlwZVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50IiwibmFtZVRlcm1pbmFsTm9kZSIsIm5hbWVUZXJtaW5hbE5vZGVDb250ZW50IiwiYXNOYW1l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