occam-nominal 1.0.203 → 1.0.207
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/element/assumption/implicit.js +3 -3
- package/lib/element/constraint.js +2 -2
- package/lib/element/equivalence.js +7 -11
- package/lib/element/judgement.js +4 -4
- package/lib/element/label.js +4 -6
- package/lib/element/metavariable.js +5 -5
- package/lib/element/procedureCall.js +3 -5
- package/lib/element/proofAssertion/premise.js +4 -7
- package/lib/element/proofAssertion/step.js +9 -9
- package/lib/element/proofAssertion/supposition.js +6 -20
- package/lib/element/reference.js +5 -5
- package/lib/element/signature.js +9 -11
- package/lib/element/statement.js +36 -36
- package/lib/element/substitution/frame.js +5 -5
- package/lib/utilities/json.js +3 -3
- package/package.json +1 -1
- package/src/element/assumption/implicit.js +2 -2
- package/src/element/constraint.js +1 -1
- package/src/element/equivalence.js +13 -17
- package/src/element/judgement.js +2 -2
- package/src/element/label.js +5 -7
- package/src/element/metavariable.js +8 -8
- package/src/element/procedureCall.js +2 -6
- package/src/element/proofAssertion/premise.js +3 -7
- package/src/element/proofAssertion/step.js +14 -14
- package/src/element/proofAssertion/supposition.js +5 -32
- package/src/element/reference.js +8 -8
- package/src/element/signature.js +8 -10
- package/src/element/statement.js +58 -58
- package/src/element/substitution/frame.js +7 -7
- package/src/utilities/json.js +3 -3
|
@@ -56,13 +56,13 @@ const _default = (0, _elements.define)(class ImplicitAssumption extends _occamla
|
|
|
56
56
|
validate(context) {
|
|
57
57
|
let implicitAssumption = null;
|
|
58
58
|
const implicitAssumptionString = this.getString(); ///
|
|
59
|
-
context.trace(`Validating the '${implicitAssumptionString}'
|
|
59
|
+
context.trace(`Validating the '${implicitAssumptionString}' implicit qssumption...`);
|
|
60
60
|
let validates = false;
|
|
61
61
|
const validAssumption = this.findValidAssumption(context);
|
|
62
62
|
if (validAssumption !== null) {
|
|
63
63
|
validates = true;
|
|
64
64
|
implicitAssumption = validAssumption; ///
|
|
65
|
-
context.debug(`...the '${implicitAssumptionString}'
|
|
65
|
+
context.debug(`...the '${implicitAssumptionString}' implicit qssumption is already valid.`);
|
|
66
66
|
} else {
|
|
67
67
|
const statementValidates = this.validateStatement(context);
|
|
68
68
|
if (statementValidates) {
|
|
@@ -144,4 +144,4 @@ const _default = (0, _elements.define)(class ImplicitAssumption extends _occamla
|
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
146
|
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc3VtcHRpb24vaW1wbGljaXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgcGFyZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlSW1wbGljaXRBc3N1bXB0aW9uIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZ0Zyb21TdGF0ZW1lbnQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgaW1wbGljaXRBc3N1bXB0aW9uRnJvbUltcGxpY2l0QXNzdW1wdGlvbk5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEltcGxpY2l0QXNzdW1wdGlvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRJbXBsaWNpdEFzc3VtcHRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25Ob2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvbk5vZGU7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnROb2RlKCkgeyByZXR1cm4gdGhpcy5zdGF0ZW1lbnQuZ2V0U3RhdGVtZW50Tm9kZSgpOyB9XG5cbiAgZ2V0UmVmZXJlbmNlKCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IG51bGw7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlO1xuICB9XG5cbiAgaXNFcXVhbFRvKGltcGxpY2l0QXNzdW1wdGlvbikge1xuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvbk5vZGUgPSBpbXBsaWNpdEFzc3VtcHRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbk5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaEltcGxpY2l0QXNzdW1wdGlvbk5vZGUoaW1wbGljaXRBc3N1bXB0aW9uTm9kZSksXG4gICAgICAgICAgZXF1YWxUbyA9IGltcGxpY2l0QXNzdW1wdGlvbk5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIG1hdGNoSW1wbGljaXRBc3N1bXB0aW9uTm9kZShpbXBsaWNpdEFzc3VtcHRpb25Ob2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGltcGxpY2l0QXNzdW1wdGlvbk5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXM7XG4gIH1cblxuICBmaW5kU3VicHJvb2ZBc3NlcnRpb24oY29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZkFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gdGhpcy5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTdWJwcm9vZkFzc2VydGlvbk5vZGUoKTtcblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gY29udGV4dC5maW5kQXNzZXJ0aW9uQnlBc3NlcnRpb25Ob2RlKHN1YnByb29mQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uO1xuICB9XG5cbiAgZmluZFZhbGlkQXNzdW1wdGlvbihjb250ZXh0KSB7XG4gICAgY29uc3QgaW1wbGljaXRBc3N1bXB0aW9uTm9kZSA9IHRoaXMuZ2V0SW1wbGljaXRBc3N1bXB0aW9uTm9kZSgpLFxuICAgICAgICAgIGFzc3VtcHRpb25Ob2RlID0gaW1wbGljaXRBc3N1bXB0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgIGFzc3VtcHRpb24gPSBjb250ZXh0LmZpbmRBc3N1bXB0aW9uQnlBc3N1bXB0aW9uTm9kZShhc3N1bXB0aW9uTm9kZSksXG4gICAgICAgICAgdmFsaWRBc3N1bXB0aW9uID0gYXNzdW1wdGlvbjsgIC8vL1xuXG4gICAgcmV0dXJuIHZhbGlkQXNzdW1wdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQgaW1wbGljaXRBc3N1bXB0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbi4uLmApO1xuXG4gICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdmFsaWRBc3N1bXB0aW9uID0gdGhpcy5maW5kVmFsaWRBc3N1bXB0aW9uKGNvbnRleHQpO1xuXG4gICAgaWYgKHZhbGlkQXNzdW1wdGlvbiAhPT0gbnVsbCkge1xuICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcblxuICAgICAgaW1wbGljaXRBc3N1bXB0aW9uID0gdmFsaWRBc3N1bXB0aW9uOyAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbiBpcyBhbHJlYWR5IHZhbGlkLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0aGlzLnZhbGlkYXRlU3RhdGVtZW50KGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlZCA9IGNvbnRleHQuaXNTdGF0ZWQoKTtcblxuICAgICAgICBsZXQgdmFsaWRhdGVzV2hlblN0YXRlZCA9IGZhbHNlLFxuICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoc3RhdGVkKSB7XG4gICAgICAgICAgdmFsaWRhdGVzV2hlblN0YXRlZCA9IHRoaXMudmFsaWRhdGVXaGVuU3RhdGVkKGNvbnRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlc1doZW5EZXJpdmVkID0gdGhpcy52YWxpZGF0ZVdoZW5EZXJpdmVkKGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRlc1doZW5TdGF0ZWQgfHwgdmFsaWRhdGVzV2hlbkRlcml2ZWQpIHtcbiAgICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9uID0gdGhpczsgIC8vL1xuXG4gICAgICAgIGNvbnN0IGFzc3VtcHRpb24gPSBpbXBsaWNpdEFzc3VtcHRpb247ICAvLy9cblxuICAgICAgICBjb250ZXh0LmFkZEFzc3VtcHRpb24oYXNzdW1wdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmd9JyBpbXBsaWNpdEFzc3VtcHRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlU3RhdGVtZW50KGNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmd9JyBpbXBsaWNpdEFzc3VtcHRpb24ncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKGNvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbidzIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuU3RhdGVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlblN0YXRlZDtcblxuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIHN0YXRlZCBpbXBsaWNpdEFzc3VtcHRpb24uLi5gKTtcblxuICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0cnVlXG5cbiAgICBpZiAodmFsaWRhdGVzV2hlblN0YXRlZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmd9JyBzdGF0ZWQgaW1wbGljaXRBc3N1bXB0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXNXaGVuU3RhdGVkO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuRGVyaXZlZChjb250ZXh0KSB7XG4gICAgbGV0IHZhbGlkYXRlc1doZW5EZXJpdmVkO1xuXG4gICAgY29uc3QgaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7aW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nfScgZGVyaXZlZCBpbXBsaWNpdEFzc3VtcHRpb24uLi5gKTtcblxuICAgIHZhbGlkYXRlc1doZW5EZXJpdmVkID0gdHJ1ZVxuXG4gICAgaWYgKHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGRlcml2ZWQgaW1wbGljaXRBc3N1bXB0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXNXaGVuRGVyaXZlZDtcbiAgfVxuXG4gIHVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHByb29mQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtwcm9vZkFzc2VydGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMuc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3Byb29mQXNzZXJ0aW9uU3RyaW5nfScgaW1wbGljaXRBc3N1bXB0aW9uJ3Mgc3RhdGVtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkltcGxpY2l0QXNzdW1wdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBpbXBsaWNpdEFzc3VtcHRpb247XG5cbiAgICBwYXJlKChjb250ZXh0KSA9PiB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmcgPSBpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmdGcm9tU3RhdGVtZW50KHN0YXRlbWVudCksXG4gICAgICAgICAgICAgIHN0cmluZyA9IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZywgIC8vL1xuICAgICAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25Ob2RlID0gaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24oc3RyaW5nLCBjb250ZXh0KTtcblxuICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb24gPSBpbXBsaWNpdEFzc3VtcHRpb25Gcm9tSW1wbGljaXRBc3N1bXB0aW9uTm9kZShpbXBsaWNpdEFzc3VtcHRpb25Ob2RlLCBjb250ZXh0KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiSW1wbGljaXRBc3N1bXB0aW9uIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImdldEltcGxpY2l0QXNzdW1wdGlvbk5vZGUiLCJnZXROb2RlIiwiaW1wbGljaXRBc3N1bXB0aW9uTm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJnZXRSZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJpc0VxdWFsVG8iLCJpbXBsaWNpdEFzc3VtcHRpb24iLCJpbXBsaWNpdEFzc3VtcHRpb25Ob2RlTWF0Y2hlcyIsIm1hdGNoSW1wbGljaXRBc3N1bXB0aW9uTm9kZSIsImVxdWFsVG8iLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImZpbmRTdWJwcm9vZkFzc2VydGlvbiIsInN1YnByb29mQXNzZXJ0aW9uIiwic3RhdGVtZW50Tm9kZSIsInN1YnByb29mQXNzZXJ0aW9uTm9kZSIsImdldFN1YnByb29mQXNzZXJ0aW9uTm9kZSIsImZpbmRBc3NlcnRpb25CeUFzc2VydGlvbk5vZGUiLCJmaW5kVmFsaWRBc3N1bXB0aW9uIiwiYXNzdW1wdGlvbk5vZGUiLCJhc3N1bXB0aW9uIiwiZmluZEFzc3VtcHRpb25CeUFzc3VtcHRpb25Ob2RlIiwidmFsaWRBc3N1bXB0aW9uIiwidmFsaWRhdGUiLCJpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbGlkYXRlcyIsImRlYnVnIiwic3RhdGVtZW50VmFsaWRhdGVzIiwidmFsaWRhdGVTdGF0ZW1lbnQiLCJzdGF0ZWQiLCJpc1N0YXRlZCIsInZhbGlkYXRlc1doZW5TdGF0ZWQiLCJ2YWxpZGF0ZXNXaGVuRGVyaXZlZCIsInZhbGlkYXRlV2hlblN0YXRlZCIsInZhbGlkYXRlV2hlbkRlcml2ZWQiLCJhZGRBc3N1bXB0aW9uIiwidW5pZnlTdGF0ZW1lbnQiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJwcm9vZkFzc2VydGlvblN0cmluZyIsIm5hbWUiLCJmcm9tU3RhdGVtZW50IiwicGFyZSIsImluc3RhbnRpYXRlIiwiaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nRnJvbVN0YXRlbWVudCIsImluc3RhbnRpYXRlSW1wbGljaXRBc3N1bXB0aW9uIiwiaW1wbGljaXRBc3N1bXB0aW9uRnJvbUltcGxpY2l0QXNzdW1wdGlvbk5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjswQkFFRDt5QkFDVzs2QkFDWTt3QkFDUTt5QkFDTztNQUU3RCxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDJCQUEyQkMsdUJBQU87SUFDNUQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxTQUFTLENBQUU7UUFDeEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRCxTQUFTO0lBQ3ZCO0lBRUFFLDRCQUE0QjtRQUMxQixNQUFNSixPQUFPLElBQUksQ0FBQ0ssT0FBTyxJQUNuQkMseUJBQXlCTixNQUFPLEdBQUc7UUFFekMsT0FBT007SUFDVDtJQUVBQyxtQkFBbUI7UUFBRSxPQUFPLElBQUksQ0FBQ0wsU0FBUyxDQUFDSyxnQkFBZ0I7SUFBSTtJQUUv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
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc3VtcHRpb24vaW1wbGljaXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgcGFyZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlSW1wbGljaXRBc3N1bXB0aW9uIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZ0Zyb21TdGF0ZW1lbnQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgaW1wbGljaXRBc3N1bXB0aW9uRnJvbUltcGxpY2l0QXNzdW1wdGlvbk5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEltcGxpY2l0QXNzdW1wdGlvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRJbXBsaWNpdEFzc3VtcHRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25Ob2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvbk5vZGU7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnROb2RlKCkgeyByZXR1cm4gdGhpcy5zdGF0ZW1lbnQuZ2V0U3RhdGVtZW50Tm9kZSgpOyB9XG5cbiAgZ2V0UmVmZXJlbmNlKCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IG51bGw7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlO1xuICB9XG5cbiAgaXNFcXVhbFRvKGltcGxpY2l0QXNzdW1wdGlvbikge1xuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvbk5vZGUgPSBpbXBsaWNpdEFzc3VtcHRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbk5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaEltcGxpY2l0QXNzdW1wdGlvbk5vZGUoaW1wbGljaXRBc3N1bXB0aW9uTm9kZSksXG4gICAgICAgICAgZXF1YWxUbyA9IGltcGxpY2l0QXNzdW1wdGlvbk5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIG1hdGNoSW1wbGljaXRBc3N1bXB0aW9uTm9kZShpbXBsaWNpdEFzc3VtcHRpb25Ob2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGltcGxpY2l0QXNzdW1wdGlvbk5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXM7XG4gIH1cblxuICBmaW5kU3VicHJvb2ZBc3NlcnRpb24oY29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZkFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gdGhpcy5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTdWJwcm9vZkFzc2VydGlvbk5vZGUoKTtcblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gY29udGV4dC5maW5kQXNzZXJ0aW9uQnlBc3NlcnRpb25Ob2RlKHN1YnByb29mQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uO1xuICB9XG5cbiAgZmluZFZhbGlkQXNzdW1wdGlvbihjb250ZXh0KSB7XG4gICAgY29uc3QgaW1wbGljaXRBc3N1bXB0aW9uTm9kZSA9IHRoaXMuZ2V0SW1wbGljaXRBc3N1bXB0aW9uTm9kZSgpLFxuICAgICAgICAgIGFzc3VtcHRpb25Ob2RlID0gaW1wbGljaXRBc3N1bXB0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgIGFzc3VtcHRpb24gPSBjb250ZXh0LmZpbmRBc3N1bXB0aW9uQnlBc3N1bXB0aW9uTm9kZShhc3N1bXB0aW9uTm9kZSksXG4gICAgICAgICAgdmFsaWRBc3N1bXB0aW9uID0gYXNzdW1wdGlvbjsgIC8vL1xuXG4gICAgcmV0dXJuIHZhbGlkQXNzdW1wdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQgaW1wbGljaXRBc3N1bXB0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0IHFzc3VtcHRpb24uLi5gKTtcblxuICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZhbGlkQXNzdW1wdGlvbiA9IHRoaXMuZmluZFZhbGlkQXNzdW1wdGlvbihjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZEFzc3VtcHRpb24gIT09IG51bGwpIHtcbiAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG5cbiAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IHZhbGlkQXNzdW1wdGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnRoZSAnJHtpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmd9JyBpbXBsaWNpdCBxc3N1bXB0aW9uIGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVkID0gY29udGV4dC5pc1N0YXRlZCgpO1xuXG4gICAgICAgIGxldCB2YWxpZGF0ZXNXaGVuU3RhdGVkID0gZmFsc2UsXG4gICAgICAgICAgICB2YWxpZGF0ZXNXaGVuRGVyaXZlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChzdGF0ZWQpIHtcbiAgICAgICAgICB2YWxpZGF0ZXNXaGVuU3RhdGVkID0gdGhpcy52YWxpZGF0ZVdoZW5TdGF0ZWQoY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzV2hlblN0YXRlZCB8fCB2YWxpZGF0ZXNXaGVuRGVyaXZlZCkge1xuICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb24gPSB0aGlzOyAgLy8vXG5cbiAgICAgICAgY29uc3QgYXNzdW1wdGlvbiA9IGltcGxpY2l0QXNzdW1wdGlvbjsgIC8vL1xuXG4gICAgICAgIGNvbnRleHQuYWRkQXNzdW1wdGlvbihhc3N1bXB0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uO1xuICB9XG5cbiAgdmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5zdGF0ZW1lbnQudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7aW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nfScgaW1wbGljaXRBc3N1bXB0aW9uJ3Mgc3RhdGVtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5TdGF0ZWQoY29udGV4dCkge1xuICAgIGxldCB2YWxpZGF0ZXNXaGVuU3RhdGVkO1xuXG4gICAgY29uc3QgaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7aW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nfScgc3RhdGVkIGltcGxpY2l0QXNzdW1wdGlvbi4uLmApO1xuXG4gICAgdmFsaWRhdGVzV2hlblN0YXRlZCA9IHRydWVcblxuICAgIGlmICh2YWxpZGF0ZXNXaGVuU3RhdGVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIHN0YXRlZCBpbXBsaWNpdEFzc3VtcHRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5EZXJpdmVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlbkRlcml2ZWQ7XG5cbiAgICBjb25zdCBpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmd9JyBkZXJpdmVkIGltcGxpY2l0QXNzdW1wdGlvbi4uLmApO1xuXG4gICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0cnVlXG5cbiAgICBpZiAodmFsaWRhdGVzV2hlbkRlcml2ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7aW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nfScgZGVyaXZlZCBpbXBsaWNpdEFzc3VtcHRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3Byb29mQXNzZXJ0aW9uU3RyaW5nfScgaW1wbGljaXRBc3N1bXB0aW9uJ3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy5zdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBpbXBsaWNpdEFzc3VtcHRpb24ncyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wbGljaXRBc3N1bXB0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IGltcGxpY2l0QXNzdW1wdGlvbjtcblxuICAgIHBhcmUoKGNvbnRleHQpID0+IHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZ0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50KSxcbiAgICAgICAgICAgICAgc3RyaW5nID0gaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbk5vZGUgPSBpbnN0YW50aWF0ZUltcGxpY2l0QXNzdW1wdGlvbihzdHJpbmcsIGNvbnRleHQpO1xuXG4gICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IGltcGxpY2l0QXNzdW1wdGlvbkZyb21JbXBsaWNpdEFzc3VtcHRpb25Ob2RlKGltcGxpY2l0QXNzdW1wdGlvbk5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJJbXBsaWNpdEFzc3VtcHRpb24iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiZ2V0SW1wbGljaXRBc3N1bXB0aW9uTm9kZSIsImdldE5vZGUiLCJpbXBsaWNpdEFzc3VtcHRpb25Ob2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImdldFJlZmVyZW5jZSIsInJlZmVyZW5jZSIsImlzRXF1YWxUbyIsImltcGxpY2l0QXNzdW1wdGlvbiIsImltcGxpY2l0QXNzdW1wdGlvbk5vZGVNYXRjaGVzIiwibWF0Y2hJbXBsaWNpdEFzc3VtcHRpb25Ob2RlIiwiZXF1YWxUbyIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwiZmluZFN1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJzdGF0ZW1lbnROb2RlIiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwiZ2V0U3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwiZmluZEFzc2VydGlvbkJ5QXNzZXJ0aW9uTm9kZSIsImZpbmRWYWxpZEFzc3VtcHRpb24iLCJhc3N1bXB0aW9uTm9kZSIsImFzc3VtcHRpb24iLCJmaW5kQXNzdW1wdGlvbkJ5QXNzdW1wdGlvbk5vZGUiLCJ2YWxpZEFzc3VtcHRpb24iLCJ2YWxpZGF0ZSIsImltcGxpY2l0QXNzdW1wdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsaWRhdGVzIiwiZGVidWciLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVN0YXRlbWVudCIsInN0YXRlZCIsImlzU3RhdGVkIiwidmFsaWRhdGVzV2hlblN0YXRlZCIsInZhbGlkYXRlc1doZW5EZXJpdmVkIiwidmFsaWRhdGVXaGVuU3RhdGVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsImFkZEFzc3VtcHRpb24iLCJ1bmlmeVN0YXRlbWVudCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0Iiwic3RhdGVtZW50VW5pZmllcyIsInN0YXRlbWVudFN0cmluZyIsInByb29mQXNzZXJ0aW9uU3RyaW5nIiwibmFtZSIsImZyb21TdGF0ZW1lbnQiLCJwYXJlIiwiaW5zdGFudGlhdGUiLCJpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmdGcm9tU3RhdGVtZW50IiwiaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24iLCJpbXBsaWNpdEFzc3VtcHRpb25Gcm9tSW1wbGljaXRBc3N1bXB0aW9uTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUndCOzBCQUVEO3lCQUNXOzZCQUNZO3dCQUNRO3lCQUNPO01BRTdELFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsMkJBQTJCQyx1QkFBTztJQUM1RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsQ0FBRTtRQUN4RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNELFNBQVM7SUFDdkI7SUFFQUUsNEJBQTRCO1FBQzFCLE1BQU1KLE9BQU8sSUFBSSxDQUFDSyxPQUFPLElBQ25CQyx5QkFBeUJOLE1BQU8sR0FBRztRQUV6QyxPQUFPTTtJQUNUO0lBRUFDLG1CQUFtQjtRQUFFLE9BQU8sSUFBSSxDQUFDTCxTQUFTLENBQUNLLGdCQUFnQjtJQUFJO0lB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
|
|
@@ -51,7 +51,7 @@ const _default = (0, _elements.define)(class Constraint extends _occamlanguages.
|
|
|
51
51
|
validate(context) {
|
|
52
52
|
let constraint = null;
|
|
53
53
|
const constraintString = this.getString(); ///
|
|
54
|
-
context.trace(`Validating the '${constraintString}'
|
|
54
|
+
context.trace(`Validating the '${constraintString}' constraint...`);
|
|
55
55
|
let validates = false;
|
|
56
56
|
const validConstraint = this.findValidConstraint(context);
|
|
57
57
|
if (validConstraint !== null) {
|
|
@@ -253,4 +253,4 @@ function statementFromConstraintNode(constraintNode, context) {
|
|
|
253
253
|
return statement;
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbnN0cmFpbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdW5pZnlTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vcHJvY2Vzcy91bmlmeVwiO1xuaW1wb3J0IHsgc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JyYWNrZXRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUNvbnN0cmFpbnQgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvYnJlYWtQb2ludFwiO1xuaW1wb3J0IHsgY29uc3RyYWludEZyb21Db25zdHJhaW50Tm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgam9pbiwgYWJsYXRlLCBhdHRlbXB0LCBkZXNjZW5kLCByZWNvbmNpbGUsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBDb25zdHJhaW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVmZXJlbmNlLCBzdGF0ZW1lbnQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gICAgdGhpcy5zdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldENvbnN0cmFpbnROb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb25zdHJhaW50Tm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBjb25zdHJhaW50Tm9kZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMucmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpOyB9XG5cbiAgaXNFcXVhbFRvKGNvbnN0cmFpbnQpIHtcbiAgICBjb25zdCBjb25zdHJhaW50Tm9kZSA9IGNvbnN0cmFpbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnN0cmFpbnROb2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hDb25zdHJhaW50Tm9kZShjb25zdHJhaW50Tm9kZSksXG4gICAgICAgICAgZXF1YWxUbyA9IGNvbnN0cmFpbnROb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBtYXRjaENvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbnN0cmFpbnROb2RlLCAvLy9cbiAgICAgICAgICBub2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hOb2RlKG5vZGUpLFxuICAgICAgICAgIGNvbnN0cmFpbnROb2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBjb25zdHJhaW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICBmaW5kVmFsaWRDb25zdHJhaW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBjb25zdHJhaW50Tm9kZSA9IHRoaXMuZ2V0Q29uc3RyYWludE5vZGUoKSxcbiAgICAgICAgICBjb25zdHJhaW50ID0gY29udGV4dC5maW5kQ29uc3RyYWludEJ5Q29uc3RyYWludE5vZGUoY29uc3RyYWludE5vZGUpLFxuICAgICAgICAgIHZhbGlkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQ7ICAvLy9cblxuICAgIHJldHVybiB2YWxpZENvbnN0cmFpbnQ7XG4gIH1cblxuICB2YWxpZGF0ZShjb250ZXh0KSB7XG4gICAgbGV0IGNvbnN0cmFpbnQgPSBudWxsO1xuXG4gICAgY29uc3QgY29uc3RyYWludFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBtZXRhLWxMZXZlbCBhc3N1bXB0aW9uLi4uYCk7XG5cbiAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YWxpZENvbnN0cmFpbnQgPSB0aGlzLmZpbmRWYWxpZENvbnN0cmFpbnQoY29udGV4dCk7XG5cbiAgICBpZiAodmFsaWRDb25zdHJhaW50ICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuXG4gICAgICBjb25zdHJhaW50ID0gdmFsaWRDb25zdHJhaW50OyAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50IGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlbXBvcmFyeUNvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZVZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVSZWZlcmVuY2UoY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAocmVmZXJlbmNlVmFsaWRhdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZWQgPSBjb250ZXh0LmlzU3RhdGVkKCk7XG5cbiAgICAgICAgICAgIGxldCB2YWxpZGF0ZXNXaGVuU3RhdGVkID0gZmFsc2UsXG4gICAgICAgICAgICAgIHZhbGlkYXRlc1doZW5EZXJpdmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChzdGF0ZWQpIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVzV2hlblN0YXRlZCA9IHRoaXMudmFsaWRhdGVXaGVuU3RhdGVkKGNvbnRleHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZXNXaGVuU3RhdGVkIHx8IHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9LCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IHRlbXBvcmFyeUNvbnRleHQ7IC8vL1xuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnN0cmFpbnQgPSB0aGlzOyAgLy8vXG5cbiAgICAgICAgY29udGV4dC5hZGRDb25zdHJhaW50KGNvbnN0cmFpbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cmFpbnQ7XG4gIH1cblxuICB2YWxpZGF0ZVJlZmVyZW5jZShjb250ZXh0KSB7XG4gICAgbGV0IHJlZmVyZW5jZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29uc3RyYWludFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3MgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICBjb25zdCByZWZlcmVuY2UgPSB0aGlzLnJlZmVyZW5jZS52YWxpZGF0ZShjb250ZXh0KTtcblxuICAgIGlmIChyZWZlcmVuY2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHRoaXMucmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyZWQgPSBtZXRhdmFyaWFibGUuaXNEZWNsYXJlZCgpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlRGVjbGFyZWQpIHtcbiAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cbiAgICAgICAgcmVmZXJlbmNlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVmZXJlbmNlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3MgcmVmZXJlbmNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVN0YXRlbWVudChjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29uc3RyYWludFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBkZXNjZW5kKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLnN0YXRlbWVudC52YWxpZGF0ZShjb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgY29uc3RyYWludCdzIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuU3RhdGVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlblN0YXRlZDtcblxuICAgIGNvbnN0IGNvbnN0cmFpbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgc3RhdGVkIGNvbnN0cmFpbnQuLi5gKTtcblxuICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0cnVlXG5cbiAgICBpZiAodmFsaWRhdGVzV2hlblN0YXRlZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgc3RhdGVkIGNvbnN0cmFpbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5EZXJpdmVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlbkRlcml2ZWQ7XG5cbiAgICBjb25zdCBjb25zdHJhaW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGRlcml2ZWQgY29uc3RyYWludC4uLmApO1xuXG4gICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBkZXJpdmVkIGNvbnN0cmFpbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgdW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHJlZmVyZW5jZVVuaWZpZXM7XG5cbiAgICBpZiAocmVmZXJlbmNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgICByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBjb25zdHJhaW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQncyByZWZlcmVuY2UuLi5gKTtcblxuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gdGhpcy5nZXRNZXRhdmFyaWFibGUoKTtcblxuICAgICAgcmVmZXJlbmNlVW5pZmllcyA9IG1ldGF2YXJpYWJsZS51bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAocmVmZXJlbmNlVW5pZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLnVuaWZpZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHdpdGggdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3MgcmVmZXJlbmNlLmApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZWZlcmVuY2VVbmlmaWVzID0gdHJ1ZTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIGNvbnN0cmFpbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnQgPSB0aGlzLnN0YXRlbWVudCwgIC8vL1xuICAgICAgICAgIHNwZWNpZmljU3RhdGVtZW50ID0gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgIC8vL1xuXG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHVuaWZ5U3RhdGVtZW50KGdlbmVyYWxTdGF0ZW1lbnQsIHNwZWNpZmljU3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQncyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUFzc3VtcHRpb24oYXNzdW1wdGlvbiwgY29udGV4dCkge1xuICAgIGxldCBhc3N1bXB0aW9uVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgYXNzdW1wdGlvblN0cmluZyA9IGFzc3VtcHRpb24uZ2V0U3RyaW5nKCksICAvLy9cbiAgICAgICAgICBjb25zdHJhaW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbiB3aXRoIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgY29uc3RyYWludC4uLmApO1xuXG4gICAgY29uc3QgY29uc3RyYWludENvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgYXNzdW1wdGlvbkNvbnRleHQgPSBhc3N1bXB0aW9uLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBjb25zdHJhaW50Q29udGV4dCxcbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBhc3N1bXB0aW9uQ29udGV4dDsgIC8vL1xuXG4gICAgam9pbigoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBhc3N1bXB0aW9uLmdldFJlZmVyZW5jZSgpLFxuICAgICAgICAgICAgICByZWZlcm5lY2VVbmlmaWVzID0gdGhpcy51bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmIChyZWZlcm5lY2VVbmlmaWVzKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gYXNzdW1wdGlvbi5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdGhpcy51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgICAgIGFzc3VtcHRpb25VbmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0LCBjb250ZXh0KTtcblxuICAgIGlmIChhc3N1bXB0aW9uVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24gd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQuLi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXNzdW1wdGlvblVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUFzc3VtcHRpb25zKGFzc3VtcHRpb25zLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXNzdW1wdGlvbnNVbmlmeSA9IGFzc3VtcHRpb25zLnNvbWUoKGFzc3VtcHRpb24pID0+IHtcbiAgICAgIGNvbnN0IGFzc3VtcHRpb25VbmlmaWVzID0gdGhpcy51bmlmeUFzc3VtcHRpb24oYXNzdW1wdGlvbiwgY29udGV4dCk7XG5cbiAgICAgIGlmIChhc3N1bXB0aW9uVW5pZmllcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uc1VuaWZ5O1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCBqc29uID0ge1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIGJyZWFrUG9pbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnN0cmFpbnRcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBjb25zdHJhaW50O1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHVuc2VyaWFsaXNlKChqc29uLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgICBjb25zdHJhaW50Tm9kZSA9IGluc3RhbnRpYXRlQ29uc3RyYWludChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBub2RlID0gY29uc3RyYWludE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlRnJvbUNvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUNvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb25zdHJhaW50ID0gbmV3IENvbnN0cmFpbnQoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWZlcmVuY2UsIHN0YXRlbWVudCk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBjb25zdHJhaW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGVwKHN0ZXAsIGNvbnRleHQpIHtcbiAgICBsZXQgY29uc3RyYWludDtcblxuICAgIGxldCBzdGF0ZW1lbnQ7XG5cbiAgICBzdGF0ZW1lbnQgPSBzdGVwLmdldFN0YXRlbWVudCgpO1xuXG4gICAgc3RhdGVtZW50ID0gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgICBjb25zdCByZWZlcmVuY2UgPSBzdGVwLmdldFJlZmVyZW5jZSgpO1xuXG4gICAgYWJsYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBjb25zdHJhaW50U3RyaW5nID0gY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQocmVmZXJlbmNlLCBzdGF0ZW1lbnQpLFxuICAgICAgICAgICAgICBzdHJpbmcgPSBjb25zdHJhaW50U3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIGNvbnN0cmFpbnROb2RlID0gaW5zdGFudGlhdGVDb25zdHJhaW50KHN0cmluZywgY29udGV4dCk7XG5cbiAgICAgICAgY29uc3RyYWludCA9IGNvbnN0cmFpbnRGcm9tQ29uc3RyYWludE5vZGUoY29uc3RyYWludE5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uc3RyYWludDtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHJlZmVyZW5jZUZyb21Db25zdHJhaW50Tm9kZShjb25zdHJhaW50Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCByZWZlcmVuY2VOb2RlID0gY29uc3RyYWludE5vZGUuZ2V0UmVmZXJlbmNlTm9kZSgpLFxuICAgICAgICByZWZlcm5lY2UgPSBjb250ZXh0LmZpbmRSZWZlcmVuY2VCeVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSk7XG5cbiAgcmV0dXJuIHJlZmVybmVjZTtcbn1cblxuZnVuY3Rpb24gc3RhdGVtZW50RnJvbUNvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBjb25zdHJhaW50Tm9kZS5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudCA9IGNvbnRleHQuZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuIl0sIm5hbWVzIjpbImRlZmluZSIsIkNvbnN0cmFpbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicmVmZXJlbmNlIiwic3RhdGVtZW50IiwiZ2V0UmVmZXJlbmNlIiwiZ2V0U3RhdGVtZW50IiwiZ2V0Q29uc3RyYWludE5vZGUiLCJnZXROb2RlIiwiY29uc3RyYWludE5vZGUiLCJnZXRNZXRhdmFyaWFibGUiLCJpc0VxdWFsVG8iLCJjb25zdHJhaW50IiwiY29uc3RyYWludE5vZGVNYXRjaGVzIiwibWF0Y2hDb25zdHJhaW50Tm9kZSIsImVxdWFsVG8iLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImZpbmRWYWxpZENvbnN0cmFpbnQiLCJmaW5kQ29uc3RyYWludEJ5Q29uc3RyYWludE5vZGUiLCJ2YWxpZENvbnN0cmFpbnQiLCJ2YWxpZGF0ZSIsImNvbnN0cmFpbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbGlkYXRlcyIsImRlYnVnIiwidGVtcG9yYXJ5Q29udGV4dCIsImdldENvbnRleHQiLCJhdHRlbXB0Iiwic3RhdGVtZW50VmFsaWRhdGVzIiwidmFsaWRhdGVTdGF0ZW1lbnQiLCJyZWZlcmVuY2VWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVJlZmVyZW5jZSIsInN0YXRlZCIsImlzU3RhdGVkIiwidmFsaWRhdGVzV2hlblN0YXRlZCIsInZhbGlkYXRlc1doZW5EZXJpdmVkIiwidmFsaWRhdGVXaGVuU3RhdGVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsImNvbW1pdCIsImFkZENvbnN0cmFpbnQiLCJtZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVEZWNsYXJlZCIsImlzRGVjbGFyZWQiLCJkZXNjZW5kIiwidW5pZnlSZWZlcmVuY2UiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInJlZmVyZW5jZVVuaWZpZXMiLCJyZWZlcmVuY2VTdHJpbmciLCJ1bmlmeVN0YXRlbWVudCIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJnZW5lcmFsU3RhdGVtZW50Iiwic3BlY2lmaWNTdGF0ZW1lbnQiLCJzdHJpcEJyYWNrZXRzRnJvbVN0YXRlbWVudCIsInVuaWZ5QXNzdW1wdGlvbiIsImFzc3VtcHRpb24iLCJhc3N1bXB0aW9uVW5pZmllcyIsImFzc3VtcHRpb25TdHJpbmciLCJjb25zdHJhaW50Q29udGV4dCIsImFzc3VtcHRpb25Db250ZXh0Iiwiam9pbiIsInJlY29uY2lsZSIsInJlZmVybmVjZVVuaWZpZXMiLCJzdGF0ZW1lbnRVbmlmaWVkIiwidW5pZnlBc3N1bXB0aW9ucyIsImFzc3VtcHRpb25zIiwiYXNzdW1wdGlvbnNVbmlmeSIsInNvbWUiLCJ0b0pTT04iLCJzZXJpYWxpc2UiLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVDb25zdHJhaW50IiwiYnJlYWtQb2ludEZyb21KU09OIiwicmVmZXJlbmNlRnJvbUNvbnN0cmFpbnROb2RlIiwic3RhdGVtZW50RnJvbUNvbnN0cmFpbnROb2RlIiwiZnJvbVN0ZXAiLCJzdGVwIiwiYWJsYXRlIiwiY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQiLCJjb25zdHJhaW50RnJvbUNvbnN0cmFpbnROb2RlIiwicmVmZXJlbmNlTm9kZSIsImdldFJlZmVyZW5jZU5vZGUiLCJyZWZlcm5lY2UiLCJmaW5kUmVmZXJlbmNlQnlSZWZlcmVuY2VOb2RlIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJmaW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQUE7OztnQ0FYd0I7MEJBRUQ7dUJBQ1E7MEJBQ1k7NkJBQ0w7NEJBQ3lCO3lCQUNsQjt3QkFDYTt5QkFDcUM7TUFFL0YsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxTQUFTLENBQUU7UUFDbkUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0YsU0FBUztJQUN2QjtJQUVBRyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFF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
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbnN0cmFpbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdW5pZnlTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vcHJvY2Vzcy91bmlmeVwiO1xuaW1wb3J0IHsgc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JyYWNrZXRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUNvbnN0cmFpbnQgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvYnJlYWtQb2ludFwiO1xuaW1wb3J0IHsgY29uc3RyYWludEZyb21Db25zdHJhaW50Tm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgam9pbiwgYWJsYXRlLCBhdHRlbXB0LCBkZXNjZW5kLCByZWNvbmNpbGUsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBDb25zdHJhaW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVmZXJlbmNlLCBzdGF0ZW1lbnQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gICAgdGhpcy5zdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldENvbnN0cmFpbnROb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb25zdHJhaW50Tm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBjb25zdHJhaW50Tm9kZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMucmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpOyB9XG5cbiAgaXNFcXVhbFRvKGNvbnN0cmFpbnQpIHtcbiAgICBjb25zdCBjb25zdHJhaW50Tm9kZSA9IGNvbnN0cmFpbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnN0cmFpbnROb2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hDb25zdHJhaW50Tm9kZShjb25zdHJhaW50Tm9kZSksXG4gICAgICAgICAgZXF1YWxUbyA9IGNvbnN0cmFpbnROb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBtYXRjaENvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbnN0cmFpbnROb2RlLCAvLy9cbiAgICAgICAgICBub2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hOb2RlKG5vZGUpLFxuICAgICAgICAgIGNvbnN0cmFpbnROb2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBjb25zdHJhaW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICBmaW5kVmFsaWRDb25zdHJhaW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBjb25zdHJhaW50Tm9kZSA9IHRoaXMuZ2V0Q29uc3RyYWludE5vZGUoKSxcbiAgICAgICAgICBjb25zdHJhaW50ID0gY29udGV4dC5maW5kQ29uc3RyYWludEJ5Q29uc3RyYWludE5vZGUoY29uc3RyYWludE5vZGUpLFxuICAgICAgICAgIHZhbGlkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQ7ICAvLy9cblxuICAgIHJldHVybiB2YWxpZENvbnN0cmFpbnQ7XG4gIH1cblxuICB2YWxpZGF0ZShjb250ZXh0KSB7XG4gICAgbGV0IGNvbnN0cmFpbnQgPSBudWxsO1xuXG4gICAgY29uc3QgY29uc3RyYWludFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50Li4uYCk7XG5cbiAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YWxpZENvbnN0cmFpbnQgPSB0aGlzLmZpbmRWYWxpZENvbnN0cmFpbnQoY29udGV4dCk7XG5cbiAgICBpZiAodmFsaWRDb25zdHJhaW50ICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuXG4gICAgICBjb25zdHJhaW50ID0gdmFsaWRDb25zdHJhaW50OyAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50IGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlbXBvcmFyeUNvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZVZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVSZWZlcmVuY2UoY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAocmVmZXJlbmNlVmFsaWRhdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZWQgPSBjb250ZXh0LmlzU3RhdGVkKCk7XG5cbiAgICAgICAgICAgIGxldCB2YWxpZGF0ZXNXaGVuU3RhdGVkID0gZmFsc2UsXG4gICAgICAgICAgICAgIHZhbGlkYXRlc1doZW5EZXJpdmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChzdGF0ZWQpIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVzV2hlblN0YXRlZCA9IHRoaXMudmFsaWRhdGVXaGVuU3RhdGVkKGNvbnRleHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZXNXaGVuU3RhdGVkIHx8IHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9LCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IHRlbXBvcmFyeUNvbnRleHQ7IC8vL1xuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnN0cmFpbnQgPSB0aGlzOyAgLy8vXG5cbiAgICAgICAgY29udGV4dC5hZGRDb25zdHJhaW50KGNvbnN0cmFpbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cmFpbnQ7XG4gIH1cblxuICB2YWxpZGF0ZVJlZmVyZW5jZShjb250ZXh0KSB7XG4gICAgbGV0IHJlZmVyZW5jZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29uc3RyYWludFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3MgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICBjb25zdCByZWZlcmVuY2UgPSB0aGlzLnJlZmVyZW5jZS52YWxpZGF0ZShjb250ZXh0KTtcblxuICAgIGlmIChyZWZlcmVuY2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHRoaXMucmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyZWQgPSBtZXRhdmFyaWFibGUuaXNEZWNsYXJlZCgpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlRGVjbGFyZWQpIHtcbiAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cbiAgICAgICAgcmVmZXJlbmNlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVmZXJlbmNlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3MgcmVmZXJlbmNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVN0YXRlbWVudChjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29uc3RyYWludFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBkZXNjZW5kKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLnN0YXRlbWVudC52YWxpZGF0ZShjb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgY29uc3RyYWludCdzIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuU3RhdGVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlblN0YXRlZDtcblxuICAgIGNvbnN0IGNvbnN0cmFpbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgc3RhdGVkIGNvbnN0cmFpbnQuLi5gKTtcblxuICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0cnVlXG5cbiAgICBpZiAodmFsaWRhdGVzV2hlblN0YXRlZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgc3RhdGVkIGNvbnN0cmFpbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5EZXJpdmVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlbkRlcml2ZWQ7XG5cbiAgICBjb25zdCBjb25zdHJhaW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGRlcml2ZWQgY29uc3RyYWludC4uLmApO1xuXG4gICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBkZXJpdmVkIGNvbnN0cmFpbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgdW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHJlZmVyZW5jZVVuaWZpZXM7XG5cbiAgICBpZiAocmVmZXJlbmNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgICByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBjb25zdHJhaW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQncyByZWZlcmVuY2UuLi5gKTtcblxuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gdGhpcy5nZXRNZXRhdmFyaWFibGUoKTtcblxuICAgICAgcmVmZXJlbmNlVW5pZmllcyA9IG1ldGF2YXJpYWJsZS51bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAocmVmZXJlbmNlVW5pZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLnVuaWZpZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHdpdGggdGhlICcke2NvbnN0cmFpbnRTdHJpbmd9JyBjb25zdHJhaW50J3MgcmVmZXJlbmNlLmApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZWZlcmVuY2VVbmlmaWVzID0gdHJ1ZTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIGNvbnN0cmFpbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnQgPSB0aGlzLnN0YXRlbWVudCwgIC8vL1xuICAgICAgICAgIHNwZWNpZmljU3RhdGVtZW50ID0gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgIC8vL1xuXG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHVuaWZ5U3RhdGVtZW50KGdlbmVyYWxTdGF0ZW1lbnQsIHNwZWNpZmljU3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQncyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUFzc3VtcHRpb24oYXNzdW1wdGlvbiwgY29udGV4dCkge1xuICAgIGxldCBhc3N1bXB0aW9uVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgYXNzdW1wdGlvblN0cmluZyA9IGFzc3VtcHRpb24uZ2V0U3RyaW5nKCksICAvLy9cbiAgICAgICAgICBjb25zdHJhaW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbiB3aXRoIHRoZSAnJHtjb25zdHJhaW50U3RyaW5nfScgY29uc3RyYWludC4uLmApO1xuXG4gICAgY29uc3QgY29uc3RyYWludENvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgYXNzdW1wdGlvbkNvbnRleHQgPSBhc3N1bXB0aW9uLmdldENvbnRleHQoKSwgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBjb25zdHJhaW50Q29udGV4dCxcbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBhc3N1bXB0aW9uQ29udGV4dDsgIC8vL1xuXG4gICAgam9pbigoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBhc3N1bXB0aW9uLmdldFJlZmVyZW5jZSgpLFxuICAgICAgICAgICAgICByZWZlcm5lY2VVbmlmaWVzID0gdGhpcy51bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmIChyZWZlcm5lY2VVbmlmaWVzKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gYXNzdW1wdGlvbi5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdGhpcy51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgICAgIGFzc3VtcHRpb25VbmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0LCBjb250ZXh0KTtcblxuICAgIGlmIChhc3N1bXB0aW9uVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24gd2l0aCB0aGUgJyR7Y29uc3RyYWludFN0cmluZ30nIGNvbnN0cmFpbnQuLi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXNzdW1wdGlvblVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUFzc3VtcHRpb25zKGFzc3VtcHRpb25zLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXNzdW1wdGlvbnNVbmlmeSA9IGFzc3VtcHRpb25zLnNvbWUoKGFzc3VtcHRpb24pID0+IHtcbiAgICAgIGNvbnN0IGFzc3VtcHRpb25VbmlmaWVzID0gdGhpcy51bmlmeUFzc3VtcHRpb24oYXNzdW1wdGlvbiwgY29udGV4dCk7XG5cbiAgICAgIGlmIChhc3N1bXB0aW9uVW5pZmllcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uc1VuaWZ5O1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCBqc29uID0ge1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIGJyZWFrUG9pbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnN0cmFpbnRcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBjb25zdHJhaW50O1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHVuc2VyaWFsaXNlKChqc29uLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgICBjb25zdHJhaW50Tm9kZSA9IGluc3RhbnRpYXRlQ29uc3RyYWludChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBub2RlID0gY29uc3RyYWludE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlRnJvbUNvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUNvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb25zdHJhaW50ID0gbmV3IENvbnN0cmFpbnQoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWZlcmVuY2UsIHN0YXRlbWVudCk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBjb25zdHJhaW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGVwKHN0ZXAsIGNvbnRleHQpIHtcbiAgICBsZXQgY29uc3RyYWludDtcblxuICAgIGxldCBzdGF0ZW1lbnQ7XG5cbiAgICBzdGF0ZW1lbnQgPSBzdGVwLmdldFN0YXRlbWVudCgpO1xuXG4gICAgc3RhdGVtZW50ID0gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgICBjb25zdCByZWZlcmVuY2UgPSBzdGVwLmdldFJlZmVyZW5jZSgpO1xuXG4gICAgYWJsYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBjb25zdHJhaW50U3RyaW5nID0gY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQocmVmZXJlbmNlLCBzdGF0ZW1lbnQpLFxuICAgICAgICAgICAgICBzdHJpbmcgPSBjb25zdHJhaW50U3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIGNvbnN0cmFpbnROb2RlID0gaW5zdGFudGlhdGVDb25zdHJhaW50KHN0cmluZywgY29udGV4dCk7XG5cbiAgICAgICAgY29uc3RyYWludCA9IGNvbnN0cmFpbnRGcm9tQ29uc3RyYWludE5vZGUoY29uc3RyYWludE5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gY29uc3RyYWludDtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHJlZmVyZW5jZUZyb21Db25zdHJhaW50Tm9kZShjb25zdHJhaW50Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCByZWZlcmVuY2VOb2RlID0gY29uc3RyYWludE5vZGUuZ2V0UmVmZXJlbmNlTm9kZSgpLFxuICAgICAgICByZWZlcm5lY2UgPSBjb250ZXh0LmZpbmRSZWZlcmVuY2VCeVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSk7XG5cbiAgcmV0dXJuIHJlZmVybmVjZTtcbn1cblxuZnVuY3Rpb24gc3RhdGVtZW50RnJvbUNvbnN0cmFpbnROb2RlKGNvbnN0cmFpbnROb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBjb25zdHJhaW50Tm9kZS5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudCA9IGNvbnRleHQuZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuIl0sIm5hbWVzIjpbImRlZmluZSIsIkNvbnN0cmFpbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicmVmZXJlbmNlIiwic3RhdGVtZW50IiwiZ2V0UmVmZXJlbmNlIiwiZ2V0U3RhdGVtZW50IiwiZ2V0Q29uc3RyYWludE5vZGUiLCJnZXROb2RlIiwiY29uc3RyYWludE5vZGUiLCJnZXRNZXRhdmFyaWFibGUiLCJpc0VxdWFsVG8iLCJjb25zdHJhaW50IiwiY29uc3RyYWludE5vZGVNYXRjaGVzIiwibWF0Y2hDb25zdHJhaW50Tm9kZSIsImVxdWFsVG8iLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImZpbmRWYWxpZENvbnN0cmFpbnQiLCJmaW5kQ29uc3RyYWludEJ5Q29uc3RyYWludE5vZGUiLCJ2YWxpZENvbnN0cmFpbnQiLCJ2YWxpZGF0ZSIsImNvbnN0cmFpbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbGlkYXRlcyIsImRlYnVnIiwidGVtcG9yYXJ5Q29udGV4dCIsImdldENvbnRleHQiLCJhdHRlbXB0Iiwic3RhdGVtZW50VmFsaWRhdGVzIiwidmFsaWRhdGVTdGF0ZW1lbnQiLCJyZWZlcmVuY2VWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVJlZmVyZW5jZSIsInN0YXRlZCIsImlzU3RhdGVkIiwidmFsaWRhdGVzV2hlblN0YXRlZCIsInZhbGlkYXRlc1doZW5EZXJpdmVkIiwidmFsaWRhdGVXaGVuU3RhdGVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsImNvbW1pdCIsImFkZENvbnN0cmFpbnQiLCJtZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVEZWNsYXJlZCIsImlzRGVjbGFyZWQiLCJkZXNjZW5kIiwidW5pZnlSZWZlcmVuY2UiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInJlZmVyZW5jZVVuaWZpZXMiLCJyZWZlcmVuY2VTdHJpbmciLCJ1bmlmeVN0YXRlbWVudCIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJnZW5lcmFsU3RhdGVtZW50Iiwic3BlY2lmaWNTdGF0ZW1lbnQiLCJzdHJpcEJyYWNrZXRzRnJvbVN0YXRlbWVudCIsInVuaWZ5QXNzdW1wdGlvbiIsImFzc3VtcHRpb24iLCJhc3N1bXB0aW9uVW5pZmllcyIsImFzc3VtcHRpb25TdHJpbmciLCJjb25zdHJhaW50Q29udGV4dCIsImFzc3VtcHRpb25Db250ZXh0Iiwiam9pbiIsInJlY29uY2lsZSIsInJlZmVybmVjZVVuaWZpZXMiLCJzdGF0ZW1lbnRVbmlmaWVkIiwidW5pZnlBc3N1bXB0aW9ucyIsImFzc3VtcHRpb25zIiwiYXNzdW1wdGlvbnNVbmlmeSIsInNvbWUiLCJ0b0pTT04iLCJzZXJpYWxpc2UiLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVDb25zdHJhaW50IiwiYnJlYWtQb2ludEZyb21KU09OIiwicmVmZXJlbmNlRnJvbUNvbnN0cmFpbnROb2RlIiwic3RhdGVtZW50RnJvbUNvbnN0cmFpbnROb2RlIiwiZnJvbVN0ZXAiLCJzdGVwIiwiYWJsYXRlIiwiY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQiLCJjb25zdHJhaW50RnJvbUNvbnN0cmFpbnROb2RlIiwicmVmZXJlbmNlTm9kZSIsImdldFJlZmVyZW5jZU5vZGUiLCJyZWZlcm5lY2UiLCJmaW5kUmVmZXJlbmNlQnlSZWZlcmVuY2VOb2RlIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJmaW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQUE7OztnQ0FYd0I7MEJBRUQ7dUJBQ1E7MEJBQ1k7NkJBQ0w7NEJBQ3lCO3lCQUNsQjt3QkFDYTt5QkFDcUM7TUFFL0YsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxTQUFTLENBQUU7UUFDbkUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0YsU0FBUztJQUN2QjtJQUVBRyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsb0JBQW9CO1FB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
|
|
@@ -159,11 +159,9 @@ const _default = (0, _elements.define)(class Equivalence extends _occamlanguages
|
|
|
159
159
|
type
|
|
160
160
|
], terms = equivalence.getTerms(), combinedType = combinedTypeFromTypes(types), combinedTerms = this.combineTerms(terms);
|
|
161
161
|
type = combinedType; ///
|
|
162
|
-
(0, _context.
|
|
163
|
-
(0,
|
|
164
|
-
|
|
165
|
-
equivalence = (0, _element.equivalenceFromEquivalenceNode)(equivalenceNode, context);
|
|
166
|
-
}, context);
|
|
162
|
+
(0, _context.instantiate)((context)=>{
|
|
163
|
+
const terms = combinedTerms, equivalenceString = (0, _string.equivalenceStringFromTerms)(terms), string = equivalenceString, equivalenceNode = (0, _instantiate.instantiateEquivalence)(string, context);
|
|
164
|
+
equivalence = (0, _element.equivalenceFromEquivalenceNode)(equivalenceNode, context);
|
|
167
165
|
}, context);
|
|
168
166
|
equivalence.setType(type);
|
|
169
167
|
return equivalence;
|
|
@@ -172,11 +170,9 @@ const _default = (0, _elements.define)(class Equivalence extends _occamlanguages
|
|
|
172
170
|
static fromEquality(equality, context) {
|
|
173
171
|
let equivalence;
|
|
174
172
|
const type = equality.getType();
|
|
175
|
-
(0, _context.
|
|
176
|
-
(0,
|
|
177
|
-
|
|
178
|
-
equivalence = (0, _element.equivalenceFromEquivalenceNode)(equivalenceNode, context);
|
|
179
|
-
}, context);
|
|
173
|
+
(0, _context.instantiate)((context)=>{
|
|
174
|
+
const terms = equality.getTerms(), equivalenceString = (0, _string.equivalenceStringFromTerms)(terms), string = equivalenceString, equivalenceNode = (0, _instantiate.instantiateEquivalence)(string, context);
|
|
175
|
+
equivalence = (0, _element.equivalenceFromEquivalenceNode)(equivalenceNode, context);
|
|
180
176
|
}, context);
|
|
181
177
|
equivalence.setType(type);
|
|
182
178
|
return equivalence;
|
|
@@ -197,4 +193,4 @@ function combinedTypeFromTypes(types) {
|
|
|
197
193
|
return combinedType;
|
|
198
194
|
}
|
|
199
195
|
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWl2YWxlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgYWJsYXRlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVFcXVpdmFsZW5jZSB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmFja2V0c1wiO1xuaW1wb3J0IHsgZXF1aXZhbGVuY2VTdHJpbmdGcm9tVGVybXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgZXF1aXZhbGVuY2VGcm9tRXF1aXZhbGVuY2VOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXF1aXZhbGVuY2UgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCB0ZXJtcykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldFRlcm1zKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1zO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHNldFRlcm1zKHRlcm1zKSB7XG4gICAgdGhpcy50ZXJtcyA9IHRlcm1zO1xuICB9XG5cbiAgZ2V0RXF1aXZhbGVuY2VOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBlcXVpdmFsZW5jZU5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBlcXVpdmFsZW5jZU5vZGU7XG4gIH1cblxuICBnZXRHcm91bmRlZFRlcm1zKGRlZmluZWRWYXJpYWJsZXMsIGdyb3VuZGVkVGVybXMsIGNvbnRleHQpIHtcbiAgICB0aGlzLnRlcm1zLmZvckVhY2goKHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1Hcm91bmRlZCA9IHRlcm0uaXNHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1Hcm91bmRlZCkge1xuICAgICAgICBjb25zdCB0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybSA9IGdyb3VuZGVkVGVybXMuc29tZSgoZ3JvdW5kZWRUZXJtKSA9PiB7XG4gICAgICAgICAgY29uc3QgZ3JvdW5kZWRUZXJtTm9kZSA9IGdyb3VuZGVkVGVybS5nZXROb2RlKCksXG4gICAgICAgICAgICAgICAgZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMgPSB0ZXJtLm1hdGNoVGVybU5vZGUoZ3JvdW5kZWRUZXJtTm9kZSk7XG5cbiAgICAgICAgICBpZiAoZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIXRlcm1NYXRjaGVzR3JvdW5kZWRUZXJtKSB7XG4gICAgICAgICAgY29uc3QgZ3JvdW5kZWRUZXJtID0gdGVybTtcblxuICAgICAgICAgIGdyb3VuZGVkVGVybXMucHVzaChncm91bmRlZFRlcm0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRJbml0aWFsbHlHcm91bmRlZFRlcm1zKGNvbnRleHQpIHtcbiAgICBjb25zdCBpbml0aWFsbHlHcm91bmRlZFRlcm1zID0gdGhpcy50ZXJtcy5yZWR1Y2UoKGluaXRpYWxseUdyb3VuZGVkVGVybXMsIHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1Jbml0aWFsbHlHcm91bmRlZCA9IHRlcm0uaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1Jbml0aWFsbHlHcm91bmRlZCkge1xuICAgICAgICBjb25zdCBpbml0aWFsbHlHcm91bmRlZFRlcm0gPSB0ZXJtOyAvLy9cblxuICAgICAgICBpbml0aWFsbHlHcm91bmRlZFRlcm1zLnB1c2goaW5pdGlhbGx5R3JvdW5kZWRUZXJtKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkVGVybXM7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkVGVybXM7XG4gIH1cblxuICBnZXRJbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgaW1wbGljaXRseUdyb3VuZGVkVGVybXMgPSB0aGlzLnRlcm1zLnJlZHVjZSgoaW1wbGljaXRseUdyb3VuZGVkVGVybXMsIHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1JbXBsaWNpdGx5R3JvdW5kZWQgPSB0ZXJtLmlzSW1wbGljaXRseUdyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybUltcGxpY2l0bHlHcm91bmRlZCkge1xuICAgICAgICBjb25zdCBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtID0gdGVybTsgLy8vXG5cbiAgICAgICAgaW1wbGljaXRseUdyb3VuZGVkVGVybXMucHVzaChpbXBsaWNpdGx5R3JvdW5kZWRUZXJtKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGltcGxpY2l0bHlHcm91bmRlZFRlcm1zO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcztcbiAgfVxuXG4gIGlzRGlzam9pbnRGcm9tKGVxdWl2YWxlbmNlKSB7XG4gICAgY29uc3QgZGlzam9pbnRGcm9tID0gZXF1aXZhbGVuY2UuZXZlcnlUZXJtKCh0ZXJtKSA9PiB7XG4gICAgICBjb25zdCBjb21wYXJlc1RvVGVybSA9IHRoaXMuY29tcGFyZVRlcm0odGVybSk7XG5cbiAgICAgIGlmICghY29tcGFyZXNUb1Rlcm0pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlzam9pbnRGcm9tO1xuICB9XG5cbiAgaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KSB7XG4gICAgY29uc3QgaW5pdGlhbGx5R3JvdW5kZWRUZXJtcyA9IHRoaXMuZ2V0SW5pdGlhbGx5R3JvdW5kZWRUZXJtcyhjb250ZXh0KSxcbiAgICAgICAgICBpbml0aWFsbHlHcm91bmRlZFRlcm1zTGVuZ3RoID0gaW5pdGlhbGx5R3JvdW5kZWRUZXJtcy5sZW5ndGgsXG4gICAgICAgICAgaW5pdGlhbGx5R3JvdW5kZWQgPSAoaW5pdGlhbGx5R3JvdW5kZWRUZXJtc0xlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGltcGxpY2l0bHlHcm91bmRlZFRlcm1zID0gdGhpcy5nZXRJbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSxcbiAgICAgICAgICBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtc0xlbmd0aCA9IGltcGxpY2l0bHlHcm91bmRlZFRlcm1zLmxlbmd0aCxcbiAgICAgICAgICBpbXBsaWNpdGx5R3JvdW5kZWQgPSAoaW1wbGljaXRseUdyb3VuZGVkVGVybXNMZW5ndGggPiAwKTtcblxuICAgIHJldHVybiBpbXBsaWNpdGx5R3JvdW5kZWQ7XG4gIH1cblxuICBtYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gICAgdGVybU5vZGUgPSBzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTsgLy8vXG5cbiAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXMgPSB0aGlzLnNvbWVUZXJtKCh0ZXJtKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXMgPSB0ZXJtLm1hdGNoVGVybU5vZGUodGVybU5vZGUpO1xuXG4gICAgICBpZiAodGVybU5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlcm1Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVGVybU5vZGVzKHRlcm1Ob2Rlcykge1xuICAgIGNvbnN0IHRlcm1Ob2Rlc01hdGNoID0gdGVybU5vZGVzLmV2ZXJ5KCh0ZXJtTm9kZSkgPT4ge1xuICAgICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgICAgaWYgKHRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0ZXJtTm9kZXNNYXRjaDtcbiAgfVxuXG4gIHNvbWVUZXJtKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLnRlcm1zLnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZXZlcnlUZXJtKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLnRlcm1zLmV2ZXJ5KGNhbGxiYWNrKTsgfVxuXG4gIGNvbXBhcmVUZXJtKHRlcm0pIHtcbiAgICBjb25zdCB0ZXJtQSA9IHRlcm0sIC8vL1xuICAgICAgICAgIGNvbXBhcmVzVG9UZXJtID0gdGhpcy5zb21lVGVybSgodGVybSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVybUIgPSB0ZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1BRXF1YWxUb1Rlcm1CID0gdGVybUEuaXNFcXVhbFRvKHRlcm1CKTtcblxuICAgICAgICAgICAgaWYgKHRlcm1BRXF1YWxUb1Rlcm1CKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9UZXJtO1xuICB9XG5cbiAgc29tZU90aGVyVGVybSh0ZXJtLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHRlcm1BID0gdGVybSwgLy8vXG4gICAgICAgICAgdGVybXMgPSB0aGlzLnRlcm1zLmZpbHRlcigodGVybSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVybUIgPSB0ZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1BRXF1YWxUb1Rlcm1CID0gdGVybUEuaXNFcXVhbFRvKHRlcm1CKTtcblxuICAgICAgICAgICAgaWYgKCF0ZXJtQUVxdWFsVG9UZXJtQikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICByZXN1bHQgPSB0ZXJtcy5zb21lKGNhbGxiYWNrKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBjb21iaW5lVGVybXModGVybXMpIHtcbiAgICBjb25zdCBjb21iaW5lZFRlcm1zID0gW1xuICAgICAgLi4udGhpcy50ZXJtcyxcbiAgICAgIC4uLnRlcm1zXG4gICAgXTtcblxuICAgIGNvbXByZXNzKGNvbWJpbmVkVGVybXMsIChjb21iaW5lZFRlcm1BLCBjb21iaW5lZFRlcm1CKSA9PiB7XG4gICAgICBjb25zdCBjb21iaW5lZFRlcm1FcXVhbFRvVG9Db21iaW5lZFRlcm1CID0gY29tYmluZWRUZXJtQS5pc0VxdWFsVG8oY29tYmluZWRUZXJtQik7XG5cbiAgICAgIGlmICghY29tYmluZWRUZXJtRXF1YWxUb1RvQ29tYmluZWRUZXJtQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb21iaW5lZFRlcm1zO1xuICB9XG5cbiAgbWVyZ2VkV2l0aChlcXVpdmFsZW5jZSwgY29udGV4dCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgdHlwZSA9IGVxdWl2YWxlbmNlLmdldFR5cGUoKTtcblxuICAgIGNvbnN0IHR5cGVzID0gW1xuICAgICAgICAgICAgdGhpcy50eXBlLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdGVybXMgPSBlcXVpdmFsZW5jZS5nZXRUZXJtcygpLFxuICAgICAgICAgIGNvbWJpbmVkVHlwZSA9IGNvbWJpbmVkVHlwZUZyb21UeXBlcyh0eXBlcyksXG4gICAgICAgICAgY29tYmluZWRUZXJtcyA9IHRoaXMuY29tYmluZVRlcm1zKHRlcm1zKTtcblxuICAgIHR5cGUgPSBjb21iaW5lZFR5cGU7ICAvLy9cblxuICAgIGFibGF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgdGVybXMgPSBjb21iaW5lZFRlcm1zLCAgLy8vXG4gICAgICAgICAgICAgIGVxdWl2YWxlbmNlU3RyaW5nID0gZXF1aXZhbGVuY2VTdHJpbmdGcm9tVGVybXModGVybXMpLFxuICAgICAgICAgICAgICBzdHJpbmcgPSBlcXVpdmFsZW5jZVN0cmluZywgIC8vL1xuICAgICAgICAgICAgICBlcXVpdmFsZW5jZU5vZGUgPSBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCk7XG5cbiAgICAgICAgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUZyb21FcXVpdmFsZW5jZU5vZGUoZXF1aXZhbGVuY2VOb2RlLCBjb250ZXh0KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgZXF1aXZhbGVuY2Uuc2V0VHlwZSh0eXBlKTtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFcXVpdmFsZW5jZVwiO1xuXG4gIHN0YXRpYyBmcm9tRXF1YWxpdHkoZXF1YWxpdHksIGNvbnRleHQpIHtcbiAgICBsZXQgZXF1aXZhbGVuY2U7XG5cbiAgICBjb25zdCB0eXBlID0gZXF1YWxpdHkuZ2V0VHlwZSgpO1xuXG4gICAgYWJsYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtcyA9IGVxdWFsaXR5LmdldFRlcm1zKCksXG4gICAgICAgICAgICAgIGVxdWl2YWxlbmNlU3RyaW5nID0gZXF1aXZhbGVuY2VTdHJpbmdGcm9tVGVybXModGVybXMpLFxuICAgICAgICAgICAgICBzdHJpbmcgPSBlcXVpdmFsZW5jZVN0cmluZywgIC8vL1xuICAgICAgICAgICAgICBlcXVpdmFsZW5jZU5vZGUgPSBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCk7XG5cbiAgICAgICAgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUZyb21FcXVpdmFsZW5jZU5vZGUoZXF1aXZhbGVuY2VOb2RlLCBjb250ZXh0KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgZXF1aXZhbGVuY2Uuc2V0VHlwZSh0eXBlKTtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGNvbWJpbmVkVHlwZUZyb21UeXBlcyh0eXBlcykge1xuICBjb25zdCBjb21iaW5lZFR5cGUgPSB0eXBlcy5yZWR1Y2UoKGNvbWJpbmVkVHlwZSwgdHlwZSkgPT4ge1xuICAgIGlmIChjb21iaW5lZFR5cGUgPT09IG51bGwpIHtcbiAgICAgIGNvbWJpbmVkVHlwZSA9IHR5cGU7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVN1YlR5cGVPZkNvbWJpbmVkVHlwZSA9IHR5cGUuaXNTdWJUeXBlT2YoY29tYmluZWRUeXBlKTtcblxuICAgICAgaWYgKHR5cGVTdWJUeXBlT2ZDb21iaW5lZFR5cGUpIHtcbiAgICAgICAgY29tYmluZWRUeXBlID0gdHlwZTsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5lZFR5cGU7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBjb21iaW5lZFR5cGU7XG59XG4iXSwibmFtZXMiOlsiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIkVxdWl2YWxlbmNlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJ0ZXJtcyIsImdldFR5cGUiLCJnZXRUZXJtcyIsInNldFR5cGUiLCJzZXRUZXJtcyIsImdldEVxdWl2YWxlbmNlTm9kZSIsImdldE5vZGUiLCJlcXVpdmFsZW5jZU5vZGUiLCJnZXRHcm91bmRlZFRlcm1zIiwiZGVmaW5lZFZhcmlhYmxlcyIsImdyb3VuZGVkVGVybXMiLCJmb3JFYWNoIiwidGVybSIsInRlcm1Hcm91bmRlZCIsImlzR3JvdW5kZWQiLCJ0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybSIsInNvbWUiLCJncm91bmRlZFRlcm0iLCJncm91bmRlZFRlcm1Ob2RlIiwiZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlIiwicHVzaCIsImdldEluaXRpYWxseUdyb3VuZGVkVGVybXMiLCJpbml0aWFsbHlHcm91bmRlZFRlcm1zIiwicmVkdWNlIiwidGVybUluaXRpYWxseUdyb3VuZGVkIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsImluaXRpYWxseUdyb3VuZGVkVGVybSIsImdldEltcGxpY2l0bHlHcm91bmRlZFRlcm1zIiwiaW1wbGljaXRseUdyb3VuZGVkVGVybXMiLCJ0ZXJtSW1wbGljaXRseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJpbXBsaWNpdGx5R3JvdW5kZWRUZXJtIiwiaXNEaXNqb2ludEZyb20iLCJlcXVpdmFsZW5jZSIsImRpc2pvaW50RnJvbSIsImV2ZXJ5VGVybSIsImNvbXBhcmVzVG9UZXJtIiwiY29tcGFyZVRlcm0iLCJpbml0aWFsbHlHcm91bmRlZFRlcm1zTGVuZ3RoIiwibGVuZ3RoIiwiaW5pdGlhbGx5R3JvdW5kZWQiLCJpbXBsaWNpdGx5R3JvdW5kZWRUZXJtc0xlbmd0aCIsImltcGxpY2l0bHlHcm91bmRlZCIsInRlcm1Ob2RlIiwic3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSIsInRlcm1Ob2RlTWF0Y2hlcyIsInNvbWVUZXJtIiwibWF0Y2hUZXJtTm9kZXMiLCJ0ZXJtTm9kZXMiLCJ0ZXJtTm9kZXNNYXRjaCIsImV2ZXJ5IiwiY2FsbGJhY2siLCJ0ZXJtQSIsInRlcm1CIiwidGVybUFFcXVhbFRvVGVybUIiLCJpc0VxdWFsVG8iLCJzb21lT3RoZXJUZXJtIiwiZmlsdGVyIiwicmVzdWx0IiwiY29tYmluZVRlcm1zIiwiY29tYmluZWRUZXJtcyIsImNvbWJpbmVkVGVybUEiLCJjb21iaW5lZFRlcm1CIiwiY29tYmluZWRUZXJtRXF1YWxUb1RvQ29tYmluZWRUZXJtQiIsIm1lcmdlZFdpdGgiLCJ0eXBlcyIsImNvbWJpbmVkVHlwZSIsImNvbWJpbmVkVHlwZUZyb21UeXBlcyIsImFibGF0ZSIsImluc3RhbnRpYXRlIiwiZXF1aXZhbGVuY2VTdHJpbmciLCJlcXVpdmFsZW5jZVN0cmluZ0Zyb21UZXJtcyIsImluc3RhbnRpYXRlRXF1aXZhbGVuY2UiLCJlcXVpdmFsZW5jZUZyb21FcXVpdmFsZW5jZU5vZGUiLCJuYW1lIiwiZnJvbUVxdWFsaXR5IiwiZXF1YWxpdHkiLCJ0eXBlU3ViVHlwZU9mQ29tYmluZWRUeXBlIiwiaXNTdWJUeXBlT2YiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVp3QjsyQkFDTzswQkFFUjt5QkFDYTs2QkFDRzswQkFDRzt3QkFDQzt5QkFDSTtBQUUvQyxNQUFNLEVBQUVBLFFBQVEsRUFBRSxH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
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWl2YWxlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlRXF1aXZhbGVuY2UgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgc3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvYnJhY2tldHNcIjtcbmltcG9ydCB7IGVxdWl2YWxlbmNlU3RyaW5nRnJvbVRlcm1zIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IGVxdWl2YWxlbmNlRnJvbUVxdWl2YWxlbmNlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5jb25zdCB7IGNvbXByZXNzIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVxdWl2YWxlbmNlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdGVybXMpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRUZXJtcygpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtcztcbiAgfVxuXG4gIHNldFR5cGUodHlwZSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBzZXRUZXJtcyh0ZXJtcykge1xuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgfVxuXG4gIGdldEVxdWl2YWxlbmNlTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgZXF1aXZhbGVuY2VOb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gZXF1aXZhbGVuY2VOb2RlO1xuICB9XG5cbiAgZ2V0R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBjb250ZXh0KSB7XG4gICAgdGhpcy50ZXJtcy5mb3JFYWNoKCh0ZXJtKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtR3JvdW5kZWQgPSB0ZXJtLmlzR3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgY29uc3QgdGVybU1hdGNoZXNHcm91bmRlZFRlcm0gPSBncm91bmRlZFRlcm1zLnNvbWUoKGdyb3VuZGVkVGVybSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGdyb3VuZGVkVGVybU5vZGUgPSBncm91bmRlZFRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgICAgIGdyb3VuZGVkVGVybU5vZGVNYXRjaGVzID0gdGVybS5tYXRjaFRlcm1Ob2RlKGdyb3VuZGVkVGVybU5vZGUpO1xuXG4gICAgICAgICAgaWYgKGdyb3VuZGVkVGVybU5vZGVNYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKCF0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybSkge1xuICAgICAgICAgIGNvbnN0IGdyb3VuZGVkVGVybSA9IHRlcm07XG5cbiAgICAgICAgICBncm91bmRlZFRlcm1zLnB1c2goZ3JvdW5kZWRUZXJtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0SW5pdGlhbGx5R3JvdW5kZWRUZXJtcyhjb250ZXh0KSB7XG4gICAgY29uc3QgaW5pdGlhbGx5R3JvdW5kZWRUZXJtcyA9IHRoaXMudGVybXMucmVkdWNlKChpbml0aWFsbHlHcm91bmRlZFRlcm1zLCB0ZXJtKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtSW5pdGlhbGx5R3JvdW5kZWQgPSB0ZXJtLmlzSW5pdGlhbGx5R3JvdW5kZWQoY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtSW5pdGlhbGx5R3JvdW5kZWQpIHtcbiAgICAgICAgY29uc3QgaW5pdGlhbGx5R3JvdW5kZWRUZXJtID0gdGVybTsgLy8vXG5cbiAgICAgICAgaW5pdGlhbGx5R3JvdW5kZWRUZXJtcy5wdXNoKGluaXRpYWxseUdyb3VuZGVkVGVybSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbml0aWFsbHlHcm91bmRlZFRlcm1zO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBpbml0aWFsbHlHcm91bmRlZFRlcm1zO1xuICB9XG5cbiAgZ2V0SW1wbGljaXRseUdyb3VuZGVkVGVybXMoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGltcGxpY2l0bHlHcm91bmRlZFRlcm1zID0gdGhpcy50ZXJtcy5yZWR1Y2UoKGltcGxpY2l0bHlHcm91bmRlZFRlcm1zLCB0ZXJtKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtSW1wbGljaXRseUdyb3VuZGVkID0gdGVybS5pc0ltcGxpY2l0bHlHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1JbXBsaWNpdGx5R3JvdW5kZWQpIHtcbiAgICAgICAgY29uc3QgaW1wbGljaXRseUdyb3VuZGVkVGVybSA9IHRlcm07IC8vL1xuXG4gICAgICAgIGltcGxpY2l0bHlHcm91bmRlZFRlcm1zLnB1c2goaW1wbGljaXRseUdyb3VuZGVkVGVybSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcztcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkVGVybXM7XG4gIH1cblxuICBpc0Rpc2pvaW50RnJvbShlcXVpdmFsZW5jZSkge1xuICAgIGNvbnN0IGRpc2pvaW50RnJvbSA9IGVxdWl2YWxlbmNlLmV2ZXJ5VGVybSgodGVybSkgPT4ge1xuICAgICAgY29uc3QgY29tcGFyZXNUb1Rlcm0gPSB0aGlzLmNvbXBhcmVUZXJtKHRlcm0pO1xuXG4gICAgICBpZiAoIWNvbXBhcmVzVG9UZXJtKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpc2pvaW50RnJvbTtcbiAgfVxuXG4gIGlzSW5pdGlhbGx5R3JvdW5kZWQoY29udGV4dCkge1xuICAgIGNvbnN0IGluaXRpYWxseUdyb3VuZGVkVGVybXMgPSB0aGlzLmdldEluaXRpYWxseUdyb3VuZGVkVGVybXMoY29udGV4dCksXG4gICAgICAgICAgaW5pdGlhbGx5R3JvdW5kZWRUZXJtc0xlbmd0aCA9IGluaXRpYWxseUdyb3VuZGVkVGVybXMubGVuZ3RoLFxuICAgICAgICAgIGluaXRpYWxseUdyb3VuZGVkID0gKGluaXRpYWxseUdyb3VuZGVkVGVybXNMZW5ndGggPiAwKTtcblxuICAgIHJldHVybiBpbml0aWFsbHlHcm91bmRlZDtcbiAgfVxuXG4gIGlzSW1wbGljaXRseUdyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBjb25zdCBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyA9IHRoaXMuZ2V0SW1wbGljaXRseUdyb3VuZGVkVGVybXMoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCksXG4gICAgICAgICAgaW1wbGljaXRseUdyb3VuZGVkVGVybXNMZW5ndGggPSBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcy5sZW5ndGgsXG4gICAgICAgICAgaW1wbGljaXRseUdyb3VuZGVkID0gKGltcGxpY2l0bHlHcm91bmRlZFRlcm1zTGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkO1xuICB9XG5cbiAgbWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZSkge1xuICAgIHRlcm1Ob2RlID0gc3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSh0ZXJtTm9kZSk7IC8vL1xuXG4gICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGhpcy5zb21lVGVybSgodGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGVybS5tYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgICAgaWYgKHRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0ZXJtTm9kZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFRlcm1Ob2Rlcyh0ZXJtTm9kZXMpIHtcbiAgICBjb25zdCB0ZXJtTm9kZXNNYXRjaCA9IHRlcm1Ob2Rlcy5ldmVyeSgodGVybU5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1Ob2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgICAgIGlmICh0ZXJtTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGVybU5vZGVzTWF0Y2g7XG4gIH1cblxuICBzb21lVGVybShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy50ZXJtcy5zb21lKGNhbGxiYWNrKTsgfVxuXG4gIGV2ZXJ5VGVybShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy50ZXJtcy5ldmVyeShjYWxsYmFjayk7IH1cblxuICBjb21wYXJlVGVybSh0ZXJtKSB7XG4gICAgY29uc3QgdGVybUEgPSB0ZXJtLCAvLy9cbiAgICAgICAgICBjb21wYXJlc1RvVGVybSA9IHRoaXMuc29tZVRlcm0oKHRlcm0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRlcm1CID0gdGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICB0ZXJtQUVxdWFsVG9UZXJtQiA9IHRlcm1BLmlzRXF1YWxUbyh0ZXJtQik7XG5cbiAgICAgICAgICAgIGlmICh0ZXJtQUVxdWFsVG9UZXJtQikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVGVybTtcbiAgfVxuXG4gIHNvbWVPdGhlclRlcm0odGVybSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCB0ZXJtQSA9IHRlcm0sIC8vL1xuICAgICAgICAgIHRlcm1zID0gdGhpcy50ZXJtcy5maWx0ZXIoKHRlcm0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRlcm1CID0gdGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICB0ZXJtQUVxdWFsVG9UZXJtQiA9IHRlcm1BLmlzRXF1YWxUbyh0ZXJtQik7XG5cbiAgICAgICAgICAgIGlmICghdGVybUFFcXVhbFRvVGVybUIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgcmVzdWx0ID0gdGVybXMuc29tZShjYWxsYmFjayk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgY29tYmluZVRlcm1zKHRlcm1zKSB7XG4gICAgY29uc3QgY29tYmluZWRUZXJtcyA9IFtcbiAgICAgIC4uLnRoaXMudGVybXMsXG4gICAgICAuLi50ZXJtc1xuICAgIF07XG5cbiAgICBjb21wcmVzcyhjb21iaW5lZFRlcm1zLCAoY29tYmluZWRUZXJtQSwgY29tYmluZWRUZXJtQikgPT4ge1xuICAgICAgY29uc3QgY29tYmluZWRUZXJtRXF1YWxUb1RvQ29tYmluZWRUZXJtQiA9IGNvbWJpbmVkVGVybUEuaXNFcXVhbFRvKGNvbWJpbmVkVGVybUIpO1xuXG4gICAgICBpZiAoIWNvbWJpbmVkVGVybUVxdWFsVG9Ub0NvbWJpbmVkVGVybUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tYmluZWRUZXJtcztcbiAgfVxuXG4gIG1lcmdlZFdpdGgoZXF1aXZhbGVuY2UsIGNvbnRleHQpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIHR5cGUgPSBlcXVpdmFsZW5jZS5nZXRUeXBlKCk7XG5cbiAgICBjb25zdCB0eXBlcyA9IFtcbiAgICAgICAgICAgIHRoaXMudHlwZSxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICBdLFxuICAgICAgICAgIHRlcm1zID0gZXF1aXZhbGVuY2UuZ2V0VGVybXMoKSxcbiAgICAgICAgICBjb21iaW5lZFR5cGUgPSBjb21iaW5lZFR5cGVGcm9tVHlwZXModHlwZXMpLFxuICAgICAgICAgIGNvbWJpbmVkVGVybXMgPSB0aGlzLmNvbWJpbmVUZXJtcyh0ZXJtcyk7XG5cbiAgICB0eXBlID0gY29tYmluZWRUeXBlOyAgLy8vXG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdGVybXMgPSBjb21iaW5lZFRlcm1zLCAgLy8vXG4gICAgICAgICAgICBlcXVpdmFsZW5jZVN0cmluZyA9IGVxdWl2YWxlbmNlU3RyaW5nRnJvbVRlcm1zKHRlcm1zKSxcbiAgICAgICAgICAgIHN0cmluZyA9IGVxdWl2YWxlbmNlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICBlcXVpdmFsZW5jZU5vZGUgPSBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCk7XG5cbiAgICAgIGVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VGcm9tRXF1aXZhbGVuY2VOb2RlKGVxdWl2YWxlbmNlTm9kZSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBlcXVpdmFsZW5jZS5zZXRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkVxdWl2YWxlbmNlXCI7XG5cbiAgc3RhdGljIGZyb21FcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICAgIGxldCBlcXVpdmFsZW5jZTtcblxuICAgIGNvbnN0IHR5cGUgPSBlcXVhbGl0eS5nZXRUeXBlKCk7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdGVybXMgPSBlcXVhbGl0eS5nZXRUZXJtcygpLFxuICAgICAgICAgICAgZXF1aXZhbGVuY2VTdHJpbmcgPSBlcXVpdmFsZW5jZVN0cmluZ0Zyb21UZXJtcyh0ZXJtcyksXG4gICAgICAgICAgICBzdHJpbmcgPSBlcXVpdmFsZW5jZVN0cmluZywgIC8vL1xuICAgICAgICAgICAgZXF1aXZhbGVuY2VOb2RlID0gaW5zdGFudGlhdGVFcXVpdmFsZW5jZShzdHJpbmcsIGNvbnRleHQpO1xuXG4gICAgICBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlRnJvbUVxdWl2YWxlbmNlTm9kZShlcXVpdmFsZW5jZU5vZGUsIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgZXF1aXZhbGVuY2Uuc2V0VHlwZSh0eXBlKTtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGNvbWJpbmVkVHlwZUZyb21UeXBlcyh0eXBlcykge1xuICBjb25zdCBjb21iaW5lZFR5cGUgPSB0eXBlcy5yZWR1Y2UoKGNvbWJpbmVkVHlwZSwgdHlwZSkgPT4ge1xuICAgIGlmIChjb21iaW5lZFR5cGUgPT09IG51bGwpIHtcbiAgICAgIGNvbWJpbmVkVHlwZSA9IHR5cGU7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVN1YlR5cGVPZkNvbWJpbmVkVHlwZSA9IHR5cGUuaXNTdWJUeXBlT2YoY29tYmluZWRUeXBlKTtcblxuICAgICAgaWYgKHR5cGVTdWJUeXBlT2ZDb21iaW5lZFR5cGUpIHtcbiAgICAgICAgY29tYmluZWRUeXBlID0gdHlwZTsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5lZFR5cGU7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBjb21iaW5lZFR5cGU7XG59XG4iXSwibmFtZXMiOlsiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIkVxdWl2YWxlbmNlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJ0ZXJtcyIsImdldFR5cGUiLCJnZXRUZXJtcyIsInNldFR5cGUiLCJzZXRUZXJtcyIsImdldEVxdWl2YWxlbmNlTm9kZSIsImdldE5vZGUiLCJlcXVpdmFsZW5jZU5vZGUiLCJnZXRHcm91bmRlZFRlcm1zIiwiZGVmaW5lZFZhcmlhYmxlcyIsImdyb3VuZGVkVGVybXMiLCJmb3JFYWNoIiwidGVybSIsInRlcm1Hcm91bmRlZCIsImlzR3JvdW5kZWQiLCJ0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybSIsInNvbWUiLCJncm91bmRlZFRlcm0iLCJncm91bmRlZFRlcm1Ob2RlIiwiZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlIiwicHVzaCIsImdldEluaXRpYWxseUdyb3VuZGVkVGVybXMiLCJpbml0aWFsbHlHcm91bmRlZFRlcm1zIiwicmVkdWNlIiwidGVybUluaXRpYWxseUdyb3VuZGVkIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsImluaXRpYWxseUdyb3VuZGVkVGVybSIsImdldEltcGxpY2l0bHlHcm91bmRlZFRlcm1zIiwiaW1wbGljaXRseUdyb3VuZGVkVGVybXMiLCJ0ZXJtSW1wbGljaXRseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJpbXBsaWNpdGx5R3JvdW5kZWRUZXJtIiwiaXNEaXNqb2ludEZyb20iLCJlcXVpdmFsZW5jZSIsImRpc2pvaW50RnJvbSIsImV2ZXJ5VGVybSIsImNvbXBhcmVzVG9UZXJtIiwiY29tcGFyZVRlcm0iLCJpbml0aWFsbHlHcm91bmRlZFRlcm1zTGVuZ3RoIiwibGVuZ3RoIiwiaW5pdGlhbGx5R3JvdW5kZWQiLCJpbXBsaWNpdGx5R3JvdW5kZWRUZXJtc0xlbmd0aCIsImltcGxpY2l0bHlHcm91bmRlZCIsInRlcm1Ob2RlIiwic3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSIsInRlcm1Ob2RlTWF0Y2hlcyIsInNvbWVUZXJtIiwibWF0Y2hUZXJtTm9kZXMiLCJ0ZXJtTm9kZXMiLCJ0ZXJtTm9kZXNNYXRjaCIsImV2ZXJ5IiwiY2FsbGJhY2siLCJ0ZXJtQSIsInRlcm1CIiwidGVybUFFcXVhbFRvVGVybUIiLCJpc0VxdWFsVG8iLCJzb21lT3RoZXJUZXJtIiwiZmlsdGVyIiwicmVzdWx0IiwiY29tYmluZVRlcm1zIiwiY29tYmluZWRUZXJtcyIsImNvbWJpbmVkVGVybUEiLCJjb21iaW5lZFRlcm1CIiwiY29tYmluZWRUZXJtRXF1YWxUb1RvQ29tYmluZWRUZXJtQiIsIm1lcmdlZFdpdGgiLCJ0eXBlcyIsImNvbWJpbmVkVHlwZSIsImNvbWJpbmVkVHlwZUZyb21UeXBlcyIsImluc3RhbnRpYXRlIiwiZXF1aXZhbGVuY2VTdHJpbmciLCJlcXVpdmFsZW5jZVN0cmluZ0Zyb21UZXJtcyIsImluc3RhbnRpYXRlRXF1aXZhbGVuY2UiLCJlcXVpdmFsZW5jZUZyb21FcXVpdmFsZW5jZU5vZGUiLCJuYW1lIiwiZnJvbUVxdWFsaXR5IiwiZXF1YWxpdHkiLCJ0eXBlU3ViVHlwZU9mQ29tYmluZWRUeXBlIiwiaXNTdWJUeXBlT2YiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVp3QjsyQkFDTzswQkFFUjt5QkFDSzs2QkFDVzswQkFDRzt3QkFDQzt5QkFDSTtBQUUvQyxNQUFNLEVBQUVBLFFBQVEsRUFBRSxHQUFHQyx5QkFBYztNQUVuQyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG9CQUFvQkMsdUJBQU87SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssQ0FB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
|
package/lib/element/judgement.js
CHANGED
|
@@ -133,9 +133,6 @@ const _default = (0, _elements.define)(class Judgement extends _occamlanguages.E
|
|
|
133
133
|
}
|
|
134
134
|
return comparesToStep;
|
|
135
135
|
}
|
|
136
|
-
compareMetavariableName(metavariableName) {
|
|
137
|
-
return this.frame.compareMetavariableName(metavariableName);
|
|
138
|
-
}
|
|
139
136
|
compareStatement(statement, context) {
|
|
140
137
|
let comparesToStatement = false;
|
|
141
138
|
const judgementString = this.getString(), statementString = statement.getString();
|
|
@@ -151,6 +148,9 @@ const _default = (0, _elements.define)(class Judgement extends _occamlanguages.E
|
|
|
151
148
|
}
|
|
152
149
|
return comparesToStatement;
|
|
153
150
|
}
|
|
151
|
+
compareMetavariableName(metavariableName) {
|
|
152
|
+
return this.frame.compareMetavariableName(metavariableName);
|
|
153
|
+
}
|
|
154
154
|
validate(context) {
|
|
155
155
|
let judgement = null;
|
|
156
156
|
const judgementString = this.getString(); ///
|
|
@@ -294,4 +294,4 @@ function implicitAssumptionsFromProofAssertions(proofAssertions, context) {
|
|
|
294
294
|
return implicitAssumptions;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2p1ZGdlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUsfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGVxdWF0ZVN0YXRlbWVudHMgfSBmcm9tIFwiLi4vcHJvY2Vzcy9lcXVhdGVcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlSnVkZ2VtZW50IH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmVha1BvaW50XCI7XG5cbmNvbnN0IHsgb25lLCBwdXNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEp1ZGdlbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGZyYW1lLCBnb2FsKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcbiAgICB0aGlzLmdvYWwgPSBnb2FsO1xuICB9XG5cbiAgZ2V0RnJhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJhbWU7XG4gIH1cblxuICBnZXRBc3N1bXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmdvYWw7XG4gIH1cblxuICBnZXRKdWRnZW1lbnROb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBqdWRnZW1lbnROb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4ganVkZ2VtZW50Tm9kZTtcbiAgfVxuXG4gIGlzU2luZ3VsYXIoKSB7XG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IHRoaXMuZ2V0SnVkZ2VtZW50Tm9kZSgpLFxuICAgICAgICAgIHNpbmd1bGFyID0ganVkZ2VtZW50Tm9kZS5pc1Npbmd1bGFyKCk7XG5cbiAgICByZXR1cm4gc2luZ3VsYXI7XG4gIH1cblxuICBpc0VxdWFsVG8oanVkZ2VtZW50KSB7XG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAganVkZ2VtZW50Tm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgICBlcXVhbFRvID0ganVkZ2VtZW50Tm9kZU1hdGNoZXM7ICAvLy9cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNNZXRhdmFyaWFibGVEZWZpbmVkKG1ldGF2YXJpYWJsZSkgeyByZXR1cm4gdGhpcy5mcmFtZS5pc01ldGF2YXJpYWJsZURlZmluZWQobWV0YXZhcmlhYmxlKTsgfVxuXG4gIGlzSW1wbGljaXQoKSB7IHJldHVybiB0aGlzLmZyYW1lLmlzSW1wbGljaXQoKTsgfVxuXG4gIGdldFN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMuZ29hbC5nZXRTdGF0ZW1lbnQoKTsgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHsgcmV0dXJuIHRoaXMuZ29hbC5nZXRSZWZlcmVuY2UoKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBnZXRBc3N1bXB0aW9ucyhjb250ZXh0KSB7XG4gICAgY29uc3QgYXNzdW1wdGlvbnMgPSBbXSxcbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSB0aGlzLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgIGZyYW1lQXNzdW1wdGlvbnMgPSB0aGlzLmZyYW1lLmdldEFzc3VtcHRpb25zKCk7XG5cbiAgICBwdXNoKGFzc3VtcHRpb25zLCBmcmFtZUFzc3VtcHRpb25zKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb29mQXNzZXJ0aW9ucyA9IGNvbnRleHQuZ2V0UHJvb2ZBc3NlcnRpb25zKCksXG4gICAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25zID0gaW1wbGljaXRBc3N1bXB0aW9uc0Zyb21Qcm9vZkFzc2VydGlvbnMocHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KTtcblxuICAgICAgcHVzaChhc3N1bXB0aW9ucywgaW1wbGljaXRBc3N1bXB0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc3VtcHRpb25zO1xuICB9XG5cbiAgbWF0Y2hKdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUpIHtcbiAgICBjb25zdCBub2RlID0ganVkZ2VtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBqdWRnZW1lbnROb2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBqdWRnZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLmZyYW1lLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTsgfVxuXG4gIGZpbmRTdWJwcm9vZkFzc2VydGlvbihjb250ZXh0KSB7IHJldHVybiB0aGlzLmdvYWwuZmluZFN1YnByb29mQXNzZXJ0aW9uKGNvbnRleHQpOyB9XG5cbiAgZmluZFZhbGlkSnVkZ2VtZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBqdWRnZW1lbnROb2RlID0gdGhpcy5nZXRKdWRnZW1lbnROb2RlKCksXG4gICAgICAgICAganVkZ2VtZW50ID0gY29udGV4dC5maW5kSnVkZ2VtZW50QnlKdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUpLFxuICAgICAgICAgIHZhbGlkSnVkZ2VtZW5ldCA9IGp1ZGdlbWVudDsgIC8vL1xuXG4gICAgcmV0dXJuIHZhbGlkSnVkZ2VtZW5ldDtcbiAgfVxuXG4gIGNvbXBhcmVTdGVwKHN0ZXAsIGNvbnRleHQpIHtcbiAgICBsZXQgY29tcGFyZXNUb1N0ZXAgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSBzdGVwLmdldFN0cmluZygpLFxuICAgICAganVkZ2VtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzdGVwLmdldFN0YXRlbWVudCgpLFxuICAgICAgY29tcGFyZXNUb1N0YXRlbWVudCA9IHRoaXMuY29tcGFyZVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNvbXBhcmVzVG9TdGF0ZW1lbnQpIHtcbiAgICAgIGNvbXBhcmVzVG9TdGVwID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29tcGFyZXNUb1N0ZXApIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvU3RlcDtcbiAgfVxuXG4gIGNvbXBhcmVNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpIHsgcmV0dXJuIHRoaXMuZnJhbWUuY29tcGFyZU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7IH1cblxuICBjb21wYXJlU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBjb21wYXJlc1RvU3RhdGVtZW50ID0gZmFsc2U7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBsZWZ0U3RhdGVtZW50ID0gc3RhdGVtZW50OyAgLy8vXG5cbiAgICBzdGF0ZW1lbnQgPSB0aGlzLmdldFN0YXRlbWVudCgpO1xuXG4gICAgY29uc3QgcmlnaHRTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRzRXF1YXRlID0gZXF1YXRlU3RhdGVtZW50cyhsZWZ0U3RhdGVtZW50LCByaWdodFN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50c0VxdWF0ZSkge1xuICAgICAgY29tcGFyZXNUb1N0YXRlbWVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBhcmVzVG9TdGF0ZW1lbnQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgdG8gdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1N0YXRlbWVudDtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQganVkZ2VtZW50ID0gbnVsbDtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC4uLmApO1xuXG4gICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdmFsaWRKdWRnZW1lbnQgPSB0aGlzLmZpbmRWYWxpZEp1ZGdlbWVudChjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZEp1ZGdlbWVudCAhPT0gbnVsbCkge1xuICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcblxuICAgICAganVkZ2VtZW50ID0gdmFsaWRKdWRnZW1lbnQ7IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi50aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50IGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZyYW1lVmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZUZyYW1lKGNvbnRleHQpO1xuXG4gICAgICBpZiAoZnJhbWVWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29uc3QgYXNzdW1wdGlvblZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVBc3N1bXB0aW9uKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChhc3N1bXB0aW9uVmFsaWRhdGVzKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVkID0gY29udGV4dC5pc1N0YXRlZCgpO1xuXG4gICAgICAgICAgbGV0IHZhbGlkYXRlc1doZW5TdGF0ZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChzdGF0ZWQpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0aGlzLnZhbGlkYXRlV2hlblN0YXRlZChjb250ZXh0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZhbGlkYXRlc1doZW5TdGF0ZWQgfHwgdmFsaWRhdGVzV2hlbkRlcml2ZWQpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAganVkZ2VtZW50ID0gdGhpczsgLy8vXG5cbiAgICAgICAgY29udGV4dC5hZGRKdWRnZW1lbnQoanVkZ2VtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ganVkZ2VtZW50O1xuICB9XG5cbiAgdmFsaWRhdGVGcmFtZShjb250ZXh0KSB7XG4gICAgbGV0IGZyYW1lVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCdzIGZyYW1lLi4uYCk7XG5cbiAgICBjb25zdCBmcmFtZSA9IHRoaXMuZnJhbWUudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAoZnJhbWUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcblxuICAgICAgZnJhbWVWYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChmcmFtZVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC50cmFjZShgLi4udmFsaWRhdGVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQncyBmcmFtZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWVWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZUFzc3VtcHRpb24oY29udGV4dCkge1xuICAgIGxldCBhc3N1bXB0aW9uVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCdzIGdvYWwuLi5gKTtcblxuICAgIGNvbnN0IGdvYWwgPSB0aGlzLmdvYWwudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAoZ29hbCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5nb2FsID0gZ29hbDtcblxuICAgICAgYXNzdW1wdGlvblZhbGlkYXRlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGFzc3VtcHRpb25WYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50J3MgZ29hbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXNzdW1wdGlvblZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlV2hlblN0YXRlZChjb250ZXh0KSB7XG4gICAgbGV0IHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBzdGF0ZWQganVkZ2VtZW50Li4uYCk7XG5cbiAgICB2YWxpZGF0ZXNXaGVuU3RhdGVkID0gdHJ1ZTtcblxuICAgIGlmICh2YWxpZGF0ZXNXaGVuU3RhdGVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIHN0YXRlZCBqdWRnZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5EZXJpdmVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGRlcml2ZWQganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzY2hlbWFzID0gY29udGV4dC5nZXRTY2hlbWFzKCksXG4gICAgICAgICAganVkZ2VtZW50ID0gdGhpcywgLy8vXG4gICAgICAgICAganVkZ2VtZW50VW5pZmllcyA9IG9uZShzY2hlbWFzLCAoc2NoZW1hKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBqdWRnZW1lbnRVbmlmaWVzID0gc2NoZW1hLnVuaWZ5SnVkZ2VtZW50KGp1ZGdlbWVudCwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmIChqdWRnZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKGp1ZGdlbWVudFVuaWZpZXMpIHtcbiAgICAgIHZhbGlkYXRlc1doZW5EZXJpdmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzV2hlbkRlcml2ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScgZGVyaXZlZCBqdWRnZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkp1ZGdlbWVudFwiO1xuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIGp1ZGdlbWVudE5vZGUgPSBpbnN0YW50aWF0ZUp1ZGdlbWVudChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IGp1ZGdlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICBmcmFtZSA9IGZyYW1lRnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBnb2FsID0gZ29hbEZyb21KdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgY29uc3QganVkZ2VtZW50ID0gbmV3IEp1ZGdlbWVudChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGZyYW1lLCBnb2FsKTtcblxuICAgICAgcmV0dXJuIGp1ZGdlbWVudDtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAganVkZ2VtZW50ID0ganVkZ2VtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4ganVkZ2VtZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9vZkFzc2VydGlvbihwcm9vZkFzc2VydGlvbiwgY29udGV4dCkge1xuICAgIGxldCBqdWRnZW1lbnQgPSBudWxsO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHByb29mQXNzZXJ0aW9uLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICAgIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBqdWRnZW1lbnQgPSBqdWRnZW1lbnRGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4ganVkZ2VtZW50O1xuICB9XG59KTtcblxuZnVuY3Rpb24gZ29hbEZyb21KdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgZ29hbE5vZGUgPSBqdWRnZW1lbnROb2RlLmdldEdvYWxOb2RlKCksXG4gICAgICAgIGdvYWwgPSBjb250ZXh0LmZpbmRHb2FsQnlHb2xhTm9kZShnb2FsTm9kZSk7XG5cbiAgcmV0dXJuIGdvYWw7XG59XG5cbmZ1bmN0aW9uIGZyYW1lRnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCBmcmFtZU5vZGUgPSBqdWRnZW1lbnROb2RlLmdldEZyYW1lTm9kZSgpLFxuICAgICAgICBmcmFtZSA9IGNvbnRleHQuZmluZEZyYW1lQnlGcmFtZU5vZGUoZnJhbWVOb2RlKTtcblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmZ1bmN0aW9uIGltcGxpY2l0QXNzdW1wdGlvbnNGcm9tUHJvb2ZBc3NlcnRpb25zKHByb29mQXNzZXJ0aW9ucywgY29udGV4dCkge1xuICBjb25zdCB7IEltcGxpY2l0QXNzdW1wdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbnMgPSBwcm9vZkFzc2VydGlvbnMubWFwKChwcm9vZkFzc2VydGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHByb29mQXNzZXJ0aW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IEltcGxpY2l0QXNzdW1wdGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9ucztcbn1cblxuIl0sIm5hbWVzIjpbIm9uZSIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIkp1ZGdlbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJmcmFtZSIsImdvYWwiLCJnZXRGcmFtZSIsImdldEFzc3VtcHRpb24iLCJnZXRKdWRnZW1lbnROb2RlIiwiZ2V0Tm9kZSIsImp1ZGdlbWVudE5vZGUiLCJpc1Npbmd1bGFyIiwic2luZ3VsYXIiLCJpc0VxdWFsVG8iLCJqdWRnZW1lbnQiLCJqdWRnZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoSnVkZ2VtZW50Tm9kZSIsImVxdWFsVG8iLCJpc01ldGF2YXJpYWJsZURlZmluZWQiLCJtZXRhdmFyaWFibGUiLCJpc0ltcGxpY2l0IiwiZ2V0U3RhdGVtZW50IiwiZ2V0UmVmZXJlbmNlIiwiZ2V0TWV0YXZhcmlhYmxlIiwiZ2V0QXNzdW1wdGlvbnMiLCJhc3N1bXB0aW9ucyIsImZyYW1lQXNzdW1wdGlvbnMiLCJwcm9vZkFzc2VydGlvbnMiLCJnZXRQcm9vZkFzc2VydGlvbnMiLCJpbXBsaWNpdEFzc3VtcHRpb25zIiwiaW1wbGljaXRBc3N1bXB0aW9uc0Zyb21Qcm9vZkFzc2VydGlvbnMiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kU3VicHJvb2ZBc3NlcnRpb24iLCJmaW5kVmFsaWRKdWRnZW1lbnQiLCJmaW5kSnVkZ2VtZW50QnlKdWRnZW1lbnROb2RlIiwidmFsaWRKdWRnZW1lbmV0IiwiY29tcGFyZVN0ZXAiLCJzdGVwIiwiY29tcGFyZXNUb1N0ZXAiLCJzdGVwU3RyaW5nIiwiZ2V0U3RyaW5nIiwianVkZ2VtZW50U3RyaW5nIiwidHJhY2UiLCJzdGF0ZW1lbnQiLCJjb21wYXJlc1RvU3RhdGVtZW50IiwiY29tcGFyZVN0YXRlbWVudCIsImRlYnVnIiwiY29tcGFyZU1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lIiwic3RhdGVtZW50U3RyaW5nIiwibGVmdFN0YXRlbWVudCIsInJpZ2h0U3RhdGVtZW50Iiwic3RhdGVtZW50c0VxdWF0ZSIsImVxdWF0ZVN0YXRlbWVudHMiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlcyIsInZhbGlkSnVkZ2VtZW50IiwiZnJhbWVWYWxpZGF0ZXMiLCJ2YWxpZGF0ZUZyYW1lIiwiYXNzdW1wdGlvblZhbGlkYXRlcyIsInZhbGlkYXRlQXNzdW1wdGlvbiIsInN0YXRlZCIsImlzU3RhdGVkIiwidmFsaWRhdGVzV2hlblN0YXRlZCIsInZhbGlkYXRlc1doZW5EZXJpdmVkIiwidmFsaWRhdGVXaGVuU3RhdGVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsImFkZEp1ZGdlbWVudCIsInNjaGVtYXMiLCJnZXRTY2hlbWFzIiwianVkZ2VtZW50VW5pZmllcyIsInNjaGVtYSIsInVuaWZ5SnVkZ2VtZW50IiwibmFtZSIsInRvSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZUp1ZGdlbWVudCIsImJyZWFrUG9pbnRGcm9tSlNPTiIsImZyYW1lRnJvbUp1ZGdlbWVudE5vZGUiLCJnb2FsRnJvbUp1ZGdlbWVudE5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlIiwiZnJvbVByb29mQXNzZXJ0aW9uIiwicHJvb2ZBc3NlcnRpb24iLCJnZXRTdGF0ZW1lbnROb2RlIiwiZ29hbE5vZGUiLCJnZXRHb2FsTm9kZSIsImZpbmRHb2FsQnlHb2xhTm9kZSIsImZyYW1lTm9kZSIsImdldEZyYW1lTm9kZSIsImZpbmRGcmFtZUJ5RnJhbWVOb2RlIiwiSW1wbGljaXRBc3N1bXB0aW9uIiwiZWxlbWVudHMiLCJtYXAiLCJpbXBsaWNpdEFzc3VtcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQUE7OztnQ0Fkd0I7MkJBQ087a0VBRVY7eUJBR087d0JBQ0s7NkJBQ0k7eUJBQ007NEJBQ29COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0QsTUFBTSxFQUFFQSxHQUFHLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztNQUVwQyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGtCQUFrQkMsdUJBQU87SUFDbkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLElBQUksQ0FBRTtRQUMxRCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSztJQUNuQjtJQUVBRyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxtQkFBbUI7UUFDakIsTUFBTU4sT0FBTyxJQUFJLENBQUNPLE9B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
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2p1ZGdlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUsfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGVxdWF0ZVN0YXRlbWVudHMgfSBmcm9tIFwiLi4vcHJvY2Vzcy9lcXVhdGVcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlSnVkZ2VtZW50IH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmVha1BvaW50XCI7XG5cbmNvbnN0IHsgb25lLCBwdXNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEp1ZGdlbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGZyYW1lLCBnb2FsKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcbiAgICB0aGlzLmdvYWwgPSBnb2FsO1xuICB9XG5cbiAgZ2V0RnJhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJhbWU7XG4gIH1cblxuICBnZXRBc3N1bXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmdvYWw7XG4gIH1cblxuICBnZXRKdWRnZW1lbnROb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBqdWRnZW1lbnROb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4ganVkZ2VtZW50Tm9kZTtcbiAgfVxuXG4gIGlzU2luZ3VsYXIoKSB7XG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IHRoaXMuZ2V0SnVkZ2VtZW50Tm9kZSgpLFxuICAgICAgICAgIHNpbmd1bGFyID0ganVkZ2VtZW50Tm9kZS5pc1Npbmd1bGFyKCk7XG5cbiAgICByZXR1cm4gc2luZ3VsYXI7XG4gIH1cblxuICBpc0VxdWFsVG8oanVkZ2VtZW50KSB7XG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAganVkZ2VtZW50Tm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgICBlcXVhbFRvID0ganVkZ2VtZW50Tm9kZU1hdGNoZXM7ICAvLy9cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNNZXRhdmFyaWFibGVEZWZpbmVkKG1ldGF2YXJpYWJsZSkgeyByZXR1cm4gdGhpcy5mcmFtZS5pc01ldGF2YXJpYWJsZURlZmluZWQobWV0YXZhcmlhYmxlKTsgfVxuXG4gIGlzSW1wbGljaXQoKSB7IHJldHVybiB0aGlzLmZyYW1lLmlzSW1wbGljaXQoKTsgfVxuXG4gIGdldFN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMuZ29hbC5nZXRTdGF0ZW1lbnQoKTsgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHsgcmV0dXJuIHRoaXMuZ29hbC5nZXRSZWZlcmVuY2UoKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBnZXRBc3N1bXB0aW9ucyhjb250ZXh0KSB7XG4gICAgY29uc3QgYXNzdW1wdGlvbnMgPSBbXSxcbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSB0aGlzLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgIGZyYW1lQXNzdW1wdGlvbnMgPSB0aGlzLmZyYW1lLmdldEFzc3VtcHRpb25zKCk7XG5cbiAgICBwdXNoKGFzc3VtcHRpb25zLCBmcmFtZUFzc3VtcHRpb25zKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb29mQXNzZXJ0aW9ucyA9IGNvbnRleHQuZ2V0UHJvb2ZBc3NlcnRpb25zKCksXG4gICAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25zID0gaW1wbGljaXRBc3N1bXB0aW9uc0Zyb21Qcm9vZkFzc2VydGlvbnMocHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KTtcblxuICAgICAgcHVzaChhc3N1bXB0aW9ucywgaW1wbGljaXRBc3N1bXB0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc3VtcHRpb25zO1xuICB9XG5cbiAgbWF0Y2hKdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUpIHtcbiAgICBjb25zdCBub2RlID0ganVkZ2VtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBqdWRnZW1lbnROb2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBqdWRnZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLmZyYW1lLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTsgfVxuXG4gIGZpbmRTdWJwcm9vZkFzc2VydGlvbihjb250ZXh0KSB7IHJldHVybiB0aGlzLmdvYWwuZmluZFN1YnByb29mQXNzZXJ0aW9uKGNvbnRleHQpOyB9XG5cbiAgZmluZFZhbGlkSnVkZ2VtZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBqdWRnZW1lbnROb2RlID0gdGhpcy5nZXRKdWRnZW1lbnROb2RlKCksXG4gICAgICAgICAganVkZ2VtZW50ID0gY29udGV4dC5maW5kSnVkZ2VtZW50QnlKdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUpLFxuICAgICAgICAgIHZhbGlkSnVkZ2VtZW5ldCA9IGp1ZGdlbWVudDsgIC8vL1xuXG4gICAgcmV0dXJuIHZhbGlkSnVkZ2VtZW5ldDtcbiAgfVxuXG4gIGNvbXBhcmVTdGVwKHN0ZXAsIGNvbnRleHQpIHtcbiAgICBsZXQgY29tcGFyZXNUb1N0ZXAgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSBzdGVwLmdldFN0cmluZygpLFxuICAgICAganVkZ2VtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzdGVwLmdldFN0YXRlbWVudCgpLFxuICAgICAgY29tcGFyZXNUb1N0YXRlbWVudCA9IHRoaXMuY29tcGFyZVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNvbXBhcmVzVG9TdGF0ZW1lbnQpIHtcbiAgICAgIGNvbXBhcmVzVG9TdGVwID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29tcGFyZXNUb1N0ZXApIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvU3RlcDtcbiAgfVxuXG4gIGNvbXBhcmVTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmVzVG9TdGF0ZW1lbnQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHRvIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IGxlZnRTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7ICAvLy9cblxuICAgIHN0YXRlbWVudCA9IHRoaXMuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBjb25zdCByaWdodFN0YXRlbWVudCA9IHN0YXRlbWVudCwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudHNFcXVhdGUgPSBlcXVhdGVTdGF0ZW1lbnRzKGxlZnRTdGF0ZW1lbnQsIHJpZ2h0U3RhdGVtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRzRXF1YXRlKSB7XG4gICAgICBjb21wYXJlc1RvU3RhdGVtZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29tcGFyZXNUb1N0YXRlbWVudCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvU3RhdGVtZW50O1xuICB9XG5cbiAgY29tcGFyZU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSkgeyByZXR1cm4gdGhpcy5mcmFtZS5jb21wYXJlTWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTsgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQganVkZ2VtZW50ID0gbnVsbDtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC4uLmApO1xuXG4gICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdmFsaWRKdWRnZW1lbnQgPSB0aGlzLmZpbmRWYWxpZEp1ZGdlbWVudChjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZEp1ZGdlbWVudCAhPT0gbnVsbCkge1xuICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcblxuICAgICAganVkZ2VtZW50ID0gdmFsaWRKdWRnZW1lbnQ7IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi50aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50IGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZyYW1lVmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZUZyYW1lKGNvbnRleHQpO1xuXG4gICAgICBpZiAoZnJhbWVWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29uc3QgYXNzdW1wdGlvblZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVBc3N1bXB0aW9uKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChhc3N1bXB0aW9uVmFsaWRhdGVzKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVkID0gY29udGV4dC5pc1N0YXRlZCgpO1xuXG4gICAgICAgICAgbGV0IHZhbGlkYXRlc1doZW5TdGF0ZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChzdGF0ZWQpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0aGlzLnZhbGlkYXRlV2hlblN0YXRlZChjb250ZXh0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZhbGlkYXRlc1doZW5TdGF0ZWQgfHwgdmFsaWRhdGVzV2hlbkRlcml2ZWQpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAganVkZ2VtZW50ID0gdGhpczsgLy8vXG5cbiAgICAgICAgY29udGV4dC5hZGRKdWRnZW1lbnQoanVkZ2VtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ganVkZ2VtZW50O1xuICB9XG5cbiAgdmFsaWRhdGVGcmFtZShjb250ZXh0KSB7XG4gICAgbGV0IGZyYW1lVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCdzIGZyYW1lLi4uYCk7XG5cbiAgICBjb25zdCBmcmFtZSA9IHRoaXMuZnJhbWUudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAoZnJhbWUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcblxuICAgICAgZnJhbWVWYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChmcmFtZVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC50cmFjZShgLi4udmFsaWRhdGVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQncyBmcmFtZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWVWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZUFzc3VtcHRpb24oY29udGV4dCkge1xuICAgIGxldCBhc3N1bXB0aW9uVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCdzIGdvYWwuLi5gKTtcblxuICAgIGNvbnN0IGdvYWwgPSB0aGlzLmdvYWwudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAoZ29hbCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5nb2FsID0gZ29hbDtcblxuICAgICAgYXNzdW1wdGlvblZhbGlkYXRlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGFzc3VtcHRpb25WYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50J3MgZ29hbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXNzdW1wdGlvblZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlV2hlblN0YXRlZChjb250ZXh0KSB7XG4gICAgbGV0IHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBzdGF0ZWQganVkZ2VtZW50Li4uYCk7XG5cbiAgICB2YWxpZGF0ZXNXaGVuU3RhdGVkID0gdHJ1ZTtcblxuICAgIGlmICh2YWxpZGF0ZXNXaGVuU3RhdGVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIHN0YXRlZCBqdWRnZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5EZXJpdmVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGRlcml2ZWQganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzY2hlbWFzID0gY29udGV4dC5nZXRTY2hlbWFzKCksXG4gICAgICAgICAganVkZ2VtZW50ID0gdGhpcywgLy8vXG4gICAgICAgICAganVkZ2VtZW50VW5pZmllcyA9IG9uZShzY2hlbWFzLCAoc2NoZW1hKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBqdWRnZW1lbnRVbmlmaWVzID0gc2NoZW1hLnVuaWZ5SnVkZ2VtZW50KGp1ZGdlbWVudCwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmIChqdWRnZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKGp1ZGdlbWVudFVuaWZpZXMpIHtcbiAgICAgIHZhbGlkYXRlc1doZW5EZXJpdmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzV2hlbkRlcml2ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScgZGVyaXZlZCBqdWRnZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkp1ZGdlbWVudFwiO1xuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIGp1ZGdlbWVudE5vZGUgPSBpbnN0YW50aWF0ZUp1ZGdlbWVudChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IGp1ZGdlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICBmcmFtZSA9IGZyYW1lRnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBnb2FsID0gZ29hbEZyb21KdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgY29uc3QganVkZ2VtZW50ID0gbmV3IEp1ZGdlbWVudChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGZyYW1lLCBnb2FsKTtcblxuICAgICAgcmV0dXJuIGp1ZGdlbWVudDtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAganVkZ2VtZW50ID0ganVkZ2VtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4ganVkZ2VtZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9vZkFzc2VydGlvbihwcm9vZkFzc2VydGlvbiwgY29udGV4dCkge1xuICAgIGxldCBqdWRnZW1lbnQgPSBudWxsO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHByb29mQXNzZXJ0aW9uLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICAgIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBqdWRnZW1lbnQgPSBqdWRnZW1lbnRGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4ganVkZ2VtZW50O1xuICB9XG59KTtcblxuZnVuY3Rpb24gZ29hbEZyb21KdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgZ29hbE5vZGUgPSBqdWRnZW1lbnROb2RlLmdldEdvYWxOb2RlKCksXG4gICAgICAgIGdvYWwgPSBjb250ZXh0LmZpbmRHb2FsQnlHb2xhTm9kZShnb2FsTm9kZSk7XG5cbiAgcmV0dXJuIGdvYWw7XG59XG5cbmZ1bmN0aW9uIGZyYW1lRnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCBmcmFtZU5vZGUgPSBqdWRnZW1lbnROb2RlLmdldEZyYW1lTm9kZSgpLFxuICAgICAgICBmcmFtZSA9IGNvbnRleHQuZmluZEZyYW1lQnlGcmFtZU5vZGUoZnJhbWVOb2RlKTtcblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmZ1bmN0aW9uIGltcGxpY2l0QXNzdW1wdGlvbnNGcm9tUHJvb2ZBc3NlcnRpb25zKHByb29mQXNzZXJ0aW9ucywgY29udGV4dCkge1xuICBjb25zdCB7IEltcGxpY2l0QXNzdW1wdGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbnMgPSBwcm9vZkFzc2VydGlvbnMubWFwKChwcm9vZkFzc2VydGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHByb29mQXNzZXJ0aW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IEltcGxpY2l0QXNzdW1wdGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9ucztcbn1cblxuIl0sIm5hbWVzIjpbIm9uZSIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIkp1ZGdlbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJmcmFtZSIsImdvYWwiLCJnZXRGcmFtZSIsImdldEFzc3VtcHRpb24iLCJnZXRKdWRnZW1lbnROb2RlIiwiZ2V0Tm9kZSIsImp1ZGdlbWVudE5vZGUiLCJpc1Npbmd1bGFyIiwic2luZ3VsYXIiLCJpc0VxdWFsVG8iLCJqdWRnZW1lbnQiLCJqdWRnZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoSnVkZ2VtZW50Tm9kZSIsImVxdWFsVG8iLCJpc01ldGF2YXJpYWJsZURlZmluZWQiLCJtZXRhdmFyaWFibGUiLCJpc0ltcGxpY2l0IiwiZ2V0U3RhdGVtZW50IiwiZ2V0UmVmZXJlbmNlIiwiZ2V0TWV0YXZhcmlhYmxlIiwiZ2V0QXNzdW1wdGlvbnMiLCJhc3N1bXB0aW9ucyIsImZyYW1lQXNzdW1wdGlvbnMiLCJwcm9vZkFzc2VydGlvbnMiLCJnZXRQcm9vZkFzc2VydGlvbnMiLCJpbXBsaWNpdEFzc3VtcHRpb25zIiwiaW1wbGljaXRBc3N1bXB0aW9uc0Zyb21Qcm9vZkFzc2VydGlvbnMiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kU3VicHJvb2ZBc3NlcnRpb24iLCJmaW5kVmFsaWRKdWRnZW1lbnQiLCJmaW5kSnVkZ2VtZW50QnlKdWRnZW1lbnROb2RlIiwidmFsaWRKdWRnZW1lbmV0IiwiY29tcGFyZVN0ZXAiLCJzdGVwIiwiY29tcGFyZXNUb1N0ZXAiLCJzdGVwU3RyaW5nIiwiZ2V0U3RyaW5nIiwianVkZ2VtZW50U3RyaW5nIiwidHJhY2UiLCJzdGF0ZW1lbnQiLCJjb21wYXJlc1RvU3RhdGVtZW50IiwiY29tcGFyZVN0YXRlbWVudCIsImRlYnVnIiwic3RhdGVtZW50U3RyaW5nIiwibGVmdFN0YXRlbWVudCIsInJpZ2h0U3RhdGVtZW50Iiwic3RhdGVtZW50c0VxdWF0ZSIsImVxdWF0ZVN0YXRlbWVudHMiLCJjb21wYXJlTWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlcyIsInZhbGlkSnVkZ2VtZW50IiwiZnJhbWVWYWxpZGF0ZXMiLCJ2YWxpZGF0ZUZyYW1lIiwiYXNzdW1wdGlvblZhbGlkYXRlcyIsInZhbGlkYXRlQXNzdW1wdGlvbiIsInN0YXRlZCIsImlzU3RhdGVkIiwidmFsaWRhdGVzV2hlblN0YXRlZCIsInZhbGlkYXRlc1doZW5EZXJpdmVkIiwidmFsaWRhdGVXaGVuU3RhdGVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsImFkZEp1ZGdlbWVudCIsInNjaGVtYXMiLCJnZXRTY2hlbWFzIiwianVkZ2VtZW50VW5pZmllcyIsInNjaGVtYSIsInVuaWZ5SnVkZ2VtZW50IiwibmFtZSIsInRvSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZUp1ZGdlbWVudCIsImJyZWFrUG9pbnRGcm9tSlNPTiIsImZyYW1lRnJvbUp1ZGdlbWVudE5vZGUiLCJnb2FsRnJvbUp1ZGdlbWVudE5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlIiwiZnJvbVByb29mQXNzZXJ0aW9uIiwicHJvb2ZBc3NlcnRpb24iLCJnZXRTdGF0ZW1lbnROb2RlIiwiZ29hbE5vZGUiLCJnZXRHb2FsTm9kZSIsImZpbmRHb2FsQnlHb2xhTm9kZSIsImZyYW1lTm9kZSIsImdldEZyYW1lTm9kZSIsImZpbmRGcmFtZUJ5RnJhbWVOb2RlIiwiSW1wbGljaXRBc3N1bXB0aW9uIiwiZWxlbWVudHMiLCJtYXAiLCJpbXBsaWNpdEFzc3VtcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQUE7OztnQ0Fkd0I7MkJBQ087a0VBRVY7eUJBR087d0JBQ0s7NkJBQ0k7eUJBQ007NEJBQ29COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0QsTUFBTSxFQUFFQSxHQUFHLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztNQUVwQyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGtCQUFrQkMsdUJBQU87SUFDbkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLElBQUksQ0FBRTtRQUMxRCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSztJQUNuQjtJQUVBRyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxtQkFBbUI7UUFDakIsTUFBTU4sT0FBTyxJQUFJLENBQUNPLE9B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
|
package/lib/element/label.js
CHANGED
|
@@ -151,14 +151,12 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
|
|
|
151
151
|
}
|
|
152
152
|
static fromLabelString(labelString, context) {
|
|
153
153
|
let label;
|
|
154
|
-
(0, _context.
|
|
155
|
-
(0,
|
|
156
|
-
|
|
157
|
-
label = (0, _element.labelFromLabelNode)(labelNode, context);
|
|
158
|
-
}, context);
|
|
154
|
+
(0, _context.instantiate)((context)=>{
|
|
155
|
+
const string = labelString, labelNode = (0, _instantiate.instantiateLabel)(string, context);
|
|
156
|
+
label = (0, _element.labelFromLabelNode)(labelNode, context);
|
|
159
157
|
}, context);
|
|
160
158
|
return label;
|
|
161
159
|
}
|
|
162
160
|
});
|
|
163
161
|
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlTGFiZWwgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgbGFiZWxGcm9tTGFiZWxOb2RlLCBtZXRhdmFyaWFibGVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmVha1BvaW50XCI7XG5pbXBvcnQge2F0dGVtcHQsIGFibGF0ZSwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUsIHJlY29uY2lsZSwgam9pbn0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMYWJlbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG1ldGF2YXJpYWJsZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGU7XG4gIH1cblxuICBnZXRMYWJlbE5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIGxhYmVsTm9kZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZU5vZGUoKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5nZXROb2RlKCk7IH1cblxuICBtYXRjaExhYmVsTm9kZShsYWJlbE5vZGUpIHtcbiAgICBjb25zdCBub2RlID0gbGFiZWxOb2RlLCAvLy9cbiAgICAgICAgICBub2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hOb2RlKG5vZGUpLFxuICAgICAgICAgIGxhYmVsTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG5cbiAgICByZXR1cm4gbGFiZWxOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7IH1cblxuICBjb21wYXJlUmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVDb21wYXJlc1RvTWV0YXZhcmlhYmxlID0gdGhpcy5jb21wYXJlTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgY29tcGFyZXNUb1JlZmVyZW5jZSA9IG1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGU7IC8vL1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9SZWZlcmVuY2U7XG4gIH1cblxuICBjb21wYXJlTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSkgeyByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUuY29tcGFyZU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpOyB9XG5cbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsTm9kZSA9IHRoaXMuZ2V0TGFiZWxOb2RlKCksXG4gICAgICAgICAgbGFiZWxQcmVzZW50ID0gY29udGV4dC5pc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlKGxhYmVsTm9kZSk7XG5cbiAgICBpZiAoIWxhYmVsUHJlc2VudCkge1xuICAgICAgY29uc3QgdmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZSgpO1xuXG4gICAgICBpZiAodmFsaWRhdGVzICE9PSBudWxsKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLi4uYCk7XG5cbiAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVWYWxpZGF0ZXMgPSB0aGlzLnZhbGlkYXRlTWV0YXZhcmlhYmxlKGNvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSB7XG4gICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlTWV0YXZhcmlhYmxlKGNvbnRleHQpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCdzIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlID0gdGhpcy5tZXRhdmFyaWFibGUudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcblxuICAgICAgbWV0YXZhcmlhYmxlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwncyBtZXRhdmFyaWFibGUuJ2ApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVWYWxpZGF0ZXM7XG4gIH1cblxuICB1bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGNvbnRleHQpIHtcbiAgICBsZXQgcmVmZXJlbmNlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlIHdpdGggdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLCAvLy9cbiAgICAgICAgICByZWZlcmVuY2VDb250ZXh0ID0gcmVmZXJlbmNlLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IGxhYmVsQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gcmVmZXJlbmNlQ29udGV4dDsgIC8vL1xuXG4gICAgam9pbigoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSByZWZlcmVuY2UuZ2V0TWV0YXZhcmlhYmxlKCksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVzID0gdGhpcy51bmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVW5pZmllcykge1xuICAgICAgICByZWZlcmVuY2VVbmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCBzcGVjaWZpY0NvbnRleHQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHJlZmVyZW5jZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IG1ldGF2YXJpYWJsZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUgd2l0aCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkgPSB0aGlzLm1ldGF2YXJpYWJsZS51bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkobWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSkge1xuICAgICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCBqc29uID0ge1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIGJyZWFrUG9pbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxhYmVsXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBsYWJlbCA9IG5ldyBMYWJlbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG1ldGF2YXJpYWJsZSk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTGFiZWxTdHJpbmcobGFiZWxTdHJpbmcsIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBhYmxhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IGxhYmVsU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KTtcblxuICAgICAgICBsYWJlbCA9IGxhYmVsRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxhYmVsIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsImdldExhYmVsTm9kZSIsImdldE5vZGUiLCJsYWJlbE5vZGUiLCJnZXRNZXRhdmFyaWFibGVOb2RlIiwibWF0Y2hMYWJlbE5vZGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImxhYmVsTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwiY29tcGFyZVJlZmVyZW5jZSIsInJlZmVyZW5jZSIsIm1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUiLCJjb21wYXJlTWV0YXZhcmlhYmxlIiwiY29tcGFyZXNUb1JlZmVyZW5jZSIsInZlcmlmeSIsInZlcmlmaWVzIiwiZ2V0Q29udGV4dCIsImxhYmVsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsYWJlbFByZXNlbnQiLCJpc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlIiwidmFsaWRhdGVzIiwidmFsaWRhdGUiLCJkZWJ1ZyIsImF0dGVtcHQiLCJtZXRhdmFyaWFibGVWYWxpZGF0ZXMiLCJ2YWxpZGF0ZU1ldGF2YXJpYWJsZSIsImNvbW1pdCIsInVuaWZ5UmVmZXJlbmNlIiwicmVmZXJlbmNlVW5pZmllcyIsInJlZmVyZW5jZVN0cmluZyIsImxhYmVsQ29udGV4dCIsInJlZmVyZW5jZUNvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsImpvaW4iLCJtZXRhdmFyaWFibGVVbmlmaWVzIiwidW5pZnlNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSIsInVuaWZ5TWV0YXZhcmlhYmxlSW50cmluc2ljYWxseSIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImxhYmVsIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlTGFiZWwiLCJicmVha1BvaW50RnJvbUpTT04iLCJtZXRhdmFyaWFibGVGcm9tTGFiZWxOb2RlIiwiZnJvbUxhYmVsU3RyaW5nIiwiYWJsYXRlIiwibGFiZWxGcm9tTGFiZWxOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7MEJBRUQ7NkJBQ1U7eUJBQzZCOzRCQUNDO3lCQUNxQjtNQUVwRixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGNBQWNDLHVCQUFPO0lBQy9DLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsWUFBWSxDQUFFO1FBQzNELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxZQUFZLEdBQUdBO0lBQ3RCO0lBRUFDLGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQ0QsWUFBWTtJQUMx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
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlTGFiZWwgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgbGFiZWxGcm9tTGFiZWxOb2RlLCBtZXRhdmFyaWFibGVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmVha1BvaW50XCI7XG5pbXBvcnQgeyBhdHRlbXB0LCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZSwgam9pbn0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMYWJlbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG1ldGF2YXJpYWJsZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGU7XG4gIH1cblxuICBnZXRMYWJlbE5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIGxhYmVsTm9kZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZU5vZGUoKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5nZXROb2RlKCk7IH1cblxuICBtYXRjaExhYmVsTm9kZShsYWJlbE5vZGUpIHtcbiAgICBjb25zdCBub2RlID0gbGFiZWxOb2RlLCAvLy9cbiAgICAgICAgICBub2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hOb2RlKG5vZGUpLFxuICAgICAgICAgIGxhYmVsTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG5cbiAgICByZXR1cm4gbGFiZWxOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7IH1cblxuICBjb21wYXJlUmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVDb21wYXJlc1RvTWV0YXZhcmlhYmxlID0gdGhpcy5jb21wYXJlTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgY29tcGFyZXNUb1JlZmVyZW5jZSA9IG1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGU7IC8vL1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9SZWZlcmVuY2U7XG4gIH1cblxuICBjb21wYXJlTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSkgeyByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUuY29tcGFyZU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpOyB9XG5cbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsTm9kZSA9IHRoaXMuZ2V0TGFiZWxOb2RlKCksXG4gICAgICAgICAgbGFiZWxQcmVzZW50ID0gY29udGV4dC5pc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlKGxhYmVsTm9kZSk7XG5cbiAgICBpZiAoIWxhYmVsUHJlc2VudCkge1xuICAgICAgY29uc3QgdmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZSgpO1xuXG4gICAgICBpZiAodmFsaWRhdGVzICE9PSBudWxsKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLi4uYCk7XG5cbiAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVWYWxpZGF0ZXMgPSB0aGlzLnZhbGlkYXRlTWV0YXZhcmlhYmxlKGNvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSB7XG4gICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlTWV0YXZhcmlhYmxlKGNvbnRleHQpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCdzIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlID0gdGhpcy5tZXRhdmFyaWFibGUudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcblxuICAgICAgbWV0YXZhcmlhYmxlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwncyBtZXRhdmFyaWFibGUuJ2ApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVWYWxpZGF0ZXM7XG4gIH1cblxuICB1bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGNvbnRleHQpIHtcbiAgICBsZXQgcmVmZXJlbmNlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlIHdpdGggdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLCAvLy9cbiAgICAgICAgICByZWZlcmVuY2VDb250ZXh0ID0gcmVmZXJlbmNlLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IGxhYmVsQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gcmVmZXJlbmNlQ29udGV4dDsgIC8vL1xuXG4gICAgam9pbigoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSByZWZlcmVuY2UuZ2V0TWV0YXZhcmlhYmxlKCksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVzID0gdGhpcy51bmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVW5pZmllcykge1xuICAgICAgICByZWZlcmVuY2VVbmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCBzcGVjaWZpY0NvbnRleHQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHJlZmVyZW5jZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IG1ldGF2YXJpYWJsZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUgd2l0aCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkgPSB0aGlzLm1ldGF2YXJpYWJsZS51bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkobWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSkge1xuICAgICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCBqc29uID0ge1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIGJyZWFrUG9pbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxhYmVsXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBsYWJlbCA9IG5ldyBMYWJlbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG1ldGF2YXJpYWJsZSk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTGFiZWxTdHJpbmcobGFiZWxTdHJpbmcsIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gbGFiZWxTdHJpbmcsICAvLy9cbiAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KTtcblxuICAgICAgbGFiZWwgPSBsYWJlbEZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTGFiZWwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YXZhcmlhYmxlIiwiZ2V0TGFiZWxOb2RlIiwiZ2V0Tm9kZSIsImxhYmVsTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJtYXRjaExhYmVsTm9kZSIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwibGFiZWxOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJjb21wYXJlUmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZSIsImNvbXBhcmVNZXRhdmFyaWFibGUiLCJjb21wYXJlc1RvUmVmZXJlbmNlIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJnZXRDb250ZXh0IiwibGFiZWxTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImxhYmVsUHJlc2VudCIsImlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUiLCJ2YWxpZGF0ZXMiLCJ2YWxpZGF0ZSIsImRlYnVnIiwiYXR0ZW1wdCIsIm1ldGF2YXJpYWJsZVZhbGlkYXRlcyIsInZhbGlkYXRlTWV0YXZhcmlhYmxlIiwiY29tbWl0IiwidW5pZnlSZWZlcmVuY2UiLCJyZWZlcmVuY2VVbmlmaWVzIiwicmVmZXJlbmNlU3RyaW5nIiwibGFiZWxDb250ZXh0IiwicmVmZXJlbmNlQ29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0Iiwiam9pbiIsIm1ldGF2YXJpYWJsZVVuaWZpZXMiLCJ1bmlmeU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5IiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidG9KU09OIiwic2VyaWFsaXNlIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwibGFiZWwiLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVMYWJlbCIsImJyZWFrUG9pbnRGcm9tSlNPTiIsIm1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUiLCJmcm9tTGFiZWxTdHJpbmciLCJsYWJlbEZyb21MYWJlbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjswQkFFRDs2QkFDVTt5QkFDNkI7NEJBQ0M7eUJBQ0c7TUFFbEUsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFlBQVksQ0FBRTtRQUMzRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtJQUN0QjtJQUVBQyxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUNELFlBQVk7SUFDMUI7SUFFQUUsZUFBZTtRQUNiLE1BQU1KLE9BQU8sSUFBSSxDQUFDSyxPQUFPLElBQ25CQyxZQUFZTixNQUFNLEdBQUc7UUFFM0IsT0FBT007SUFD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
|