occam-parsers 23.3.87 → 23.3.89

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.
package/lib/index.js CHANGED
@@ -36,9 +36,6 @@ _export(exports, {
36
36
  get Rule () {
37
37
  return _rule.default;
38
38
  },
39
- get State () {
40
- return _state.default;
41
- },
42
39
  get TerminalNode () {
43
40
  return _terminal.default;
44
41
  },
@@ -67,7 +64,6 @@ const _rules = /*#__PURE__*/ _interop_require_default(require("./utilities/rules
67
64
  const _parser3 = /*#__PURE__*/ _interop_require_default(require("./utilities/parser"));
68
65
  const _rule = /*#__PURE__*/ _interop_require_default(require("./rule"));
69
66
  const _parts = /*#__PURE__*/ _interop_require_default(require("./parts"));
70
- const _state = /*#__PURE__*/ _interop_require_default(require("./state"));
71
67
  const _partTypes = /*#__PURE__*/ _interop_require_default(require("./partTypes"));
72
68
  const _partChoice = /*#__PURE__*/ _interop_require_default(require("./partChoice"));
73
69
  const _definition = /*#__PURE__*/ _interop_require_default(require("./definition"));
@@ -80,4 +76,4 @@ function _interop_require_default(obj) {
80
76
  };
81
77
  }
82
78
 
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCTkZQYXJzZXIgfSBmcm9tIFwiLi9ibmYvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhc2ljUGFyc2VyIH0gZnJvbSBcIi4vYmFzaWMvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbW1vblBhcnNlciB9IGZyb20gXCIuL2NvbW1vbi9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyB0ZXN0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Rlc3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcnVsZXNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcnVsZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhcnNlclwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJ1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhcnRzIH0gZnJvbSBcIi4vcGFydHNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RhdGUgfSBmcm9tIFwiLi9zdGF0ZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJ0VHlwZXMgfSBmcm9tIFwiLi9wYXJ0VHlwZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydENob2ljZSB9IGZyb20gXCIuL3BhcnRDaG9pY2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVmaW5pdGlvbiB9IGZyb20gXCIuL2RlZmluaXRpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXBzaWxvbk5vZGUgfSBmcm9tIFwiLi9ub2RlL3Rlcm1pbmFsL2Vwc2lsb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGVybWluYWxOb2RlIH0gZnJvbSBcIi4vbm9kZS90ZXJtaW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub2RlL25vblRlcm1pbmFsXCI7XG4iXSwibmFtZXMiOlsiQk5GUGFyc2VyIiwiQmFzaWNQYXJzZXIiLCJDb21tb25QYXJzZXIiLCJEZWZpbml0aW9uIiwiRXBzaWxvbk5vZGUiLCJOb25UZXJtaW5hbE5vZGUiLCJQYXJ0Q2hvaWNlIiwiUGFydHMiLCJSdWxlIiwiU3RhdGUiLCJUZXJtaW5hbE5vZGUiLCJub2RlTWl4aW5zIiwicGFyc2VyVXRpbGl0aWVzIiwicGFydFR5cGVzIiwicnVsZXNVdGlsaXRpZXMiLCJ0ZXN0VXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFFb0JBO2VBQUFBLGVBQVM7O1FBQ1RDO2VBQUFBLGdCQUFXOztRQUNYQztlQUFBQSxnQkFBWTs7UUFhWkM7ZUFBQUEsbUJBQVU7O1FBQ1ZDO2VBQUFBLGdCQUFXOztRQUVYQztlQUFBQSxvQkFBZTs7UUFKZkM7ZUFBQUEsbUJBQVU7O1FBSFZDO2VBQUFBLGNBQUs7O1FBRExDO2VBQUFBLGFBQUk7O1FBRUpDO2VBQUFBLGNBQUs7O1FBS0xDO2VBQUFBLGlCQUFZOztRQWJaQztlQUFBQSxhQUFVOztRQUlWQztlQUFBQSxnQkFBZTs7UUFLZkM7ZUFBQUEsa0JBQVM7O1FBTlRDO2VBQUFBLGNBQWM7O1FBRGRDO2VBQUFBLGFBQWE7OzsrREFOSTtnRUFDRTtnRUFDQzs2REFFRjs2REFFRzs4REFDQztnRUFDQzs2REFFWDs4REFDQzs4REFDQTtrRUFDSTttRUFDQzttRUFDQTtnRUFDQztpRUFDQztvRUFDRyJ9
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCTkZQYXJzZXIgfSBmcm9tIFwiLi9ibmYvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhc2ljUGFyc2VyIH0gZnJvbSBcIi4vYmFzaWMvcGFyc2VyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbW1vblBhcnNlciB9IGZyb20gXCIuL2NvbW1vbi9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyB0ZXN0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Rlc3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcnVsZXNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcnVsZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhcnNlclwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJ1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhcnRzIH0gZnJvbSBcIi4vcGFydHNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFydFR5cGVzIH0gZnJvbSBcIi4vcGFydFR5cGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhcnRDaG9pY2UgfSBmcm9tIFwiLi9wYXJ0Q2hvaWNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlZmluaXRpb24gfSBmcm9tIFwiLi9kZWZpbml0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVwc2lsb25Ob2RlIH0gZnJvbSBcIi4vbm9kZS90ZXJtaW5hbC9lcHNpbG9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRlcm1pbmFsTm9kZSB9IGZyb20gXCIuL25vZGUvdGVybWluYWxcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9uVGVybWluYWxOb2RlIH0gZnJvbSBcIi4vbm9kZS9ub25UZXJtaW5hbFwiO1xuIl0sIm5hbWVzIjpbIkJORlBhcnNlciIsIkJhc2ljUGFyc2VyIiwiQ29tbW9uUGFyc2VyIiwiRGVmaW5pdGlvbiIsIkVwc2lsb25Ob2RlIiwiTm9uVGVybWluYWxOb2RlIiwiUGFydENob2ljZSIsIlBhcnRzIiwiUnVsZSIsIlRlcm1pbmFsTm9kZSIsIm5vZGVNaXhpbnMiLCJwYXJzZXJVdGlsaXRpZXMiLCJwYXJ0VHlwZXMiLCJydWxlc1V0aWxpdGllcyIsInRlc3RVdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUVvQkE7ZUFBQUEsZUFBUzs7UUFDVEM7ZUFBQUEsZ0JBQVc7O1FBQ1hDO2VBQUFBLGdCQUFZOztRQVlaQztlQUFBQSxtQkFBVTs7UUFDVkM7ZUFBQUEsZ0JBQVc7O1FBRVhDO2VBQUFBLG9CQUFlOztRQUpmQztlQUFBQSxtQkFBVTs7UUFGVkM7ZUFBQUEsY0FBSzs7UUFETEM7ZUFBQUEsYUFBSTs7UUFNSkM7ZUFBQUEsaUJBQVk7O1FBWlpDO2VBQUFBLGFBQVU7O1FBSVZDO2VBQUFBLGdCQUFlOztRQUlmQztlQUFBQSxrQkFBUzs7UUFMVEM7ZUFBQUEsY0FBYzs7UUFEZEM7ZUFBQUEsYUFBYTs7OytEQU5JO2dFQUNFO2dFQUNDOzZEQUVGOzZEQUVHOzhEQUNDO2dFQUNDOzZEQUVYOzhEQUNDO2tFQUNJO21FQUNDO21FQUNBO2dFQUNDO2lFQUNDO29FQUNHIn0=
@@ -182,6 +182,13 @@ class TerminalNode {
182
182
  }
183
183
  return matches;
184
184
  }
185
+ restore(state) {
186
+ ///
187
+ }
188
+ rewrite(state) {
189
+ const terminalNode = this; ///
190
+ return terminalNode;
191
+ }
185
192
  clone(...remainingArguments) {
186
193
  const Class = this.constructor, parentNode = null, significantToken = this.significantToken, terminalNode = new Class(significantToken, parentNode, ...remainingArguments);
187
194
  return terminalNode;
@@ -207,4 +214,4 @@ class TerminalNode {
207
214
  }
208
215
  }
209
216
 
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBzZXRTaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIGlzTm9XaGl0ZXNwYWNlTm9kZSgpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlTm9kZTtcbiAgfVxuXG4gIGlzQ3V0Tm9kZSgpIHtcbiAgICBjb25zdCBjdXROb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY3V0Tm9kZTtcbiAgfVxuXG4gIGlzRXBzaWxvbk5vZGUoKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBlcHNpbG9uTm9kZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRydWU7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpOyB9XG5cbiAgZ2V0Q29udGVudCgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7IH1cblxuICBpc1VucHJlY2VkZW50ZWQoKSB7XG4gICAgbGV0IHVucHJlY2VkZW50ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiB1bnByZWNlZGVudGVkO1xuICB9XG5cbiAgY29tcGFyZVByZWNlZGVuY2UocHJlY2VkZW5jZSwgZmlyc3QsIGxhc3QpIHtcbiAgICBjb25zdCBwcmVjZWRlbmNlQ29tcGFyZXMgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHByZWNlZGVuY2VDb21wYXJlcztcbiAgfVxuXG4gIGdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRoaXMuZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0aGlzLmdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgbGV0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5zaWduaWZpY2FudFRva2VuICE9PSBudWxsKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZih0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VucyhzaWduaWZpY2FudFRva2VucyA9IFtdKSB7XG4gICAgaWYgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgc2lnbmlmaWNhbnRUb2tlbnMucHVzaCh0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VucztcbiAgfVxuXG4gIGdldEFuY2VzdG9yTm9kZXMoKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IFtdO1xuXG4gICAgbGV0IGFuY2VzdG9yTm9kZSA9IHRoaXMucGFyZW50Tm9kZTsgLy8vXG5cbiAgICB3aGlsZSAoYW5jZXN0b3JOb2RlICE9PSBudWxsKSB7XG4gICAgICBhbmNlc3Rvck5vZGVzLnB1c2goYW5jZXN0b3JOb2RlKTtcblxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGFuY2VzdG9yTm9kZS5nZXRQYXJlbnROb2RlKCk7XG5cbiAgICAgIGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlcztcbiAgfVxuXG4gIG1hcEFuY2VzdG9yTm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLm1hcChjYWxsYmFjayk7XG4gIH1cblxuICBzb21lQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIHJlc3VsdCA9ICEhY2FsbGJhY2soYW5jZXN0b3JOb2RlLCBpbmRleCk7IC8vL1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKGFuY2VzdG9yTm9kZSwgaW5kZXgpO1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBhbmNlc3Rvck5vZGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgYW5jZXN0b3JOb2RlID0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGFuY2VzdG9yTm9kZTtcbiAgfVxuXG4gIGV2ZXJ5QW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gISFjYWxsYmFjayhhbmNlc3Rvck5vZGUsIGluZGV4KTsgLy8vXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaWx0ZXJBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5maWx0ZXIoY2FsbGJhY2spO1xuICB9XG5cbiAgcmVkdWNlQW5jZXN0b3JOb2RlKGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5yZWR1Y2UoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSk7XG4gIH1cblxuICBmb3JFYWNoQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IHRoaXMuZ2V0QW5jZXN0b3JOb2RlcygpO1xuXG4gICAgYW5jZXN0b3JOb2Rlcy5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGdldERlc2NlbmRhbnROb2RlcyhkZXNjZW5kYW50Tm9kZXMgPSBbXSkge1xuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZXM7XG4gIH1cblxuICBzb21lRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCByZXN1bHQgPSBmYWxzZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgZGVzY2VuZGFudE5vZGUgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gZGVzY2VuZGFudE5vZGU7XG4gIH1cblxuICBldmVyeURlc2NlbmRhbnROb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZVBhcnNlVHJlZSA9IFRlcm1pbmFsTm9kZVBhcnNlVHJlZS5mcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSB0ZXJtaW5hbE5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBtYXRjaChub2RlLCBkZXB0aCA9IEluZmluaXR5LCBleGFjdGx5ID0gZmFsc2UpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gdGVybWluYWxOb2RlLmdldFNpZ25pZmljYW50VG9rZW4oKTtcblxuICAgICAgbWF0Y2hlcyA9IGV4YWN0bHkgP1xuICAgICAgICAgICAgICAgICAgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9PT0gc2lnbmlmaWNhbnRUb2tlbikgOlxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWduaWZpY2FudFRva2VuLm1hdGNoKHNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgY2xvbmUoLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgQ2xhc3MgPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSB0aGlzLnNpZ25pZmljYW50VG9rZW4sXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBudWxsO1xuICAgIHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9IG51bGw7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChDbGFzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbiA9IG51bGwsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TaWduaWZpY2FudFRva2VuKENsYXNzLCBzaWduaWZpY2FudFRva2VuLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAoc2lnbmlmaWNhbnRUb2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVGVybWluYWxOb2RlIiwic2lnbmlmaWNhbnRUb2tlbiIsInBhcmVudE5vZGUiLCJnZXRTaWduaWZpY2FudFRva2VuIiwiZ2V0UGFyZW50Tm9kZSIsInNldFNpZ25pZmljYW50VG9rZW4iLCJzZXRQYXJlbnROb2RlIiwiaXNOb1doaXRlc3BhY2VOb2RlIiwibm9XaGl0ZXNwYWNlTm9kZSIsImlzQ3V0Tm9kZSIsImN1dE5vZGUiLCJpc0Vwc2lsb25Ob2RlIiwiZXBzaWxvbk5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZ2V0VHlwZSIsImdldENvbnRlbnQiLCJpc1VucHJlY2VkZW50ZWQiLCJ1bnByZWNlZGVudGVkIiwiY29tcGFyZVByZWNlZGVuY2UiLCJwcmVjZWRlbmNlIiwiZmlyc3QiLCJsYXN0IiwicHJlY2VkZW5jZUNvbXBhcmVzIiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJ0b2tlbnMiLCJzaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRTaWduaWZpY2FudFRva2VuSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiaW5kZXhPZiIsImdldFNpZ25pZmljYW50VG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbnMiLCJwdXNoIiwiZ2V0QW5jZXN0b3JOb2RlcyIsImFuY2VzdG9yTm9kZXMiLCJhbmNlc3Rvck5vZGUiLCJtYXBBbmNlc3Rvck5vZGUiLCJjYWxsYmFjayIsIm1hcCIsInNvbWVBbmNlc3Rvck5vZGUiLCJyZXN1bHQiLCJpbmRleCIsImZpbmRBbmNlc3Rvck5vZGUiLCJ1bmRlZmluZWQiLCJldmVyeUFuY2VzdG9yTm9kZSIsImZpbHRlckFuY2VzdG9yTm9kZSIsImZpbHRlciIsInJlZHVjZUFuY2VzdG9yTm9kZSIsImluaXRpYWxWYWx1ZSIsInJlZHVjZSIsImZvckVhY2hBbmNlc3Rvck5vZGUiLCJmb3JFYWNoIiwiZ2V0RGVzY2VuZGFudE5vZGVzIiwiZGVzY2VuZGFudE5vZGVzIiwic29tZURlc2NlbmRhbnROb2RlIiwiZmluZERlc2NlbmRhbnROb2RlIiwiZGVzY2VuZGFudE5vZGUiLCJldmVyeURlc2NlbmRhbnROb2RlIiwiYXNQYXJzZVRyZWUiLCJ0ZXJtaW5hbE5vZGVQYXJzZVRyZWUiLCJUZXJtaW5hbE5vZGVQYXJzZVRyZWUiLCJmcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zIiwicGFyc2VUcmVlIiwibWF0Y2giLCJub2RlIiwiZGVwdGgiLCJJbmZpbml0eSIsImV4YWN0bHkiLCJtYXRjaGVzIiwibm9kZVRlcm1pbmFsTm9kZSIsImNsb25lIiwicmVtYWluaW5nQXJndW1lbnRzIiwiQ2xhc3MiLCJkZXN0cm95IiwiZnJvbU5vdGhpbmciLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OztxRUFGYTs7Ozs7O0FBRW5CLE1BQU1BO0lBQ25CLFlBQVlDLGdCQUFnQixFQUFFQyxVQUFVLENBQUU7UUFDeEMsSUFBSSxDQUFDRCxnQkFBZ0IsR0FBR0E7UUFDeEIsSUFBSSxDQUFD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
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBzZXRTaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIGlzTm9XaGl0ZXNwYWNlTm9kZSgpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlTm9kZTtcbiAgfVxuXG4gIGlzQ3V0Tm9kZSgpIHtcbiAgICBjb25zdCBjdXROb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY3V0Tm9kZTtcbiAgfVxuXG4gIGlzRXBzaWxvbk5vZGUoKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBlcHNpbG9uTm9kZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRydWU7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpOyB9XG5cbiAgZ2V0Q29udGVudCgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7IH1cblxuICBpc1VucHJlY2VkZW50ZWQoKSB7XG4gICAgbGV0IHVucHJlY2VkZW50ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiB1bnByZWNlZGVudGVkO1xuICB9XG5cbiAgY29tcGFyZVByZWNlZGVuY2UocHJlY2VkZW5jZSwgZmlyc3QsIGxhc3QpIHtcbiAgICBjb25zdCBwcmVjZWRlbmNlQ29tcGFyZXMgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHByZWNlZGVuY2VDb21wYXJlcztcbiAgfVxuXG4gIGdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRoaXMuZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0aGlzLmdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgbGV0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5zaWduaWZpY2FudFRva2VuICE9PSBudWxsKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZih0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VucyhzaWduaWZpY2FudFRva2VucyA9IFtdKSB7XG4gICAgaWYgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgc2lnbmlmaWNhbnRUb2tlbnMucHVzaCh0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VucztcbiAgfVxuXG4gIGdldEFuY2VzdG9yTm9kZXMoKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IFtdO1xuXG4gICAgbGV0IGFuY2VzdG9yTm9kZSA9IHRoaXMucGFyZW50Tm9kZTsgLy8vXG5cbiAgICB3aGlsZSAoYW5jZXN0b3JOb2RlICE9PSBudWxsKSB7XG4gICAgICBhbmNlc3Rvck5vZGVzLnB1c2goYW5jZXN0b3JOb2RlKTtcblxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGFuY2VzdG9yTm9kZS5nZXRQYXJlbnROb2RlKCk7XG5cbiAgICAgIGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlcztcbiAgfVxuXG4gIG1hcEFuY2VzdG9yTm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLm1hcChjYWxsYmFjayk7XG4gIH1cblxuICBzb21lQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIHJlc3VsdCA9ICEhY2FsbGJhY2soYW5jZXN0b3JOb2RlLCBpbmRleCk7IC8vL1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKGFuY2VzdG9yTm9kZSwgaW5kZXgpO1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBhbmNlc3Rvck5vZGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgYW5jZXN0b3JOb2RlID0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGFuY2VzdG9yTm9kZTtcbiAgfVxuXG4gIGV2ZXJ5QW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gISFjYWxsYmFjayhhbmNlc3Rvck5vZGUsIGluZGV4KTsgLy8vXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaWx0ZXJBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5maWx0ZXIoY2FsbGJhY2spO1xuICB9XG5cbiAgcmVkdWNlQW5jZXN0b3JOb2RlKGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5yZWR1Y2UoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSk7XG4gIH1cblxuICBmb3JFYWNoQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IHRoaXMuZ2V0QW5jZXN0b3JOb2RlcygpO1xuXG4gICAgYW5jZXN0b3JOb2Rlcy5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGdldERlc2NlbmRhbnROb2RlcyhkZXNjZW5kYW50Tm9kZXMgPSBbXSkge1xuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZXM7XG4gIH1cblxuICBzb21lRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCByZXN1bHQgPSBmYWxzZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgZGVzY2VuZGFudE5vZGUgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gZGVzY2VuZGFudE5vZGU7XG4gIH1cblxuICBldmVyeURlc2NlbmRhbnROb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZVBhcnNlVHJlZSA9IFRlcm1pbmFsTm9kZVBhcnNlVHJlZS5mcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSB0ZXJtaW5hbE5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBtYXRjaChub2RlLCBkZXB0aCA9IEluZmluaXR5LCBleGFjdGx5ID0gZmFsc2UpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gdGVybWluYWxOb2RlLmdldFNpZ25pZmljYW50VG9rZW4oKTtcblxuICAgICAgbWF0Y2hlcyA9IGV4YWN0bHkgP1xuICAgICAgICAgICAgICAgICAgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9PT0gc2lnbmlmaWNhbnRUb2tlbikgOlxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWduaWZpY2FudFRva2VuLm1hdGNoKHNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgcmVzdG9yZShzdGF0ZSkge1xuICAgIC8vL1xuICB9XG5cbiAgcmV3cml0ZShzdGF0ZSkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRoaXM7ICAvLy9cblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBDbGFzcyA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IHRoaXMuc2lnbmlmaWNhbnRUb2tlbixcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgdGhpcy5zaWduaWZpY2FudFRva2VuID0gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhDbGFzcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gVGVybWluYWxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuID0gbnVsbCxcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVNpZ25pZmljYW50VG9rZW4oQ2xhc3MsIHNpZ25pZmljYW50VG9rZW4sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChzaWduaWZpY2FudFRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gVGVybWluYWxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJUZXJtaW5hbE5vZGUiLCJzaWduaWZpY2FudFRva2VuIiwicGFyZW50Tm9kZSIsImdldFNpZ25pZmljYW50VG9rZW4iLCJnZXRQYXJlbnROb2RlIiwic2V0U2lnbmlmaWNhbnRUb2tlbiIsInNldFBhcmVudE5vZGUiLCJpc05vV2hpdGVzcGFjZU5vZGUiLCJub1doaXRlc3BhY2VOb2RlIiwiaXNDdXROb2RlIiwiY3V0Tm9kZSIsImlzRXBzaWxvbk5vZGUiLCJlcHNpbG9uTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJnZXRUeXBlIiwiZ2V0Q29udGVudCIsImlzVW5wcmVjZWRlbnRlZCIsInVucHJlY2VkZW50ZWQiLCJjb21wYXJlUHJlY2VkZW5jZSIsInByZWNlZGVuY2UiLCJmaXJzdCIsImxhc3QiLCJwcmVjZWRlbmNlQ29tcGFyZXMiLCJnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsInRva2VucyIsInNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldFNpZ25pZmljYW50VG9rZW5JbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImxhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJpbmRleE9mIiwiZ2V0U2lnbmlmaWNhbnRUb2tlbnMiLCJzaWduaWZpY2FudFRva2VucyIsInB1c2giLCJnZXRBbmNlc3Rvck5vZGVzIiwiYW5jZXN0b3JOb2RlcyIsImFuY2VzdG9yTm9kZSIsIm1hcEFuY2VzdG9yTm9kZSIsImNhbGxiYWNrIiwibWFwIiwic29tZUFuY2VzdG9yTm9kZSIsInJlc3VsdCIsImluZGV4IiwiZmluZEFuY2VzdG9yTm9kZSIsInVuZGVmaW5lZCIsImV2ZXJ5QW5jZXN0b3JOb2RlIiwiZmlsdGVyQW5jZXN0b3JOb2RlIiwiZmlsdGVyIiwicmVkdWNlQW5jZXN0b3JOb2RlIiwiaW5pdGlhbFZhbHVlIiwicmVkdWNlIiwiZm9yRWFjaEFuY2VzdG9yTm9kZSIsImZvckVhY2giLCJnZXREZXNjZW5kYW50Tm9kZXMiLCJkZXNjZW5kYW50Tm9kZXMiLCJzb21lRGVzY2VuZGFudE5vZGUiLCJmaW5kRGVzY2VuZGFudE5vZGUiLCJkZXNjZW5kYW50Tm9kZSIsImV2ZXJ5RGVzY2VuZGFudE5vZGUiLCJhc1BhcnNlVHJlZSIsInRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsIlRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsImZyb21UZXJtaW5hbE5vZGVBbmRUb2tlbnMiLCJwYXJzZVRyZWUiLCJtYXRjaCIsIm5vZGUiLCJkZXB0aCIsIkluZmluaXR5IiwiZXhhY3RseSIsIm1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwicmVzdG9yZSIsInN0YXRlIiwicmV3cml0ZSIsImNsb25lIiwicmVtYWluaW5nQXJndW1lbnRzIiwiQ2xhc3MiLCJkZXN0cm95IiwiZnJvbU5vdGhpbmciLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OztxRUFGYTs7Ozs7O0FBRW5CLE1BQU1BO0lBQ25CLFlBQVlDLGdCQUFnQixFQUFFQyxVQUFVLENBQUU7UUFDeEMsSUFBSSxDQUFDRCxnQkFBZ0IsR0FBR0E7UUFDeEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFDLHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQ0YsZ0JBQWdCO0lBQzlCO0lBRUFHLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRixVQUFVO0lBQ3hCO0lBRUFHLG9CQUFvQkosZ0JBQWdCLEVBQUU7UUFDcEMsSUFBSSxDQUFDQSxnQkFBZ0IsR0FBR0E7SUFDMUI7SUFFQUssY0FBY0osVUFBVSxFQUFFO1FBQ3hCLElBQUksQ0FBQ0EsVUFBVSxHQUFHQTtJQUNwQjtJQUVBSyxxQkFBcUI7UUFDbkIsTUFBTUMsbUJBQW1CO1FBRXpCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWTtRQUNWLE1BQU1DLFVBQVU7UUFFaEIsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0I7UUFDZCxNQUFNQyxjQUFjO1FBRXBCLE9BQU9BO0lBQ1Q7SUFFQUMsaUJBQWlCO1FBQ2YsTUFBTUMsZUFBZTtRQUVyQixPQUFPQTtJQUNUO0lBRUFDLG9CQUFvQjtRQUNsQixNQUFNQyxrQkFBa0I7UUFFeEIsT0FBT0E7SUFDVDtJQUVBQyxVQUFVO1FBQUUsT0FBTyxJQUFJLENBQUNoQixnQkFBZ0IsQ0FBQ2dCLE9BQU87SUFBSTtJQUVwREMsYUFBYTtRQUFFLE9BQU8sSUFBSSxDQUFDakIsZ0JBQWdCLENBQUNpQixVQUFVO0lBQUk7SUFFMURDLGtCQUFrQjtRQUNoQixJQUFJQyxnQkFBZ0I7UUFFcEIsT0FBT0E7SUFDVDtJQUVBQyxrQkFBa0JDLFVBQVUsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUU7UUFDekMsTUFBTUMscUJBQXFCO1FBRTNCLE9BQU9BO0lBQ1Q7SUFFQUMsOEJBQThCQyxNQUFNLEVBQUU7UUFDcEMsTUFBTUMsd0JBQXdCLElBQUksQ0FBQ0Msd0JBQXdCLENBQUNGLFNBQ3RERyw2QkFBNkJGLHVCQUF1QixHQUFHO1FBRTdELE9BQU9FO0lBQ1Q7SUFFQUMsNkJBQTZCSixNQUFNLEVBQUU7UUFDbkMsTUFBTUMsd0JBQXdCLElBQUksQ0FBQ0Msd0JBQXdCLENBQUNGLFNBQ3RESyw0QkFBNEJKLHVCQUF1QixHQUFHO1FBRTVELE9BQU9JO0lBQ1Q7SUFFQUgseUJBQXlCRixNQUFNLEVBQUU7UUFDL0IsSUFBSUMsd0JBQXdCO1FBRTVCLElBQUksSUFBSSxDQUFDM0IsZ0JBQWdCLEtBQUssTUFBTTtZQUNsQzJCLHdCQUF3QkQsT0FBT00sT0FBTyxDQUFDLElBQUksQ0FBQ2hDLGdCQUFnQjtRQUM5RDtRQUVBLE9BQU8yQjtJQUNUO0lBRUFNLHFCQUFxQkMsb0JBQW9CLEVBQUUsRUFBRTtRQUMzQyxJQUFJLElBQUksQ0FBQ2xDLGdCQUFnQixLQUFLLE1BQU07WUFDbENrQyxrQkFBa0JDLElBQUksQ0FBQyxJQUFJLENBQUNuQyxnQkFBZ0I7UUFDOUM7UUFFQSxPQUFPa0M7SUFDVDtJQUVBRSxtQkFBbUI7UUFDakIsTUFBTUMsZ0JBQWdCLEVBQUU7UUFFeEIsSUFBSUMsZUFBZSxJQUFJLENBQUNyQyxVQUFVLEVBQUUsR0FBRztRQUV2QyxNQUFPcUMsaUJBQWlCLEtBQU07WUFDNUJELGNBQWNGLElBQUksQ0FBQ0c7WUFFbkIsTUFBTXJDLGFBQWFxQyxhQUFhbkMsYUFBYTtZQUU3Q21DLGVBQWVyQyxZQUFhLEdBQUc7UUFDakM7UUFFQSxPQUFPb0M7SUFDVDtJQUVBRSxnQkFBZ0JDLFFBQVEsRUFBRTtRQUN4QixNQUFNSCxnQkFBZ0IsSUFBSSxDQUFDRCxnQkFBZ0I7UUFFM0MsT0FBT0MsY0FBY0ksR0FBRyxDQUFDRDtJQUMzQjtJQUVBRSxpQkFBaUJGLFFBQVEsRUFBRTtRQUN6QixJQUFJRyxTQUFTO1FBRWIsSUFBSUMsUUFBUSxHQUNSTixlQUFlLElBQUksQ0FBQ3JDLFVBQVUsRUFBRSxHQUFHO1FBRXZDLE1BQU9xQyxpQkFBaUIsS0FBTTtZQUM1QkssU0FBUyxDQUFDLENBQUNILFNBQVNGLGNBQWNNLFFBQVEsR0FBRztZQUU3QyxJQUFJRCxRQUFRO2dCQUNWO1lBQ0Y7WUFFQSxNQUFNMUMsYUFBYXFDLGFBQWFuQyxhQUFhO1lBRTdDbUMsZUFBZXJDLFlBQWEsR0FBRztZQUUvQjJDO1FBQ0Y7UUFFQSxPQUFPRDtJQUNUO0lBRUFFLGlCQUFpQkwsUUFBUSxFQUFFO1FBQ3pCLElBQUlJLFFBQVEsR0FDUk4sZUFBZSxJQUFJLENBQUNyQyxVQUFVLEVBQUUsR0FBRztRQUV2QyxNQUFPcUMsaUJBQWlCLEtBQU07WUFDNUIsTUFBTUssU0FBU0gsU0FBU0YsY0FBY007WUFFdEMsSUFBSUQsUUFBUTtnQkFDVixPQUFPTDtZQUNUO1lBRUEsTUFBTXJDLGFBQWFxQyxhQUFhbkMsYUFBYTtZQUU3Q21DLGVBQWVyQyxZQUFhLEdBQUc7WUFFL0IyQztRQUNGO1FBRUFOLGVBQWVRO1FBRWYsT0FBT1I7SUFDVDtJQUVBUyxrQkFBa0JQLFFBQVEsRUFBRTtRQUMxQixJQUFJRyxTQUFTO1FBRWIsSUFBSUMsUUFBUSxHQUNSTixlQUFlLElBQUksQ0FBQ3JDLFVBQVUsRUFBRSxHQUFHO1FBRXZDLE1BQU9xQyxpQkFBaUIsS0FBTTtZQUM1QkssU0FBUyxDQUFDLENBQUNILFNBQVNGLGNBQWNNLFFBQVEsR0FBRztZQUU3QyxJQUFJLENBQUNELFFBQVE7Z0JBQ1g7WUFDRjtZQUVBLE1BQU0xQyxhQUFhcUMsYUFBYW5DLGFBQWE7WUFFN0NtQyxlQUFlckMsWUFBYSxHQUFHO1lBRS9CMkM7UUFDRjtRQUVBLE9BQU9EO0lBQ1Q7SUFFQUssbUJBQW1CUixRQUFRLEVBQUU7UUFDM0IsTUFBTUgsZ0JBQWdCLElBQUksQ0FBQ0QsZ0JBQWdCO1FBRTNDLE9BQU9DLGNBQWNZLE1BQU0sQ0FBQ1Q7SUFDOUI7SUFFQVUsbUJBQW1CVixRQUFRLEVBQUVXLFlBQVksRUFBRTtRQUN6QyxNQUFNZCxnQkFBZ0IsSUFBSSxDQUFDRCxnQkFBZ0I7UUFFM0MsT0FBT0MsY0FBY2UsTUFBTSxDQUFDWixVQUFVVztJQUN4QztJQUVBRSxvQkFBb0JiLFFBQVEsRUFBRTtRQUM1QixNQUFNSCxnQkFBZ0IsSUFBSSxDQUFDRCxnQkFBZ0I7UUFFM0NDLGNBQWNpQixPQUFPLENBQUNkO0lBQ3hCO0lBRUFlLG1CQUFtQkMsa0JBQWtCLEVBQUUsRUFBRTtRQUN2QyxPQUFPQTtJQUNUO0lBRUFDLG1CQUFtQmpCLFFBQVEsRUFBRTtRQUMzQixNQUFNRyxTQUFTO1FBRWYsT0FBT0E7SUFDVDtJQUVBZSxtQkFBbUJsQixRQUFRLEVBQUU7UUFDM0IsSUFBSW1CLGlCQUFpQmI7UUFFckIsT0FBT2E7SUFDVDtJQUVBQyxvQkFBb0JwQixRQUFRLEVBQUU7UUFDNUIsSUFBSUcsU0FBUztRQUViLE9BQU9BO0lBQ1Q7SUFFQWtCLFlBQVluQyxNQUFNLEVBQUU7UUFDbEIsTUFBTWIsZUFBZSxJQUFJLEVBQ25CaUQsd0JBQXdCQyxxQkFBcUIsQ0FBQ0MseUJBQXlCLENBQUNuRCxjQUFjYSxTQUN0RnVDLFlBQVlILHVCQUF3QixHQUFHO1FBRTdDLE9BQU9HO0lBQ1Q7SUFFQUMsTUFBTUMsSUFBSSxFQUFFQyxRQUFRQyxRQUFRLEVBQUVDLFVBQVUsS0FBSyxFQUFFO1FBQzdDLElBQUlDLFVBQVU7UUFFZCxNQUFNQyxtQkFBbUJMLEtBQUt2RCxjQUFjO1FBRTVDLElBQUk0RCxrQkFBa0I7WUFDcEIsTUFBTTNELGVBQWVzRCxNQUNmbkUsbUJBQW1CYSxhQUFhWCxtQkFBbUI7WUFFekRxRSxVQUFVRCxVQUNHLElBQUksQ0FBQ3RFLGdCQUFnQixLQUFLQSxtQkFDeEIsSUFBSSxDQUFDQSxnQkFBZ0IsQ0FBQ2tFLEtBQUssQ0FBQ2xFO1FBQzdDO1FBRUEsT0FBT3VFO0lBQ1Q7SUFFQUUsUUFBUUMsS0FBSyxFQUFFO0lBQ2IsR0FBRztJQUNMO0lBRUFDLFFBQVFELEtBQUssRUFBRTtRQUNiLE1BQU03RCxlQUFlLElBQUksRUFBRyxHQUFHO1FBRS9CLE9BQU9BO0lBQ1Q7SUFFQStELE1BQU0sR0FBR0Msa0JBQWtCLEVBQUU7UUFDM0IsTUFBTUMsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUN4QjdFLGFBQWEsTUFDYkQsbUJBQW1CLElBQUksQ0FBQ0EsZ0JBQWdCLEVBQ3hDYSxlQUFlLElBQUlpRSxNQUFNOUUsa0JBQWtCQyxlQUFlNEU7UUFFaEUsT0FBT2hFO0lBQ1Q7SUFFQWtFLFVBQVU7UUFDUixJQUFJLENBQUM5RSxVQUFVLEdBQUc7UUFDbEIsSUFBSSxDQUFDRCxnQkFBZ0IsR0FBRztJQUMxQjtJQUVBLE9BQU9nRixZQUFZRixLQUFLLEVBQUUsR0FBR0Qsa0JBQWtCLEVBQUU7UUFDL0MsSUFBSUMsVUFBVWhDLFdBQVc7WUFDdkJnQyxRQUFRL0UsY0FBYyxHQUFHO1FBQzNCO1FBRUEsTUFBTUMsbUJBQW1CLE1BQ25CQyxhQUFhLE1BQ2JZLGVBQWUsSUFBSWlFLE1BQU05RSxrQkFBa0JDLGVBQWU0RTtRQUVoRSxPQUFPaEU7SUFDVDtJQUVBLE9BQU9vRSxxQkFBcUJILEtBQUssRUFBRTlFLGdCQUFnQixFQUFFLEdBQUc2RSxrQkFBa0IsRUFBRTtRQUMxRSxJQUFJN0UscUJBQXFCOEMsV0FBVztZQUNsQzlDLG1CQUFtQjhFLE9BQU8sR0FBRztZQUU3QkEsUUFBUS9FLGNBQWMsR0FBRztRQUMzQjtRQUVBLE1BQU1FLGFBQWEsTUFDYlksZUFBZSxJQUFJaUUsTUFBTTlFLGtCQUFrQkMsZUFBZTRFO1FBRWhFLE9BQU9oRTtJQUNUO0FBQ0YifQ==
package/lib/state.js CHANGED
@@ -79,13 +79,8 @@ class State {
79
79
  const index = this.index, branches = this.branches - 1, state = new State(this.parser, this.tokens, index, branches);
80
80
  return state;
81
81
  }
82
- static fromTokensAndParser(Class, tokens, parser, ...remaingArguments) {
83
- if (parser === undefined) {
84
- parser = tokens; ///
85
- tokens = Class; ///
86
- Class = State; ///
87
- }
88
- const tokensSignificant = areTokensSignificant(tokens), tokensLength = tokens.length, index = tokensSignificant ? 0 : tokensLength, branches = 0, state = new Class(parser, tokens, index, branches, ...remaingArguments);
82
+ static fromTokensAndParser(tokens, parser) {
83
+ const tokensSignificant = areTokensSignificant(tokens), tokensLength = tokens.length, index = tokensSignificant ? 0 : tokensLength, branches = 0, state = new State(parser, tokens, index, branches);
89
84
  return state;
90
85
  }
91
86
  }
@@ -105,4 +100,4 @@ function areTokensSignificant(tokens, index = 0) {
105
100
  return tokensSignificant;
106
101
  }
107
102
 
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhdGUge1xuICBjb25zdHJ1Y3RvcihwYXJzZXIsIHRva2VucywgaW5kZXgsIGJyYW5jaGVzKSB7XG4gICAgdGhpcy5wYXJzZXIgPSBwYXJzZXI7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgIHRoaXMuYnJhbmNoZXMgPSBicmFuY2hlcztcbiAgfVxuXG4gIGdldFBhcnNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXI7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZXg7XG4gIH1cblxuICBnZXRCcmFuY2hlcygpIHtcbiAgICByZXR1cm4gdGhpcy5icmFuY2hlcztcbiAgfVxuXG4gIGlzQnJhbmNoaW5nKCkge1xuICAgIGNvbnN0IGJyYW5jaGluZyA9ICh0aGlzLmJyYW5jaGVzID4gMCk7XG5cbiAgICByZXR1cm4gYnJhbmNoaW5nO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICBjb25zdCB0b2tlbnNMZW5ndGggPSB0aGlzLnRva2Vucy5sZW5ndGgsXG4gICAgICAgICAgZW1wdHkgPSAodGhpcy5pbmRleCA9PT0gdG9rZW5zTGVuZ3RoKTtcblxuICAgIHJldHVybiBlbXB0eTtcbiAgfVxuXG4gIGZpbmRSdWxlKHJ1bGVOYW1lKSB7IHJldHVybiB0aGlzLnBhcnNlci5maW5kUnVsZShydWxlTmFtZSk7IH1cblxuICBOb25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUocnVsZU5hbWUpIHsgcmV0dXJuIHRoaXMucGFyc2VyLk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSk7IH1cblxuICBpc05leHRUb2tlbldoaXRlc3BhY2VUb2tlbigpIHtcbiAgICBjb25zdCBuZXh0VG9rZW4gPSB0aGlzLnRva2Vuc1t0aGlzLmluZGV4XSxcbiAgICAgICAgICBuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4gPSBuZXh0VG9rZW4uaXNXaGl0ZXNwYWNlVG9rZW4oKTtcblxuICAgIHJldHVybiBuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW47XG4gIH1cblxuICBnZXROZXh0U2lnbmlmaWNhbnRUb2tlbigpIHtcbiAgICBsZXQgbmV4dFNpZ25pZmljYW50VG9rZW4gPSBudWxsO1xuXG4gICAgbGV0IGluZGV4ID0gdGhpcy5pbmRleDtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zW2luZGV4XSxcbiAgICAgICAgICAgIHRva2VuU2lnbmlmaWNhbnQgPSB0b2tlbi5pc1NpZ25pZmljYW50KCk7XG5cbiAgICAgIGlmICh0b2tlblNpZ25pZmljYW50KSB7XG4gICAgICAgIG5leHRTaWduaWZpY2FudFRva2VuID0gdG9rZW47IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0U2lnbmlmaWNhbnRUb2tlbjtcbiAgfVxuXG4gIGFkdmFuY2UoKSB7XG4gICAgY29uc3QgbmV4dFNpZ25pZmljYW50VG9rZW4gPSB0aGlzLmdldE5leHRTaWduaWZpY2FudFRva2VuKCk7XG5cbiAgICBsZXQgaW5kZXg7XG5cbiAgICBpbmRleCA9IHRoaXMudG9rZW5zLmluZGV4T2YobmV4dFNpZ25pZmljYW50VG9rZW4sIHRoaXMuaW5kZXgpO1xuXG4gICAgaW5kZXgrKztcblxuICAgIGNvbnN0IHRva2Vuc1NpZ25pZmljYW50ID0gYXJlVG9rZW5zU2lnbmlmaWNhbnQodGhpcy50b2tlbnMsIGluZGV4KTtcblxuICAgIGlmICghdG9rZW5zU2lnbmlmaWNhbnQpIHtcbiAgICAgIGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICAgICAgaW5kZXggPSB0b2tlbnNMZW5ndGg7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGJyYW5jaGVzID0gdGhpcy5icmFuY2hlcyxcbiAgICAgICAgICBzdGF0ZSA9IG5ldyBTdGF0ZSh0aGlzLnBhcnNlciwgdGhpcy50b2tlbnMsIGluZGV4LCBicmFuY2hlcyk7XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBicmFuY2goKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4LFxuICAgICAgICAgIGJyYW5jaGVzID0gdGhpcy5icmFuY2hlcyArIDEsXG4gICAgICAgICAgc3RhdGUgPSBuZXcgU3RhdGUodGhpcy5wYXJzZXIsIHRoaXMudG9rZW5zLCBpbmRleCwgYnJhbmNoZXMpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgcHJ1bmUoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4LFxuICAgICAgICAgIGJyYW5jaGVzID0gdGhpcy5icmFuY2hlcyAtIDEsXG4gICAgICAgICAgc3RhdGUgPSBuZXcgU3RhdGUodGhpcy5wYXJzZXIsIHRoaXMudG9rZW5zLCBpbmRleCwgYnJhbmNoZXMpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ub2tlbnNBbmRQYXJzZXIoQ2xhc3MsIHRva2VucywgcGFyc2VyLCAuLi5yZW1haW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKHBhcnNlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJzZXIgPSB0b2tlbnM7ICAvLy9cblxuICAgICAgdG9rZW5zID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFN0YXRlOyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zU2lnbmlmaWNhbnQgPSBhcmVUb2tlbnNTaWduaWZpY2FudCh0b2tlbnMpLFxuICAgICAgICAgIHRva2Vuc0xlbmd0aCA9IHRva2Vucy5sZW5ndGgsXG4gICAgICAgICAgaW5kZXggPSB0b2tlbnNTaWduaWZpY2FudCA/XG4gICAgICAgICAgICAgICAgICAgIDAgOlxuICAgICAgICAgICAgICAgICAgICAgIHRva2Vuc0xlbmd0aCwgLy8vXG4gICAgICAgICAgYnJhbmNoZXMgPSAwLFxuICAgICAgICAgIHN0YXRlID0gbmV3IENsYXNzKHBhcnNlciwgdG9rZW5zLCBpbmRleCwgYnJhbmNoZXMsIC4uLnJlbWFpbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFyZVRva2Vuc1NpZ25pZmljYW50KHRva2VucywgaW5kZXggPSAwKSB7XG4gIGxldCB0b2tlbnNTaWduaWZpY2FudCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxlbmd0aCA9IHRva2Vucy5sZW5ndGg7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaW5kZXhdLFxuICAgICAgICAgIHRva2VuU2lnbmlmaWNhbnQgPSB0b2tlbi5pc1NpZ25pZmljYW50KCk7XG5cbiAgICBpZiAodG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmIChpbmRleCA8IGxlbmd0aCkge1xuICAgIHRva2Vuc1NpZ25pZmljYW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnNTaWduaWZpY2FudDtcbn1cbiJdLCJuYW1lcyI6WyJTdGF0ZSIsInBhcnNlciIsInRva2VucyIsImluZGV4IiwiYnJhbmNoZXMiLCJnZXRQYXJzZXIiLCJnZXRUb2tlbnMiLCJnZXRJbmRleCIsImdldEJyYW5jaGVzIiwiaXNCcmFuY2hpbmciLCJicmFuY2hpbmciLCJpc0VtcHR5IiwidG9rZW5zTGVuZ3RoIiwibGVuZ3RoIiwiZW1wdHkiLCJmaW5kUnVsZSIsInJ1bGVOYW1lIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiaXNOZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4iLCJuZXh0VG9rZW4iLCJuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4iLCJpc1doaXRlc3BhY2VUb2tlbiIsImdldE5leHRTaWduaWZpY2FudFRva2VuIiwibmV4dFNpZ25pZmljYW50VG9rZW4iLCJ0b2tlbiIsInRva2VuU2lnbmlmaWNhbnQiLCJpc1NpZ25pZmljYW50IiwiYWR2YW5jZSIsImluZGV4T2YiLCJ0b2tlbnNTaWduaWZpY2FudCIsImFyZVRva2Vuc1NpZ25pZmljYW50Iiwic3RhdGUiLCJicmFuY2giLCJwcnVuZSIsImZyb21Ub2tlbnNBbmRQYXJzZXIiLCJDbGFzcyIsInJlbWFpbmdBcmd1bWVudHMiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUVBOzs7ZUFBcUJBOzs7QUFBTixNQUFNQTtJQUNuQixZQUFZQyxNQUFNLEVBQUVDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxRQUFRLENBQUU7UUFDM0MsSUFBSSxDQUFDSCxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0osTUFBTTtJQUNwQjtJQUVBSyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNKLE1BQU07SUFDcEI7SUFFQUssV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDSixLQUFLO0lBQ25CO0lBRUFLLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0osUUFBUTtJQUN0QjtJQUVBSyxjQUFjO1FBQ1osTUFBTUMsWUFBYSxJQUFJLENBQUNOLFFBQVEsR0FBRztRQUVuQyxPQUFPTTtJQUNUO0lBRUFDLFVBQVU7UUFDUixNQUFNQyxlQUFlLElBQUksQ0FBQ1YsTUFBTSxDQUFDVyxNQUFNLEVBQ2pDQyxRQUFTLElBQUksQ0FBQ1gsS0FBSyxLQUFLUztRQUU5QixPQUFPRTtJQUNUO0lBRUFDLFNBQVNDLFFBQVEsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDZixNQUFNLENBQUNjLFFBQVEs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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhdGUge1xuICBjb25zdHJ1Y3RvcihwYXJzZXIsIHRva2VucywgaW5kZXgsIGJyYW5jaGVzKSB7XG4gICAgdGhpcy5wYXJzZXIgPSBwYXJzZXI7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgIHRoaXMuYnJhbmNoZXMgPSBicmFuY2hlcztcbiAgfVxuXG4gIGdldFBhcnNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXI7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZXg7XG4gIH1cblxuICBnZXRCcmFuY2hlcygpIHtcbiAgICByZXR1cm4gdGhpcy5icmFuY2hlcztcbiAgfVxuXG4gIGlzQnJhbmNoaW5nKCkge1xuICAgIGNvbnN0IGJyYW5jaGluZyA9ICh0aGlzLmJyYW5jaGVzID4gMCk7XG5cbiAgICByZXR1cm4gYnJhbmNoaW5nO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICBjb25zdCB0b2tlbnNMZW5ndGggPSB0aGlzLnRva2Vucy5sZW5ndGgsXG4gICAgICAgICAgZW1wdHkgPSAodGhpcy5pbmRleCA9PT0gdG9rZW5zTGVuZ3RoKTtcblxuICAgIHJldHVybiBlbXB0eTtcbiAgfVxuXG4gIGZpbmRSdWxlKHJ1bGVOYW1lKSB7IHJldHVybiB0aGlzLnBhcnNlci5maW5kUnVsZShydWxlTmFtZSk7IH1cblxuICBOb25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUocnVsZU5hbWUpIHsgcmV0dXJuIHRoaXMucGFyc2VyLk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSk7IH1cblxuICBpc05leHRUb2tlbldoaXRlc3BhY2VUb2tlbigpIHtcbiAgICBjb25zdCBuZXh0VG9rZW4gPSB0aGlzLnRva2Vuc1t0aGlzLmluZGV4XSxcbiAgICAgICAgICBuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW4gPSBuZXh0VG9rZW4uaXNXaGl0ZXNwYWNlVG9rZW4oKTtcblxuICAgIHJldHVybiBuZXh0VG9rZW5XaGl0ZXNwYWNlVG9rZW47XG4gIH1cblxuICBnZXROZXh0U2lnbmlmaWNhbnRUb2tlbigpIHtcbiAgICBsZXQgbmV4dFNpZ25pZmljYW50VG9rZW4gPSBudWxsO1xuXG4gICAgbGV0IGluZGV4ID0gdGhpcy5pbmRleDtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5zW2luZGV4XSxcbiAgICAgICAgICAgIHRva2VuU2lnbmlmaWNhbnQgPSB0b2tlbi5pc1NpZ25pZmljYW50KCk7XG5cbiAgICAgIGlmICh0b2tlblNpZ25pZmljYW50KSB7XG4gICAgICAgIG5leHRTaWduaWZpY2FudFRva2VuID0gdG9rZW47IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0U2lnbmlmaWNhbnRUb2tlbjtcbiAgfVxuXG4gIGFkdmFuY2UoKSB7XG4gICAgY29uc3QgbmV4dFNpZ25pZmljYW50VG9rZW4gPSB0aGlzLmdldE5leHRTaWduaWZpY2FudFRva2VuKCk7XG5cbiAgICBsZXQgaW5kZXg7XG5cbiAgICBpbmRleCA9IHRoaXMudG9rZW5zLmluZGV4T2YobmV4dFNpZ25pZmljYW50VG9rZW4sIHRoaXMuaW5kZXgpO1xuXG4gICAgaW5kZXgrKztcblxuICAgIGNvbnN0IHRva2Vuc1NpZ25pZmljYW50ID0gYXJlVG9rZW5zU2lnbmlmaWNhbnQodGhpcy50b2tlbnMsIGluZGV4KTtcblxuICAgIGlmICghdG9rZW5zU2lnbmlmaWNhbnQpIHtcbiAgICAgIGNvbnN0IHRva2Vuc0xlbmd0aCA9IHRoaXMudG9rZW5zLmxlbmd0aDtcblxuICAgICAgaW5kZXggPSB0b2tlbnNMZW5ndGg7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGJyYW5jaGVzID0gdGhpcy5icmFuY2hlcyxcbiAgICAgICAgICBzdGF0ZSA9IG5ldyBTdGF0ZSh0aGlzLnBhcnNlciwgdGhpcy50b2tlbnMsIGluZGV4LCBicmFuY2hlcyk7XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBicmFuY2goKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4LFxuICAgICAgICAgIGJyYW5jaGVzID0gdGhpcy5icmFuY2hlcyArIDEsXG4gICAgICAgICAgc3RhdGUgPSBuZXcgU3RhdGUodGhpcy5wYXJzZXIsIHRoaXMudG9rZW5zLCBpbmRleCwgYnJhbmNoZXMpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgcHJ1bmUoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4LFxuICAgICAgICAgIGJyYW5jaGVzID0gdGhpcy5icmFuY2hlcyAtIDEsXG4gICAgICAgICAgc3RhdGUgPSBuZXcgU3RhdGUodGhpcy5wYXJzZXIsIHRoaXMudG9rZW5zLCBpbmRleCwgYnJhbmNoZXMpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ub2tlbnNBbmRQYXJzZXIodG9rZW5zLCBwYXJzZXIpIHtcbiAgICBjb25zdCB0b2tlbnNTaWduaWZpY2FudCA9IGFyZVRva2Vuc1NpZ25pZmljYW50KHRva2VucyksXG4gICAgICAgICAgdG9rZW5zTGVuZ3RoID0gdG9rZW5zLmxlbmd0aCxcbiAgICAgICAgICBpbmRleCA9IHRva2Vuc1NpZ25pZmljYW50ID9cbiAgICAgICAgICAgICAgICAgICAgMCA6XG4gICAgICAgICAgICAgICAgICAgICAgdG9rZW5zTGVuZ3RoLCAvLy9cbiAgICAgICAgICBicmFuY2hlcyA9IDAsXG4gICAgICAgICAgc3RhdGUgPSBuZXcgU3RhdGUocGFyc2VyLCB0b2tlbnMsIGluZGV4LCBicmFuY2hlcyk7XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXJlVG9rZW5zU2lnbmlmaWNhbnQodG9rZW5zLCBpbmRleCA9IDApIHtcbiAgbGV0IHRva2Vuc1NpZ25pZmljYW50ID0gZmFsc2U7XG5cbiAgY29uc3QgbGVuZ3RoID0gdG9rZW5zLmxlbmd0aDtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tpbmRleF0sXG4gICAgICAgICAgdG9rZW5TaWduaWZpY2FudCA9IHRva2VuLmlzU2lnbmlmaWNhbnQoKTtcblxuICAgIGlmICh0b2tlblNpZ25pZmljYW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpbmRleCsrO1xuICB9XG5cbiAgaWYgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgdG9rZW5zU2lnbmlmaWNhbnQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHRva2Vuc1NpZ25pZmljYW50O1xufVxuIl0sIm5hbWVzIjpbIlN0YXRlIiwicGFyc2VyIiwidG9rZW5zIiwiaW5kZXgiLCJicmFuY2hlcyIsImdldFBhcnNlciIsImdldFRva2VucyIsImdldEluZGV4IiwiZ2V0QnJhbmNoZXMiLCJpc0JyYW5jaGluZyIsImJyYW5jaGluZyIsImlzRW1wdHkiLCJ0b2tlbnNMZW5ndGgiLCJsZW5ndGgiLCJlbXB0eSIsImZpbmRSdWxlIiwicnVsZU5hbWUiLCJOb25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUiLCJpc05leHRUb2tlbldoaXRlc3BhY2VUb2tlbiIsIm5leHRUb2tlbiIsIm5leHRUb2tlbldoaXRlc3BhY2VUb2tlbiIsImlzV2hpdGVzcGFjZVRva2VuIiwiZ2V0TmV4dFNpZ25pZmljYW50VG9rZW4iLCJuZXh0U2lnbmlmaWNhbnRUb2tlbiIsInRva2VuIiwidG9rZW5TaWduaWZpY2FudCIsImlzU2lnbmlmaWNhbnQiLCJhZHZhbmNlIiwiaW5kZXhPZiIsInRva2Vuc1NpZ25pZmljYW50IiwiYXJlVG9rZW5zU2lnbmlmaWNhbnQiLCJzdGF0ZSIsImJyYW5jaCIsInBydW5lIiwiZnJvbVRva2Vuc0FuZFBhcnNlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBRUE7OztlQUFxQkE7OztBQUFOLE1BQU1BO0lBQ25CLFlBQVlDLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsQ0FBRTtRQUMzQyxJQUFJLENBQUNILE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7SUFFQUMsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDSixNQUFNO0lBQ3BCO0lBRUFLLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0osTUFBTTtJQUNwQjtJQUVBSyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNKLEtBQUs7SUFDbkI7SUFFQUssY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDSixRQUFRO0lBQ3RCO0lBRUFLLGNBQWM7UUFDWixNQUFNQyxZQUFhLElBQUksQ0FBQ04sUUFBUSxHQUFHO1FBRW5DLE9BQU9NO0lBQ1Q7SUFFQUMsVUFBVTtRQUNSLE1BQU1DLGVBQWUsSUFBSSxDQUFDVixNQUFNLENBQUNXLE1BQU0sRUFDakNDLFFBQVMsSUFBSSxDQUFDWCxLQUFLLEtBQUtTO1FBRTlCLE9BQU9FO0lBQ1Q7SUFFQUMsU0FBU0MsUUFBUSxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNmLE1BQU0sQ0FBQ2MsUUFBUSxDQUFDQztJQUFXO0lBRTVEQyw0QkFBNEJELFFBQVEsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDZixNQUFNLENBQUNnQiwyQkFBMkIsQ0FBQ0Q7SUFBVztJQUVsR0UsNkJBQTZCO1FBQzNCLE1BQU1DLFlBQVksSUFBSSxDQUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQ0MsS0FBSyxDQUFDLEVBQ25DaUIsMkJBQTJCRCxVQUFVRSxpQkFBaUI7UUFFNUQsT0FBT0Q7SUFDVDtJQUVBRSwwQkFBMEI7UUFDeEIsSUFBSUMsdUJBQXVCO1FBRTNCLElBQUlwQixRQUFRLElBQUksQ0FBQ0EsS0FBSztRQUV0QixNQUFPLEtBQU07WUFDWCxNQUFNcUIsUUFBUSxJQUFJLENBQUN0QixNQUFNLENBQUNDLE1BQU0sRUFDMUJzQixtQkFBbUJELE1BQU1FLGFBQWE7WUFFNUMsSUFBSUQsa0JBQWtCO2dCQUNwQkYsdUJBQXVCQyxPQUFPLEdBQUc7Z0JBRWpDO1lBQ0Y7WUFFQXJCO1FBQ0Y7UUFFQSxPQUFPb0I7SUFDVDtJQUVBSSxVQUFVO1FBQ1IsTUFBTUosdUJBQXVCLElBQUksQ0FBQ0QsdUJBQXVCO1FBRXpELElBQUluQjtRQUVKQSxRQUFRLElBQUksQ0FBQ0QsTUFBTSxDQUFDMEIsT0FBTyxDQUFDTCxzQkFBc0IsSUFBSSxDQUFDcEIsS0FBSztRQUU1REE7UUFFQSxNQUFNMEIsb0JBQW9CQyxxQkFBcUIsSUFBSSxDQUFDNUIsTUFBTSxFQUFFQztRQUU1RCxJQUFJLENBQUMwQixtQkFBbUI7WUFDdEIsTUFBTWpCLGVBQWUsSUFBSSxDQUFDVixNQUFNLENBQUNXLE1BQU07WUFFdkNWLFFBQVFTLGNBQWMsR0FBRztRQUMzQjtRQUVBLE1BQU1SLFdBQVcsSUFBSSxDQUFDQSxRQUFRLEVBQ3hCMkIsUUFBUSxJQUFJL0IsTUFBTSxJQUFJLENBQUNDLE1BQU0sRUFBRSxJQUFJLENBQUNDLE1BQU0sRUFBRUMsT0FBT0M7UUFFekQsT0FBTzJCO0lBQ1Q7SUFFQUMsU0FBUztRQUNQLE1BQU03QixRQUFRLElBQUksQ0FBQ0EsS0FBSyxFQUNsQkMsV0FBVyxJQUFJLENBQUNBLFFBQVEsR0FBRyxHQUMzQjJCLFFBQVEsSUFBSS9CLE1BQU0sSUFBSSxDQUFDQyxNQUFNLEVBQUUsSUFBSSxDQUFDQyxNQUFNLEVBQUVDLE9BQU9DO1FBRXpELE9BQU8yQjtJQUNUO0lBRUFFLFFBQVE7UUFDTixNQUFNOUIsUUFBUSxJQUFJLENBQUNBLEtBQUssRUFDbEJDLFdBQVcsSUFBSSxDQUFDQSxRQUFRLEdBQUcsR0FDM0IyQixRQUFRLElBQUkvQixNQUFNLElBQUksQ0FBQ0MsTUFBTSxFQUFFLElBQUksQ0FBQ0MsTUFBTSxFQUFFQyxPQUFPQztRQUV6RCxPQUFPMkI7SUFDVDtJQUVBLE9BQU9HLG9CQUFvQmhDLE1BQU0sRUFBRUQsTUFBTSxFQUFFO1FBQ3pDLE1BQU00QixvQkFBb0JDLHFCQUFxQjVCLFNBQ3pDVSxlQUFlVixPQUFPVyxNQUFNLEVBQzVCVixRQUFRMEIsb0JBQ0UsSUFDRWpCLGNBQ1pSLFdBQVcsR0FDWDJCLFFBQVEsSUFBSS9CLE1BQU1DLFFBQVFDLFFBQVFDLE9BQU9DO1FBRS9DLE9BQU8yQjtJQUNUO0FBQ0Y7QUFFQSxTQUFTRCxxQkFBcUI1QixNQUFNLEVBQUVDLFFBQVEsQ0FBQztJQUM3QyxJQUFJMEIsb0JBQW9CO0lBRXhCLE1BQU1oQixTQUFTWCxPQUFPVyxNQUFNO0lBRTVCLE1BQU9WLFFBQVFVLE9BQVE7UUFDckIsTUFBTVcsUUFBUXRCLE1BQU0sQ0FBQ0MsTUFBTSxFQUNyQnNCLG1CQUFtQkQsTUFBTUUsYUFBYTtRQUU1QyxJQUFJRCxrQkFBa0I7WUFDcEI7UUFDRjtRQUVBdEI7SUFDRjtJQUVBLElBQUlBLFFBQVFVLFFBQVE7UUFDbEJnQixvQkFBb0I7SUFDdEI7SUFFQSxPQUFPQTtBQUNUIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-parsers",
3
3
  "author": "James Smith",
4
- "version": "23.3.87",
4
+ "version": "23.3.89",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-parsers",
7
7
  "description": "Occam's parsers.",
package/src/index.js CHANGED
@@ -12,7 +12,6 @@ export { default as parserUtilities } from "./utilities/parser";
12
12
 
13
13
  export { default as Rule } from "./rule";
14
14
  export { default as Parts } from "./parts";
15
- export { default as State } from "./state";
16
15
  export { default as partTypes } from "./partTypes";
17
16
  export { default as PartChoice } from "./partChoice";
18
17
  export { default as Definition } from "./definition";
@@ -258,6 +258,16 @@ export default class TerminalNode {
258
258
  return matches;
259
259
  }
260
260
 
261
+ restore(state) {
262
+ ///
263
+ }
264
+
265
+ rewrite(state) {
266
+ const terminalNode = this; ///
267
+
268
+ return terminalNode;
269
+ }
270
+
261
271
  clone(...remainingArguments) {
262
272
  const Class = this.constructor,
263
273
  parentNode = null,
package/src/state.js CHANGED
@@ -108,22 +108,14 @@ export default class State {
108
108
  return state;
109
109
  }
110
110
 
111
- static fromTokensAndParser(Class, tokens, parser, ...remaingArguments) {
112
- if (parser === undefined) {
113
- parser = tokens; ///
114
-
115
- tokens = Class; ///
116
-
117
- Class = State; ///
118
- }
119
-
111
+ static fromTokensAndParser(tokens, parser) {
120
112
  const tokensSignificant = areTokensSignificant(tokens),
121
113
  tokensLength = tokens.length,
122
114
  index = tokensSignificant ?
123
115
  0 :
124
116
  tokensLength, ///
125
117
  branches = 0,
126
- state = new Class(parser, tokens, index, branches, ...remaingArguments);
118
+ state = new State(parser, tokens, index, branches);
127
119
 
128
120
  return state;
129
121
  }