occam-nominal 1.0.533 → 1.0.539
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/context/file/nominal.js +15 -14
- package/lib/context/metexic.js +5 -1
- package/lib/context.js +7 -3
- package/lib/element/assertion/property.js +42 -53
- package/lib/element/assertion/schema.js +18 -38
- package/lib/element/assertion/signature.js +48 -83
- package/lib/element/assumption/implicit.js +3 -3
- package/lib/element/assumption.js +11 -23
- package/lib/element/claim/axiom.js +19 -41
- package/lib/element/claim/conjecture.js +5 -5
- package/lib/element/claim/lemma.js +4 -4
- package/lib/element/claim/theorem.js +6 -6
- package/lib/element/combinator.js +3 -3
- package/lib/element/constraint.js +51 -48
- package/lib/element/constructor/bracketed.js +2 -2
- package/lib/element/constructor.js +3 -3
- package/lib/element/declaration/constructor.js +12 -17
- package/lib/element/declaration/cotype.js +58 -66
- package/lib/element/declaration/generator.js +22 -29
- package/lib/element/declaration/property.js +13 -20
- package/lib/element/declaration/type.js +18 -29
- package/lib/element/declaration/typePrefix.js +7 -10
- package/lib/element/equality.js +29 -11
- package/lib/element/fact/premise.js +3 -3
- package/lib/element/fact/step.js +35 -33
- package/lib/element/fact/supposition.js +4 -4
- package/lib/element/generator.js +57 -82
- package/lib/element/hypothesis.js +3 -3
- package/lib/element/label.js +17 -15
- package/lib/element/link.js +6 -12
- package/lib/element/proof.js +3 -3
- package/lib/element/property.js +42 -52
- package/lib/element/reference.js +5 -5
- package/lib/element/resolution/conclusion.js +3 -3
- package/lib/element/resolution/deduction.js +3 -3
- package/lib/element/rule.js +4 -4
- package/lib/element/schema.js +40 -66
- package/lib/element/section.js +3 -3
- package/lib/element/signature.js +35 -56
- package/lib/element/subproof.js +3 -3
- package/lib/element/substitution/frame.js +3 -3
- package/lib/element/substitution/statement.js +3 -3
- package/lib/element/substitution/term.js +3 -3
- package/lib/element/term.js +5 -11
- package/lib/element/typePrefix.js +15 -19
- package/lib/process/validation.js +4 -6
- package/lib/utilities/context.js +6 -1
- package/lib/utilities/string.js +12 -12
- package/package.json +2 -2
- package/src/context/file/nominal.js +19 -19
- package/src/context/metexic.js +6 -0
- package/src/context.js +11 -4
- package/src/element/assertion/property.js +49 -62
- package/src/element/assertion/schema.js +27 -47
- package/src/element/assertion/signature.js +59 -115
- package/src/element/assumption/implicit.js +3 -3
- package/src/element/assumption.js +10 -26
- package/src/element/claim/axiom.js +17 -45
- package/src/element/claim/conjecture.js +3 -3
- package/src/element/claim/lemma.js +3 -3
- package/src/element/claim/theorem.js +4 -4
- package/src/element/combinator.js +2 -2
- package/src/element/constraint.js +65 -72
- package/src/element/constructor/bracketed.js +1 -1
- package/src/element/constructor.js +2 -2
- package/src/element/declaration/constructor.js +19 -21
- package/src/element/declaration/cotype.js +77 -79
- package/src/element/declaration/generator.js +30 -34
- package/src/element/declaration/property.js +14 -22
- package/src/element/declaration/type.js +26 -34
- package/src/element/declaration/typePrefix.js +6 -10
- package/src/element/equality.js +43 -14
- package/src/element/fact/premise.js +2 -2
- package/src/element/fact/step.js +44 -42
- package/src/element/fact/supposition.js +2 -2
- package/src/element/generator.js +67 -107
- package/src/element/hypothesis.js +2 -2
- package/src/element/label.js +21 -21
- package/src/element/link.js +5 -13
- package/src/element/proof.js +3 -3
- package/src/element/property.js +51 -73
- package/src/element/reference.js +3 -3
- package/src/element/resolution/conclusion.js +2 -2
- package/src/element/resolution/deduction.js +2 -2
- package/src/element/rule.js +3 -3
- package/src/element/schema.js +47 -88
- package/src/element/section.js +2 -2
- package/src/element/signature.js +35 -71
- package/src/element/subproof.js +2 -2
- package/src/element/substitution/frame.js +3 -3
- package/src/element/substitution/statement.js +3 -3
- package/src/element/substitution/term.js +3 -3
- package/src/element/term.js +4 -12
- package/src/element/typePrefix.js +23 -23
- package/src/process/validation.js +3 -5
- package/src/utilities/context.js +4 -0
- package/src/utilities/string.js +14 -14
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
const _occamlanguages = require("occam-languages");
|
|
11
12
|
const _assertion = /*#__PURE__*/ _interop_require_default(require("../assertion"));
|
|
12
13
|
const _elements = require("../../elements");
|
|
13
14
|
const _context = require("../../utilities/context");
|
|
@@ -21,6 +22,7 @@ function _interop_require_default(obj) {
|
|
|
21
22
|
default: obj
|
|
22
23
|
};
|
|
23
24
|
}
|
|
25
|
+
const { all } = _occamlanguages.continuationUtilities;
|
|
24
26
|
const _default = (0, _elements.define)(class PropertyAssertion extends _assertion.default {
|
|
25
27
|
constructor(context, string, node, breakPoint, subjectTerm, propertyTerm){
|
|
26
28
|
super(context, string, node, breakPoint);
|
|
@@ -41,74 +43,61 @@ const _default = (0, _elements.define)(class PropertyAssertion extends _assertio
|
|
|
41
43
|
const propertyTermType = this.propertyTerm.getType(), propertyType = propertyTermType; ///
|
|
42
44
|
return propertyType;
|
|
43
45
|
}
|
|
44
|
-
validate(state, context,
|
|
45
|
-
let
|
|
46
|
+
validate(state, context, forward, back) {
|
|
47
|
+
let assertion;
|
|
46
48
|
const propertyAssertionString = this.getString(); ///
|
|
47
49
|
context.trace(`Validating the '${propertyAssertionString}' property assertion...`);
|
|
48
|
-
let assertion;
|
|
49
50
|
assertion = this.findAssertion(context);
|
|
50
51
|
if (assertion !== null) {
|
|
51
52
|
const propertyAssertion = assertion; ///
|
|
52
53
|
context.debug(`The '${propertyAssertionString}' property assertion is already present.`);
|
|
53
|
-
|
|
54
|
-
} else {
|
|
55
|
-
assertion = this;
|
|
56
|
-
const validateTerms = this.validateTerms.bind(this);
|
|
57
|
-
validates = all([
|
|
58
|
-
validateTerms
|
|
59
|
-
], state, context, (state, context)=>{
|
|
60
|
-
let validates;
|
|
61
|
-
context.addAssertion(assertion);
|
|
62
|
-
const propertyAssertion = assertion; ///
|
|
63
|
-
validates = continuation(propertyAssertion, context);
|
|
64
|
-
return validates;
|
|
65
|
-
});
|
|
66
|
-
if (validates) {
|
|
67
|
-
this.assign(state, context);
|
|
68
|
-
}
|
|
54
|
+
return forward(propertyAssertion, context, back);
|
|
69
55
|
}
|
|
70
|
-
|
|
56
|
+
assertion = this;
|
|
57
|
+
const validateTerms = this.validateTerms.bind(this);
|
|
58
|
+
return all([
|
|
59
|
+
validateTerms
|
|
60
|
+
], state, context, (state, context, back)=>{
|
|
61
|
+
this.assign(state, context);
|
|
62
|
+
context.addAssertion(assertion);
|
|
63
|
+
const propertyAssertion = assertion; ///
|
|
71
64
|
context.debug(`...validated the '${propertyAssertionString}' property assertion.`);
|
|
72
|
-
|
|
73
|
-
|
|
65
|
+
return forward(propertyAssertion, context, back);
|
|
66
|
+
}, back);
|
|
74
67
|
}
|
|
75
|
-
validateTerms(state, context,
|
|
76
|
-
let termsValidate = false;
|
|
68
|
+
validateTerms(state, context, forward, back) {
|
|
77
69
|
const propertyAssertionString = this.getString(); ///
|
|
78
70
|
context.trace(`Validating the '${propertyAssertionString}' property assertion's terms...`);
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return validates;
|
|
89
|
-
});
|
|
90
|
-
return propertyTermValidates;
|
|
91
|
-
});
|
|
92
|
-
if (subjectTermValidtes) {
|
|
93
|
-
termsValidate = true;
|
|
94
|
-
}
|
|
95
|
-
if (termsValidate) {
|
|
71
|
+
const validateSubjectTerm = this.validateSubjectTerm.bind(this), validatePropertyTerm = this.validatePropertyTerm.bind(this);
|
|
72
|
+
return all([
|
|
73
|
+
validateSubjectTerm,
|
|
74
|
+
validatePropertyTerm
|
|
75
|
+
], state, context, (state, context, back)=>{
|
|
76
|
+
const subjectTermType = this.subjectTerm.getType(), propertyTermType = this.propertyTerm.getType(), subjectTermTypeEqualToSubTypeOrSuperTypeOfPropertyTermType = subjectTermType.isEqualToSubTypeOrSuperTypeOf(propertyTermType);
|
|
77
|
+
if (!subjectTermTypeEqualToSubTypeOrSuperTypeOfPropertyTermType) {
|
|
78
|
+
return back();
|
|
79
|
+
}
|
|
96
80
|
context.debug(`...validated the '${propertyAssertionString}' property assertion's terms.`);
|
|
97
|
-
|
|
98
|
-
|
|
81
|
+
return forward(state, context, back);
|
|
82
|
+
}, back);
|
|
83
|
+
}
|
|
84
|
+
validateSubjectTerm(state, context, forward, back) {
|
|
85
|
+
const includeType = false, propertyString = this.getString(includeType); ///
|
|
86
|
+
context.trace(`Validating the '${propertyString}' property assertion's subject term...`);
|
|
87
|
+
return this.subjectTerm.validate(state, context, (subjectTerm, context, back)=>{
|
|
88
|
+
this.subjectTerm = subjectTerm;
|
|
89
|
+
context.debug(`...validated the '${propertyString}' property assertion's subject term.`);
|
|
90
|
+
return forward(state, context, back);
|
|
91
|
+
}, back);
|
|
99
92
|
}
|
|
100
|
-
validatePropertyTerm(state, context,
|
|
101
|
-
let propertyTermValidates = false;
|
|
93
|
+
validatePropertyTerm(state, context, forward, back) {
|
|
102
94
|
const includeType = false, propertyString = this.getString(includeType); ///
|
|
103
95
|
context.trace(`Validating the '${propertyString}' property assertion's property term...`);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
propertyTermValidates = true;
|
|
107
|
-
}
|
|
108
|
-
if (propertyTermValidates) {
|
|
96
|
+
return (0, _validation.unifyTermWithProperties)(this.propertyTerm, state, context, (propertyTerm, state, context, back)=>{
|
|
97
|
+
this.propertyTerm = propertyTerm;
|
|
109
98
|
context.debug(`...validated the '${propertyString}' property assertion's property term.`);
|
|
110
|
-
|
|
111
|
-
|
|
99
|
+
return forward(state, context, back);
|
|
100
|
+
}, back);
|
|
112
101
|
}
|
|
113
102
|
assign(state, context) {
|
|
114
103
|
const derived = (0, _state.isDerived)(state), transient = (0, _state.isTransient)(state);
|
|
@@ -146,4 +135,4 @@ const _default = (0, _elements.define)(class PropertyAssertion extends _assertio
|
|
|
146
135
|
}
|
|
147
136
|
});
|
|
148
137
|
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9wcm9wZXJ0eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGlzRGVyaXZlZCwgaXNUcmFuc2llbnQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0YXRlXCI7XG5pbXBvcnQgeyB1bmlmeVRlcm1XaXRoUHJvcGVydGllcyB9IGZyb20gXCIuLi8uLi9wcm9jZXNzL3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUHJvcGVydHlBc3NlcnRpb24gfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgdmFyaWFibGVBc3NpZ25tZW50RnJvbVByZXBlcnR5QXNzZXJ0aW9uIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvYXNzaWduXCI7XG5pbXBvcnQgeyBwcm9wZXJ0eUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlLCBzdWJqZWN0VGVybUZyb21Qcm9wZXJ0eUFzc2VydGlvbk5vZGUsIHByb3BlcnR5VGVybUZyb21Qcm9wZXJ0eUFzc2VydGlvbk5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb3BlcnR5QXNzZXJ0aW9uIGV4dGVuZHMgQXNzZXJ0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdWJqZWN0VGVybSwgcHJvcGVydHlUZXJtKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3ViamVjdFRlcm0gPSBzdWJqZWN0VGVybTtcbiAgICB0aGlzLnByb3BlcnR5VGVybSA9IHByb3BlcnR5VGVybTtcbiAgfVxuXG4gIGdldFN1YmplY3RUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3RUZXJtO1xuICB9XG5cbiAgZ2V0UHJvcGVydHlUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnR5VGVybTtcbiAgfVxuXG4gIGdldFByb3BlcnR5QXNzZXJ0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgcHJvcGVydHlBc3NlcnRpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gcHJvcGVydHlBc3NlcnRpb25Ob2RlO1xuICB9XG5cbiAgZ2V0UHJvcGVydHlUeXBlKCkge1xuICAgIGNvbnN0IHByb3BlcnR5VGVybVR5cGUgPSB0aGlzLnByb3BlcnR5VGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgcHJvcGVydHlUeXBlID0gcHJvcGVydHlUZXJtVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIHByb3BlcnR5VHlwZTtcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3QgcHJvcGVydHlBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtwcm9wZXJ0eUFzc2VydGlvblN0cmluZ30nIHByb3BlcnR5IGFzc2VydGlvbi4uLmApO1xuXG4gICAgbGV0IGFzc2VydGlvbjtcblxuICAgIGFzc2VydGlvbiA9IHRoaXMuZmluZEFzc2VydGlvbihjb250ZXh0KTtcblxuICAgIGlmIChhc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5QXNzZXJ0aW9uID0gYXNzZXJ0aW9uOyAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3Byb3BlcnR5QXNzZXJ0aW9uU3RyaW5nfScgcHJvcGVydHkgYXNzZXJ0aW9uIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcblxuICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHByb3BlcnR5QXNzZXJ0aW9uLCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0aW9uID0gdGhpcztcblxuICAgICAgY29uc3QgdmFsaWRhdGVUZXJtcyA9IHRoaXMudmFsaWRhdGVUZXJtcy5iaW5kKHRoaXMpO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBhbGwoW1xuICAgICAgICB2YWxpZGF0ZVRlcm1zXG4gICAgICBdLCBzdGF0ZSwgY29udGV4dCwgKHN0YXRlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgICAgY29udGV4dC5hZGRBc3NlcnRpb24oYXNzZXJ0aW9uKTtcblxuICAgICAgICBjb25zdCBwcm9wZXJ0eUFzc2VydGlvbiA9IGFzc2VydGlvbjsgLy8vXG5cbiAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHByb3BlcnR5QXNzZXJ0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgdGhpcy5hc3NpZ24oc3RhdGUsIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7cHJvcGVydHlBc3NlcnRpb25TdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlVGVybXMoc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCB0ZXJtc1ZhbGlkYXRlID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcm9wZXJ0eUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7cHJvcGVydHlBc3NlcnRpb25TdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24ncyB0ZXJtcy4uLmApO1xuXG4gICAgY29uc3Qgc3ViamVjdFRlcm1WYWxpZHRlcyA9IHRoaXMuc3ViamVjdFRlcm0udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChzdWJqZWN0VGVybSwgY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydHlUZXJtVmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZVByb3BlcnR5VGVybShzdGF0ZSwgY29udGV4dCwgKHByb3BlcnR5VGVybSwgY29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc3ViamVjdFRlcm1UeXBlID0gc3ViamVjdFRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICBwcm9wZXJ0eVRlcm1UeXBlID0gcHJvcGVydHlUZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgc3ViamVjdFRlcm1UeXBlRXF1YWxUb1N1YlR5cGVPclN1cGVyVHlwZU9mUHJvcGVydHlUZXJtVHlwZSA9IHN1YmplY3RUZXJtVHlwZS5pc0VxdWFsVG9TdWJUeXBlT3JTdXBlclR5cGVPZihwcm9wZXJ0eVRlcm1UeXBlKTtcblxuICAgICAgICBpZiAoc3ViamVjdFRlcm1UeXBlRXF1YWxUb1N1YlR5cGVPclN1cGVyVHlwZU9mUHJvcGVydHlUZXJtVHlwZSkge1xuICAgICAgICAgIHRoaXMuc3ViamVjdFRlcm0gPSBzdWJqZWN0VGVybTtcblxuICAgICAgICAgIHRoaXMucHJvcGVydHlUZXJtID0gcHJvcGVydHlUZXJtO1xuXG4gICAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHN0YXRlLCBjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHByb3BlcnR5VGVybVZhbGlkYXRlcztcbiAgICB9KTtcblxuICAgIGlmIChzdWJqZWN0VGVybVZhbGlkdGVzKSB7XG4gICAgICB0ZXJtc1ZhbGlkYXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGVybXNWYWxpZGF0ZSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtwcm9wZXJ0eUFzc2VydGlvblN0cmluZ30nIHByb3BlcnR5IGFzc2VydGlvbidzIHRlcm1zLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtc1ZhbGlkYXRlO1xuICB9XG5cbiAgdmFsaWRhdGVQcm9wZXJ0eVRlcm0oc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCBwcm9wZXJ0eVRlcm1WYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgcHJvcGVydHlTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkgYXNzZXJ0aW9uJ3MgcHJvcGVydHkgdGVybS4uLmApO1xuXG4gICAgY29uc3QgcHJvcGVydHlUZXJtVW5pZmllc1dpdGhQcm9wZXJ0aWVzID0gdW5pZnlUZXJtV2l0aFByb3BlcnRpZXModGhpcy5wcm9wZXJ0eVRlcm0sIHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pXG5cbiAgICBpZiAocHJvcGVydHlUZXJtVW5pZmllc1dpdGhQcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wZXJ0eVRlcm1WYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0eVRlcm1WYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24ncyBwcm9wZXJ0eSB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0eVRlcm1WYWxpZGF0ZXM7XG4gIH1cblxuICBhc3NpZ24oc3RhdGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBkZXJpdmVkID0gaXNEZXJpdmVkKHN0YXRlKSxcbiAgICAgICAgICB0cmFuc2llbnQgPSBpc1RyYW5zaWVudChzdGF0ZSk7XG5cbiAgICBpZiAoZGVyaXZlZCB8fCB0cmFuc2llbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0eUFzc2VydGlvbiA9IHRoaXMsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlQXNzaWdtZW50ID0gdmFyaWFibGVBc3NpZ25tZW50RnJvbVByZXBlcnR5QXNzZXJ0aW9uKHByb3BlcnR5QXNzZXJ0aW9uLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuYWRkQXNzaWdubWVudCh2YXJpYWJsZUFzc2lnbWVudCk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBuYW1lID0gdGhpcy5nZXROYW1lKCksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGpzb24gPSB7XG4gICAgICBuYW1lLFxuICAgICAgc3RyaW5nXG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb3BlcnR5QXNzZXJ0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgcHJvcGVydHlBc3NlcnRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uO1xuXG4gICAgaWYgKHRoaXMubmFtZSA9PT0gbmFtZSkge1xuICAgICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uTm9kZSA9IGluc3RhbnRpYXRlUHJvcGVydHlBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IHByb3BlcnR5QXNzZXJ0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgICAgc3ViamVjdFRlcm0gPSBzdWJqZWN0VGVybUZyb21Qcm9wZXJ0eUFzc2VydGlvbk5vZGUocHJvcGVydHlBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgcHJvcGVydHlUZXJtID0gcHJvcGVydHlUZXJtRnJvbVByb3BlcnR5QXNzZXJ0aW9uTm9kZShwcm9wZXJ0eUFzc2VydGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uID0gbmV3IFByb3BlcnR5QXNzZXJ0aW9uKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3ViamVjdFRlcm0sIHByb3BlcnR5VGVybSk7XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcGVydHlBc3NlcnRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBwcm9wZXJ0eUFzc2VydGlvbiA9IHByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJvcGVydHlBc3NlcnRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlByb3BlcnR5QXNzZXJ0aW9uIiwiQXNzZXJ0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3ViamVjdFRlcm0iLCJwcm9wZXJ0eVRlcm0iLCJnZXRTdWJqZWN0VGVybSIsImdldFByb3BlcnR5VGVybSIsImdldFByb3BlcnR5QXNzZXJ0aW9uTm9kZSIsImdldE5vZGUiLCJwcm9wZXJ0eUFzc2VydGlvbk5vZGUiLCJnZXRQcm9wZXJ0eVR5cGUiLCJwcm9wZXJ0eVRlcm1UeXBlIiwiZ2V0VHlwZSIsInByb3BlcnR5VHlwZSIsInZhbGlkYXRlIiwic3RhdGUiLCJjb250aW51YXRpb24iLCJ2YWxpZGF0ZXMiLCJwcm9wZXJ0eUFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiYXNzZXJ0aW9uIiwiZmluZEFzc2VydGlvbiIsInByb3BlcnR5QXNzZXJ0aW9uIiwiZGVidWciLCJ2YWxpZGF0ZVRlcm1zIiwiYmluZCIsImFsbCIsImFkZEFzc2VydGlvbiIsImFzc2lnbiIsInRlcm1zVmFsaWRhdGUiLCJzdWJqZWN0VGVybVZhbGlkdGVzIiwicHJvcGVydHlUZXJtVmFsaWRhdGVzIiwidmFsaWRhdGVQcm9wZXJ0eVRlcm0iLCJzdWJqZWN0VGVybVR5cGUiLCJzdWJqZWN0VGVybVR5cGVFcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2ZQcm9wZXJ0eVRlcm1UeXBlIiwiaXNFcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2YiLCJpbmNsdWRlVHlwZSIsInByb3BlcnR5U3RyaW5nIiwicHJvcGVydHlUZXJtVW5pZmllc1dpdGhQcm9wZXJ0aWVzIiwidW5pZnlUZXJtV2l0aFByb3BlcnRpZXMiLCJkZXJpdmVkIiwiaXNEZXJpdmVkIiwidHJhbnNpZW50IiwiaXNUcmFuc2llbnQiLCJ2YXJpYWJsZUFzc2lnbWVudCIsInZhcmlhYmxlQXNzaWdubWVudEZyb21QcmVwZXJ0eUFzc2VydGlvbiIsImFkZEFzc2lnbm1lbnQiLCJ0b0pTT04iLCJqc29uIiwibmFtZSIsImdldE5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwiaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbiIsInN1YmplY3RUZXJtRnJvbVByb3BlcnR5QXNzZXJ0aW9uTm9kZSIsInByb3BlcnR5VGVybUZyb21Qcm9wZXJ0eUFzc2VydGlvbk5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsInByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2tFQVZzQjswQkFFQzt5QkFDSzt1QkFDVzs0QkFDQzs2QkFDSzt3QkFDVzt5QkFDd0U7Ozs7OztNQUVoSSxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDBCQUEwQkMsa0JBQVM7SUFDN0QsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxXQUFXLEVBQUVDLFlBQVksQ0FBRTtRQUN4RSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLFlBQVksR0FBR0E7SUFDdEI7SUFFQUMsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNGLFdBQVc7SUFDekI7SUFFQUcsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDRixZQUFZO0lBQzFCO0lBRUFHLDJCQUEyQjtRQUN6QixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMsd0JBQXdCUixNQUFNLEdBQUc7UUFFdkMsT0FBT1E7SUFDVDtJQUVBQyxrQkFBa0I7UUFDaEIsTUFBTUMsbUJBQW1CLElBQUksQ0FBQ1AsWUFBWSxDQUFDUSxPQUFPLElBQzVDQyxlQUFlRixrQkFBbUIsR0FBRztRQUUzQyxPQUFPRTtJQUNUO0lBRUFDLFNBQVNDLEtBQUssRUFBRWhCLE9BQU8sRUFBRWlCLFlBQVksRUFBRTtRQUNyQyxJQUFJQztRQUVKLE1BQU1DLDBCQUEwQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRXREcEIsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRix3QkFBd0Is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
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9wcm9wZXJ0eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgQXNzZXJ0aW9uIGZyb20gXCIuLi9hc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaXNEZXJpdmVkLCBpc1RyYW5zaWVudCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RhdGVcIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhQcm9wZXJ0aWVzIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbiB9IGZyb20gXCIuLi8uLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyB2YXJpYWJsZUFzc2lnbm1lbnRGcm9tUHJlcGVydHlBc3NlcnRpb24gfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9hc3NpZ25cIjtcbmltcG9ydCB7IHByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUsIHN1YmplY3RUZXJtRnJvbVByb3BlcnR5QXNzZXJ0aW9uTm9kZSwgcHJvcGVydHlUZXJtRnJvbVByb3BlcnR5QXNzZXJ0aW9uTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5jb25zdCB7IGFsbCB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJvcGVydHlBc3NlcnRpb24gZXh0ZW5kcyBBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN1YmplY3RUZXJtLCBwcm9wZXJ0eVRlcm0pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5zdWJqZWN0VGVybSA9IHN1YmplY3RUZXJtO1xuICAgIHRoaXMucHJvcGVydHlUZXJtID0gcHJvcGVydHlUZXJtO1xuICB9XG5cbiAgZ2V0U3ViamVjdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdFRlcm07XG4gIH1cblxuICBnZXRQcm9wZXJ0eVRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHlUZXJtO1xuICB9XG5cbiAgZ2V0UHJvcGVydHlBc3NlcnRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBwcm9wZXJ0eUFzc2VydGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBwcm9wZXJ0eUFzc2VydGlvbk5vZGU7XG4gIH1cblxuICBnZXRQcm9wZXJ0eVR5cGUoKSB7XG4gICAgY29uc3QgcHJvcGVydHlUZXJtVHlwZSA9IHRoaXMucHJvcGVydHlUZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICBwcm9wZXJ0eVR5cGUgPSBwcm9wZXJ0eVRlcm1UeXBlOyAgLy8vXG5cbiAgICByZXR1cm4gcHJvcGVydHlUeXBlO1xuICB9XG5cbiAgdmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBsZXQgYXNzZXJ0aW9uO1xuXG4gICAgY29uc3QgcHJvcGVydHlBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtwcm9wZXJ0eUFzc2VydGlvblN0cmluZ30nIHByb3BlcnR5IGFzc2VydGlvbi4uLmApO1xuXG4gICAgYXNzZXJ0aW9uID0gdGhpcy5maW5kQXNzZXJ0aW9uKGNvbnRleHQpO1xuXG4gICAgaWYgKGFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlBc3NlcnRpb24gPSBhc3NlcnRpb247IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7cHJvcGVydHlBc3NlcnRpb25TdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24gaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChwcm9wZXJ0eUFzc2VydGlvbiwgY29udGV4dCwgYmFjayk7XG4gICAgfVxuXG4gICAgYXNzZXJ0aW9uID0gdGhpcztcblxuICAgIGNvbnN0IHZhbGlkYXRlVGVybXMgPSB0aGlzLnZhbGlkYXRlVGVybXMuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBhbGwoW1xuICAgICAgdmFsaWRhdGVUZXJtc1xuICAgIF0sIHN0YXRlLCBjb250ZXh0LCAoc3RhdGUsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIHRoaXMuYXNzaWduKHN0YXRlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dC5hZGRBc3NlcnRpb24oYXNzZXJ0aW9uKTtcblxuICAgICAgY29uc3QgcHJvcGVydHlBc3NlcnRpb24gPSBhc3NlcnRpb247IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3Byb3BlcnR5QXNzZXJ0aW9uU3RyaW5nfScgcHJvcGVydHkgYXNzZXJ0aW9uLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChwcm9wZXJ0eUFzc2VydGlvbiwgY29udGV4dCwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICB2YWxpZGF0ZVRlcm1zKHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgcHJvcGVydHlBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3Byb3BlcnR5QXNzZXJ0aW9uU3RyaW5nfScgcHJvcGVydHkgYXNzZXJ0aW9uJ3MgdGVybXMuLi5gKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlU3ViamVjdFRlcm0gPSB0aGlzLnZhbGlkYXRlU3ViamVjdFRlcm0uYmluZCh0aGlzKSxcbiAgICAgICAgICB2YWxpZGF0ZVByb3BlcnR5VGVybSA9IHRoaXMudmFsaWRhdGVQcm9wZXJ0eVRlcm0uYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBhbGwoW1xuICAgICAgdmFsaWRhdGVTdWJqZWN0VGVybSxcbiAgICAgIHZhbGlkYXRlUHJvcGVydHlUZXJtXG4gICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgY29uc3Qgc3ViamVjdFRlcm1UeXBlID0gdGhpcy5zdWJqZWN0VGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICBwcm9wZXJ0eVRlcm1UeXBlID0gdGhpcy5wcm9wZXJ0eVRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgc3ViamVjdFRlcm1UeXBlRXF1YWxUb1N1YlR5cGVPclN1cGVyVHlwZU9mUHJvcGVydHlUZXJtVHlwZSA9IHN1YmplY3RUZXJtVHlwZS5pc0VxdWFsVG9TdWJUeXBlT3JTdXBlclR5cGVPZihwcm9wZXJ0eVRlcm1UeXBlKTtcblxuICAgICAgaWYgKCFzdWJqZWN0VGVybVR5cGVFcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2ZQcm9wZXJ0eVRlcm1UeXBlKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7cHJvcGVydHlBc3NlcnRpb25TdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24ncyB0ZXJtcy5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgdmFsaWRhdGVTdWJqZWN0VGVybShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgcHJvcGVydHlTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkgYXNzZXJ0aW9uJ3Mgc3ViamVjdCB0ZXJtLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5zdWJqZWN0VGVybS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHN1YmplY3RUZXJtLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICB0aGlzLnN1YmplY3RUZXJtID0gc3ViamVjdFRlcm07XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24ncyBzdWJqZWN0IHRlcm0uYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHN0YXRlLCBjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZhbGlkYXRlUHJvcGVydHlUZXJtKHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBwcm9wZXJ0eVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKGluY2x1ZGVUeXBlKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24ncyBwcm9wZXJ0eSB0ZXJtLi4uYCk7XG5cbiAgICByZXR1cm4gdW5pZnlUZXJtV2l0aFByb3BlcnRpZXModGhpcy5wcm9wZXJ0eVRlcm0sIHN0YXRlLCBjb250ZXh0LCAocHJvcGVydHlUZXJtLCBzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgdGhpcy5wcm9wZXJ0eVRlcm0gPSBwcm9wZXJ0eVRlcm07XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSBhc3NlcnRpb24ncyBwcm9wZXJ0eSB0ZXJtLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gICAgfSwgYmFjaylcbiAgfVxuXG4gIGFzc2lnbihzdGF0ZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGRlcml2ZWQgPSBpc0Rlcml2ZWQoc3RhdGUpLFxuICAgICAgICAgIHRyYW5zaWVudCA9IGlzVHJhbnNpZW50KHN0YXRlKTtcblxuICAgIGlmIChkZXJpdmVkIHx8IHRyYW5zaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BlcnR5QXNzZXJ0aW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgdmFyaWFibGVBc3NpZ21lbnQgPSB2YXJpYWJsZUFzc2lnbm1lbnRGcm9tUHJlcGVydHlBc3NlcnRpb24ocHJvcGVydHlBc3NlcnRpb24sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5hZGRBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdtZW50KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBsZXQganNvbjtcblxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAganNvbiA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBzdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvcGVydHlBc3NlcnRpb25cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBwcm9wZXJ0eUFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCB7IG5hbWUgfSA9IGpzb247XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSBuYW1lKSB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgcHJvcGVydHlBc3NlcnRpb25Ob2RlID0gaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBub2RlID0gcHJvcGVydHlBc3NlcnRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgICBzdWJqZWN0VGVybSA9IHN1YmplY3RUZXJtRnJvbVByb3BlcnR5QXNzZXJ0aW9uTm9kZShwcm9wZXJ0eUFzc2VydGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBwcm9wZXJ0eVRlcm0gPSBwcm9wZXJ0eVRlcm1Gcm9tUHJvcGVydHlBc3NlcnRpb25Ob2RlKHByb3BlcnR5QXNzZXJ0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgICAgcHJvcGVydHlBc3NlcnRpb24gPSBuZXcgUHJvcGVydHlBc3NlcnRpb24oY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdWJqZWN0VGVybSwgcHJvcGVydHlUZXJtKTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0eUFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uID0gcHJvcGVydHlBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBwcm9wZXJ0eUFzc2VydGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYWxsIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZGVmaW5lIiwiUHJvcGVydHlBc3NlcnRpb24iLCJBc3NlcnRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJzdWJqZWN0VGVybSIsInByb3BlcnR5VGVybSIsImdldFN1YmplY3RUZXJtIiwiZ2V0UHJvcGVydHlUZXJtIiwiZ2V0UHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiZ2V0Tm9kZSIsInByb3BlcnR5QXNzZXJ0aW9uTm9kZSIsImdldFByb3BlcnR5VHlwZSIsInByb3BlcnR5VGVybVR5cGUiLCJnZXRUeXBlIiwicHJvcGVydHlUeXBlIiwidmFsaWRhdGUiLCJzdGF0ZSIsImZvcndhcmQiLCJiYWNrIiwiYXNzZXJ0aW9uIiwicHJvcGVydHlBc3NlcnRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImZpbmRBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsImRlYnVnIiwidmFsaWRhdGVUZXJtcyIsImJpbmQiLCJhc3NpZ24iLCJhZGRBc3NlcnRpb24iLCJ2YWxpZGF0ZVN1YmplY3RUZXJtIiwidmFsaWRhdGVQcm9wZXJ0eVRlcm0iLCJzdWJqZWN0VGVybVR5cGUiLCJzdWJqZWN0VGVybVR5cGVFcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2ZQcm9wZXJ0eVRlcm1UeXBlIiwiaXNFcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2YiLCJpbmNsdWRlVHlwZSIsInByb3BlcnR5U3RyaW5nIiwidW5pZnlUZXJtV2l0aFByb3BlcnRpZXMiLCJkZXJpdmVkIiwiaXNEZXJpdmVkIiwidHJhbnNpZW50IiwiaXNUcmFuc2llbnQiLCJ2YXJpYWJsZUFzc2lnbWVudCIsInZhcmlhYmxlQXNzaWdubWVudEZyb21QcmVwZXJ0eUFzc2VydGlvbiIsImFkZEFzc2lnbm1lbnQiLCJ0b0pTT04iLCJqc29uIiwibmFtZSIsImdldE5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwiaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbiIsInN1YmplY3RUZXJtRnJvbVByb3BlcnR5QXNzZXJ0aW9uTm9kZSIsInByb3BlcnR5VGVybUZyb21Qcm9wZXJ0eUFzc2VydGlvbk5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsInByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQUE7OztnQ0Fkc0M7a0VBRWhCOzBCQUVDO3lCQUNLO3VCQUNXOzRCQUNDOzZCQUNLO3dCQUNXO3lCQUN3RTs7Ozs7O0FBRWhJLE1BQU0sRUFBRUEsR0FBRyxFQUFFLEdBQUdDLHFDQUFxQjtNQUVyQyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDBCQUEwQkMsa0JBQVM7SUFDN0QsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxXQUFXLEVBQUVDLFlBQVksQ0FBRTtRQUN4RSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLFlBQVksR0FBR0E7SUFDdEI7SUFFQUMsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNGLFdBQVc7SUFDekI7SUFFQUcsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDRixZQUFZO0lBQzFCO0lBRUFHLDJCQUEyQjtRQUN6QixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMsd0JBQXdCUixNQUFNLEdBQUc7UUFFdkMsT0FBT1E7SUFDVDtJQUVBQyxrQkFBa0I7UUFDaEIsTUFBTUMsbUJBQW1CLElBQUksQ0FBQ1AsWUFBWSxDQUFDUSxPQUFPLElBQzVDQyxlQUFlRixrQkFBbUIsR0FBRztRQUUzQyxPQUFPRTtJQUNUO0lBRUFDLFNBQVNDLEtBQUssRUFBRWhCLE9BQU8sRUFBRWlCLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ3RDLElBQUlDO1FBRUosTUFBTUMsMEJBQTBCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFF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
|
|
@@ -11,8 +11,6 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
const _occamlanguages = require("occam-languages");
|
|
12
12
|
const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
|
|
13
13
|
const _assertion = /*#__PURE__*/ _interop_require_default(require("../assertion"));
|
|
14
|
-
const _state = require("../../utilities/state");
|
|
15
|
-
const _context = require("../../utilities/context");
|
|
16
14
|
function _interop_require_default(obj) {
|
|
17
15
|
return obj && obj.__esModule ? obj : {
|
|
18
16
|
default: obj
|
|
@@ -59,7 +57,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
59
57
|
}
|
|
60
58
|
return newObj;
|
|
61
59
|
}
|
|
62
|
-
const { unbreakable } = _occamlanguages.breakPointUtilities, { cut, all, some, every
|
|
60
|
+
const { unbreakable } = _occamlanguages.breakPointUtilities, { cut, all, some, every } = _occamlanguages.continuationUtilities;
|
|
63
61
|
const _default = (0, _elements.define)(class SchemaAssertion extends _assertion.default {
|
|
64
62
|
constructor(context, string, node, breakPoint, link, frame){
|
|
65
63
|
super(context, string, node, breakPoint);
|
|
@@ -101,27 +99,6 @@ const _default = (0, _elements.define)(class SchemaAssertion extends _assertion.
|
|
|
101
99
|
return forward(implicitAssumptions, context, back);
|
|
102
100
|
}, back);
|
|
103
101
|
}
|
|
104
|
-
verify = unbreakable(function(context, forward, back) {
|
|
105
|
-
forward = cut(forward, back); ///
|
|
106
|
-
const schemaAssertionString = this.getString(); ///
|
|
107
|
-
context.trace(`Verifying the '${schemaAssertionString}' schema assertion...`);
|
|
108
|
-
return isolate((context, forward, back)=>{
|
|
109
|
-
return (0, _state.declare)((state)=>{
|
|
110
|
-
return this.validate(state, context, (schemaAssertion, context, back)=>{
|
|
111
|
-
return forward(back);
|
|
112
|
-
}, back);
|
|
113
|
-
});
|
|
114
|
-
}, context, (context, back)=>{
|
|
115
|
-
context.debug(`...verified the '${schemaAssertionString}' schema assertion.`);
|
|
116
|
-
return forward(context, back);
|
|
117
|
-
}, (exception)=>{
|
|
118
|
-
if (exception) {
|
|
119
|
-
return back(exception);
|
|
120
|
-
}
|
|
121
|
-
context.trace(`Unable to verify the '${schemaAssertionString}' schema assertion.`);
|
|
122
|
-
return back();
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
102
|
apply = unbreakable(function(step, context, forward, back) {
|
|
126
103
|
forward = cut(forward, back); ///
|
|
127
104
|
const schemas = context.getSchemas(), statement = step.getStatement(), schemaAssertion = this, schemaAssertionString = this.getString(); ///
|
|
@@ -134,22 +111,25 @@ const _default = (0, _elements.define)(class SchemaAssertion extends _assertion.
|
|
|
134
111
|
}, forward, back);
|
|
135
112
|
});
|
|
136
113
|
validate(state, context, forward, back) {
|
|
114
|
+
let assertion;
|
|
137
115
|
const schemaAssertionString = this.getString(); ///
|
|
138
116
|
context.trace(`Validating the '${schemaAssertionString}' schema assertion...`);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
117
|
+
assertion = this.findAssertion(context);
|
|
118
|
+
if (assertion !== null) {
|
|
119
|
+
const schemaAssertion = assertion; ///
|
|
120
|
+
context.debug(`The '${schemaAssertionString}' schema assertion is already present.`);
|
|
121
|
+
return forward(schemaAssertion, context, back);
|
|
122
|
+
}
|
|
123
|
+
assertion = this; ///
|
|
124
|
+
const validateLink = this.validateLink.bind(this), validateFrame = this.validateFrame.bind(this);
|
|
125
|
+
return all([
|
|
126
|
+
validateLink,
|
|
127
|
+
validateFrame
|
|
128
|
+
], state, context, (state, context, back)=>{
|
|
129
|
+
context.addAssertion(assertion);
|
|
130
|
+
const schemaAssertion = assertion; ///
|
|
151
131
|
context.debug(`...validated the '${schemaAssertionString}' schema assertion.`);
|
|
152
|
-
return forward(context, back);
|
|
132
|
+
return forward(schemaAssertion, context, back);
|
|
153
133
|
}, back);
|
|
154
134
|
}
|
|
155
135
|
validateLink(state, context, forward, back) {
|
|
@@ -173,4 +153,4 @@ const _default = (0, _elements.define)(class SchemaAssertion extends _assertion.
|
|
|
173
153
|
static name = "SchemaAssertion";
|
|
174
154
|
});
|
|
175
155
|
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zY2hlbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgZGVjbGFyZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RhdGVcIjtcbmltcG9ydCB7IGF0dGVtcHQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyB1bmJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcyxcbiAgICAgIHsgY3V0LCBhbGwsIHNvbWUsIGV2ZXJ5LCBpc29sYXRlIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTY2hlbWFBc3NlcnRpb24gZXh0ZW5kcyBBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGxpbmssIGZyYW1lKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubGluayA9IGxpbms7XG4gICAgdGhpcy5mcmFtZSA9IGZyYW1lO1xuICB9XG5cbiAgZ2V0TGluaygpIHtcbiAgICByZXR1cm4gdGhpcy5saW5rO1xuICB9XG5cbiAgZ2V0RnJhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJhbWU7XG4gIH1cblxuICBnZXRTY2hlbWFBc3NlcnRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBzY2hlbWFBc3NlcnRpb25Ob2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHNjaGVtYUFzc2VydGlvbk5vZGU7XG4gIH1cblxuICBpc1Npbmd1bGFyKCkgeyByZXR1cm4gdGhpcy5mcmFtZS5pc1Npbmd1bGFyKCk7IH1cblxuICBnZXRBc3N1bXB0aW9ucygpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0QXNzdW1wdGlvbnMoKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBnZXRJbXBsaWNpdEFzc3VtcHRpb25zKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBpbXBsaWNpdEFzc3VtcHRpb25zID0gW10sXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gdGhpcy5nZXRNZXRhdmFyaWFibGUoKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGltcGxpY2l0QXNzdW1wdGlvbnMsIGNvbnRleHQsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGZhY3RzID0gY29udGV4dC5nZXRGYWN0cygpO1xuXG4gICAgZmFjdHMuZm9yRWFjaCgoZmFjdCkgPT4ge1xuICAgICAgY29uc3QgeyBJbXBsaWNpdEFzc3VtcHRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgc3RhdGVtZW50ID0gZmFjdC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IEltcGxpY2l0QXNzdW1wdGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICAgIGltcGxpY2l0QXNzdW1wdGlvbnMucHVzaChpbXBsaWNpdEFzc3VtcHRpb24pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGV2ZXJ5KGltcGxpY2l0QXNzdW1wdGlvbnMsIChpbXBsaWNpdEFzc3VtcHRpb24sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBpbXBsaWNpdEFzc3VtcHRpb24udmVyaWZ5KGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gZm9yd2FyZChpbXBsaWNpdEFzc3VtcHRpb25zLCBjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZlcmlmeSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgZm9yd2FyZCA9IGN1dChmb3J3YXJkLCBiYWNrKTsgLy8vXG5cbiAgICBjb25zdCBzY2hlbWFBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c2NoZW1hQXNzZXJ0aW9uU3RyaW5nfScgc2NoZW1hIGFzc2VydGlvbi4uLmApO1xuXG4gICAgcmV0dXJuIGlzb2xhdGUoKGNvbnRleHQsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHNjaGVtYUFzc2VydGlvbiwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgICAgICB9LCBiYWNrKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c2NoZW1hQXNzZXJ0aW9uU3RyaW5nfScgc2NoZW1hIGFzc2VydGlvbi5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgfSwgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtzY2hlbWFBc3NlcnRpb25TdHJpbmd9JyBzY2hlbWEgYXNzZXJ0aW9uLmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH0pO1xuICB9KTtcblxuICBhcHBseSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChzdGVwLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgZm9yd2FyZCA9IGN1dChmb3J3YXJkLCBiYWNrKTsgLy8vXG5cbiAgICBjb25zdCBzY2hlbWFzID0gY29udGV4dC5nZXRTY2hlbWFzKCksXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RlcC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzY2hlbWFBc3NlcnRpb24gPSB0aGlzLCAvLy9cbiAgICAgICAgICBzY2hlbWFBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEFwcGx5aW5nIHRoZSAnJHtzY2hlbWFBc3NlcnRpb25TdHJpbmd9JyBzY2hlbWEgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICByZXR1cm4gc29tZShzY2hlbWFzLCAoc2NoZW1hLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gc2NoZW1hLmFwcGx5KHN0YXRlbWVudCwgc2NoZW1hQXNzZXJ0aW9uLCBjb250ZXh0LCAoY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi5hcHBsaWVkIHRoZSAnJHtzY2hlbWFBc3NlcnRpb25TdHJpbmd9JyBzY2hlbWEgYXNzZXJ0aW9uLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgZm9yd2FyZCwgYmFjayk7XG4gIH0pO1xuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3Qgc2NoZW1hQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2NoZW1hQXNzZXJ0aW9uU3RyaW5nfScgc2NoZW1hIGFzc2VydGlvbi4uLmApO1xuXG4gICAgcmV0dXJuIGlzb2xhdGUoKHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICByZXR1cm4gYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZUxpbmsgPSB0aGlzLnZhbGlkYXRlTGluay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICB2YWxpZGF0ZUZyYW1lID0gdGhpcy52YWxpZGF0ZUZyYW1lLmJpbmQodGhpcyk7XG5cbiAgICAgICAgcmV0dXJuIGFsbChbXG4gICAgICAgICAgdmFsaWRhdGVMaW5rLFxuICAgICAgICAgIHZhbGlkYXRlRnJhbWVcbiAgICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcndhcmQoYmFjayk7XG4gICAgICAgIH0sIGJhY2spO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzY2hlbWFBc3NlcnRpb25TdHJpbmd9JyBzY2hlbWEgYXNzZXJ0aW9uLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZhbGlkYXRlTGluayhzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNjaGVtYUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NjaGVtYUFzc2VydGlvblN0cmluZ30nIHNjaGVtYSBhc3NlcnRpb24ncyBsaW5rLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5saW5rLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAobGluaywgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgdGhpcy5saW5rID0gbGluaztcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzY2hlbWFBc3NlcnRpb25TdHJpbmd9JyBzY2hlbWEgYXNzZXJ0aW9uJ3MgbGluay5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgdmFsaWRhdGVGcmFtZShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNjaGVtYUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NjaGVtYUFzc2VydGlvblN0cmluZ30nIHNjaGVtYSBhc3NlcnRpb24ncyBmcmFtZS4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMuZnJhbWUudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChmcmFtZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgdGhpcy5mcmFtZSA9IGZyYW1lO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NjaGVtYUFzc2VydGlvblN0cmluZ30nIHNjaGVtYSBhc3NlcnRpb24ncyBmcmFtZS5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNjaGVtYUFzc2VydGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsidW5icmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY3V0IiwiYWxsIiwic29tZSIsImV2ZXJ5IiwiaXNvbGF0ZSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlNjaGVtYUFzc2VydGlvbiIsIkFzc2VydGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImxpbmsiLCJmcmFtZSIsImdldExpbmsiLCJnZXRGcmFtZSIsImdldFNjaGVtYUFzc2VydGlvbk5vZGUiLCJnZXROb2RlIiwic2NoZW1hQXNzZXJ0aW9uTm9kZSIsImlzU2luZ3VsYXIiLCJnZXRBc3N1bXB0aW9ucyIsImdldE1ldGF2YXJpYWJsZSIsImdldEltcGxpY2l0QXNzdW1wdGlvbnMiLCJmb3J3YXJkIiwiYmFjayIsImltcGxpY2l0QXNzdW1wdGlvbnMiLCJtZXRhdmFyaWFibGUiLCJmYWN0cyIsImdldEZhY3RzIiwiZm9yRWFjaCIsImZhY3QiLCJJbXBsaWNpdEFzc3VtcHRpb24iLCJlbGVtZW50cyIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImltcGxpY2l0QXNzdW1wdGlvbiIsImZyb21TdGF0ZW1lbnQiLCJwdXNoIiwidmVyaWZ5Iiwic2NoZW1hQXNzZXJ0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJkZWNsYXJlIiwic3RhdGUiLCJ2YWxpZGF0ZSIsInNjaGVtYUFzc2VydGlvbiIsImRlYnVnIiwiZXhjZXB0aW9uIiwiYXBwbHkiLCJzdGVwIiwic2NoZW1hcyIsImdldFNjaGVtYXMiLCJzY2hlbWEiLCJhdHRlbXB0IiwidmFsaWRhdGVMaW5rIiwiYmluZCIsInZhbGlkYXRlRnJhbWUiLCJjb21taXQiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnQ0FaMkQ7a0VBRXRDO2tFQUNDO3VCQUdFO3lCQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zY2hlbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5jb25zdCB7IHVuYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzLFxuICAgICAgeyBjdXQsIGFsbCwgc29tZSwgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNjaGVtYUFzc2VydGlvbiBleHRlbmRzIEFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbGluaywgZnJhbWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5saW5rID0gbGluaztcbiAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG4gIH1cblxuICBnZXRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmxpbms7XG4gIH1cblxuICBnZXRGcmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mcmFtZTtcbiAgfVxuXG4gIGdldFNjaGVtYUFzc2VydGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNjaGVtYUFzc2VydGlvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gc2NoZW1hQXNzZXJ0aW9uTm9kZTtcbiAgfVxuXG4gIGlzU2luZ3VsYXIoKSB7IHJldHVybiB0aGlzLmZyYW1lLmlzU2luZ3VsYXIoKTsgfVxuXG4gIGdldEFzc3VtcHRpb25zKCkgeyByZXR1cm4gdGhpcy5mcmFtZS5nZXRBc3N1bXB0aW9ucygpOyB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkgeyByZXR1cm4gdGhpcy5mcmFtZS5nZXRNZXRhdmFyaWFibGUoKTsgfVxuXG4gIGdldEltcGxpY2l0QXNzdW1wdGlvbnMoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvbnMgPSBbXSxcbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSB0aGlzLmdldE1ldGF2YXJpYWJsZSgpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoaW1wbGljaXRBc3N1bXB0aW9ucywgY29udGV4dCwgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZmFjdHMgPSBjb250ZXh0LmdldEZhY3RzKCk7XG5cbiAgICBmYWN0cy5mb3JFYWNoKChmYWN0KSA9PiB7XG4gICAgICBjb25zdCB7IEltcGxpY2l0QXNzdW1wdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICBzdGF0ZW1lbnQgPSBmYWN0LmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9uID0gSW1wbGljaXRBc3N1bXB0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICAgICAgaW1wbGljaXRBc3N1bXB0aW9ucy5wdXNoKGltcGxpY2l0QXNzdW1wdGlvbik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXZlcnkoaW1wbGljaXRBc3N1bXB0aW9ucywgKGltcGxpY2l0QXNzdW1wdGlvbiwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvbi52ZXJpZnkoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGltcGxpY2l0QXNzdW1wdGlvbnMsIGNvbnRleHQsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgYXBwbHkgPSB1bmJyZWFrYWJsZShmdW5jdGlvbiAoc3RlcCwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGZvcndhcmQgPSBjdXQoZm9yd2FyZCwgYmFjayk7IC8vL1xuXG4gICAgY29uc3Qgc2NoZW1hcyA9IGNvbnRleHQuZ2V0U2NoZW1hcygpLFxuICAgICAgICAgIHN0YXRlbWVudCA9IHN0ZXAuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc2NoZW1hQXNzZXJ0aW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgc2NoZW1hQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBBcHBseWluZyB0aGUgJyR7c2NoZW1hQXNzZXJ0aW9uU3RyaW5nfScgc2NoZW1hIGFzc2VydGlvbi4uLmApO1xuXG4gICAgcmV0dXJuIHNvbWUoc2NoZW1hcywgKHNjaGVtYSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHNjaGVtYS5hcHBseShzdGF0ZW1lbnQsIHNjaGVtYUFzc2VydGlvbiwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uYXBwbGllZCB0aGUgJyR7c2NoZW1hQXNzZXJ0aW9uU3RyaW5nfScgc2NoZW1hIGFzc2VydGlvbi5gKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICAgIH0sIGJhY2spO1xuICAgIH0sIGZvcndhcmQsIGJhY2spO1xuICB9KTtcblxuICB2YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGxldCBhc3NlcnRpb247XG5cbiAgICBjb25zdCBzY2hlbWFBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzY2hlbWFBc3NlcnRpb25TdHJpbmd9JyBzY2hlbWEgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBhc3NlcnRpb24gPSB0aGlzLmZpbmRBc3NlcnRpb24oY29udGV4dCk7XG5cbiAgICBpZiAoYXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzY2hlbWFBc3NlcnRpb24gPSBhc3NlcnRpb247IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7c2NoZW1hQXNzZXJ0aW9uU3RyaW5nfScgc2NoZW1hIGFzc2VydGlvbiBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHNjaGVtYUFzc2VydGlvbiwgY29udGV4dCwgYmFjayk7XG4gICAgfVxuXG4gICAgYXNzZXJ0aW9uID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCB2YWxpZGF0ZUxpbmsgPSB0aGlzLnZhbGlkYXRlTGluay5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZhbGlkYXRlRnJhbWUgPSB0aGlzLnZhbGlkYXRlRnJhbWUuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBhbGwoW1xuICAgICAgdmFsaWRhdGVMaW5rLFxuICAgICAgdmFsaWRhdGVGcmFtZVxuICAgIF0sIHN0YXRlLCBjb250ZXh0LCAoc3RhdGUsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgIGNvbnN0IHNjaGVtYUFzc2VydGlvbiA9IGFzc2VydGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2NoZW1hQXNzZXJ0aW9uU3RyaW5nfScgc2NoZW1hIGFzc2VydGlvbi5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoc2NoZW1hQXNzZXJ0aW9uLCBjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZhbGlkYXRlTGluayhzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNjaGVtYUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NjaGVtYUFzc2VydGlvblN0cmluZ30nIHNjaGVtYSBhc3NlcnRpb24ncyBsaW5rLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5saW5rLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAobGluaywgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgdGhpcy5saW5rID0gbGluaztcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzY2hlbWFBc3NlcnRpb25TdHJpbmd9JyBzY2hlbWEgYXNzZXJ0aW9uJ3MgbGluay5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgdmFsaWRhdGVGcmFtZShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNjaGVtYUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NjaGVtYUFzc2VydGlvblN0cmluZ30nIHNjaGVtYSBhc3NlcnRpb24ncyBmcmFtZS4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMuZnJhbWUudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChmcmFtZSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgdGhpcy5mcmFtZSA9IGZyYW1lO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NjaGVtYUFzc2VydGlvblN0cmluZ30nIHNjaGVtYSBhc3NlcnRpb24ncyBmcmFtZS5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoc3RhdGUsIGNvbnRleHQsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNjaGVtYUFzc2VydGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsidW5icmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY3V0IiwiYWxsIiwic29tZSIsImV2ZXJ5IiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZGVmaW5lIiwiU2NoZW1hQXNzZXJ0aW9uIiwiQXNzZXJ0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibGluayIsImZyYW1lIiwiZ2V0TGluayIsImdldEZyYW1lIiwiZ2V0U2NoZW1hQXNzZXJ0aW9uTm9kZSIsImdldE5vZGUiLCJzY2hlbWFBc3NlcnRpb25Ob2RlIiwiaXNTaW5ndWxhciIsImdldEFzc3VtcHRpb25zIiwiZ2V0TWV0YXZhcmlhYmxlIiwiZ2V0SW1wbGljaXRBc3N1bXB0aW9ucyIsImZvcndhcmQiLCJiYWNrIiwiaW1wbGljaXRBc3N1bXB0aW9ucyIsIm1ldGF2YXJpYWJsZSIsImZhY3RzIiwiZ2V0RmFjdHMiLCJmb3JFYWNoIiwiZmFjdCIsIkltcGxpY2l0QXNzdW1wdGlvbiIsImVsZW1lbnRzIiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiaW1wbGljaXRBc3N1bXB0aW9uIiwiZnJvbVN0YXRlbWVudCIsInB1c2giLCJ2ZXJpZnkiLCJhcHBseSIsInN0ZXAiLCJzY2hlbWFzIiwiZ2V0U2NoZW1hcyIsInNjaGVtYUFzc2VydGlvbiIsInNjaGVtYUFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwic2NoZW1hIiwiZGVidWciLCJ2YWxpZGF0ZSIsInN0YXRlIiwiYXNzZXJ0aW9uIiwiZmluZEFzc2VydGlvbiIsInZhbGlkYXRlTGluayIsImJpbmQiLCJ2YWxpZGF0ZUZyYW1lIiwiYWRkQXNzZXJ0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7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
|
|
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
const _occamlanguages = require("occam-languages");
|
|
12
12
|
const _assertion = /*#__PURE__*/ _interop_require_default(require("../assertion"));
|
|
13
13
|
const _elements = require("../../elements");
|
|
14
|
-
const _state = require("../../utilities/state");
|
|
15
14
|
const _context = require("../../utilities/context");
|
|
16
15
|
const _element = require("../../utilities/element");
|
|
17
16
|
function _interop_require_default(obj) {
|
|
@@ -19,7 +18,7 @@ function _interop_require_default(obj) {
|
|
|
19
18
|
default: obj
|
|
20
19
|
};
|
|
21
20
|
}
|
|
22
|
-
const {
|
|
21
|
+
const { unbreakable } = _occamlanguages.breakPointUtilities, { cut, all, every } = _occamlanguages.continuationUtilities;
|
|
23
22
|
const _default = (0, _elements.define)(class SignatureAssertion extends _assertion.default {
|
|
24
23
|
constructor(context, string, node, breakPoint, link, terms){
|
|
25
24
|
super(context, string, node, breakPoint);
|
|
@@ -36,109 +35,75 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
36
35
|
const node = this.getNode(), signatureAssertionNode = node; ///
|
|
37
36
|
return signatureAssertionNode;
|
|
38
37
|
}
|
|
39
|
-
verify = unbreakable(function(context, forward, back) {
|
|
40
|
-
forward = cut(forward, back); ///
|
|
41
|
-
const signatureAssertionString = this.getString(); ///
|
|
42
|
-
context.trace(`Verifying the '${signatureAssertionString}' signature assertion...`);
|
|
43
|
-
return (0, _state.declare)((state)=>{
|
|
44
|
-
return this.validate(state, context, (signatureAssertion, context, back)=>{
|
|
45
|
-
context.debug(`...verified the '${signatureAssertionString}' signature assertion.`);
|
|
46
|
-
return forward(context, back);
|
|
47
|
-
}, back);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
38
|
apply = unbreakable(function(step, factOrSubproofs, context, forward, back) {
|
|
51
39
|
forward = cut(forward, back); ///
|
|
52
|
-
let stepAndFactOrSubproofsUnify = false;
|
|
53
40
|
const signatureAssertionString = this.getString(); ///
|
|
54
41
|
context.trace(`Applying the '${signatureAssertionString}' signature assertion...`);
|
|
55
|
-
return (0, _context.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
});
|
|
64
|
-
}, context)
|
|
42
|
+
return (0, _context.isolate)((step, factOrSubproofs, context, forward, back)=>{
|
|
43
|
+
return (0, _context.reconcile)((context)=>{
|
|
44
|
+
const axiom = context.findAxiomByLink(this.link), signatureAssertion = this; ///
|
|
45
|
+
return axiom.unifySignatureAssertion(signatureAssertion, context, (context, back)=>{
|
|
46
|
+
axiom.apply(step, factOrSubproofs, context, (context, back)=>{
|
|
47
|
+
return forward(back);
|
|
48
|
+
}, back);
|
|
49
|
+
}, back);
|
|
50
|
+
}, context);
|
|
51
|
+
}, step, factOrSubproofs, context, (step, factOrSubproofs, context, back)=>{
|
|
52
|
+
context.debug(`applied the '${signatureAssertionString}' signature assertion.`);
|
|
53
|
+
return forward(context, back);
|
|
54
|
+
}, back);
|
|
65
55
|
});
|
|
66
56
|
validate(state, context, forward, back) {
|
|
57
|
+
let assertion;
|
|
67
58
|
const signatureAssertionString = this.getString(); ///
|
|
68
59
|
context.trace(`Validating the '${signatureAssertionString}' signature assertion...`);
|
|
60
|
+
assertion = this.findAssertion(context);
|
|
61
|
+
if (assertion !== null) {
|
|
62
|
+
const signatureAssertion = assertion; ///
|
|
63
|
+
context.debug(`The '${signatureAssertionString}' signature assertion is already present.`);
|
|
64
|
+
return forward(signatureAssertion, context, back);
|
|
65
|
+
}
|
|
69
66
|
assertion = this; ///
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
], state, context, (state, context)=>{
|
|
75
|
-
let validates1;
|
|
67
|
+
const validateLink = this.validateLink.bind(this), validateTerms = this.validateTerms.bind(this);
|
|
68
|
+
return all([
|
|
69
|
+
validateLink,
|
|
70
|
+
validateTerms
|
|
71
|
+
], state, context, (state, context, back)=>{
|
|
76
72
|
context.addAssertion(assertion);
|
|
77
73
|
const signatureAssertion = assertion; ///
|
|
78
|
-
validates1 = continuation(signatureAssertion, context);
|
|
79
|
-
return validates1;
|
|
80
|
-
});
|
|
81
|
-
if (validates) {
|
|
82
74
|
context.debug(`...validated the '${signatureAssertionString}' signature assertion.`);
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
return forward(signatureAssertion, context, back);
|
|
76
|
+
}, back);
|
|
85
77
|
}
|
|
86
78
|
validateTerm(term, terms, state, context, forward, back) {
|
|
87
|
-
let termValidates;
|
|
88
79
|
const termString = term.getString(), signatureAssertionString = this.getString(); ///
|
|
89
80
|
context.trace(`Validating the '${signatureAssertionString}' signature assertion's '${termString}' term...`);
|
|
90
|
-
|
|
91
|
-
let validates1;
|
|
81
|
+
return term.validate(state, context, (term, context, back)=>{
|
|
92
82
|
terms.push(term);
|
|
93
|
-
validates1 = continuation(terms, state, context);
|
|
94
|
-
return validates1;
|
|
95
|
-
});
|
|
96
|
-
if (termValidates) {
|
|
97
83
|
context.debug(`...validated the '${signatureAssertionString}' signature assertion's '${termString}' term.`);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
validateTerms(state, context, forward, back) {
|
|
102
|
-
let termsValidate;
|
|
103
|
-
const signatureAssertionString = this.getString(); ///
|
|
104
|
-
context.trace(`Validating the '${signatureAssertionString}' signature assertion's terms...`);
|
|
105
|
-
const terms = [], validateTerm = this.validateTerm.bind(this);
|
|
106
|
-
termsValidate = every(this.terms, validateTerm, terms, state, context, (terms, state, context)=>{
|
|
107
|
-
let termsValidate;
|
|
108
|
-
termsValidate = continuation(state, context);
|
|
109
|
-
if (termsValidate) {
|
|
110
|
-
this.terms = terms;
|
|
111
|
-
}
|
|
112
|
-
return termsValidate;
|
|
113
|
-
});
|
|
114
|
-
if (termsValidate) {
|
|
115
|
-
context.debug(`...validated the '${signatureAssertionString}' signature assertion's terms.`);
|
|
116
|
-
}
|
|
117
|
-
return termsValidate;
|
|
84
|
+
return forward(terms, state, context, back);
|
|
85
|
+
}, back);
|
|
118
86
|
}
|
|
119
87
|
validateLink(state, context, forward, back) {
|
|
120
|
-
let linkValidates;
|
|
121
88
|
const signatureAssertionString = this.getString(); ///
|
|
122
89
|
context.trace(`Validating the '${signatureAssertionString}' signature assertion's link...`);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const axiom = context.findAxiomByLink(link);
|
|
126
|
-
if (axiom !== null) {
|
|
127
|
-
const axiomSatisfiable = axiom.isSatisfiable();
|
|
128
|
-
if (axiomSatisfiable) {
|
|
129
|
-
validates1 = true;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (validates1) {
|
|
133
|
-
this.link = link;
|
|
134
|
-
validates1 = continuation(state, context);
|
|
135
|
-
}
|
|
136
|
-
return validates1;
|
|
137
|
-
});
|
|
138
|
-
if (linkValidates) {
|
|
90
|
+
return this.link.validate(state, context, (link, context, back)=>{
|
|
91
|
+
this.link = link;
|
|
139
92
|
context.debug(`...validated the '${signatureAssertionString}' signature assertion's link.`);
|
|
140
|
-
|
|
141
|
-
|
|
93
|
+
return forward(state, context, back);
|
|
94
|
+
}, back);
|
|
95
|
+
}
|
|
96
|
+
validateTerms(state, context, forward, back) {
|
|
97
|
+
const signatureAssertionString = this.getString(); ///
|
|
98
|
+
context.trace(`Validating the '${signatureAssertionString}' signature assertion's terms...`);
|
|
99
|
+
const terms = [];
|
|
100
|
+
return every(this.terms, (term, terms, state, context, forward, back)=>{
|
|
101
|
+
return this.validateTerm(term, terms, state, context, forward, back);
|
|
102
|
+
}, terms, state, context, (terms, state, context, back)=>{
|
|
103
|
+
this.terms = terms;
|
|
104
|
+
context.debug(`...validated the '${signatureAssertionString}' signature assertion's terms.`);
|
|
105
|
+
return forward(state, context, back);
|
|
106
|
+
}, back);
|
|
142
107
|
}
|
|
143
108
|
unifyClaim(claim, context, forward, back) {
|
|
144
109
|
const claimString = claim.getString(), signatureAssertionString = this.getString();
|
|
@@ -173,4 +138,4 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
173
138
|
}
|
|
174
139
|
});
|
|
175
140
|
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zaWduYXR1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgZGVjbGFyZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RhdGVcIjtcbmltcG9ydCB7IHJlY29uY2lsZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgc2lnbmF0dXJlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBjdXQgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgdW5icmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTaWduYXR1cmVBc3NlcnRpb24gZXh0ZW5kcyBBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGxpbmssIHRlcm1zKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubGluayA9IGxpbms7XG4gICAgdGhpcy50ZXJtcyA9IHRlcm1zO1xuICB9XG5cbiAgZ2V0VGVybXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybXM7XG4gIH1cblxuICBnZXRMaW5rKCkge1xuICAgIHJldHVybiB0aGlzLmxpbms7XG4gIH1cblxuICBnZXRTaWduYXR1cmVBc3NlcnRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25Ob2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbk5vZGU7XG4gIH1cblxuICB2ZXJpZnkgPSB1bmJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGZvcndhcmQgPSBjdXQoZm9yd2FyZCwgYmFjayk7IC8vL1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIHJldHVybiBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChzaWduYXR1cmVBc3NlcnRpb24sIGNvbnRleHQgLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGFwcGx5ID0gdW5icmVha2FibGUoZnVuY3Rpb24gKHN0ZXAsIGZhY3RPclN1YnByb29mcywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGZvcndhcmQgPSBjdXQoZm9yd2FyZCwgYmFjayk7IC8vL1xuXG4gICAgbGV0IHN0ZXBBbmRGYWN0T3JTdWJwcm9vZnNVbmlmeSA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQXBwbHlpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIHJldHVybiByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGF4aW9tID0gY29udGV4dC5maW5kQXhpb21CeUxpbmsodGhpcy5saW5rKSxcbiAgICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgcmV0dXJuIGF4aW9tLnVuaWZ5U2lnbmF0dXJlQXNzZXJ0aW9uKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCwgKHNpZ25hdHVyZUFzc2VydGlvblVuaWZpZXMpID0+IHtcbiAgICAgICAgaWYgKCFzaWduYXR1cmVBc3NlcnRpb25VbmlmaWVzKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdGVwQW5kRmFjdE9yU3VicHJvb2ZzVW5pZnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgYXBwbGllZCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcblxuICAgICAgICBheGlvbS51bmlmeVN0ZXBBbmRGYWN0T3JTdWJwcm9vZnMoc3RlcCwgZmFjdE9yU3VicHJvb2ZzLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9KTtcblxuICB2YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIGFzc2VydGlvbiA9IHRoaXM7IC8vL1xuXG4gICAgY29uc3QgdmFsaWRhdGVUZXJtcyA9IHRoaXMudmFsaWRhdGVUZXJtcy5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZhbGlkYXRlTGluayA9IHRoaXMudmFsaWRhdGVMaW5rLmJpbmQodGhpcyk7XG5cbiAgICB2YWxpZGF0ZXMgPSBhbGwoW1xuICAgICAgdmFsaWRhdGVUZXJtcyxcbiAgICAgIHZhbGlkYXRlTGlua1xuICAgIF0sIHN0YXRlLCBjb250ZXh0LCAoc3RhdGUsIGNvbnRleHQpID0+IHtcbiAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvbiA9IGFzc2VydGlvbjsgLy8vXG5cbiAgICAgIHZhbGlkYXRlcyA9IGNvbnRpbnVhdGlvbihzaWduYXR1cmVBc3NlcnRpb24sIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVRlcm0odGVybSwgdGVybXMsIHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgbGV0IHRlcm1WYWxpZGF0ZXM7XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgIHRlcm1WYWxpZGF0ZXMgPSB0ZXJtLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAodGVybSwgY29udGV4dCkgPT4ge1xuICAgICAgbGV0IHZhbGlkYXRlcztcblxuICAgICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHRlcm1zLCBzdGF0ZSwgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gICAgfSk7XG5cbiAgICBpZiAodGVybVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgJyR7dGVybVN0cmluZ30nIHRlcm0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1WYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVRlcm1zKHN0YXRlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgbGV0IHRlcm1zVmFsaWRhdGU7XG5cbiAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgdGVybXMuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgdmFsaWRhdGVUZXJtID0gdGhpcy52YWxpZGF0ZVRlcm0uYmluZCh0aGlzKTtcblxuICAgIHRlcm1zVmFsaWRhdGUgPSBldmVyeSh0aGlzLnRlcm1zLCB2YWxpZGF0ZVRlcm0sIHRlcm1zLCBzdGF0ZSwgY29udGV4dCwgKHRlcm1zLCBzdGF0ZSwgY29udGV4dCkgPT4ge1xuICAgICAgbGV0IHRlcm1zVmFsaWRhdGU7XG5cbiAgICAgIHRlcm1zVmFsaWRhdGUgPSBjb250aW51YXRpb24oc3RhdGUsIGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybXNWYWxpZGF0ZSkge1xuICAgICAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0ZXJtc1ZhbGlkYXRlO1xuICAgIH0pO1xuXG4gICAgaWYgKHRlcm1zVmFsaWRhdGUpe1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgdGVybXMuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1zVmFsaWRhdGVcbiAgfVxuXG4gIHZhbGlkYXRlTGluayhzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGxldCBsaW5rVmFsaWRhdGVzO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbidzIGxpbmsuLi5gKTtcblxuICAgIGxpbmtWYWxpZGF0ZXMgPSB0aGlzLmxpbmsudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChsaW5rLCBjb250ZXh0KSA9PiB7XG4gICAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IGF4aW9tID0gY29udGV4dC5maW5kQXhpb21CeUxpbmsobGluayk7XG5cbiAgICAgIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBheGlvbVNhdGlzZmlhYmxlID0gYXhpb20uaXNTYXRpc2ZpYWJsZSgpO1xuXG4gICAgICAgIGlmIChheGlvbVNhdGlzZmlhYmxlKSB7XG4gICAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIHRoaXMubGluayA9IGxpbms7XG5cbiAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHN0YXRlLCBjb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICB9KTtcblxuICAgIGlmIChsaW5rVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyBsaW5rLmApO1xuICAgIH1cblxuICAgIHJldHVybiBsaW5rVmFsaWRhdGVzO1xuICB9XG5cbiAgdW5pZnlDbGFpbShjbGFpbSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGNsYWltU3RyaW5nID0gY2xhaW0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtjbGFpbVN0cmluZ30nIGNsYWltIHdpdGggdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIHJldHVybiByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGF4aW9tID0gY29udGV4dC5maW5kQXhpb21CeUxpbmsodGhpcy5saW5rKTtcblxuICAgICAgcmV0dXJuIGF4aW9tLnVuaWZ5VGVybXModGhpcy50ZXJtcywgY29udGV4dCwgKHRlcm1zVW5pZnkpID0+IHtcbiAgICAgICAgaWYgKCF0ZXJtc1VuaWZ5KSB7XG4gICAgICAgICAgY29uc3QgY2xhaW1VbmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKGNsYWltVW5pZmllcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXhpb20udW5pZnlDbGFpbShjbGFpbSwgY29udGV4dCwgKGNsYWltVW5pZmllcykgPT4ge1xuICAgICAgICAgIGlmIChjbGFpbVVuaWZpZXMpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke2NsYWltU3RyaW5nfScgY2xhaW0gd2l0aCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2xhaW1VbmlmaWVzKSB7XG4gICAgICAgICAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oY2xhaW1VbmlmaWVzKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJTaWduYXR1cmVBc3NlcnRpb25cIjtcblxuICBzdGF0aWMgZnJvbVN0ZXAoc3RlcCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGVwLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImN1dCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsInVuYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlNpZ25hdHVyZUFzc2VydGlvbiIsIkFzc2VydGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImxpbmsiLCJ0ZXJtcyIsImdldFRlcm1zIiwiZ2V0TGluayIsImdldFNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJnZXROb2RlIiwic2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsInZlcmlmeSIsImZvcndhcmQiLCJiYWNrIiwic2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJkZWNsYXJlIiwic3RhdGUiLCJ2YWxpZGF0ZSIsInNpZ25hdHVyZUFzc2VydGlvbiIsImRlYnVnIiwiYXBwbHkiLCJzdGVwIiwiZmFjdE9yU3VicHJvb2ZzIiwic3RlcEFuZEZhY3RPclN1YnByb29mc1VuaWZ5IiwicmVjb25jaWxlIiwiYXhpb20iLCJmaW5kQXhpb21CeUxpbmsiLCJ1bmlmeVNpZ25hdHVyZUFzc2VydGlvbiIsInNpZ25hdHVyZUFzc2VydGlvblVuaWZpZXMiLCJjb250aW51YXRpb24iLCJ1bmlmeVN0ZXBBbmRGYWN0T3JTdWJwcm9vZnMiLCJhc3NlcnRpb24iLCJ2YWxpZGF0ZVRlcm1zIiwiYmluZCIsInZhbGlkYXRlTGluayIsInZhbGlkYXRlcyIsImFsbCIsImFkZEFzc2VydGlvbiIsInZhbGlkYXRlVGVybSIsInRlcm0iLCJ0ZXJtVmFsaWRhdGVzIiwidGVybVN0cmluZyIsInB1c2giLCJ0ZXJtc1ZhbGlkYXRlIiwiZXZlcnkiLCJsaW5rVmFsaWRhdGVzIiwiYXhpb21TYXRpc2ZpYWJsZSIsImlzU2F0aXNmaWFibGUiLCJ1bmlmeUNsYWltIiwiY2xhaW0iLCJjbGFpbVN0cmluZyIsInVuaWZ5VGVybXMiLCJ0ZXJtc1VuaWZ5IiwiY2xhaW1VbmlmaWVzIiwiY29tbWl0IiwibmFtZSIsImZyb21TdGVwIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVoyRDtrRUFFckM7MEJBRUM7dUJBQ0M7eUJBQ0U7eUJBQzBCOzs7Ozs7QUFFcEQsTUFBTSxFQUFFQSxHQUFHLEVBQUUsR0FBR0MscUNBQXFCLEVBQy9CLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFM0MsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQywyQkFBMkJDLGtCQUFTO0lBQzlELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLENBQUU7UUFDMUQsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSCxJQUFJO0lBQ2xCO0lBRUFJLDRCQUE0QjtRQUMxQixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMseUJBQXlCUixNQUFPLEdBQUc7UUFFekMsT0FBT1E7SUFDVDtJQUVBQyxTQUFTaEIsWUFBWSxTQUFVSyxPQUFPLEVBQUVZLE9BQU8sRUFBRUMsSUFBSTtRQUNuREQsVUFBVW5CLElBQUltQixTQUFTQyxPQUFPLEdBQUc7UUFFakMsTUFBTUMsMkJBQTJCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFdERmLFFBQVFnQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLHlCQUF5Qix3QkFBd0IsQ0FBQztRQUVsRixPQUFPRyxJQUFBQSxjQUFPLEVBQUMsQ0FBQ0M7WUFDZCxPQUFPLElBQUksQ0FBQ0MsUUFBUSxDQUFDRCxPQUFPbEIsU0FBUyxDQUFDb0Isb0JBQW9CcEIsU0FBVWE7Z0JBQ2xFYixRQUFRcUIsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVQLHlCQUF5QixzQkFBc0IsQ0FBQztnQkFFbEYsT0FBT0YsUUFBUVosU0FBU2E7WUFDMUIsR0FBR0E7UUFDTDtJQUNGLEdBQUc7SUFFSFMsUUFBUTNCLFlBQVksU0FBVTRCLElBQUksRUFBRUMsZUFBZSxFQUFFeEIsT0FBTyxFQUFFWSxPQUFPLEVBQUVDLElBQUk7UUFDekVELFVBQVVuQixJQUFJbUIsU0FBU0MsT0FBTyxHQUFHO1FBRWpDLElBQUlZLDhCQUE4QjtRQUVsQyxNQUFNWCwyQkFBMkIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUV2RGYsUUFBUWdCLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRUYseUJBQXlCLHdCQUF3QixDQUFDO1FBRWpGLE9BQU9ZLElBQUFBLGtCQUFTLEVBQUMsQ0FBQzFCO1lBQ2hCLE1BQU0yQixRQUFRM0IsUUFBUTRCLGVBQWUsQ0FBQyxJQUFJLENBQUN4QixJQUFJLEdBQ3pDZ0IscUJBQXFCLElBQUksRUFBRyxHQUFHO1lBRXJDLE9BQU9PLE1BQU1FLHVCQUF1QixDQUFDVCxvQkFBb0JwQixTQUFTLENBQUM4QjtnQkFDakUsSUFBSSxDQUFDQSwyQkFBMkI7b0JBQzlCLE9BQU9DLGFBQWFOO2dCQUN0QjtnQkFFQXpCLFFBQVFxQixLQUFLLENBQUMsQ0FBQyxhQUFhLEVBQUVQLHlCQUF5QixzQkFBc0IsQ0FBQztnQkFFOUVhLE1BQU1LLDJCQUEyQixDQUFDVCxNQUFNQyxpQkFBaUJ4QixTQUFTWSxTQUFTQztZQUM3RTtRQUNGLEdBQUdiO0lBQ0wsR0FBRztJQUVIbUIsU0FBU0QsS0FBSyxFQUFFbEIsT0FBTyxFQUFFWSxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUN0QyxNQUFNQywyQkFBMkIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUV2RGYsUUFBUWdCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRix5QkFBeUIsd0JBQXdCLENBQUM7UUFFbkZtQixZQUFZLElBQUksRUFBRSxHQUFHO1FBRXJCLE1BQU1DLGdCQUFnQixJQUFJLENBQUNBLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDLElBQUksR0FDNUNDLGVBQWUsSUFBSSxDQUFDQSxZQUFZLENBQUNELElBQUksQ0FBQyxJQUFJO1FBRWhERSxZQUFZQyxJQUFJO1lBQ2RKO1lBQ0FFO1NBQ0QsRUFBRWxCLE9BQU9sQixTQUFTLENBQUNrQixPQUFPbEI7WUFDekIsSUFBSXFDO1lBRUpyQyxRQUFRdUMsWUFBWSxDQUFDTjtZQUVyQixNQUFNYixxQkFBcUJhLFdBQVcsR0FBRztZQUV6Q0ksYUFBWU4sYUFBYVgsb0JBQW9CcEI7WUFFN0MsT0FBT3FDO1FBQ1Q7UUFFQSxJQUFJQSxXQUFXO1lBQ2JyQyxRQUFRcUIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVQLHlCQUF5QixzQkFBc0IsQ0FBQztRQUNyRjtRQUVBLE9BQU91QjtJQUNUO0lBRUFHLGFBQWFDLElBQUksRUFBRXBDLEtBQUssRUFBRWEsS0FBSyxFQUFFbEIsT0FBTyxFQUFFWSxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUN2RCxJQUFJNkI7UUFFSixNQUFNQyxhQUFhRixLQUFLMUIsU0FBUyxJQUMzQkQsMkJBQTJCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFdkRmLFFBQVFnQixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYseUJBQXlCLHlCQUF5QixFQUFFNkIsV0FBVyxTQUFTLENBQUM7UUFFMUdELGdCQUFnQkQsS0FBS3RCLFFBQVEsQ0FBQ0QsT0FBT2xCLFNBQVMsQ0FBQ3lDLE1BQU16QztZQUNuRCxJQUFJcUM7WUFFSmhDLE1BQU11QyxJQUFJLENBQUNIO1lBRVhKLGFBQVlOLGFBQWExQixPQUFPYSxPQUFPbEI7WUFFdkMsT0FBT3FDO1FBQ1Q7UUFFQSxJQUFJSyxlQUFlO1lBQ2pCMUMsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFUCx5QkFBeUIseUJBQXlCLEVBQUU2QixXQUFXLE9BQU8sQ0FBQztRQUM1RztRQUVBLE9BQU9EO0lBQ1Q7SUFFQVIsY0FBY2hCLEtBQUssRUFBRWxCLE9BQU8sRUFBRVksT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDM0MsSUFBSWdDO1FBRUosTUFBTS9CLDJCQUEyQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRXZEZixRQUFRZ0IsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLHlCQUF5QixnQ0FBZ0MsQ0FBQztRQUUzRixNQUFNVCxRQUFRLEVBQUUsRUFDVm1DLGVBQWUsSUFBSSxDQUFDQSxZQUFZLENBQUNMLElBQUksQ0FBQyxJQUFJO1FBRWhEVSxnQkFBZ0JDLE1BQU0sSUFBSSxDQUFDekMsS0FBSyxFQUFFbUMsY0FBY25DLE9BQU9hLE9BQU9sQixTQUFTLENBQUNLLE9BQU9hLE9BQU9sQjtZQUNwRixJQUFJNkM7WUFFSkEsZ0JBQWdCZCxhQUFhYixPQUFPbEI7WUFFcEMsSUFBSTZDLGVBQWU7Z0JBQ2pCLElBQUksQ0FBQ3hDLEtBQUssR0FBR0E7WUFDZjtZQUVBLE9BQU93QztRQUNUO1FBRUEsSUFBSUEsZUFBYztZQUNoQjdDLFFBQVFxQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRVAseUJBQXlCLDhCQUE4QixDQUFDO1FBQzdGO1FBRUEsT0FBTytCO0lBQ1Q7SUFFQVQsYUFBYWxCLEtBQUssRUFBRWxCLE9BQU8sRUFBRVksT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDMUMsSUFBSWtDO1FBRUosTUFBTWpDLDJCQUEyQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRXZEZixRQUFRZ0IsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLHlCQUF5QiwrQkFBK0IsQ0FBQztRQUUxRmlDLGdCQUFnQixJQUFJLENBQUMzQyxJQUFJLENBQUNlLFFBQVEsQ0FBQ0QsT0FBT2xCLFNBQVMsQ0FBQ0ksTUFBTUo7WUFDeEQsSUFBSXFDLGFBQVk7WUFFaEIsTUFBTVYsUUFBUTNCLFFBQVE0QixlQUFlLENBQUN4QjtZQUV0QyxJQUFJdUIsVUFBVSxNQUFNO2dCQUNsQixNQUFNcUIsbUJBQW1CckIsTUFBTXNCLGFBQWE7Z0JBRTVDLElBQUlELGtCQUFrQjtvQkFDcEJYLGFBQVk7Z0JBQ2Q7WUFDRjtZQUVBLElBQUlBLFlBQVc7Z0JBQ2IsSUFBSSxDQUFDakMsSUFBSSxHQUFHQTtnQkFFWmlDLGFBQVlOLGFBQWFiLE9BQU9sQjtZQUNsQztZQUVBLE9BQU9xQztRQUNUO1FBRUEsSUFBSVUsZUFBZTtZQUNqQi9DLFFBQVFxQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRVAseUJBQXlCLDZCQUE2QixDQUFDO1FBQzVGO1FBRUEsT0FBT2lDO0lBQ1Q7SUFFQUcsV0FBV0MsS0FBSyxFQUFFbkQsT0FBTyxFQUFFWSxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUN4QyxNQUFNdUMsY0FBY0QsTUFBTXBDLFNBQVMsSUFDN0JELDJCQUEyQixJQUFJLENBQUNDLFNBQVM7UUFFL0NmLFFBQVFnQixLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUVvQyxZQUFZLGtCQUFrQixFQUFFdEMseUJBQXlCLHdCQUF3QixDQUFDO1FBRWpILE9BQU9ZLElBQUFBLGtCQUFTLEVBQUMsQ0FBQzFCO1lBQ2hCLE1BQU0yQixRQUFRM0IsUUFBUTRCLGVBQWUsQ0FBQyxJQUFJLENBQUN4QixJQUFJO1lBRS9DLE9BQU91QixNQUFNMEIsVUFBVSxDQUFDLElBQUksQ0FBQ2hELEtBQUssRUFBRUwsU0FBUyxDQUFDc0Q7Z0JBQzVDLElBQUksQ0FBQ0EsWUFBWTtvQkFDZixNQUFNQyxlQUFlO29CQUVyQixPQUFPeEIsYUFBYXdCO2dCQUN0QjtnQkFFQSxPQUFPNUIsTUFBTXVCLFVBQVUsQ0FBQ0MsT0FBT25ELFNBQVMsQ0FBQ3VEO29CQUN2QyxJQUFJQSxjQUFjO3dCQUNoQnZELFFBQVFxQixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRStCLFlBQVksa0JBQWtCLEVBQUV0Qyx5QkFBeUIsc0JBQXNCLENBQUM7b0JBQ25IO29CQUVBLElBQUl5QyxjQUFjO3dCQUNoQnZELFFBQVF3RCxNQUFNO29CQUNoQjtvQkFFQSxPQUFPekIsYUFBYXdCO2dCQUN0QjtZQUNGO1FBQ0YsR0FBR3ZEO0lBQ0w7SUFFQSxPQUFPeUQsT0FBTyxxQkFBcUI7SUFFbkMsT0FBT0MsU0FBU25DLElBQUksRUFBRXZCLE9BQU8sRUFBRTtRQUM3QixNQUFNMkQsZ0JBQWdCcEMsS0FBS3FDLGdCQUFnQixJQUNyQ3hDLHFCQUFxQnlDLElBQUFBLDRDQUFtQyxFQUFDRixlQUFlM0Q7UUFFOUUsT0FBT29CO0lBQ1Q7SUFFQSxPQUFPMEMsY0FBY0MsU0FBUyxFQUFFL0QsT0FBTyxFQUFFO1FBQ3ZDLE1BQU0yRCxnQkFBZ0JJLFVBQVV0RCxPQUFPLElBQ2pDVyxxQkFBcUJ5QyxJQUFBQSw0Q0FBbUMsRUFBQ0YsZUFBZTNEO1FBRTlFLE9BQU9vQjtJQUNUO0FBQ0YifQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zaWduYXR1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaXNvbGF0ZSwgcmVjb25jaWxlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5jb25zdCB7IHVuYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzLFxuICAgICAgeyBjdXQsIGFsbCwgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNpZ25hdHVyZUFzc2VydGlvbiBleHRlbmRzIEFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbGluaywgdGVybXMpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5saW5rID0gbGluaztcbiAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gIH1cblxuICBnZXRUZXJtcygpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtcztcbiAgfVxuXG4gIGdldExpbmsoKSB7XG4gICAgcmV0dXJuIHRoaXMubGluaztcbiAgfVxuXG4gIGdldFNpZ25hdHVyZUFzc2VydGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gc2lnbmF0dXJlQXNzZXJ0aW9uTm9kZTtcbiAgfVxuXG4gIGFwcGx5ID0gdW5icmVha2FibGUoZnVuY3Rpb24gKHN0ZXAsIGZhY3RPclN1YnByb29mcywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGZvcndhcmQgPSBjdXQoZm9yd2FyZCwgYmFjayk7IC8vL1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQXBwbHlpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIHJldHVybiBpc29sYXRlKChzdGVwLCBmYWN0T3JTdWJwcm9vZnMsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgYXhpb20gPSBjb250ZXh0LmZpbmRBeGlvbUJ5TGluayh0aGlzLmxpbmspLFxuICAgICAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSB0aGlzOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIGF4aW9tLnVuaWZ5U2lnbmF0dXJlQXNzZXJ0aW9uKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgICAgICBheGlvbS5hcHBseShzdGVwLCBmYWN0T3JTdWJwcm9vZnMsIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgICAgICB9LCBiYWNrKTtcbiAgICAgICAgfSwgYmFjayk7XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9LCBzdGVwLCBmYWN0T3JTdWJwcm9vZnMsIGNvbnRleHQsIChzdGVwLCBmYWN0T3JTdWJwcm9vZnMsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYGFwcGxpZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9KTtcblxuICB2YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGxldCBhc3NlcnRpb247XG5cbiAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBhc3NlcnRpb24gPSB0aGlzLmZpbmRBc3NlcnRpb24oY29udGV4dCk7XG5cbiAgICBpZiAoYXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb24gPSBhc3NlcnRpb247IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbiBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCwgYmFjayk7XG4gICAgfVxuXG4gICAgYXNzZXJ0aW9uID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCB2YWxpZGF0ZUxpbmsgPSB0aGlzLnZhbGlkYXRlTGluay5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZhbGlkYXRlVGVybXMgPSB0aGlzLnZhbGlkYXRlVGVybXMuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBhbGwoW1xuICAgICAgdmFsaWRhdGVMaW5rLFxuICAgICAgdmFsaWRhdGVUZXJtc1xuICAgIF0sIHN0YXRlLCBjb250ZXh0LCAoc3RhdGUsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvbiA9IGFzc2VydGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoc2lnbmF0dXJlQXNzZXJ0aW9uLCBjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZhbGlkYXRlVGVybSh0ZXJtLCB0ZXJtcywgc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgIHJldHVybiB0ZXJtLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAodGVybSwgY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgJyR7dGVybVN0cmluZ30nIHRlcm0uYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHRlcm1zLCBzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICB2YWxpZGF0ZUxpbmsoc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgbGluay4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMubGluay52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKGxpbmssIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIHRoaXMubGluayA9IGxpbms7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbidzIGxpbmsuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHN0YXRlLCBjb250ZXh0LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIHZhbGlkYXRlVGVybXMoc3RhdGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgdGVybXMuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1zID0gW107XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy50ZXJtcywgKHRlcm0sIHRlcm1zLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVUZXJtKHRlcm0sIHRlcm1zLCBzdGF0ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgdGVybXMsIHN0YXRlLCBjb250ZXh0LCAodGVybXMsIHN0YXRlLCBjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICB0aGlzLnRlcm1zID0gdGVybXM7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbidzIHRlcm1zLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChzdGF0ZSwgY29udGV4dCwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICB1bmlmeUNsYWltKGNsYWltLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgY2xhaW1TdHJpbmcgPSBjbGFpbS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2NsYWltU3RyaW5nfScgY2xhaW0gd2l0aCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgcmV0dXJuIHJlY29uY2lsZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgYXhpb20gPSBjb250ZXh0LmZpbmRBeGlvbUJ5TGluayh0aGlzLmxpbmspO1xuXG4gICAgICByZXR1cm4gYXhpb20udW5pZnlUZXJtcyh0aGlzLnRlcm1zLCBjb250ZXh0LCAodGVybXNVbmlmeSkgPT4ge1xuICAgICAgICBpZiAoIXRlcm1zVW5pZnkpIHtcbiAgICAgICAgICBjb25zdCBjbGFpbVVuaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oY2xhaW1VbmlmaWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBheGlvbS51bmlmeUNsYWltKGNsYWltLCBjb250ZXh0LCAoY2xhaW1VbmlmaWVzKSA9PiB7XG4gICAgICAgICAgaWYgKGNsYWltVW5pZmllcykge1xuICAgICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7Y2xhaW1TdHJpbmd9JyBjbGFpbSB3aXRoIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLmApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjbGFpbVVuaWZpZXMpIHtcbiAgICAgICAgICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjbGFpbVVuaWZpZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNpZ25hdHVyZUFzc2VydGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tU3RlcChzdGVwLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0ZXAuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsidW5icmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY3V0IiwiYWxsIiwiZXZlcnkiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJkZWZpbmUiLCJTaWduYXR1cmVBc3NlcnRpb24iLCJBc3NlcnRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJsaW5rIiwidGVybXMiLCJnZXRUZXJtcyIsImdldExpbmsiLCJnZXRTaWduYXR1cmVBc3NlcnRpb25Ob2RlIiwiZ2V0Tm9kZSIsInNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJhcHBseSIsInN0ZXAiLCJmYWN0T3JTdWJwcm9vZnMiLCJmb3J3YXJkIiwiYmFjayIsInNpZ25hdHVyZUFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiaXNvbGF0ZSIsInJlY29uY2lsZSIsImF4aW9tIiwiZmluZEF4aW9tQnlMaW5rIiwic2lnbmF0dXJlQXNzZXJ0aW9uIiwidW5pZnlTaWduYXR1cmVBc3NlcnRpb24iLCJkZWJ1ZyIsInZhbGlkYXRlIiwic3RhdGUiLCJhc3NlcnRpb24iLCJmaW5kQXNzZXJ0aW9uIiwidmFsaWRhdGVMaW5rIiwiYmluZCIsInZhbGlkYXRlVGVybXMiLCJhZGRBc3NlcnRpb24iLCJ2YWxpZGF0ZVRlcm0iLCJ0ZXJtIiwidGVybVN0cmluZyIsInB1c2giLCJ1bmlmeUNsYWltIiwiY2xhaW0iLCJjbGFpbVN0cmluZyIsInVuaWZ5VGVybXMiLCJ0ZXJtc1VuaWZ5IiwiY2xhaW1VbmlmaWVzIiwiY29udGludWF0aW9uIiwiY29tbWl0IiwibmFtZSIsImZyb21TdGVwIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVgyRDtrRUFFckM7MEJBRUM7eUJBQ1k7eUJBQ2lCOzs7Ozs7QUFFcEQsTUFBTSxFQUFFQSxXQUFXLEVBQUUsR0FBR0MsbUNBQW1C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
|