occam-furtle 2.0.322 → 2.0.323

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.
@@ -8,10 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _necessary = require("necessary");
12
- var _nullNode = /*#__PURE__*/ _interop_require_default(require("../nullNode"));
13
11
  var _elements = require("../elements");
14
- var _types = require("../types");
15
12
  function _class_call_check(instance, Constructor) {
16
13
  if (!(instance instanceof Constructor)) {
17
14
  throw new TypeError("Cannot call a class as a function");
@@ -44,22 +41,12 @@ function _define_property(obj, key, value) {
44
41
  }
45
42
  return obj;
46
43
  }
47
- function _interop_require_default(obj) {
48
- return obj && obj.__esModule ? obj : {
49
- default: obj
50
- };
51
- }
52
44
  var _Expression;
53
- var match = _necessary.arrayUtilities.match;
54
45
  var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
55
- function Expression(string, node, nodes, number, boolean, stringLiteral, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, returnBlock, procedureCall, negatedExpression, logicalExpression, bracketedExpression) {
46
+ function Expression(string, primitive, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, returnBlock, procedureCall, negatedExpression, logicalExpression, bracketedExpression) {
56
47
  _class_call_check(this, Expression);
57
48
  this.string = string;
58
- this.node = node;
59
- this.nodes = nodes;
60
- this.number = number;
61
- this.boolean = boolean;
62
- this.stringLiteral = stringLiteral;
49
+ this.primitive = primitive;
63
50
  this.some = some;
64
51
  this.every = every;
65
52
  this.reduce = reduce;
@@ -82,33 +69,9 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
82
69
  }
83
70
  },
84
71
  {
85
- key: "getNode",
86
- value: function getNode() {
87
- return this.node;
88
- }
89
- },
90
- {
91
- key: "getNodes",
92
- value: function getNodes() {
93
- return this.nodes;
94
- }
95
- },
96
- {
97
- key: "getNumber",
98
- value: function getNumber() {
99
- return this.number;
100
- }
101
- },
102
- {
103
- key: "getBoolean",
104
- value: function getBoolean() {
105
- return this.boolean;
106
- }
107
- },
108
- {
109
- key: "getStringLiteral",
110
- value: function getStringLiteral() {
111
- return this.stringLiteral;
72
+ key: "getPrimitive",
73
+ value: function getPrimitive() {
74
+ return this.primitive;
112
75
  }
113
76
  },
114
77
  {
@@ -189,22 +152,44 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
189
152
  return this.bracketedExpression;
190
153
  }
191
154
  },
155
+ {
156
+ key: "getNode",
157
+ value: function getNode() {
158
+ return this.primitive.getNode();
159
+ }
160
+ },
161
+ {
162
+ key: "getNodes",
163
+ value: function getNodes() {
164
+ return this.primitive.getNodes();
165
+ }
166
+ },
167
+ {
168
+ key: "getNumber",
169
+ value: function getNumber() {
170
+ return this.primitive.getNumber();
171
+ }
172
+ },
173
+ {
174
+ key: "getBoolean",
175
+ value: function getBoolean() {
176
+ return this.primitive.getBoolean();
177
+ }
178
+ },
179
+ {
180
+ key: "getStringLiteral",
181
+ value: function getStringLiteral() {
182
+ return this.primitive.getStringLiteral();
183
+ }
184
+ },
192
185
  {
193
186
  key: "getType",
194
187
  value: function getType() {
195
188
  var type;
196
189
  if (false) {
197
190
  ///
198
- } else if (this.node !== null) {
199
- type = _types.NODE_TYPE;
200
- } else if (this.nodes !== null) {
201
- type = _types.NODES_TYPE;
202
- } else if (this.number !== null) {
203
- type = _types.NUMBER_TYPE;
204
- } else if (this.boolean !== null) {
205
- type = _types.BOOLEAN_TYPE;
206
- } else if (this.stringLiteral !== null) {
207
- type = _types.STRING_TYPE;
191
+ } else if (this.primitive !== null) {
192
+ type = this.primitive.getType();
208
193
  } else if (this.some !== null) {
209
194
  type = this.some.getType();
210
195
  } else if (this.every !== null) {
@@ -241,8 +226,8 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
241
226
  var expression;
242
227
  if (false) {
243
228
  ///
244
- } else if (this.node !== null || this.nodes !== null || this.number !== null || this.boolean !== null || this.stringLiteral !== null) {
245
- expression = this;
229
+ } else if (this.primitive !== null) {
230
+ expression = this.primitive.evaluate(context);
246
231
  } else if (this.some !== null) {
247
232
  expression = this.some.evaluate(context);
248
233
  } else if (this.every !== null) {
@@ -276,65 +261,12 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
276
261
  {
277
262
  key: "isEqualTo",
278
263
  value: function isEqualTo(expression) {
279
- var equalTo;
280
- if (false) {
281
- ///
282
- } else if (this.node !== null) {
283
- var node = expression.getNode();
284
- if (node === null) {
285
- equalTo = false;
286
- } else {
287
- var nodeA = this.node, nodeB = node, nodeMatches = matchNode(nodeA, nodeB);
288
- equalTo = nodeMatches; ///
289
- }
290
- } else if (this.nodes !== null) {
291
- var nodes = expression.getNode();
292
- if (nodes === null) {
293
- equalTo = false;
294
- } else {
295
- var nodesA = this.nodes, nodesB = nodes, nodesMatch = matchNodes(nodesA, nodesB);
296
- equalTo = nodesMatch; ///
297
- }
298
- } else if (this.number !== null) {
299
- var number = expression.getNumber();
300
- equalTo = this.number === number;
301
- } else if (this.boolean !== null) {
302
- var boolean = expression.getBoolean();
303
- equalTo = this.boolean === boolean;
304
- } else if (this.stringLiteral !== null) {
305
- var stringLiteral = expression.getStringLiteral();
306
- equalTo = this.stringLiteral === stringLiteral;
307
- } else {
308
- debugger;
309
- }
264
+ var primitive = expression.getPrimitive(), equalTo = this.primitive.isEqualTo(primitive);
310
265
  return equalTo;
311
266
  }
312
267
  }
313
268
  ]);
314
269
  return Expression;
315
270
  }(), _define_property(_Expression, "name", "Expression"), _Expression));
316
- function matchNode(nodeA, nodeB) {
317
- var nodeMatches;
318
- if (nodeA === _nullNode.default || nodeB === _nullNode.default) {
319
- nodeMatches = nodeA === nodeB;
320
- } else if (nodeA === _nullNode.default) {
321
- nodeMatches = false;
322
- } else if (nodeB === _nullNode.default) {
323
- nodeMatches = false;
324
- } else {
325
- var nodeAMatchesNodeB = nodeA.match(nodeB);
326
- nodeMatches = nodeAMatchesNodeB; ///
327
- }
328
- return nodeMatches;
329
- }
330
- function matchNodes(nodesA, nodesB) {
331
- var nodesMatch = match(nodesA, nodesB, function(nodeA, nodeB) {
332
- var nodeMatches = matchNode(nodeA, nodeB);
333
- if (nodeMatches) {
334
- return true;
335
- }
336
- });
337
- return nodesMatch;
338
- }
339
271
 
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgTk9ERV9UWVBFLCBOT0RFU19UWVBFLCBOVU1CRVJfVFlQRSwgU1RSSU5HX1RZUEUsIEJPT0xFQU5fVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5jb25zdCB7IG1hdGNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEV4cHJlc3Npb24ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIG5vZGVzLCBudW1iZXIsIGJvb2xlYW4sIHN0cmluZ0xpdGVyYWwsIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIHRlcm5hcnksIHZhcmlhYmxlLCBub2RlUXVlcnksIG5vZGVzUXVlcnksIGNvbXBhcmlzb24sIHJldHVybkJsb2NrLCBwcm9jZWR1cmVDYWxsLCBuZWdhdGVkRXhwcmVzc2lvbiwgbG9naWNhbEV4cHJlc3Npb24sIGJyYWNrZXRlZEV4cHJlc3Npb24pIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMubm9kZXMgPSBub2RlcztcbiAgICB0aGlzLm51bWJlciA9IG51bWJlcjtcbiAgICB0aGlzLmJvb2xlYW4gPSBib29sZWFuO1xuICAgIHRoaXMuc3RyaW5nTGl0ZXJhbCA9IHN0cmluZ0xpdGVyYWw7XG4gICAgdGhpcy5zb21lID0gc29tZTtcbiAgICB0aGlzLmV2ZXJ5ID0gZXZlcnk7XG4gICAgdGhpcy5yZWR1Y2UgPSByZWR1Y2U7XG4gICAgdGhpcy50ZXJuYXJ5ID0gdGVybmFyeTtcbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLmNvbXBhcmlzb24gPSBjb21wYXJpc29uO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICAgIHRoaXMubmVnYXRlZEV4cHJlc3Npb24gPSBuZWdhdGVkRXhwcmVzc2lvbjtcbiAgICB0aGlzLmxvZ2ljYWxFeHByZXNzaW9uID0gbG9naWNhbEV4cHJlc3Npb247XG4gICAgdGhpcy5icmFja2V0ZWRFeHByZXNzaW9uID0gYnJhY2tldGVkRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcztcbiAgfVxuXG4gIGdldE51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXI7XG4gIH1cblxuICBnZXRCb29sZWFuKCkge1xuICAgIHJldHVybiB0aGlzLmJvb2xlYW47XG4gIH1cblxuICBnZXRTdHJpbmdMaXRlcmFsKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZ0xpdGVyYWw7XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0Tm9kZVF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVRdWVyeTtcbiAgfVxuXG4gIGdldE5vZGVzUXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXNRdWVyeTtcbiAgfVxuXG4gIGdldENvbXBhcmlzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGFyaXNvbjtcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlQ2FsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0TmVnYXRlZEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubmVnYXRlZEV4cHJlc3Npb247XG4gIH1cblxuICBnZXRMb2dpY2xFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmxvZ2ljYWxFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0QnJhY2tldGVkRXhwcmVzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5icmFja2V0ZWRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSBOT0RFX1RZUEU7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gTk9ERVNfVFlQRTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubnVtYmVyICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gTlVNQkVSX1RZUEU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJvb2xlYW4gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSBCT09MRUFOX1RZUEU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0cmluZ0xpdGVyYWwgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSBTVFJJTkdfVFlQRTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuc29tZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmV2ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ldmVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucmVkdWNlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybmFyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy52YXJpYWJsZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZVF1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZXNRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmNvbXBhcmlzb24uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZXR1cm5CbG9jayAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucmV0dXJuQmxvY2suZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5wcm9jZWR1cmVDYWxsLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9naWNhbEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmxvZ2ljYWxFeHByZXNzaW9uLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbi5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IGV4cHJlc3Npb247XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoKHRoaXMubm9kZSAhPT0gbnVsbCkgIHx8XG4gICAgICAgICAgICAgICAodGhpcy5ub2RlcyAhPT0gbnVsbCkgfHxcbiAgICAgICAgICAgICAgICh0aGlzLm51bWJlciAhPT0gbnVsbCkgfHxcbiAgICAgICAgICAgICAgICh0aGlzLmJvb2xlYW4gIT09IG51bGwpIHx8XG4gICAgICAgICAgICAgICAodGhpcy5zdHJpbmdMaXRlcmFsICE9PSBudWxsKSkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXM7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWUgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLnNvbWUuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmV2ZXJ5ICE9PSBudWxsKSB7XG4gICAgICBleHByZXNzaW9uID0gdGhpcy5ldmVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICBleHByZXNzaW9uID0gdGhpcy5yZWR1Y2UuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLnRlcm5hcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBleHByZXNzaW9uID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICBleHByZXNzaW9uID0gdGhpcy5ub2RlUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLm5vZGVzUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb24gIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLmNvbXBhcmlzb24uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICBleHByZXNzaW9uID0gdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMucHJvY2VkdXJlQ2FsbC5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpY2FsRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMubG9naWNhbEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJyYWNrZXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLmJyYWNrZXRlZEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cblxuICBpc0VxdWFsVG8oZXhwcmVzc2lvbikge1xuICAgIGxldCBlcXVhbFRvO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IGV4cHJlc3Npb24uZ2V0Tm9kZSgpO1xuXG4gICAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgICBlcXVhbFRvID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub2RlQSA9IHRoaXMubm9kZSwgIC8vL1xuICAgICAgICAgICAgICBub2RlQiA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgICBub2RlTWF0Y2hlcyA9IG1hdGNoTm9kZShub2RlQSwgbm9kZUIpO1xuXG4gICAgICAgIGVxdWFsVG8gPSBub2RlTWF0Y2hlczsgIC8vL1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlcyAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZXMgPSBleHByZXNzaW9uLmdldE5vZGUoKTtcblxuICAgICAgaWYgKG5vZGVzID09PSBudWxsKSB7XG4gICAgICAgIGVxdWFsVG8gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5vZGVzQSA9IHRoaXMubm9kZXMsICAvLy9cbiAgICAgICAgICAgICAgbm9kZXNCID0gbm9kZXMsIC8vL1xuICAgICAgICAgICAgICBub2Rlc01hdGNoID0gbWF0Y2hOb2Rlcyhub2Rlc0EsIG5vZGVzQik7XG5cbiAgICAgICAgZXF1YWxUbyA9IG5vZGVzTWF0Y2g7IC8vL1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5udW1iZXIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG51bWJlciA9IGV4cHJlc3Npb24uZ2V0TnVtYmVyKCk7XG5cbiAgICAgIGVxdWFsVG8gPSAodGhpcy5udW1iZXIgPT09IG51bWJlcik7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJvb2xlYW4gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGJvb2xlYW4gPSBleHByZXNzaW9uLmdldEJvb2xlYW4oKTtcblxuICAgICAgZXF1YWxUbyA9ICh0aGlzLmJvb2xlYW4gPT09IGJvb2xlYW4pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdHJpbmdMaXRlcmFsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdHJpbmdMaXRlcmFsID0gZXhwcmVzc2lvbi5nZXRTdHJpbmdMaXRlcmFsKCk7XG5cbiAgICAgIGVxdWFsVG8gPSAodGhpcy5zdHJpbmdMaXRlcmFsID09PSBzdHJpbmdMaXRlcmFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWdnZXJcbiAgICB9XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFeHByZXNzaW9uXCI7XG59KTtcblxuZnVuY3Rpb24gbWF0Y2hOb2RlKG5vZGVBLCBub2RlQikge1xuICBsZXQgbm9kZU1hdGNoZXM7XG5cbiAgaWYgKChub2RlQSA9PT0gbnVsbE5vZGUpIHx8IChub2RlQiA9PT0gbnVsbE5vZGUpKSB7XG4gICAgbm9kZU1hdGNoZXMgPSAobm9kZUEgPT09IG5vZGVCKTtcbiAgfSBlbHNlIGlmIChub2RlQSA9PT0gbnVsbE5vZGUpIHtcbiAgICBub2RlTWF0Y2hlcyA9IGZhbHNlO1xuICB9IGVsc2UgaWYgKG5vZGVCID09PSBudWxsTm9kZSkge1xuICAgIG5vZGVNYXRjaGVzID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgbm9kZUFNYXRjaGVzTm9kZUIgPSBub2RlQS5tYXRjaChub2RlQik7XG5cbiAgICBub2RlTWF0Y2hlcyA9IG5vZGVBTWF0Y2hlc05vZGVCOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpIHtcbiAgY29uc3Qgbm9kZXNNYXRjaCA9IG1hdGNoKG5vZGVzQSwgbm9kZXNCLCAobm9kZUEsIG5vZGVCKSA9PiB7XG4gICAgY29uc3Qgbm9kZU1hdGNoZXMgPSBtYXRjaE5vZGUobm9kZUEsIG5vZGVCKTtcblxuICAgIGlmIChub2RlTWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbm9kZXNNYXRjaDtcbn1cbiJdLCJuYW1lcyI6WyJtYXRjaCIsImFycmF5VXRpbGl0aWVzIiwiZGVmaW5lIiwiRXhwcmVzc2lvbiIsInN0cmluZyIsIm5vZGUiLCJub2RlcyIsIm51bWJlciIsImJvb2xlYW4iLCJzdHJpbmdMaXRlcmFsIiwic29tZSIsImV2ZXJ5IiwicmVkdWNlIiwidGVybmFyeSIsInZhcmlhYmxlIiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbXBhcmlzb24iLCJyZXR1cm5CbG9jayIsInByb2NlZHVyZUNhbGwiLCJuZWdhdGVkRXhwcmVzc2lvbiIsImxvZ2ljYWxFeHByZXNzaW9uIiwiYnJhY2tldGVkRXhwcmVzc2lvbiIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXROb2RlcyIsImdldE51bWJlciIsImdldEJvb2xlYW4iLCJnZXRTdHJpbmdMaXRlcmFsIiwiZ2V0U29tZSIsImdldEV2ZXJ5IiwiZ2V0UmVkdWNlIiwiZ2V0VGVybmFyeSIsInRlcm5heSIsImdldFZhcmlhYmxlIiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldENvbXBhcmlzb24iLCJnZXRSZXR1cm5CbG9jayIsImdldFByb2NlZHVyZUNhbGwiLCJnZXROZWdhdGVkRXhwcmVzc2lvbiIsImdldExvZ2ljbEV4cHJlc3Npb24iLCJnZXRCcmFja2V0ZWRFeHByZXNzaW9uIiwiZ2V0VHlwZSIsInR5cGUiLCJOT0RFX1RZUEUiLCJOT0RFU19UWVBFIiwiTlVNQkVSX1RZUEUiLCJCT09MRUFOX1RZUEUiLCJTVFJJTkdfVFlQRSIsImV2YWx1YXRlIiwiY29udGV4dCIsImV4cHJlc3Npb24iLCJpc0VxdWFsVG8iLCJlcXVhbFRvIiwibm9kZUEiLCJub2RlQiIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwibm9kZXNBIiwibm9kZXNCIiwibm9kZXNNYXRjaCIsIm1hdGNoTm9kZXMiLCJuYW1lIiwibnVsbE5vZGUiLCJub2RlQU1hdGNoZXNOb2RlQiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7eUJBVCtCOytEQUVWO3dCQUVFO3FCQUN1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTlFLElBQU0sQUFBRUEsUUFBVUMseUJBQWMsQ0FBeEJEO0lBRVIsV0FBZUUsSUFBQUEsZ0JBQU0sK0JBQUM7YUFBTUMsV0FDZEMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLGFBQWEsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsYUFBYSxFQUFFQyxpQkFBaUIsRUFBRUMsaUJBQWlCLEVBQUVDLG1CQUFtQjtnQ0FEdk1uQjtRQUV4QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFDckIsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FB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
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgcHJpbWl0aXZlLCBzb21lLCBldmVyeSwgcmVkdWNlLCB0ZXJuYXJ5LCB2YXJpYWJsZSwgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5LCBjb21wYXJpc29uLCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCwgbmVnYXRlZEV4cHJlc3Npb24sIGxvZ2ljYWxFeHByZXNzaW9uLCBicmFja2V0ZWRFeHByZXNzaW9uKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5wcmltaXRpdmUgPSBwcmltaXRpdmU7XG4gICAgdGhpcy5zb21lID0gc29tZTtcbiAgICB0aGlzLmV2ZXJ5ID0gZXZlcnk7XG4gICAgdGhpcy5yZWR1Y2UgPSByZWR1Y2U7XG4gICAgdGhpcy50ZXJuYXJ5ID0gdGVybmFyeTtcbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLmNvbXBhcmlzb24gPSBjb21wYXJpc29uO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICAgIHRoaXMubmVnYXRlZEV4cHJlc3Npb24gPSBuZWdhdGVkRXhwcmVzc2lvbjtcbiAgICB0aGlzLmxvZ2ljYWxFeHByZXNzaW9uID0gbG9naWNhbEV4cHJlc3Npb247XG4gICAgdGhpcy5icmFja2V0ZWRFeHByZXNzaW9uID0gYnJhY2tldGVkRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRQcmltaXRpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJpbWl0aXZlO1xuICB9XG5cbiAgZ2V0U29tZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zb21lO1xuICB9XG5cbiAgZ2V0RXZlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlcnk7XG4gIH1cblxuICBnZXRSZWR1Y2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVkdWNlO1xuICB9XG5cbiAgZ2V0VGVybmFyeSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJuYXk7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRDb21wYXJpc29uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb247XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldE5lZ2F0ZWRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0TG9naWNsRXhwcmVzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY2FsRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldEJyYWNrZXRlZEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7IHJldHVybiB0aGlzLnByaW1pdGl2ZS5nZXROb2RlKCk7IH1cblxuICBnZXROb2RlcygpIHsgcmV0dXJuIHRoaXMucHJpbWl0aXZlLmdldE5vZGVzKCk7IH1cblxuICBnZXROdW1iZXIoKSB7IHJldHVybiB0aGlzLnByaW1pdGl2ZS5nZXROdW1iZXIoKTsgfVxuXG4gIGdldEJvb2xlYW4oKSB7IHJldHVybiB0aGlzLnByaW1pdGl2ZS5nZXRCb29sZWFuKCk7IH1cblxuICBnZXRTdHJpbmdMaXRlcmFsKCkgeyByZXR1cm4gdGhpcy5wcmltaXRpdmUuZ2V0U3RyaW5nTGl0ZXJhbCgpOyB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJpbWl0aXZlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuc29tZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmV2ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ldmVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucmVkdWNlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybmFyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy52YXJpYWJsZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZVF1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZXNRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmNvbXBhcmlzb24uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZXR1cm5CbG9jayAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucmV0dXJuQmxvY2suZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5wcm9jZWR1cmVDYWxsLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9naWNhbEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmxvZ2ljYWxFeHByZXNzaW9uLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbi5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IGV4cHJlc3Npb247XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLnByaW1pdGl2ZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZSAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMuc29tZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLmV2ZXJ5LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWR1Y2UgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLnJlZHVjZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMudGVybmFyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLm5vZGVRdWVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMubm9kZXNRdWVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcGFyaXNvbiAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMuY29tcGFyaXNvbi5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIGV4cHJlc3Npb24gPSB0aGlzLnJldHVybkJsb2NrLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICBleHByZXNzaW9uID0gdGhpcy5wcm9jZWR1cmVDYWxsLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5uZWdhdGVkRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMubmVnYXRlZEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2ljYWxFeHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICBleHByZXNzaW9uID0gdGhpcy5sb2dpY2FsRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgZXhwcmVzc2lvbiA9IHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgfVxuXG4gIGlzRXF1YWxUbyhleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlID0gZXhwcmVzc2lvbi5nZXRQcmltaXRpdmUoKSxcbiAgICAgICAgICBlcXVhbFRvID0gdGhpcy5wcmltaXRpdmUuaXNFcXVhbFRvKHByaW1pdGl2ZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFeHByZXNzaW9uXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJFeHByZXNzaW9uIiwic3RyaW5nIiwicHJpbWl0aXZlIiwic29tZSIsImV2ZXJ5IiwicmVkdWNlIiwidGVybmFyeSIsInZhcmlhYmxlIiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbXBhcmlzb24iLCJyZXR1cm5CbG9jayIsInByb2NlZHVyZUNhbGwiLCJuZWdhdGVkRXhwcmVzc2lvbiIsImxvZ2ljYWxFeHByZXNzaW9uIiwiYnJhY2tldGVkRXhwcmVzc2lvbiIsImdldFN0cmluZyIsImdldFByaW1pdGl2ZSIsImdldFNvbWUiLCJnZXRFdmVyeSIsImdldFJlZHVjZSIsImdldFRlcm5hcnkiLCJ0ZXJuYXkiLCJnZXRWYXJpYWJsZSIsImdldE5vZGVRdWVyeSIsImdldE5vZGVzUXVlcnkiLCJnZXRDb21wYXJpc29uIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0TmVnYXRlZEV4cHJlc3Npb24iLCJnZXRMb2dpY2xFeHByZXNzaW9uIiwiZ2V0QnJhY2tldGVkRXhwcmVzc2lvbiIsImdldE5vZGUiLCJnZXROb2RlcyIsImdldE51bWJlciIsImdldEJvb2xlYW4iLCJnZXRTdHJpbmdMaXRlcmFsIiwiZ2V0VHlwZSIsInR5cGUiLCJldmFsdWF0ZSIsImNvbnRleHQiLCJleHByZXNzaW9uIiwiaXNFcXVhbFRvIiwiZXF1YWxUbyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBQTs7O3dCQUZ1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUV2QixXQUFlQSxJQUFBQSxnQkFBTSwrQkFBQzthQUFNQyxXQUNkQyxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsYUFBYSxFQUFFQyxpQkFBaUIsRUFBRUMsaUJBQWlCLEVBQUVDLG1CQUFtQjtnQ0FEcktmO1FBRXhCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FB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
@@ -0,0 +1,190 @@
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 _necessary = require("necessary");
12
+ var _nullNode = /*#__PURE__*/ _interop_require_default(require("../nullNode"));
13
+ var _elements = require("../elements");
14
+ var _types = require("../types");
15
+ function _class_call_check(instance, Constructor) {
16
+ if (!(instance instanceof Constructor)) {
17
+ throw new TypeError("Cannot call a class as a function");
18
+ }
19
+ }
20
+ function _defineProperties(target, props) {
21
+ for(var i = 0; i < props.length; i++){
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+ function _create_class(Constructor, protoProps, staticProps) {
30
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
+ if (staticProps) _defineProperties(Constructor, staticProps);
32
+ return Constructor;
33
+ }
34
+ function _define_property(obj, key, value) {
35
+ if (key in obj) {
36
+ Object.defineProperty(obj, key, {
37
+ value: value,
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true
41
+ });
42
+ } else {
43
+ obj[key] = value;
44
+ }
45
+ return obj;
46
+ }
47
+ function _interop_require_default(obj) {
48
+ return obj && obj.__esModule ? obj : {
49
+ default: obj
50
+ };
51
+ }
52
+ var _Primitive;
53
+ var match = _necessary.arrayUtilities.match;
54
+ var _default = (0, _elements.define)((_Primitive = /*#__PURE__*/ function() {
55
+ function Primitive(string, node, nodes, number, boolean, stringLiteral) {
56
+ _class_call_check(this, Primitive);
57
+ this.string = string;
58
+ this.node = node;
59
+ this.nodes = nodes;
60
+ this.number = number;
61
+ this.boolean = boolean;
62
+ this.stringLiteral = stringLiteral;
63
+ }
64
+ _create_class(Primitive, [
65
+ {
66
+ key: "getString",
67
+ value: function getString() {
68
+ return this.string;
69
+ }
70
+ },
71
+ {
72
+ key: "getNode",
73
+ value: function getNode() {
74
+ return this.node;
75
+ }
76
+ },
77
+ {
78
+ key: "getNodes",
79
+ value: function getNodes() {
80
+ return this.nodes;
81
+ }
82
+ },
83
+ {
84
+ key: "getNumber",
85
+ value: function getNumber() {
86
+ return this.number;
87
+ }
88
+ },
89
+ {
90
+ key: "getBoolean",
91
+ value: function getBoolean() {
92
+ return this.boolean;
93
+ }
94
+ },
95
+ {
96
+ key: "getStringLiteral",
97
+ value: function getStringLiteral() {
98
+ return this.stringLiteral;
99
+ }
100
+ },
101
+ {
102
+ key: "getType",
103
+ value: function getType() {
104
+ var type;
105
+ if (false) {
106
+ ///
107
+ } else if (this.node !== null) {
108
+ type = _types.NODE_TYPE;
109
+ } else if (this.nodes !== null) {
110
+ type = _types.NODES_TYPE;
111
+ } else if (this.number !== null) {
112
+ type = _types.NUMBER_TYPE;
113
+ } else if (this.boolean !== null) {
114
+ type = _types.BOOLEAN_TYPE;
115
+ } else if (this.stringLiteral !== null) {
116
+ type = _types.STRING_TYPE;
117
+ }
118
+ return type;
119
+ }
120
+ },
121
+ {
122
+ key: "evaluate",
123
+ value: function evaluate(context) {
124
+ var expression = this; ///
125
+ return expression;
126
+ }
127
+ },
128
+ {
129
+ key: "isEqualTo",
130
+ value: function isEqualTo(primitive) {
131
+ var equalTo;
132
+ if (false) {
133
+ ///
134
+ } else if (this.node !== null) {
135
+ var node = primitive.getNode();
136
+ if (node === null) {
137
+ equalTo = false;
138
+ } else {
139
+ var nodeA = this.node, nodeB = node, nodeMatches = matchNode(nodeA, nodeB);
140
+ equalTo = nodeMatches; ///
141
+ }
142
+ } else if (this.nodes !== null) {
143
+ var nodes = primitive.getNode();
144
+ if (nodes === null) {
145
+ equalTo = false;
146
+ } else {
147
+ var nodesA = this.nodes, nodesB = nodes, nodesMatch = matchNodes(nodesA, nodesB);
148
+ equalTo = nodesMatch; ///
149
+ }
150
+ } else if (this.number !== null) {
151
+ var number = primitive.getNumber();
152
+ equalTo = this.number === number;
153
+ } else if (this.boolean !== null) {
154
+ var boolean = primitive.getBoolean();
155
+ equalTo = this.boolean === boolean;
156
+ } else if (this.stringLiteral !== null) {
157
+ var stringLiteral = primitive.getStringLiteral();
158
+ equalTo = this.stringLiteral === stringLiteral;
159
+ }
160
+ return equalTo;
161
+ }
162
+ }
163
+ ]);
164
+ return Primitive;
165
+ }(), _define_property(_Primitive, "name", "Primitive"), _Primitive));
166
+ function matchNode(nodeA, nodeB) {
167
+ var nodeMatches;
168
+ if (nodeA === _nullNode.default || nodeB === _nullNode.default) {
169
+ nodeMatches = nodeA === nodeB;
170
+ } else if (nodeA === _nullNode.default) {
171
+ nodeMatches = false;
172
+ } else if (nodeB === _nullNode.default) {
173
+ nodeMatches = false;
174
+ } else {
175
+ var nodeAMatchesNodeB = nodeA.match(nodeB);
176
+ nodeMatches = nodeAMatchesNodeB; ///
177
+ }
178
+ return nodeMatches;
179
+ }
180
+ function matchNodes(nodesA, nodesB) {
181
+ var nodesMatch = match(nodesA, nodesB, function(nodeA, nodeB) {
182
+ var nodeMatches = matchNode(nodeA, nodeB);
183
+ if (nodeMatches) {
184
+ return true;
185
+ }
186
+ });
187
+ return nodesMatch;
188
+ }
189
+
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ByaW1pdGl2ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBudWxsTm9kZSBmcm9tIFwiLi4vbnVsbE5vZGVcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBOT0RFX1RZUEUsIE5PREVTX1RZUEUsIE5VTUJFUl9UWVBFLCBTVFJJTkdfVFlQRSwgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbmNvbnN0IHsgbWF0Y2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJpbWl0aXZlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBub2RlcywgbnVtYmVyLCBib29sZWFuLCBzdHJpbmdMaXRlcmFsKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5vZGVzID0gbm9kZXM7XG4gICAgdGhpcy5udW1iZXIgPSBudW1iZXI7XG4gICAgdGhpcy5ib29sZWFuID0gYm9vbGVhbjtcbiAgICB0aGlzLnN0cmluZ0xpdGVyYWwgPSBzdHJpbmdMaXRlcmFsO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzO1xuICB9XG5cbiAgZ2V0TnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLm51bWJlcjtcbiAgfVxuXG4gIGdldEJvb2xlYW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuYm9vbGVhbjtcbiAgfVxuXG4gIGdldFN0cmluZ0xpdGVyYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nTGl0ZXJhbDtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gTk9ERV9UWVBFO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlcyAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IE5PREVTX1RZUEU7XG4gICAgfSBlbHNlIGlmICh0aGlzLm51bWJlciAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IE5VTUJFUl9UWVBFO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ib29sZWFuICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gQk9PTEVBTl9UWVBFO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdHJpbmdMaXRlcmFsICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gU1RSSU5HX1RZUEU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXM7ICAvLy9cblxuICAgIHJldHVybiBleHByZXNzaW9uO1xuICB9XG5cbiAgaXNFcXVhbFRvKHByaW1pdGl2ZSkge1xuICAgIGxldCBlcXVhbFRvO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHByaW1pdGl2ZS5nZXROb2RlKCk7XG5cbiAgICAgIGlmIChub2RlID09PSBudWxsKSB7XG4gICAgICAgIGVxdWFsVG8gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5vZGVBID0gdGhpcy5ub2RlLCAgLy8vXG4gICAgICAgICAgICAgIG5vZGVCID0gbm9kZSwgLy8vXG4gICAgICAgICAgICAgIG5vZGVNYXRjaGVzID0gbWF0Y2hOb2RlKG5vZGVBLCBub2RlQik7XG5cbiAgICAgICAgZXF1YWxUbyA9IG5vZGVNYXRjaGVzOyAgLy8vXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlcyA9IHByaW1pdGl2ZS5nZXROb2RlKCk7XG5cbiAgICAgIGlmIChub2RlcyA9PT0gbnVsbCkge1xuICAgICAgICBlcXVhbFRvID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub2Rlc0EgPSB0aGlzLm5vZGVzLCAgLy8vXG4gICAgICAgICAgICAgIG5vZGVzQiA9IG5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgbm9kZXNNYXRjaCA9IG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpO1xuXG4gICAgICAgIGVxdWFsVG8gPSBub2Rlc01hdGNoOyAvLy9cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMubnVtYmVyICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBudW1iZXIgPSBwcmltaXRpdmUuZ2V0TnVtYmVyKCk7XG5cbiAgICAgIGVxdWFsVG8gPSAodGhpcy5udW1iZXIgPT09IG51bWJlcik7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJvb2xlYW4gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGJvb2xlYW4gPSBwcmltaXRpdmUuZ2V0Qm9vbGVhbigpO1xuXG4gICAgICBlcXVhbFRvID0gKHRoaXMuYm9vbGVhbiA9PT0gYm9vbGVhbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0cmluZ0xpdGVyYWwgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0cmluZ0xpdGVyYWwgPSBwcmltaXRpdmUuZ2V0U3RyaW5nTGl0ZXJhbCgpO1xuXG4gICAgICBlcXVhbFRvID0gKHRoaXMuc3RyaW5nTGl0ZXJhbCA9PT0gc3RyaW5nTGl0ZXJhbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJpbWl0aXZlXCI7XG59KTtcblxuZnVuY3Rpb24gbWF0Y2hOb2RlKG5vZGVBLCBub2RlQikge1xuICBsZXQgbm9kZU1hdGNoZXM7XG5cbiAgaWYgKChub2RlQSA9PT0gbnVsbE5vZGUpIHx8IChub2RlQiA9PT0gbnVsbE5vZGUpKSB7XG4gICAgbm9kZU1hdGNoZXMgPSAobm9kZUEgPT09IG5vZGVCKTtcbiAgfSBlbHNlIGlmIChub2RlQSA9PT0gbnVsbE5vZGUpIHtcbiAgICBub2RlTWF0Y2hlcyA9IGZhbHNlO1xuICB9IGVsc2UgaWYgKG5vZGVCID09PSBudWxsTm9kZSkge1xuICAgIG5vZGVNYXRjaGVzID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgbm9kZUFNYXRjaGVzTm9kZUIgPSBub2RlQS5tYXRjaChub2RlQik7XG5cbiAgICBub2RlTWF0Y2hlcyA9IG5vZGVBTWF0Y2hlc05vZGVCOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpIHtcbiAgY29uc3Qgbm9kZXNNYXRjaCA9IG1hdGNoKG5vZGVzQSwgbm9kZXNCLCAobm9kZUEsIG5vZGVCKSA9PiB7XG4gICAgY29uc3Qgbm9kZU1hdGNoZXMgPSBtYXRjaE5vZGUobm9kZUEsIG5vZGVCKTtcblxuICAgIGlmIChub2RlTWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbm9kZXNNYXRjaDtcbn1cbiJdLCJuYW1lcyI6WyJtYXRjaCIsImFycmF5VXRpbGl0aWVzIiwiZGVmaW5lIiwiUHJpbWl0aXZlIiwic3RyaW5nIiwibm9kZSIsIm5vZGVzIiwibnVtYmVyIiwiYm9vbGVhbiIsInN0cmluZ0xpdGVyYWwiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0Tm9kZXMiLCJnZXROdW1iZXIiLCJnZXRCb29sZWFuIiwiZ2V0U3RyaW5nTGl0ZXJhbCIsImdldFR5cGUiLCJ0eXBlIiwiTk9ERV9UWVBFIiwiTk9ERVNfVFlQRSIsIk5VTUJFUl9UWVBFIiwiQk9PTEVBTl9UWVBFIiwiU1RSSU5HX1RZUEUiLCJldmFsdWF0ZSIsImNvbnRleHQiLCJleHByZXNzaW9uIiwiaXNFcXVhbFRvIiwicHJpbWl0aXZlIiwiZXF1YWxUbyIsIm5vZGVBIiwibm9kZUIiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsIm5vZGVzQSIsIm5vZGVzQiIsIm5vZGVzTWF0Y2giLCJtYXRjaE5vZGVzIiwibmFtZSIsIm51bGxOb2RlIiwibm9kZUFNYXRjaGVzTm9kZUIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O3lCQVQrQjsrREFFVjt3QkFFRTtxQkFDdUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RSxJQUFNLEFBQUVBLFFBQVVDLHlCQUFjLENBQXhCRDtJQUVSLFdBQWVFLElBQUFBLGdCQUFNLDhCQUFDO2FBQU1DLFVBQ2RDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxhQUFhO2dDQURyQ047UUFFeEIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxhQUFhLEdBQUdBOzs7O1lBR3ZCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLE1BQU07WUFDcEI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLElBQUk7WUFDbEI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLEtBQUs7WUFDbkI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLE1BQU07WUFDcEI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLE9BQU87WUFDckI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNOLGFBQWE7WUFDM0I7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUM7Z0JBRUosSUFBSSxPQUFPO2dCQUNULEdBQUc7Z0JBQ0wsT0FBTyxJQUFJLElBQUksQ0FBQ1osSUFBSSxLQUFLLE1BQU07b0JBQzdCWSxPQUFPQyxnQkFBUztnQkFDbEIsT0FBTyxJQUFJLElBQUksQ0FBQ1osS0FBSyxLQUFLLE1BQU07b0JBQzlCVyxPQUFPRSxpQkFBVTtnQkFDbkIsT0FBTyxJQUFJLElBQUksQ0FBQ1osTUFBTSxLQUFLLE1BQU07b0JBQy9CVSxPQUFPRyxrQkFBVztnQkFDcEIsT0FBTyxJQUFJLElBQUksQ0FBQ1osT0FBTyxLQUFLLE1BQU07b0JBQ2hDUyxPQUFPSSxtQkFBWTtnQkFDckIsT0FBTyxJQUFJLElBQUksQ0FBQ1osYUFBYSxLQUFLLE1BQU07b0JBQ3RDUSxPQUFPSyxrQkFBVztnQkFDcEI7Z0JBRUEsT0FBT0w7WUFDVDs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTQyxPQUFPO2dCQUNkLElBQU1DLGFBQWEsSUFBSSxFQUFHLEdBQUc7Z0JBRTdCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVUMsU0FBUztnQkFDakIsSUFBSUM7Z0JBRUosSUFBSSxPQUFPO2dCQUNULEdBQUc7Z0JBQ0wsT0FBTyxJQUFJLElBQUksQ0FBQ3ZCLElBQUksS0FBSyxNQUFNO29CQUM3QixJQUFNQSxPQUFPc0IsVUFBVWhCLE9BQU87b0JBRTlCLElBQUlOLFNBQVMsTUFBTTt3QkFDakJ1QixVQUFVO29CQUNaLE9BQU87d0JBQ0wsSUFBTUMsUUFBUSxJQUFJLENBQUN4QixJQUFJLEVBQ2pCeUIsUUFBUXpCLE1BQ1IwQixjQUFjQyxVQUFVSCxPQUFPQzt3QkFFckNGLFVBQVVHLGFBQWMsR0FBRztvQkFDN0I7Z0JBQ0YsT0FBTyxJQUFJLElBQUksQ0FBQ3pCLEtBQUssS0FBSyxNQUFNO29CQUM5QixJQUFNQSxRQUFRcUIsVUFBVWhCLE9BQU87b0JBRS9CLElBQUlMLFVBQVUsTUFBTTt3QkFDbEJzQixVQUFVO29CQUNaLE9BQU87d0JBQ0wsSUFBTUssU0FBUyxJQUFJLENBQUMzQixLQUFLLEVBQ25CNEIsU0FBUzVCLE9BQ1Q2QixhQUFhQyxXQUFXSCxRQUFRQzt3QkFFdENOLFVBQVVPLFlBQVksR0FBRztvQkFDM0I7Z0JBQ0YsT0FBTyxJQUFJLElBQUksQ0FBQzVCLE1BQU0sS0FBSyxNQUFNO29CQUMvQixJQUFNQSxTQUFTb0IsVUFBVWQsU0FBUztvQkFFbENlLFVBQVcsSUFBSSxDQUFDckIsTUFBTSxLQUFLQTtnQkFDN0IsT0FBTyxJQUFJLElBQUksQ0FBQ0MsT0FBTyxLQUFLLE1BQU07b0JBQ2hDLElBQU1BLFVBQVVtQixVQUFVYixVQUFVO29CQUVwQ2MsVUFBVyxJQUFJLENBQUNwQixPQUFPLEtBQUtBO2dCQUM5QixPQUFPLElBQUksSUFBSSxDQUFDQyxhQUFhLEtBQUssTUFBTTtvQkFDdEMsSUFBTUEsZ0JBQWdCa0IsVUFBVVosZ0JBQWdCO29CQUVoRGEsVUFBVyxJQUFJLENBQUNuQixhQUFhLEtBQUtBO2dCQUNwQztnQkFFQSxPQUFPbUI7WUFDVDs7OztLQUVBLDZCQUFPUyxRQUFPO0FBR2hCLFNBQVNMLFVBQVVILEtBQUssRUFBRUMsS0FBSztJQUM3QixJQUFJQztJQUVKLElBQUksQUFBQ0YsVUFBVVMsaUJBQVEsSUFBTVIsVUFBVVEsaUJBQVEsRUFBRztRQUNoRFAsY0FBZUYsVUFBVUM7SUFDM0IsT0FBTyxJQUFJRCxVQUFVUyxpQkFBUSxFQUFFO1FBQzdCUCxjQUFjO0lBQ2hCLE9BQU8sSUFBSUQsVUFBVVEsaUJBQVEsRUFBRTtRQUM3QlAsY0FBYztJQUNoQixPQUFPO1FBQ0wsSUFBTVEsb0JBQW9CVixNQUFNN0IsS0FBSyxDQUFDOEI7UUFFdENDLGNBQWNRLG1CQUFvQixHQUFHO0lBQ3ZDO0lBRUEsT0FBT1I7QUFDVDtBQUVBLFNBQVNLLFdBQVdILE1BQU0sRUFBRUMsTUFBTTtJQUNoQyxJQUFNQyxhQUFhbkMsTUFBTWlDLFFBQVFDLFFBQVEsU0FBQ0wsT0FBT0M7UUFDL0MsSUFBTUMsY0FBY0MsVUFBVUgsT0FBT0M7UUFFckMsSUFBSUMsYUFBYTtZQUNmLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0k7QUFDVCJ9
@@ -8,10 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return ExpressionNode;
9
9
  }
10
10
  });
11
- var _nullNode = /*#__PURE__*/ _interop_require_default(require("../nullNode"));
12
11
  var _nonTerminalNode = /*#__PURE__*/ _interop_require_default(require("../nonTerminalNode"));
13
- var _constants = require("../constants");
14
- var _tokenTypes = require("../tokenTypes");
15
12
  var _ruleNames = require("../ruleNames");
16
13
  function _assert_this_initialized(self) {
17
14
  if (self === void 0) {
@@ -98,68 +95,6 @@ var ExpressionNode = /*#__PURE__*/ function(NonTerminalNode) {
98
95
  return _call_super(this, ExpressionNode, arguments);
99
96
  }
100
97
  _create_class(ExpressionNode, [
101
- {
102
- key: "getNode",
103
- value: function getNode() {
104
- var node = null;
105
- var tokenType = _tokenTypes.NULL_TOKEN_TYPE;
106
- this.someTerminalNode(function(terminalNode) {
107
- var content = terminalNode.getContent();
108
- if (content === _constants.NULL) {
109
- node = _nullNode.default;
110
- return true;
111
- }
112
- }, tokenType);
113
- return node;
114
- }
115
- },
116
- {
117
- key: "getStringLiteral",
118
- value: function getStringLiteral() {
119
- var stringLiteral = null;
120
- var tokenType = _tokenTypes.STRING_LITERAL_TOKEN_TYPE;
121
- this.someTerminalNode(function(terminalNode) {
122
- var content = terminalNode.getContent();
123
- stringLiteral = content; ///
124
- return true;
125
- }, tokenType);
126
- return stringLiteral;
127
- }
128
- },
129
- {
130
- key: "getNumber",
131
- value: function getNumber() {
132
- var number = null;
133
- var tokenType = _tokenTypes.NUMBER_TOKEN_TYPE; ///
134
- this.someTerminalNode(function(terminalNode) {
135
- var content = terminalNode.getContent();
136
- if (content === _constants.TRUE) {
137
- number = Number(content);
138
- return true;
139
- }
140
- }, tokenType);
141
- return number;
142
- }
143
- },
144
- {
145
- key: "getBoolean",
146
- value: function getBoolean() {
147
- var boolean = null;
148
- var tokenType = _tokenTypes.BOOLEAN_TOKEN_TYPE;
149
- this.someTerminalNode(function(terminalNode) {
150
- var content = terminalNode.getContent();
151
- if (content === _constants.TRUE) {
152
- boolean = true;
153
- return true;
154
- }
155
- if (content === _constants.FALSE) {
156
- boolean = false;
157
- return true;
158
- }
159
- }, tokenType);
160
- return boolean;
161
- }
162
- },
163
98
  {
164
99
  key: "getSomeNode",
165
100
  value: function getSomeNode() {
@@ -195,6 +130,13 @@ var ExpressionNode = /*#__PURE__*/ function(NonTerminalNode) {
195
130
  return variableNode;
196
131
  }
197
132
  },
133
+ {
134
+ key: "getPrimitiveNode",
135
+ value: function getPrimitiveNode() {
136
+ var ruleName = _ruleNames.PRIMITIVE_RULE_NAME, primitiveNode = this.getNodeByRuleName(ruleName);
137
+ return primitiveNode;
138
+ }
139
+ },
198
140
  {
199
141
  key: "getNodeQueryNode",
200
142
  value: function getNodeQueryNode() {
@@ -270,4 +212,4 @@ var ExpressionNode = /*#__PURE__*/ function(NonTerminalNode) {
270
212
  return ExpressionNode;
271
213
  }(_nonTerminalNode.default);
272
214
 
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBudWxsTm9kZSBmcm9tIFwiLi4vbnVsbE5vZGVcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGUgZnJvbSBcIi4uL25vblRlcm1pbmFsTm9kZVwiO1xuXG5pbXBvcnQgeyBOVUxMLCBUUlVFLCBGQUxTRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE5VTExfVE9LRU5fVFlQRSwgTlVNQkVSX1RPS0VOX1RZUEUsIEJPT0xFQU5fVE9LRU5fVFlQRSwgU1RSSU5HX0xJVEVSQUxfVE9LRU5fVFlQRSB9IGZyb20gXCIuLi90b2tlblR5cGVzXCI7XG5pbXBvcnQgeyBTT01FX1JVTEVfTkFNRSxcbiAgICAgICAgIEVWRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIFJFRFVDRV9SVUxFX05BTUUsXG4gICAgICAgICBURVJOQVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTVBBUklTT05fUlVMRV9OQU1FLFxuICAgICAgICAgTk9ERV9RVUVSWV9SVUxFX05BTUUsXG4gICAgICAgICBOT0RFU19RVUVSWV9SVUxFX05BTUUsXG4gICAgICAgICBSRVRVUk5fQkxPQ0tfUlVMRV9OQU1FLFxuICAgICAgICAgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FLFxuICAgICAgICAgTkVHQVRFRF9FWFBSRVNTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIExPR0lDQUxfRVhQUkVTU0lPTl9SVUxFX05BTUUsXG4gICAgICAgICBCUkFDS0VURURfRVhQUkVTU0lPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cHJlc3Npb25Ob2RlIGV4dGVuZHMgTm9uVGVybWluYWxOb2RlIHtcbiAgZ2V0Tm9kZSgpIHtcbiAgICBsZXQgbm9kZSA9IG51bGw7XG5cbiAgICBjb25zdCB0b2tlblR5cGUgPSBOVUxMX1RPS0VOX1RZUEU7XG5cbiAgICB0aGlzLnNvbWVUZXJtaW5hbE5vZGUoKHRlcm1pbmFsTm9kZSkgPT4ge1xuICAgICAgY29uc3QgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICAgIGlmIChjb250ZW50ID09PSBOVUxMKSB7XG4gICAgICAgIG5vZGUgPSBudWxsTm9kZTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCB0b2tlblR5cGUpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBnZXRTdHJpbmdMaXRlcmFsKCkge1xuICAgIGxldCBzdHJpbmdMaXRlcmFsID0gbnVsbDtcblxuICAgIGNvbnN0IHRva2VuVHlwZSA9IFNUUklOR19MSVRFUkFMX1RPS0VOX1RZUEU7XG5cbiAgICB0aGlzLnNvbWVUZXJtaW5hbE5vZGUoKHRlcm1pbmFsTm9kZSkgPT4ge1xuICAgICAgY29uc3QgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICAgIHN0cmluZ0xpdGVyYWwgPSBjb250ZW50OyAgLy8vXG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sIHRva2VuVHlwZSk7XG5cbiAgICByZXR1cm4gc3RyaW5nTGl0ZXJhbDtcbiAgfVxuXG4gIGdldE51bWJlcigpIHtcbiAgICBsZXQgbnVtYmVyID0gbnVsbDtcblxuICAgIGNvbnN0IHRva2VuVHlwZSA9IE5VTUJFUl9UT0tFTl9UWVBFOyAvLy9cblxuICAgIHRoaXMuc29tZVRlcm1pbmFsTm9kZSgodGVybWluYWxOb2RlKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgICAgaWYgKGNvbnRlbnQgPT09IFRSVUUpIHtcbiAgICAgICAgbnVtYmVyID0gTnVtYmVyKGNvbnRlbnQpO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0sIHRva2VuVHlwZSk7XG5cbiAgICByZXR1cm4gbnVtYmVyO1xuICB9XG5cbiAgZ2V0Qm9vbGVhbigpIHtcbiAgICBsZXQgYm9vbGVhbiA9IG51bGw7XG5cbiAgICBjb25zdCB0b2tlblR5cGUgPSBCT09MRUFOX1RPS0VOX1RZUEU7XG5cbiAgICB0aGlzLnNvbWVUZXJtaW5hbE5vZGUoKHRlcm1pbmFsTm9kZSkgPT4ge1xuICAgICAgY29uc3QgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICAgIGlmIChjb250ZW50ID09PSBUUlVFKSB7XG4gICAgICAgIGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29udGVudCA9PT0gRkFMU0UpIHtcbiAgICAgICAgYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0sIHRva2VuVHlwZSk7XG5cbiAgICByZXR1cm4gYm9vbGVhbjtcbiAgfVxuXG4gIGdldFNvbWVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gU09NRV9SVUxFX05BTUUsXG4gICAgICAgICAgc29tZU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBzb21lTm9kZTtcbiAgfVxuXG4gIGdldEV2ZXJ5Tm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IEVWRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgICBldmVyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBldmVyeU5vZGU7XG4gIH1cblxuICBnZXRSZWR1Y2VOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUkVEVUNFX1JVTEVfTkFNRSxcbiAgICAgICAgICByZWR1Y2VOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcmVkdWNlTm9kZTtcbiAgfVxuXG4gIGdldFRlcm5hcnlOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVEVSTkFSWV9SVUxFX05BTUUsXG4gICAgICAgICAgdGVybmFyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0ZXJuYXJ5Tm9kZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB2YXJpYWJsZU5vZGU7XG4gIH1cblxuICBnZXROb2RlUXVlcnlOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gTk9ERV9RVUVSWV9SVUxFX05BTUUsXG4gICAgICAgICAgbm9kZVF1ZXJ5Tm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5vZGVRdWVyeU5vZGU7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5Tm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IE5PREVTX1FVRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgICBub2RlU1F1ZXJ5Tm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5vZGVTUXVlcnlOb2RlO1xuICB9XG5cbiAgZ2V0Q29tcGFyaXNvbk5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBDT01QQVJJU09OX1JVTEVfTkFNRSxcbiAgICAgIGNvbXBhcmlzb25Ob2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gY29tcGFyaXNvbk5vZGU7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9ja05vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBSRVRVUk5fQkxPQ0tfUlVMRV9OQU1FLFxuICAgICAgICAgIHJldHVybkJsb2NrTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHJldHVybkJsb2NrTm9kZTtcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGxOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FLFxuICAgICAgICAgIHByb2NlZHVyZUNhbGxOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlQ2FsbE5vZGU7XG4gIH1cblxuICBnZXROZWdhdGVkRXhwcmVzc2lvbk5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBORUdBVEVEX0VYUFJFU1NJT05fUlVMRV9OQU1FLFxuICAgICAgICAgIG5lZ2F0ZWRFeHByZXNzaW9uTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5lZ2F0ZWRFeHByZXNzaW9uTm9kZTtcbiAgfVxuXG4gIGdldExvZ2ljYWxFeHByZXNzaW9uTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IExPR0lDQUxfRVhQUkVTU0lPTl9SVUxFX05BTUUsXG4gICAgICAgICAgbG9naWNhbEV4cHJlc3Npb25SdWxlTmFtZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIGxvZ2ljYWxFeHByZXNzaW9uUnVsZU5hbWU7XG4gIH1cblxuICBnZXRCcmFja2V0ZWRFeHByZXNzaW9uTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IEJSQUNLRVRFRF9FWFBSRVNTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgICBicmFja2V0ZWRFeHByZXNzaW9uUnVsZU5hbWUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBicmFja2V0ZWRFeHByZXNzaW9uUnVsZU5hbWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKENsYXNzLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSkge1xuICAgIGlmIChwcmVjZWRlbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHByZWNlZGVuY2UgPSBvcGFjaXR5OyAvLy9cblxuICAgICAgb3BhY2l0eSA9IGNoaWxkTm9kZXM7IC8vL1xuXG4gICAgICBjaGlsZE5vZGVzID0gcnVsZU5hbWU7ICAvLy9cblxuICAgICAgcnVsZU5hbWUgPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gRXhwcmVzc2lvbk5vZGU7XG4gICAgfVxuXG4gICAgY29uc3QgZXhwcmVzc2lvbk5vZGUgPSBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKENsYXNzLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbk5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFeHByZXNzaW9uTm9kZSIsImdldE5vZGUiLCJub2RlIiwidG9rZW5UeXBlIiwiTlVMTF9UT0tFTl9UWVBFIiwic29tZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiTlVMTCIsIm51bGxOb2RlIiwiZ2V0U3RyaW5nTGl0ZXJhbCIsInN0cmluZ0xpdGVyYWwiLCJTVFJJTkdfTElURVJBTF9UT0tFTl9UWVBFIiwiZ2V0TnVtYmVyIiwibnVtYmVyIiwiTlVNQkVSX1RPS0VOX1RZUEUiLCJUUlVFIiwiTnVtYmVyIiwiZ2V0Qm9vbGVhbiIsImJvb2xlYW4iLCJCT09MRUFOX1RPS0VOX1RZUEUiLCJGQUxTRSIsImdldFNvbWVOb2RlIiwicnVsZU5hbWUiLCJTT01FX1JVTEVfTkFNRSIsInNvbWVOb2RlIiwiZ2V0Tm9kZUJ5UnVsZU5hbWUiLCJnZXRFdmVyeU5vZGUiLCJFVkVSWV9SVUxFX05BTUUiLCJldmVyeU5vZGUiLCJnZXRSZWR1Y2VOb2RlIiwiUkVEVUNFX1JVTEVfTkFNRSIsInJlZHVjZU5vZGUiLCJnZXRUZXJuYXJ5Tm9kZSIsIlRFUk5BUllfUlVMRV9OQU1FIiwidGVybmFyeU5vZGUiLCJnZXRWYXJpYWJsZU5vZGUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJ2YXJpYWJsZU5vZGUiLCJnZXROb2RlUXVlcnlOb2RlIiwiTk9ERV9RVUVSWV9SVUxFX05BTUUiLCJub2RlUXVlcnlOb2RlIiwiZ2V0Tm9kZXNRdWVyeU5vZGUiLCJOT0RFU19RVUVSWV9SVUxFX05BTUUiLCJub2RlU1F1ZXJ5Tm9kZSIsImdldENvbXBhcmlzb25Ob2RlIiwiQ09NUEFSSVNPTl9SVUxFX05BTUUiLCJjb21wYXJpc29uTm9kZSIsImdldFJldHVybkJsb2NrTm9kZSIsIlJFVFVSTl9CTE9DS19SVUxFX05BTUUiLCJyZXR1cm5CbG9ja05vZGUiLCJnZXRQcm9jZWR1cmVDYWxsTm9kZSIsIlBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSIsInByb2NlZHVyZUNhbGxOb2RlIiwiZ2V0TmVnYXRlZEV4cHJlc3Npb25Ob2RlIiwiTkVHQVRFRF9FWFBSRVNTSU9OX1JVTEVfTkFNRSIsIm5lZ2F0ZWRFeHByZXNzaW9uTm9kZSIsImdldExvZ2ljYWxFeHByZXNzaW9uTm9kZSIsIkxPR0lDQUxfRVhQUkVTU0lPTl9SVUxFX05BTUUiLCJsb2dpY2FsRXhwcmVzc2lvblJ1bGVOYW1lIiwiZ2V0QnJhY2tldGVkRXhwcmVzc2lvbk5vZGUiLCJCUkFDS0VURURfRVhQUkVTU0lPTl9SVUxFX05BTUUiLCJicmFja2V0ZWRFeHByZXNzaW9uUnVsZU5hbWUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJDbGFzcyIsImNoaWxkTm9kZXMiLCJvcGFjaXR5IiwicHJlY2VkZW5jZSIsInVuZGVmaW5lZCIsImV4cHJlc3Npb25Ob2RlIiwiTm9uVGVybWluYWxOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQXFCcUJBOzs7K0RBbkJBO3NFQUNPO3lCQUVNOzBCQUNnRTt5QkFhbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEMsSUFBQSxBQUFNQSwrQkFBTjtjQUFNQTthQUFBQTtnQ0FBQUE7UUFBTixPQUFBLGtCQUFNQTs7a0JBQUFBOztZQUNuQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLE9BQU87Z0JBRVgsSUFBTUMsWUFBWUMsMkJBQWU7Z0JBRWpDLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsU0FBQ0M7b0JBQ3JCLElBQU1DLFVBQVVELGFBQWFFLFVBQVU7b0JBRXZDLElBQUlELFlBQVlFLGVBQUksRUFBRTt3QkFDcEJQLE9BQU9RLGlCQUFRO3dCQUVmLE9BQU87b0JBQ1Q7Z0JBQ0YsR0FBR1A7Z0JBRUgsT0FBT0Q7WUFDVDs7O1lBRUFTLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQyxnQkFBZ0I7Z0JBRXBCLElBQU1ULFlBQVlVLHFDQUF5QjtnQkFFM0MsSUFBSSxDQUFDUixnQkFBZ0IsQ0FBQyxTQUFDQztvQkFDckIsSUFBTUMsVUFBVUQsYUFBYUUsVUFBVTtvQkFFdkNJLGdCQUFnQkwsU0FBVSxHQUFHO29CQUU3QixPQUFPO2dCQUNULEdBQUdKO2dCQUVILE9BQU9TO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUMsU0FBUztnQkFFYixJQUFNWixZQUFZYSw2QkFBaUIsRUFBRSxHQUFHO2dCQUV4QyxJQUFJLENBQUNYLGdCQUFnQixDQUFDLFNBQUNDO29CQUNyQixJQUFNQyxVQUFVRCxhQUFhRSxVQUFVO29CQUV2QyxJQUFJRCxZQUFZVSxlQUFJLEVBQUU7d0JBQ3BCRixTQUFTRyxPQUFPWDt3QkFFaEIsT0FBTztvQkFDVDtnQkFDRixHQUFHSjtnQkFFSCxPQUFPWTtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLFVBQVU7Z0JBRWQsSUFBTWpCLFlBQVlrQiw4QkFBa0I7Z0JBRXBDLElBQUksQ0FBQ2hCLGdCQUFnQixDQUFDLFNBQUNDO29CQUNyQixJQUFNQyxVQUFVRCxhQUFhRSxVQUFVO29CQUV2QyxJQUFJRCxZQUFZVSxlQUFJLEVBQUU7d0JBQ3BCRyxVQUFVO3dCQUVWLE9BQU87b0JBQ1Q7b0JBRUEsSUFBSWIsWUFBWWUsZ0JBQUssRUFBRTt3QkFDckJGLFVBQVU7d0JBRVYsT0FBTztvQkFDVDtnQkFDRixHQUFHakI7Z0JBRUgsT0FBT2lCO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsV0FBV0MseUJBQWMsRUFDekJDLFdBQVcsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ0g7Z0JBRXhDLE9BQU9FO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUosV0FBV0ssMEJBQWUsRUFDMUJDLFlBQVksSUFBSSxDQUFDSCxpQkFBaUIsQ0FBQ0g7Z0JBRXpDLE9BQU9NO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTVAsV0FBV1EsMkJBQWdCLEVBQzNCQyxhQUFhLElBQUksQ0FBQ04saUJBQWlCLENBQUNIO2dCQUUxQyxPQUFPUztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1WLFdBQVdXLDRCQUFpQixFQUM1QkMsY0FBYyxJQUFJLENBQUNULGlCQUFpQixDQUFDSDtnQkFFM0MsT0FBT1k7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNYixXQUFXYyw2QkFBa0IsRUFDN0JDLGVBQWUsSUFBSSxDQUFDWixpQkFBaUIsQ0FBQ0g7Z0JBRTVDLE9BQU9lO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTWhCLFdBQVdpQiwrQkFBb0IsRUFDL0JDLGdCQUFnQixJQUFJLENBQUNmLGlCQUFpQixDQUFDSDtnQkFFN0MsT0FBT2tCO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTW5CLFdBQVdvQixnQ0FBcUIsRUFDaENDLGlCQUFpQixJQUFJLENBQUNsQixpQkFBaUIsQ0FBQ0g7Z0JBRTlDLE9BQU9xQjtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU10QixXQUFXdUIsK0JBQW9CLEVBQ25DQyxpQkFBaUIsSUFBSSxDQUFDckIsaUJBQWlCLENBQUNIO2dCQUUxQyxPQUFPd0I7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNekIsV0FBVzBCLGlDQUFzQixFQUNqQ0Msa0JBQWtCLElBQUksQ0FBQ3hCLGlCQUFpQixDQUFDSDtnQkFFL0MsT0FBTzJCO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTTVCLFdBQVc2QixtQ0FBd0IsRUFDbkNDLG9CQUFvQixJQUFJLENBQUMzQixpQkFBaUIsQ0FBQ0g7Z0JBRWpELE9BQU84QjtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU0vQixXQUFXZ0MsdUNBQTRCLEVBQ3ZDQyx3QkFBd0IsSUFBSSxDQUFDOUIsaUJBQWlCLENBQUNIO2dCQUVyRCxPQUFPaUM7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNbEMsV0FBV21DLHVDQUE0QixFQUN2Q0MsNEJBQTRCLElBQUksQ0FBQ2pDLGlCQUFpQixDQUFDSDtnQkFFekQsT0FBT29DO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTXJDLFdBQVdzQyx5Q0FBOEIsRUFDekNDLDhCQUE4QixJQUFJLENBQUNwQyxpQkFBaUIsQ0FBQ0g7Z0JBRTNELE9BQU91QztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLDJDQUEyQ0MsS0FBSyxFQUFFekMsUUFBUSxFQUFFMEMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFVBQVU7Z0JBQ2hHLElBQUlBLGVBQWVDLFdBQVc7b0JBQzVCRCxhQUFhRCxTQUFTLEdBQUc7b0JBRXpCQSxVQUFVRCxZQUFZLEdBQUc7b0JBRXpCQSxhQUFhMUMsVUFBVyxHQUFHO29CQUUzQkEsV0FBV3lDLE9BQU8sR0FBRztvQkFFckJBLFFBbExlakU7Z0JBbUxqQjtnQkFFQSxJQUFNc0UsaUJBQWlCQyx3QkFBZSxDQUFDUCwwQ0FBMEMsQ0FBQ0MsT0FBT3pDLFVBQVUwQyxZQUFZQyxTQUFTQztnQkFFeEgsT0FBT0U7WUFDVDs7O1dBeExtQnRFO0VBQXVCdUUsd0JBQWUifQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbE5vZGUgZnJvbSBcIi4uL25vblRlcm1pbmFsTm9kZVwiO1xuXG5pbXBvcnQgeyBTT01FX1JVTEVfTkFNRSxcbiAgICAgICAgIEVWRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIFJFRFVDRV9SVUxFX05BTUUsXG4gICAgICAgICBURVJOQVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIFBSSU1JVElWRV9SVUxFX05BTUUsXG4gICAgICAgICBDT01QQVJJU09OX1JVTEVfTkFNRSxcbiAgICAgICAgIE5PREVfUVVFUllfUlVMRV9OQU1FLFxuICAgICAgICAgTk9ERVNfUVVFUllfUlVMRV9OQU1FLFxuICAgICAgICAgUkVUVVJOX0JMT0NLX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSxcbiAgICAgICAgIE5FR0FURURfRVhQUkVTU0lPTl9SVUxFX05BTUUsXG4gICAgICAgICBMT0dJQ0FMX0VYUFJFU1NJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQlJBQ0tFVEVEX0VYUFJFU1NJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFeHByZXNzaW9uTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldFNvbWVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gU09NRV9SVUxFX05BTUUsXG4gICAgICAgICAgc29tZU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBzb21lTm9kZTtcbiAgfVxuXG4gIGdldEV2ZXJ5Tm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IEVWRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgICBldmVyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBldmVyeU5vZGU7XG4gIH1cblxuICBnZXRSZWR1Y2VOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUkVEVUNFX1JVTEVfTkFNRSxcbiAgICAgICAgICByZWR1Y2VOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcmVkdWNlTm9kZTtcbiAgfVxuXG4gIGdldFRlcm5hcnlOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVEVSTkFSWV9SVUxFX05BTUUsXG4gICAgICAgICAgdGVybmFyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0ZXJuYXJ5Tm9kZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB2YXJpYWJsZU5vZGU7XG4gIH1cblxuICBnZXRQcmltaXRpdmVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUFJJTUlUSVZFX1JVTEVfTkFNRSxcbiAgICAgICAgICBwcmltaXRpdmVOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJpbWl0aXZlTm9kZTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeU5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBOT0RFX1FVRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgICBub2RlUXVlcnlOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gbm9kZVF1ZXJ5Tm9kZTtcbiAgfVxuXG4gIGdldE5vZGVzUXVlcnlOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gTk9ERVNfUVVFUllfUlVMRV9OQU1FLFxuICAgICAgICAgIG5vZGVTUXVlcnlOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gbm9kZVNRdWVyeU5vZGU7XG4gIH1cblxuICBnZXRDb21wYXJpc29uTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IENPTVBBUklTT05fUlVMRV9OQU1FLFxuICAgICAgY29tcGFyaXNvbk5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBjb21wYXJpc29uTm9kZTtcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFJFVFVSTl9CTE9DS19SVUxFX05BTUUsXG4gICAgICAgICAgcmV0dXJuQmxvY2tOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcmV0dXJuQmxvY2tOb2RlO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlQ2FsbE5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUsXG4gICAgICAgICAgcHJvY2VkdXJlQ2FsbE5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVDYWxsTm9kZTtcbiAgfVxuXG4gIGdldE5lZ2F0ZWRFeHByZXNzaW9uTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IE5FR0FURURfRVhQUkVTU0lPTl9SVUxFX05BTUUsXG4gICAgICAgICAgbmVnYXRlZEV4cHJlc3Npb25Ob2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gbmVnYXRlZEV4cHJlc3Npb25Ob2RlO1xuICB9XG5cbiAgZ2V0TG9naWNhbEV4cHJlc3Npb25Ob2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gTE9HSUNBTF9FWFBSRVNTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgICBsb2dpY2FsRXhwcmVzc2lvblJ1bGVOYW1lID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gbG9naWNhbEV4cHJlc3Npb25SdWxlTmFtZTtcbiAgfVxuXG4gIGdldEJyYWNrZXRlZEV4cHJlc3Npb25Ob2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gQlJBQ0tFVEVEX0VYUFJFU1NJT05fUlVMRV9OQU1FLFxuICAgICAgICAgIGJyYWNrZXRlZEV4cHJlc3Npb25SdWxlTmFtZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIGJyYWNrZXRlZEV4cHJlc3Npb25SdWxlTmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoQ2xhc3MsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKSB7XG4gICAgaWYgKHByZWNlZGVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJlY2VkZW5jZSA9IG9wYWNpdHk7IC8vL1xuXG4gICAgICBvcGFjaXR5ID0gY2hpbGROb2RlczsgLy8vXG5cbiAgICAgIGNoaWxkTm9kZXMgPSBydWxlTmFtZTsgIC8vL1xuXG4gICAgICBydWxlTmFtZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBFeHByZXNzaW9uTm9kZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHByZXNzaW9uTm9kZSA9IE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoQ2xhc3MsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBleHByZXNzaW9uTm9kZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkV4cHJlc3Npb25Ob2RlIiwiZ2V0U29tZU5vZGUiLCJydWxlTmFtZSIsIlNPTUVfUlVMRV9OQU1FIiwic29tZU5vZGUiLCJnZXROb2RlQnlSdWxlTmFtZSIsImdldEV2ZXJ5Tm9kZSIsIkVWRVJZX1JVTEVfTkFNRSIsImV2ZXJ5Tm9kZSIsImdldFJlZHVjZU5vZGUiLCJSRURVQ0VfUlVMRV9OQU1FIiwicmVkdWNlTm9kZSIsImdldFRlcm5hcnlOb2RlIiwiVEVSTkFSWV9SVUxFX05BTUUiLCJ0ZXJuYXJ5Tm9kZSIsImdldFZhcmlhYmxlTm9kZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsInZhcmlhYmxlTm9kZSIsImdldFByaW1pdGl2ZU5vZGUiLCJQUklNSVRJVkVfUlVMRV9OQU1FIiwicHJpbWl0aXZlTm9kZSIsImdldE5vZGVRdWVyeU5vZGUiLCJOT0RFX1FVRVJZX1JVTEVfTkFNRSIsIm5vZGVRdWVyeU5vZGUiLCJnZXROb2Rlc1F1ZXJ5Tm9kZSIsIk5PREVTX1FVRVJZX1JVTEVfTkFNRSIsIm5vZGVTUXVlcnlOb2RlIiwiZ2V0Q29tcGFyaXNvbk5vZGUiLCJDT01QQVJJU09OX1JVTEVfTkFNRSIsImNvbXBhcmlzb25Ob2RlIiwiZ2V0UmV0dXJuQmxvY2tOb2RlIiwiUkVUVVJOX0JMT0NLX1JVTEVfTkFNRSIsInJldHVybkJsb2NrTm9kZSIsImdldFByb2NlZHVyZUNhbGxOb2RlIiwiUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIiwicHJvY2VkdXJlQ2FsbE5vZGUiLCJnZXROZWdhdGVkRXhwcmVzc2lvbk5vZGUiLCJORUdBVEVEX0VYUFJFU1NJT05fUlVMRV9OQU1FIiwibmVnYXRlZEV4cHJlc3Npb25Ob2RlIiwiZ2V0TG9naWNhbEV4cHJlc3Npb25Ob2RlIiwiTE9HSUNBTF9FWFBSRVNTSU9OX1JVTEVfTkFNRSIsImxvZ2ljYWxFeHByZXNzaW9uUnVsZU5hbWUiLCJnZXRCcmFja2V0ZWRFeHByZXNzaW9uTm9kZSIsIkJSQUNLRVRFRF9FWFBSRVNTSU9OX1JVTEVfTkFNRSIsImJyYWNrZXRlZEV4cHJlc3Npb25SdWxlTmFtZSIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZSIsIkNsYXNzIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJwcmVjZWRlbmNlIiwidW5kZWZpbmVkIiwiZXhwcmVzc2lvbk5vZGUiLCJOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBbUJxQkE7OztzRUFqQk87eUJBZW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhDLElBQUEsQUFBTUEsK0JBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxXQUFXQyx5QkFBYyxFQUN6QkMsV0FBVyxJQUFJLENBQUNDLGlCQUFpQixDQUFDSDtnQkFFeEMsT0FBT0U7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNSixXQUFXSywwQkFBZSxFQUMxQkMsWUFBWSxJQUFJLENBQUNILGlCQUFpQixDQUFDSDtnQkFFekMsT0FBT007WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNUCxXQUFXUSwyQkFBZ0IsRUFDM0JDLGFBQWEsSUFBSSxDQUFDTixpQkFBaUIsQ0FBQ0g7Z0JBRTFDLE9BQU9TO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTVYsV0FBV1csNEJBQWlCLEVBQzVCQyxjQUFjLElBQUksQ0FBQ1QsaUJBQWlCLENBQUNIO2dCQUUzQyxPQUFPWTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1iLFdBQVdjLDZCQUFrQixFQUM3QkMsZUFBZSxJQUFJLENBQUNaLGlCQUFpQixDQUFDSDtnQkFFNUMsT0FBT2U7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNaEIsV0FBV2lCLDhCQUFtQixFQUM5QkMsZ0JBQWdCLElBQUksQ0FBQ2YsaUJBQWlCLENBQUNIO2dCQUU3QyxPQUFPa0I7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNbkIsV0FBV29CLCtCQUFvQixFQUMvQkMsZ0JBQWdCLElBQUksQ0FBQ2xCLGlCQUFpQixDQUFDSDtnQkFFN0MsT0FBT3FCO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTXRCLFdBQVd1QixnQ0FBcUIsRUFDaENDLGlCQUFpQixJQUFJLENBQUNyQixpQkFBaUIsQ0FBQ0g7Z0JBRTlDLE9BQU93QjtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU16QixXQUFXMEIsK0JBQW9CLEVBQ25DQyxpQkFBaUIsSUFBSSxDQUFDeEIsaUJBQWlCLENBQUNIO2dCQUUxQyxPQUFPMkI7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNNUIsV0FBVzZCLGlDQUFzQixFQUNqQ0Msa0JBQWtCLElBQUksQ0FBQzNCLGlCQUFpQixDQUFDSDtnQkFFL0MsT0FBTzhCO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTS9CLFdBQVdnQyxtQ0FBd0IsRUFDbkNDLG9CQUFvQixJQUFJLENBQUM5QixpQkFBaUIsQ0FBQ0g7Z0JBRWpELE9BQU9pQztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1sQyxXQUFXbUMsdUNBQTRCLEVBQ3ZDQyx3QkFBd0IsSUFBSSxDQUFDakMsaUJBQWlCLENBQUNIO2dCQUVyRCxPQUFPb0M7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNckMsV0FBV3NDLHVDQUE0QixFQUN2Q0MsNEJBQTRCLElBQUksQ0FBQ3BDLGlCQUFpQixDQUFDSDtnQkFFekQsT0FBT3VDO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTXhDLFdBQVd5Qyx5Q0FBOEIsRUFDekNDLDhCQUE4QixJQUFJLENBQUN2QyxpQkFBaUIsQ0FBQ0g7Z0JBRTNELE9BQU8wQztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLDJDQUEyQ0MsS0FBSyxFQUFFNUMsUUFBUSxFQUFFNkMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFVBQVU7Z0JBQ2hHLElBQUlBLGVBQWVDLFdBQVc7b0JBQzVCRCxhQUFhRCxTQUFTLEdBQUc7b0JBRXpCQSxVQUFVRCxZQUFZLEdBQUc7b0JBRXpCQSxhQUFhN0MsVUFBVyxHQUFHO29CQUUzQkEsV0FBVzRDLE9BQU8sR0FBRztvQkFFckJBLFFBN0dlOUM7Z0JBOEdqQjtnQkFFQSxJQUFNbUQsaUJBQWlCQyx3QkFBZSxDQUFDUCwwQ0FBMEMsQ0FBQ0MsT0FBTzVDLFVBQVU2QyxZQUFZQyxTQUFTQztnQkFFeEgsT0FBT0U7WUFDVDs7O1dBbkhtQm5EO0VBQXVCb0Qsd0JBQWUifQ==