occam-verify-cli 1.0.448 → 1.0.457
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 +1 -5
- package/lib/context/file.js +50 -78
- package/lib/context/fragment.js +77 -0
- package/lib/context/release.js +3 -3
- package/lib/context/scoped.js +314 -0
- package/lib/context/transient.js +371 -0
- package/lib/element/assumption.js +71 -84
- package/lib/element/combinator/bracketed.js +1 -10
- package/lib/element/conclusion.js +11 -8
- package/lib/element/constructor/bracketed.js +1 -10
- package/lib/element/declaration/combinator.js +1 -2
- package/lib/element/declaration/metavariable.js +3 -3
- package/lib/element/declaration/variable.js +3 -3
- package/lib/element/deduction.js +18 -13
- package/lib/element/frame.js +40 -46
- package/lib/element/judgement.js +35 -56
- package/lib/element/metaType.js +5 -4
- package/lib/element/metavariable.js +6 -6
- package/lib/element/proof.js +4 -4
- package/lib/element/proofAssertion/premise.js +308 -0
- package/lib/element/proofAssertion/step.js +305 -0
- package/lib/element/proofAssertion/supposition.js +322 -0
- package/lib/element/proofAssertion.js +5 -9
- package/lib/element/reference.js +24 -23
- package/lib/element/rule.js +4 -4
- package/lib/element/section.js +4 -4
- package/lib/element/statement.js +2 -7
- package/lib/element/subproof.js +4 -4
- package/lib/element/substitution/frame.js +7 -7
- package/lib/element/substitution/statement.js +15 -39
- package/lib/element/substitution.js +5 -5
- package/lib/element/term.js +12 -10
- package/lib/element/topLevelAssertion/axiom.js +329 -0
- package/lib/element/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
- package/lib/element/{lemma.js → topLevelAssertion/lemma.js} +6 -6
- package/lib/element/{theorem.js → topLevelAssertion/theorem.js} +7 -7
- package/lib/element/topLevelAssertion.js +427 -0
- package/lib/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
- package/lib/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
- package/lib/element/topLevelMetaAssertion.js +289 -0
- package/lib/element/type.js +4 -4
- package/lib/element/variable.js +20 -20
- package/lib/metaTypes.js +18 -15
- package/lib/node/proofAssertion/premise.js +116 -0
- package/lib/node/proofAssertion/step.js +152 -0
- package/lib/node/proofAssertion/supposition.js +116 -0
- package/lib/node/{premise.js → proofAssertion.js} +11 -18
- package/lib/node/statement.js +2 -2
- package/lib/node/substitution/statement.js +2 -2
- package/lib/node/{axiom.js → topLevelAssertion/axiom.js} +7 -7
- package/lib/node/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
- package/lib/node/{lemma.js → topLevelAssertion/lemma.js} +7 -7
- package/lib/node/{theorem.js → topLevelAssertion/theorem.js} +7 -7
- package/lib/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +9 -9
- package/lib/node/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
- package/lib/node/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
- package/lib/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +9 -9
- package/lib/nonTerminalNodeMap.js +13 -13
- package/lib/preamble.js +10 -10
- package/lib/process/instantiate.js +6 -9
- package/lib/process/unify.js +7 -6
- package/lib/types.js +3 -3
- package/lib/utilities/bnf.js +5 -5
- package/lib/utilities/context.js +28 -0
- package/lib/utilities/element.js +101 -99
- package/lib/utilities/fragment.js +23 -0
- package/lib/utilities/instance.js +12 -34
- package/lib/utilities/json.js +3 -2
- package/lib/utilities/string.js +42 -21
- package/lib/utilities/unification.js +17 -17
- package/lib/utilities/validation.js +22 -25
- package/package.json +2 -2
- package/src/constants.js +0 -1
- package/src/context/file.js +48 -55
- package/src/context/fragment.js +38 -0
- package/src/context/release.js +4 -2
- package/src/context/{local.js → scoped.js} +8 -100
- package/src/context/{temporary.js → transient.js} +9 -131
- package/src/element/assumption.js +69 -85
- package/src/element/combinator/bracketed.js +0 -7
- package/src/element/conclusion.js +14 -10
- package/src/element/constructor/bracketed.js +0 -7
- package/src/element/declaration/combinator.js +0 -1
- package/src/element/declaration/metavariable.js +2 -2
- package/src/element/declaration/variable.js +5 -5
- package/src/element/deduction.js +22 -15
- package/src/element/frame.js +36 -48
- package/src/element/judgement.js +33 -58
- package/src/element/metaType.js +4 -4
- package/src/element/metavariable.js +8 -6
- package/src/element/proof.js +3 -3
- package/src/element/{premise.js → proofAssertion/premise.js} +23 -23
- package/src/element/{step.js → proofAssertion/step.js} +32 -40
- package/src/element/{supposition.js → proofAssertion/supposition.js} +24 -24
- package/src/element/proofAssertion.js +6 -13
- package/src/element/reference.js +23 -21
- package/src/element/rule.js +3 -3
- package/src/element/section.js +4 -4
- package/src/element/statement.js +2 -9
- package/src/element/subproof.js +3 -3
- package/src/element/substitution/frame.js +10 -13
- package/src/element/substitution/statement.js +20 -52
- package/src/element/substitution.js +3 -3
- package/src/element/term.js +10 -9
- package/src/element/{axiom.js → topLevelAssertion/axiom.js} +15 -15
- package/src/element/{conjecture.js → topLevelAssertion/conjecture.js} +4 -4
- package/src/element/{lemma.js → topLevelAssertion/lemma.js} +3 -3
- package/src/element/{theorem.js → topLevelAssertion/theorem.js} +4 -4
- package/src/element/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +9 -9
- package/src/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +4 -4
- package/src/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +4 -4
- package/src/element/{metaLemmaMetatheorem.js → topLevelMetaAssertion.js} +7 -7
- package/src/element/type.js +2 -4
- package/src/element/variable.js +17 -17
- package/src/metaTypes.js +25 -9
- package/src/node/proofAssertion/premise.js +16 -0
- package/src/node/{step.js → proofAssertion/step.js} +4 -18
- package/src/node/proofAssertion/supposition.js +16 -0
- package/src/node/proofAssertion.js +23 -0
- package/src/node/statement.js +1 -1
- package/src/node/substitution/statement.js +1 -1
- package/src/node/topLevelAssertion/axiom.js +13 -0
- package/src/node/topLevelAssertion/conjecture.js +13 -0
- package/src/node/topLevelAssertion/lemma.js +13 -0
- package/src/node/topLevelAssertion/theorem.js +13 -0
- package/src/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +1 -1
- package/src/node/topLevelMetaAssertion/metaLemma.js +13 -0
- package/src/node/topLevelMetaAssertion/metatheorem.js +13 -0
- package/src/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +1 -1
- package/src/nonTerminalNodeMap.js +12 -12
- package/src/preamble.js +9 -9
- package/src/process/instantiate.js +31 -32
- package/src/process/unify.js +6 -5
- package/src/types.js +4 -2
- package/src/utilities/bnf.js +3 -2
- package/src/utilities/context.js +20 -0
- package/src/utilities/element.js +169 -162
- package/src/utilities/fragment.js +11 -0
- package/src/utilities/instance.js +19 -42
- package/src/utilities/json.js +3 -1
- package/src/utilities/string.js +53 -28
- package/src/utilities/unification.js +16 -16
- package/src/utilities/validation.js +26 -35
- package/lib/context/local.js +0 -605
- package/lib/context/temporary.js +0 -752
- package/lib/element/axiom.js +0 -329
- package/lib/element/axiomLemmaTheoremConjecture.js +0 -427
- package/lib/element/metaLemmaMetatheorem.js +0 -289
- package/lib/element/premise.js +0 -307
- package/lib/element/step.js +0 -311
- package/lib/element/supposition.js +0 -320
- package/lib/node/step.js +0 -166
- package/lib/node/supposition.js +0 -130
- package/src/node/axiom.js +0 -13
- package/src/node/conjecture.js +0 -13
- package/src/node/lemma.js +0 -13
- package/src/node/metaLemma.js +0 -13
- package/src/node/metatheorem.js +0 -13
- package/src/node/premise.js +0 -30
- package/src/node/supposition.js +0 -30
- package/src/node/theorem.js +0 -13
package/lib/preamble.js
CHANGED
|
@@ -5,15 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
var _type = /*#__PURE__*/ _interop_require_default(require("./element/type"));
|
|
6
6
|
var _term = /*#__PURE__*/ _interop_require_default(require("./element/term"));
|
|
7
7
|
var _rule = /*#__PURE__*/ _interop_require_default(require("./element/rule"));
|
|
8
|
-
var _step = /*#__PURE__*/ _interop_require_default(require("./element/step"));
|
|
8
|
+
var _step = /*#__PURE__*/ _interop_require_default(require("./element/proofAssertion/step"));
|
|
9
9
|
var _label = /*#__PURE__*/ _interop_require_default(require("./element/label"));
|
|
10
|
-
var _axiom = /*#__PURE__*/ _interop_require_default(require("./element/axiom"));
|
|
11
|
-
var _lemma = /*#__PURE__*/ _interop_require_default(require("./element/lemma"));
|
|
10
|
+
var _axiom = /*#__PURE__*/ _interop_require_default(require("./element/topLevelAssertion/axiom"));
|
|
11
|
+
var _lemma = /*#__PURE__*/ _interop_require_default(require("./element/topLevelAssertion/lemma"));
|
|
12
12
|
var _frame = /*#__PURE__*/ _interop_require_default(require("./element/frame"));
|
|
13
13
|
var _proof = /*#__PURE__*/ _interop_require_default(require("./element/proof"));
|
|
14
14
|
var _error = /*#__PURE__*/ _interop_require_default(require("./element/error"));
|
|
15
|
-
var _premise = /*#__PURE__*/ _interop_require_default(require("./element/premise"));
|
|
16
|
-
var _theorem = /*#__PURE__*/ _interop_require_default(require("./element/theorem"));
|
|
15
|
+
var _premise = /*#__PURE__*/ _interop_require_default(require("./element/proofAssertion/premise"));
|
|
16
|
+
var _theorem = /*#__PURE__*/ _interop_require_default(require("./element/topLevelAssertion/theorem"));
|
|
17
17
|
var _section = /*#__PURE__*/ _interop_require_default(require("./element/section"));
|
|
18
18
|
var _equality = /*#__PURE__*/ _interop_require_default(require("./element/equality"));
|
|
19
19
|
var _metaType = /*#__PURE__*/ _interop_require_default(require("./element/metaType"));
|
|
@@ -24,19 +24,19 @@ var _parameter = /*#__PURE__*/ _interop_require_default(require("./element/param
|
|
|
24
24
|
var _reference = /*#__PURE__*/ _interop_require_default(require("./element/reference"));
|
|
25
25
|
var _statement = /*#__PURE__*/ _interop_require_default(require("./element/statement"));
|
|
26
26
|
var _judgement = /*#__PURE__*/ _interop_require_default(require("./element/judgement"));
|
|
27
|
-
var _metaLemma = /*#__PURE__*/ _interop_require_default(require("./element/metaLemma"));
|
|
27
|
+
var _metaLemma = /*#__PURE__*/ _interop_require_default(require("./element/topLevelMetaAssertion/metaLemma"));
|
|
28
28
|
var _deduction = /*#__PURE__*/ _interop_require_default(require("./element/deduction"));
|
|
29
29
|
var _signature = /*#__PURE__*/ _interop_require_default(require("./element/signature"));
|
|
30
30
|
var _typePrefix = /*#__PURE__*/ _interop_require_default(require("./element/typePrefix"));
|
|
31
|
-
var _conjecture = /*#__PURE__*/ _interop_require_default(require("./element/conjecture"));
|
|
31
|
+
var _conjecture = /*#__PURE__*/ _interop_require_default(require("./element/topLevelAssertion/conjecture"));
|
|
32
32
|
var _conclusion = /*#__PURE__*/ _interop_require_default(require("./element/conclusion"));
|
|
33
33
|
var _derivation = /*#__PURE__*/ _interop_require_default(require("./element/derivation"));
|
|
34
34
|
var _hypothesis = /*#__PURE__*/ _interop_require_default(require("./element/hypothesis"));
|
|
35
35
|
var _assumption = /*#__PURE__*/ _interop_require_default(require("./element/assumption"));
|
|
36
36
|
var _combinator = /*#__PURE__*/ _interop_require_default(require("./element/combinator"));
|
|
37
37
|
var _constructor = /*#__PURE__*/ _interop_require_default(require("./element/constructor"));
|
|
38
|
-
var _supposition = /*#__PURE__*/ _interop_require_default(require("./element/supposition"));
|
|
39
|
-
var _metatheorem = /*#__PURE__*/ _interop_require_default(require("./element/metatheorem"));
|
|
38
|
+
var _supposition = /*#__PURE__*/ _interop_require_default(require("./element/proofAssertion/supposition"));
|
|
39
|
+
var _metatheorem = /*#__PURE__*/ _interop_require_default(require("./element/topLevelMetaAssertion/metatheorem"));
|
|
40
40
|
var _equivalence = /*#__PURE__*/ _interop_require_default(require("./element/equivalence"));
|
|
41
41
|
var _equivalences = /*#__PURE__*/ _interop_require_default(require("./element/equivalences"));
|
|
42
42
|
var _metavariable = /*#__PURE__*/ _interop_require_default(require("./element/metavariable"));
|
|
@@ -70,4 +70,4 @@ function _interop_require_default(obj) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVhbWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4vZWxlbWVudC90eXBlXCI7XG5pbXBvcnQgVGVybSBmcm9tIFwiLi9lbGVtZW50L3Rlcm1cIjtcbmltcG9ydCBSdWxlIGZyb20gXCIuL2VsZW1lbnQvcnVsZVwiO1xuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZWxlbWVudC9wcm9vZkFzc2VydGlvbi9zdGVwXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZWxlbWVudC9sYWJlbFwiO1xuaW1wb3J0IEF4aW9tIGZyb20gXCIuL2VsZW1lbnQvdG9wTGV2ZWxBc3NlcnRpb24vYXhpb21cIjtcbmltcG9ydCBMZW1tYSBmcm9tIFwiLi9lbGVtZW50L3RvcExldmVsQXNzZXJ0aW9uL2xlbW1hXCI7XG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZWxlbWVudC9mcmFtZVwiO1xuaW1wb3J0IFByb29mIGZyb20gXCIuL2VsZW1lbnQvcHJvb2ZcIjtcbmltcG9ydCBFcnJvciBmcm9tIFwiLi9lbGVtZW50L2Vycm9yXCI7XG5pbXBvcnQgUHJlbWlzZSBmcm9tIFwiLi9lbGVtZW50L3Byb29mQXNzZXJ0aW9uL3ByZW1pc2VcIjtcbmltcG9ydCBUaGVvcmVtIGZyb20gXCIuL2VsZW1lbnQvdG9wTGV2ZWxBc3NlcnRpb24vdGhlb3JlbVwiO1xuaW1wb3J0IFNlY3Rpb24gZnJvbSBcIi4vZWxlbWVudC9zZWN0aW9uXCI7XG5pbXBvcnQgRXF1YWxpdHkgZnJvbSBcIi4vZWxlbWVudC9lcXVhbGl0eVwiO1xuaW1wb3J0IE1ldGFUeXBlIGZyb20gXCIuL2VsZW1lbnQvbWV0YVR5cGVcIjtcbmltcG9ydCBTdWJwcm9vZiBmcm9tIFwiLi9lbGVtZW50L3N1YnByb29mXCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4vZWxlbWVudC92YXJpYWJsZVwiO1xuaW1wb3J0IFByb3BlcnR5IGZyb20gXCIuL2VsZW1lbnQvcHJvcGVydHlcIjtcbmltcG9ydCBQYXJhbWV0ZXIgZnJvbSBcIi4vZWxlbWVudC9wYXJhbWV0ZXJcIjtcbmltcG9ydCBSZWZlcmVuY2UgZnJvbSBcIi4vZWxlbWVudC9yZWZlcmVuY2VcIjtcbmltcG9ydCBTdGF0ZW1lbnQgZnJvbSBcIi4vZWxlbWVudC9zdGF0ZW1lbnRcIjtcbmltcG9ydCBKdWRnZW1lbnQgZnJvbSBcIi4vZWxlbWVudC9qdWRnZW1lbnRcIjtcbmltcG9ydCBNZXRhTGVtbWEgZnJvbSBcIi4vZWxlbWVudC90b3BMZXZlbE1ldGFBc3NlcnRpb24vbWV0YUxlbW1hXCI7XG5pbXBvcnQgRGVkdWN0aW9uIGZyb20gXCIuL2VsZW1lbnQvZGVkdWN0aW9uXCI7XG5pbXBvcnQgU2lnbmF0dXJlIGZyb20gXCIuL2VsZW1lbnQvc2lnbmF0dXJlXCI7XG5pbXBvcnQgVHlwZVByZWZpeCBmcm9tIFwiLi9lbGVtZW50L3R5cGVQcmVmaXhcIjtcbmltcG9ydCBDb25qZWN0dXJlIGZyb20gXCIuL2VsZW1lbnQvdG9wTGV2ZWxBc3NlcnRpb24vY29uamVjdHVyZVwiO1xuaW1wb3J0IENvbmNsdXNpb24gZnJvbSBcIi4vZWxlbWVudC9jb25jbHVzaW9uXCI7XG5pbXBvcnQgRGVyaXZhdGlvbiBmcm9tIFwiLi9lbGVtZW50L2Rlcml2YXRpb25cIjtcbmltcG9ydCBIeXBvdGhlc2lzIGZyb20gXCIuL2VsZW1lbnQvaHlwb3RoZXNpc1wiO1xuaW1wb3J0IEFzc3VtcHRpb24gZnJvbSBcIi4vZWxlbWVudC9hc3N1bXB0aW9uXCI7XG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi9lbGVtZW50L2NvbWJpbmF0b3JcIjtcbmltcG9ydCBDb25zdHJ1Y3RvciBmcm9tIFwiLi9lbGVtZW50L2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgU3VwcG9zaXRpb24gZnJvbSBcIi4vZWxlbWVudC9wcm9vZkFzc2VydGlvbi9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IE1ldGF0aGVvcmVtIGZyb20gXCIuL2VsZW1lbnQvdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uL21ldGF0aGVvcmVtXCI7XG5pbXBvcnQgRXF1aXZhbGVuY2UgZnJvbSBcIi4vZWxlbWVudC9lcXVpdmFsZW5jZVwiO1xuaW1wb3J0IEVxdWl2YWxlbmNlcyBmcm9tIFwiLi9lbGVtZW50L2VxdWl2YWxlbmNlc1wiO1xuaW1wb3J0IE1ldGF2YXJpYWJsZSBmcm9tIFwiLi9lbGVtZW50L21ldGF2YXJpYWJsZVwiO1xuaW1wb3J0IFN1YnN0aXR1dGlvbnMgZnJvbSBcIi4vZWxlbWVudC9zdWJzdGl0dXRpb25zXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9lbGVtZW50L3Byb2NlZHVyZUNhbGxcIjtcbmltcG9ydCBTdWJEZXJpdmF0aW9uIGZyb20gXCIuL2VsZW1lbnQvc3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IFR5cGVBc3NlcnRpb24gZnJvbSBcIi4vZWxlbWVudC9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IFByb3BlcnR5UmVsYXRpb24gZnJvbSBcIi4vZWxlbWVudC9wcm9wZXJ0eVJlbGF0aW9uXCI7XG5pbXBvcnQgRGVmaW5lZEFzc2VydGlvbiBmcm9tIFwiLi9lbGVtZW50L2Fzc2VydGlvbi9kZWZpbmVkXCI7XG5pbXBvcnQgVGVybVN1YnN0aXR1dGlvbiBmcm9tIFwiLi9lbGVtZW50L3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5pbXBvcnQgRnJhbWVTdWJzdGl0dXRpb24gZnJvbSBcIi4vZWxlbWVudC9zdWJzdGl0dXRpb24vZnJhbWVcIjtcbmltcG9ydCBTdWJwcm9vZkFzc2VydGlvbiBmcm9tIFwiLi9lbGVtZW50L2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IFByb3BlcnR5QXNzZXJ0aW9uIGZyb20gXCIuL2VsZW1lbnQvYXNzZXJ0aW9uL3Byb3BlcnR5XCI7XG5pbXBvcnQgUHJvY2VkdXJlUmVmZXJlbmNlIGZyb20gXCIuL2VsZW1lbnQvcHJvY2VkdXJlUmVmZXJlbmNlXCI7XG5pbXBvcnQgQ29udGFpbmVkQXNzZXJ0aW9uIGZyb20gXCIuL2VsZW1lbnQvYXNzZXJ0aW9uL2NvbnRhaW5lZFwiO1xuaW1wb3J0IFNhdGlzZmllc0Fzc2VydGlvbiBmcm9tIFwiLi9lbGVtZW50L2Fzc2VydGlvbi9zYXRpc2ZpZXNcIjtcbmltcG9ydCBWYXJpYWJsZURlY2xhcmF0aW9uIGZyb20gXCIuL2VsZW1lbnQvZGVjbGFyYXRpb24vdmFyaWFibGVcIjtcbmltcG9ydCBCcmFja2V0ZWRDb21iaW5hdG9yIGZyb20gXCIuL2VsZW1lbnQvY29tYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCBCcmFja2V0ZWRDb25zdHJ1Y3RvciBmcm9tIFwiLi9lbGVtZW50L2NvbnN0cnVjdG9yL2JyYWNrZXRlZFwiO1xuaW1wb3J0IFNpbXBsZVR5cGVEZWNsYXJhdGlvbiBmcm9tIFwiLi9lbGVtZW50L2RlY2xhcmF0aW9uL3NpbXBsZVR5cGVcIjtcbmltcG9ydCBTdGF0ZW1lbnRTdWJzdGl0dXRpb24gZnJvbSBcIi4vZWxlbWVudC9zdWJzdGl0dXRpb24vc3RhdGVtZW50XCI7XG5pbXBvcnQgUmVmZXJlbmNlU3Vic3RpdHV0aW9uIGZyb20gXCIuL2VsZW1lbnQvc3Vic3RpdHV0aW9uL3JlZmVyZW5jZVwiO1xuaW1wb3J0IENvbWJpbmF0b3JEZWNsYXJhdGlvbiBmcm9tIFwiLi9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbWJpbmF0b3JcIjtcbmltcG9ydCBUeXBlUHJlZml4RGVjbGFyYXRpb24gZnJvbSBcIi4vZWxlbWVudC9kZWNsYXJhdGlvbi90eXBlUHJlZml4XCI7XG5pbXBvcnQgQ29uc3RydWN0b3JEZWNsYXJhdGlvbiBmcm9tIFwiLi9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgQ29tcGxleFR5cGVEZWNsYXJhdGlvbiBmcm9tIFwiLi9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbXBsZXhUeXBlXCI7XG5pbXBvcnQgTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24gZnJvbSBcIi4vZWxlbWVudC9kZWNsYXJhdGlvbi9tZXRhdmFyaWFibGVcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OzsyREFFaUI7MkRBQ0E7MkRBQ0E7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NERBQ0E7NERBQ0E7NERBQ0E7OERBQ0U7OERBQ0E7OERBQ0E7K0RBQ0M7K0RBQ0E7K0RBQ0E7K0RBQ0E7K0RBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7aUVBQ0M7aUVBQ0E7aUVBQ0E7aUVBQ0E7aUVBQ0E7aUVBQ0E7aUVBQ0E7a0VBQ0M7a0VBQ0E7a0VBQ0E7a0VBQ0E7bUVBQ0M7bUVBQ0E7b0VBQ0M7b0VBQ0E7b0VBQ0E7NERBQ0E7dUVBQ0c7OERBQ0E7NERBQ0E7NkRBQ0M7Z0VBQ0E7Z0VBQ0E7eUVBQ0M7Z0VBQ0E7Z0VBQ0E7Z0VBQ0M7Z0VBQ0E7aUVBQ0M7aUVBQ0M7aUVBQ0E7aUVBQ0E7a0VBQ0E7a0VBQ0E7bUVBQ0M7a0VBQ0E7b0VBQ0MifQ==
|
|
@@ -36,9 +36,6 @@ _export(exports, {
|
|
|
36
36
|
get instantiateStatementSubstitution () {
|
|
37
37
|
return instantiateStatementSubstitution;
|
|
38
38
|
},
|
|
39
|
-
get instantiateStep () {
|
|
40
|
-
return instantiateStep;
|
|
41
|
-
},
|
|
42
39
|
get instantiateTerm () {
|
|
43
40
|
return instantiateTerm;
|
|
44
41
|
},
|
|
@@ -50,13 +47,11 @@ _export(exports, {
|
|
|
50
47
|
}
|
|
51
48
|
});
|
|
52
49
|
var _bnf = require("../utilities/bnf");
|
|
53
|
-
var
|
|
50
|
+
var _ruleNames = require("../ruleNames");
|
|
51
|
+
var termPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_RULE_NAME), variablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.VARIABLE_RULE_NAME), referencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_RULE_NAME), statementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_RULE_NAME), combinatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.COMBINATOR_RULE_NAME), constructorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRUCTOR_RULE_NAME), equivalencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUIVALENCE_RULE_NAME), metavariablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.METAVARIABLE_RULE_NAME), termSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), frameSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), statementSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME), referenceSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME);
|
|
54
52
|
function instantiateTerm(string, context) {
|
|
55
53
|
return instantiate(termPlaceholderRule, string, context);
|
|
56
54
|
}
|
|
57
|
-
function instantiateStep(string, context) {
|
|
58
|
-
return instantiate(stepPlaceholderRule, string, context);
|
|
59
|
-
}
|
|
60
55
|
function instantiateVariable(string, context) {
|
|
61
56
|
return instantiate(variablePlaceholderRule, string, context);
|
|
62
57
|
}
|
|
@@ -92,7 +87,9 @@ function instantiateReferenceSubstitution(string, context) {
|
|
|
92
87
|
}
|
|
93
88
|
function instantiate(placeholderRule, string, context) {
|
|
94
89
|
var node;
|
|
95
|
-
var lexer = context.getLexer(), parser = context.getParser(), content = "".concat(string, "\n"), tokens = lexer.tokenise(content)
|
|
90
|
+
var lexer = context.getLexer(), parser = context.getParser(), content = "".concat(string, "\n"), tokens = lexer.tokenise(content);
|
|
91
|
+
context.setTokens(tokens);
|
|
92
|
+
var startRule = placeholderRule; ///
|
|
96
93
|
node = parser.parse(tokens, startRule);
|
|
97
94
|
var nonTerminalNode = node; ///
|
|
98
95
|
nonTerminalNode.someChildNode(function(childNode) {
|
|
@@ -102,4 +99,4 @@ function instantiate(placeholderRule, string, context) {
|
|
|
102
99
|
return node;
|
|
103
100
|
}
|
|
104
101
|
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlRnJvbUJORiB9IGZyb20gXCIuLi91dGlsaXRpZXMvYm5mXCI7XG5cbmNvbnN0IHRlcm1QbGFjZWhvbGRlckJORiA9IGAgXyA6Oj0gdGVybS4uLiA8RU5EX09GX0xJTkU+IDsgYCxcbiAgICAgIHN0ZXBQbGFjZWhvbGRlckJORiA9IGAgXyA6Oj0gc3RlcC4uLiA8RU5EX09GX0xJTkU+IDsgYCxcbiAgICAgIHZhcmlhYmxlUGxhY2Vob2xkZXJCTkYgPSBgIF8gOjo9IHZhcmlhYmxlLi4uIDxFTkRfT0ZfTElORT4gOyBgLFxuICAgICAgcmVmZXJlbmNlUGxhY2Vob2xkZXJCTkYgPSBgIF8gOjo9IHJlZmVyZW5jZS4uLiA8RU5EX09GX0xJTkU+IDsgYCxcbiAgICAgIHN0YXRlbWVudFBsYWNlaG9sZGVyQk5GID0gYCBfIDo6PSBzdGF0ZW1lbnQuLi4gPEVORF9PRl9MSU5FPiA7IGAsXG4gICAgICBjb21iaW5hdG9yUGxhY2Vob2xkZXJCTkYgPSBgIF8gOjo9IGNvbWJpbmF0b3IuLi4gPEVORF9PRl9MSU5FPiA7IGAsXG4gICAgICBjb25zdHJ1Y3RvclBsYWNlaG9sZGVyQk5GID0gYCBfIDo6PSBjb25zdHJ1Y3Rvci4uLiA8RU5EX09GX0xJTkU+IDsgYCxcbiAgICAgIGVxdWl2YWxlbmNlUGxhY2Vob2xkZXJCTkYgPSBgIF8gOjo9IGVxdWl2YWxlbmNlLi4uIDxFTkRfT0ZfTElORT4gOyBgLFxuICAgICAgbWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJCTkYgPSBgIF8gOjo9IG1ldGF2YXJpYWJsZS4uLiA8RU5EX09GX0xJTkU+IDsgYCxcbiAgICAgIHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlckJORiA9IGAgXyA6Oj0gdGVybVN1YnN0aXR1dGlvbi4uLiA8RU5EX09GX0xJTkU+IDsgYCxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJCTkYgPSBgIF8gOjo9IGZyYW1lU3Vic3RpdHV0aW9uLi4uIDxFTkRfT0ZfTElORT4gOyBgLFxuICAgICAgc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJCTkYgPSBgIF8gOjo9IHN0YXRlbWVudFN1YnN0aXR1dGlvbi4uLiA8RU5EX09GX0xJTkU+IDsgYCxcbiAgICAgIHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyQk5GID0gYCBfIDo6PSByZWZlcmVuY2VTdWJzdGl0dXRpb24uLi4gPEVORF9PRl9MSU5FPiA7IGAsXG4gICAgICB0ZXJtUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21CTkYodGVybVBsYWNlaG9sZGVyQk5GKSxcbiAgICAgIHN0ZXBQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbUJORihzdGVwUGxhY2Vob2xkZXJCTkYpLFxuICAgICAgdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbUJORih2YXJpYWJsZVBsYWNlaG9sZGVyQk5GKSxcbiAgICAgIHJlZmVyZW5jZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tQk5GKHJlZmVyZW5jZVBsYWNlaG9sZGVyQk5GKSxcbiAgICAgIHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tQk5GKHN0YXRlbWVudFBsYWNlaG9sZGVyQk5GKSxcbiAgICAgIGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbUJORihjb21iaW5hdG9yUGxhY2Vob2xkZXJCTkYpLFxuICAgICAgY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbUJORihjb25zdHJ1Y3RvclBsYWNlaG9sZGVyQk5GKSxcbiAgICAgIGVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21CTkYoZXF1aXZhbGVuY2VQbGFjZWhvbGRlckJORiksXG4gICAgICBtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbUJORihtZXRhdmFyaWFibGVQbGFjZWhvbGRlckJORiksXG4gICAgICB0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21CTkYodGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyQk5GKSxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21CTkYoZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlckJORiksXG4gICAgICBzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbUJORihzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlckJORiksXG4gICAgICByZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbUJORihyZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlckJORik7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm0oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0ZXAoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdGVwUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodmFyaWFibGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb21iaW5hdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJ1Y3RvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTWV0YXZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVJlZmVyZW5jZVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZShwbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCkge1xuICBsZXQgbm9kZTtcblxuICBjb25zdCBsZXhlciA9IGNvbnRleHQuZ2V0TGV4ZXIoKSxcbiAgICAgICAgcGFyc2VyID0gY29udGV4dC5nZXRQYXJzZXIoKSxcbiAgICAgICAgY29udGVudCA9IGAke3N0cmluZ31cbmAsXG4gICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICBzdGFydFJ1bGUgPSBwbGFjZWhvbGRlclJ1bGU7ICAvLy9cblxuICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucywgc3RhcnRSdWxlKTtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICBub25UZXJtaW5hbE5vZGUuc29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVDb21iaW5hdG9yIiwiaW5zdGFudGlhdGVDb25zdHJ1Y3RvciIsImluc3RhbnRpYXRlRXF1aXZhbGVuY2UiLCJpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVNZXRhdmFyaWFibGUiLCJpbnN0YW50aWF0ZVJlZmVyZW5jZSIsImluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVTdGF0ZW1lbnQiLCJpbnN0YW50aWF0ZVN0YXRlbWVudFN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlU3RlcCIsImluc3RhbnRpYXRlVGVybSIsImluc3RhbnRpYXRlVGVybVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlVmFyaWFibGUiLCJ0ZXJtUGxhY2Vob2xkZXJCTkYiLCJzdGVwUGxhY2Vob2xkZXJCTkYiLCJ2YXJpYWJsZVBsYWNlaG9sZGVyQk5GIiwicmVmZXJlbmNlUGxhY2Vob2xkZXJCTkYiLCJzdGF0ZW1lbnRQbGFjZWhvbGRlckJORiIsImNvbWJpbmF0b3JQbGFjZWhvbGRlckJORiIsImNvbnN0cnVjdG9yUGxhY2Vob2xkZXJCTkYiLCJlcXVpdmFsZW5jZVBsYWNlaG9sZGVyQk5GIiwibWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJCTkYiLCJ0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJCTkYiLCJmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyQk5GIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJCTkYiLCJyZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlckJORiIsInRlcm1QbGFjZWhvbGRlclJ1bGUiLCJydWxlRnJvbUJORiIsInN0ZXBQbGFjZWhvbGRlclJ1bGUiLCJ2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSIsInJlZmVyZW5jZVBsYWNlaG9sZGVyUnVsZSIsInN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSIsImNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUiLCJjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSIsImVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlIiwibWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwidGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsImZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwicmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwic3RyaW5nIiwiY29udGV4dCIsImluc3RhbnRpYXRlIiwicGxhY2Vob2xkZXJSdWxlIiwibm9kZSIsImxleGVyIiwiZ2V0TGV4ZXIiLCJwYXJzZXIiLCJnZXRQYXJzZXIiLCJjb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJzdGFydFJ1bGUiLCJwYXJzZSIsIm5vblRlcm1pbmFsTm9kZSIsInNvbWVDaGlsZE5vZGUiLCJjaGlsZE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXlDZ0JBO2VBQUFBOztRQUVBQztlQUFBQTs7UUFFQUM7ZUFBQUE7O1FBTUFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBa0JBQztlQUFBQTs7UUFoQkFDO2VBQUFBOztRQWNBQztlQUFBQTs7UUFwQkFDO2VBQUFBOztRQUZBQztlQUFBQTs7UUFrQkFDO2VBQUFBOztRQWRBQztlQUFBQTs7O21CQWpDWTtBQUU1QixJQUFNQyxxQkFBcUIsbUNBQ3JCQyxxQkFBcUIsbUNBQ3JCQyx5QkFBeUIsdUNBQ3pCQywwQkFBMEIsd0NBQzFCQywwQkFBMEIsd0NBQzFCQywyQkFBMkIseUNBQzNCQyw0QkFBNEIsMENBQzVCQyw0QkFBNEIsMENBQzVCQyw2QkFBNkIsMkNBQzdCQyxpQ0FBaUMsK0NBQ2pDQyxrQ0FBa0MsZ0RBQ2xDQyxzQ0FBc0Msb0RBQ3RDQyxzQ0FBc0Msb0RBQ3RDQyxzQkFBc0JDLElBQUFBLGdCQUFXLEVBQUNkLHFCQUNsQ2Usc0JBQXNCRCxJQUFBQSxnQkFBVyxFQUFDYixxQkFDbENlLDBCQUEwQkYsSUFBQUEsZ0JBQVcsRUFBQ1oseUJBQ3RDZSwyQkFBMkJILElBQUFBLGdCQUFXLEVBQUNYLDBCQUN2Q2UsMkJBQTJCSixJQUFBQSxnQkFBVyxFQUFDViwwQkFDdkNlLDRCQUE0QkwsSUFBQUEsZ0JBQVcsRUFBQ1QsMkJBQ3hDZSw2QkFBNkJOLElBQUFBLGdC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
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlRnJvbVJ1bGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ibmZcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgdGVybVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVEVSTV9SVUxFX05BTUUpLFxuICAgICAgdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICByZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFJFRkVSRU5DRV9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfUlVMRV9OQU1FKSxcbiAgICAgIGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTUJJTkFUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05TVFJVQ1RPUl9SVUxFX05BTUUpLFxuICAgICAgZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEVRVUlWQUxFTkNFX1JVTEVfTkFNRSksXG4gICAgICBtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKE1FVEFWQVJJQUJMRV9SVUxFX05BTUUpLFxuICAgICAgdGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgcmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm0oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodmFyaWFibGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb21iaW5hdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJ1Y3RvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTWV0YXZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVJlZmVyZW5jZVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZShwbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCkge1xuICBsZXQgbm9kZTtcblxuICBjb25zdCBsZXhlciA9IGNvbnRleHQuZ2V0TGV4ZXIoKSxcbiAgICAgICAgcGFyc2VyID0gY29udGV4dC5nZXRQYXJzZXIoKSxcbiAgICAgICAgY29udGVudCA9IGAke3N0cmluZ31cbmAsXG4gICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gIGNvbnRleHQuc2V0VG9rZW5zKHRva2Vucyk7XG5cbiAgY29uc3Qgc3RhcnRSdWxlID0gcGxhY2Vob2xkZXJSdWxlOyAgLy8vXG5cbiAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSk7XG5cbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgLy8vXG5cbiAgbm9uVGVybWluYWxOb2RlLnNvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgIG5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuXG4gIHJldHVybiBub2RlO1xufVxuIl0sIm5hbWVzIjpbImluc3RhbnRpYXRlQ29tYmluYXRvciIsImluc3RhbnRpYXRlQ29uc3RydWN0b3IiLCJpbnN0YW50aWF0ZUVxdWl2YWxlbmNlIiwiaW5zdGFudGlhdGVGcmFtZVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlTWV0YXZhcmlhYmxlIiwiaW5zdGFudGlhdGVSZWZlcmVuY2UiLCJpbnN0YW50aWF0ZVJlZmVyZW5jZVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlU3RhdGVtZW50IiwiaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVRlcm0iLCJpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVZhcmlhYmxlIiwidGVybVBsYWNlaG9sZGVyUnVsZSIsInJ1bGVGcm9tUnVsZU5hbWUiLCJURVJNX1JVTEVfTkFNRSIsInZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwicmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsInN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsImVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlIiwiRVFVSVZBTEVOQ0VfUlVMRV9OQU1FIiwibWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsInRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwic3RyaW5nIiwiY29udGV4dCIsImluc3RhbnRpYXRlIiwicGxhY2Vob2xkZXJSdWxlIiwibm9kZSIsImxleGVyIiwiZ2V0TGV4ZXIiLCJwYXJzZXIiLCJnZXRQYXJzZXIiLCJjb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJzZXRUb2tlbnMiLCJzdGFydFJ1bGUiLCJwYXJzZSIsIm5vblRlcm1pbmFsTm9kZSIsInNvbWVDaGlsZE5vZGUiLCJjaGlsZE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXFDZ0JBO2VBQUFBOztRQUVBQztlQUFBQTs7UUFFQUM7ZUFBQUE7O1FBTUFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBa0JBQztlQUFBQTs7UUFoQkFDO2VBQUFBOztRQWNBQztlQUFBQTs7UUFwQkFDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBZEFDO2VBQUFBOzs7bUJBN0JpQjt5QkFZZ0I7QUFFakQsSUFBTUMsc0JBQXNCQyxJQUFBQSxxQkFBZ0IsRUFBQ0MseUJBQWMsR0FDckRDLDBCQUEwQkYsSUFBQUEscUJBQWdCLEVBQUNHLDZCQUFrQixHQUM3REMsMkJBQTJCSixJQUFBQSxxQkFBZ0IsRUFBQ0ssOEJBQW1CLEdBQy9EQywyQkFBMkJOLElBQUFBLHFCQUFnQixFQUFDTyw4QkFBbUIsR0FDL0RDLDRCQUE0QlIsSUFBQUEscUJBQWdCLEVBQUNTLCtCQUFvQixHQUNqRUMsNkJBQTZCVixJQUFBQSxxQkFBZ0IsRUFBQ1csZ0NBQXFCLEdBQ25FQyw2QkFBNkJaLElBQUFBLHFCQUFnQixFQUFDYSxnQ0FBcUIsR0FDbkVDLDhCQUE4QmQsSUFBQUEscUJBQWdCLEVBQUNlLGlDQUFzQixHQUNyRUMsa0NBQWtDaEIsSUFBQUEscUJBQWdCLEVBQUNpQixzQ0FBMkIsR0FDOUVDLG1DQUFtQ2xCLElBQUFBLHFCQUFnQixFQUFDbUIsdUNBQTRCLEdBQ2hGQyx1Q0FBdUNwQixJQUFBQSxxQkFBZ0IsRUFBQ3FCLDJDQUFnQyxHQUN4RkMsdUNBQXVDdEIsSUFBQUEscUJBQWdCLEVBQUN1QiwyQ0FBZ0M7QUFFdkYsU0FBUzNCLGdCQUFnQjRCLE1BQU0sRUFBRUMsT0FBTztJQUFJLE9BQU9DLFlBQVkzQixxQkFBcUJ5QixRQUFRQztBQUFVO0FBRXRHLFNBQVMzQixvQkFBb0IwQixNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZeEIseUJBQXlCc0IsUUFBUUM7QUFBVTtBQUU5RyxTQUFTakMscUJBQXFCZ0MsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWXRCLDBCQUEwQm9CLFFBQVFDO0FBQVU7QUFFaEgsU0FBUy9CLHFCQUFxQjhCLE1BQU0sRUFBRUMsT0FBTztJQUFJLE9BQU9DLFlBQVlwQiwwQkFBMEJrQixRQUFRQztBQUFVO0FBRWhILFNBQVN0QyxzQkFBc0JxQyxNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZbEIsMkJBQTJCZ0IsUUFBUUM7QUFBVTtBQUVsSCxTQUFTckMsdUJBQXVCb0MsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWWhCLDRCQUE0QmMsUUFBUUM7QUFBVTtBQUVwSCxTQUFTcEMsdUJBQXVCbUMsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWWQsNEJBQTRCWSxRQUFRQztBQUFVO0FBRXBILFNBQVNsQyx3QkFBd0JpQyxNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZWiw2QkFBNkJVLFFBQVFDO0FBQVU7QUFFdEgsU0FBUzVCLDRCQUE0QjJCLE1BQU0sRUFBRUMsT0FBTztJQUFJLE9BQU9DLFlBQVlWLGlDQUFpQ1EsUUFBUUM7QUFBVTtBQUU5SCxTQUFTbkMsNkJBQTZCa0MsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWVIsa0NBQWtDTSxRQUFRQztBQUFVO0FBRWhJLFNBQVM5QixpQ0FBaUM2QixNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZTixzQ0FBc0NJLFFBQVFDO0FBQVU7QUFFeEksU0FBU2hDLGlDQUFpQytCLE1BQU0sRUFBRUMsT0FBTztJQUFJLE9BQU9DLFlBQVlKLHNDQUFzQ0UsUUFBUUM7QUFBVTtBQUUvSSxTQUFTQyxZQUFZQyxlQUFlLEVBQUVILE1BQU0sRUFBRUMsT0FBTztJQUNuRCxJQUFJRztJQUVKLElBQU1DLFFBQVFKLFFBQVFLLFFBQVEsSUFDeEJDLFNBQVNOLFFBQVFPLFNBQVMsSUFDMUJDLFVBQVUsQUFBQyxHQUFTLE9BQVBULFFBQU8sT0FFcEJVLFNBQVNMLE1BQU1NLFFBQVEsQ0FBQ0Y7SUFFOUJSLFFBQVFXLFNBQVMsQ0FBQ0Y7SUFFbEIsSUFBTUcsWUFBWVYsaUJBQWtCLEdBQUc7SUFFdkNDLE9BQU9HLE9BQU9PLEtBQUssQ0FBQ0osUUFBUUc7SUFFNUIsSUFBTUUsa0JBQWtCWCxNQUFNLEdBQUc7SUFFakNXLGdCQUFnQkMsYUFBYSxDQUFDLFNBQUNDO1FBQzdCYixPQUFPYSxXQUFXLEdBQUc7UUFFckIsT0FBTztJQUNUO0lBRUEsT0FBT2I7QUFDVCJ9
|
package/lib/process/unify.js
CHANGED
|
@@ -32,6 +32,7 @@ _export(exports, {
|
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
var _query = require("../utilities/query");
|
|
35
|
+
var _metaTypes = require("../metaTypes");
|
|
35
36
|
var _element = require("../utilities/element");
|
|
36
37
|
var _pass = require("../utilities/pass");
|
|
37
38
|
function _array_like_to_array(arr, len) {
|
|
@@ -435,7 +436,7 @@ _define_property(CombinatorPass, "maps", [
|
|
|
435
436
|
var metaTypeNode = generalMetaTypeNode, statementNode = specificStatementNode; ///
|
|
436
437
|
var context;
|
|
437
438
|
context = generalContext; ///
|
|
438
|
-
var metaTypeName = metaTypeNode.getMetaTypeName(), metaType =
|
|
439
|
+
var metaTypeName = metaTypeNode.getMetaTypeName(), metaType = (0, _metaTypes.findMetaTypeByMetaTypeName)(metaTypeName);
|
|
439
440
|
context = specificContext; ///
|
|
440
441
|
var statement = (0, _element.statementFromStatementNode)(statementNode, context), statementValidatesGivenType = statement.validateGivenMetaType(metaType, assignments, stated, context);
|
|
441
442
|
if (statementValidatesGivenType) {
|
|
@@ -452,7 +453,7 @@ _define_property(CombinatorPass, "maps", [
|
|
|
452
453
|
var metaTypeNode = generalMetaTypeNode, frameNode = specificFrameNode; ///
|
|
453
454
|
var context;
|
|
454
455
|
context = generalContext; ///
|
|
455
|
-
var metaTypeName = metaTypeNode.getMetaTypeName(), metaType =
|
|
456
|
+
var metaTypeName = metaTypeNode.getMetaTypeName(), metaType = (0, _metaTypes.findMetaTypeByMetaTypeName)(metaTypeName);
|
|
456
457
|
context = specificContext; ///
|
|
457
458
|
var frame = (0, _element.frameFromFrameNode)(frameNode, context), frameValidatesGivenMetaType = frame.validateGivenMetaType(metaType, assignments, stated, context);
|
|
458
459
|
if (frameValidatesGivenMetaType) {
|
|
@@ -472,7 +473,7 @@ _define_property(CombinatorPass, "maps", [
|
|
|
472
473
|
var type = context.findTypeByNominalTypeName(nominalTypeName);
|
|
473
474
|
if (type !== null) {
|
|
474
475
|
context = specificContext; ///
|
|
475
|
-
var term = (0, _element.termFromTermNode)(termNode, context), termValidatesGivenType = term.validateGivenType(type,
|
|
476
|
+
var term = (0, _element.termFromTermNode)(termNode, context), termValidatesGivenType = term.validateGivenType(type, context);
|
|
476
477
|
if (termValidatesGivenType) {
|
|
477
478
|
success = true;
|
|
478
479
|
}
|
|
@@ -501,7 +502,7 @@ _define_property(ConstructorPass, "maps", [
|
|
|
501
502
|
var type = context.findTypeByNominalTypeName(nominalTypeName);
|
|
502
503
|
if (type !== null) {
|
|
503
504
|
context = specificContext; ///
|
|
504
|
-
var term = (0, _element.termFromTermNode)(termNode, context), termValidatesGivenType = term.validateGivenType(type,
|
|
505
|
+
var term = (0, _element.termFromTermNode)(termNode, context), termValidatesGivenType = term.validateGivenType(type, context);
|
|
505
506
|
if (termValidatesGivenType) {
|
|
506
507
|
success = true;
|
|
507
508
|
}
|
|
@@ -524,7 +525,7 @@ _define_property(MetavariablePass, "maps", [
|
|
|
524
525
|
specificNodeQuery: termNodeQuery,
|
|
525
526
|
run: function(generalTypeNode, specificTermNode, generalContext, specificContext) {
|
|
526
527
|
var success = false;
|
|
527
|
-
var typeNode = generalTypeNode, termNode = specificTermNode, nominalTypeName = typeNode.getNominalTypeName(), type = generalContext.findTypeByNominalTypeName(nominalTypeName), context = specificContext, term = context.findTermByTermNode(termNode), termValidatesGivenType = term.validateGivenType(type,
|
|
528
|
+
var typeNode = generalTypeNode, termNode = specificTermNode, nominalTypeName = typeNode.getNominalTypeName(), type = generalContext.findTypeByNominalTypeName(nominalTypeName), context = specificContext, term = context.findTermByTermNode(termNode), termValidatesGivenType = term.validateGivenType(type, context);
|
|
528
529
|
if (termValidatesGivenType) {
|
|
529
530
|
success = true;
|
|
530
531
|
}
|
|
@@ -617,4 +618,4 @@ function unifyMetavariableIntrinsically(generalMetavariable, specificMetavariabl
|
|
|
617
618
|
return metavariableUnifiesIntrinsically;
|
|
618
619
|
}
|
|
619
620
|
|
|
620
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3VuaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB0ZXJtRnJvbVRlcm1Ob2RlLCBmcmFtZUZyb21GcmFtZU5vZGUsIHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyB0ZXJtaW5hbE5vZGVNYXBGcm9tTm9kZXMsIGFyZVRlcm1pbmFsTm9kZU1hcHNFcXVhbCwgaXNMYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvcGFzc1wiO1xuXG5jb25zdCBub25UZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi8qXCIpO1xuXG5jb25zdCB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVcIiksXG4gICAgICB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm1cIiksXG4gICAgICBmcmFtZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9mcmFtZVwiKSxcbiAgICAgIG1ldGFUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFUeXBlXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudFwiKSxcbiAgICAgIHRlcm1WYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvbWV0YXZhcmlhYmxlIVwiKSxcbiAgICAgIGFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXNzdW1wdGlvbi9tZXRhdmFyaWFibGUhXCIpLFxuICAgICAgZnJhbWVBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lL2Fzc3VtcHRpb24hL21ldGF2YXJpYWJsZSFcIik7XG5cbmNsYXNzIFBhc3Mge1xuICBydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHN1Y2Nlc3M7XG5cbiAgICBjb25zdCB2aXNpdGVkID0gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHN1Y2Nlc3MgPSB2aXNpdGVkOyAgLy8vXG5cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfVxuXG4gIGRlc2NlbmQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZ2VuZXJhbENoaWxkTm9kZXNMZW5ndGggPSBnZW5lcmFsQ2hpbGROb2Rlcy5sZW5ndGgsXG4gICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGVzTGVuZ3RoID0gc3BlY2lmaWNDaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCA9PT0gc3BlY2lmaWNDaGlsZE5vZGVzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBzcGVjaWZpY1Rlcm1pbmFsTm9kZU1hcCA9IHRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcyhzcGVjaWZpY0NoaWxkTm9kZXMpLFxuICAgICAgICAgICAgZ2VuZXJhbFRlcm1pbmFsTm9kZU1hcCA9IHRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcyhnZW5lcmFsQ2hpbGROb2RlcyksXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVNYXBzRXF1YWwgPSBhcmVUZXJtaW5hbE5vZGVNYXBzRXF1YWwoZ2VuZXJhbFRlcm1pbmFsTm9kZU1hcCwgc3BlY2lmaWNUZXJtaW5hbE5vZGVNYXApO1xuXG4gICAgICBpZiAodGVybWluYWxOb2RlTWFwc0VxdWFsKSB7XG4gICAgICAgIGNvbnN0IGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uID0gaXNMYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbihyZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgIGlmIChsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbikge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgICAgICAgICBkZXNjZW5kZWRBaGVhZCA9IHRoaXMuZGVzY2VuZEFoZWFkKGluZGV4LCBnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgICBpZiAoZGVzY2VuZGVkQWhlYWQpIHtcbiAgICAgICAgICAgIGRlc2NlbmRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHZpc2l0ZWQgPSBnZW5lcmFsQ2hpbGROb2Rlcy5ldmVyeSgoZ2VuZXJhbENoaWxkTm9kZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNwZWNpZmljQ2hpbGROb2RlID0gc3BlY2lmaWNDaGlsZE5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbENoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgICB2aXNpdGVkID0gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgaWYgKHZpc2l0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICAgICAgZGVzY2VuZGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY2VuZGVkO1xuICB9XG5cbiAgZGVzY2VuZEFoZWFkKGluZGV4LCBnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgZGVzY2VuZGVkQWhlYWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlc2NlbmRBaGVhZCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgZ2VuZXJhbENoaWxkTm9kZXNMZW5ndGggPSBnZW5lcmFsQ2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAoaW5kZXggPT09IGdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoKSB7XG4gICAgICBkZXNjZW5kZWRBaGVhZCA9IGRlc2NlbmRBaGVhZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBnZW5lcmFsQ2hpbGROb2RlID0gZ2VuZXJhbENoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgICAgICAgICAgcmVtYWluaW5nQXJndW1lbnRzLnB1c2goZGVzY2VuZEFoZWFkKTsgLy8vXG5cbiAgICAgICAgICAgICAgY29uc3QgYWhlYWRJbmRleCA9IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY2VuZGVkQWhlYWQgPSB0aGlzLmRlc2NlbmRBaGVhZChhaGVhZEluZGV4LCBnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgICAgICAgIHJldHVybiBkZXNjZW5kZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICBkZXNjZW5kZWRBaGVhZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NlbmRlZEFoZWFkO1xuICB9XG5cbiAgdmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKGdlbmVyYWxOb2RlVGVybWluYWxOb2RlICYmIHNwZWNpZmljTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgZ2VuZXJhbFRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY1Rlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZTsgIC8vL1xuXG4gICAgICB2aXNpdGVkID0gdGhpcy52aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9IGVsc2UgaWYgKGdlbmVyYWxOb2RlTm9uVGVybWluYWxOb2RlICYmIHNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZTsgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgdmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgeyAvLy9cbiAgICBsZXQgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24gPSBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKHJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBpZiAobGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24pIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRBaGVhZCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgIGRlc2NlbmRlZEFoZWFkID0gZGVzY2VuZEFoZWFkKCk7XG5cbiAgICAgIGlmIChkZXNjZW5kQWhlYWQpIHtcbiAgICAgICAgdmlzaXRlZCA9IGRlc2NlbmRlZEFoZWFkOyAgLy8vXG4gICAgICB9XG5cbiAgICAgIHJlbWFpbmluZ0FyZ3VtZW50cy5wdXNoKGRlc2NlbmRBaGVhZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZpc2l0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgdmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpID0+IHtcbiAgICAgICAgICBsZXQgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgICAgICAgICBpZiAoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID09PSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgICAgZ2VuZXJhbENoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgICAgZGVzY2VuZGVkID0gdGhpcy5kZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgICAgIGlmIChkZXNjZW5kZWQpIHtcbiAgICAgICAgICAgICAgdmlzaXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZpc2l0ZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG5cbiAgICBtYXBzLnNvbWUoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgeyBnZW5lcmFsTm9kZVF1ZXJ5LCBzcGVjaWZpY05vZGVRdWVyeSwgcnVuIH0gPSBtYXA7XG5cbiAgICAgIGNvbnN0IGdlbmVyYWxOb2RlID0gZ2VuZXJhbE5vZGVRdWVyeShnZW5lcmFsTm9uVGVybWluYWxOb2RlKSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNOb2RlUXVlcnkoc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUpOyAgLy8vXG5cbiAgICAgIGlmICgoZ2VuZXJhbE5vZGUgIT09IG51bGwpICYmIChzcGVjaWZpY05vZGUgIT09IG51bGwpKSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3MgID0gcnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgdmlzaXRlZCA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG59XG5cbmNsYXNzIE1ldGFMZXZlbFBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogYXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBhc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbEFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY0Fzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgbGV0IGNvbnRleHQsXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlO1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZTsgIC8vL1xuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOb2RlLmdldE1ldGF2YXJpYWJsZU5hbWUoKSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlID0gY29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gc3BlY2lmaWNBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gY29udGV4dC5maW5kUmVmZXJlbmNlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgICByZWZlcmVuY2VVbmlmaWVzID0gbWV0YXZhcmlhYmxlLnVuaWZ5UmVmZXJlbmNlKHJlZmVyZW5jZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHJlZmVyZW5jZVVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxTdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBsZXQgY29udGV4dCxcbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGU7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTmFtZSgpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBjb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGVQYXJlbnROb2RlID0gbWV0YXZhcmlhYmxlTm9kZS5nZXRQYXJlbnROb2RlKCk7XG5cbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVQYXJlbnROb2RlOyAvLy9cblxuICAgICAgICBjb25zdCBmcmFtZVN1YnN0aXR1dGlvbk5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldEZyYW1lU3Vic3RpdHV0aW9uTm9kZSgpLFxuICAgICAgICAgICAgICB0ZXJtU3Vic3RpdHV0aW9uTm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0VGVybVN1YnN0aXR1dGlvbk5vZGUoKSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uTm9kZSA9IChmcmFtZVN1YnN0aXR1dGlvbk5vZGUgfHwgdGVybVN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gPSAoc3Vic3RpdHV0aW9uTm9kZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5U3Vic3RpdHV0aW9uTm9kZShzdWJzdGl0dXRpb25Ob2RlKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7IC8vL1xuXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGU7ICAvLy9cblxuICAgICAgICBjb25zdCBzdGF0ZW1lbnQgPSBjb250ZXh0LmZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSBtZXRhdmFyaWFibGUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IGZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBmcmFtZU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxGcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY0ZyYW1lTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGZyYW1lTm9kZSA9IHNwZWNpZmljRnJhbWVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxGcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOb2RlLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IGNvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgZnJhbWUgPSBjb250ZXh0LmZpbmRGcmFtZUJ5RnJhbWVOb2RlKGZyYW1lTm9kZSksXG4gICAgICAgICAgICAgIGZyYW1lVW5pZmllcyA9IG1ldGF2YXJpYWJsZS51bmlmeUZyYW1lKGZyYW1lLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICBpZiAoZnJhbWVVbmlmaWVzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGUsIHNwZWNpZmljVGVybU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlSWRlbnRpZmllciA9IHZhcmlhYmxlTm9kZS5nZXRWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCB0ZXJtID0gY29udGV4dC5maW5kVGVybUJ5VGVybU5vZGUodGVybU5vZGUpLFxuICAgICAgICAgICAgICB0ZXJtVW5pZmllcyA9IHZhcmlhYmxlLnVuaWZ5VGVybSh0ZXJtLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICBpZiAodGVybVVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY2xhc3MgQ29tYmluYXRvclBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbWV0YVR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbE1ldGFUeXBlTm9kZSwgc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgbWV0YVR5cGVOb2RlID0gZ2VuZXJhbE1ldGFUeXBlTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGU7IC8vL1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgbWV0YVR5cGVOYW1lID0gbWV0YVR5cGVOb2RlLmdldE1ldGFUeXBlTmFtZSgpLFxuICAgICAgICAgICAgICBtZXRhVHlwZSA9IGNvbnRleHQuZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZhbGlkYXRlc0dpdmVuVHlwZSA9IHN0YXRlbWVudC52YWxpZGF0ZUdpdmVuTWV0YVR5cGUobWV0YVR5cGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNHaXZlblR5cGUpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbWV0YVR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogZnJhbWVOb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsTWV0YVR5cGVOb2RlLCBzcGVjaWZpY0ZyYW1lTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG1ldGFUeXBlTm9kZSA9IGdlbmVyYWxNZXRhVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBzcGVjaWZpY0ZyYW1lTm9kZTsgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5vZGUuZ2V0TWV0YVR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGFUeXBlID0gY29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCBmcmFtZSA9IGZyYW1lRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBmcmFtZVZhbGlkYXRlc0dpdmVuTWV0YVR5cGUgPSBmcmFtZS52YWxpZGF0ZUdpdmVuTWV0YVR5cGUobWV0YVR5cGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChmcmFtZVZhbGlkYXRlc0dpdmVuTWV0YVR5cGUpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFR5cGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBnZW5lcmFsVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKTtcblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICB0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlID0gdGVybS52YWxpZGF0ZUdpdmVuVHlwZSh0eXBlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICAgIGlmICh0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlKSB7XG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNsYXNzIENvbnN0cnVjdG9yUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsVHlwZU5vZGUsIHNwZWNpZmljVGVybU5vZGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB0eXBlTm9kZSA9IGdlbmVyYWxUeXBlTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHRlcm1Ob2RlID0gc3BlY2lmaWNUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgICAgIG5vbWluYWxUeXBlTmFtZSA9IHR5cGVOb2RlLmdldE5vbWluYWxUeXBlTmFtZSgpO1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgICAgY29uc3QgdGVybSA9IHRlcm1Gcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIHRlcm1WYWxpZGF0ZXNHaXZlblR5cGUgPSB0ZXJtLnZhbGlkYXRlR2l2ZW5UeXBlKHR5cGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHRlcm1WYWxpZGF0ZXNHaXZlblR5cGUpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY2xhc3MgTWV0YXZhcmlhYmxlUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsVHlwZU5vZGUsIHNwZWNpZmljVGVybU5vZGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB0eXBlTm9kZSA9IGdlbmVyYWxUeXBlTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHRlcm1Ob2RlID0gc3BlY2lmaWNUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgICAgIG5vbWluYWxUeXBlTmFtZSA9IHR5cGVOb2RlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgICAgICB0eXBlID0gZ2VuZXJhbENvbnRleHQuZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpLFxuICAgICAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAvLy9cbiAgICAgICAgICAgICAgdGVybSA9IGNvbnRleHQuZmluZFRlcm1CeVRlcm1Ob2RlKHRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgdGVybVZhbGlkYXRlc0dpdmVuVHlwZSA9IHRlcm0udmFsaWRhdGVHaXZlblR5cGUodHlwZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHRlcm1WYWxpZGF0ZXNHaXZlblR5cGUpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY2xhc3MgSW50cmluc2ljTGV2ZWxQYXNzIGV4dGVuZHMgUGFzcyB7XG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGUsIHNwZWNpZmljVGVybU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlSWRlbnRpZmllciA9IHZhcmlhYmxlTm9kZS5nZXRWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCB0ZXJtID0gY29udGV4dC5maW5kVGVybUJ5VGVybU5vZGUodGVybU5vZGUpLFxuICAgICAgICAgICAgICB0ZXJtVW5pZmllcyA9IHZhcmlhYmxlLnVuaWZ5VGVybSh0ZXJtLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICBpZiAodGVybVVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgbWV0YUxldmVsUGFzcyA9IG5ldyBNZXRhTGV2ZWxQYXNzKCksXG4gICAgICBjb21iaW5hdG9yUGFzcyA9IG5ldyBDb21iaW5hdG9yUGFzcygpLFxuICAgICAgY29uc3RydWN0b3JQYXNzID0gbmV3IENvbnN0cnVjdG9yUGFzcygpLFxuICAgICAgbWV0YXZhcmlhYmxlUGFzcyA9IG5ldyBNZXRhdmFyaWFibGVQYXNzKCksXG4gICAgICBpbnRyaW5zaWNMZXZlbFBhc3MgPSBuZXcgSW50cmluc2ljTGV2ZWxQYXNzKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudChnZW5lcmFsU3RhdGVtZW50LCBzcGVjaWZpY1N0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBzdWNjZXNzID0gbWV0YUxldmVsUGFzcy5ydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdWJzdGl0dXRpb24oZ2VuZXJhbFN1YnN0aXR1dGlvbiwgc3BlY2lmaWNTdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN1YnN0aXR1dGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICBjb25zdCBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUsICAvLy9cbiAgICAgICAgc3VjY2VzcyA9IG1ldGFMZXZlbFBhc3MucnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgc3Vic3RpdHV0aW9uVW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uVW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlKGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVzID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gbWV0YXZhcmlhYmxlUGFzcy5ydW4oZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICBtZXRhdmFyaWFibGVVbmlmaWVzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGNvbnN0cnVjdG9yLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybSA9IGNvbnN0cnVjdG9yLmdldFRlcm0oKSxcbiAgICAgICAgY29uc3RydWN0b3JUZXJtTm9kZSA9IGNvbnN0cnVjdG9yVGVybS5nZXROb2RlKCksXG4gICAgICAgIHN1Y2Nlc3MgPSBjb25zdHJ1Y3RvclBhc3MucnVuKGNvbnN0cnVjdG9yVGVybU5vZGUsIHRlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50SW50cmluc2ljYWxseShnZW5lcmFsU3RhdGVtZW50LCBzcGVjaWZpY1N0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllc0ludHJpbnNpY2FsbHkgPSBmYWxzZTtcblxuICBjb25zdCBnZW5lcmFsU3RhdGVtZW50Tm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzdWNjZXNzID0gaW50cmluc2ljTGV2ZWxQYXNzLnJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHN0YXRlbWVudFVuaWZpZXNJbnRyaW5zaWNhbGx5ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzSW50cmluc2ljYWxseTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3IgPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudCA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvclN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN1Y2Nlc3MgPSBjb21iaW5hdG9yUGFzcy5ydW4oY29tYmluYXRvclN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkoZ2VuZXJhbE1ldGF2YXJpYWJsZSwgc3BlY2lmaWNNZXRhdmFyaWFibGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5ID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgc3VjY2VzcyA9IGludHJpbnNpY0xldmVsUGFzcy5ydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICBtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHk7XG59XG4iXSwibmFtZXMiOlsidW5pZnlNZXRhdmFyaWFibGUiLCJ1bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudCIsInVuaWZ5U3RhdGVtZW50SW50cmluc2ljYWxseSIsInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3IiLCJ1bmlmeVN1YnN0aXR1dGlvbiIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInRlcm1Ob2RlUXVlcnkiLCJmcmFtZU5vZGVRdWVyeSIsIm1ldGFUeXBlTm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidGVybVZhcmlhYmxlTm9kZVF1ZXJ5Iiwic3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwiYXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsIlBhc3MiLCJydW4iLCJnZW5lcmFsTm9kZSIsInNwZWNpZmljTm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJ2aXNpdGVkIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImdlbmVyYWxDaGlsZE5vZGVzIiwic3BlY2lmaWNDaGlsZE5vZGVzIiwiZGVzY2VuZGVkIiwiZ2VuZXJhbENoaWxkTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJzcGVjaWZpY0NoaWxkTm9kZXNMZW5ndGgiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZU1hcCIsInRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcyIsImdlbmVyYWxUZXJtaW5hbE5vZGVNYXAiLCJ0ZXJtaW5hbE5vZGVNYXBzRXF1YWwiLCJhcmVUZXJtaW5hbE5vZGVNYXBzRXF1YWwiLCJsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbiIsImlzTGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24iLCJpbmRleCIsImRlc2NlbmRlZEFoZWFkIiwiZGVzY2VuZEFoZWFkIiwiZXZlcnkiLCJnZW5lcmFsQ2hpbGROb2RlIiwic3BlY2lmaWNDaGlsZE5vZGUiLCJwb3AiLCJwdXNoIiwiYWhlYWRJbmRleCIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsIm1hcHMiLCJnZW5lcmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJzb21lIiwibWFwIiwiTWV0YUxldmVsUGFzcyIsImdlbmVyYWxBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUiLCJzdWJzdGl0dXRpb25zIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJjb250ZXh0IiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJnZXRNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsInJlZmVyZW5jZSIsImZpbmRSZWZlcmVuY2VCeU1ldGF2YXJpYWJsZU5vZGUiLCJyZWZlcmVuY2VVbmlmaWVzIiwidW5pZnlSZWZlcmVuY2UiLCJnZW5lcmFsU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVOb2RlUGFyZW50Tm9kZSIsImdldFBhcmVudE5vZGUiLCJmcmFtZVN1YnN0aXR1dGlvbk5vZGUiLCJnZXRGcmFtZVN1YnN0aXR1dGlvbk5vZGUiLCJ0ZXJtU3Vic3RpdHV0aW9uTm9kZSIsImdldFRlcm1TdWJzdGl0dXRpb25Ob2RlIiwic3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbiIsImZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUiLCJzdGF0ZW1lbnQiLCJmaW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VW5pZmllcyIsImdlbmVyYWxGcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlIiwic3BlY2lmaWNGcmFtZU5vZGUiLCJmcmFtZU5vZGUiLCJmcmFtZSIsImZpbmRGcmFtZUJ5RnJhbWVOb2RlIiwiZnJhbWVVbmlmaWVzIiwidW5pZnlGcmFtZSIsImdlbmVyYWxUZXJtVmFyaWFibGVOb2RlIiwic3BlY2lmaWNUZXJtTm9kZSIsInRlcm1Ob2RlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVJZGVudGlmaWVyIiwiZ2V0VmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllciIsInRlcm0iLCJmaW5kVGVybUJ5VGVybU5vZGUiLCJ0ZXJtVW5pZmllcyIsInVuaWZ5VGVybSIsIkNvbWJpbmF0b3JQYXNzIiwiZ2VuZXJhbE1ldGFUeXBlTm9kZSIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwibWV0YVR5cGVOb2RlIiwibWV0YVR5cGVOYW1lIiwiZ2V0TWV0YVR5cGVOYW1lIiwibWV0YVR5cGUiLCJmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZSIsInN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VmFsaWRhdGVzR2l2ZW5UeXBlIiwidmFsaWRhdGVHaXZlbk1ldGFUeXBlIiwiZnJhbWVGcm9tRnJhbWVOb2RlIiwiZnJhbWVWYWxpZGF0ZXNHaXZlbk1ldGFUeXBlIiwiZ2VuZXJhbFR5cGVOb2RlIiwidHlwZU5vZGUiLCJub21pbmFsVHlwZU5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJ0eXBlIiwiZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZSIsInRlcm1Gcm9tVGVybU5vZGUiLCJ0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlIiwidmFsaWRhdGVHaXZlblR5cGUiLCJDb25zdHJ1Y3RvclBhc3MiLCJNZXRhdmFyaWFibGVQYXNzIiwiSW50cmluc2ljTGV2ZWxQYXNzIiwibWV0YUxldmVsUGFzcyIsImNvbWJpbmF0b3JQYXNzIiwiY29uc3RydWN0b3JQYXNzIiwibWV0YXZhcmlhYmxlUGFzcyIsImludHJpbnNpY0xldmVsUGFzcyIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsImdlbmVyYWxTdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsImdlbmVyYWxTdWJzdGl0dXRpb24iLCJzcGVjaWZpY1N1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblVuaWZpZXMiLCJnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSIsInNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSIsImdlbmVyYWxNZXRhdmFyaWFibGUiLCJzcGVjaWZpY01ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVVuaWZpZXMiLCJnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSIsImNvbnN0cnVjdG9yIiwidGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvclRlcm0iLCJnZXRUZXJtIiwiY29uc3RydWN0b3JUZXJtTm9kZSIsInN0YXRlbWVudFVuaWZpZXNJbnRyaW5zaWNhbGx5IiwiY29tYmluYXRvciIsInN0YXRlbWVudFVuaWZpZXNXaXRoQ29tYmluYXRvciIsImNvbWJpbmF0b3JTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsIm1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF5aUJnQkE7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUE1RkFDO2VBQUFBOztRQTZEQUM7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUE3REFDO2VBQUFBOztRQThCQUM7ZUFBQUE7OztxQkFyakJVO3VCQUN1RDtvQkFDbUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEcsSUFBTUMsdUJBQXVCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXZDLElBQU1DLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyxVQUMxQkUsZ0JBQWdCRixJQUFBQSxnQkFBUyxFQUFDLFVBQzFCRyxpQkFBaUJILElBQUFBLGdCQUFTLEVBQUMsV0FDM0JJLG9CQUFvQkosSUFBQUEsZ0JBQVMsRUFBQyxjQUM5QksscUJBQXFCTCxJQUFBQSxnQkFBUyxFQUFDLGVBQy9CTSx3QkFBd0JOLElBQUFBLGdCQUFTLEVBQUMsb0JBQ2xDTyxpQ0FBaUNQLElBQUFBLGdCQUFTLEVBQUMsNkJBQzNDUSxrQ0FBa0NSLElBQUFBLGdCQUFTLEVBQUMsOEJBQzVDUyx1Q0FBdUNULElBQUFBLGdCQUFTLEVBQUM7QUFFdkQsSUFB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
|
|
621
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3VuaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZSB9IGZyb20gXCIuLi9tZXRhVHlwZXNcIjtcbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIGZyYW1lRnJvbUZyYW1lTm9kZSwgc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IHRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcywgYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsLCBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wYXNzXCI7XG5cbmNvbnN0IG5vblRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLypcIik7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZVwiKSxcbiAgICAgIHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKSxcbiAgICAgIGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lXCIpLFxuICAgICAgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YVR5cGVcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50XCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpLFxuICAgICAgYXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hc3N1bXB0aW9uL21ldGF2YXJpYWJsZSFcIiksXG4gICAgICBmcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWUvYXNzdW1wdGlvbiEvbWV0YXZhcmlhYmxlIVwiKTtcblxuY2xhc3MgUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgc3VjY2VzcztcblxuICAgIGNvbnN0IHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgc3VjY2VzcyA9IHZpc2l0ZWQ7ICAvLy9cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgZGVzY2VuZGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCA9IGdlbmVyYWxDaGlsZE5vZGVzLmxlbmd0aCxcbiAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXNMZW5ndGggPSBzcGVjaWZpY0NoaWxkTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoID09PSBzcGVjaWZpY0NoaWxkTm9kZXNMZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNwZWNpZmljVGVybWluYWxOb2RlTWFwID0gdGVybWluYWxOb2RlTWFwRnJvbU5vZGVzKHNwZWNpZmljQ2hpbGROb2RlcyksXG4gICAgICAgICAgICBnZW5lcmFsVGVybWluYWxOb2RlTWFwID0gdGVybWluYWxOb2RlTWFwRnJvbU5vZGVzKGdlbmVyYWxDaGlsZE5vZGVzKSxcbiAgICAgICAgICAgIHRlcm1pbmFsTm9kZU1hcHNFcXVhbCA9IGFyZVRlcm1pbmFsTm9kZU1hcHNFcXVhbChnZW5lcmFsVGVybWluYWxOb2RlTWFwLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZU1hcCk7XG5cbiAgICAgIGlmICh0ZXJtaW5hbE5vZGVNYXBzRXF1YWwpIHtcbiAgICAgICAgY29uc3QgbGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24gPSBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKHJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgaWYgKGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICAgICAgICAgIGRlc2NlbmRlZEFoZWFkID0gdGhpcy5kZXNjZW5kQWhlYWQoaW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgIGlmIChkZXNjZW5kZWRBaGVhZCkge1xuICAgICAgICAgICAgZGVzY2VuZGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmlzaXRlZCA9IGdlbmVyYWxDaGlsZE5vZGVzLmV2ZXJ5KChnZW5lcmFsQ2hpbGROb2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgICAgICBkZXNjZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZXNjZW5kZWQ7XG4gIH1cblxuICBkZXNjZW5kQWhlYWQoaW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBkZXNjZW5kZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZGVzY2VuZEFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCA9IGdlbmVyYWxDaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChpbmRleCA9PT0gZ2VuZXJhbENoaWxkTm9kZXNMZW5ndGgpIHtcbiAgICAgIGRlc2NlbmRlZEFoZWFkID0gZGVzY2VuZEFoZWFkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxDaGlsZE5vZGUgPSBnZW5lcmFsQ2hpbGROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZSA9IHNwZWNpZmljQ2hpbGROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kQWhlYWQpOyAvLy9cblxuICAgICAgICAgICAgICBjb25zdCBhaGVhZEluZGV4ID0gaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBkZXNjZW5kZWRBaGVhZCA9IHRoaXMuZGVzY2VuZEFoZWFkKGFoZWFkSW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGRlc2NlbmRlZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgIGRlc2NlbmRlZEFoZWFkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY2VuZGVkQWhlYWQ7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0VGVybWluYWxOb2RlKGdlbmVyYWxUZXJtaW5hbE5vZGUsIHNwZWNpZmljVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbiA9IGlzTGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24ocmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIGlmIChsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbikge1xuICAgICAgY29uc3QgZGVzY2VuZEFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgZGVzY2VuZGVkQWhlYWQgPSBkZXNjZW5kQWhlYWQoKTtcblxuICAgICAgaWYgKGRlc2NlbmRBaGVhZCkge1xuICAgICAgICB2aXNpdGVkID0gZGVzY2VuZGVkQWhlYWQ7ICAvLy9cbiAgICAgIH1cblxuICAgICAgcmVtYWluaW5nQXJndW1lbnRzLnB1c2goZGVzY2VuZEFoZWFkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBzcGVjaWZpY05vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgICAgICAgIGlmIChnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPT09IHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICAgIHNwZWNpZmljQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgICAgICBkZXNjZW5kZWQgPSB0aGlzLmRlc2NlbmQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgaWYgKGRlc2NlbmRlZCkge1xuICAgICAgICAgICAgICB2aXNpdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmlzaXRlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cblxuICAgIG1hcHMuc29tZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTm9kZVF1ZXJ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUpLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY05vZGVRdWVyeShzcGVjaWZpY05vblRlcm1pbmFsTm9kZSk7ICAvLy9cblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSAhPT0gbnVsbCkgJiYgKHNwZWNpZmljTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3Qgc3VjY2VzcyAgPSBydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICB2aXNpdGVkID0gc3VjY2VzczsgIC8vL1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cbn1cblxuY2xhc3MgTWV0YUxldmVsUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBhc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBsZXQgY29udGV4dCxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGU7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbEFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlOyAgLy8vXG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTmFtZSgpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBjb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY0Fzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBjb250ZXh0LmZpbmRSZWZlcmVuY2VCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSBtZXRhdmFyaWFibGUudW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICBpZiAocmVmZXJlbmNlVW5pZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGxldCBjb250ZXh0LFxuICAgICAgICAgICAgc3RhdGVtZW50Tm9kZTtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBnZW5lcmFsU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTm9kZS5nZXRNZXRhdmFyaWFibGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IGNvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGUgPSBtZXRhdmFyaWFibGVOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gbWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGU7IC8vL1xuXG4gICAgICAgIGNvbnN0IGZyYW1lU3Vic3RpdHV0aW9uTm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0RnJhbWVTdWJzdGl0dXRpb25Ob2RlKCksXG4gICAgICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRUZXJtU3Vic3RpdHV0aW9uTm9kZSgpLFxuICAgICAgICAgICAgICBzdWJzdGl0dXRpb25Ob2RlID0gKGZyYW1lU3Vic3RpdHV0aW9uTm9kZSB8fCB0ZXJtU3Vic3RpdHV0aW9uTm9kZSksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IChzdWJzdGl0dXRpb25Ob2RlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgLy8vXG5cbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGNvbnRleHQuZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IG1ldGF2YXJpYWJsZS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogZnJhbWVBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGZyYW1lTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbEZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljRnJhbWVOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZnJhbWVOb2RlID0gc3BlY2lmaWNGcmFtZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbEZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTmFtZSgpO1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gY29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCBmcmFtZSA9IGNvbnRleHQuZmluZEZyYW1lQnlGcmFtZU5vZGUoZnJhbWVOb2RlKSxcbiAgICAgICAgICAgICAgZnJhbWVVbmlmaWVzID0gbWV0YXZhcmlhYmxlLnVuaWZ5RnJhbWUoZnJhbWUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmIChmcmFtZVVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdGVybVZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSwgc3BlY2lmaWNUZXJtTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHRlcm1Ob2RlID0gc3BlY2lmaWNUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVJZGVudGlmaWVyID0gdmFyaWFibGVOb2RlLmdldFZhcmlhYmxlSWRlbnRpZmllcigpO1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcik7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIGNvbnN0IHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSksXG4gICAgICAgICAgICAgIHRlcm1VbmlmaWVzID0gdmFyaWFibGUudW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBDb21iaW5hdG9yUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBtZXRhVHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBzdGF0ZW1lbnROb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsTWV0YVR5cGVOb2RlLCBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5vZGUgPSBnZW5lcmFsTWV0YVR5cGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5vZGUuZ2V0TWV0YVR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGFUeXBlID0gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZhbGlkYXRlc0dpdmVuVHlwZSA9IHN0YXRlbWVudC52YWxpZGF0ZUdpdmVuTWV0YVR5cGUobWV0YVR5cGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNHaXZlblR5cGUpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbWV0YVR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogZnJhbWVOb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsTWV0YVR5cGVOb2RlLCBzcGVjaWZpY0ZyYW1lTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG1ldGFUeXBlTm9kZSA9IGdlbmVyYWxNZXRhVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBzcGVjaWZpY0ZyYW1lTm9kZTsgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5vZGUuZ2V0TWV0YVR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGFUeXBlID0gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgZnJhbWUgPSBmcmFtZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZnJhbWVWYWxpZGF0ZXNHaXZlbk1ldGFUeXBlID0gZnJhbWUudmFsaWRhdGVHaXZlbk1ldGFUeXBlKG1ldGFUeXBlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoZnJhbWVWYWxpZGF0ZXNHaXZlbk1ldGFUeXBlKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxUeXBlTm9kZSwgc3BlY2lmaWNUZXJtTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHR5cGVOb2RlID0gZ2VuZXJhbFR5cGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgdGVybU5vZGUgPSBzcGVjaWZpY1Rlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgbm9taW5hbFR5cGVOYW1lID0gdHlwZU5vZGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCk7XG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCB0eXBlID0gY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgICBjb25zdCB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgICAgdGVybVZhbGlkYXRlc0dpdmVuVHlwZSA9IHRlcm0udmFsaWRhdGVHaXZlblR5cGUodHlwZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodGVybVZhbGlkYXRlc0dpdmVuVHlwZSkge1xuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBDb25zdHJ1Y3RvclBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFR5cGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBnZW5lcmFsVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKTtcblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICB0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlID0gdGVybS52YWxpZGF0ZUdpdmVuVHlwZSh0eXBlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmICh0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlKSB7XG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNsYXNzIE1ldGF2YXJpYWJsZVBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFR5cGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBnZW5lcmFsVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICAgICAgdHlwZSA9IGdlbmVyYWxDb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKSxcbiAgICAgICAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgICAgIHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSksXG4gICAgICAgICAgICAgIHRlcm1WYWxpZGF0ZXNHaXZlblR5cGUgPSB0ZXJtLnZhbGlkYXRlR2l2ZW5UeXBlKHR5cGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNsYXNzIEludHJpbnNpY0xldmVsUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiB0ZXJtVmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdGVybU5vZGUgPSBzcGVjaWZpY1Rlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVOb2RlID0gZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZUlkZW50aWZpZXIgPSB2YXJpYWJsZU5vZGUuZ2V0VmFyaWFibGVJZGVudGlmaWVyKCk7XG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgdGVybSA9IGNvbnRleHQuZmluZFRlcm1CeVRlcm1Ob2RlKHRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgdGVybVVuaWZpZXMgPSB2YXJpYWJsZS51bmlmeVRlcm0odGVybSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IG1ldGFMZXZlbFBhc3MgPSBuZXcgTWV0YUxldmVsUGFzcygpLFxuICAgICAgY29tYmluYXRvclBhc3MgPSBuZXcgQ29tYmluYXRvclBhc3MoKSxcbiAgICAgIGNvbnN0cnVjdG9yUGFzcyA9IG5ldyBDb25zdHJ1Y3RvclBhc3MoKSxcbiAgICAgIG1ldGF2YXJpYWJsZVBhc3MgPSBuZXcgTWV0YXZhcmlhYmxlUGFzcygpLFxuICAgICAgaW50cmluc2ljTGV2ZWxQYXNzID0gbmV3IEludHJpbnNpY0xldmVsUGFzcygpO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnQoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZXMgPSBmYWxzZTtcblxuICBjb25zdCBnZW5lcmFsU3RhdGVtZW50Tm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgc3VjY2VzcyA9IG1ldGFMZXZlbFBhc3MucnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3Vic3RpdHV0aW9uKGdlbmVyYWxTdWJzdGl0dXRpb24sIHNwZWNpZmljU3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdWJzdGl0dXRpb25VbmlmaWVzID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlLCAgLy8vXG4gICAgICAgIHN1Y2Nlc3MgPSBtZXRhTGV2ZWxQYXNzLnJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHN1YnN0aXR1dGlvblVuaWZpZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHN1YnN0aXR1dGlvblVuaWZpZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeU1ldGF2YXJpYWJsZShnZW5lcmFsTWV0YXZhcmlhYmxlLCBzcGVjaWZpY01ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgc3VjY2VzcyA9IG1ldGF2YXJpYWJsZVBhc3MucnVuKGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm0gPSBjb25zdHJ1Y3Rvci5nZXRUZXJtKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3RvclRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gY29uc3RydWN0b3JQYXNzLnJ1bihjb25zdHJ1Y3RvclRlcm1Ob2RlLCB0ZXJtTm9kZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZXNJbnRyaW5zaWNhbGx5ID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbFN0YXRlbWVudE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnROb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3VjY2VzcyA9IGludHJpbnNpY0xldmVsUGFzcy5ydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICBzdGF0ZW1lbnRVbmlmaWVzSW50cmluc2ljYWxseSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllc0ludHJpbnNpY2FsbHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yKHN0YXRlbWVudCwgY29tYmluYXRvciwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnQgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudCgpLFxuICAgICAgICBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3JTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gY29tYmluYXRvclBhc3MucnVuKGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHN0YXRlbWVudFVuaWZpZXNXaXRoQ29tYmluYXRvciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgIHN1Y2Nlc3MgPSBpbnRyaW5zaWNMZXZlbFBhc3MucnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5O1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5TWV0YXZhcmlhYmxlIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdWJzdGl0dXRpb24iLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJ0ZXJtTm9kZVF1ZXJ5IiwiZnJhbWVOb2RlUXVlcnkiLCJtZXRhVHlwZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJmcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJQYXNzIiwicnVuIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJzdWNjZXNzIiwidmlzaXRlZCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImRlc2NlbmRlZCIsImdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwic3BlY2lmaWNDaGlsZE5vZGVzTGVuZ3RoIiwic3BlY2lmaWNUZXJtaW5hbE5vZGVNYXAiLCJ0ZXJtaW5hbE5vZGVNYXBGcm9tTm9kZXMiLCJnZW5lcmFsVGVybWluYWxOb2RlTWFwIiwidGVybWluYWxOb2RlTWFwc0VxdWFsIiwiYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsIiwibGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24iLCJpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIiwiaW5kZXgiLCJkZXNjZW5kZWRBaGVhZCIsImRlc2NlbmRBaGVhZCIsImV2ZXJ5IiwiZ2VuZXJhbENoaWxkTm9kZSIsInNwZWNpZmljQ2hpbGROb2RlIiwicG9wIiwicHVzaCIsImFoZWFkSW5kZXgiLCJnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlVGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSIsImdlbmVyYWxUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwic29tZSIsIm1hcCIsIk1ldGFMZXZlbFBhc3MiLCJnZW5lcmFsQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY0Fzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9ucyIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0IiwiY29udGV4dCIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiLCJyZWZlcmVuY2UiLCJmaW5kUmVmZXJlbmNlQnlNZXRhdmFyaWFibGVOb2RlIiwicmVmZXJlbmNlVW5pZmllcyIsInVuaWZ5UmVmZXJlbmNlIiwiZ2VuZXJhbFN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY1N0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGUiLCJnZXRQYXJlbnROb2RlIiwiZnJhbWVTdWJzdGl0dXRpb25Ob2RlIiwiZ2V0RnJhbWVTdWJzdGl0dXRpb25Ob2RlIiwidGVybVN1YnN0aXR1dGlvbk5vZGUiLCJnZXRUZXJtU3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlIiwic3RhdGVtZW50IiwiZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFVuaWZpZXMiLCJnZW5lcmFsRnJhbWVBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljRnJhbWVOb2RlIiwiZnJhbWVOb2RlIiwiZnJhbWUiLCJmaW5kRnJhbWVCeUZyYW1lTm9kZSIsImZyYW1lVW5pZmllcyIsInVuaWZ5RnJhbWUiLCJnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSIsInNwZWNpZmljVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlSWRlbnRpZmllciIsImdldFZhcmlhYmxlSWRlbnRpZmllciIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIiLCJ0ZXJtIiwiZmluZFRlcm1CeVRlcm1Ob2RlIiwidGVybVVuaWZpZXMiLCJ1bmlmeVRlcm0iLCJDb21iaW5hdG9yUGFzcyIsImdlbmVyYWxNZXRhVHlwZU5vZGUiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsIm1ldGFUeXBlTm9kZSIsIm1ldGFUeXBlTmFtZSIsImdldE1ldGFUeXBlTmFtZSIsIm1ldGFUeXBlIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFZhbGlkYXRlc0dpdmVuVHlwZSIsInZhbGlkYXRlR2l2ZW5NZXRhVHlwZSIsImZyYW1lRnJvbUZyYW1lTm9kZSIsImZyYW1lVmFsaWRhdGVzR2l2ZW5NZXRhVHlwZSIsImdlbmVyYWxUeXBlTm9kZSIsInR5cGVOb2RlIiwibm9taW5hbFR5cGVOYW1lIiwiZ2V0Tm9taW5hbFR5cGVOYW1lIiwidHlwZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJ0ZXJtRnJvbVRlcm1Ob2RlIiwidGVybVZhbGlkYXRlc0dpdmVuVHlwZSIsInZhbGlkYXRlR2l2ZW5UeXBlIiwiQ29uc3RydWN0b3JQYXNzIiwiTWV0YXZhcmlhYmxlUGFzcyIsIkludHJpbnNpY0xldmVsUGFzcyIsIm1ldGFMZXZlbFBhc3MiLCJjb21iaW5hdG9yUGFzcyIsImNvbnN0cnVjdG9yUGFzcyIsIm1ldGF2YXJpYWJsZVBhc3MiLCJpbnRyaW5zaWNMZXZlbFBhc3MiLCJnZW5lcmFsU3RhdGVtZW50Iiwic3BlY2lmaWNTdGF0ZW1lbnQiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJnZW5lcmFsU3Vic3RpdHV0aW9uIiwic3BlY2lmaWNTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25VbmlmaWVzIiwiZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUiLCJzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUiLCJnZW5lcmFsTWV0YXZhcmlhYmxlIiwic3BlY2lmaWNNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVVbmlmaWVzIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUiLCJjb25zdHJ1Y3RvciIsInRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yIiwiY29uc3RydWN0b3JUZXJtIiwiZ2V0VGVybSIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJzdGF0ZW1lbnRVbmlmaWVzSW50cmluc2ljYWxseSIsImNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBMGlCZ0JBO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBNUZBQztlQUFBQTs7UUE2REFDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBN0RBQztlQUFBQTs7UUE4QkFDO2VBQUFBOzs7cUJBdGpCVTt5QkFDaUI7dUJBQ3NDO29CQUNtQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwRyxJQUFNQyx1QkFBdUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdkMsSUFBTUMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLFVBQzFCRSxnQkFBZ0JGLElBQUFBLGdCQUFTLEVBQUMsVUFDMUJHLGlCQUFpQkgsSUFBQUEsZ0JBQVMsRUFBQyxXQUMzQkksb0JBQW9CSixJQUFBQSxnQkFBUyxFQUFDLGNBQzlCSyxxQkFBcUJMLElBQUFBLGdCQUFTLEVBQUMsZUFDL0JNLHdCQUF3Qk4sSUFBQUEsZ0JBQVMsRUFBQyxvQkFDbENPLGlDQUFpQ1AsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDM0NRLGtDQUFrQ1IsSUFBQUEsZ0JBQVMsRUFBQyw4QkFDNUNTLHVDQUF1Q1QsSUFBQUEsZ0JBQVMsRUFBQztBQUV2RCxJQUFBLEFBQU1VLHFCQUFOO2FBQU1B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
|
package/lib/types.js
CHANGED
|
@@ -18,10 +18,10 @@ function _interop_require_default(obj) {
|
|
|
18
18
|
var baseType = null;
|
|
19
19
|
function baseTypeFromNothing() {
|
|
20
20
|
if (baseType === null) {
|
|
21
|
-
var Type = _elements.default.Type, name = _constants.BASE_TYPE_SYMBOL;
|
|
22
|
-
baseType = Type.
|
|
21
|
+
var Type = _elements.default.Type, name = _constants.BASE_TYPE_SYMBOL, context = null, provisional = false;
|
|
22
|
+
baseType = Type.fromNameAndProvisional(name, provisional, context);
|
|
23
23
|
}
|
|
24
24
|
return baseType;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IEJBU0VfVFlQRV9TWU1CT0wgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxubGV0IGJhc2VUeXBlID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VUeXBlRnJvbU5vdGhpbmcoKSB7XG4gIGlmIChiYXNlVHlwZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHsgVHlwZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgbmFtZSA9IEJBU0VfVFlQRV9TWU1CT0wsICAvLy9cbiAgICAgICAgICBjb250ZXh0ID0gbnVsbCxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IGZhbHNlO1xuXG4gICAgYmFzZVR5cGUgPSBUeXBlLmZyb21OYW1lQW5kUHJvdmlzaW9uYWwobmFtZSwgcHJvdmlzaW9uYWwsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIGJhc2VUeXBlO1xufVxuIl0sIm5hbWVzIjpbImJhc2VUeXBlRnJvbU5vdGhpbmciLCJiYXNlVHlwZSIsIlR5cGUiLCJlbGVtZW50cyIsIm5hbWUiLCJCQVNFX1RZUEVfU1lNQk9MIiwiY29udGV4dCIsInByb3Zpc2lvbmFsIiwiZnJvbU5hbWVBbmRQcm92aXNpb25hbCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUWdCQTs7O2VBQUFBOzs7K0RBTks7eUJBRVk7Ozs7OztBQUVqQyxJQUFJQyxXQUFXO0FBRVIsU0FBU0Q7SUFDZCxJQUFJQyxhQUFhLE1BQU07UUFDckIsSUFBTSxBQUFFQyxPQUFTQyxpQkFBUSxDQUFqQkQsTUFDRkUsT0FBT0MsMkJBQWdCLEVBQ3ZCQyxVQUFVLE1BQ1ZDLGNBQWM7UUFFcEJOLFdBQVdDLEtBQUtNLHNCQUFzQixDQUFDSixNQUFNRyxhQUFhRDtJQUM1RDtJQUVBLE9BQU9MO0FBQ1QifQ==
|
package/lib/utilities/bnf.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "ruleFromRuleName", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: function() {
|
|
8
|
-
return
|
|
8
|
+
return ruleFromRuleName;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _occamlexers = require("occam-lexers");
|
|
@@ -13,9 +13,9 @@ var _occamparsers = require("occam-parsers");
|
|
|
13
13
|
var _necessary = require("necessary");
|
|
14
14
|
var first = _necessary.arrayUtilities.first;
|
|
15
15
|
var bnfLexer = _occamlexers.BNFLexer.fromNothing(), bnfParser = _occamparsers.BNFParser.fromNothing();
|
|
16
|
-
function
|
|
17
|
-
var tokens = bnfLexer.tokensFromBNF(bnf), rules = bnfParser.rulesFromTokens(tokens), firstRule = first(rules), rule = firstRule; ///
|
|
16
|
+
function ruleFromRuleName(ruleName) {
|
|
17
|
+
var bnf = " _ ::= ".concat(ruleName, "... <END_OF_LINE> ; "), tokens = bnfLexer.tokensFromBNF(bnf), rules = bnfParser.rulesFromTokens(tokens), firstRule = first(rules), rule = firstRule; ///
|
|
18
18
|
return rule;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBCTkZMZXhlciB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcbmltcG9ydCB7IEJORlBhcnNlciB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IGJuZkxleGVyID0gQk5GTGV4ZXIuZnJvbU5vdGhpbmcoKSxcbiAgICAgIGJuZlBhcnNlciA9IEJORlBhcnNlci5mcm9tTm90aGluZygpO1xuXG5leHBvcnQgZnVuY3Rpb24gcnVsZUZyb21SdWxlTmFtZShydWxlTmFtZSkge1xuICBjb25zdCBibmYgPSBgIF8gOjo9ICR7cnVsZU5hbWV9Li4uIDxFTkRfT0ZfTElORT4gOyBgLFxuICAgICAgICB0b2tlbnMgPSBibmZMZXhlci50b2tlbnNGcm9tQk5GKGJuZiksXG4gICAgICAgIHJ1bGVzID0gYm5mUGFyc2VyLnJ1bGVzRnJvbVRva2Vucyh0b2tlbnMpLFxuICAgICAgICBmaXJzdFJ1bGUgPSBmaXJzdChydWxlcyksXG4gICAgICAgIHJ1bGUgPSBmaXJzdFJ1bGU7IC8vL1xuXG4gIHJldHVybiBydWxlO1xufVxuIl0sIm5hbWVzIjpbInJ1bGVGcm9tUnVsZU5hbWUiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiYm5mTGV4ZXIiLCJCTkZMZXhlciIsImZyb21Ob3RoaW5nIiwiYm5mUGFyc2VyIiwiQk5GUGFyc2VyIiwicnVsZU5hbWUiLCJibmYiLCJ0b2tlbnMiLCJ0b2tlbnNGcm9tQk5GIiwicnVsZXMiLCJydWxlc0Zyb21Ub2tlbnMiLCJmaXJzdFJ1bGUiLCJydWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXZ0JBOzs7ZUFBQUE7OzsyQkFUUzs0QkFDQzt5QkFDSztBQUUvQixJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRDtBQUVSLElBQU1FLFdBQVdDLHFCQUFRLENBQUNDLFdBQVcsSUFDL0JDLFlBQVlDLHVCQUFTLENBQUNGLFdBQVc7QUFFaEMsU0FBU0wsaUJBQWlCUSxRQUFRO0lBQ3ZDLElBQU1DLE1BQU0sQUFBQyxVQUFrQixPQUFURCxVQUFTLHlCQUN6QkUsU0FBU1AsU0FBU1EsYUFBYSxDQUFDRixNQUNoQ0csUUFBUU4sVUFBVU8sZUFBZSxDQUFDSCxTQUNsQ0ksWUFBWWIsTUFBTVcsUUFDbEJHLE9BQU9ELFdBQVcsR0FBRztJQUUzQixPQUFPQztBQUNUIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "chainContext", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return chainContext;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _constants = require("../constants");
|
|
12
|
+
function _type_of(obj) {
|
|
13
|
+
"@swc/helpers - typeof";
|
|
14
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
15
|
+
}
|
|
16
|
+
function chainContext(context) {
|
|
17
|
+
return new Proxy(context, {
|
|
18
|
+
get: function(instance, name, receiver) {
|
|
19
|
+
if (name in instance) {
|
|
20
|
+
return Reflect.get(instance, name, receiver);
|
|
21
|
+
}
|
|
22
|
+
var _$context = instance.context, value = _$context[name];
|
|
23
|
+
return (typeof value === "undefined" ? "undefined" : _type_of(value)) === _constants.FUNCTION ? value.bind(_$context) : value;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRlVOQ1RJT04gfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbkNvbnRleHQoY29udGV4dCkge1xuICByZXR1cm4gbmV3IFByb3h5KGNvbnRleHQsIHtcbiAgICBnZXQ6IChpbnN0YW5jZSwgbmFtZSwgcmVjZWl2ZXIpID0+IHtcbiAgICAgIGlmIChuYW1lIGluIGluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldChpbnN0YW5jZSwgbmFtZSwgcmVjZWl2ZXIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZXh0ID0gaW5zdGFuY2UuY29udGV4dCxcbiAgICAgICAgICAgIHZhbHVlID0gY29udGV4dFtuYW1lXTtcblxuICAgICAgcmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IEZVTkNUSU9OKSA/XG4gICAgICAgICAgICAgICB2YWx1ZS5iaW5kKGNvbnRleHQpIDpcbiAgICAgICAgICAgICAgICAgdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJjaGFpbkNvbnRleHQiLCJjb250ZXh0IiwiUHJveHkiLCJnZXQiLCJpbnN0YW5jZSIsIm5hbWUiLCJyZWNlaXZlciIsIlJlZmxlY3QiLCJ2YWx1ZSIsIkZVTkNUSU9OIiwiYmluZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSWdCQTs7O2VBQUFBOzs7eUJBRlM7Ozs7O0FBRWxCLFNBQVNBLGFBQWFDLE9BQU87SUFDbEMsT0FBTyxJQUFJQyxNQUFNRCxTQUFTO1FBQ3hCRSxLQUFLLFNBQUNDLFVBQVVDLE1BQU1DO1lBQ3BCLElBQUlELFFBQVFELFVBQVU7Z0JBQ3BCLE9BQU9HLFFBQVFKLEdBQUcsQ0FBQ0MsVUFBVUMsTUFBTUM7WUFDckM7WUFFQSxJQUFNTCxZQUFVRyxTQUFTSCxPQUFPLEVBQzFCTyxRQUFRUCxTQUFPLENBQUNJLEtBQUs7WUFFM0IsT0FBTyxBQUFDLENBQUEsT0FBT0csc0NBQVAsU0FBT0EsTUFBSSxNQUFNQyxtQkFBUSxHQUN4QkQsTUFBTUUsSUFBSSxDQUFDVCxhQUNUTztRQUNiO0lBQ0Y7QUFDRiJ9
|