occam-verify-cli 1.0.444 → 1.0.448

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 (55) hide show
  1. package/lib/context/file.js +5 -5
  2. package/lib/context/local.js +27 -27
  3. package/lib/context/release.js +3 -7
  4. package/lib/context/temporary.js +13 -13
  5. package/lib/element/axiom.js +19 -19
  6. package/lib/element/axiomLemmaTheoremConjecture.js +25 -32
  7. package/lib/element/derivation.js +14 -14
  8. package/lib/element/hypothesis.js +14 -55
  9. package/lib/element/metaLemmaMetatheorem.js +2 -35
  10. package/lib/element/metavariable.js +9 -5
  11. package/lib/element/premise.js +67 -140
  12. package/lib/element/proof.js +7 -7
  13. package/lib/element/proofAssertion.js +203 -0
  14. package/lib/element/reference.js +5 -3
  15. package/lib/element/rule.js +26 -26
  16. package/lib/element/statement.js +8 -8
  17. package/lib/element/step.js +14 -93
  18. package/lib/element/subDerivation.js +14 -14
  19. package/lib/element/subproof.js +11 -11
  20. package/lib/element/supposition.js +62 -152
  21. package/lib/metaTypes.js +19 -8
  22. package/lib/node/subDerivation.js +1 -8
  23. package/lib/node/subproof.js +1 -8
  24. package/lib/utilities/brackets.js +6 -11
  25. package/lib/utilities/instance.js +24 -11
  26. package/lib/utilities/string.js +6 -6
  27. package/lib/utilities/unification.js +21 -21
  28. package/package.json +6 -6
  29. package/src/context/file.js +3 -3
  30. package/src/context/local.js +28 -28
  31. package/src/context/release.js +2 -9
  32. package/src/context/temporary.js +4 -4
  33. package/src/element/axiom.js +26 -26
  34. package/src/element/axiomLemmaTheoremConjecture.js +25 -44
  35. package/src/element/derivation.js +12 -12
  36. package/src/element/hypothesis.js +14 -16
  37. package/src/element/metaLemmaMetatheorem.js +1 -66
  38. package/src/element/metavariable.js +9 -4
  39. package/src/element/premise.js +94 -62
  40. package/src/element/proof.js +6 -6
  41. package/src/element/proofAssertion.js +76 -0
  42. package/src/element/reference.js +4 -2
  43. package/src/element/rule.js +22 -22
  44. package/src/element/statement.js +6 -6
  45. package/src/element/step.js +12 -50
  46. package/src/element/subDerivation.js +12 -12
  47. package/src/element/subproof.js +7 -7
  48. package/src/element/supposition.js +74 -73
  49. package/src/metaTypes.js +23 -10
  50. package/src/node/subDerivation.js +0 -7
  51. package/src/node/subproof.js +0 -7
  52. package/src/utilities/brackets.js +5 -8
  53. package/src/utilities/instance.js +24 -6
  54. package/src/utilities/string.js +7 -7
  55. package/src/utilities/unification.js +24 -24
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _element = /*#__PURE__*/ _interop_require_default(require("../element"));
12
- var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
11
+ var _proofAssertion = /*#__PURE__*/ _interop_require_default(require("./proofAssertion"));
13
12
  var _temporary = /*#__PURE__*/ _interop_require_default(require("../context/temporary"));
14
13
  var _assign = /*#__PURE__*/ _interop_require_default(require("../process/assign"));
14
+ var _elements = require("../elements");
15
15
  var _json = require("../utilities/json");
16
16
  function _assert_this_initialized(self) {
17
17
  if (self === void 0) {
@@ -28,23 +28,6 @@ function _class_call_check(instance, Constructor) {
28
28
  throw new TypeError("Cannot call a class as a function");
29
29
  }
30
30
  }
31
- function _construct(Parent, args, Class) {
32
- if (_is_native_reflect_construct()) {
33
- _construct = Reflect.construct;
34
- } else {
35
- _construct = function construct(Parent, args, Class) {
36
- var a = [
37
- null
38
- ];
39
- a.push.apply(a, args);
40
- var Constructor = Function.bind.apply(Parent, a);
41
- var instance = new Constructor();
42
- if (Class) _set_prototype_of(instance, Class.prototype);
43
- return instance;
44
- };
45
- }
46
- return _construct.apply(null, arguments);
47
- }
48
31
  function _defineProperties(target, props) {
49
32
  for(var i = 0; i < props.length; i++){
50
33
  var descriptor = props[i];
@@ -96,50 +79,6 @@ function _interop_require_default(obj) {
96
79
  default: obj
97
80
  };
98
81
  }
99
- function _getRequireWildcardCache(nodeInterop) {
100
- if (typeof WeakMap !== "function") return null;
101
- var cacheBabelInterop = new WeakMap();
102
- var cacheNodeInterop = new WeakMap();
103
- return (_getRequireWildcardCache = function(nodeInterop) {
104
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
105
- })(nodeInterop);
106
- }
107
- function _interop_require_wildcard(obj, nodeInterop) {
108
- if (!nodeInterop && obj && obj.__esModule) {
109
- return obj;
110
- }
111
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
112
- return {
113
- default: obj
114
- };
115
- }
116
- var cache = _getRequireWildcardCache(nodeInterop);
117
- if (cache && cache.has(obj)) {
118
- return cache.get(obj);
119
- }
120
- var newObj = {
121
- __proto__: null
122
- };
123
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
124
- for(var key in obj){
125
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
126
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
127
- if (desc && (desc.get || desc.set)) {
128
- Object.defineProperty(newObj, key, desc);
129
- } else {
130
- newObj[key] = obj[key];
131
- }
132
- }
133
- }
134
- newObj.default = obj;
135
- if (cache) {
136
- cache.set(obj, newObj);
137
- }
138
- return newObj;
139
- }
140
- function _is_native_function(fn) {
141
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
142
- }
143
82
  function _possible_constructor_return(self, call) {
144
83
  if (call && (_type_of(call) === "object" || typeof call === "function")) {
145
84
  return call;
@@ -157,32 +96,6 @@ function _type_of(obj) {
157
96
  "@swc/helpers - typeof";
158
97
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
159
98
  }
160
- function _wrap_native_super(Class) {
161
- var _cache = typeof Map === "function" ? new Map() : undefined;
162
- _wrap_native_super = function wrapNativeSuper(Class) {
163
- if (Class === null || !_is_native_function(Class)) return Class;
164
- if (typeof Class !== "function") {
165
- throw new TypeError("Super expression must either be null or a function");
166
- }
167
- if (typeof _cache !== "undefined") {
168
- if (_cache.has(Class)) return _cache.get(Class);
169
- _cache.set(Class, Wrapper);
170
- }
171
- function Wrapper() {
172
- return _construct(Class, arguments, _get_prototype_of(this).constructor);
173
- }
174
- Wrapper.prototype = Object.create(Class.prototype, {
175
- constructor: {
176
- value: Wrapper,
177
- enumerable: false,
178
- writable: true,
179
- configurable: true
180
- }
181
- });
182
- return _set_prototype_of(Wrapper, Class);
183
- };
184
- return _wrap_native_super(Class);
185
- }
186
99
  function _is_native_reflect_construct() {
187
100
  try {
188
101
  var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
@@ -192,8 +105,8 @@ function _is_native_reflect_construct() {
192
105
  })();
193
106
  }
194
107
  var _Supposition;
195
- var _default = (0, _elements.define)((_Supposition = /*#__PURE__*/ function(Element) {
196
- _inherits(Supposition, Element);
108
+ var _default = (0, _elements.define)((_Supposition = /*#__PURE__*/ function(ProofAssertion) {
109
+ _inherits(Supposition, ProofAssertion);
197
110
  function Supposition(context, string, node, statement, procedureCall) {
198
111
  _class_call_check(this, Supposition);
199
112
  var _this;
@@ -202,17 +115,10 @@ var _default = (0, _elements.define)((_Supposition = /*#__PURE__*/ function(Elem
202
115
  string,
203
116
  node
204
117
  ]);
205
- _this.statement = statement;
206
118
  _this.procedureCall = procedureCall;
207
119
  return _this;
208
120
  }
209
121
  _create_class(Supposition, [
210
- {
211
- key: "getStatement",
212
- value: function getStatement() {
213
- return this.statement;
214
- }
215
- },
216
122
  {
217
123
  key: "getProcedureCall",
218
124
  value: function getProcedureCall() {
@@ -227,16 +133,17 @@ var _default = (0, _elements.define)((_Supposition = /*#__PURE__*/ function(Elem
227
133
  context = temporaryContext; ///
228
134
  var node = this.getNode(), suppositionString = this.getString(); ///
229
135
  context.trace("Verifying the '".concat(suppositionString, "' supposition..."), node);
230
- if (this.statement === null && this.procedureCall === null) {
136
+ var statement = this.getStatement();
137
+ if (statement === null && this.procedureCall === null) {
231
138
  context.debug("Unable to verify the '".concat(suppositionString, "' supposition because it is nonsense."), node);
232
139
  } else {
233
- if (this.statement !== null) {
234
- var stated = true, assignments = [], statementValidates = this.statement.validate(assignments, stated, context);
140
+ if (statement !== null) {
141
+ var stated = true, assignments = [], statementValidates = statement.validate(assignments, stated, context);
235
142
  if (statementValidates) {
236
143
  var assignmentsAssigned = (0, _assign.default)(assignments, context);
237
144
  if (assignmentsAssigned) {
238
- var Step = _elements.default.Step, step = Step.fromStatement(this.statement, context), stepOrSubproof = step; ///
239
- context.addStepOrSubproof(stepOrSubproof);
145
+ var subproofOrProofAssertion = this; ///
146
+ context.addSubproofOrProofAssertion(subproofOrProofAssertion);
240
147
  verifies = true;
241
148
  }
242
149
  }
@@ -265,8 +172,9 @@ var _default = (0, _elements.define)((_Supposition = /*#__PURE__*/ function(Elem
265
172
  context = this.getContext();
266
173
  var generalContext = context; ///
267
174
  context = specificContext; ///
268
- if (this.statement !== null) {
269
- var statementUnifiesIndependently = this.statement.unifyIndependently(substitutions, generalContext, specificContext);
175
+ var statement = this.getStatement();
176
+ if (statement !== null) {
177
+ var statementUnifiesIndependently = statement.unifyIndependently(substitutions, generalContext, specificContext);
270
178
  if (statementUnifiesIndependently) {
271
179
  unifiesIndependently = true;
272
180
  }
@@ -284,73 +192,75 @@ var _default = (0, _elements.define)((_Supposition = /*#__PURE__*/ function(Elem
284
192
  }
285
193
  },
286
194
  {
287
- key: "unifyStepOrSubproof",
288
- value: function unifyStepOrSubproof(stepOrSubproof, substitutions, context) {
289
- var stepOrSubproofUnifies = false;
290
- var stepOrSubProofStep = stepOrSubproof.isStep(), subproof = stepOrSubProofStep ? null : stepOrSubproof, step = stepOrSubProofStep ? stepOrSubproof : null;
195
+ key: "unifySubproofOrProosAssertion",
196
+ value: function unifySubproofOrProosAssertion(subproofOrProofAssertion, substitutions, context) {
197
+ var subproofOrProofAssertionUnifies = false;
198
+ var subproofOrProofAssertionProofAssertion = subproofOrProofAssertion.isProofAssertion(), subproof = subproofOrProofAssertionProofAssertion ? null : subproofOrProofAssertion, proofAssertion = subproofOrProofAssertionProofAssertion ? subproofOrProofAssertion : null;
291
199
  substitutions.snapshot();
292
200
  if (subproof !== null) {
293
201
  var subproofUnifies = this.unifySubproof(subproof, substitutions, context);
294
- stepOrSubproofUnifies = subproofUnifies; ///
202
+ if (subproofUnifies) {
203
+ subproofOrProofAssertionUnifies = true;
204
+ }
295
205
  }
296
- if (step !== null) {
297
- var statementUnifies = this.unifyStep(step, substitutions, context);
298
- stepOrSubproofUnifies = statementUnifies; ///
206
+ if (proofAssertion !== null) {
207
+ var proofAssertionUnifies = this.unifyProofAssertion(proofAssertion, substitutions, context);
208
+ if (proofAssertionUnifies) {
209
+ subproofOrProofAssertionUnifies = true;
210
+ }
299
211
  }
300
- if (stepOrSubproofUnifies) {
212
+ if (subproofOrProofAssertionUnifies) {
301
213
  substitutions.resolve(context);
302
214
  }
303
- stepOrSubproofUnifies ? substitutions.continue() : substitutions.rollback(context);
304
- return stepOrSubproofUnifies;
215
+ subproofOrProofAssertionUnifies ? substitutions.continue() : substitutions.rollback(context);
216
+ return subproofOrProofAssertionUnifies;
305
217
  }
306
218
  },
307
219
  {
308
- key: "unifySubproof",
309
- value: function unifySubproof(subproof, substitutions, context) {
310
- var subproofUnifies = false;
311
- var supposition = this, subproofString = subproof.getString(), suppositionStatement = supposition.getStatement(), suppositionStatementString = suppositionStatement.getString();
312
- context.trace("Unifying the '".concat(subproofString, "' subproof with the supposition's '").concat(suppositionStatementString, "' statement..."));
220
+ key: "unifyProofAssertion",
221
+ value: function unifyProofAssertion(proofAssertion, substitutions, context) {
222
+ var stepUnifies = false;
223
+ var node = this.getNode(), suppositionString = this.getString(), proofAssertionString = proofAssertion.getString();
224
+ context.trace("Unifying the '".concat(proofAssertionString, "' proof assertion with the '").concat(suppositionString, "' supposition..."), node);
313
225
  var specificContext = context; ///
314
226
  context = this.getContext();
315
227
  var generalContext = context; ///
316
228
  context = specificContext; ///
317
- if (this.statement !== null) {
318
- var node = this.getNode(), assertionNode = node, assertion = context.findAssertionByAssertionNode(assertionNode);
319
- if (assertion !== null) {}
320
- if (subproofAssertion !== null) {
321
- subproofUnifies = subproofAssertion.unifySubproof(subproof, substitutions, generalContext, specificContext);
322
- }
229
+ var statement = proofAssertion.getStatement(), statementUnifies = this.unifyStatement(statement, substitutions, generalContext, specificContext);
230
+ if (statementUnifies) {
231
+ stepUnifies = true;
323
232
  }
324
- if (subproofUnifies) {
325
- context.debug("...unified the '".concat(subproofString, "' subproof with the supposition's '").concat(suppositionStatementString, "' statement."));
233
+ if (stepUnifies) {
234
+ context.debug("...unified the '".concat(proofAssertionString, "' proof assertion with the '").concat(suppositionString, "' supposition."), node);
326
235
  }
327
- return subproofUnifies;
328
- }
329
- },
330
- {
331
- key: "unifyStep",
332
- value: function unifyStep(step, substitutions, context) {
333
- var stepUnifies;
334
- context = step.getContext();
335
- var statement = step.getStatement(), statementUnifies = this.unifyStatement(statement, substitutions, context);
336
- stepUnifies = statementUnifies; ///
337
236
  return stepUnifies;
338
237
  }
339
238
  },
340
239
  {
341
- key: "unifyStatement",
342
- value: function unifyStatement(statement, substitutions, context) {
343
- var statementUnifies;
344
- var supposition = this, statementString = statement.getString(), suppositionString = supposition.getString();
345
- context.trace("Unifying the '".concat(statementString, "' statement with the '").concat(suppositionString, "' supposition..."));
346
- if (this.statement !== null) {
347
- var generalContext = this.context, specificContext = context; ///
348
- statementUnifies = this.statement.unifyStatement(statement, substitutions, generalContext, specificContext);
240
+ key: "unifySubproof",
241
+ value: function unifySubproof(subproof, substitutions, context) {
242
+ var subproofUnifies = false;
243
+ var node = this.getNode(), subproofString = subproof.getString(), suppositionString = this.getString();
244
+ context.trace("Unifying the '".concat(subproofString, "' subproof with the '").concat(suppositionString, "' supposition..."), node);
245
+ var specificContext = context; ///
246
+ context = this.getContext();
247
+ var generalContext = context; ///
248
+ context = specificContext; ///
249
+ var statement = this.getStatement();
250
+ if (statement !== null) {
251
+ var statementNode = statement.getNode(), subproofAssertionNode = statementNode.getSubproofAssertionNode();
252
+ if (subproofAssertionNode !== null) {
253
+ var _$context = generalContext, assertionNode = subproofAssertionNode, assertion = _$context.findAssertionByAssertionNode(assertionNode);
254
+ if (assertion !== null) {
255
+ var subproofAssertion = assertion; ///
256
+ subproofUnifies = subproofAssertion.unifySubproof(subproof, substitutions, generalContext, specificContext);
257
+ }
258
+ }
349
259
  }
350
- if (statementUnifies) {
351
- context.debug("...unified the '".concat(statementString, "' statement with the '").concat(suppositionString, "' supposition."));
260
+ if (subproofUnifies) {
261
+ context.debug("...unified the '".concat(subproofString, "' subproof with the '").concat(suppositionString, "' supposition."), node);
352
262
  }
353
- return statementUnifies;
263
+ return subproofUnifies;
354
264
  }
355
265
  },
356
266
  {
@@ -405,6 +315,6 @@ var _default = (0, _elements.define)((_Supposition = /*#__PURE__*/ function(Elem
405
315
  }
406
316
  ]);
407
317
  return Supposition;
408
- }(_wrap_native_super(_element.default)), _define_property(_Supposition, "name", "Supposition"), _Supposition));
318
+ }(_proofAssertion.default), _define_property(_Supposition, "name", "Supposition"), _Supposition));
409
319
 
410
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3N1cHBvc2l0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IFRlbXBvcmFyeUNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvdGVtcG9yYXJ5XCI7XG5pbXBvcnQgYXNzaWduQXNzaWdubWVudHMgZnJvbSBcIi4uL3Byb2Nlc3MvYXNzaWduXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdGVybXNGcm9tSlNPTiwgZnJhbWVzRnJvbUpTT04sIHN0YXRlbWVudEZyb21KU09OLCBwcm9jZWR1cmVDYWxsRnJvbUpTT04sIHRlcm1zVG9UZXJtc0pTT04sIGZyYW1lc1RvRnJhbWVzSlNPTiwgc3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OLCBwcm9jZWR1cmVDYWxsVG9Qcm9jZWR1cmVDYWxsSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU3VwcG9zaXRpb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBzdGF0ZW1lbnQsIHByb2NlZHVyZUNhbGwpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy5zdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7XG4gICAgdGhpcy5wcm9jZWR1cmVDYWxsID0gcHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVDYWxsKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGw7XG4gIH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVtcG9yYXJ5Q29udGV4dCA9IFRlbXBvcmFyeUNvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgICBjb250ZXh0ID0gdGVtcG9yYXJ5Q29udGV4dDsgLy8vXG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc3VwcG9zaXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbi4uLmAsIG5vZGUpO1xuXG4gICAgaWYgKCh0aGlzLnN0YXRlbWVudCA9PT0gbnVsbCkgJiYgKHRoaXMucHJvY2VkdXJlQ2FsbCA9PT0gbnVsbCkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24gYmVjYXVzZSBpdCBpcyBub25zZW5zZS5gLCBub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgU3RlcCB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICAgICAgICBzdGVwID0gU3RlcC5mcm9tU3RhdGVtZW50KHRoaXMuc3RhdGVtZW50LCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIHN0ZXBPclN1YnByb29mID0gc3RlcDsgIC8vL1xuXG4gICAgICAgICAgICBjb250ZXh0LmFkZFN0ZXBPclN1YnByb29mKHN0ZXBPclN1YnByb29mKTtcblxuICAgICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gbnVsbCxcbiAgICAgICAgICAgICAgcHJvY2VkdXJlQ2FsbFZlcmlmaWVzID0gdGhpcy5wcm9jZWR1cmVDYWxsLnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAocHJvY2VkdXJlQ2FsbFZlcmlmaWVzKSB7XG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICB0aGlzLnNldENvbnRleHQoY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHVuaWZ5SW5kZXBlbmRlbnRseShzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc3VwcG9zaXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24gaW5kZXBlbmRlbnRseS4uLmAsIG5vZGUpO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VW5pZmllc0luZGVwZW5kZW50bHkgPSB0aGlzLnN0YXRlbWVudC51bmlmeUluZGVwZW5kZW50bHkoc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzSW5kZXBlbmRlbnRseSkge1xuICAgICAgICB1bmlmaWVzSW5kZXBlbmRlbnRseSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvY2VkdXJlQ2FsbFJlc29sdmVkSW5kZXBlbmRlbnRseSA9IHRoaXMucHJvY2VkdXJlQ2FsbC51bmlmeUluZGVwZW5kZW50bHkoc3Vic3RpdHV0aW9ucywgY29udGV4dCk7XG5cbiAgICAgIGlmIChwcm9jZWR1cmVDYWxsUmVzb2x2ZWRJbmRlcGVuZGVudGx5KSB7XG4gICAgICAgIHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodW5pZmllc0luZGVwZW5kZW50bHkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24gaW5kZXBlbmRlbmx5LmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmlmaWVzSW5kZXBlbmRlbnRseTtcbiAgfVxuXG4gIHVuaWZ5U3RlcE9yU3VicHJvb2Yoc3RlcE9yU3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RlcE9yU3VicHJvb2ZVbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdGVwT3JTdWJQcm9vZlN0ZXAgPSBzdGVwT3JTdWJwcm9vZi5pc1N0ZXAoKSxcbiAgICAgICAgICBzdWJwcm9vZiA9IHN0ZXBPclN1YlByb29mU3RlcCA/XG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcE9yU3VicHJvb2YsXG4gICAgICAgICAgc3RlcCA9IHN0ZXBPclN1YlByb29mU3RlcCA/XG4gICAgICAgICAgICAgICAgICAgc3RlcE9yU3VicHJvb2YgOlxuICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICAgIHN1YnN0aXR1dGlvbnMuc25hcHNob3QoKTtcblxuICAgIGlmIChzdWJwcm9vZiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZVbmlmaWVzID0gdGhpcy51bmlmeVN1YnByb29mKHN1YnByb29mLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KTtcblxuICAgICAgc3RlcE9yU3VicHJvb2ZVbmlmaWVzID0gc3VicHJvb2ZVbmlmaWVzOyAvLy9cbiAgICB9XG5cbiAgICBpZiAoc3RlcCAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMudW5pZnlTdGVwKHN0ZXAsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICBzdGVwT3JTdWJwcm9vZlVuaWZpZXMgPSBzdGF0ZW1lbnRVbmlmaWVzOyAgLy8vXG4gICAgfVxuXG4gICAgaWYgKHN0ZXBPclN1YnByb29mVW5pZmllcykge1xuICAgICAgc3Vic3RpdHV0aW9ucy5yZXNvbHZlKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHN0ZXBPclN1YnByb29mVW5pZmllcyA/XG4gICAgICBzdWJzdGl0dXRpb25zLmNvbnRpbnVlKCkgOlxuICAgICAgICBzdWJzdGl0dXRpb25zLnJvbGxiYWNrKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN0ZXBPclN1YnByb29mVW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb2ZVbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbiA9IHRoaXMsIC8vL1xuICAgICAgICAgIHN1YnByb29mU3RyaW5nID0gc3VicHJvb2YuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3VwcG9zaXRpb25TdGF0ZW1lbnQgPSBzdXBwb3NpdGlvbi5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudFN0cmluZyA9IHN1cHBvc2l0aW9uU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgc3VwcG9zaXRpb24ncyAnJHtzdXBwb3NpdGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmApO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICBpZiAodGhpcy5zdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICAgIGFzc2VydGlvbk5vZGUgPSBub2RlLCAvLy8gXG4gICAgICAgICAgICBhc3NlcnRpb24gPSBjb250ZXh0LmZpbmRBc3NlcnRpb25CeUFzc2VydGlvbk5vZGUoYXNzZXJ0aW9uTm9kZSk7XG5cbiAgICAgIGlmIChhc3NlcnRpb24gIT09IG51bGwpIHt9XG5cbiAgICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBzdWJwcm9vZlVuaWZpZXMgPSBzdWJwcm9vZkFzc2VydGlvbi51bmlmeVN1YnByb29mKHN1YnByb29mLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3VicHJvb2ZVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlIHN1cHBvc2l0aW9uJ3MgJyR7c3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mVW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5U3RlcChzdGVwLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0ZXBVbmlmaWVzO1xuXG4gICAgY29udGV4dCA9IHN0ZXAuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RlcC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpO1xuXG4gICAgc3RlcFVuaWZpZXMgPSBzdGF0ZW1lbnRVbmlmaWVzOyAgLy8vXG5cbiAgICByZXR1cm4gc3RlcFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllcztcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RyaW5nID0gc3VwcG9zaXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gKTtcblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSB0aGlzLmNvbnRleHQsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQ7ICAvLy9cblxuICAgICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMuc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCBzdXBwb3NpdGlvblVuaWZpZXM7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIHNwZWNpZmljU3VwcG9zaXRpb24gPSBzdXBwb3NpdGlvbiwgIC8vL1xuICAgICAgICAgIGdlbmVyYWxTdXBwb3NpdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIHNwZWNpZmljU3VwcG9zaXRpb25TdHJpbmcgPSBzcGVjaWZpY1N1cHBvc2l0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtnZW5lcmFsU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbi4uLmAsIG5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3BlY2lmaWNTdXBwb3NpdGlvbi5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgc3VwcG9zaXRpb25VbmlmaWVzID0gc3RhdGVtZW50VW5pZmllczsgIC8vL1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3BlY2lmaWNTdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uIHdpdGggdGhlICcke2dlbmVyYWxTdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBwb3NpdGlvblVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGZyYW1lcyxcbiAgICAgICAgdGVybXM7XG5cbiAgICBmcmFtZXMgPSB0aGlzLmNvbnRleHQuZ2V0RnJhbWVzKCk7XG5cbiAgICB0ZXJtcyA9IHRoaXMuY29udGV4dC5nZXRUZXJtcygpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlQ2FsbEpTT04gPSBwcm9jZWR1cmVDYWxsVG9Qcm9jZWR1cmVDYWxsSlNPTih0aGlzLnByb2NlZHVyZUNhbGwpLFxuICAgICAgICAgIHN0YXRlbWVudEpTT04gPSBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04odGhpcy5zdGF0ZW1lbnQpLFxuICAgICAgICAgIGZyYW1lc0pTT04gPSBmcmFtZXNUb0ZyYW1lc0pTT04oZnJhbWVzKSxcbiAgICAgICAgICB0ZXJtc0pTT04gPSB0ZXJtc1RvVGVybXNKU09OKHRlcm1zKTtcblxuICAgIGZyYW1lcyA9IGZyYW1lc0pTT047ICAvLy9cblxuICAgIHRlcm1zID0gdGVybXNKU09OOyAgLy8vXG5cbiAgICBjb25zdCBwcm9jZWR1cmVDYWxsID0gcHJvY2VkdXJlQ2FsbEpTT04sICAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHByb2NlZHVyZUNhbGwsXG4gICAgICAgICAgICBzdGF0ZW1lbnQsXG4gICAgICAgICAgICBmcmFtZXMsXG4gICAgICAgICAgICB0ZXJtc1xuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJTdXBwb3NpdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdGVybXMgPSB0ZXJtc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIGZyYW1lcyA9IGZyYW1lc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgdGVtcG9yYXJ5Q29udGV4dCA9IFRlbXBvcmFyeUNvbnRleHQuZnJvbVRlcm1zQW5kRnJhbWVzKHRlcm1zLCBmcmFtZXMsIGNvbnRleHQpO1xuXG4gICAgbGV0IHN0cmluZztcblxuICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAocHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgc3RyaW5nID0gcHJvY2VkdXJlQ2FsbC5nZXRTdHJpbmcoKTtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSB0ZW1wb3JhcnlDb250ZXh0OyAvLy9cblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gbmV3IFN1cHBvc2l0aW9uKGNvbnRleHQsIHN0cmluZywgbm9kZSwgc3RhdGVtZW50LCBwcm9jZWR1cmVDYWxsKTtcblxuICAgIHJldHVybiBzdXBwb3NpdGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiU3VwcG9zaXRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsInN0YXRlbWVudCIsInByb2NlZHVyZUNhbGwiLCJnZXRTdGF0ZW1lbnQiLCJnZXRQcm9jZWR1cmVDYWxsIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJ0ZW1wb3JhcnlDb250ZXh0IiwiVGVtcG9yYXJ5Q29udGV4dCIsImZyb21Ob3RoaW5nIiwiZ2V0Tm9kZSIsInN1cHBvc2l0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJkZWJ1ZyIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwic3RhdGVtZW50VmFsaWRhdGVzIiwidmFsaWRhdGUiLCJhc3NpZ25tZW50c0Fzc2lnbmVkIiwiYXNzaWduQXNzaWdubWVudHMiLCJTdGVwIiwiZWxlbWVudHMiLCJzdGVwIiwiZnJvbVN0YXRlbWVudCIsInN0ZXBPclN1YnByb29mIiwiYWRkU3RlcE9yU3VicHJvb2YiLCJwcm9jZWR1cmVDYWxsVmVyaWZpZXMiLCJzZXRDb250ZXh0IiwidW5pZnlJbmRlcGVuZGVudGx5Iiwic3Vic3RpdHV0aW9ucyIsInVuaWZpZXNJbmRlcGVuZGVudGx5Iiwic3BlY2lmaWNDb250ZXh0IiwiZ2V0Q29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3RhdGVtZW50VW5pZmllc0luZGVwZW5kZW50bHkiLCJwcm9jZWR1cmVDYWxsUmVzb2x2ZWRJbmRlcGVuZGVudGx5IiwidW5pZnlTdGVwT3JTdWJwcm9vZiIsInN0ZXBPclN1YnByb29mVW5pZmllcyIsInN0ZXBPclN1YlByb29mU3RlcCIsImlzU3RlcCIsInN1YnByb29mIiwic25hcHNob3QiLCJzdWJwcm9vZlVuaWZpZXMiLCJ1bmlmeVN1YnByb29mIiwic3RhdGVtZW50VW5pZmllcyIsInVuaWZ5U3RlcCIsInJlc29sdmUiLCJjb250aW51ZSIsInJvbGxiYWNrIiwic3VwcG9zaXRpb24iLCJzdWJwcm9vZlN0cmluZyIsInN1cHBvc2l0aW9uU3RhdGVtZW50Iiwic3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmciLCJhc3NlcnRpb25Ob2RlIiwiYXNzZXJ0aW9uIiwiZmluZEFzc2VydGlvbkJ5QXNzZXJ0aW9uTm9kZSIsInN1YnByb29mQXNzZXJ0aW9uIiwic3RlcFVuaWZpZXMiLCJ1bmlmeVN0YXRlbWVudCIsInN0YXRlbWVudFN0cmluZyIsInVuaWZ5U3VwcG9zaXRpb24iLCJzdXBwb3NpdGlvblVuaWZpZXMiLCJzcGVjaWZpY1N1cHBvc2l0aW9uIiwiZ2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nIiwic3BlY2lmaWNTdXBwb3NpdGlvblN0cmluZyIsInRvSlNPTiIsImZyYW1lcyIsInRlcm1zIiwiZ2V0RnJhbWVzIiwiZ2V0VGVybXMiLCJwcm9jZWR1cmVDYWxsSlNPTiIsInByb2NlZHVyZUNhbGxUb1Byb2NlZHVyZUNhbGxKU09OIiwic3RhdGVtZW50SlNPTiIsInN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiIsImZyYW1lc0pTT04iLCJmcmFtZXNUb0ZyYW1lc0pTT04iLCJ0ZXJtc0pTT04iLCJ0ZXJtc1RvVGVybXNKU09OIiwianNvbiIsImZyb21KU09OIiwidGVybXNGcm9tSlNPTiIsImZyYW1lc0Zyb21KU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJwcm9jZWR1cmVDYWxsRnJvbUpTT04iLCJmcm9tVGVybXNBbmRGcmFtZXMiLCJFbGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7OERBUm9CO2dFQUNDO2dFQUNROzZEQUNDO29CQUc0Sjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRTFMLFdBQWVBLElBQUFBLGdCQUFNLGdDQUFDOzthQUFNQyxZQUNkQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLGFBQWE7Z0NBRGpDTDs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLQyxTQUFTLEdBQUdBO1FBQ2pCLE1BQUtDLGFBQWEsR0FBR0E7Ozs7O1lBR3ZCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLFNBQVM7WUFDdkI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLGFBQWE7WUFDM0I7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT1AsT0FBTztnQkFDWixJQUFJUSxXQUFXO2dCQUVmLElBQU1DLG1CQUFtQkMsa0JBQWdCLENBQUNDLFdBQVcsQ0FBQ1g7Z0JBRXREQSxVQUFVUyxrQkFBa0IsR0FBRztnQkFFL0IsSUFBTVAsT0FBTyxJQUFJLENBQUNVLE9BQU8sSUFDbkJDLG9CQUFvQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO2dCQUUvQ2QsUUFBUWUs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
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3N1cHBvc2l0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUHJvb2ZBc3NlcnRpb24gZnJvbSBcIi4vcHJvb2ZBc3NlcnRpb25cIjtcbmltcG9ydCBUZW1wb3JhcnlDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3RlbXBvcmFyeVwiO1xuaW1wb3J0IGFzc2lnbkFzc2lnbm1lbnRzIGZyb20gXCIuLi9wcm9jZXNzL2Fzc2lnblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHRlcm1zRnJvbUpTT04sIGZyYW1lc0Zyb21KU09OLCBzdGF0ZW1lbnRGcm9tSlNPTiwgcHJvY2VkdXJlQ2FsbEZyb21KU09OLCB0ZXJtc1RvVGVybXNKU09OLCBmcmFtZXNUb0ZyYW1lc0pTT04sIHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiwgcHJvY2VkdXJlQ2FsbFRvUHJvY2VkdXJlQ2FsbEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFN1cHBvc2l0aW9uIGV4dGVuZHMgUHJvb2ZBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHN0YXRlbWVudCwgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlQ2FsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlbXBvcmFyeUNvbnRleHQgPSBUZW1wb3JhcnlDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gICAgY29udGV4dCA9IHRlbXBvcmFyeUNvbnRleHQ7IC8vL1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBpZiAoKHN0YXRlbWVudCA9PT0gbnVsbCkgJiYgKHRoaXMucHJvY2VkdXJlQ2FsbCA9PT0gbnVsbCkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24gYmVjYXVzZSBpdCBpcyBub25zZW5zZS5gLCBub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBzdGF0ZW1lbnQudmFsaWRhdGUoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50cyhhc3NpZ25tZW50cywgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoYXNzaWdubWVudHNBc3NpZ25lZCkge1xuICAgICAgICAgICAgY29uc3Qgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uID0gdGhpczsgIC8vL1xuXG4gICAgICAgICAgICBjb250ZXh0LmFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbihzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pO1xuXG4gICAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgICAgYXNzaWdubWVudHMgPSBudWxsLFxuICAgICAgICAgICAgICBwcm9jZWR1cmVDYWxsVmVyaWZpZXMgPSB0aGlzLnByb2NlZHVyZUNhbGwudmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9jZWR1cmVDYWxsVmVyaWZpZXMpIHtcbiAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIHRoaXMuc2V0Q29udGV4dChjb250ZXh0KTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdW5pZnlJbmRlcGVuZGVudGx5KHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgdW5pZmllc0luZGVwZW5kZW50bHkgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiBpbmRlcGVuZGVudGx5Li4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5nZXRTdGF0ZW1lbnQoKTtcblxuICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFVuaWZpZXNJbmRlcGVuZGVudGx5ID0gc3RhdGVtZW50LnVuaWZ5SW5kZXBlbmRlbnRseShzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXNJbmRlcGVuZGVudGx5KSB7XG4gICAgICAgIHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcm9jZWR1cmVDYWxsUmVzb2x2ZWRJbmRlcGVuZGVudGx5ID0gdGhpcy5wcm9jZWR1cmVDYWxsLnVuaWZ5SW5kZXBlbmRlbnRseShzdWJzdGl0dXRpb25zLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHByb2NlZHVyZUNhbGxSZXNvbHZlZEluZGVwZW5kZW50bHkpIHtcbiAgICAgICAgdW5pZmllc0luZGVwZW5kZW50bHkgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bmlmaWVzSW5kZXBlbmRlbnRseSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiBpbmRlcGVuZGVubHkuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaWZpZXNJbmRlcGVuZGVudGx5O1xuICB9XG5cbiAgdW5pZnlTdWJwcm9vZk9yUHJvb3NBc3NlcnRpb24oc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvblByb29mQXNzZXJ0aW9uID0gc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uLmlzUHJvb2ZBc3NlcnRpb24oKSxcbiAgICAgICAgICBzdWJwcm9vZiA9IHN1YnByb29mT3JQcm9vZkFzc2VydGlvblByb29mQXNzZXJ0aW9uID9cbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24sXG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25Qcm9vZkFzc2VydGlvbiA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnByb29mT3JQcm9vZkFzc2VydGlvbiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICAgIHN1YnN0aXR1dGlvbnMuc25hcHNob3QoKTtcblxuICAgIGlmIChzdWJwcm9vZiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZVbmlmaWVzID0gdGhpcy51bmlmeVN1YnByb29mKHN1YnByb29mLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN1YnByb29mVW5pZmllcykge1xuICAgICAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25VbmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvb2ZBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb29mQXNzZXJ0aW9uVW5pZmllcyA9IHRoaXMudW5pZnlQcm9vZkFzc2VydGlvbihwcm9vZkFzc2VydGlvbiwgc3Vic3RpdHV0aW9ucywgY29udGV4dCk7XG5cbiAgICAgIGlmIChwcm9vZkFzc2VydGlvblVuaWZpZXMpIHtcbiAgICAgICAgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN1YnByb29mT3JQcm9vZkFzc2VydGlvblVuaWZpZXMpIHtcbiAgICAgIHN1YnN0aXR1dGlvbnMucmVzb2x2ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25VbmlmaWVzID9cbiAgICAgIHN1YnN0aXR1dGlvbnMuY29udGludWUoKSA6XG4gICAgICAgIHN1YnN0aXR1dGlvbnMucm9sbGJhY2soY29udGV4dCk7XG5cbiAgICByZXR1cm4gc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uVW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5UHJvb2ZBc3NlcnRpb24ocHJvb2ZBc3NlcnRpb24sIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RlcFVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb25TdHJpbmcgPSBwcm9vZkFzc2VydGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtwcm9vZkFzc2VydGlvblN0cmluZ30nIHByb29mIGFzc2VydGlvbiB3aXRoIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gcHJvb2ZBc3NlcnRpb24uZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBzdGVwVW5pZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0ZXBVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtwcm9vZkFzc2VydGlvblN0cmluZ30nIHByb29mIGFzc2VydGlvbiB3aXRoIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGVwVW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb2ZVbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZTdHJpbmcgPSBzdWJwcm9vZi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VicHJvb2ZTdHJpbmd9JyBzdWJwcm9vZiB3aXRoIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5nZXRTdGF0ZW1lbnQoKTtcblxuICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTdWJwcm9vZkFzc2VydGlvbk5vZGUoKTtcblxuICAgICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQsIC8vL1xuICAgICAgICAgICAgICBhc3NlcnRpb25Ob2RlID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICAgIGFzc2VydGlvbiA9IGNvbnRleHQuZmluZEFzc2VydGlvbkJ5QXNzZXJ0aW9uTm9kZShhc3NlcnRpb25Ob2RlKVxuXG4gICAgICAgIGlmIChhc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBzdWJwcm9vZkFzc2VydGlvbiA9IGFzc2VydGlvbjsgIC8vL1xuXG4gICAgICAgICAgc3VicHJvb2ZVbmlmaWVzID0gc3VicHJvb2ZBc3NlcnRpb24udW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3VicHJvb2ZVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mVW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zaXRpb25VbmlmaWVzO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBzcGVjaWZpY1N1cHBvc2l0aW9uID0gc3VwcG9zaXRpb24sICAvLy9cbiAgICAgICAgICBnZW5lcmFsU3VwcG9zaXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICBzcGVjaWZpY1N1cHBvc2l0aW9uU3RyaW5nID0gc3BlY2lmaWNTdXBwb3NpdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzcGVjaWZpY1N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24gd2l0aCB0aGUgJyR7Z2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHNwZWNpZmljU3VwcG9zaXRpb24uZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIHN1cHBvc2l0aW9uVW5pZmllcyA9IHN0YXRlbWVudFVuaWZpZXM7ICAvLy9cblxuICAgIGlmIChzdXBwb3NpdGlvblVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NwZWNpZmljU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtnZW5lcmFsU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbi5gLCBub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb25VbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBmcmFtZXMsXG4gICAgICAgIHRlcm1zO1xuXG4gICAgZnJhbWVzID0gdGhpcy5jb250ZXh0LmdldEZyYW1lcygpO1xuXG4gICAgdGVybXMgPSB0aGlzLmNvbnRleHQuZ2V0VGVybXMoKTtcblxuICAgIGNvbnN0IHByb2NlZHVyZUNhbGxKU09OID0gcHJvY2VkdXJlQ2FsbFRvUHJvY2VkdXJlQ2FsbEpTT04odGhpcy5wcm9jZWR1cmVDYWxsKSxcbiAgICAgICAgICBzdGF0ZW1lbnRKU09OID0gc3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OKHRoaXMuc3RhdGVtZW50KSxcbiAgICAgICAgICBmcmFtZXNKU09OID0gZnJhbWVzVG9GcmFtZXNKU09OKGZyYW1lcyksXG4gICAgICAgICAgdGVybXNKU09OID0gdGVybXNUb1Rlcm1zSlNPTih0ZXJtcyk7XG5cbiAgICBmcmFtZXMgPSBmcmFtZXNKU09OOyAgLy8vXG5cbiAgICB0ZXJtcyA9IHRlcm1zSlNPTjsgIC8vL1xuXG4gICAgY29uc3QgcHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGxKU09OLCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBwcm9jZWR1cmVDYWxsLFxuICAgICAgICAgICAgc3RhdGVtZW50LFxuICAgICAgICAgICAgZnJhbWVzLFxuICAgICAgICAgICAgdGVybXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU3VwcG9zaXRpb25cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1zID0gdGVybXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBmcmFtZXMgPSBmcmFtZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBwcm9jZWR1cmVDYWxsID0gcHJvY2VkdXJlQ2FsbEZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHRlbXBvcmFyeUNvbnRleHQgPSBUZW1wb3JhcnlDb250ZXh0LmZyb21UZXJtc0FuZEZyYW1lcyh0ZXJtcywgZnJhbWVzLCBjb250ZXh0KTtcblxuICAgIGxldCBzdHJpbmc7XG5cbiAgICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKHByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHN0cmluZyA9IHByb2NlZHVyZUNhbGwuZ2V0U3RyaW5nKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZSA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gdGVtcG9yYXJ5Q29udGV4dDsgLy8vXG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbiA9IG5ldyBTdXBwb3NpdGlvbihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHN0YXRlbWVudCwgcHJvY2VkdXJlQ2FsbCk7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlN1cHBvc2l0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJzdGF0ZW1lbnQiLCJwcm9jZWR1cmVDYWxsIiwiZ2V0UHJvY2VkdXJlQ2FsbCIsInZlcmlmeSIsInZlcmlmaWVzIiwidGVtcG9yYXJ5Q29udGV4dCIsIlRlbXBvcmFyeUNvbnRleHQiLCJmcm9tTm90aGluZyIsImdldE5vZGUiLCJzdXBwb3NpdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiZ2V0U3RhdGVtZW50IiwiZGVidWciLCJzdGF0ZWQiLCJhc3NpZ25tZW50cyIsInN0YXRlbWVudFZhbGlkYXRlcyIsInZhbGlkYXRlIiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwiYWRkU3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwicHJvY2VkdXJlQ2FsbFZlcmlmaWVzIiwic2V0Q29udGV4dCIsInVuaWZ5SW5kZXBlbmRlbnRseSIsInN1YnN0aXR1dGlvbnMiLCJ1bmlmaWVzSW5kZXBlbmRlbnRseSIsInNwZWNpZmljQ29udGV4dCIsImdldENvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZXNJbmRlcGVuZGVudGx5IiwicHJvY2VkdXJlQ2FsbFJlc29sdmVkSW5kZXBlbmRlbnRseSIsInVuaWZ5U3VicHJvb2ZPclByb29zQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uVW5pZmllcyIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvblByb29mQXNzZXJ0aW9uIiwiaXNQcm9vZkFzc2VydGlvbiIsInN1YnByb29mIiwicHJvb2ZBc3NlcnRpb24iLCJzbmFwc2hvdCIsInN1YnByb29mVW5pZmllcyIsInVuaWZ5U3VicHJvb2YiLCJwcm9vZkFzc2VydGlvblVuaWZpZXMiLCJ1bmlmeVByb29mQXNzZXJ0aW9uIiwicmVzb2x2ZSIsImNvbnRpbnVlIiwicm9sbGJhY2siLCJzdGVwVW5pZmllcyIsInByb29mQXNzZXJ0aW9uU3RyaW5nIiwic3RhdGVtZW50VW5pZmllcyIsInVuaWZ5U3RhdGVtZW50Iiwic3VicHJvb2ZTdHJpbmciLCJzdGF0ZW1lbnROb2RlIiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwiZ2V0U3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwiYXNzZXJ0aW9uTm9kZSIsImFzc2VydGlvbiIsImZpbmRBc3NlcnRpb25CeUFzc2VydGlvbk5vZGUiLCJzdWJwcm9vZkFzc2VydGlvbiIsInVuaWZ5U3VwcG9zaXRpb24iLCJzdXBwb3NpdGlvbiIsInN1cHBvc2l0aW9uVW5pZmllcyIsInNwZWNpZmljU3VwcG9zaXRpb24iLCJnZW5lcmFsU3VwcG9zaXRpb25TdHJpbmciLCJzcGVjaWZpY1N1cHBvc2l0aW9uU3RyaW5nIiwidG9KU09OIiwiZnJhbWVzIiwidGVybXMiLCJnZXRGcmFtZXMiLCJnZXRUZXJtcyIsInByb2NlZHVyZUNhbGxKU09OIiwicHJvY2VkdXJlQ2FsbFRvUHJvY2VkdXJlQ2FsbEpTT04iLCJzdGF0ZW1lbnRKU09OIiwic3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OIiwiZnJhbWVzSlNPTiIsImZyYW1lc1RvRnJhbWVzSlNPTiIsInRlcm1zSlNPTiIsInRlcm1zVG9UZXJtc0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ0ZXJtc0Zyb21KU09OIiwiZnJhbWVzRnJvbUpTT04iLCJzdGF0ZW1lbnRGcm9tSlNPTiIsInByb2NlZHVyZUNhbGxGcm9tSlNPTiIsImZyb21UZXJtc0FuZEZyYW1lcyIsIlByb29mQXNzZXJ0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7cUVBUDJCO2dFQUNFOzZEQUNDO3dCQUVQO29CQUNtSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRTFMLFdBQWVBLElBQUFBLGdCQUFNLGdDQUFDOzthQUFNQyxZQUNkQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLGFBQWE7Z0NBRGpDTDs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLRSxhQUFhLEdBQUdBOzs7OztZQUd2QkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxhQUFhO1lBQzNCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9OLE9BQU87Z0JBQ1osSUFBSU8sV0FBVztnQkFFZixJQUFNQyxtQkFBbUJDLGtCQUFn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
package/lib/metaTypes.js CHANGED
@@ -12,6 +12,9 @@ _export(exports, {
12
12
  get frameMetaTypeFromNothing () {
13
13
  return frameMetaTypeFromNothing;
14
14
  },
15
+ get getMetaTypes () {
16
+ return getMetaTypes;
17
+ },
15
18
  get referenceMetaTypeFromNothing () {
16
19
  return referenceMetaTypeFromNothing;
17
20
  },
@@ -27,6 +30,14 @@ function _interop_require_default(obj) {
27
30
  };
28
31
  }
29
32
  var frameMetaType = null, referenceMetaType = null, statementMetaType = null;
33
+ function getMetaTypes() {
34
+ var frameMetaType = frameMetaTypeFromNothing(), referenceMetaType = referenceMetaTypeFromNothing(), statementMetaType = statementMetaTypeFromNothing(), metaTypes = [
35
+ frameMetaType,
36
+ referenceMetaType,
37
+ statementMetaType
38
+ ];
39
+ return metaTypes;
40
+ }
30
41
  function frameMetaTypeFromNothing() {
31
42
  if (frameMetaType === null) {
32
43
  var MetaType = _elements.default.MetaType, name = _metaTypeNames.FRAME_META_TYPE_NAME; ///
@@ -34,13 +45,6 @@ function frameMetaTypeFromNothing() {
34
45
  }
35
46
  return frameMetaType;
36
47
  }
37
- function referenceMetaTypeFromNothing() {
38
- if (referenceMetaType === null) {
39
- var MetaType = _elements.default.MetaType, name = _metaTypeNames.REFERENCE_META_TYPE_NAME; ///
40
- referenceMetaType = MetaType.fromName(name);
41
- }
42
- return referenceMetaType;
43
- }
44
48
  function statementMetaTypeFromNothing() {
45
49
  if (statementMetaType === null) {
46
50
  var MetaType = _elements.default.MetaType, name = _metaTypeNames.STATEMENT_META_TYPE_NAME; ///
@@ -48,5 +52,12 @@ function statementMetaTypeFromNothing() {
48
52
  }
49
53
  return statementMetaType;
50
54
  }
55
+ function referenceMetaTypeFromNothing() {
56
+ if (referenceMetaType === null) {
57
+ var MetaType = _elements.default.MetaType, name = _metaTypeNames.REFERENCE_META_TYPE_NAME; ///
58
+ referenceMetaType = MetaType.fromName(name);
59
+ }
60
+ return referenceMetaType;
61
+ }
51
62
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBGUkFNRV9NRVRBX1RZUEVfTkFNRSwgUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FLCBTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi9tZXRhVHlwZU5hbWVzXCI7XG5cbmxldCBmcmFtZU1ldGFUeXBlID0gbnVsbCxcbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IG51bGwsXG4gICAgc3RhdGVtZW50TWV0YVR5cGUgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAoZnJhbWVNZXRhVHlwZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHsgTWV0YVR5cGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIG5hbWUgPSBGUkFNRV9NRVRBX1RZUEVfTkFNRTsgIC8vL1xuXG4gICAgZnJhbWVNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lTWV0YVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAocmVmZXJlbmNlTWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FOyAgLy8vXG5cbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHJlZmVyZW5jZU1ldGFUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVtZW50TWV0YVR5cGVGcm9tTm90aGluZygpIHtcbiAgaWYgKHN0YXRlbWVudE1ldGFUeXBlID09PSBudWxsKSB7XG4gICAgY29uc3QgeyBNZXRhVHlwZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgbmFtZSA9IFNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRTsgIC8vL1xuXG4gICAgc3RhdGVtZW50TWV0YVR5cGUgPSBNZXRhVHlwZS5mcm9tTmFtZShuYW1lKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRNZXRhVHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJmcmFtZU1ldGFUeXBlRnJvbU5vdGhpbmciLCJyZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nIiwic3RhdGVtZW50TWV0YVR5cGVGcm9tTm90aGluZyIsImZyYW1lTWV0YVR5cGUiLCJyZWZlcmVuY2VNZXRhVHlwZSIsInN0YXRlbWVudE1ldGFUeXBlIiwiTWV0YVR5cGUiLCJlbGVtZW50cyIsIm5hbWUiLCJGUkFNRV9NRVRBX1RZUEVfTkFNRSIsImZyb21OYW1lIiwiUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FIiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFVZ0JBO2VBQUFBOztRQVdBQztlQUFBQTs7UUFXQUM7ZUFBQUE7OzsrREE5Qks7NkJBRW9FOzs7Ozs7QUFFekYsSUFBSUMsZ0JBQWdCLE1BQ2hCQyxvQkFBb0IsTUFDcEJDLG9CQUFvQjtBQUVqQixTQUFTTDtJQUNkLElBQUlHLGtCQUFrQixNQUFNO1FBQzFCLElBQU0sQUFBRUcsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9DLG1DQUFvQixFQUFHLEdBQUc7UUFFdkNOLGdCQUFnQkcsU0FBU0ksUUFBUSxDQUFDRjtJQUNwQztJQUVBLE9BQU9MO0FBQ1Q7QUFFTyxTQUFTRjtJQUNkLElBQUlHLHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRUUsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9HLHVDQUF3QixFQUFHLEdBQUc7UUFFM0NQLG9CQUFvQkUsU0FBU0ksUUFBUSxDQUFDRjtJQUN4QztJQUVBLE9BQU9KO0FBQ1Q7QUFFTyxTQUFTRjtJQUNkLElBQUlHLHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRUMsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9JLHVDQUF3QixFQUFHLEdBQUc7UUFFM0NQLG9CQUFvQkMsU0FBU0ksUUFBUSxDQUFDRjtJQUN4QztJQUVBLE9BQU9IO0FBQ1QifQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBGUkFNRV9NRVRBX1RZUEVfTkFNRSwgUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FLCBTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi9tZXRhVHlwZU5hbWVzXCI7XG5cbmxldCBmcmFtZU1ldGFUeXBlID0gbnVsbCxcbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IG51bGwsXG4gICAgc3RhdGVtZW50TWV0YVR5cGUgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YVR5cGVzKCkge1xuICBjb25zdCBmcmFtZU1ldGFUeXBlID0gZnJhbWVNZXRhVHlwZUZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGFUeXBlID0gcmVmZXJlbmNlTWV0YVR5cGVGcm9tTm90aGluZygpLFxuICAgICAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IHN0YXRlbWVudE1ldGFUeXBlRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgbWV0YVR5cGVzID0gW1xuICAgICAgICAgIGZyYW1lTWV0YVR5cGUsXG4gICAgICAgICAgcmVmZXJlbmNlTWV0YVR5cGUsXG4gICAgICAgICAgc3RhdGVtZW50TWV0YVR5cGVcbiAgICAgICAgXTtcblxuICByZXR1cm4gbWV0YVR5cGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAoZnJhbWVNZXRhVHlwZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHsgTWV0YVR5cGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIG5hbWUgPSBGUkFNRV9NRVRBX1RZUEVfTkFNRTsgIC8vL1xuXG4gICAgZnJhbWVNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lTWV0YVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAoc3RhdGVtZW50TWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FOyAgLy8vXG5cbiAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudE1ldGFUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlTWV0YVR5cGVGcm9tTm90aGluZygpIHtcbiAgaWYgKHJlZmVyZW5jZU1ldGFUeXBlID09PSBudWxsKSB7XG4gICAgY29uc3QgeyBNZXRhVHlwZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgbmFtZSA9IFJFRkVSRU5DRV9NRVRBX1RZUEVfTkFNRTsgIC8vL1xuXG4gICAgcmVmZXJlbmNlTWV0YVR5cGUgPSBNZXRhVHlwZS5mcm9tTmFtZShuYW1lKTtcbiAgfVxuXG4gIHJldHVybiByZWZlcmVuY2VNZXRhVHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJmcmFtZU1ldGFUeXBlRnJvbU5vdGhpbmciLCJnZXRNZXRhVHlwZXMiLCJyZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nIiwic3RhdGVtZW50TWV0YVR5cGVGcm9tTm90aGluZyIsImZyYW1lTWV0YVR5cGUiLCJyZWZlcmVuY2VNZXRhVHlwZSIsInN0YXRlbWVudE1ldGFUeXBlIiwibWV0YVR5cGVzIiwiTWV0YVR5cGUiLCJlbGVtZW50cyIsIm5hbWUiLCJGUkFNRV9NRVRBX1RZUEVfTkFNRSIsImZyb21OYW1lIiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIiwiUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1QmdCQTtlQUFBQTs7UUFiQUM7ZUFBQUE7O1FBbUNBQztlQUFBQTs7UUFYQUM7ZUFBQUE7OzsrREFoQ0s7NkJBRW9FOzs7Ozs7QUFFekYsSUFBSUMsZ0JBQWdCLE1BQ2hCQyxvQkFBb0IsTUFDcEJDLG9CQUFvQjtBQUVqQixTQUFTTDtJQUNkLElBQU1HLGdCQUFnQkosNEJBQ2hCSyxvQkFBb0JILGdDQUNwQkksb0JBQW9CSCxnQ0FDcEJJLFlBQVk7UUFDVkg7UUFDQUM7UUFDQUM7S0FDRDtJQUVQLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTUDtJQUNkLElBQUlJLGtCQUFrQixNQUFNO1FBQzFCLElBQU0sQUFBRUksV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9DLG1DQUFvQixFQUFHLEdBQUc7UUFFdkNQLGdCQUFnQkksU0FBU0ksUUFBUSxDQUFDRjtJQUNwQztJQUVBLE9BQU9OO0FBQ1Q7QUFFTyxTQUFTRDtJQUNkLElBQUlHLHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRUUsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9HLHVDQUF3QixFQUFHLEdBQUc7UUFFM0NQLG9CQUFvQkUsU0FBU0ksUUFBUSxDQUFDRjtJQUN4QztJQUVBLE9BQU9KO0FBQ1Q7QUFFTyxTQUFTSjtJQUNkLElBQUlHLHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRUcsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9JLHVDQUF3QixFQUFHLEdBQUc7UUFFM0NULG9CQUFvQkcsU0FBU0ksUUFBUSxDQUFDRjtJQUN4QztJQUVBLE9BQU9MO0FBQ1QifQ==
@@ -120,13 +120,6 @@ var SubDerivationNode = /*#__PURE__*/ function(NonTerminalNode) {
120
120
  return _call_super(this, SubDerivationNode, arguments);
121
121
  }
122
122
  _create_class(SubDerivationNode, [
123
- {
124
- key: "getLastStepNode",
125
- value: function getLastStepNode() {
126
- var ruleName = _ruleNames.STEP_RULE_NAME, lastStepNode = this.getLastNodeByRuleName(ruleName);
127
- return lastStepNode;
128
- }
129
- },
130
123
  {
131
124
  key: "getStepOrSubproofNodes",
132
125
  value: function getStepOrSubproofNodes() {
@@ -148,4 +141,4 @@ var SubDerivationNode = /*#__PURE__*/ function(NonTerminalNode) {
148
141
  return SubDerivationNode;
149
142
  }(_nonTerminalNode.default);
150
143
 
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3N1YkRlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbE5vZGUgZnJvbSBcIi4uL25vblRlcm1pbmFsTm9kZVwiO1xuXG5pbXBvcnQgeyBTVEVQX1JVTEVfTkFNRSwgU1VCUFJPT0ZfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJEZXJpdmF0aW9uTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldExhc3RTdGVwTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFNURVBfUlVMRV9OQU1FLFxuICAgICAgICAgIGxhc3RTdGVwTm9kZSA9IHRoaXMuZ2V0TGFzdE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBsYXN0U3RlcE5vZGU7XG4gIH1cblxuICBnZXRTdGVwT3JTdWJwcm9vZk5vZGVzKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lcyA9IFtcbiAgICAgICAgICAgIFNURVBfUlVMRV9OQU1FLFxuICAgICAgICAgICAgU1VCUFJPT0ZfUlVMRV9OQU1FLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RlcE9yU3VicHJvb2ZOb2RlcyA9IHRoaXMuZ2V0Tm9kZXNCeVJ1bGVOYW1lKC4uLnJ1bGVOYW1lcyk7XG5cbiAgICByZXR1cm4gc3RlcE9yU3VicHJvb2ZOb2RlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpIHsgcmV0dXJuIE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoU3ViRGVyaXZhdGlvbk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKTsgfVxufVxuIl0sIm5hbWVzIjpbIlN1YkRlcml2YXRpb25Ob2RlIiwiZ2V0TGFzdFN0ZXBOb2RlIiwicnVsZU5hbWUiLCJTVEVQX1JVTEVfTkFNRSIsImxhc3RTdGVwTm9kZSIsImdldExhc3ROb2RlQnlSdWxlTmFtZSIsImdldFN0ZXBPclN1YnByb29mTm9kZXMiLCJydWxlTmFtZXMiLCJTVUJQUk9PRl9SVUxFX05BTUUiLCJzdGVwT3JTdWJwcm9vZk5vZGVzIiwiZ2V0Tm9kZXNCeVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJwcmVjZWRlbmNlIiwiTm9uVGVybWluYWxOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU1xQkE7OztzRUFKTzt5QkFFdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXBDLElBQUEsQUFBTUEsa0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxXQUFXQyx5QkFBYyxFQUN6QkMsZUFBZSxJQUFJLENBQUNDLHFCQUFxQixDQUFDSDtnQkFFaEQsT0FBT0U7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxZQUFZO29CQUNWSix5QkFBYztvQkFDZEssNkJBQWtCO2lCQUNuQixFQUNEQyxzQkFBc0IsSUFBSSxDQUFDQyxrQkFBa0IsT0FBdkIsSUFBSSxFQUFvQixxQkFBR0g7Z0JBRXZELE9BQU9FO1lBQ1Q7Ozs7WUFFT0UsS0FBQUE7bUJBQVAsU0FBT0EsMkNBQTJDVCxRQUFRLEVBQUVVLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVO2dCQUFJLE9BQU9DLHdCQUFlLENBQUNKLDBDQUEwQyxDQWxCN0lYLG1CQWtCaUtFLFVBQVVVLFlBQVlDLFNBQVNDO1lBQWE7OztXQWxCN01kO0VBQTBCZSx3QkFBZSJ9
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3N1YkRlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbE5vZGUgZnJvbSBcIi4uL25vblRlcm1pbmFsTm9kZVwiO1xuXG5pbXBvcnQgeyBTVEVQX1JVTEVfTkFNRSwgU1VCUFJPT0ZfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJEZXJpdmF0aW9uTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldFN0ZXBPclN1YnByb29mTm9kZXMoKSB7XG4gICAgY29uc3QgcnVsZU5hbWVzID0gW1xuICAgICAgICAgICAgU1RFUF9SVUxFX05BTUUsXG4gICAgICAgICAgICBTVUJQUk9PRl9SVUxFX05BTUUsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBzdGVwT3JTdWJwcm9vZk5vZGVzID0gdGhpcy5nZXROb2Rlc0J5UnVsZU5hbWUoLi4ucnVsZU5hbWVzKTtcblxuICAgIHJldHVybiBzdGVwT3JTdWJwcm9vZk5vZGVzO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSkgeyByZXR1cm4gTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShTdWJEZXJpdmF0aW9uTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpOyB9XG59XG4iXSwibmFtZXMiOlsiU3ViRGVyaXZhdGlvbk5vZGUiLCJnZXRTdGVwT3JTdWJwcm9vZk5vZGVzIiwicnVsZU5hbWVzIiwiU1RFUF9SVUxFX05BTUUiLCJTVUJQUk9PRl9SVUxFX05BTUUiLCJzdGVwT3JTdWJwcm9vZk5vZGVzIiwiZ2V0Tm9kZXNCeVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlIiwicnVsZU5hbWUiLCJjaGlsZE5vZGVzIiwib3BhY2l0eSIsInByZWNlZGVuY2UiLCJOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3NFQUpPO3lCQUV1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEMsSUFBQSxBQUFNQSxrQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7UUFBTixPQUFBLGtCQUFNQTs7a0JBQUFBOztZQUNuQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLFlBQVk7b0JBQ1ZDLHlCQUFjO29CQUNkQyw2QkFBa0I7aUJBQ25CLEVBQ0RDLHNCQUFzQixJQUFJLENBQUNDLGtCQUFrQixPQUF2QixJQUFJLEVBQW9CLHFCQUFHSjtnQkFFdkQsT0FBT0c7WUFDVDs7OztZQUVPRSxLQUFBQTttQkFBUCxTQUFPQSwyQ0FBMkNDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFVBQVU7Z0JBQUksT0FBT0Msd0JBQWUsQ0FBQ0wsMENBQTBDLENBWDdJUCxtQkFXaUtRLFVBQVVDLFlBQVlDLFNBQVNDO1lBQWE7OztXQVg3TVg7RUFBMEJZLHdCQUFlIn0=
@@ -109,13 +109,6 @@ var SubproofNode = /*#__PURE__*/ function(NonTerminalNode) {
109
109
  return subproofNode;
110
110
  }
111
111
  },
112
- {
113
- key: "getLastStepNode",
114
- value: function getLastStepNode() {
115
- var subDerivationNode = this.getSubDerivationNode(), lastStepNode = subDerivationNode.getLastStepNode();
116
- return lastStepNode;
117
- }
118
- },
119
112
  {
120
113
  key: "getSuppositionNodes",
121
114
  value: function getSuppositionNodes() {
@@ -141,4 +134,4 @@ var SubproofNode = /*#__PURE__*/ function(NonTerminalNode) {
141
134
  return SubproofNode;
142
135
  }(_nonTerminalNode.default);
143
136
 
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3N1YnByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxOb2RlIGZyb20gXCIuLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuaW1wb3J0IHsgU1VQUE9TSVRJT05fUlVMRV9OQU1FLCBTVUJfREVSSVZBVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnByb29mTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGlzU3RlcE5vZGUoKSB7XG4gICAgY29uc3Qgc3RlcE5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBzdGVwTm9kZTtcbiAgfVxuXG4gIGlzU3VicHJvb2ZOb2RlKCkge1xuICAgIGNvbnN0IHN1YnByb29mTm9kZSA9IHRydWU7XG5cbiAgICByZXR1cm4gc3VicHJvb2ZOb2RlO1xuICB9XG5cbiAgZ2V0TGFzdFN0ZXBOb2RlKCkge1xuICAgIGNvbnN0IHN1YkRlcml2YXRpb25Ob2RlID0gdGhpcy5nZXRTdWJEZXJpdmF0aW9uTm9kZSgpLFxuICAgICAgICAgIGxhc3RTdGVwTm9kZSA9IHN1YkRlcml2YXRpb25Ob2RlLmdldExhc3RTdGVwTm9kZSgpO1xuXG4gICAgcmV0dXJuIGxhc3RTdGVwTm9kZTtcbiAgfVxuXG4gIGdldFN1cHBvc2l0aW9uTm9kZXMoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBTVVBQT1NJVElPTl9SVUxFX05BTUUsXG4gICAgICAgICAgc3VwcG9zaXRpb25Ob2RlcyA9IHRoaXMuZ2V0Tm9kZXNCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBzdXBwb3NpdGlvbk5vZGVzO1xuICB9XG5cbiAgZ2V0U3ViRGVyaXZhdGlvbk5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBTVUJfREVSSVZBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICAgc3ViRGVyaXZhdGlvbk5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBzdWJEZXJpdmF0aW9uTm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpIHsgcmV0dXJuIE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoU3VicHJvb2ZOb2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJTdWJwcm9vZk5vZGUiLCJpc1N0ZXBOb2RlIiwic3RlcE5vZGUiLCJpc1N1YnByb29mTm9kZSIsInN1YnByb29mTm9kZSIsImdldExhc3RTdGVwTm9kZSIsInN1YkRlcml2YXRpb25Ob2RlIiwiZ2V0U3ViRGVyaXZhdGlvbk5vZGUiLCJsYXN0U3RlcE5vZGUiLCJnZXRTdXBwb3NpdGlvbk5vZGVzIiwicnVsZU5hbWUiLCJTVVBQT1NJVElPTl9SVUxFX05BTUUiLCJzdXBwb3NpdGlvbk5vZGVzIiwiZ2V0Tm9kZXNCeVJ1bGVOYW1lIiwiU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FIiwiZ2V0Tm9kZUJ5UnVsZU5hbWUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJjaGlsZE5vZGVzIiwib3BhY2l0eSIsInByZWNlZGVuY2UiLCJOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3NFQUpPO3lCQUVvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqRCxJQUFBLEFBQU1BLDZCQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOztrQkFBQUE7O1lBQ25CQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsV0FBVztnQkFFakIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxlQUFlO2dCQUVyQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLG9CQUFvQixJQUFJLENBQUNDLG9CQUFvQixJQUM3Q0MsZUFBZUYsa0JBQWtCRCxlQUFlO2dCQUV0RCxPQUFPRztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLFdBQVdDLGdDQUFxQixFQUNoQ0MsbUJBQW1CLElBQUksQ0FBQ0Msa0JBQWtCLENBQUNIO2dCQUVqRCxPQUFPRTtZQUNUOzs7WUFFQUwsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1HLFdBQVdJLG1DQUF3QixFQUNuQ1Isb0JBQW9CLElBQUksQ0FBQ1MsaUJBQWlCLENBQUNMO2dCQUVqRCxPQUFPSjtZQUNUOzs7O1lBRU9VLEtBQUFBO21CQUFQLFNBQU9BLDJDQUEyQ04sUUFBUSxFQUFFTyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsVUFBVTtnQkFBSSxPQUFPQyx3QkFBZSxDQUFDSiwwQ0FBMEMsQ0FsQzdJaEIsY0FrQzRKVSxVQUFVTyxZQUFZQyxTQUFTQztZQUFhOzs7V0FsQ3hNbkI7RUFBcUJvQix3QkFBZSJ9
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3N1YnByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxOb2RlIGZyb20gXCIuLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuaW1wb3J0IHsgU1VQUE9TSVRJT05fUlVMRV9OQU1FLCBTVUJfREVSSVZBVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnByb29mTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGlzU3RlcE5vZGUoKSB7XG4gICAgY29uc3Qgc3RlcE5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBzdGVwTm9kZTtcbiAgfVxuXG4gIGlzU3VicHJvb2ZOb2RlKCkge1xuICAgIGNvbnN0IHN1YnByb29mTm9kZSA9IHRydWU7XG5cbiAgICByZXR1cm4gc3VicHJvb2ZOb2RlO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb25Ob2RlcygpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gdGhpcy5nZXROb2Rlc0J5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uTm9kZXM7XG4gIH1cblxuICBnZXRTdWJEZXJpdmF0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFNVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgICBzdWJEZXJpdmF0aW9uTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHN1YkRlcml2YXRpb25Ob2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSkgeyByZXR1cm4gTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShTdWJwcm9vZk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKTsgfVxufVxuIl0sIm5hbWVzIjpbIlN1YnByb29mTm9kZSIsImlzU3RlcE5vZGUiLCJzdGVwTm9kZSIsImlzU3VicHJvb2ZOb2RlIiwic3VicHJvb2ZOb2RlIiwiZ2V0U3VwcG9zaXRpb25Ob2RlcyIsInJ1bGVOYW1lIiwiU1VQUE9TSVRJT05fUlVMRV9OQU1FIiwic3VwcG9zaXRpb25Ob2RlcyIsImdldE5vZGVzQnlSdWxlTmFtZSIsImdldFN1YkRlcml2YXRpb25Ob2RlIiwiU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FIiwic3ViRGVyaXZhdGlvbk5vZGUiLCJnZXROb2RlQnlSdWxlTmFtZSIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZSIsImNoaWxkTm9kZXMiLCJvcGFjaXR5IiwicHJlY2VkZW5jZSIsIk5vblRlcm1pbmFsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7c0VBSk87eUJBRW9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWpELElBQUEsQUFBTUEsNkJBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxXQUFXO2dCQUVqQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGVBQWU7Z0JBRXJCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsV0FBV0MsZ0NBQXFCLEVBQ2hDQyxtQkFBbUIsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQ0g7Z0JBRWpELE9BQU9FO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUosV0FBV0ssbUNBQXdCLEVBQ25DQyxvQkFBb0IsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ1A7Z0JBRWpELE9BQU9NO1lBQ1Q7Ozs7WUFFT0UsS0FBQUE7bUJBQVAsU0FBT0EsMkNBQTJDUixRQUFRLEVBQUVTLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVO2dCQUFJLE9BQU9DLHdCQUFlLENBQUNKLDBDQUEwQyxDQTNCN0lkLGNBMkI0Sk0sVUFBVVMsWUFBWUMsU0FBU0M7WUFBYTs7O1dBM0J4TWpCO0VBQXFCa0Isd0JBQWUifQ==
@@ -22,19 +22,14 @@ _export(exports, {
22
22
  return stripBracketsFromTermNode;
23
23
  }
24
24
  });
25
- var _elements = /*#__PURE__*/ _interop_require_default(require("../elements"));
25
+ var _element = require("../utilities/element");
26
26
  var _constants = require("../constants");
27
27
  var _instance = require("../utilities/instance");
28
- function _interop_require_default(obj) {
29
- return obj && obj.__esModule ? obj : {
30
- default: obj
31
- };
32
- }
33
28
  function stripBracketsFromTerm(term, context) {
34
29
  var termNode = term.getNode(), bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
35
30
  if (bracketedTermChildNode !== null) {
36
- var Term = _elements.default.Term, termNode1 = bracketedTermChildNode; ///
37
- term = Term.fromTermNode(termNode1, context);
31
+ var termNode1 = bracketedTermChildNode; ///
32
+ term = (0, _element.termFromTermNode)(termNode1, context);
38
33
  }
39
34
  return term;
40
35
  }
@@ -48,8 +43,8 @@ function stripBracketsFromTermNode(termNode) {
48
43
  function stripBracketsFromStatement(statement, context) {
49
44
  var statementNode = statement.getNode(), bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
50
45
  if (bracketedStatementChildNode !== null) {
51
- var Statement = _elements.default.Statement, statementNode1 = bracketedStatementChildNode; ///
52
- statement = Statement.fromStatementNode(statementNode1, context);
46
+ var statementNode1 = bracketedStatementChildNode; ///
47
+ statement = (0, _element.statementFromStatementNode)(statementNode1, context);
53
48
  }
54
49
  return statement;
55
50
  }
@@ -79,4 +74,4 @@ function bracketedStatementChildNodeFromStatementNode(statementNode) {
79
74
  return bracketedStatementChildNode;
80
75
  }
81
76
 
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJhY2tldHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgQlJBQ0tFVEVEX1RFUk1fREVQVEgsIEJSQUNLRVRFRF9TVEFURU1FTlRfREVQVEggfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBicmFja2V0ZWRDb25zdHJ1Y3RvckZyb21Ob3RoaW5nLCBicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2luc3RhbmNlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEJyYWNrZXRzRnJvbVRlcm0odGVybSwgY29udGV4dCkge1xuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgaWYgKGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB7IFRlcm0gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHRlcm1Ob2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZTsgIC8vL1xuXG4gICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSh0ZXJtTm9kZSkge1xuICBjb25zdCBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgaWYgKGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICB0ZXJtTm9kZSA9IGJyYWNrZXRlZFRlcm1DaGlsZE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiB0ZXJtTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgU3RhdGVtZW50IH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlOyAgLy8vXG5cbiAgICBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnROb2RlO1xufVxuXG5mdW5jdGlvbiBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gIGxldCBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gbnVsbDtcblxuICBjb25zdCBkZXB0aCA9IEJSQUNLRVRFRF9URVJNX0RFUFRILFxuICAgICAgICBicmFja2V0ZWRDb25zdHJ1Y3RvciA9IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtID0gYnJhY2tldGVkQ29uc3RydWN0b3IuZ2V0VGVybSgpLFxuICAgICAgICBicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlID0gYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgdGVybU5vZGVNYXRjaEJyYWNrZXRlZENvbnN0cnVjdG9yTm9kZSA9IHRlcm1Ob2RlLm1hdGNoKGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUsIGRlcHRoKTtcblxuICBpZiAodGVybU5vZGVNYXRjaEJyYWNrZXRlZENvbnN0cnVjdG9yTm9kZSkge1xuICAgIGNvbnN0IHNpbmd1bGFyVGVybU5vZGUgPSB0ZXJtTm9kZS5nZXRTaW5ndWxhclRlcm1Ob2RlKCk7XG5cbiAgICBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gc2luZ3VsYXJUZXJtTm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGU7XG59XG5cbmZ1bmN0aW9uIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgbGV0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IG51bGw7XG5cbiAgY29uc3QgZGVwdGggPSBCUkFDS0VURURfU1RBVEVNRU5UX0RFUFRILFxuICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yID0gYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnQgPSBicmFja2V0ZWRDb21iaW5hdG9yLmdldFN0YXRlbWVudCgpLFxuICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50bk5vZGUgPSBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlLm1hdGNoKGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRuTm9kZSwgZGVwdGgpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlTWF0Y2hCcmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IHNpbmd1bGFyU3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0U2luZ3VsYXJTdGF0ZW1lbnROb2RlKCk7XG5cbiAgICBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBzaW5ndWxhclN0YXRlbWVudE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7XG59XG4iXSwibmFtZXMiOlsic3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQiLCJzdHJpcEJyYWNrZXRzRnJvbVN0YXRlbWVudE5vZGUiLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm0iLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlIiwidGVybSIsImNvbnRleHQiLCJ0ZXJtTm9kZSIsImdldE5vZGUiLCJicmFja2V0ZWRUZXJtQ2hpbGROb2RlIiwiYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSIsIlRlcm0iLCJlbGVtZW50cyIsImZyb21UZXJtTm9kZSIsInN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZSIsIlN0YXRlbWVudCIsImZyb21TdGF0ZW1lbnROb2RlIiwiZGVwdGgiLCJCUkFDS0VURURfVEVSTV9ERVBUSCIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwiYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tTm90aGluZyIsImJyYWNrZXRlZENvbnN0cnVjdG9yVGVybSIsImdldFRlcm0iLCJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlIiwidGVybU5vZGVNYXRjaEJyYWNrZXRlZENvbnN0cnVjdG9yTm9kZSIsIm1hdGNoIiwic2luZ3VsYXJUZXJtTm9kZSIsImdldFNpbmd1bGFyVGVybU5vZGUiLCJCUkFDS0VURURfU1RBVEVNRU5UX0RFUFRIIiwiYnJhY2tldGVkQ29tYmluYXRvciIsImJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZyIsImJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50bk5vZGUiLCJzdGF0ZW1lbnROb2RlTWF0Y2hCcmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsInNpbmd1bGFyU3RhdGVtZW50Tm9kZSIsImdldFNpbmd1bGFyU3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBK0JnQkE7ZUFBQUE7O1FBY0FDO2VBQUFBOztRQXRDQUM7ZUFBQUE7O1FBY0FDO2VBQUFBOzs7K0RBbkJLO3lCQUUyQzt3QkFDZ0I7Ozs7OztBQUV6RSxTQUFTRCxzQkFBc0JFLElBQUksRUFBRUMsT0FBTztJQUNqRCxJQUFNQyxXQUFXRixLQUFLRyxPQUFPLElBQ3ZCQyx5QkFBeUJDLG1DQUFtQ0g7SUFFbEUsSUFBSUUsMkJBQTJCLE1BQU07UUFDbkMsSUFBTSxBQUFFRSxPQUFTQyxpQkFBUSxDQUFqQkQsTUFDRkosWUFBV0Usd0JBQXlCLEdBQUc7UUFFN0NKLE9BQU9NLEtBQUtFLFlBQVksQ0FBQ04sV0FBVUQ7SUFDckM7SUFFQSxPQUFPRDtBQUNUO0FBRU8sU0FBU0QsMEJBQTBCRyxRQUFRO0lBQ2hELElBQU1FLHlCQUF5QkMsbUNBQW1DSDtJQUVsRSxJQUFJRSwyQkFBMkIsTUFBTTtRQUNuQ0YsV0FBV0Usd0JBQXlCLEdBQUc7SUFDekM7SUFFQSxPQUFPRjtBQUNUO0FBRU8sU0FBU04sMkJBQTJCYSxTQUFTLEVBQUVSLE9BQU87SUFDM0QsSUFBTVMsZ0JBQWdCRCxVQUFVTixPQUFPLElBQ2pDUSw4QkFBOEJDLDZDQUE2Q0Y7SUFFakYsSUFBSUMsZ0NBQWdDLE1BQU07UUFDeEMsSUFBTSxBQUFFRSxZQUFjTixpQkFBUSxDQUF0Qk0sV0FDRkgsaUJBQWdCQyw2QkFBOEIsR0FBRztRQUV2REYsWUFBWUksVUFBVUMsaUJBQWlCLENBQUNKLGdCQUFlVDtJQUN6RDtJQUVBLE9BQU9RO0FBQ1Q7QUFFTyxTQUFTWiwrQkFBK0JhLGFBQWE7SUFDMUQsSUFBTUMsOEJBQThCQyw2Q0FBNkNGO0lBRWpGLElBQUlDLGdDQUFnQyxNQUFNO1FBQ3hDRCxnQkFBZ0JDLDZCQUE4QixHQUFHO0lBQ25EO0lBRUEsT0FBT0Q7QUFDVDtBQUVBLFNBQVNMLG1DQUFtQ0gsUUFBUTtJQUNsRCxJQUFJRSx5QkFBeUI7SUFFN0IsSUFBTVcsUUFBUUMsK0JBQW9CLEVBQzVCQyx1QkFBdUJDLElBQUFBLHlDQUErQixLQUN0REMsMkJBQTJCRixxQkFBcUJHLE9BQU8sSUFDdkRDLCtCQUErQkYseUJBQXlCaEIsT0FBTyxJQUMvRG1CLHdDQUF3Q3BCLFNBQVNxQixLQUFLLENBQUNGLDhCQUE4Qk47SUFFM0YsSUFBSU8sdUNBQXVDO1FBQ3pDLElBQU1FLG1CQUFtQnRCLFNBQVN1QixtQkFBbUI7UUFFckRyQix5QkFBeUJvQixrQkFBbUIsR0FBRztJQUNqRDtJQUVBLE9BQU9wQjtBQUNUO0FBRUEsU0FBU1EsNkNBQTZDRixhQUFhO0lBQ2pFLElBQUlDLDhCQUE4QjtJQUVsQyxJQUFNSSxRQUFRVyxvQ0FBeUIsRUFDakNDLHNCQUFzQkMsSUFBQUEsd0NBQThCLEtBQ3BEQywrQkFBK0JGLG9CQUFvQkcsWUFBWSxJQUMvREMsb0NBQW9DRiw2QkFBNkIxQixPQUFPLElBQ3hFNkIscURBQXFEdEIsY0FBY2EsS0FBSyxDQUFDUSxtQ0FBbUNoQjtJQUVsSCxJQUFJaUIsb0RBQW9EO1FBQ3RELElBQU1DLHdCQUF3QnZCLGNBQWN3Qix3QkFBd0I7UUFFcEV2Qiw4QkFBOEJzQix1QkFBd0IsR0FBRztJQUMzRDtJQUVBLE9BQU90QjtBQUNUIn0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJhY2tldHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBCUkFDS0VURURfVEVSTV9ERVBUSCwgQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcsIGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvaW5zdGFuY2VcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgPSBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICBpZiAoYnJhY2tldGVkVGVybUNoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHRlcm1Ob2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZTsgIC8vL1xuXG4gICAgdGVybSA9IHRlcm1Gcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gIGNvbnN0IGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgPSBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICBpZiAoYnJhY2tldGVkVGVybUNoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIHRlcm1Ob2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIHRlcm1Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTsgIC8vL1xuXG4gICAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnROb2RlO1xufVxuXG5mdW5jdGlvbiBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gIGxldCBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gbnVsbDtcblxuICBjb25zdCBkZXB0aCA9IEJSQUNLRVRFRF9URVJNX0RFUFRILFxuICAgICAgICBicmFja2V0ZWRDb25zdHJ1Y3RvciA9IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtID0gYnJhY2tldGVkQ29uc3RydWN0b3IuZ2V0VGVybSgpLFxuICAgICAgICBicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlID0gYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgdGVybU5vZGVNYXRjaEJyYWNrZXRlZENvbnN0cnVjdG9yTm9kZSA9IHRlcm1Ob2RlLm1hdGNoKGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUsIGRlcHRoKTtcblxuICBpZiAodGVybU5vZGVNYXRjaEJyYWNrZXRlZENvbnN0cnVjdG9yTm9kZSkge1xuICAgIGNvbnN0IHNpbmd1bGFyVGVybU5vZGUgPSB0ZXJtTm9kZS5nZXRTaW5ndWxhclRlcm1Ob2RlKCk7XG5cbiAgICBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gc2luZ3VsYXJUZXJtTm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGU7XG59XG5cbmZ1bmN0aW9uIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgbGV0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IG51bGw7XG5cbiAgY29uc3QgZGVwdGggPSBCUkFDS0VURURfU1RBVEVNRU5UX0RFUFRILFxuICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yID0gYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnQgPSBicmFja2V0ZWRDb21iaW5hdG9yLmdldFN0YXRlbWVudCgpLFxuICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50bk5vZGUgPSBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlLm1hdGNoKGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRuTm9kZSwgZGVwdGgpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlTWF0Y2hCcmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IHNpbmd1bGFyU3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0U2luZ3VsYXJTdGF0ZW1lbnROb2RlKCk7XG5cbiAgICBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBzaW5ndWxhclN0YXRlbWVudE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7XG59XG4iXSwibmFtZXMiOlsic3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQiLCJzdHJpcEJyYWNrZXRzRnJvbVN0YXRlbWVudE5vZGUiLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm0iLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlIiwidGVybSIsImNvbnRleHQiLCJ0ZXJtTm9kZSIsImdldE5vZGUiLCJicmFja2V0ZWRUZXJtQ2hpbGROb2RlIiwiYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSIsInRlcm1Gcm9tVGVybU5vZGUiLCJzdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsImRlcHRoIiwiQlJBQ0tFVEVEX1RFUk1fREVQVEgiLCJicmFja2V0ZWRDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmciLCJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm0iLCJnZXRUZXJtIiwiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSIsInRlcm1Ob2RlTWF0Y2hCcmFja2V0ZWRDb25zdHJ1Y3Rvck5vZGUiLCJtYXRjaCIsInNpbmd1bGFyVGVybU5vZGUiLCJnZXRTaW5ndWxhclRlcm1Ob2RlIiwiQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmciLCJicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudG5Ob2RlIiwic3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJzaW5ndWxhclN0YXRlbWVudE5vZGUiLCJnZXRTaW5ndWxhclN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTZCZ0JBO2VBQUFBOztRQWFBQztlQUFBQTs7UUFwQ0FDO2VBQUFBOztRQWFBQztlQUFBQTs7O3VCQWpCNkM7eUJBQ0c7d0JBQ2dCO0FBRXpFLFNBQVNELHNCQUFzQkUsSUFBSSxFQUFFQyxPQUFPO0lBQ2pELElBQU1DLFdBQVdGLEtBQUtHLE9BQU8sSUFDdkJDLHlCQUF5QkMsbUNBQW1DSDtJQUVsRSxJQUFJRSwyQkFBMkIsTUFBTTtRQUNuQyxJQUFNRixZQUFXRSx3QkFBeUIsR0FBRztRQUU3Q0osT0FBT00sSUFBQUEseUJBQWdCLEVBQUNKLFdBQVVEO0lBQ3BDO0lBRUEsT0FBT0Q7QUFDVDtBQUVPLFNBQVNELDBCQUEwQkcsUUFBUTtJQUNoRCxJQUFNRSx5QkFBeUJDLG1DQUFtQ0g7SUFFbEUsSUFBSUUsMkJBQTJCLE1BQU07UUFDbkNGLFdBQVdFLHdCQUF5QixHQUFHO0lBQ3pDO0lBRUEsT0FBT0Y7QUFDVDtBQUVPLFNBQVNOLDJCQUEyQlcsU0FBUyxFQUFFTixPQUFPO0lBQzNELElBQU1PLGdCQUFnQkQsVUFBVUosT0FBTyxJQUNqQ00sOEJBQThCQyw2Q0FBNkNGO0lBRWpGLElBQUlDLGdDQUFnQyxNQUFNO1FBQ3hDLElBQU1ELGlCQUFnQkMsNkJBQThCLEdBQUc7UUFFdkRGLFlBQVlJLElBQUFBLG1DQUEwQixFQUFDSCxnQkFBZVA7SUFDeEQ7SUFFQSxPQUFPTTtBQUNUO0FBRU8sU0FBU1YsK0JBQStCVyxhQUFhO0lBQzFELElBQU1DLDhCQUE4QkMsNkNBQTZDRjtJQUVqRixJQUFJQyxnQ0FBZ0MsTUFBTTtRQUN4Q0QsZ0JBQWdCQyw2QkFBOEIsR0FBRztJQUNuRDtJQUVBLE9BQU9EO0FBQ1Q7QUFFQSxTQUFTSCxtQ0FBbUNILFFBQVE7SUFDbEQsSUFBSUUseUJBQXlCO0lBRTdCLElBQU1RLFFBQVFDLCtCQUFvQixFQUM1QkMsdUJBQXVCQyxJQUFBQSx5Q0FBK0IsS0FDdERDLDJCQUEyQkYscUJBQXFCRyxPQUFPLElBQ3ZEQywrQkFBK0JGLHlCQUF5QmIsT0FBTyxJQUMvRGdCLHdDQUF3Q2pCLFNBQVNrQixLQUFLLENBQUNGLDhCQUE4Qk47SUFFM0YsSUFBSU8sdUNBQXVDO1FBQ3pDLElBQU1FLG1CQUFtQm5CLFNBQVNvQixtQkFBbUI7UUFFckRsQix5QkFBeUJpQixrQkFBbUIsR0FBRztJQUNqRDtJQUVBLE9BQU9qQjtBQUNUO0FBRUEsU0FBU00sNkNBQTZDRixhQUFhO0lBQ2pFLElBQUlDLDhCQUE4QjtJQUVsQyxJQUFNRyxRQUFRVyxvQ0FBeUIsRUFDakNDLHNCQUFzQkMsSUFBQUEsd0NBQThCLEtBQ3BEQywrQkFBK0JGLG9CQUFvQkcsWUFBWSxJQUMvREMsb0NBQW9DRiw2QkFBNkJ2QixPQUFPLElBQ3hFMEIscURBQXFEckIsY0FBY1ksS0FBSyxDQUFDUSxtQ0FBbUNoQjtJQUVsSCxJQUFJaUIsb0RBQW9EO1FBQ3RELElBQU1DLHdCQUF3QnRCLGNBQWN1Qix3QkFBd0I7UUFFcEV0Qiw4QkFBOEJxQix1QkFBd0IsR0FBRztJQUMzRDtJQUVBLE9BQU9yQjtBQUNUIn0=