occam-parsers 23.3.77 → 23.3.79

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/constants.js CHANGED
@@ -18,17 +18,22 @@ _export(exports, {
18
18
  get ESCAPED_DOUBLE_QUOTE () {
19
19
  return ESCAPED_DOUBLE_QUOTE;
20
20
  },
21
- get ISOLATED_PRECEDENCE () {
22
- return ISOLATED_PRECEDENCE;
21
+ get MINUS_CHARACTER () {
22
+ return MINUS_CHARACTER;
23
23
  },
24
- get TRANSPARENT_PRECEDENCE () {
25
- return TRANSPARENT_PRECEDENCE;
24
+ get SPACE_CHARACTER () {
25
+ return SPACE_CHARACTER;
26
+ },
27
+ get TRANSPARENT_PRECEDENCE_STRENGTH () {
28
+ return TRANSPARENT_PRECEDENCE_STRENGTH;
26
29
  }
27
30
  });
31
+ const _necessary = require("necessary");
32
+ const { SPACE_CHARACTER } = _necessary.characters;
28
33
  const EMPTY_STRING = "";
34
+ const MINUS_CHARACTER = "-";
29
35
  const ESCAPED_BACKSLASH = "\\";
30
- const ISOLATED_PRECEDENCE = -1;
31
36
  const ESCAPED_DOUBLE_QUOTE = "\"";
32
- const TRANSPARENT_PRECEDENCE = Infinity;
37
+ const TRANSPARENT_PRECEDENCE_STRENGTH = 0;
33
38
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9TVFJJTkcgPSBcIlwiO1xuZXhwb3J0IGNvbnN0IEVTQ0FQRURfQkFDS1NMQVNIID1cIlxcXFxcIjtcbmV4cG9ydCBjb25zdCBJU09MQVRFRF9QUkVDRURFTkNFID0gLTE7XG5leHBvcnQgY29uc3QgRVNDQVBFRF9ET1VCTEVfUVVPVEUgPSBcIlxcXCJcIjtcbmV4cG9ydCBjb25zdCBUUkFOU1BBUkVOVF9QUkVDRURFTkNFID0gSW5maW5pdHk7Il0sIm5hbWVzIjpbIkVNUFRZX1NUUklORyIsIkVTQ0FQRURfQkFDS1NMQVNIIiwiRVNDQVBFRF9ET1VCTEVfUVVPVEUiLCJJU09MQVRFRF9QUkVDRURFTkNFIiwiVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSIsIkluZmluaXR5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFFYUE7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQUVBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBRUFDO2VBQUFBOzs7QUFKTixNQUFNSixlQUFlO0FBQ3JCLE1BQU1DLG9CQUFtQjtBQUN6QixNQUFNRSxzQkFBc0IsQ0FBQztBQUM3QixNQUFNRCx1QkFBdUI7QUFDN0IsTUFBTUUseUJBQXlCQyJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNoYXJhY3RlcnMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmV4cG9ydCBjb25zdCB7IFNQQUNFX0NIQVJBQ1RFUiB9ID0gY2hhcmFjdGVycztcblxuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgTUlOVVNfQ0hBUkFDVEVSID0gXCItXCI7XG5leHBvcnQgY29uc3QgRVNDQVBFRF9CQUNLU0xBU0ggPVwiXFxcXFwiO1xuZXhwb3J0IGNvbnN0IEVTQ0FQRURfRE9VQkxFX1FVT1RFID0gXCJcXFwiXCI7XG5leHBvcnQgY29uc3QgVFJBTlNQQVJFTlRfUFJFQ0VERU5DRV9TVFJFTkdUSCA9IDA7XG4iXSwibmFtZXMiOlsiRU1QVFlfU1RSSU5HIiwiRVNDQVBFRF9CQUNLU0xBU0giLCJFU0NBUEVEX0RPVUJMRV9RVU9URSIsIk1JTlVTX0NIQVJBQ1RFUiIsIlNQQUNFX0NIQVJBQ1RFUiIsIlRSQU5TUEFSRU5UX1BSRUNFREVOQ0VfU1RSRU5HVEgiLCJjaGFyYWN0ZXJzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFNYUE7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQUNBQztlQUFBQTs7UUFGQUM7ZUFBQUE7O1FBSEVDO2VBQUFBOztRQU1GQztlQUFBQTs7OzJCQVJjO0FBRXBCLE1BQU0sRUFBRUQsZUFBZSxFQUFFLEdBQUdFLHFCQUFVO0FBRXRDLE1BQU1OLGVBQWU7QUFDckIsTUFBTUcsa0JBQWtCO0FBQ3hCLE1BQU1GLG9CQUFtQjtBQUN6QixNQUFNQyx1QkFBdUI7QUFDN0IsTUFBTUcsa0NBQWtDIn0=
package/lib/definition.js CHANGED
@@ -8,11 +8,10 @@ Object.defineProperty(exports, "default", {
8
8
  return Definition;
9
9
  }
10
10
  });
11
- const _necessary = require("necessary");
12
11
  const _frame = /*#__PURE__*/ _interop_require_wildcard(require("./frame"));
12
+ const _constants = require("./constants");
13
13
  const _linear = require("./utilities/linear");
14
14
  const _branching = require("./utilities/branching");
15
- const _constants = require("./constants");
16
15
  function _getRequireWildcardCache(nodeInterop) {
17
16
  if (typeof WeakMap !== "function") return null;
18
17
  var cacheBabelInterop = new WeakMap();
@@ -54,7 +53,6 @@ function _interop_require_wildcard(obj, nodeInterop) {
54
53
  }
55
54
  return newObj;
56
55
  }
57
- const { SPACE_CHARACTER } = _necessary.characters;
58
56
  class Definition {
59
57
  constructor(parts, precedence){
60
58
  this.parts = parts;
@@ -100,21 +98,7 @@ class Definition {
100
98
  return frame;
101
99
  }
102
100
  asString() {
103
- let string;
104
- const partsString = this.parts.reduce((partsString, part)=>{
105
- const partString = part.asString();
106
- if (partsString === _constants.EMPTY_STRING) {
107
- partsString = partString; ///
108
- } else {
109
- partsString = `${partsString} ${partString}`;
110
- }
111
- return partsString;
112
- }, _constants.EMPTY_STRING);
113
- string = partsString; ///
114
- if (this.precedence !== null) {
115
- const precedence = this.precedence === _constants.TRANSPARENT_PRECEDENCE ? SPACE_CHARACTER : this.precedence;
116
- string = `${string} (${precedence})`;
117
- }
101
+ const partsString = partsStringFromParts(this.parts), precedenceString = this.precedence !== null ? this.precedence.asString() : _constants.EMPTY_STRING, string = `${partsString}${precedenceString}`;
118
102
  return string;
119
103
  }
120
104
  static fromParts(Class, parts) {
@@ -135,6 +119,14 @@ class Definition {
135
119
  return definition;
136
120
  }
137
121
  }
122
+ function partsStringFromParts(parts) {
123
+ const partsString = parts.reduce((partsString, part)=>{
124
+ const partString = part.asString();
125
+ partsString = partsString !== null ? `${partsString} ${partString}` : partString; ///
126
+ return partsString;
127
+ }, null);
128
+ return partsString;
129
+ }
138
130
  function nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame, state) {
139
131
  let nonTerminalNode;
140
132
  const opacity = rule.getOpacity(), ruleName = rule.getName(), childNodes = frame.getChildNodes(), precedence = frame.getPrecedence(definition), NonTerminalNode = rule.NonTerminalNodeFromRuleName(ruleName, state);
@@ -143,4 +135,4 @@ function nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame,
143
135
  return nonTerminalNode;
144
136
  }
145
137
 
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBTUEFDRV9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByZWNlZGVuY2U7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMgPSBbXSwgY2hlY2tGb3JDdXRQYXJ0cyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29uc3VtaW5nID0gdGhpcy5wYXJ0cy5zb21lKChwYXJ0KSA9PiB7XG4gICAgICBjb25zdCBjb25zdW1pbmcgPSBwYXJ0LmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7XG5cbiAgICAgIGlmIChjb25zdW1pbmcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29uc3VtaW5nO1xuICB9XG5cbiAgcGFyc2UocnVsZSwgZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc2F2ZWRGcmFtZSA9IGZyYW1lLCAvLy9cbiAgICAgICAgICBicmFuY2hpbmcgPSBzdGF0ZS5pc0JyYW5jaGluZygpLFxuICAgICAgICAgIGV2ZXJ5ID0gYnJhbmNoaW5nID9cbiAgICAgICAgICAgICAgICAgICAgYnJhbmNoaW5nRXZlcnkgOlxuICAgICAgICAgICAgICAgICAgICAgIGxpbmVhckV2ZXJ5O1xuXG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMucGFydHMsIChwYXJ0LCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBwYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZW1wdHlGcmFtZSwgc3RhdGUsIChmcmFtZSwgc3RhdGUsIGJhY2spID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzOyAgLy8vXG5cbiAgICAgIGZyYW1lID0gdGhpcy5jb21wb3NlKHJ1bGUsIGRlZmluaXRpb24sIHNhdmVkRnJhbWUsIGZyYW1lLCBzdGF0ZSk7ICAvLy9cblxuICAgICAgaWYgKGZyYW1lID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGZyYW1lLCBzdGF0ZSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBjb21wb3NlKHJ1bGUsIGRlZmluaXRpb24sIHNhdmVkRnJhbWUsIGZyYW1lLCBzdGF0ZSkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUocnVsZSwgZGVmaW5pdGlvbiwgZnJhbWUsIHN0YXRlKSxcbiAgICAgICAgICBpbnZhbGlkID0gbm9uVGVybWluYWxOb2RlLmlzSW52YWxpZCgpO1xuXG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIGZyYW1lID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2hpbGROb2RlID0gbm9uVGVybWluYWxOb2RlOyAgLy8vXG5cbiAgICAgIGZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpOyAvLy9cblxuICAgICAgZnJhbWUgPSBzYXZlZEZyYW1lLm1lcmdlKGZyYW1lKTsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHBhcnRzU3RyaW5nID0gdGhpcy5wYXJ0cy5yZWR1Y2UoKHBhcnRzU3RyaW5nLCBwYXJ0KSA9PiB7XG4gICAgICBjb25zdCBwYXJ0U3RyaW5nID0gcGFydC5hc1N0cmluZygpO1xuXG4gICAgICBpZiAocGFydHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykge1xuICAgICAgICBwYXJ0c1N0cmluZyA9IHBhcnRTdHJpbmc7IC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFydHNTdHJpbmcgPSBgJHtwYXJ0c1N0cmluZ30gJHtwYXJ0U3RyaW5nfWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJ0c1N0cmluZztcbiAgICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gICAgc3RyaW5nID0gcGFydHNTdHJpbmc7IC8vL1xuXG4gICAgaWYgKHRoaXMucHJlY2VkZW5jZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJlY2VkZW5jZSA9ICh0aGlzLnByZWNlZGVuY2UgPT09IFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQUNFX0NIQVJBQ1RFUiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlY2VkZW5jZTtcblxuICAgICAgc3RyaW5nID0gYCR7c3RyaW5nfSAoJHtwcmVjZWRlbmNlfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcnRzKENsYXNzLCBwYXJ0cykge1xuICAgIGlmIChwYXJ0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJ0cyA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gRGVmaW5pdGlvbjsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcHJlY2VkZW5jZSA9IG51bGwsXG4gICAgICAgICAgZGVmaW5pdGlvbiA9IG5ldyBDbGFzcyhwYXJ0cywgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHNBbmRQcmVjZWRlbmNlKENsYXNzLCBwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIGlmIChwcmVjZWRlbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHByZWNlZGVuY2UgPSBwYXJ0czsgLy8vXG5cbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUocnVsZSwgZGVmaW5pdGlvbiwgZnJhbWUsIHN0YXRlKSB7XG4gIGxldCBub25UZXJtaW5hbE5vZGU7XG5cbiAgY29uc3Qgb3BhY2l0eSA9IHJ1bGUuZ2V0T3BhY2l0eSgpLFxuICAgICAgICBydWxlTmFtZSA9IHJ1bGUuZ2V0TmFtZSgpLFxuICAgICAgICBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBwcmVjZWRlbmNlID0gZnJhbWUuZ2V0UHJlY2VkZW5jZShkZWZpbml0aW9uKSxcbiAgICAgICAgTm9uVGVybWluYWxOb2RlID0gcnVsZS5Ob25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUocnVsZU5hbWUsIHN0YXRlKTtcblxuICBub25UZXJtaW5hbE5vZGUgPSBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5KTtcblxuICBub25UZXJtaW5hbE5vZGUgPSBub25UZXJtaW5hbE5vZGUucmV3cml0ZShzdGF0ZSk7XG5cbiAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJEZWZpbml0aW9uIiwiU1BBQ0VfQ0hBUkFDVEVSIiwiY2hhcmFjdGVycyIsInBhcnRzIiwicHJlY2VkZW5jZSIsImdldFBhcnRzIiwiZ2V0UHJlY2VkZW5jZSIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJjb25zdW1pbmciLCJzb21lIiwicGFydCIsInBhcnNlIiwicnVsZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsInNhdmVkRnJhbWUiLCJicmFuY2hpbmciLCJpc0JyYW5jaGluZyIsImV2ZXJ5IiwiYnJhbmNoaW5nRXZlcnkiLCJsaW5lYXJFdmVyeSIsImVtcHR5RnJhbWUiLCJkZWZpbml0aW9uIiwiY29tcG9zZSIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUZyb21SdWxlRGVmaW5pdGlvbkZyYW1lQW5kU3RhdGUiLCJpbnZhbGlkIiwiaXNJbnZhbGlkIiwiY2hpbGROb2RlIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwibWVyZ2UiLCJhc1N0cmluZyIsInN0cmluZyIsInBhcnRzU3RyaW5nIiwicmVkdWNlIiwicGFydFN0cmluZyIsIkVNUFRZX1NUUklORyIsIlRSQU5TUEFSRU5UX1BSRUNFREVOQ0UiLCJmcm9tUGFydHMiLCJDbGFzcyIsInVuZGVmaW5lZCIsImZyb21QYXJ0c0FuZFByZWNlZGVuY2UiLCJvcGFjaXR5IiwiZ2V0T3BhY2l0eSIsInJ1bGVOYW1lIiwiZ2V0TmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiTm9uVGVybWluYWxOb2RlIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwicmV3cml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7OzsyQkFYTTsrREFFVDt3QkFHb0I7MkJBQ0c7MkJBQ1k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRCxNQUFNLEVBQUVDLGVBQWUsRUFBRSxHQUFHQyxxQkFBVTtBQUV2QixNQUFNRjtJQUNuQixZQUFZRyxLQUFLLEVBQUVDLFVBQVUsQ0FBRTtRQUM3QixJQUFJLENBQUNELEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRixVQUFVO0lBQ3hCO0lBRUFHLFlBQVlDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEVBQUVDLG1CQUFtQixLQUFLLEVBQUU7UUFDaEUsTUFBTUMsWUFBWSxJQUFJLENBQUNSLEtBQUssQ0FBQ1MsSUFBSSxDQUFDLENBQUNDO1lBQ2pDLE1BQU1GLFlBQVlFLEtBQUtOLFdBQVcsQ0FBQ0MsU0FBU0MsY0FBY0M7WUFFMUQsSUFBSUMsV0FBVztnQkFDYixPQUFPO1lBQ1Q7UUFDRjtRQUVBLE9BQU9BO0lBQ1Q7SUFFQUcsTUFBTUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDdkMsTUFBTUMsYUFBYUosT0FDYkssWUFBWUosTUFBTUssV0FBVyxJQUM3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
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGV2ZXJ5IGFzIGxpbmVhckV2ZXJ5ICB9IGZyb20gXCIuL3V0aWxpdGllcy9saW5lYXJcIjtcbmltcG9ydCB7IGV2ZXJ5IGFzIGJyYW5jaGluZ0V2ZXJ5ICB9IGZyb20gXCIuL3V0aWxpdGllcy9icmFuY2hpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVmaW5pdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgdGhpcy5wYXJ0cyA9IHBhcnRzO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRQYXJ0cygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0cztcbiAgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlY2VkZW5jZTtcbiAgfVxuXG4gIGlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcyA9IFtdLCBjaGVja0ZvckN1dFBhcnRzID0gZmFsc2UpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0aGlzLnBhcnRzLnNvbWUoKHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnN1bWluZyA9IHBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzLCBjaGVja0ZvckN1dFBhcnRzKTtcblxuICAgICAgaWYgKGNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShydWxlLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWUsIC8vL1xuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgZXZlcnkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdFdmVyeSA6XG4gICAgICAgICAgICAgICAgICAgICAgbGluZWFyRXZlcnk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKTsgIC8vL1xuXG4gICAgICBpZiAoZnJhbWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpLFxuICAgICAgICAgIGludmFsaWQgPSBub25UZXJtaW5hbE5vZGUuaXNJbnZhbGlkKCk7XG5cbiAgICBpZiAoaW52YWxpZCkge1xuICAgICAgZnJhbWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGUgPSBub25UZXJtaW5hbE5vZGU7ICAvLy9cblxuICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7IC8vL1xuXG4gICAgICBmcmFtZSA9IHNhdmVkRnJhbWUubWVyZ2UoZnJhbWUpOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBjb25zdCBwYXJ0c1N0cmluZyA9IHBhcnRzU3RyaW5nRnJvbVBhcnRzKHRoaXMucGFydHMpLFxuICAgICAgICAgIHByZWNlZGVuY2VTdHJpbmcgPSAodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVjZWRlbmNlLmFzU3RyaW5nKCkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU1QVFlfU1RSSU5HLFxuICAgICAgICAgIHN0cmluZyA9IGAke3BhcnRzU3RyaW5nfSR7cHJlY2VkZW5jZVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMoQ2xhc3MsIHBhcnRzKSB7XG4gICAgaWYgKHBhcnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0c0FuZFByZWNlZGVuY2UoQ2xhc3MsIHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgaWYgKHByZWNlZGVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHBhcnRzOyAvLy9cblxuICAgICAgcGFydHMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IERlZmluaXRpb247IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBuZXcgQ2xhc3MocGFydHMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFydHNTdHJpbmdGcm9tUGFydHMocGFydHMpIHtcbiAgY29uc3QgcGFydHNTdHJpbmcgPSBwYXJ0cy5yZWR1Y2UoKHBhcnRzU3RyaW5nLCBwYXJ0KSA9PiB7XG4gICAgY29uc3QgcGFydFN0cmluZyA9IHBhcnQuYXNTdHJpbmcoKTtcblxuICAgIHBhcnRzU3RyaW5nID0gKHBhcnRzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgIGAke3BhcnRzU3RyaW5nfSAke3BhcnRTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgcGFydFN0cmluZzsgLy8vXG5cbiAgICByZXR1cm4gcGFydHNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwYXJ0c1N0cmluZztcbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZTtcblxuICBjb25zdCBvcGFjaXR5ID0gcnVsZS5nZXRPcGFjaXR5KCksXG4gICAgICAgIHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKGRlZmluaXRpb24pLFxuICAgICAgICBOb25UZXJtaW5hbE5vZGUgPSBydWxlLk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSwgc3RhdGUpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZS5yZXdyaXRlKHN0YXRlKTtcblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xufVxuIl0sIm5hbWVzIjpbIkRlZmluaXRpb24iLCJwYXJ0cyIsInByZWNlZGVuY2UiLCJnZXRQYXJ0cyIsImdldFByZWNlZGVuY2UiLCJpc0NvbnN1bWluZyIsInJ1bGVNYXAiLCJ2aXNpdGVkUnVsZXMiLCJjaGVja0ZvckN1dFBhcnRzIiwiY29uc3VtaW5nIiwic29tZSIsInBhcnQiLCJwYXJzZSIsInJ1bGUiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzYXZlZEZyYW1lIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJldmVyeSIsImJyYW5jaGluZ0V2ZXJ5IiwibGluZWFyRXZlcnkiLCJlbXB0eUZyYW1lIiwiZGVmaW5pdGlvbiIsImNvbXBvc2UiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVGcm9tUnVsZURlZmluaXRpb25GcmFtZUFuZFN0YXRlIiwiaW52YWxpZCIsImlzSW52YWxpZCIsImNoaWxkTm9kZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZSIsIm1lcmdlIiwiYXNTdHJpbmciLCJwYXJ0c1N0cmluZyIsInBhcnRzU3RyaW5nRnJvbVBhcnRzIiwicHJlY2VkZW5jZVN0cmluZyIsIkVNUFRZX1NUUklORyIsInN0cmluZyIsImZyb21QYXJ0cyIsIkNsYXNzIiwidW5kZWZpbmVkIiwiZnJvbVBhcnRzQW5kUHJlY2VkZW5jZSIsInJlZHVjZSIsInBhcnRTdHJpbmciLCJvcGFjaXR5IiwiZ2V0T3BhY2l0eSIsInJ1bGVOYW1lIiwiZ2V0TmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiTm9uVGVybWluYWxOb2RlIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwicmV3cml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFxQkE7OzsrREFQSDsyQkFHVzt3QkFDUzsyQkFDRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLE1BQU1BO0lBQ25CLFlBQVlDLEtBQUssRUFBRUMsVUFBVSxDQUFFO1FBQzdCLElBQUksQ0FBQ0QsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7SUFDbkI7SUFFQUcsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFDeEI7SUFFQUcsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUNoRSxNQUFNQyxZQUFZLElBQUksQ0FBQ1IsS0FBSyxDQUFDUyxJQUFJLENBQUMsQ0FBQ0M7WUFDakMsTUFBTUYsWUFBWUUsS0FBS04sV0FBVyxDQUFDQyxTQUFTQyxjQUFjQztZQUUxRCxJQUFJQyxXQUFXO2dCQUNiLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT0E7SUFDVDtJQUVBRyxNQUFNQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUN2QyxNQUFNQyxhQUFhSixPQUNiSyxZQUFZSixNQUFNSyxXQUFXLElBQzdCQyxRQUFRRixZQUNFRyxnQkFBYyxHQUNaQyxhQUFXO1FBRTdCLE9BQU9GLE1BQU0sSUFBSSxDQUFDcEIsS0FBSyxFQUFFLENBQUNVLE1BQU1HLE9BQU9DLE9BQU9DLFNBQVNDO1lBQ3JELE9BQU9OLEtBQUtDLEtBQUssQ0FBQ0UsT0FBT0MsT0FBT0MsU0FBU0M7UUFDM0MsR0FBR08saUJBQVUsRUFBRVQsT0FB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
package/lib/frame.js CHANGED
@@ -17,7 +17,7 @@ _export(exports, {
17
17
  }
18
18
  });
19
19
  const _necessary = require("necessary");
20
- const _constants = require("./constants");
20
+ const _precedence = require("./precedence");
21
21
  const { first } = _necessary.arrayUtilities;
22
22
  class Frame {
23
23
  constructor(childNodes, precedence){
@@ -48,7 +48,7 @@ class Frame {
48
48
  this.precedence = precedence;
49
49
  }
50
50
  isIsolated() {
51
- const isolated = this.precedence === _constants.ISOLATED_PRECEDENCE;
51
+ const isolated = this.precedence === _precedence.isolatedPrecedence;
52
52
  return isolated;
53
53
  }
54
54
  getNode() {
@@ -89,4 +89,4 @@ class Frame {
89
89
  }
90
90
  const emptyFrame = Frame.fromNothing();
91
91
 
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mcmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBJU09MQVRFRF9QUkVDRURFTkNFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmFtZSB7XG4gIGNvbnN0cnVjdG9yKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpIHtcbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkTm9kZXM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKGRlZmluaXRpb24gPSBudWxsKSB7XG4gICAgbGV0IHByZWNlZGVuY2U7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiA9PT0gbnVsbCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHRoaXMucHJlY2VkZW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNvbGF0ZWQgPSB0aGlzLmlzSXNvbGF0ZWQoKTtcblxuICAgICAgaWYgKGlzb2xhdGVkKSB7XG4gICAgICAgIHByZWNlZGVuY2UgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJlY2VkZW5jZSA9ICh0aGlzLnByZWNlZGVuY2UgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlY2VkZW5jZSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluaXRpb24uZ2V0UHJlY2VkZW5jZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcmVjZWRlbmNlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgfVxuXG4gIHNldFByZWNlZGVuY2UocHJlY2VkZW5jZSkge1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBpc0lzb2xhdGVkKCkge1xuICAgIGNvbnN0IGlzb2xhdGVkID0gKHRoaXMucHJlY2VkZW5jZSA9PT0gSVNPTEFURURfUFJFQ0VERU5DRSk7XG5cbiAgICByZXR1cm4gaXNvbGF0ZWQ7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIGxldCBub2RlID0gbnVsbDtcblxuICAgIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSB0aGlzLmNoaWxkTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0Q2hpbGROb2RlID0gZmlyc3QodGhpcy5jaGlsZE5vZGVzKTtcblxuICAgICAgbm9kZSA9IGZpcnN0Q2hpbGROb2RlOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBtZXJnZShmcmFtZSkge1xuICAgIGxldCBjaGlsZE5vZGVzLFxuICAgICAgICBwcmVjZWRlbmNlO1xuXG4gICAgY2hpbGROb2RlcyA9IGZyYW1lLmdldENoaWxkTm9kZXMoKTtcblxuICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKCk7XG5cbiAgICBjaGlsZE5vZGVzID0gWyAgLy8vXG4gICAgICAuLi50aGlzLmNoaWxkTm9kZXMsXG4gICAgICAuLi5jaGlsZE5vZGVzXG4gICAgXTtcblxuICAgIHByZWNlZGVuY2UgPSBwcmVjZWRlbmNlIHx8IHRoaXMucHJlY2VkZW5jZTsgLy8vXG5cbiAgICBmcmFtZSA9IG5ldyBGcmFtZShjaGlsZE5vZGVzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgcHJlY2VkZW5jZSA9IG51bGwsXG4gICAgICAgICAgZnJhbWUgPSBuZXcgRnJhbWUoY2hpbGROb2RlcywgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNoaWxkTm9kZShjaGlsZE5vZGUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gW1xuICAgICAgICAgICAgY2hpbGROb2RlXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBmcmFtZSA9IG5ldyBGcmFtZShjaGlsZE5vZGVzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UoY2hpbGROb2RlcywgcHJlY2VkZW5jZSkge1xuICAgIGNvbnN0IGZyYW1lID0gbmV3IEZyYW1lKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBlbXB0eUZyYW1lID0gRnJhbWUuZnJvbU5vdGhpbmcoKTsiXSwibmFtZXMiOlsiRnJhbWUiLCJlbXB0eUZyYW1lIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImNoaWxkTm9kZXMiLCJwcmVjZWRlbmNlIiwiZ2V0Q2hpbGROb2RlcyIsImdldFByZWNlZGVuY2UiLCJkZWZpbml0aW9uIiwiaXNvbGF0ZWQiLCJpc0lzb2xhdGVkIiwic2V0Q2hpbGROb2RlcyIsInNldFByZWNlZGVuY2UiLCJJU09MQVRFRF9QUkVDRURFTkNFIiwiZ2V0Tm9kZSIsIm5vZGUiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RDaGlsZE5vZGUiLCJtZXJnZSIsImZyYW1lIiwiZnJvbU5vdGhpbmciLCJmcm9tQ2hpbGROb2RlIiwiY2hpbGROb2RlIiwiZnJvbUNoaWxkTm9kZXNBbmRQcmVjZWRlbmNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFPQTtlQUFxQkE7O1FBdUdSQztlQUFBQTs7OzJCQTVHa0I7MkJBQ0s7QUFFcEMsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MseUJBQWM7QUFFakIsTUFBTUg7SUFDbkIsWUFBWUksVUFBVSxFQUFFQyxVQUFVLENBQUU7UUFDbEMsSUFBSSxDQUFDRCxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsVUFBVTtJQUN4QjtJQUVBRyxjQUFjQyxhQUFhLElBQUksRUFBRTtRQUMvQixJQUFJSDtRQUVKLElBQUlHLGVBQWUsTUFBTTtZQUN2QkgsYUFBYSxJQUFJLENBQUNBLFVBQVU7UUFDOUIsT0FBTztZQUNMLE1BQU1JLFdBQVcsSUFBSSxDQUFDQyxVQUFVO1lBRWhDLElBQUlELFVBQVU7Z0JBQ1pKLGFBQWE7WUFDZixPQUFPO2dCQUNMQSxhQUFhLEFBQUMsSUFBSSxDQUFDQSxVQUFVLEtBQUssT0FDbEIsSUFBSSxDQUFDQSxVQUFVLEdBQ2JHLFdBQVdELGFBQWE7WUFDNUM7UUFDRjtRQUVBLE9BQU9GO0lBQ1Q7SUFFQU0sY0FBY1AsVUFBVSxFQUFFO1FBQ3hCLElBQUksQ0FBQ0EsVUFBVSxHQUFHQTtJQUNwQjtJQUVBUSxjQUFjUCxVQUFVLEVBQUU7UUFDeEIsSUFBSSxDQUFDQSxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFLLGFBQWE7UUFDWCxNQUFNRCxXQUFZLElBQUksQ0FBQ0osVUFBVSxLQUFLUSw4QkFBbUI7UUFFekQsT0FBT0o7SUFDVDtJQUVBSyxVQUFVO1FBQ1IsSUFBSUMsT0FBTztRQUVYLE1BQU1DLG1CQUFtQixJQUFJLENBQUNaLFVBQVUsQ0FBQ2EsTUFBTTtRQUUvQyxJQUFJRCxxQkFBcUIsR0FBRztZQUMxQixNQUFNRSxpQkFBaUJoQixNQUFNLElBQUksQ0FBQ0UsVUFBVTtZQUU1Q1csT0FBT0csZ0JBQWlCLEdBQUc7UUFDN0I7UUFFQSxPQUFPSDtJQUNUO0lBRUFJLE1BQU1DLEtBQUssRUFBRTtRQUNYLElBQUloQixZQUNBQztRQUVKRCxhQUFhZ0IsTUFBTWQsYUFBYTtRQUVoQ0QsYUFBYWUsTUFBTWIsYUFBYTtRQUVoQ0gsYUFBYTtlQUNSLElBQUksQ0FBQ0EsVUFBVTtlQUNmQTtTQUNKO1FBRURDLGFBQWFBLGNBQWMsSUFBSSxDQUFDQSxVQUFVLEVBQUUsR0FBRztRQUUvQ2UsUUFBUSxJQUFJcEIsTUFBTUksWUFBWUM7UUFFOUIsT0FBT2U7SUFDVDtJQUVBLE9BQU9DLGNBQWM7UUFDbkIsTUFBTWpCLGFBQWEsRUFBRSxFQUNmQyxhQUFhLE1BQ2JlLFFBQVEsSUFBSXBCLE1BQU1JLFlBQVlDO1FBRXBDLE9BQU9lO0lBQ1Q7SUFFQSxPQUFPRSxjQUFjQyxTQUFTLEVBQUU7UUFDOUIsTUFBTW5CLGFBQWE7WUFDWG1CO1NBQ0QsRUFDRGxCLGFBQWEsTUFDYmUsUUFBUSxJQUFJcEIsTUFBTUksWUFBWUM7UUFFcEMsT0FBT2U7SUFDVDtJQUVBLE9BQU9JLDRCQUE0QnBCLFVBQVUsRUFBRUMsVUFBVSxFQUFFO1FBQ3pELE1BQU1lLFFBQVEsSUFBSXBCLE1BQU1JLFlBQVlDO1FBRXBDLE9BQU9lO0lBQ1Q7QUFDRjtBQUVPLE1BQU1uQixhQUFhRCxNQUFNcUIsV0FBVyJ9
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mcmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBpc29sYXRlZFByZWNlZGVuY2UgfSBmcm9tIFwiLi9wcmVjZWRlbmNlXCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmFtZSB7XG4gIGNvbnN0cnVjdG9yKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpIHtcbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkTm9kZXM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKGRlZmluaXRpb24gPSBudWxsKSB7XG4gICAgbGV0IHByZWNlZGVuY2U7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiA9PT0gbnVsbCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHRoaXMucHJlY2VkZW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNvbGF0ZWQgPSB0aGlzLmlzSXNvbGF0ZWQoKTtcblxuICAgICAgaWYgKGlzb2xhdGVkKSB7XG4gICAgICAgIHByZWNlZGVuY2UgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJlY2VkZW5jZSA9ICh0aGlzLnByZWNlZGVuY2UgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlY2VkZW5jZSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluaXRpb24uZ2V0UHJlY2VkZW5jZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcmVjZWRlbmNlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgfVxuXG4gIHNldFByZWNlZGVuY2UocHJlY2VkZW5jZSkge1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gIH1cblxuICBpc0lzb2xhdGVkKCkge1xuICAgIGNvbnN0IGlzb2xhdGVkID0gKHRoaXMucHJlY2VkZW5jZSA9PT0gaXNvbGF0ZWRQcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBpc29sYXRlZDtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgbGV0IG5vZGUgPSBudWxsO1xuXG4gICAgY29uc3QgY2hpbGROb2Rlc0xlbmd0aCA9IHRoaXMuY2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAoY2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdCh0aGlzLmNoaWxkTm9kZXMpO1xuXG4gICAgICBub2RlID0gZmlyc3RDaGlsZE5vZGU7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIG1lcmdlKGZyYW1lKSB7XG4gICAgbGV0IGNoaWxkTm9kZXMsXG4gICAgICAgIHByZWNlZGVuY2U7XG5cbiAgICBjaGlsZE5vZGVzID0gZnJhbWUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgcHJlY2VkZW5jZSA9IGZyYW1lLmdldFByZWNlZGVuY2UoKTtcblxuICAgIGNoaWxkTm9kZXMgPSBbICAvLy9cbiAgICAgIC4uLnRoaXMuY2hpbGROb2RlcyxcbiAgICAgIC4uLmNoaWxkTm9kZXNcbiAgICBdO1xuXG4gICAgcHJlY2VkZW5jZSA9IHByZWNlZGVuY2UgfHwgdGhpcy5wcmVjZWRlbmNlOyAvLy9cblxuICAgIGZyYW1lID0gbmV3IEZyYW1lKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBbXSxcbiAgICAgICAgICBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBmcmFtZSA9IG5ldyBGcmFtZShjaGlsZE5vZGVzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBbXG4gICAgICAgICAgICBjaGlsZE5vZGVcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByZWNlZGVuY2UgPSBudWxsLFxuICAgICAgICAgIGZyYW1lID0gbmV3IEZyYW1lKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG5cbiAgc3RhdGljIGZyb21DaGlsZE5vZGVzQW5kUHJlY2VkZW5jZShjaGlsZE5vZGVzLCBwcmVjZWRlbmNlKSB7XG4gICAgY29uc3QgZnJhbWUgPSBuZXcgRnJhbWUoY2hpbGROb2RlcywgcHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGVtcHR5RnJhbWUgPSBGcmFtZS5mcm9tTm90aGluZygpOyJdLCJuYW1lcyI6WyJGcmFtZSIsImVtcHR5RnJhbWUiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiY2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJnZXRDaGlsZE5vZGVzIiwiZ2V0UHJlY2VkZW5jZSIsImRlZmluaXRpb24iLCJpc29sYXRlZCIsImlzSXNvbGF0ZWQiLCJzZXRDaGlsZE5vZGVzIiwic2V0UHJlY2VkZW5jZSIsImlzb2xhdGVkUHJlY2VkZW5jZSIsImdldE5vZGUiLCJub2RlIiwiY2hpbGROb2Rlc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0Q2hpbGROb2RlIiwibWVyZ2UiLCJmcmFtZSIsImZyb21Ob3RoaW5nIiwiZnJvbUNoaWxkTm9kZSIsImNoaWxkTm9kZSIsImZyb21DaGlsZE5vZGVzQW5kUHJlY2VkZW5jZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBT0E7ZUFBcUJBOztRQXVHUkM7ZUFBQUE7OzsyQkE1R2tCOzRCQUNJO0FBRW5DLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHlCQUFjO0FBRWpCLE1BQU1IO0lBQ25CLFlBQVlJLFVBQVUsRUFBRUMsVUFBVSxDQUFFO1FBQ2xDLElBQUksQ0FBQ0QsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFDeEI7SUFFQUcsY0FBY0MsYUFBYSxJQUFJLEVBQUU7UUFDL0IsSUFBSUg7UUFFSixJQUFJRyxlQUFlLE1BQU07WUFDdkJILGFBQWEsSUFBSSxDQUFDQSxVQUFVO1FBQzlCLE9BQU87WUFDTCxNQUFNSSxXQUFXLElBQUksQ0FBQ0MsVUFBVTtZQUVoQyxJQUFJRCxVQUFVO2dCQUNaSixhQUFhO1lBQ2YsT0FBTztnQkFDTEEsYUFBYSxBQUFDLElBQUksQ0FBQ0EsVUFBVSxLQUFLLE9BQ2xCLElBQUksQ0FBQ0EsVUFBVSxHQUNiRyxXQUFXRCxhQUFhO1lBQzVDO1FBQ0Y7UUFFQSxPQUFPRjtJQUNUO0lBRUFNLGNBQWNQLFVBQVUsRUFBRTtRQUN4QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7SUFDcEI7SUFFQVEsY0FBY1AsVUFBVSxFQUFFO1FBQ3hCLElBQUksQ0FBQ0EsVUFBVSxHQUFHQTtJQUNwQjtJQUVBSyxhQUFhO1FBQ1gsTUFBTUQsV0FBWSxJQUFJLENBQUNKLFVBQVUsS0FBS1EsOEJBQWtCO1FBRXhELE9BQU9KO0lBQ1Q7SUFFQUssVUFBVTtRQUNSLElBQUlDLE9BQU87UUFFWCxNQUFNQyxtQkFBbUIsSUFBSSxDQUFDWixVQUFVLENBQUNhLE1BQU07UUFFL0MsSUFBSUQscUJBQXFCLEdBQUc7WUFDMUIsTUFBTUUsaUJBQWlCaEIsTUFBTSxJQUFJLENBQUNFLFVBQVU7WUFFNUNXLE9BQU9HLGdCQUFpQixHQUFHO1FBQzdCO1FBRUEsT0FBT0g7SUFDVDtJQUVBSSxNQUFNQyxLQUFLLEVBQUU7UUFDWCxJQUFJaEIsWUFDQUM7UUFFSkQsYUFBYWdCLE1BQU1kLGFBQWE7UUFFaENELGFBQWFlLE1BQU1iLGFBQWE7UUFFaENILGFBQWE7ZUFDUixJQUFJLENBQUNBLFVBQVU7ZUFDZkE7U0FDSjtRQUVEQyxhQUFhQSxjQUFjLElBQUksQ0FBQ0EsVUFBVSxFQUFFLEdBQUc7UUFFL0NlLFFBQVEsSUFBSXBCLE1BQU1JLFlBQVlDO1FBRTlCLE9BQU9lO0lBQ1Q7SUFFQSxPQUFPQyxjQUFjO1FBQ25CLE1BQU1qQixhQUFhLEVBQUUsRUFDZkMsYUFBYSxNQUNiZSxRQUFRLElBQUlwQixNQUFNSSxZQUFZQztRQUVwQyxPQUFPZTtJQUNUO0lBRUEsT0FBT0UsY0FBY0MsU0FBUyxFQUFFO1FBQzlCLE1BQU1uQixhQUFhO1lBQ1htQjtTQUNELEVBQ0RsQixhQUFhLE1BQ2JlLFFBQVEsSUFBSXBCLE1BQU1JLFlBQVlDO1FBRXBDLE9BQU9lO0lBQ1Q7SUFFQSxPQUFPSSw0QkFBNEJwQixVQUFVLEVBQUVDLFVBQVUsRUFBRTtRQUN6RCxNQUFNZSxRQUFRLElBQUlwQixNQUFNSSxZQUFZQztRQUVwQyxPQUFPZTtJQUNUO0FBQ0Y7QUFFTyxNQUFNbkIsYUFBYUQsTUFBTXFCLFdBQVcifQ==
@@ -9,21 +9,62 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  const _necessary = require("necessary");
12
+ const _precedence = /*#__PURE__*/ _interop_require_wildcard(require("../../precedence"));
12
13
  const _nonTerminal = /*#__PURE__*/ _interop_require_default(require("../../node/nonTerminal"));
13
- const _constants = require("../../constants");
14
14
  function _interop_require_default(obj) {
15
15
  return obj && obj.__esModule ? obj : {
16
16
  default: obj
17
17
  };
18
18
  }
19
+ function _getRequireWildcardCache(nodeInterop) {
20
+ if (typeof WeakMap !== "function") return null;
21
+ var cacheBabelInterop = new WeakMap();
22
+ var cacheNodeInterop = new WeakMap();
23
+ return (_getRequireWildcardCache = function(nodeInterop) {
24
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
25
+ })(nodeInterop);
26
+ }
27
+ function _interop_require_wildcard(obj, nodeInterop) {
28
+ if (!nodeInterop && obj && obj.__esModule) {
29
+ return obj;
30
+ }
31
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
32
+ return {
33
+ default: obj
34
+ };
35
+ }
36
+ var cache = _getRequireWildcardCache(nodeInterop);
37
+ if (cache && cache.has(obj)) {
38
+ return cache.get(obj);
39
+ }
40
+ var newObj = {
41
+ __proto__: null
42
+ };
43
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
44
+ for(var key in obj){
45
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
46
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
47
+ if (desc && (desc.get || desc.set)) {
48
+ Object.defineProperty(newObj, key, desc);
49
+ } else {
50
+ newObj[key] = obj[key];
51
+ }
52
+ }
53
+ }
54
+ newObj.default = obj;
55
+ if (cache) {
56
+ cache.set(obj, newObj);
57
+ }
58
+ return newObj;
59
+ }
19
60
  const { second } = _necessary.arrayUtilities;
20
61
  class PrecedenceBNFNode extends _nonTerminal.default {
21
62
  getPrecedence() {
22
- let precedence = _constants.TRANSPARENT_PRECEDENCE;
63
+ let precedence = _precedence.transparentPrecedence;
23
64
  const multiplicity = this.getMultiplicity();
24
65
  if (multiplicity === 3) {
25
- const childNodes = this.getChildNodes(), secondChildNode = second(childNodes), terminalNode = secondChildNode, content = terminalNode.getContent();
26
- precedence = Number(content); ///
66
+ const childNodes = this.getChildNodes(), secondChildNode = second(childNodes), terminalNode = secondChildNode, content = terminalNode.getContent(), number = Number(content);
67
+ precedence = _precedence.default.fromNumber(number);
27
68
  }
28
69
  return precedence;
29
70
  }
@@ -32,4 +73,4 @@ class PrecedenceBNFNode extends _nonTerminal.default {
32
73
  }
33
74
  }
34
75
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2JuZi9wcmVjZWRlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IE5vblRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBUUkFOU1BBUkVOVF9QUkVDRURFTkNFIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHNlY29uZCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByZWNlZGVuY2VCTkZOb2RlIGV4dGVuZHMgTm9uVGVybWluYWxOb2RlIHtcbiAgZ2V0UHJlY2VkZW5jZSgpIHtcbiAgICBsZXQgcHJlY2VkZW5jZSA9IFRSQU5TUEFSRU5UX1BSRUNFREVOQ0U7XG5cbiAgICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpO1xuXG4gICAgaWYgKG11bHRpcGxpY2l0eSA9PT0gMykge1xuICAgICAgY29uc3QgY2hpbGROb2RlcyA9IHRoaXMuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgc2Vjb25kQ2hpbGROb2RlID0gc2Vjb25kKGNoaWxkTm9kZXMpLFxuICAgICAgICAgICAgdGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgICAgcHJlY2VkZW5jZSA9IE51bWJlcihjb250ZW50KTsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHByZWNlZGVuY2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5KSB7IHJldHVybiBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5KFByZWNlZGVuY2VCTkZOb2RlLCBydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJQcmVjZWRlbmNlQk5GTm9kZSIsInNlY29uZCIsImFycmF5VXRpbGl0aWVzIiwiTm9uVGVybWluYWxOb2RlIiwiZ2V0UHJlY2VkZW5jZSIsInByZWNlZGVuY2UiLCJUUkFOU1BBUkVOVF9QUkVDRURFTkNFIiwibXVsdGlwbGljaXR5IiwiZ2V0TXVsdGlwbGljaXR5IiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzZWNvbmRDaGlsZE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsIk51bWJlciIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNQcmVjZWRlbmNlQW5kT3BhY2l0eSIsInJ1bGVOYW1lIiwib3BhY2l0eSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7OzsyQkFSVTtvRUFFSDsyQkFFVzs7Ozs7O0FBRXZDLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdDLHlCQUFjO0FBRWxCLE1BQU1GLDBCQUEwQkcsb0JBQWU7SUFDNURDLGdCQUFnQjtRQUNkLElBQUlDLGFBQWFDLGlDQUFzQjtRQUV2QyxNQUFNQyxlQUFlLElBQUksQ0FBQ0MsZUFBZTtRQUV6QyxJQUFJRCxpQkFBaUIsR0FBRztZQUN0QixNQUFNRSxhQUFhLElBQUksQ0FBQ0MsYUFBYSxJQUMvQkMsa0JBQWtCVixPQUFPUSxhQUN6QkcsZUFBZUQsaUJBQ2ZFLFVBQVVELGFBQWFFLFVBQVU7WUFFdkNULGFBQWFVLE9BQU9GLFVBQVUsR0FBRztRQUNuQztRQUVBLE9BQU9SO0lBQ1Q7SUFFQSxPQUFPVywyQ0FBMkNDLFFBQVEsRUFBRVIsVUFBVSxFQUFFSixVQUFVLEVBQUVhLE9BQU8sRUFBRTtRQUFFLE9BQU9mLG9CQUFlLENBQUNhLDBDQUEwQyxDQUFDaEIsbUJBQW1CaUIsVUFBVVIsWUFBWUosWUFBWWE7SUFBVTtBQUNsTyJ9
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2JuZi9wcmVjZWRlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IFByZWNlZGVuY2UgZnJvbSBcIi4uLy4uL3ByZWNlZGVuY2VcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbm9uVGVybWluYWxcIjtcblxuaW1wb3J0IHsgdHJhbnNwYXJlbnRQcmVjZWRlbmNlIH0gZnJvbSBcIi4uLy4uL3ByZWNlZGVuY2VcIjtcblxuY29uc3QgeyBzZWNvbmQgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcmVjZWRlbmNlQk5GTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgbGV0IHByZWNlZGVuY2UgPSB0cmFuc3BhcmVudFByZWNlZGVuY2U7XG5cbiAgICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpO1xuXG4gICAgaWYgKG11bHRpcGxpY2l0eSA9PT0gMykge1xuICAgICAgY29uc3QgY2hpbGROb2RlcyA9IHRoaXMuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgc2Vjb25kQ2hpbGROb2RlID0gc2Vjb25kKGNoaWxkTm9kZXMpLFxuICAgICAgICAgICAgdGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgIG51bWJlciA9IE51bWJlcihjb250ZW50KTtcblxuICAgICAgcHJlY2VkZW5jZSA9IFByZWNlZGVuY2UuZnJvbU51bWJlcihudW1iZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBwcmVjZWRlbmNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNQcmVjZWRlbmNlQW5kT3BhY2l0eShydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSkgeyByZXR1cm4gTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNQcmVjZWRlbmNlQW5kT3BhY2l0eShQcmVjZWRlbmNlQk5GTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpOyB9XG59XG4iXSwibmFtZXMiOlsiUHJlY2VkZW5jZUJORk5vZGUiLCJzZWNvbmQiLCJhcnJheVV0aWxpdGllcyIsIk5vblRlcm1pbmFsTm9kZSIsImdldFByZWNlZGVuY2UiLCJwcmVjZWRlbmNlIiwidHJhbnNwYXJlbnRQcmVjZWRlbmNlIiwibXVsdGlwbGljaXR5IiwiZ2V0TXVsdGlwbGljaXR5IiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzZWNvbmRDaGlsZE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsIm51bWJlciIsIk51bWJlciIsIlByZWNlZGVuY2UiLCJmcm9tTnVtYmVyIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwicnVsZU5hbWUiLCJvcGFjaXR5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXFCQTs7OzJCQVRVO29FQUVSO29FQUNLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUk1QixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyx5QkFBYztBQUVsQixNQUFNRiwwQkFBMEJHLG9CQUFlO0lBQzVEQyxnQkFBZ0I7UUFDZCxJQUFJQyxhQUFhQyxpQ0FBcUI7UUFFdEMsTUFBTUMsZUFBZSxJQUFJLENBQUNDLGVBQWU7UUFFekMsSUFBSUQsaUJBQWlCLEdBQUc7WUFDdEIsTUFBTUUsYUFBYSxJQUFJLENBQUNDLGFBQWEsSUFDL0JDLGtCQUFrQlYsT0FBT1EsYUFDekJHLGVBQWVELGlCQUNmRSxVQUFVRCxhQUFhRSxVQUFVLElBQ2pDQyxTQUFTQyxPQUFPSDtZQUV0QlIsYUFBYVksbUJBQVUsQ0FBQ0MsVUFBVSxDQUFDSDtRQUNyQztRQUVBLE9BQU9WO0lBQ1Q7SUFFQSxPQUFPYywyQ0FBMkNDLFFBQVEsRUFBRVgsVUFBVSxFQUFFSixVQUFVLEVBQUVnQixPQUFPLEVBQUU7UUFBRSxPQUFPbEIsb0JBQWUsQ0FBQ2dCLDBDQUEwQyxDQUFDbkIsbUJBQW1Cb0IsVUFBVVgsWUFBWUosWUFBWWdCO0lBQVU7QUFDbE8ifQ==
@@ -12,7 +12,7 @@ const _necessary = require("necessary");
12
12
  const _occamlexers = require("occam-lexers");
13
13
  const _node = /*#__PURE__*/ _interop_require_default(require("../mixins/node"));
14
14
  const _nonTerminalNode = /*#__PURE__*/ _interop_require_default(require("../parseTree/nonTerminalNode"));
15
- const _constants = require("../constants");
15
+ const _precedence = require("../precedence");
16
16
  function _interop_require_default(obj) {
17
17
  return obj && obj.__esModule ? obj : {
18
18
  default: obj
@@ -109,18 +109,10 @@ class NonTerminalNode {
109
109
  });
110
110
  return significantTokens;
111
111
  }
112
- getAssociativity() {
113
- const associativity = Math.sign(this.precedence);
114
- return associativity;
115
- }
116
112
  getMultiplicity() {
117
113
  const childNodesLength = this.childNodes.length, multiplicity = childNodesLength; ///
118
114
  return multiplicity;
119
115
  }
120
- getStrength() {
121
- const strength = Math.abs(this.precedence);
122
- return strength;
123
- }
124
116
  isSingular() {
125
117
  const multiplicity = this.getMultiplicity(), singular = multiplicity === 1;
126
118
  return singular;
@@ -138,47 +130,37 @@ class NonTerminalNode {
138
130
  return empty;
139
131
  }
140
132
  isUnprecedented() {
141
- let unprecedented = false;
133
+ let unprecedented = true;
142
134
  const childNodesPrecedenceCompares = this.compareChildNodesPrecedence();
143
135
  if (childNodesPrecedenceCompares) {
144
- unprecedented = true;
136
+ unprecedented = false;
145
137
  }
146
138
  return unprecedented;
147
139
  }
148
- comparePrecedence(associativity, strength, first, last) {
140
+ comparePrecedence(precedence, first, last) {
149
141
  let precedenceCompares;
150
142
  if (false) {
151
143
  ///
152
144
  } else if (this.precedence === null) {
153
- precedenceCompares = false;
154
- } else if (this.precedence === _constants.TRANSPARENT_PRECEDENCE) {
155
- precedenceCompares = this.childNodes.some((childNode)=>{
156
- const childNodePrecedenceCompares = childNode.comparePrecedence(associativity, strength, first, last);
145
+ precedenceCompares = true;
146
+ } else if (this.precedence === _precedence.transparentPrecedence) {
147
+ precedenceCompares = this.childNodes.every((childNode)=>{
148
+ const childNodePrecedenceCompares = childNode.comparePrecedence(precedence, first, last);
157
149
  if (childNodePrecedenceCompares) {
158
150
  return true;
159
151
  }
160
152
  });
161
153
  } else {
162
- const parentStrength = strength, parentAssociativity = associativity; ///
163
- strength = this.getStrength();
164
- if (false) {
165
- ///
166
- } else if (first) {
167
- precedenceCompares = parentAssociativity < 0 ? strength < parentStrength : strength <= parentStrength;
168
- } else if (last) {
169
- precedenceCompares = parentAssociativity < 0 ? strength <= parentStrength : strength < parentStrength;
170
- } else {
171
- precedenceCompares = strength < parentStrength;
172
- }
154
+ precedenceCompares = this.precedence.compare(precedence, first, last);
173
155
  }
174
156
  return precedenceCompares;
175
157
  }
176
158
  compareChildNodesPrecedence() {
177
- let childNodesPrecedenceCompares = false;
178
- if (this.precedence !== null && this.precedence !== _constants.TRANSPARENT_PRECEDENCE) {
179
- const multiplicity = this.getMultiplicity(), lastIndex = multiplicity - 1, firstIndex = 0, strength = this.getStrength(), associativity = this.getAssociativity();
180
- childNodesPrecedenceCompares = this.childNodes.some((childNode, index)=>{
181
- const last = index === lastIndex, first = index === firstIndex, childNodePrecedenceCompares = childNode.comparePrecedence(associativity, strength, first, last);
159
+ let childNodesPrecedenceCompares = true;
160
+ if (this.precedence !== null && this.precedence !== _precedence.transparentPrecedence) {
161
+ const multiplicity = this.getMultiplicity(), lastIndex = multiplicity - 1, firstIndex = 0;
162
+ childNodesPrecedenceCompares = this.childNodes.every((childNode, index)=>{
163
+ const last = index === lastIndex, first = index === firstIndex, childNodePrecedenceCompares = childNode.comparePrecedence(this.precedence, first, last);
182
164
  if (childNodePrecedenceCompares) {
183
165
  return true;
184
166
  }
@@ -256,4 +238,4 @@ function cloneChildNodes(childNodes) {
256
238
  return childNodes;
257
239
  }
258
240
 
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL25vblRlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgbm9kZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL25vZGVcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4uL3BhcnNlVHJlZS9ub25UZXJtaW5hbE5vZGVcIjtcblxuaW1wb3J0IHsgVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBtYXRjaCB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IG9wYXF1ZTogb3BhcXVlU3BlY2lhbFN5bWJvbCAsIHNlbWlPcGFxdWU6IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sIH0gPSBzcGVjaWFsU3ltYm9scztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9uVGVybWluYWxOb2RlIHtcbiAgY29uc3RydWN0b3IocnVsZU5hbWUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpIHtcbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgfVxuXG4gIGdldFJ1bGVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJ1bGVOYW1lO1xuICB9XG5cbiAgZ2V0UGFyZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnROb2RlO1xuICB9XG5cbiAgZ2V0Q2hpbGROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZE5vZGVzO1xuICB9XG5cbiAgZ2V0UHJlY2VkZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0T3BhY2l0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcGFjaXR5O1xuICB9XG5cbiAgc2V0UnVsZU5hbWUocnVsZU5hbWUpIHtcbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IDAsXG4gICAgICAgICAgZGVsZXRlQ291bnQgPSBJbmZpbml0eSxcbiAgICAgICAgICBhZGRlZENoaWxkTm9kZXMgPSBjaGlsZE5vZGVzOyAgLy8vXG5cbiAgICB0aGlzLnNwbGljZUNoaWxkTm9kZXMoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQsIGFkZGVkQ2hpbGROb2Rlcyk7XG4gIH1cblxuICBzZXRQcmVjZWRlbmNlKHByZWNlZGVuY2UpIHtcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgc2V0T3BhY2l0eShvcGFjaXR5KSB7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgfVxuXG4gIGlzT3BhcXVlKCkge1xuICAgIGNvbnN0IG9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IG9wYXF1ZVNwZWNpYWxTeW1ib2wpO1xuXG4gICAgcmV0dXJuIG9wYXF1ZTtcbiAgfVxuXG4gIGlzU2VtaU9wYXF1ZSgpIHtcbiAgICBjb25zdCBzZW1pT3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gc2VtaU9wYXF1ZVNwZWNpYWxTeW1ib2wpO1xuXG4gICAgcmV0dXJuIHNlbWlPcGFxdWU7XG4gIH1cblxuICBpc1RyYW5zcGFyZW50KCkge1xuICAgIGNvbnN0IHNlbWlPcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBudWxsKTtcblxuICAgIHJldHVybiBzZW1pT3BhcXVlO1xuICB9XG5cbiAgaXNUZXJtaW5hbE5vZGUoKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgaXNOb25UZXJtaW5hbE5vZGUoKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gdHJ1ZTtcblxuICAgIHJldHVybiBub25UZXJtaW5hbE5vZGU7XG4gIH1cblxuICBnZXREZXNjZW5kYW50Tm9kZXMoZGVzY2VuZGFudE5vZGVzKSB7XG4gICAgcmV0dXJuIGRlc2NlbmRhbnROb2RlcztcbiAgfVxuXG4gIGdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGxldCBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcblxuICAgIHRoaXMuZm9yd2FyZHNTb21lQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcblxuICAgICAgaWYgKGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBsZXQgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcblxuICAgIHRoaXMuYmFja3dhcmRzU29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gICAgICBpZiAobGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0U2lnbmlmaWNhbnRUb2tlbnMoc2lnbmlmaWNhbnRUb2tlbnMgPSBbXSkge1xuICAgIHRoaXMuY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNoaWxkTm9kZS5nZXRTaWduaWZpY2FudFRva2VucyhzaWduaWZpY2FudFRva2Vucyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG4gIH1cblxuICBnZXRBc3NvY2lhdGl2aXR5KCkge1xuICAgIGNvbnN0IGFzc29jaWF0aXZpdHkgPSBNYXRoLnNpZ24odGhpcy5wcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBhc3NvY2lhdGl2aXR5O1xuICB9XG5cbiAgZ2V0TXVsdGlwbGljaXR5KCkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSB0aGlzLmNoaWxkTm9kZXMubGVuZ3RoLFxuICAgICAgICAgIG11bHRpcGxpY2l0eSA9IGNoaWxkTm9kZXNMZW5ndGg7ICAvLy9cblxuICAgIHJldHVybiBtdWx0aXBsaWNpdHk7XG4gIH1cblxuICBnZXRTdHJlbmd0aCgpIHtcbiAgICBjb25zdCBzdHJlbmd0aCA9IE1hdGguYWJzKHRoaXMucHJlY2VkZW5jZSk7XG5cbiAgICByZXR1cm4gc3RyZW5ndGg7XG4gIH1cblxuICBpc1Npbmd1bGFyKCkge1xuICAgIGNvbnN0IG11bHRpcGxpY2l0eSA9IHRoaXMuZ2V0TXVsdGlwbGljaXR5KCksXG4gICAgICAgICAgc2luZ3VsYXIgPSAobXVsdGlwbGljaXR5ID09PSAxKTtcblxuICAgIHJldHVybiBzaW5ndWxhcjtcbiAgfVxuXG4gIGlzSW52YWxpZCgpIHtcbiAgICBsZXQgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZW1wdHkgPSB0aGlzLmlzRW1wdHkoKSxcbiAgICAgICAgICB1bnByZWNlZGVudGVkID0gdGhpcy5pc1VucHJlY2VkZW50ZWQoKTtcblxuICAgIGlmIChlbXB0eSB8fCB1bnByZWNlZGVudGVkKSB7XG4gICAgICBpbnZhbGlkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW52YWxpZDtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgY29uc3QgbXVsdGlwbGljaXR5ID0gdGhpcy5nZXRNdWx0aXBsaWNpdHkoKSxcbiAgICAgICAgICBlbXB0eSA9IChtdWx0aXBsaWNpdHkgPT09IDApO1xuXG4gICAgcmV0dXJuIGVtcHR5O1xuICB9XG5cbiAgaXNVbnByZWNlZGVudGVkKCkge1xuICAgIGxldCB1bnByZWNlZGVudGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBjaGlsZE5vZGVzUHJlY2VkZW5jZUNvbXBhcmVzID0gdGhpcy5jb21wYXJlQ2hpbGROb2Rlc1ByZWNlZGVuY2UoKTtcblxuICAgIGlmIChjaGlsZE5vZGVzUHJlY2VkZW5jZUNvbXBhcmVzKSB7XG4gICAgICB1bnByZWNlZGVudGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5wcmVjZWRlbnRlZDtcbiAgfVxuXG4gIGNvbXBhcmVQcmVjZWRlbmNlKGFzc29jaWF0aXZpdHksIHN0cmVuZ3RoLCBmaXJzdCwgbGFzdCkge1xuICAgIGxldCBwcmVjZWRlbmNlQ29tcGFyZXM7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmVjZWRlbmNlID09PSBudWxsKSB7XG4gICAgICBwcmVjZWRlbmNlQ29tcGFyZXMgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJlY2VkZW5jZSA9PT0gVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSkge1xuICAgICAgcHJlY2VkZW5jZUNvbXBhcmVzID0gdGhpcy5jaGlsZE5vZGVzLnNvbWUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBjaGlsZE5vZGVQcmVjZWRlbmNlQ29tcGFyZXMgPSBjaGlsZE5vZGUuY29tcGFyZVByZWNlZGVuY2UoYXNzb2NpYXRpdml0eSwgc3RyZW5ndGgsIGZpcnN0LCBsYXN0KTtcblxuICAgICAgICBpZiAoY2hpbGROb2RlUHJlY2VkZW5jZUNvbXBhcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXJlbnRTdHJlbmd0aCA9IHN0cmVuZ3RoLCAgLy8vXG4gICAgICAgICAgICBwYXJlbnRBc3NvY2lhdGl2aXR5ID0gYXNzb2NpYXRpdml0eTsgIC8vL1xuXG4gICAgICBzdHJlbmd0aCA9IHRoaXMuZ2V0U3RyZW5ndGgoKTtcblxuICAgICAgaWYgKGZhbHNlKSB7XG4gICAgICAgIC8vL1xuICAgICAgfSBlbHNlIGlmIChmaXJzdCkge1xuICAgICAgICBwcmVjZWRlbmNlQ29tcGFyZXMgPSAocGFyZW50QXNzb2NpYXRpdml0eSA8IDApID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJlbmd0aCA8IHBhcmVudFN0cmVuZ3RoKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJlbmd0aCA8PSBwYXJlbnRTdHJlbmd0aCk7XG4gICAgICB9IGVsc2UgaWYgKGxhc3QpIHtcbiAgICAgICAgcHJlY2VkZW5jZUNvbXBhcmVzID0gKHBhcmVudEFzc29jaWF0aXZpdHkgPCAwKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmVuZ3RoIDw9IHBhcmVudFN0cmVuZ3RoKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyZW5ndGggPCBwYXJlbnRTdHJlbmd0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcmVjZWRlbmNlQ29tcGFyZXMgPSAoc3RyZW5ndGggPCBwYXJlbnRTdHJlbmd0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZWNlZGVuY2VDb21wYXJlcztcbiAgfVxuXG4gIGNvbXBhcmVDaGlsZE5vZGVzUHJlY2VkZW5jZSgpIHtcbiAgICBsZXQgY2hpbGROb2Rlc1ByZWNlZGVuY2VDb21wYXJlcyA9IGZhbHNlO1xuXG4gICAgaWYgKCh0aGlzLnByZWNlZGVuY2UgIT09IG51bGwpICYmICh0aGlzLnByZWNlZGVuY2UgIT09IFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UpKSB7XG4gICAgICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpLFxuICAgICAgICAgICAgbGFzdEluZGV4ID0gKG11bHRpcGxpY2l0eSAtIDEpLFxuICAgICAgICAgICAgZmlyc3RJbmRleCA9IDAsXG4gICAgICAgICAgICBzdHJlbmd0aCA9IHRoaXMuZ2V0U3RyZW5ndGgoKSxcbiAgICAgICAgICAgIGFzc29jaWF0aXZpdHkgPSB0aGlzLmdldEFzc29jaWF0aXZpdHkoKTtcblxuICAgICAgY2hpbGROb2Rlc1ByZWNlZGVuY2VDb21wYXJlcyA9IHRoaXMuY2hpbGROb2Rlcy5zb21lKChjaGlsZE5vZGUsIGluZGV4KSA9PiB7ICAvLy9cbiAgICAgICAgY29uc3QgbGFzdCA9IChpbmRleCA9PT0gbGFzdEluZGV4KSxcbiAgICAgICAgICAgICAgZmlyc3QgPSAoaW5kZXggPT09IGZpcnN0SW5kZXgpLFxuICAgICAgICAgICAgICBjaGlsZE5vZGVQcmVjZWRlbmNlQ29tcGFyZXMgPSBjaGlsZE5vZGUuY29tcGFyZVByZWNlZGVuY2UoYXNzb2NpYXRpdml0eSwgc3RyZW5ndGgsIGZpcnN0LCBsYXN0KTtcblxuICAgICAgICBpZiAoY2hpbGROb2RlUHJlY2VkZW5jZUNvbXBhcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZE5vZGVzUHJlY2VkZW5jZUNvbXBhcmVzO1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSA9IE5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZS5mcm9tTm9uVGVybWluYWxOb2RlQW5kVG9rZW5zKG5vblRlcm1pbmFsTm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSBub25UZXJtaW5hbE5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBtYXRjaChub2RlLCBkZXB0aCA9IEluZmluaXR5LCBleGFjdGx5ID0gZmFsc2UpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICAgIGlmICh0aGlzLnJ1bGVOYW1lID09PSBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVPcGFjaXR5ID0gbm9uVGVybWluYWxOb2RlLmdldE9wYWNpdHkoKTtcblxuICAgICAgICBpZiAodGhpcy5vcGFjaXR5ID09PSBub25UZXJtaW5hbE5vZGVPcGFjaXR5KSB7XG4gICAgICAgICAgY29uc3QgcHJlY2VkZW5jZSA9IHRoaXMuZ2V0UHJlY2VkZW5jZSgpLFxuICAgICAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UgPSBub25UZXJtaW5hbE5vZGUuZ2V0UHJlY2VkZW5jZSgpO1xuXG4gICAgICAgICAgaWYgKHByZWNlZGVuY2UgPT09IG5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UpIHtcbiAgICAgICAgICAgIGRlcHRoLS07XG5cbiAgICAgICAgICAgIGlmIChkZXB0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBtYXRjaGVzID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgICAgICAgICAgIG1hdGNoZXMgPSBtYXRjaCh0aGlzLmNoaWxkTm9kZXMsIG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIChjaGlsZE5vZGUsIG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZU1hdGNoZXNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGUgPSBjaGlsZE5vZGUubWF0Y2gobm9uVGVybWluYWxOb2RlQ2hpbGROb2RlLCBkZXB0aCwgZXhhY3RseSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGROb2RlTWF0Y2hlc05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIHJld3JpdGUoc3RhdGUpIHtcbiAgICBjb25zdCByZXdyaXR0ZW5Ob25UZXJtaW5hbE5vZGUgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gcmV3cml0dGVuTm9uVGVybWluYWxOb2RlO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmZvckVhY2hDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY2hpbGROb2RlLmRlc3Ryb3koKTtcbiAgICB9KTtcblxuICAgIHRoaXMucGFyZW50Tm9kZSA9IG51bGw7XG5cbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBudWxsO1xuICB9XG5cbiAgY2xvbmUoLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgQ2xhc3MgPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5ydWxlTmFtZSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gY2xvbmVDaGlsZE5vZGVzKHRoaXMuY2hpbGROb2RlcyksXG4gICAgICAgICAgcHJlY2VkZW5jZSA9IHRoaXMucHJlY2VkZW5jZSxcbiAgICAgICAgICBvcGFjaXR5ID0gdGhpcy5vcGFjaXR5LFxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IG5ldyBDbGFzcyhydWxlTmFtZSwgcGFyZW50Tm9kZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIG5vblRlcm1pbmFsTm9kZS5zZXRDaGlsZE5vZGVzUGFyZW50Tm9kZSgpO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkoQ2xhc3MsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5LCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAob3BhY2l0eSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcGFjaXR5ID0gcHJlY2VkZW5jZTsgLy8vXG5cbiAgICAgIHByZWNlZGVuY2UgPSBjaGlsZE5vZGVzOyAvLy9cblxuICAgICAgY2hpbGROb2RlcyA9IHJ1bGVOYW1lOyAgLy8vXG5cbiAgICAgIHJ1bGVOYW1lID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IE5vblRlcm1pbmFsTm9kZTsgIC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IG5ldyBDbGFzcyhydWxlTmFtZSwgcGFyZW50Tm9kZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIG5vblRlcm1pbmFsTm9kZS5zZXRDaGlsZE5vZGVzUGFyZW50Tm9kZSgpO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKE5vblRlcm1pbmFsTm9kZS5wcm90b3R5cGUsIG5vZGVNaXhpbnMpO1xuXG5mdW5jdGlvbiBjbG9uZUNoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICBjaGlsZE5vZGVzID0gY2hpbGROb2Rlcy5tYXAoKGNoaWxkTm9kZSkgPT4geyAgLy8vXG4gICAgY2hpbGROb2RlID0gY2hpbGROb2RlLmNsb25lKCk7ICAvLy9cblxuICAgIHJldHVybiBjaGlsZE5vZGU7XG4gIH0pO1xuXG4gIHJldHVybiBjaGlsZE5vZGVzO1xufVxuIl0sIm5hbWVzIjpbIk5vblRlcm1pbmFsTm9kZSIsIm1hdGNoIiwiYXJyYXlVdGlsaXRpZXMiLCJvcGFxdWUiLCJvcGFxdWVTcGVjaWFsU3ltYm9sIiwic2VtaU9wYXF1ZSIsInNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sIiwic3BlY2lhbFN5bWJvbHMiLCJydWxlTmFtZSIsInBhcmVudE5vZGUiLCJjaGlsZE5vZGVzIiwicHJlY2VkZW5jZSIsIm9wYWNpdHkiLCJnZXRSdWxlTmFtZSIsImdldFBhcmVudE5vZGUiLCJnZXRDaGlsZE5vZGVzIiwiZ2V0UHJlY2VkZW5jZSIsImdldE9wYWNpdHkiLCJzZXRSdWxlTmFtZSIsInNldFBhcmVudE5vZGUiLCJzZXRDaGlsZE5vZGVzIiwic3RhcnRJbmRleCIsImRlbGV0ZUNvdW50IiwiSW5maW5pdHkiLCJhZGRlZENoaWxkTm9kZXMiLCJzcGxpY2VDaGlsZE5vZGVzIiwic2V0UHJlY2VkZW5jZSIsInNldE9wYWNpdHkiLCJpc09wYXF1ZSIsImlzU2VtaU9wYXF1ZSIsImlzVHJhbnNwYXJlbnQiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZ2V0RGVzY2VuZGFudE5vZGVzIiwiZGVzY2VuZGFudE5vZGVzIiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJ0b2tlbnMiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImZvcndhcmRzU29tZUNoaWxkTm9kZSIsImNoaWxkTm9kZSIsIm5vZGUiLCJnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwibGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImJhY2t3YXJkc1NvbWVDaGlsZE5vZGUiLCJnZXRTaWduaWZpY2FudFRva2VucyIsInNpZ25pZmljYW50VG9rZW5zIiwiZm9yRWFjaCIsImdldEFzc29jaWF0aXZpdHkiLCJhc3NvY2lhdGl2aXR5IiwiTWF0aCIsInNpZ24iLCJnZXRNdWx0aXBsaWNpdHkiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwibXVsdGlwbGljaXR5IiwiZ2V0U3RyZW5ndGgiLCJzdHJlbmd0aCIsImFicyIsImlzU2luZ3VsYXIiLCJzaW5ndWxhciIsImlzSW52YWxpZCIsImludmFsaWQiLCJlbXB0eSIsImlzRW1wdHkiLCJ1bnByZWNlZGVudGVkIiwiaXNVbnByZWNlZGVudGVkIiwiY2hpbGROb2Rlc1ByZWNlZGVuY2VDb21wYXJlcyIsImNvbXBhcmVDaGlsZE5vZGVzUHJlY2VkZW5jZSIsImNvbXBhcmVQcmVjZWRlbmNlIiwiZmlyc3QiLCJsYXN0IiwicHJlY2VkZW5jZUNvbXBhcmVzIiwiVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSIsInNvbWUiLCJjaGlsZE5vZGVQcmVjZWRlbmNlQ29tcGFyZXMiLCJwYXJlbnRTdHJlbmd0aCIsInBhcmVudEFzc29jaWF0aXZpdHkiLCJsYXN0SW5kZXgiLCJmaXJzdEluZGV4IiwiaW5kZXgiLCJhc1BhcnNlVHJlZSIsIm5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsIk5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsImZyb21Ob25UZXJtaW5hbE5vZGVBbmRUb2tlbnMiLCJwYXJzZVRyZWUiLCJkZXB0aCIsImV4YWN0bHkiLCJtYXRjaGVzIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlT3BhY2l0eSIsIm5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UiLCJub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQ2hpbGROb2RlIiwiY2hpbGROb2RlTWF0Y2hlc05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSIsInJld3JpdGUiLCJzdGF0ZSIsInJld3JpdHRlbk5vblRlcm1pbmFsTm9kZSIsImRlc3Ryb3kiLCJmb3JFYWNoQ2hpbGROb2RlIiwiY2xvbmUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJDbGFzcyIsImNsb25lQ2hpbGROb2RlcyIsInNldENoaWxkTm9kZXNQYXJlbnROb2RlIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwidW5kZWZpbmVkIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwibm9kZU1peGlucyIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7OzsyQkFYVTs2QkFDQTs2REFFUjt3RUFDYzsyQkFFRTs7Ozs7O0FBRXZDLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHlCQUFjLEVBQzFCLEVBQUVDLFFBQVFDLG1CQUFtQixFQUFHQyxZQUFZQyx1QkFBdUIsRUFBRSxHQUFHQywyQkFBYztBQUU3RSxNQUFNUDtJQUNuQixZQUFZUSxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLEVBQUVDLE9BQU8s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
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL25vblRlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgbm9kZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL25vZGVcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4uL3BhcnNlVHJlZS9ub25UZXJtaW5hbE5vZGVcIjtcblxuaW1wb3J0IHsgdHJhbnNwYXJlbnRQcmVjZWRlbmNlIH0gZnJvbSBcIi4uL3ByZWNlZGVuY2VcIjtcblxuY29uc3QgeyBtYXRjaCB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IG9wYXF1ZTogb3BhcXVlU3BlY2lhbFN5bWJvbCAsIHNlbWlPcGFxdWU6IHNlbWlPcGFxdWVTcGVjaWFsU3ltYm9sIH0gPSBzcGVjaWFsU3ltYm9scztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9uVGVybWluYWxOb2RlIHtcbiAgY29uc3RydWN0b3IocnVsZU5hbWUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpIHtcbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzO1xuICAgIHRoaXMucHJlY2VkZW5jZSA9IHByZWNlZGVuY2U7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgfVxuXG4gIGdldFJ1bGVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJ1bGVOYW1lO1xuICB9XG5cbiAgZ2V0UGFyZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnROb2RlO1xuICB9XG5cbiAgZ2V0Q2hpbGROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZE5vZGVzO1xuICB9XG5cbiAgZ2V0UHJlY2VkZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0T3BhY2l0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcGFjaXR5O1xuICB9XG5cbiAgc2V0UnVsZU5hbWUocnVsZU5hbWUpIHtcbiAgICB0aGlzLnJ1bGVOYW1lID0gcnVsZU5hbWU7XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IDAsXG4gICAgICAgICAgZGVsZXRlQ291bnQgPSBJbmZpbml0eSxcbiAgICAgICAgICBhZGRlZENoaWxkTm9kZXMgPSBjaGlsZE5vZGVzOyAgLy8vXG5cbiAgICB0aGlzLnNwbGljZUNoaWxkTm9kZXMoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQsIGFkZGVkQ2hpbGROb2Rlcyk7XG4gIH1cblxuICBzZXRQcmVjZWRlbmNlKHByZWNlZGVuY2UpIHtcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgc2V0T3BhY2l0eShvcGFjaXR5KSB7XG4gICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgfVxuXG4gIGlzT3BhcXVlKCkge1xuICAgIGNvbnN0IG9wYXF1ZSA9ICh0aGlzLm9wYWNpdHkgPT09IG9wYXF1ZVNwZWNpYWxTeW1ib2wpO1xuXG4gICAgcmV0dXJuIG9wYXF1ZTtcbiAgfVxuXG4gIGlzU2VtaU9wYXF1ZSgpIHtcbiAgICBjb25zdCBzZW1pT3BhcXVlID0gKHRoaXMub3BhY2l0eSA9PT0gc2VtaU9wYXF1ZVNwZWNpYWxTeW1ib2wpO1xuXG4gICAgcmV0dXJuIHNlbWlPcGFxdWU7XG4gIH1cblxuICBpc1RyYW5zcGFyZW50KCkge1xuICAgIGNvbnN0IHNlbWlPcGFxdWUgPSAodGhpcy5vcGFjaXR5ID09PSBudWxsKTtcblxuICAgIHJldHVybiBzZW1pT3BhcXVlO1xuICB9XG5cbiAgaXNUZXJtaW5hbE5vZGUoKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgaXNOb25UZXJtaW5hbE5vZGUoKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gdHJ1ZTtcblxuICAgIHJldHVybiBub25UZXJtaW5hbE5vZGU7XG4gIH1cblxuICBnZXREZXNjZW5kYW50Tm9kZXMoZGVzY2VuZGFudE5vZGVzKSB7XG4gICAgcmV0dXJuIGRlc2NlbmRhbnROb2RlcztcbiAgfVxuXG4gIGdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGxldCBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcblxuICAgIHRoaXMuZm9yd2FyZHNTb21lQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcblxuICAgICAgaWYgKGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBsZXQgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcblxuICAgIHRoaXMuYmFja3dhcmRzU29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gICAgICBpZiAobGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0U2lnbmlmaWNhbnRUb2tlbnMoc2lnbmlmaWNhbnRUb2tlbnMgPSBbXSkge1xuICAgIHRoaXMuY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNoaWxkTm9kZS5nZXRTaWduaWZpY2FudFRva2VucyhzaWduaWZpY2FudFRva2Vucyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG4gIH1cblxuICBnZXRNdWx0aXBsaWNpdHkoKSB7XG4gICAgY29uc3QgY2hpbGROb2Rlc0xlbmd0aCA9IHRoaXMuY2hpbGROb2Rlcy5sZW5ndGgsXG4gICAgICAgICAgbXVsdGlwbGljaXR5ID0gY2hpbGROb2Rlc0xlbmd0aDsgIC8vL1xuXG4gICAgcmV0dXJuIG11bHRpcGxpY2l0eTtcbiAgfVxuXG4gIGlzU2luZ3VsYXIoKSB7XG4gICAgY29uc3QgbXVsdGlwbGljaXR5ID0gdGhpcy5nZXRNdWx0aXBsaWNpdHkoKSxcbiAgICAgICAgICBzaW5ndWxhciA9IChtdWx0aXBsaWNpdHkgPT09IDEpO1xuXG4gICAgcmV0dXJuIHNpbmd1bGFyO1xuICB9XG5cbiAgaXNJbnZhbGlkKCkge1xuICAgIGxldCBpbnZhbGlkID0gZmFsc2U7XG5cbiAgICBjb25zdCBlbXB0eSA9IHRoaXMuaXNFbXB0eSgpLFxuICAgICAgICAgIHVucHJlY2VkZW50ZWQgPSB0aGlzLmlzVW5wcmVjZWRlbnRlZCgpO1xuXG4gICAgaWYgKGVtcHR5IHx8IHVucHJlY2VkZW50ZWQpIHtcbiAgICAgIGludmFsaWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBpbnZhbGlkO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpLFxuICAgICAgICAgIGVtcHR5ID0gKG11bHRpcGxpY2l0eSA9PT0gMCk7XG5cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBpc1VucHJlY2VkZW50ZWQoKSB7XG4gICAgbGV0IHVucHJlY2VkZW50ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgY2hpbGROb2Rlc1ByZWNlZGVuY2VDb21wYXJlcyA9IHRoaXMuY29tcGFyZUNoaWxkTm9kZXNQcmVjZWRlbmNlKCk7XG5cbiAgICBpZiAoY2hpbGROb2Rlc1ByZWNlZGVuY2VDb21wYXJlcykge1xuICAgICAgdW5wcmVjZWRlbnRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB1bnByZWNlZGVudGVkO1xuICB9XG5cbiAgY29tcGFyZVByZWNlZGVuY2UocHJlY2VkZW5jZSwgZmlyc3QsIGxhc3QpIHtcbiAgICBsZXQgcHJlY2VkZW5jZUNvbXBhcmVzO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMucHJlY2VkZW5jZSA9PT0gbnVsbCkge1xuICAgICAgcHJlY2VkZW5jZUNvbXBhcmVzID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJlY2VkZW5jZSA9PT0gdHJhbnNwYXJlbnRQcmVjZWRlbmNlKSB7XG4gICAgICBwcmVjZWRlbmNlQ29tcGFyZXMgPSB0aGlzLmNoaWxkTm9kZXMuZXZlcnkoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBjaGlsZE5vZGVQcmVjZWRlbmNlQ29tcGFyZXMgPSBjaGlsZE5vZGUuY29tcGFyZVByZWNlZGVuY2UocHJlY2VkZW5jZSwgZmlyc3QsIGxhc3QpO1xuXG4gICAgICAgIGlmIChjaGlsZE5vZGVQcmVjZWRlbmNlQ29tcGFyZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZWNlZGVuY2VDb21wYXJlcyA9IHRoaXMucHJlY2VkZW5jZS5jb21wYXJlKHByZWNlZGVuY2UsIGZpcnN0LCBsYXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJlY2VkZW5jZUNvbXBhcmVzO1xuICB9XG5cbiAgY29tcGFyZUNoaWxkTm9kZXNQcmVjZWRlbmNlKCkge1xuICAgIGxldCBjaGlsZE5vZGVzUHJlY2VkZW5jZUNvbXBhcmVzID0gdHJ1ZTtcblxuICAgIGlmICgodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSAmJiAodGhpcy5wcmVjZWRlbmNlICE9PSB0cmFuc3BhcmVudFByZWNlZGVuY2UpKSB7XG4gICAgICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpLFxuICAgICAgICAgICAgbGFzdEluZGV4ID0gKG11bHRpcGxpY2l0eSAtIDEpLFxuICAgICAgICAgICAgZmlyc3RJbmRleCA9IDA7XG5cbiAgICAgIGNoaWxkTm9kZXNQcmVjZWRlbmNlQ29tcGFyZXMgPSB0aGlzLmNoaWxkTm9kZXMuZXZlcnkoKGNoaWxkTm9kZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgbGFzdCA9IChpbmRleCA9PT0gbGFzdEluZGV4KSxcbiAgICAgICAgICAgICAgZmlyc3QgPSAoaW5kZXggPT09IGZpcnN0SW5kZXgpLFxuICAgICAgICAgICAgICBjaGlsZE5vZGVQcmVjZWRlbmNlQ29tcGFyZXMgPSBjaGlsZE5vZGUuY29tcGFyZVByZWNlZGVuY2UodGhpcy5wcmVjZWRlbmNlLCBmaXJzdCwgbGFzdCk7XG5cbiAgICAgICAgaWYgKGNoaWxkTm9kZVByZWNlZGVuY2VDb21wYXJlcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGROb2Rlc1ByZWNlZGVuY2VDb21wYXJlcztcbiAgfVxuXG4gIGFzUGFyc2VUcmVlKHRva2Vucykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVQYXJzZVRyZWUgPSBOb25UZXJtaW5hbE5vZGVQYXJzZVRyZWUuZnJvbU5vblRlcm1pbmFsTm9kZUFuZFRva2Vucyhub25UZXJtaW5hbE5vZGUsIHRva2VucyksXG4gICAgICAgICAgcGFyc2VUcmVlID0gbm9uVGVybWluYWxOb2RlUGFyc2VUcmVlOyAgLy8vXG5cbiAgICByZXR1cm4gcGFyc2VUcmVlO1xuICB9XG5cbiAgbWF0Y2gobm9kZSwgZGVwdGggPSBJbmZpbml0eSwgZXhhY3RseSA9IGZhbHNlKSB7XG4gICAgbGV0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGVOb25UZXJtaW5hbE5vZGUgPSBub2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAobm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgICBpZiAodGhpcy5ydWxlTmFtZSA9PT0gbm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlT3BhY2l0eSA9IG5vblRlcm1pbmFsTm9kZS5nZXRPcGFjaXR5KCk7XG5cbiAgICAgICAgaWYgKHRoaXMub3BhY2l0eSA9PT0gbm9uVGVybWluYWxOb2RlT3BhY2l0eSkge1xuICAgICAgICAgIGNvbnN0IHByZWNlZGVuY2UgPSB0aGlzLmdldFByZWNlZGVuY2UoKSxcbiAgICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGVQcmVjZWRlbmNlID0gbm9uVGVybWluYWxOb2RlLmdldFByZWNlZGVuY2UoKTtcblxuICAgICAgICAgIGlmIChwcmVjZWRlbmNlID09PSBub25UZXJtaW5hbE5vZGVQcmVjZWRlbmNlKSB7XG4gICAgICAgICAgICBkZXB0aC0tO1xuXG4gICAgICAgICAgICBpZiAoZGVwdGggPT09IDApIHtcbiAgICAgICAgICAgICAgbWF0Y2hlcyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2godGhpcy5jaGlsZE5vZGVzLCBub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAoY2hpbGROb2RlLCBub25UZXJtaW5hbE5vZGVDaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZE5vZGVNYXRjaGVzTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlID0gY2hpbGROb2RlLm1hdGNoKG5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSwgZGVwdGgsIGV4YWN0bHkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkTm9kZU1hdGNoZXNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICByZXdyaXRlKHN0YXRlKSB7XG4gICAgY29uc3QgcmV3cml0dGVuTm9uVGVybWluYWxOb2RlID0gdGhpczsgIC8vL1xuXG4gICAgcmV0dXJuIHJld3JpdHRlbk5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JFYWNoQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNoaWxkTm9kZS5kZXN0cm95KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnBhcmVudE5vZGUgPSBudWxsO1xuXG4gICAgdGhpcy5jaGlsZE5vZGVzID0gbnVsbDtcbiAgfVxuXG4gIGNsb25lKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IENsYXNzID0gdGhpcy5jb25zdHJ1Y3RvcixcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBydWxlTmFtZSA9IHRoaXMucnVsZU5hbWUsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IGNsb25lQ2hpbGROb2Rlcyh0aGlzLmNoaWxkTm9kZXMpLFxuICAgICAgICAgIHByZWNlZGVuY2UgPSB0aGlzLnByZWNlZGVuY2UsXG4gICAgICAgICAgb3BhY2l0eSA9IHRoaXMub3BhY2l0eSxcbiAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3MocnVsZU5hbWUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHksIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBub25UZXJtaW5hbE5vZGUuc2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUoKTtcblxuICAgIHJldHVybiBub25UZXJtaW5hbE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5KENsYXNzLCBydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKG9wYWNpdHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3BhY2l0eSA9IHByZWNlZGVuY2U7IC8vL1xuXG4gICAgICBwcmVjZWRlbmNlID0gY2hpbGROb2RlczsgLy8vXG5cbiAgICAgIGNoaWxkTm9kZXMgPSBydWxlTmFtZTsgIC8vL1xuXG4gICAgICBydWxlTmFtZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBOb25UZXJtaW5hbE5vZGU7ICAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3MocnVsZU5hbWUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHksIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBub25UZXJtaW5hbE5vZGUuc2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUoKTtcblxuICAgIHJldHVybiBub25UZXJtaW5hbE5vZGU7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihOb25UZXJtaW5hbE5vZGUucHJvdG90eXBlLCBub2RlTWl4aW5zKTtcblxuZnVuY3Rpb24gY2xvbmVDaGlsZE5vZGVzKGNoaWxkTm9kZXMpIHtcbiAgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXMubWFwKChjaGlsZE5vZGUpID0+IHsgIC8vL1xuICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5jbG9uZSgpOyAgLy8vXG5cbiAgICByZXR1cm4gY2hpbGROb2RlO1xuICB9KTtcblxuICByZXR1cm4gY2hpbGROb2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJOb25UZXJtaW5hbE5vZGUiLCJtYXRjaCIsImFycmF5VXRpbGl0aWVzIiwib3BhcXVlIiwib3BhcXVlU3BlY2lhbFN5bWJvbCIsInNlbWlPcGFxdWUiLCJzZW1pT3BhcXVlU3BlY2lhbFN5bWJvbCIsInNwZWNpYWxTeW1ib2xzIiwicnVsZU5hbWUiLCJwYXJlbnROb2RlIiwiY2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJvcGFjaXR5IiwiZ2V0UnVsZU5hbWUiLCJnZXRQYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlcyIsImdldFByZWNlZGVuY2UiLCJnZXRPcGFjaXR5Iiwic2V0UnVsZU5hbWUiLCJzZXRQYXJlbnROb2RlIiwic2V0Q2hpbGROb2RlcyIsInN0YXJ0SW5kZXgiLCJkZWxldGVDb3VudCIsIkluZmluaXR5IiwiYWRkZWRDaGlsZE5vZGVzIiwic3BsaWNlQ2hpbGROb2RlcyIsInNldFByZWNlZGVuY2UiLCJzZXRPcGFjaXR5IiwiaXNPcGFxdWUiLCJpc1NlbWlPcGFxdWUiLCJpc1RyYW5zcGFyZW50IiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImdldERlc2NlbmRhbnROb2RlcyIsImRlc2NlbmRhbnROb2RlcyIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwidG9rZW5zIiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJmb3J3YXJkc1NvbWVDaGlsZE5vZGUiLCJjaGlsZE5vZGUiLCJub2RlIiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImxhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJiYWNrd2FyZHNTb21lQ2hpbGROb2RlIiwiZ2V0U2lnbmlmaWNhbnRUb2tlbnMiLCJzaWduaWZpY2FudFRva2VucyIsImZvckVhY2giLCJnZXRNdWx0aXBsaWNpdHkiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwibXVsdGlwbGljaXR5IiwiaXNTaW5ndWxhciIsInNpbmd1bGFyIiwiaXNJbnZhbGlkIiwiaW52YWxpZCIsImVtcHR5IiwiaXNFbXB0eSIsInVucHJlY2VkZW50ZWQiLCJpc1VucHJlY2VkZW50ZWQiLCJjaGlsZE5vZGVzUHJlY2VkZW5jZUNvbXBhcmVzIiwiY29tcGFyZUNoaWxkTm9kZXNQcmVjZWRlbmNlIiwiY29tcGFyZVByZWNlZGVuY2UiLCJmaXJzdCIsImxhc3QiLCJwcmVjZWRlbmNlQ29tcGFyZXMiLCJ0cmFuc3BhcmVudFByZWNlZGVuY2UiLCJldmVyeSIsImNoaWxkTm9kZVByZWNlZGVuY2VDb21wYXJlcyIsImNvbXBhcmUiLCJsYXN0SW5kZXgiLCJmaXJzdEluZGV4IiwiaW5kZXgiLCJhc1BhcnNlVHJlZSIsIm5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsIk5vblRlcm1pbmFsTm9kZVBhcnNlVHJlZSIsImZyb21Ob25UZXJtaW5hbE5vZGVBbmRUb2tlbnMiLCJwYXJzZVRyZWUiLCJkZXB0aCIsImV4YWN0bHkiLCJtYXRjaGVzIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlT3BhY2l0eSIsIm5vblRlcm1pbmFsTm9kZVByZWNlZGVuY2UiLCJub25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQ2hpbGROb2RlIiwiY2hpbGROb2RlTWF0Y2hlc05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZSIsInJld3JpdGUiLCJzdGF0ZSIsInJld3JpdHRlbk5vblRlcm1pbmFsTm9kZSIsImRlc3Ryb3kiLCJmb3JFYWNoQ2hpbGROb2RlIiwiY2xvbmUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJDbGFzcyIsImNsb25lQ2hpbGROb2RlcyIsInNldENoaWxkTm9kZXNQYXJlbnROb2RlIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwidW5kZWZpbmVkIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwibm9kZU1peGlucyIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7OzsyQkFYVTs2QkFDQTs2REFFUjt3RUFDYzs0QkFFQzs7Ozs7O0FBRXRDLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHlCQUFjLEVBQzFCLEVBQUVDLFFBQVFDLG1CQUFtQixFQUFHQyxZQUFZQyx1QkFBdUIsRUFBRSxHQUFHQywyQkFBYztBQUU3RSxNQUFNUDtJQUNuQixZQUFZUSxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLEVBQUVDLE9BQU8sQ0FBRTtRQUNqRSxJQUFJLENBQUNKLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO0lBQ2pC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
@@ -57,12 +57,8 @@ class TerminalNode {
57
57
  getContent() {
58
58
  return this.significantToken.getContent();
59
59
  }
60
- getPrecedence() {
61
- const precedence = null;
62
- return precedence;
63
- }
64
- comparePrecedence(parentRuleName, parentPrecedence) {
65
- const precedenceCompares = false;
60
+ comparePrecedence(precedence, first, last) {
61
+ const precedenceCompares = true;
66
62
  return precedenceCompares;
67
63
  }
68
64
  getFirstSignificantTokenIndex(tokens) {
@@ -207,4 +203,4 @@ class TerminalNode {
207
203
  }
208
204
  }
209
205
 
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBzZXRTaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIGlzTm9XaGl0ZXNwYWNlTm9kZSgpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlTm9kZTtcbiAgfVxuXG4gIGlzQ3V0Tm9kZSgpIHtcbiAgICBjb25zdCBjdXROb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY3V0Tm9kZTtcbiAgfVxuXG4gIGlzRXBzaWxvbk5vZGUoKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBlcHNpbG9uTm9kZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRydWU7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpOyB9XG5cbiAgZ2V0Q29udGVudCgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7IH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIGNvbnN0IHByZWNlZGVuY2UgPSBudWxsO1xuXG4gICAgcmV0dXJuIHByZWNlZGVuY2U7XG4gIH1cblxuICBjb21wYXJlUHJlY2VkZW5jZShwYXJlbnRSdWxlTmFtZSwgcGFyZW50UHJlY2VkZW5jZSkge1xuICAgIGNvbnN0IHByZWNlZGVuY2VDb21wYXJlcyA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHByZWNlZGVuY2VDb21wYXJlcztcbiAgfVxuXG4gIGdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRoaXMuZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0aGlzLmdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgbGV0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5zaWduaWZpY2FudFRva2VuICE9PSBudWxsKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZih0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VucyhzaWduaWZpY2FudFRva2VucyA9IFtdKSB7XG4gICAgaWYgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgc2lnbmlmaWNhbnRUb2tlbnMucHVzaCh0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VucztcbiAgfVxuXG4gIGdldEFuY2VzdG9yTm9kZXMoKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IFtdO1xuXG4gICAgbGV0IGFuY2VzdG9yTm9kZSA9IHRoaXMucGFyZW50Tm9kZTsgLy8vXG5cbiAgICB3aGlsZSAoYW5jZXN0b3JOb2RlICE9PSBudWxsKSB7XG4gICAgICBhbmNlc3Rvck5vZGVzLnB1c2goYW5jZXN0b3JOb2RlKTtcblxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGFuY2VzdG9yTm9kZS5nZXRQYXJlbnROb2RlKCk7XG5cbiAgICAgIGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlcztcbiAgfVxuXG4gIG1hcEFuY2VzdG9yTm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLm1hcChjYWxsYmFjayk7XG4gIH1cblxuICBzb21lQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIHJlc3VsdCA9ICEhY2FsbGJhY2soYW5jZXN0b3JOb2RlLCBpbmRleCk7IC8vL1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKGFuY2VzdG9yTm9kZSwgaW5kZXgpO1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBhbmNlc3Rvck5vZGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgYW5jZXN0b3JOb2RlID0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGFuY2VzdG9yTm9kZTtcbiAgfVxuXG4gIGV2ZXJ5QW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gISFjYWxsYmFjayhhbmNlc3Rvck5vZGUsIGluZGV4KTsgLy8vXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaWx0ZXJBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5maWx0ZXIoY2FsbGJhY2spO1xuICB9XG5cbiAgcmVkdWNlQW5jZXN0b3JOb2RlKGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5yZWR1Y2UoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSk7XG4gIH1cblxuICBmb3JFYWNoQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IHRoaXMuZ2V0QW5jZXN0b3JOb2RlcygpO1xuXG4gICAgYW5jZXN0b3JOb2Rlcy5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGdldERlc2NlbmRhbnROb2RlcyhkZXNjZW5kYW50Tm9kZXMgPSBbXSkge1xuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZXM7XG4gIH1cblxuICBzb21lRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCByZXN1bHQgPSBmYWxzZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgZGVzY2VuZGFudE5vZGUgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gZGVzY2VuZGFudE5vZGU7XG4gIH1cblxuICBldmVyeURlc2NlbmRhbnROb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZVBhcnNlVHJlZSA9IFRlcm1pbmFsTm9kZVBhcnNlVHJlZS5mcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSB0ZXJtaW5hbE5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBtYXRjaChub2RlLCBkZXB0aCA9IEluZmluaXR5LCBleGFjdGx5ID0gZmFsc2UpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gdGVybWluYWxOb2RlLmdldFNpZ25pZmljYW50VG9rZW4oKTtcblxuICAgICAgbWF0Y2hlcyA9IGV4YWN0bHkgP1xuICAgICAgICAgICAgICAgICAgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9PT0gc2lnbmlmaWNhbnRUb2tlbikgOlxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWduaWZpY2FudFRva2VuLm1hdGNoKHNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgY2xvbmUoLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgQ2xhc3MgPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSB0aGlzLnNpZ25pZmljYW50VG9rZW4sXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBudWxsO1xuICAgIHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9IG51bGw7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChDbGFzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbiA9IG51bGwsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TaWduaWZpY2FudFRva2VuKENsYXNzLCBzaWduaWZpY2FudFRva2VuLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAoc2lnbmlmaWNhbnRUb2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVGVybWluYWxOb2RlIiwic2lnbmlmaWNhbnRUb2tlbiIsInBhcmVudE5vZGUiLCJnZXRTaWduaWZpY2FudFRva2VuIiwiZ2V0UGFyZW50Tm9kZSIsInNldFNpZ25pZmljYW50VG9rZW4iLCJzZXRQYXJlbnROb2RlIiwiaXNOb1doaXRlc3BhY2VOb2RlIiwibm9XaGl0ZXNwYWNlTm9kZSIsImlzQ3V0Tm9kZSIsImN1dE5vZGUiLCJpc0Vwc2lsb25Ob2RlIiwiZXBzaWxvbk5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZ2V0VHlwZSIsImdldENvbnRlbnQiLCJnZXRQcmVjZWRlbmNlIiwicHJlY2VkZW5jZSIsImNvbXBhcmVQcmVjZWRlbmNlIiwicGFyZW50UnVsZU5hbWUiLCJwYXJlbnRQcmVjZWRlbmNlIiwicHJlY2VkZW5jZUNvbXBhcmVzIiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJ0b2tlbnMiLCJzaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRTaWduaWZpY2FudFRva2VuSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiaW5kZXhPZiIsImdldFNpZ25pZmljYW50VG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbnMiLCJwdXNoIiwiZ2V0QW5jZXN0b3JOb2RlcyIsImFuY2VzdG9yTm9kZXMiLCJhbmNlc3Rvck5vZGUiLCJtYXBBbmNlc3Rvck5vZGUiLCJjYWxsYmFjayIsIm1hcCIsInNvbWVBbmNlc3Rvck5vZGUiLCJyZXN1bHQiLCJpbmRleCIsImZpbmRBbmNlc3Rvck5vZGUiLCJ1bmRlZmluZWQiLCJldmVyeUFuY2VzdG9yTm9kZSIsImZpbHRlckFuY2VzdG9yTm9kZSIsImZpbHRlciIsInJlZHVjZUFuY2VzdG9yTm9kZSIsImluaXRpYWxWYWx1ZSIsInJlZHVjZSIsImZvckVhY2hBbmNlc3Rvck5vZGUiLCJmb3JFYWNoIiwiZ2V0RGVzY2VuZGFudE5vZGVzIiwiZGVzY2VuZGFudE5vZGVzIiwic29tZURlc2NlbmRhbnROb2RlIiwiZmluZERlc2NlbmRhbnROb2RlIiwiZGVzY2VuZGFudE5vZGUiLCJldmVyeURlc2NlbmRhbnROb2RlIiwiYXNQYXJzZVRyZWUiLCJ0ZXJtaW5hbE5vZGVQYXJzZVRyZWUiLCJUZXJtaW5hbE5vZGVQYXJzZVRyZWUiLCJmcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zIiwicGFyc2VUcmVlIiwibWF0Y2giLCJub2RlIiwiZGVwdGgiLCJJbmZpbml0eSIsImV4YWN0bHkiLCJtYXRjaGVzIiwibm9kZVRlcm1pbmFsTm9kZSIsImNsb25lIiwicmVtYWluaW5nQXJndW1lbnRzIiwiQ2xhc3MiLCJkZXN0cm95IiwiZnJvbU5vdGhpbmciLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OztxRUFGYTs7Ozs7O0FBRW5CLE1BQU1BO0lBQ25CLFlBQVlDLGdCQUFnQixFQUFFQyxVQUFVLENBQUU7UUFDeEMsSUFBSSxDQUFDRCxnQkFBZ0IsR0FBR0E7UUFDeEIsSUFB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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBzZXRTaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIGlzTm9XaGl0ZXNwYWNlTm9kZSgpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlTm9kZTtcbiAgfVxuXG4gIGlzQ3V0Tm9kZSgpIHtcbiAgICBjb25zdCBjdXROb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY3V0Tm9kZTtcbiAgfVxuXG4gIGlzRXBzaWxvbk5vZGUoKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBlcHNpbG9uTm9kZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRydWU7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpOyB9XG5cbiAgZ2V0Q29udGVudCgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7IH1cblxuICBjb21wYXJlUHJlY2VkZW5jZShwcmVjZWRlbmNlLCBmaXJzdCwgbGFzdCkge1xuICAgIGNvbnN0IHByZWNlZGVuY2VDb21wYXJlcyA9IHRydWU7XG5cbiAgICByZXR1cm4gcHJlY2VkZW5jZUNvbXBhcmVzO1xuICB9XG5cbiAgZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdGhpcy5nZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IHNpZ25pZmljYW50VG9rZW5JbmRleDsgLy8vXG5cbiAgICByZXR1cm4gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRoaXMuZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgICAgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IHNpZ25pZmljYW50VG9rZW5JbmRleDsgLy8vXG5cbiAgICByZXR1cm4gbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBsZXQgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbnVsbDtcblxuICAgIGlmICh0aGlzLnNpZ25pZmljYW50VG9rZW4gIT09IG51bGwpIHtcbiAgICAgIHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRva2Vucy5pbmRleE9mKHRoaXMuc2lnbmlmaWNhbnRUb2tlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldFNpZ25pZmljYW50VG9rZW5zKHNpZ25pZmljYW50VG9rZW5zID0gW10pIHtcbiAgICBpZiAodGhpcy5zaWduaWZpY2FudFRva2VuICE9PSBudWxsKSB7XG4gICAgICBzaWduaWZpY2FudFRva2Vucy5wdXNoKHRoaXMuc2lnbmlmaWNhbnRUb2tlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25pZmljYW50VG9rZW5zO1xuICB9XG5cbiAgZ2V0QW5jZXN0b3JOb2RlcygpIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gW107XG5cbiAgICBsZXQgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIGFuY2VzdG9yTm9kZXMucHVzaChhbmNlc3Rvck5vZGUpO1xuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzO1xuICB9XG5cbiAgbWFwQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IHRoaXMuZ2V0QW5jZXN0b3JOb2RlcygpO1xuXG4gICAgcmV0dXJuIGFuY2VzdG9yTm9kZXMubWFwKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHNvbWVBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gISFjYWxsYmFjayhhbmNlc3Rvck5vZGUsIGluZGV4KTsgLy8vXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZpbmRBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soYW5jZXN0b3JOb2RlLCBpbmRleCk7XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9yTm9kZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGFuY2VzdG9yTm9kZS5nZXRQYXJlbnROb2RlKCk7XG5cbiAgICAgIGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cblxuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBhbmNlc3Rvck5vZGUgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlO1xuICB9XG5cbiAgZXZlcnlBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0ID0gdHJ1ZTtcblxuICAgIGxldCBpbmRleCA9IDAsXG4gICAgICAgIGFuY2VzdG9yTm9kZSA9IHRoaXMucGFyZW50Tm9kZTsgLy8vXG5cbiAgICB3aGlsZSAoYW5jZXN0b3JOb2RlICE9PSBudWxsKSB7XG4gICAgICByZXN1bHQgPSAhIWNhbGxiYWNrKGFuY2VzdG9yTm9kZSwgaW5kZXgpOyAvLy9cblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZpbHRlckFuY2VzdG9yTm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLmZpbHRlcihjYWxsYmFjayk7XG4gIH1cblxuICByZWR1Y2VBbmNlc3Rvck5vZGUoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLnJlZHVjZShjYWxsYmFjaywgaW5pdGlhbFZhbHVlKTtcbiAgfVxuXG4gIGZvckVhY2hBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICBhbmNlc3Rvck5vZGVzLmZvckVhY2goY2FsbGJhY2spO1xuICB9XG5cbiAgZ2V0RGVzY2VuZGFudE5vZGVzKGRlc2NlbmRhbnROb2RlcyA9IFtdKSB7XG4gICAgcmV0dXJuIGRlc2NlbmRhbnROb2RlcztcbiAgfVxuXG4gIHNvbWVEZXNjZW5kYW50Tm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZpbmREZXNjZW5kYW50Tm9kZShjYWxsYmFjaykge1xuICAgIGxldCBkZXNjZW5kYW50Tm9kZSA9IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZTtcbiAgfVxuXG4gIGV2ZXJ5RGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0ID0gdHJ1ZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhc1BhcnNlVHJlZSh0b2tlbnMpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgdGVybWluYWxOb2RlUGFyc2VUcmVlID0gVGVybWluYWxOb2RlUGFyc2VUcmVlLmZyb21UZXJtaW5hbE5vZGVBbmRUb2tlbnModGVybWluYWxOb2RlLCB0b2tlbnMpLFxuICAgICAgICAgIHBhcnNlVHJlZSA9IHRlcm1pbmFsTm9kZVBhcnNlVHJlZTsgIC8vL1xuXG4gICAgcmV0dXJuIHBhcnNlVHJlZTtcbiAgfVxuXG4gIG1hdGNoKG5vZGUsIGRlcHRoID0gSW5maW5pdHksIGV4YWN0bHkgPSBmYWxzZSkge1xuICAgIGxldCBtYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSB0ZXJtaW5hbE5vZGUuZ2V0U2lnbmlmaWNhbnRUb2tlbigpO1xuXG4gICAgICBtYXRjaGVzID0gZXhhY3RseSA/XG4gICAgICAgICAgICAgICAgICAodGhpcy5zaWduaWZpY2FudFRva2VuID09PSBzaWduaWZpY2FudFRva2VuKSA6XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4ubWF0Y2goc2lnbmlmaWNhbnRUb2tlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBDbGFzcyA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IHRoaXMuc2lnbmlmaWNhbnRUb2tlbixcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgdGhpcy5zaWduaWZpY2FudFRva2VuID0gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhDbGFzcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gVGVybWluYWxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuID0gbnVsbCxcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVNpZ25pZmljYW50VG9rZW4oQ2xhc3MsIHNpZ25pZmljYW50VG9rZW4sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChzaWduaWZpY2FudFRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gVGVybWluYWxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJUZXJtaW5hbE5vZGUiLCJzaWduaWZpY2FudFRva2VuIiwicGFyZW50Tm9kZSIsImdldFNpZ25pZmljYW50VG9rZW4iLCJnZXRQYXJlbnROb2RlIiwic2V0U2lnbmlmaWNhbnRUb2tlbiIsInNldFBhcmVudE5vZGUiLCJpc05vV2hpdGVzcGFjZU5vZGUiLCJub1doaXRlc3BhY2VOb2RlIiwiaXNDdXROb2RlIiwiY3V0Tm9kZSIsImlzRXBzaWxvbk5vZGUiLCJlcHNpbG9uTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJnZXRUeXBlIiwiZ2V0Q29udGVudCIsImNvbXBhcmVQcmVjZWRlbmNlIiwicHJlY2VkZW5jZSIsImZpcnN0IiwibGFzdCIsInByZWNlZGVuY2VDb21wYXJlcyIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwidG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwibGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImluZGV4T2YiLCJnZXRTaWduaWZpY2FudFRva2VucyIsInNpZ25pZmljYW50VG9rZW5zIiwicHVzaCIsImdldEFuY2VzdG9yTm9kZXMiLCJhbmNlc3Rvck5vZGVzIiwiYW5jZXN0b3JOb2RlIiwibWFwQW5jZXN0b3JOb2RlIiwiY2FsbGJhY2siLCJtYXAiLCJzb21lQW5jZXN0b3JOb2RlIiwicmVzdWx0IiwiaW5kZXgiLCJmaW5kQW5jZXN0b3JOb2RlIiwidW5kZWZpbmVkIiwiZXZlcnlBbmNlc3Rvck5vZGUiLCJmaWx0ZXJBbmNlc3Rvck5vZGUiLCJmaWx0ZXIiLCJyZWR1Y2VBbmNlc3Rvck5vZGUiLCJpbml0aWFsVmFsdWUiLCJyZWR1Y2UiLCJmb3JFYWNoQW5jZXN0b3JOb2RlIiwiZm9yRWFjaCIsImdldERlc2NlbmRhbnROb2RlcyIsImRlc2NlbmRhbnROb2RlcyIsInNvbWVEZXNjZW5kYW50Tm9kZSIsImZpbmREZXNjZW5kYW50Tm9kZSIsImRlc2NlbmRhbnROb2RlIiwiZXZlcnlEZXNjZW5kYW50Tm9kZSIsImFzUGFyc2VUcmVlIiwidGVybWluYWxOb2RlUGFyc2VUcmVlIiwiVGVybWluYWxOb2RlUGFyc2VUcmVlIiwiZnJvbVRlcm1pbmFsTm9kZUFuZFRva2VucyIsInBhcnNlVHJlZSIsIm1hdGNoIiwibm9kZSIsImRlcHRoIiwiSW5maW5pdHkiLCJleGFjdGx5IiwibWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJjbG9uZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsIkNsYXNzIiwiZGVzdHJveSIsImZyb21Ob3RoaW5nIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7cUVBRmE7Ozs7OztBQUVuQixNQUFNQTtJQUNuQixZQUFZQyxnQkFBZ0IsRUFBRUMsVUFBVSxDQUFFO1FBQ3hDLElBQUksQ0FBQ0QsZ0JBQWdCLEdBQUdBO1FBQ3hCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUNGLGdCQUFnQjtJQUM5QjtJQUVBRyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsVUFBVTtJQUN4QjtJQUVBRyxvQkFBb0JK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
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  const _frame = /*#__PURE__*/ _interop_require_default(require("../../frame"));
12
12
  const _nonTerminal = /*#__PURE__*/ _interop_require_default(require("../../part/nonTerminal"));
13
- const _constants = require("../../constants");
13
+ const _precedence = require("../../precedence");
14
14
  const _partTypes = require("../../partTypes");
15
15
  function _interop_require_default(obj) {
16
16
  return obj && obj.__esModule ? obj : {
@@ -35,7 +35,7 @@ class IsolatedPartPart extends _nonTerminal.default {
35
35
  }, back);
36
36
  }
37
37
  compose(frame) {
38
- const childNodes = frame.getChildNodes(), precedence = _constants.ISOLATED_PRECEDENCE;
38
+ const childNodes = frame.getChildNodes(), precedence = _precedence.isolatedPrecedence;
39
39
  frame = _frame.default.fromChildNodesAndPrecedence(childNodes, precedence);
40
40
  return frame;
41
41
  }
@@ -49,4 +49,4 @@ class IsolatedPartPart extends _nonTerminal.default {
49
49
  }
50
50
  }
51
51
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2lzb2xhdGVkUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBJU09MQVRFRF9QUkVDRURFTkNFIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSXNvbGF0ZWRQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElzb2xhdGVkUGFydFBhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkgeyByZXR1cm4gdGhpcy5wYXJ0LmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7IH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUpO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgY29tcG9zZShmcmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgcHJlY2VkZW5jZSA9IElTT0xBVEVEX1BSRUNFREVOQ0U7XG5cbiAgICBmcmFtZSA9IEZyYW1lLmZyb21DaGlsZE5vZGVzQW5kUHJlY2VkZW5jZShjaGlsZE5vZGVzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHBhcnRTdHJpbmcgPSB0aGlzLnBhcnQuYXNTdHJpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBgKCAke3BhcnRTdHJpbmd9IClgO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydChwYXJ0KSB7XG4gICAgY29uc3QgdHlwZSA9IElzb2xhdGVkUGFydFBhcnRUeXBlLFxuICAgICAgICAgIGlzb2xhdGVkUGFydFBhcnQgPSBuZXcgSXNvbGF0ZWRQYXJ0UGFydCh0eXBlLCBwYXJ0KTtcblxuICAgIHJldHVybiBpc29sYXRlZFBhcnRQYXJ0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiSXNvbGF0ZWRQYXJ0UGFydCIsIk5vblRlcm1pbmFsUGFydCIsInR5cGUiLCJwYXJ0IiwiZ2V0UGFydCIsImlzQ29uc3VtaW5nIiwicnVsZU1hcCIsInZpc2l0ZWRSdWxlcyIsImNoZWNrRm9yQ3V0UGFydHMiLCJwYXJzZSIsImZyYW1lIiwic3RhdGUiLCJmb3J3YXJkIiwiYmFjayIsImNvbXBvc2UiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJJU09MQVRFRF9QUkVDRURFTkNFIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2Rlc0FuZFByZWNlZGVuY2UiLCJhc1N0cmluZyIsInBhcnRTdHJpbmciLCJzdHJpbmciLCJmcm9tUGFydCIsIklzb2xhdGVkUGFydFBhcnRUeXBlIiwiaXNvbGF0ZWRQYXJ0UGFydCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFxQkE7Ozs4REFOSDtvRUFDVTsyQkFFUTsyQkFDQzs7Ozs7O0FBRXRCLE1BQU1BLHlCQUF5QkMsb0JBQWU7SUFDM0QsWUFBWUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDdEIsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxZQUFZQyxPQUFPLEVBQUVDLGVBQWUsRUFBRSxFQUFFQyxtQkFBbUIsS0FBSyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNMLElBQUksQ0FBQ0UsV0FBVyxDQUFDQyxTQUFTQyxjQUFjQztJQUFtQjtJQUUzSUMsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ2pDLE9BQU8sSUFBSSxDQUFDVixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsT0FBT0MsT0FBTyxDQUFDRCxPQUFPQyxPQUFPRTtZQUNsREgsUUFBUSxJQUFJLENBQUNJLE9BQU8sQ0FBQ0o7WUFFckIsT0FBT0UsUUFBUUYsT0FBT0MsT0FBT0U7UUFDL0IsR0FBR0E7SUFDTDtJQUVBQyxRQUFRSixLQUFLLEVBQUU7UUFDYixNQUFNSyxhQUFhTCxNQUFNTSxhQUFhLElBQ2hDQyxhQUFhQyw4QkFBbUI7UUFFdENSLFFBQVFTLGNBQUssQ0FBQ0MsMkJBQTJCLENBQUNMLFlBQVlFO1FBRXRELE9BQU9QO0lBQ1Q7SUFFQVcsV0FBVztRQUNULE1BQU1DLGFBQWEsSUFBSSxDQUFDbkIsSUFBSSxDQUFDa0IsUUFBUSxJQUMvQkUsU0FBUyxDQUFDLEVBQUUsRUFBRUQsV0FBVyxFQUFFLENBQUM7UUFFbEMsT0FBT0M7SUFDVDtJQUVBLE9BQU9DLFNBQVNyQixJQUFJLEVBQUU7UUFDcEIsTUFBTUQsT0FBT3VCLCtCQUFvQixFQUMzQkMsbUJBQW1CLElBQUkxQixpQkFBaUJFLE1BQU1DO1FBRXBELE9BQU91QjtJQUNUO0FBQ0YifQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJ0L25vblRlcm1pbmFsL2lzb2xhdGVkUGFydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZyYW1lIGZyb20gXCIuLi8uLi9mcmFtZVwiO1xuaW1wb3J0IE5vblRlcm1pbmFsUGFydCBmcm9tIFwiLi4vLi4vcGFydC9ub25UZXJtaW5hbFwiO1xuXG5pbXBvcnQgeyBpc29sYXRlZFByZWNlZGVuY2UgfSBmcm9tIFwiLi4vLi4vcHJlY2VkZW5jZVwiO1xuaW1wb3J0IHsgSXNvbGF0ZWRQYXJ0UGFydFR5cGUgfSBmcm9tIFwiLi4vLi4vcGFydFR5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElzb2xhdGVkUGFydFBhcnQgZXh0ZW5kcyBOb25UZXJtaW5hbFBhcnQge1xuICBjb25zdHJ1Y3Rvcih0eXBlLCBwYXJ0KSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLnBhcnQgPSBwYXJ0O1xuICB9XG5cbiAgZ2V0UGFydCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0O1xuICB9XG5cbiAgaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzID0gW10sIGNoZWNrRm9yQ3V0UGFydHMgPSBmYWxzZSkgeyByZXR1cm4gdGhpcy5wYXJ0LmlzQ29uc3VtaW5nKHJ1bGVNYXAsIHZpc2l0ZWRSdWxlcywgY2hlY2tGb3JDdXRQYXJ0cyk7IH1cblxuICBwYXJzZShmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LnBhcnNlKGZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UoZnJhbWUpO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChmcmFtZSwgc3RhdGUsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgY29tcG9zZShmcmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgcHJlY2VkZW5jZSA9IGlzb2xhdGVkUHJlY2VkZW5jZTtcblxuICAgIGZyYW1lID0gRnJhbWUuZnJvbUNoaWxkTm9kZXNBbmRQcmVjZWRlbmNlKGNoaWxkTm9kZXMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgcGFydFN0cmluZyA9IHRoaXMucGFydC5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGAoICR7cGFydFN0cmluZ30gKWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0KHBhcnQpIHtcbiAgICBjb25zdCB0eXBlID0gSXNvbGF0ZWRQYXJ0UGFydFR5cGUsXG4gICAgICAgICAgaXNvbGF0ZWRQYXJ0UGFydCA9IG5ldyBJc29sYXRlZFBhcnRQYXJ0KHR5cGUsIHBhcnQpO1xuXG4gICAgcmV0dXJuIGlzb2xhdGVkUGFydFBhcnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJc29sYXRlZFBhcnRQYXJ0IiwiTm9uVGVybWluYWxQYXJ0IiwidHlwZSIsInBhcnQiLCJnZXRQYXJ0IiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY2hlY2tGb3JDdXRQYXJ0cyIsInBhcnNlIiwiZnJhbWUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwiY29tcG9zZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwicHJlY2VkZW5jZSIsImlzb2xhdGVkUHJlY2VkZW5jZSIsIkZyYW1lIiwiZnJvbUNoaWxkTm9kZXNBbmRQcmVjZWRlbmNlIiwiYXNTdHJpbmciLCJwYXJ0U3RyaW5nIiwic3RyaW5nIiwiZnJvbVBhcnQiLCJJc29sYXRlZFBhcnRQYXJ0VHlwZSIsImlzb2xhdGVkUGFydFBhcnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBcUJBOzs7OERBTkg7b0VBQ1U7NEJBRU87MkJBQ0U7Ozs7OztBQUV0QixNQUFNQSx5QkFBeUJDLG9CQUFlO0lBQzNELFlBQVlDLElBQUksRUFBRUMsSUFBSSxDQUFFO1FBQ3RCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUsWUFBWUMsT0FBTyxFQUFFQyxlQUFlLEVBQUUsRUFBRUMsbUJBQW1CLEtBQUssRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDTCxJQUFJLENBQUNFLFdBQVcsQ0FBQ0MsU0FBU0MsY0FBY0M7SUFBbUI7SUFFM0lDLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQ1YsSUFBSSxDQUFDTSxLQUFLLENBQUNDLE9BQU9DLE9BQU8sQ0FBQ0QsT0FBT0MsT0FBT0U7WUFDbERILFFBQVEsSUFBSSxDQUFDSSxPQUFPLENBQUNKO1lBRXJCLE9BQU9FLFFBQVFGLE9BQU9DLE9BQU9FO1FBQy9CLEdBQUdBO0lBQ0w7SUFFQUMsUUFBUUosS0FBSyxFQUFFO1FBQ2IsTUFBTUssYUFBYUwsTUFBTU0sYUFBYSxJQUNoQ0MsYUFBYUMsOEJBQWtCO1FBRXJDUixRQUFRUyxjQUFLLENBQUNDLDJCQUEyQixDQUFDTCxZQUFZRTtRQUV0RCxPQUFPUDtJQUNUO0lBRUFXLFdBQVc7UUFDVCxNQUFNQyxhQUFhLElBQUksQ0FBQ25CLElBQUksQ0FBQ2tCLFFBQVEsSUFDL0JFLFNBQVMsQ0FBQyxFQUFFLEVBQUVELFdBQVcsRUFBRSxDQUFDO1FBRWxDLE9BQU9DO0lBQ1Q7SUFFQSxPQUFPQyxTQUFTckIsSUFBSSxFQUFFO1FBQ3BCLE1BQU1ELE9BQU91QiwrQkFBb0IsRUFDM0JDLG1CQUFtQixJQUFJMUIsaUJBQWlCRSxNQUFNQztRQUVwRCxPQUFPdUI7SUFDVDtBQUNGIn0=