occam-nominal 1.0.334 → 1.0.340
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context.js +5 -1
- package/lib/element/assertion/contained.js +4 -4
- package/lib/element/assertion/defined.js +3 -3
- package/lib/element/assertion/subproof.js +6 -6
- package/lib/element/assertion/type.js +3 -3
- package/lib/element/assumption.js +134 -111
- package/lib/element/combinator/bracketed.js +2 -2
- package/lib/element/constraint.js +114 -102
- package/lib/element/constructor/bracketed.js +3 -3
- package/lib/element/deduction.js +2 -2
- package/lib/element/equality.js +3 -3
- package/lib/element/frame.js +3 -3
- package/lib/element/goal.js +67 -57
- package/lib/element/hypothesis.js +2 -2
- package/lib/element/judgement.js +15 -16
- package/lib/element/label.js +25 -22
- package/lib/element/metaType.js +2 -2
- package/lib/element/metavariable.js +54 -45
- package/lib/element/parameter.js +2 -2
- package/lib/element/procedureCall.js +2 -2
- package/lib/element/procedureReference.js +2 -2
- package/lib/element/proofAssertion/step.js +7 -7
- package/lib/element/proofAssertion/supposition.js +2 -2
- package/lib/element/proofAssertion.js +2 -2
- package/lib/element/reference.js +27 -24
- package/lib/element/schema.js +165 -154
- package/lib/element/signature.js +2 -2
- package/lib/element/statement.js +7 -5
- package/lib/element/substitution/reference.js +22 -29
- package/lib/element/substitution/statement.js +5 -5
- package/lib/element/term.js +2 -2
- package/lib/element/typePrefix.js +2 -2
- package/lib/element/variable.js +2 -2
- package/lib/process/unification.js +41 -47
- package/lib/process/unify.js +10 -10
- package/lib/process/validate.js +6 -6
- package/lib/process/validation.js +13 -13
- package/package.json +9 -9
- package/src/context.js +6 -0
- package/src/element/assertion/contained.js +3 -3
- package/src/element/assertion/defined.js +2 -2
- package/src/element/assertion/subproof.js +5 -5
- package/src/element/assertion/type.js +2 -2
- package/src/element/assumption.js +158 -132
- package/src/element/combinator/bracketed.js +1 -1
- package/src/element/constraint.js +134 -125
- package/src/element/constructor/bracketed.js +2 -2
- package/src/element/deduction.js +1 -1
- package/src/element/equality.js +2 -2
- package/src/element/frame.js +2 -2
- package/src/element/goal.js +82 -74
- package/src/element/hypothesis.js +2 -2
- package/src/element/judgement.js +20 -22
- package/src/element/label.js +26 -25
- package/src/element/metaType.js +2 -2
- package/src/element/metavariable.js +70 -53
- package/src/element/parameter.js +2 -2
- package/src/element/procedureCall.js +2 -2
- package/src/element/procedureReference.js +2 -2
- package/src/element/proofAssertion/step.js +6 -6
- package/src/element/proofAssertion/supposition.js +1 -1
- package/src/element/proofAssertion.js +1 -1
- package/src/element/reference.js +28 -27
- package/src/element/schema.js +193 -195
- package/src/element/signature.js +2 -2
- package/src/element/statement.js +9 -5
- package/src/element/substitution/reference.js +22 -35
- package/src/element/substitution/statement.js +4 -4
- package/src/element/term.js +1 -1
- package/src/element/typePrefix.js +2 -2
- package/src/element/variable.js +1 -1
- package/src/process/unification.js +44 -59
- package/src/process/unify.js +9 -9
- package/src/process/validate.js +5 -5
- package/src/process/validation.js +12 -12
|
@@ -154,7 +154,6 @@ const _default = (0, _elements.define)(class Hypothesis extends _occamlanguages.
|
|
|
154
154
|
}
|
|
155
155
|
return procedureCallDischarges;
|
|
156
156
|
}
|
|
157
|
-
static name = "Hypothesis";
|
|
158
157
|
toJSON() {
|
|
159
158
|
const context = this.getContext();
|
|
160
159
|
return (0, _context.serialise)((context)=>{
|
|
@@ -171,6 +170,7 @@ const _default = (0, _elements.define)(class Hypothesis extends _occamlanguages.
|
|
|
171
170
|
return json;
|
|
172
171
|
}, context);
|
|
173
172
|
}
|
|
173
|
+
static name = "Hypothesis";
|
|
174
174
|
static fromJSON(json, context) {
|
|
175
175
|
let hypothesis;
|
|
176
176
|
(0, _context.instantiate)((context)=>{
|
|
@@ -183,4 +183,4 @@ const _default = (0, _elements.define)(class Hypothesis extends _occamlanguages.
|
|
|
183
183
|
}
|
|
184
184
|
});
|
|
185
185
|
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2h5cG90aGVzaXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVIeXBvdGhlc2lzIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGRlY2xhcmUsIGF0dGVtcHQsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBzdGF0ZW1lbnRGcm9tSHlwb3RoZXNpc05vZGUsIHByb2NlZHVyZUNhbGxGcm9tSHlwb3RoZXNpc05vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgSHlwb3RoZXNpcyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCwgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldEh5cG90aGVzaXNOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBoeXBvdGhlc2lzTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBoeXBvdGhlc2lzTm9kZTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgaHlwb3RoZXNpc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy4uLmApO1xuXG4gICAgaWYgKCh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkgfHwgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkpIHtcbiAgICAgIGRlY2xhcmUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZShjb250ZXh0KTtcblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LCBjb250ZXh0KVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIGFzeW5jIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBoeXBvdGhlc2lzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy4uLmApO1xuXG4gICAgYXdhaXQgYXR0ZW1wdChhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmFsaWRhdGVzID0gYXdhaXQgdGhpcy52YWxpZGF0ZVN0YXRlbWVudChjb250ZXh0KSxcbiAgICAgICAgICAgIHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMgPSAgdGhpcy52YWxpZGF0ZVByb2NlZHVyZUNhbGwoY29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMgfHwgcHJvY2VkdXJlQ2FsbFZhbGlkYXRlcykge1xuICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVzO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgaHlwb3RoZXNpc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzJ3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGF3YWl0IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKGNvbnRleHQpOyAgLy8vXG5cbiAgICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzJ3Mgc3RhdGVtZW50LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVByb2NlZHVyZUNhbGwoY29udGV4dCkge1xuICAgIGxldCBwcm9jZWR1cmVDYWxsVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBoeXBvdGhlc2lzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMncyBwcm9jZWR1cmUgY2FsbC4uLmApO1xuXG4gICAgICBjb25zdCBwcm9jZWR1cmVDYWxsID0gdGhpcy5wcm9jZWR1cmVDYWxsLnZhbGlkYXRlKGNvbnRleHQpOyAgLy8vXG5cbiAgICAgIGlmIChwcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICAgIHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2VkdXJlQ2FsbFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzJ3MgcHJvY2VkdXJlIGNhbGwuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2NlZHVyZUNhbGxWYWxpZGF0ZXM7XG4gIH1cblxuICBkaXNjaGFyZ2UoY29udGV4dCkge1xuICAgIGxldCBkaXNjaGFyZ2VzID0gZmFsc2U7XG5cbiAgICBjb25zdCBoeXBvdGhlc2lzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBEaXNjaGFyZ2luZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudERpc2NoYXJnZXMgPSB0aGlzLmRpc2NoYXJnZVN0YXRlbWVudChjb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnREaXNjaGFyZ2VzKSB7XG4gICAgICBkaXNjaGFyZ2VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGlzY2hhcmdlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpc2NoYXJnZXM7XG4gIH1cblxuICBkaXNjaGFyZ2VTdGF0ZW1lbnQoY29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnREaXNjaGFyZ2VzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5zdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBEaXNjaGFyZ2luZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgICAgY29uc3QgZGlzY2hhcmdlcyA9IHRoaXMuc3RhdGVtZW50LmRpc2NoYXJnZShjb250ZXh0KTsgIC8vL1xuXG4gICAgICBpZiAoZGlzY2hhcmdlcykge1xuICAgICAgICBzdGF0ZW1lbnREaXNjaGFyZ2VzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlbWVudERpc2NoYXJnZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMnIHN0YXRlbWVudC5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50RGlzY2hhcmdlcztcbiAgfVxuXG4gIGFzeW5jIGRpc2NoYXJnZUdpdmVuVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gICAgbGV0IGRpc2NoYXJnZXNHaXZlblRlcm0gPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYERpc2NoYXJnaW5nIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBnaXZlbiB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgIGNvbnN0IHByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzR2l2ZW5UZXJtID0gYXdhaXQgdGhpcy5kaXNjaGFyZ2VQcm9jZWR1cmVDYWxsR2l2ZW5UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzR2l2ZW5UZXJtKSB7XG4gICAgICBkaXNjaGFyZ2VzR2l2ZW5UZXJtID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGlzY2hhcmdlc0dpdmVuVGVybSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMgZ2l2ZW4gdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiBkaXNjaGFyZ2VzR2l2ZW5UZXJtO1xuICB9XG5cbiAgYXN5bmMgZGlzY2hhcmdlUHJvY2VkdXJlQ2FsbEdpdmVuVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gICAgbGV0IHByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBEaXNjaGFyZ2luZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMncyBwcm9jZWR1cmUgY2FsbCBnaXZlbiB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgICAgY29uc3QgZGlzY2hhcmdlcyA9IGF3YWl0IHRoaXMucHJvY2VkdXJlQ2FsbC5kaXNjaGFyZ2VHaXZlblRlcm0odGVybSwgY29udGV4dCk7ICAvLy9cblxuICAgICAgaWYgKGRpc2NoYXJnZXMpIHtcbiAgICAgICAgcHJvY2VkdXJlQ2FsbERpc2NoYXJnZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2VkdXJlQ2FsbERpc2NoYXJnZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMnIHByb2NlZHVyZSBjYWxsIGdpdmVuIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlQ2FsbERpc2NoYXJnZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSHlwb3RoZXNpc1wiO1xuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICByZXR1cm4gc2VyaWFsaXNlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgICAgY29uc3QganNvbiA9IHtcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgc3RyaW5nLFxuICAgICAgICBicmVha1BvaW50XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGh5cG90aGVzaXM7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGh5cG90aGVzaXNOb2RlID0gaW5zdGFudGlhdGVIeXBvdGhlc2lzKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBoeXBvdGhlc2lzTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tSHlwb3RoZXNpc05vZGUoaHlwb3RoZXNpc05vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBwcm9jZWR1cmVDYWxsID0gcHJvY2VkdXJlQ2FsbEZyb21IeXBvdGhlc2lzTm9kZShoeXBvdGhlc2lzTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgaHlwb3RoZXNpcyA9IG5ldyBIeXBvdGhlc2lzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50LCBwcm9jZWR1cmVDYWxsKTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh5cG90aGVzaXM7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkh5cG90aGVzaXMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwicHJvY2VkdXJlQ2FsbCIsImdldFN0YXRlbWVudCIsImdldFByb2NlZHVyZUNhbGwiLCJnZXRIeXBvdGhlc2lzTm9kZSIsImdldE5vZGUiLCJoeXBvdGhlc2lzTm9kZSIsInZlcmlmeSIsInZlcmlmaWVzIiwiYnJlYWsiLCJoeXBvdGhlc2lzU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJkZWNsYXJlIiwidmFsaWRhdGVzIiwidmFsaWRhdGUiLCJkZWJ1ZyIsImF0dGVtcHQiLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVN0YXRlbWVudCIsInByb2NlZHVyZUNhbGxWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVByb2NlZHVyZUNhbGwiLCJjb21taXQiLCJkaXNjaGFyZ2UiLCJkaXNjaGFyZ2VzIiwic3RhdGVtZW50RGlzY2hhcmdlcyIsImRpc2NoYXJnZVN0YXRlbWVudCIsImRpc2NoYXJnZUdpdmVuVGVybSIsInRlcm0iLCJkaXNjaGFyZ2VzR2l2ZW5UZXJtIiwidGVybVN0cmluZyIsInByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzR2l2ZW5UZXJtIiwiZGlzY2hhcmdlUHJvY2VkdXJlQ2FsbEdpdmVuVGVybSIsInByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzIiwibmFtZSIsInRvSlNPTiIsImdldENvbnRleHQiLCJzZXJpYWxpc2UiLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJoeXBvdGhlc2lzIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlSHlwb3RoZXNpcyIsInN0YXRlbWVudEZyb21IeXBvdGhlc2lzTm9kZSIsInByb2NlZHVyZUNhbGxGcm9tSHlwb3RoZXNpc05vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQ2QzswQkFFdEI7NkJBQ2U7eUJBQ2dDO3lCQUNPO0FBRTdFLE1BQU0sRUFBRUEsa0JBQWtCLEVBQUVDLDBCQUEwQixFQUFFLEdBQUdDLG1DQUFtQjtNQUU5RSxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLGFBQWEsQ0FBRTtRQUN2RSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7SUFDdkI7SUFFQUMsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0YsYUFBYTtJQUMzQjtJQUVBRyxvQkFBb0I7UUFDbEIsTUFBTU4sT0FBTyxJQUFJLENBQUNPLE9BQU8sSUFDbkJDLGlCQUFpQlIsTUFBTyxHQUFHO1FBRWpDLE9BQU9RO0lBQ1Q7SUFFQSxNQUFNQyxPQUFPWCxPQUFPLEVBQUU7UUFDcEIsSUFBSVksV0FBVztRQUVmLE1BQU0sSUFBSSxDQUFDQyxLQUFLLENBQUNiO1FBRWpCLE1BQU1jLG1CQUFtQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRTlDZixRQUFRZ0IsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRixpQkFBaUIsZUFBZSxDQUFDO1FBRWpFLElBQUksQUFBQyxJQUFJLENB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
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2h5cG90aGVzaXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVIeXBvdGhlc2lzIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGRlY2xhcmUsIGF0dGVtcHQsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBzdGF0ZW1lbnRGcm9tSHlwb3RoZXNpc05vZGUsIHByb2NlZHVyZUNhbGxGcm9tSHlwb3RoZXNpc05vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgSHlwb3RoZXNpcyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCwgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldEh5cG90aGVzaXNOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBoeXBvdGhlc2lzTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBoeXBvdGhlc2lzTm9kZTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgaHlwb3RoZXNpc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy4uLmApO1xuXG4gICAgaWYgKCh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkgfHwgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkpIHtcbiAgICAgIGRlY2xhcmUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZShjb250ZXh0KTtcblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LCBjb250ZXh0KVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIGFzeW5jIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBoeXBvdGhlc2lzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy4uLmApO1xuXG4gICAgYXdhaXQgYXR0ZW1wdChhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmFsaWRhdGVzID0gYXdhaXQgdGhpcy52YWxpZGF0ZVN0YXRlbWVudChjb250ZXh0KSxcbiAgICAgICAgICAgIHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMgPSAgdGhpcy52YWxpZGF0ZVByb2NlZHVyZUNhbGwoY29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMgfHwgcHJvY2VkdXJlQ2FsbFZhbGlkYXRlcykge1xuICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVzO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgaHlwb3RoZXNpc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzJ3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGF3YWl0IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKGNvbnRleHQpOyAgLy8vXG5cbiAgICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzJ3Mgc3RhdGVtZW50LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRWYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVByb2NlZHVyZUNhbGwoY29udGV4dCkge1xuICAgIGxldCBwcm9jZWR1cmVDYWxsVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBoeXBvdGhlc2lzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMncyBwcm9jZWR1cmUgY2FsbC4uLmApO1xuXG4gICAgICBjb25zdCBwcm9jZWR1cmVDYWxsID0gdGhpcy5wcm9jZWR1cmVDYWxsLnZhbGlkYXRlKGNvbnRleHQpOyAgLy8vXG5cbiAgICAgIGlmIChwcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICAgIHByb2NlZHVyZUNhbGxWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2VkdXJlQ2FsbFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzJ3MgcHJvY2VkdXJlIGNhbGwuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2NlZHVyZUNhbGxWYWxpZGF0ZXM7XG4gIH1cblxuICBkaXNjaGFyZ2UoY29udGV4dCkge1xuICAgIGxldCBkaXNjaGFyZ2VzID0gZmFsc2U7XG5cbiAgICBjb25zdCBoeXBvdGhlc2lzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBEaXNjaGFyZ2luZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudERpc2NoYXJnZXMgPSB0aGlzLmRpc2NoYXJnZVN0YXRlbWVudChjb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnREaXNjaGFyZ2VzKSB7XG4gICAgICBkaXNjaGFyZ2VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGlzY2hhcmdlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpc2NoYXJnZXM7XG4gIH1cblxuICBkaXNjaGFyZ2VTdGF0ZW1lbnQoY29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnREaXNjaGFyZ2VzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5zdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBEaXNjaGFyZ2luZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgICAgY29uc3QgZGlzY2hhcmdlcyA9IHRoaXMuc3RhdGVtZW50LmRpc2NoYXJnZShjb250ZXh0KTsgIC8vL1xuXG4gICAgICBpZiAoZGlzY2hhcmdlcykge1xuICAgICAgICBzdGF0ZW1lbnREaXNjaGFyZ2VzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlbWVudERpc2NoYXJnZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMnIHN0YXRlbWVudC5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50RGlzY2hhcmdlcztcbiAgfVxuXG4gIGFzeW5jIGRpc2NoYXJnZUdpdmVuVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gICAgbGV0IGRpc2NoYXJnZXNHaXZlblRlcm0gPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYERpc2NoYXJnaW5nIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBnaXZlbiB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgIGNvbnN0IHByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzR2l2ZW5UZXJtID0gYXdhaXQgdGhpcy5kaXNjaGFyZ2VQcm9jZWR1cmVDYWxsR2l2ZW5UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzR2l2ZW5UZXJtKSB7XG4gICAgICBkaXNjaGFyZ2VzR2l2ZW5UZXJtID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGlzY2hhcmdlc0dpdmVuVGVybSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMgZ2l2ZW4gdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiBkaXNjaGFyZ2VzR2l2ZW5UZXJtO1xuICB9XG5cbiAgYXN5bmMgZGlzY2hhcmdlUHJvY2VkdXJlQ2FsbEdpdmVuVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gICAgbGV0IHByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBEaXNjaGFyZ2luZyB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMncyBwcm9jZWR1cmUgY2FsbCBnaXZlbiB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgICAgY29uc3QgZGlzY2hhcmdlcyA9IGF3YWl0IHRoaXMucHJvY2VkdXJlQ2FsbC5kaXNjaGFyZ2VHaXZlblRlcm0odGVybSwgY29udGV4dCk7ICAvLy9cblxuICAgICAgaWYgKGRpc2NoYXJnZXMpIHtcbiAgICAgICAgcHJvY2VkdXJlQ2FsbERpc2NoYXJnZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2VkdXJlQ2FsbERpc2NoYXJnZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZGlzY2hhcmdlZCB0aGUgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMnIHByb2NlZHVyZSBjYWxsIGdpdmVuIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlQ2FsbERpc2NoYXJnZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgYnJlYWtQb2ludFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSHlwb3RoZXNpc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGh5cG90aGVzaXM7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGh5cG90aGVzaXNOb2RlID0gaW5zdGFudGlhdGVIeXBvdGhlc2lzKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBoeXBvdGhlc2lzTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tSHlwb3RoZXNpc05vZGUoaHlwb3RoZXNpc05vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBwcm9jZWR1cmVDYWxsID0gcHJvY2VkdXJlQ2FsbEZyb21IeXBvdGhlc2lzTm9kZShoeXBvdGhlc2lzTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgaHlwb3RoZXNpcyA9IG5ldyBIeXBvdGhlc2lzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50LCBwcm9jZWR1cmVDYWxsKTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh5cG90aGVzaXM7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkh5cG90aGVzaXMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwicHJvY2VkdXJlQ2FsbCIsImdldFN0YXRlbWVudCIsImdldFByb2NlZHVyZUNhbGwiLCJnZXRIeXBvdGhlc2lzTm9kZSIsImdldE5vZGUiLCJoeXBvdGhlc2lzTm9kZSIsInZlcmlmeSIsInZlcmlmaWVzIiwiYnJlYWsiLCJoeXBvdGhlc2lzU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJkZWNsYXJlIiwidmFsaWRhdGVzIiwidmFsaWRhdGUiLCJkZWJ1ZyIsImF0dGVtcHQiLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVN0YXRlbWVudCIsInByb2NlZHVyZUNhbGxWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVByb2NlZHVyZUNhbGwiLCJjb21taXQiLCJkaXNjaGFyZ2UiLCJkaXNjaGFyZ2VzIiwic3RhdGVtZW50RGlzY2hhcmdlcyIsImRpc2NoYXJnZVN0YXRlbWVudCIsImRpc2NoYXJnZUdpdmVuVGVybSIsInRlcm0iLCJkaXNjaGFyZ2VzR2l2ZW5UZXJtIiwidGVybVN0cmluZyIsInByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzR2l2ZW5UZXJtIiwiZGlzY2hhcmdlUHJvY2VkdXJlQ2FsbEdpdmVuVGVybSIsInByb2NlZHVyZUNhbGxEaXNjaGFyZ2VzIiwidG9KU09OIiwiZ2V0Q29udGV4dCIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJoeXBvdGhlc2lzIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlSHlwb3RoZXNpcyIsInN0YXRlbWVudEZyb21IeXBvdGhlc2lzTm9kZSIsInByb2NlZHVyZUNhbGxGcm9tSHlwb3RoZXNpc05vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQ2QzswQkFFdEI7NkJBQ2U7eUJBQ2dDO3lCQUNPO0FBRTdFLE1BQU0sRUFBRUEsa0JBQWtCLEVBQUVDLDBCQUEwQixFQUFFLEdBQUdDLG1DQUFtQjtNQUU5RSxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLGFBQWEsQ0FBRTtRQUN2RSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7SUFDdkI7SUFFQUMsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0YsYUFBYTtJQUMzQjtJQUVBRyxvQkFBb0I7UUFDbEIsTUFBTU4sT0FBTyxJQUFJLENBQUNPLE9BQU8sSUFDbkJDLGlCQUFpQlIsTUFBTyxHQUFHO1FBRWpDLE9BQU9RO0lBQ1Q7SUFFQSxNQUFNQyxPQUFPWCxPQUFPLEVBQUU7UUFDcEIsSUFBSVksV0FBVztRQUVmLE1BQU0sSUFBSSxDQUFDQyxLQUFLLENBQUNiO1FBRWpCLE1BQU1jLG1CQUFtQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRTlDZixRQUFRZ0IsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRixpQkFBaUIsZUFBZSxDQUFDO1FBRWpFLElBQUksQUFBQyxJQUFJLENB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
|
package/lib/element/judgement.js
CHANGED
|
@@ -57,7 +57,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
57
57
|
}
|
|
58
58
|
return newObj;
|
|
59
59
|
}
|
|
60
|
-
const { one, push } = _necessary.arrayUtilities, { breakPointFromJSON, breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
|
|
60
|
+
const { one } = _occamlanguages.continuationUtilities, { push } = _necessary.arrayUtilities, { breakPointFromJSON, breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
|
|
61
61
|
const _default = (0, _elements.define)(class Judgement extends _occamlanguages.Element {
|
|
62
62
|
constructor(context, string, node, breakPoint, frame, goal){
|
|
63
63
|
super(context, string, node, breakPoint);
|
|
@@ -189,7 +189,7 @@ const _default = (0, _elements.define)(class Judgement extends _occamlanguages.E
|
|
|
189
189
|
validateGoal(context, continuation) {
|
|
190
190
|
const judgementString = this.getString(); ///
|
|
191
191
|
context.trace(`Validating the '${judgementString}' judgement's goal...`);
|
|
192
|
-
this.goal.validate(context, (goal)=>{
|
|
192
|
+
return this.goal.validate(context, (goal)=>{
|
|
193
193
|
let goalValidates = false;
|
|
194
194
|
if (goal !== null) {
|
|
195
195
|
this.goal = goal;
|
|
@@ -204,7 +204,7 @@ const _default = (0, _elements.define)(class Judgement extends _occamlanguages.E
|
|
|
204
204
|
validateFrame(context, continuation) {
|
|
205
205
|
const judgementString = this.getString(); ///
|
|
206
206
|
context.trace(`Validating the '${judgementString}' judgement's frame...`);
|
|
207
|
-
this.frame.validate(context, (frame)=>{
|
|
207
|
+
return this.frame.validate(context, (frame)=>{
|
|
208
208
|
let frameValidates = false;
|
|
209
209
|
if (frame !== null) {
|
|
210
210
|
this.frame = frame;
|
|
@@ -238,24 +238,22 @@ const _default = (0, _elements.define)(class Judgement extends _occamlanguages.E
|
|
|
238
238
|
continuation(validatesWhenDerived);
|
|
239
239
|
return;
|
|
240
240
|
}
|
|
241
|
-
let validatesWhenDerived = false;
|
|
242
241
|
const judgementString = this.getString(); ///
|
|
243
242
|
context.trace(`Validating the '${judgementString}' derived judgement...`);
|
|
244
|
-
const schemas = context.getSchemas(), judgement = this
|
|
245
|
-
|
|
243
|
+
const schemas = context.getSchemas(), judgement = this; ///
|
|
244
|
+
return one(schemas, (schema, continuation)=>{
|
|
245
|
+
schema.unifyJudgement(judgement, context, continuation);
|
|
246
|
+
}, (judgementUnifies)=>{
|
|
247
|
+
let validatesWhenDerived = false;
|
|
246
248
|
if (judgementUnifies) {
|
|
247
|
-
|
|
249
|
+
validatesWhenDerived = true;
|
|
248
250
|
}
|
|
251
|
+
if (validatesWhenDerived) {
|
|
252
|
+
context.debug(`...validated the '${judgementString}' derived judgement.`);
|
|
253
|
+
}
|
|
254
|
+
return continuation(validatesWhenDerived);
|
|
249
255
|
});
|
|
250
|
-
if (judgementUnifies) {
|
|
251
|
-
validatesWhenDerived = true;
|
|
252
|
-
}
|
|
253
|
-
if (validatesWhenDerived) {
|
|
254
|
-
context.debug(`...validated the '${judgementString}' derived judgement.`);
|
|
255
|
-
}
|
|
256
|
-
return validatesWhenDerived;
|
|
257
256
|
}
|
|
258
|
-
static name = "Judgement";
|
|
259
257
|
toJSON() {
|
|
260
258
|
const string = this.getString();
|
|
261
259
|
let breakPoint;
|
|
@@ -268,6 +266,7 @@ const _default = (0, _elements.define)(class Judgement extends _occamlanguages.E
|
|
|
268
266
|
};
|
|
269
267
|
return json;
|
|
270
268
|
}
|
|
269
|
+
static name = "Judgement";
|
|
271
270
|
static fromJSON(json, context) {
|
|
272
271
|
return (0, _context.instantiate)((context)=>{
|
|
273
272
|
const { string } = json, judgementNode = (0, _instantiate.instantiateJudgement)(string, context), node = judgementNode, breakPoint = breakPointFromJSON(json), frame = frameFromJudgementNode(judgementNode, context), goal = goalFromJudgementNode(judgementNode, context);
|
|
@@ -305,4 +304,4 @@ function implicitAssumptionsFromProofAssertions(proofAssertions, context) {
|
|
|
305
304
|
return implicitAssumptions;
|
|
306
305
|
}
|
|
307
306
|
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2p1ZGdlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUsfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGFsbCwgZXhpc3RzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250aW51YXRpb25cIjtcbmltcG9ydCB7IGVxdWF0ZVN0YXRlbWVudHMgfSBmcm9tIFwiLi4vcHJvY2Vzcy9lcXVhdGVcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlSnVkZ2VtZW50IH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgb25lLCBwdXNoIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEp1ZGdlbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGZyYW1lLCBnb2FsKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcbiAgICB0aGlzLmdvYWwgPSBnb2FsO1xuICB9XG5cbiAgZ2V0RnJhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJhbWU7XG4gIH1cblxuICBnZXRBc3N1bXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmdvYWw7XG4gIH1cblxuICBnZXRKdWRnZW1lbnROb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBqdWRnZW1lbnROb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4ganVkZ2VtZW50Tm9kZTtcbiAgfVxuXG4gIGlzU2luZ3VsYXIoKSB7XG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IHRoaXMuZ2V0SnVkZ2VtZW50Tm9kZSgpLFxuICAgICAgICAgIHNpbmd1bGFyID0ganVkZ2VtZW50Tm9kZS5pc1Npbmd1bGFyKCk7XG5cbiAgICByZXR1cm4gc2luZ3VsYXI7XG4gIH1cblxuICBpc0VxdWFsVG8oanVkZ2VtZW50KSB7XG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAganVkZ2VtZW50Tm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgICBlcXVhbFRvID0ganVkZ2VtZW50Tm9kZU1hdGNoZXM7ICAvLy9cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNNZXRhdmFyaWFibGVEZWZpbmVkKG1ldGF2YXJpYWJsZSkgeyByZXR1cm4gdGhpcy5mcmFtZS5pc01ldGF2YXJpYWJsZURlZmluZWQobWV0YXZhcmlhYmxlKTsgfVxuXG4gIGlzSW1wbGljaXQoKSB7IHJldHVybiB0aGlzLmZyYW1lLmlzSW1wbGljaXQoKTsgfVxuXG4gIGdldFN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMuZ29hbC5nZXRTdGF0ZW1lbnQoKTsgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHsgcmV0dXJuIHRoaXMuZ29hbC5nZXRSZWZlcmVuY2UoKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBnZXRBc3N1bXB0aW9ucyhjb250ZXh0KSB7XG4gICAgY29uc3QgYXNzdW1wdGlvbnMgPSBbXSxcbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSB0aGlzLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgIGZyYW1lQXNzdW1wdGlvbnMgPSB0aGlzLmZyYW1lLmdldEFzc3VtcHRpb25zKCk7XG5cbiAgICBwdXNoKGFzc3VtcHRpb25zLCBmcmFtZUFzc3VtcHRpb25zKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb29mQXNzZXJ0aW9ucyA9IGNvbnRleHQuZ2V0UHJvb2ZBc3NlcnRpb25zKCksXG4gICAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25zID0gaW1wbGljaXRBc3N1bXB0aW9uc0Zyb21Qcm9vZkFzc2VydGlvbnMocHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KTtcblxuICAgICAgcHVzaChhc3N1bXB0aW9ucywgaW1wbGljaXRBc3N1bXB0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc3VtcHRpb25zO1xuICB9XG5cbiAgbWF0Y2hKdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUpIHtcbiAgICBjb25zdCBub2RlID0ganVkZ2VtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBqdWRnZW1lbnROb2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBqdWRnZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLmZyYW1lLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTsgfVxuXG4gIGZpbmRTdWJwcm9vZkFzc2VydGlvbihjb250ZXh0KSB7IHJldHVybiB0aGlzLmdvYWwuZmluZFN1YnByb29mQXNzZXJ0aW9uKGNvbnRleHQpOyB9XG5cbiAgZmluZFZhbGlkSnVkZ2VtZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBqdWRnZW1lbnROb2RlID0gdGhpcy5nZXRKdWRnZW1lbnROb2RlKCksXG4gICAgICAgICAganVkZ2VtZW50ID0gY29udGV4dC5maW5kSnVkZ2VtZW50QnlKdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUpLFxuICAgICAgICAgIHZhbGlkSnVkZ2VtZW5ldCA9IGp1ZGdlbWVudDsgIC8vL1xuXG4gICAgcmV0dXJuIHZhbGlkSnVkZ2VtZW5ldDtcbiAgfVxuXG4gIGNvbXBhcmVTdGVwKHN0ZXAsIGNvbnRleHQpIHtcbiAgICBsZXQgY29tcGFyZXNUb1N0ZXAgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSBzdGVwLmdldFN0cmluZygpLFxuICAgICAganVkZ2VtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzdGVwLmdldFN0YXRlbWVudCgpLFxuICAgICAgY29tcGFyZXNUb1N0YXRlbWVudCA9IHRoaXMuY29tcGFyZVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNvbXBhcmVzVG9TdGF0ZW1lbnQpIHtcbiAgICAgIGNvbXBhcmVzVG9TdGVwID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29tcGFyZXNUb1N0ZXApIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvU3RlcDtcbiAgfVxuXG4gIGNvbXBhcmVTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmVzVG9TdGF0ZW1lbnQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHRvIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IGxlZnRTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7ICAvLy9cblxuICAgIHN0YXRlbWVudCA9IHRoaXMuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBjb25zdCByaWdodFN0YXRlbWVudCA9IHN0YXRlbWVudCwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudHNFcXVhdGUgPSBlcXVhdGVTdGF0ZW1lbnRzKGxlZnRTdGF0ZW1lbnQsIHJpZ2h0U3RhdGVtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRzRXF1YXRlKSB7XG4gICAgICBjb21wYXJlc1RvU3RhdGVtZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY29tcGFyZXNUb1N0YXRlbWVudCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvU3RhdGVtZW50O1xuICB9XG5cbiAgY29tcGFyZU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSkgeyByZXR1cm4gdGhpcy5mcmFtZS5jb21wYXJlTWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTsgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC4uLmApO1xuXG4gICAgY29uc3QgdmFsaWRKdWRnZW1lbnQgPSB0aGlzLmZpbmRWYWxpZEp1ZGdlbWVudChjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZEp1ZGdlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QganVkZ2VtZW50ID0gdmFsaWRKdWRnZW1lbnQ7IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi50aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50IGlzIGFscmVhZHkgdmFsaWQuYCk7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oanVkZ2VtZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0ZUdvYWwgPSB0aGlzLnZhbGlkYXRlR29hbC5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZhbGlkYXRlRnJhbWUgPSB0aGlzLnZhbGlkYXRlRnJhbWUuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBhbGwoW1xuICAgICAgdmFsaWRhdGVGcmFtZSxcbiAgICAgIHZhbGlkYXRlR29hbFxuICAgIF0sIGNvbnRleHQsICh2YWxpZGF0ZXMpID0+IHtcbiAgICAgIGlmICghdmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnN0IGp1ZGdlbWVudCA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihqdWRnZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWxpZGF0ZVdoZW5TdGF0ZWQgPSB0aGlzLnZhbGlkYXRlV2hlblN0YXRlZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmFsaWRhdGVXaGVuRGVyaXZlZCA9IHRoaXMudmFsaWRhdGVXaGVuRGVyaXZlZC5iaW5kKHRoaXMpO1xuXG4gICAgICByZXR1cm4gZXhpc3RzKFtcbiAgICAgICAgdmFsaWRhdGVXaGVuU3RhdGVkLFxuICAgICAgICB2YWxpZGF0ZVdoZW5EZXJpdmVkXG4gICAgICBdLCBjb250ZXh0LCAodmFsaWRhdGVzKSA9PiB7XG4gICAgICAgIGxldCBqdWRnZW1lbnQgPSBudWxsO1xuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICBqdWRnZW1lbnQgPSB0aGlzOyAvLy9cblxuICAgICAgICAgIGNvbnRleHQuYWRkSnVkZ2VtZW50KGp1ZGdlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKGp1ZGdlbWVudCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlR29hbChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCdzIGdvYWwuLi5gKTtcblxuICAgIHRoaXMuZ29hbC52YWxpZGF0ZShjb250ZXh0LCAoZ29hbCkgPT4ge1xuICAgICAgbGV0IGdvYWxWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKGdvYWwgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5nb2FsID0gZ29hbDtcblxuICAgICAgICBnb2FsVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGdvYWxWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQncyBnb2FsLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGdvYWxWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVGcmFtZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCdzIGZyYW1lLi4uYCk7XG5cbiAgICB0aGlzLmZyYW1lLnZhbGlkYXRlKGNvbnRleHQsIChmcmFtZSkgPT4ge1xuICAgICAgbGV0IGZyYW1lVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGlmIChmcmFtZSAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG5cbiAgICAgICAgZnJhbWVWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZnJhbWVWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC50cmFjZShgLi4udmFsaWRhdGVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQncyBmcmFtZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihmcmFtZVZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5TdGF0ZWQoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3RhdGVkID0gY29udGV4dC5pc1N0YXRlZCgpO1xuXG4gICAgaWYgKCFzdGF0ZWQpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlc1doZW5TdGF0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNXaGVuU3RhdGVkKTtcbiAgICB9XG5cbiAgICBsZXQgdmFsaWRhdGVzV2hlblN0YXRlZDtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIHN0YXRlZCBqdWRnZW1lbnQuLi5gKTtcblxuICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHZhbGlkYXRlc1doZW5TdGF0ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScgc3RhdGVkIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1doZW5TdGF0ZWQpO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuRGVyaXZlZChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGF0ZWQgPSBjb250ZXh0LmlzU3RhdGVkKCk7XG5cbiAgICBpZiAoc3RhdGVkKSB7XG4gICAgICBjb25zdCB2YWxpZGF0ZXNXaGVuRGVyaXZlZCA9IGZhbHNlO1xuXG4gICAgICBjb250aW51YXRpb24odmFsaWRhdGVzV2hlbkRlcml2ZWQpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHZhbGlkYXRlc1doZW5EZXJpdmVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBkZXJpdmVkIGp1ZGdlbWVudC4uLmApO1xuXG4gICAgY29uc3Qgc2NoZW1hcyA9IGNvbnRleHQuZ2V0U2NoZW1hcygpLFxuICAgICAgICAgIGp1ZGdlbWVudCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGp1ZGdlbWVudFVuaWZpZXMgPSBvbmUoc2NoZW1hcywgKHNjaGVtYSkgPT4ge1xuICAgICAgICAgICAgY29uc3QganVkZ2VtZW50VW5pZmllcyA9IHNjaGVtYS51bmlmeUp1ZGdlbWVudChqdWRnZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAoanVkZ2VtZW50VW5pZmllcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChqdWRnZW1lbnRVbmlmaWVzKSB7XG4gICAgICB2YWxpZGF0ZXNXaGVuRGVyaXZlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGRlcml2ZWQganVkZ2VtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXNXaGVuRGVyaXZlZDtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJKdWRnZW1lbnRcIjtcblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIHJldHVybiBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICBqdWRnZW1lbnROb2RlID0gaW5zdGFudGlhdGVKdWRnZW1lbnQoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSBqdWRnZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgZnJhbWUgPSBmcmFtZUZyb21KdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgZ29hbCA9IGdvYWxGcm9tSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IGp1ZGdlbWVudCA9IG5ldyBKdWRnZW1lbnQoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBmcmFtZSwgZ29hbCk7XG5cbiAgICAgIHJldHVybiBqdWRnZW1lbnQ7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgIGp1ZGdlbWVudCA9IGp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGp1ZGdlbWVudDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJvb2ZBc3NlcnRpb24ocHJvb2ZBc3NlcnRpb24sIGNvbnRleHQpIHtcbiAgICBsZXQganVkZ2VtZW50ID0gbnVsbDtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBwcm9vZkFzc2VydGlvbi5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAganVkZ2VtZW50ID0ganVkZ2VtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGp1ZGdlbWVudDtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGdvYWxGcm9tSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IGdvYWxOb2RlID0ganVkZ2VtZW50Tm9kZS5nZXRHb2FsTm9kZSgpLFxuICAgICAgICBnb2FsID0gY29udGV4dC5maW5kR29hbEJ5R29sYU5vZGUoZ29hbE5vZGUpO1xuXG4gIHJldHVybiBnb2FsO1xufVxuXG5mdW5jdGlvbiBmcmFtZUZyb21KdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgZnJhbWVOb2RlID0ganVkZ2VtZW50Tm9kZS5nZXRGcmFtZU5vZGUoKSxcbiAgICAgICAgZnJhbWUgPSBjb250ZXh0LmZpbmRGcmFtZUJ5RnJhbWVOb2RlKGZyYW1lTm9kZSk7XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5mdW5jdGlvbiBpbXBsaWNpdEFzc3VtcHRpb25zRnJvbVByb29mQXNzZXJ0aW9ucyhwcm9vZkFzc2VydGlvbnMsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBJbXBsaWNpdEFzc3VtcHRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25zID0gcHJvb2ZBc3NlcnRpb25zLm1hcCgocHJvb2ZBc3NlcnRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnQgPSBwcm9vZkFzc2VydGlvbi5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb24gPSBJbXBsaWNpdEFzc3VtcHRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvbjtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvbnM7XG59XG5cbiJdLCJuYW1lcyI6WyJvbmUiLCJwdXNoIiwiYXJyYXlVdGlsaXRpZXMiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJKdWRnZW1lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiZnJhbWUiLCJnb2FsIiwiZ2V0RnJhbWUiLCJnZXRBc3N1bXB0aW9uIiwiZ2V0SnVkZ2VtZW50Tm9kZSIsImdldE5vZGUiLCJqdWRnZW1lbnROb2RlIiwiaXNTaW5ndWxhciIsInNpbmd1bGFyIiwiaXNFcXVhbFRvIiwianVkZ2VtZW50IiwianVkZ2VtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaEp1ZGdlbWVudE5vZGUiLCJlcXVhbFRvIiwiaXNNZXRhdmFyaWFibGVEZWZpbmVkIiwibWV0YXZhcmlhYmxlIiwiaXNJbXBsaWNpdCIsImdldFN0YXRlbWVudCIsImdldFJlZmVyZW5jZSIsImdldE1ldGF2YXJpYWJsZSIsImdldEFzc3VtcHRpb25zIiwiYXNzdW1wdGlvbnMiLCJmcmFtZUFzc3VtcHRpb25zIiwicHJvb2ZBc3NlcnRpb25zIiwiZ2V0UHJvb2ZBc3NlcnRpb25zIiwiaW1wbGljaXRBc3N1bXB0aW9ucyIsImltcGxpY2l0QXNzdW1wdGlvbnNGcm9tUHJvb2ZBc3NlcnRpb25zIiwibm9kZU1hdGNoZXMiLCJtYXRjaE5vZGUiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwiZmluZFN1YnByb29mQXNzZXJ0aW9uIiwiZmluZFZhbGlkSnVkZ2VtZW50IiwiZmluZEp1ZGdlbWVudEJ5SnVkZ2VtZW50Tm9kZSIsInZhbGlkSnVkZ2VtZW5ldCIsImNvbXBhcmVTdGVwIiwic3RlcCIsImNvbXBhcmVzVG9TdGVwIiwic3RlcFN0cmluZyIsImdldFN0cmluZyIsImp1ZGdlbWVudFN0cmluZyIsInRyYWNlIiwic3RhdGVtZW50IiwiY29tcGFyZXNUb1N0YXRlbWVudCIsImNvbXBhcmVTdGF0ZW1lbnQiLCJkZWJ1ZyIsInN0YXRlbWVudFN0cmluZyIsImxlZnRTdGF0ZW1lbnQiLCJyaWdodFN0YXRlbWVudCIsInN0YXRlbWVudHNFcXVhdGUiLCJlcXVhdGVTdGF0ZW1lbnRzIiwiY29tcGFyZU1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lIiwidmFsaWRhdGUiLCJjb250aW51YXRpb24iLCJ2YWxpZEp1ZGdlbWVudCIsInZhbGlkYXRlR29hbCIsImJpbmQiLCJ2YWxpZGF0ZUZyYW1lIiwiYWxsIiwidmFsaWRhdGVzIiwidmFsaWRhdGVXaGVuU3RhdGVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsImV4aXN0cyIsImFkZEp1ZGdlbWVudCIsImdvYWxWYWxpZGF0ZXMiLCJmcmFtZVZhbGlkYXRlcyIsInN0YXRlZCIsImlzU3RhdGVkIiwidmFsaWRhdGVzV2hlblN0YXRlZCIsInZhbGlkYXRlc1doZW5EZXJpdmVkIiwic2NoZW1hcyIsImdldFNjaGVtYXMiLCJqdWRnZW1lbnRVbmlmaWVzIiwic2NoZW1hIiwidW5pZnlKdWRnZW1lbnQiLCJuYW1lIiwidG9KU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZUp1ZGdlbWVudCIsImZyYW1lRnJvbUp1ZGdlbWVudE5vZGUiLCJnb2FsRnJvbUp1ZGdlbWVudE5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlIiwiZnJvbVByb29mQXNzZXJ0aW9uIiwicHJvb2ZBc3NlcnRpb24iLCJnZXRTdGF0ZW1lbnROb2RlIiwiZ29hbE5vZGUiLCJnZXRHb2FsTm9kZSIsImZpbmRHb2FsQnlHb2xhTm9kZSIsImZyYW1lTm9kZSIsImdldEZyYW1lTm9kZSIsImZpbmRGcmFtZUJ5RnJhbWVOb2RlIiwiSW1wbGljaXRBc3N1bXB0aW9uIiwiZWxlbWVudHMiLCJtYXAiLCJpbXBsaWNpdEFz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
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2p1ZGdlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZSx9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgYWxsLCBleGlzdHMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgZXF1YXRlU3RhdGVtZW50cyB9IGZyb20gXCIuLi9wcm9jZXNzL2VxdWF0ZVwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVKdWRnZW1lbnQgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsganVkZ2VtZW50RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBvbmUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBKdWRnZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBmcmFtZSwgZ29hbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG4gICAgdGhpcy5nb2FsID0gZ29hbDtcbiAgfVxuXG4gIGdldEZyYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmZyYW1lO1xuICB9XG5cbiAgZ2V0QXNzdW1wdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5nb2FsO1xuICB9XG5cbiAgZ2V0SnVkZ2VtZW50Tm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAganVkZ2VtZW50Tm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIGp1ZGdlbWVudE5vZGU7XG4gIH1cblxuICBpc1Npbmd1bGFyKCkge1xuICAgIGNvbnN0IGp1ZGdlbWVudE5vZGUgPSB0aGlzLmdldEp1ZGdlbWVudE5vZGUoKSxcbiAgICAgICAgICBzaW5ndWxhciA9IGp1ZGdlbWVudE5vZGUuaXNTaW5ndWxhcigpO1xuXG4gICAgcmV0dXJuIHNpbmd1bGFyO1xuICB9XG5cbiAgaXNFcXVhbFRvKGp1ZGdlbWVudCkge1xuICAgIGNvbnN0IGp1ZGdlbWVudE5vZGUgPSBqdWRnZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGp1ZGdlbWVudE5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaEp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSksXG4gICAgICAgICAgZXF1YWxUbyA9IGp1ZGdlbWVudE5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIGlzTWV0YXZhcmlhYmxlRGVmaW5lZChtZXRhdmFyaWFibGUpIHsgcmV0dXJuIHRoaXMuZnJhbWUuaXNNZXRhdmFyaWFibGVEZWZpbmVkKG1ldGF2YXJpYWJsZSk7IH1cblxuICBpc0ltcGxpY2l0KCkgeyByZXR1cm4gdGhpcy5mcmFtZS5pc0ltcGxpY2l0KCk7IH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7IHJldHVybiB0aGlzLmdvYWwuZ2V0U3RhdGVtZW50KCk7IH1cblxuICBnZXRSZWZlcmVuY2UoKSB7IHJldHVybiB0aGlzLmdvYWwuZ2V0UmVmZXJlbmNlKCk7IH1cblxuICBnZXRNZXRhdmFyaWFibGUoKSB7IHJldHVybiB0aGlzLmZyYW1lLmdldE1ldGF2YXJpYWJsZSgpOyB9XG5cbiAgZ2V0QXNzdW1wdGlvbnMoY29udGV4dCkge1xuICAgIGNvbnN0IGFzc3VtcHRpb25zID0gW10sXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gdGhpcy5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICBmcmFtZUFzc3VtcHRpb25zID0gdGhpcy5mcmFtZS5nZXRBc3N1bXB0aW9ucygpO1xuXG4gICAgcHVzaChhc3N1bXB0aW9ucywgZnJhbWVBc3N1bXB0aW9ucyk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcm9vZkFzc2VydGlvbnMgPSBjb250ZXh0LmdldFByb29mQXNzZXJ0aW9ucygpLFxuICAgICAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9ucyA9IGltcGxpY2l0QXNzdW1wdGlvbnNGcm9tUHJvb2ZBc3NlcnRpb25zKHByb29mQXNzZXJ0aW9ucywgY29udGV4dCk7XG5cbiAgICAgIHB1c2goYXNzdW1wdGlvbnMsIGltcGxpY2l0QXNzdW1wdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBhc3N1bXB0aW9ucztcbiAgfVxuXG4gIG1hdGNoSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGp1ZGdlbWVudE5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAganVkZ2VtZW50Tm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG5cbiAgICByZXR1cm4ganVkZ2VtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkgeyByZXR1cm4gdGhpcy5mcmFtZS5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7IH1cblxuICBmaW5kU3VicHJvb2ZBc3NlcnRpb24oY29udGV4dCkgeyByZXR1cm4gdGhpcy5nb2FsLmZpbmRTdWJwcm9vZkFzc2VydGlvbihjb250ZXh0KTsgfVxuXG4gIGZpbmRWYWxpZEp1ZGdlbWVudChjb250ZXh0KSB7XG4gICAgY29uc3QganVkZ2VtZW50Tm9kZSA9IHRoaXMuZ2V0SnVkZ2VtZW50Tm9kZSgpLFxuICAgICAgICAgIGp1ZGdlbWVudCA9IGNvbnRleHQuZmluZEp1ZGdlbWVudEJ5SnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlKSxcbiAgICAgICAgICB2YWxpZEp1ZGdlbWVuZXQgPSBqdWRnZW1lbnQ7ICAvLy9cblxuICAgIHJldHVybiB2YWxpZEp1ZGdlbWVuZXQ7XG4gIH1cblxuICBjb21wYXJlU3RlcChzdGVwLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmVzVG9TdGVwID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdGVwU3RyaW5nID0gc3RlcC5nZXRTdHJpbmcoKSxcbiAgICAgIGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAgdG8gdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RlcC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgIGNvbXBhcmVzVG9TdGF0ZW1lbnQgPSB0aGlzLmNvbXBhcmVTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChjb21wYXJlc1RvU3RhdGVtZW50KSB7XG4gICAgICBjb21wYXJlc1RvU3RlcCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBhcmVzVG9TdGVwKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJlZCB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAgdG8gdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1N0ZXA7XG4gIH1cblxuICBjb21wYXJlU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBjb21wYXJlc1RvU3RhdGVtZW50ID0gZmFsc2U7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB0byB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBsZWZ0U3RhdGVtZW50ID0gc3RhdGVtZW50OyAgLy8vXG5cbiAgICBzdGF0ZW1lbnQgPSB0aGlzLmdldFN0YXRlbWVudCgpO1xuXG4gICAgY29uc3QgcmlnaHRTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRzRXF1YXRlID0gZXF1YXRlU3RhdGVtZW50cyhsZWZ0U3RhdGVtZW50LCByaWdodFN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50c0VxdWF0ZSkge1xuICAgICAgY29tcGFyZXNUb1N0YXRlbWVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBhcmVzVG9TdGF0ZW1lbnQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgdG8gdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1N0YXRlbWVudDtcbiAgfVxuXG4gIGNvbXBhcmVNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpIHsgcmV0dXJuIHRoaXMuZnJhbWUuY29tcGFyZU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7IH1cblxuICB2YWxpZGF0ZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBqdWRnZW1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbGlkSnVkZ2VtZW50ID0gdGhpcy5maW5kVmFsaWRKdWRnZW1lbnQoY29udGV4dCk7XG5cbiAgICBpZiAodmFsaWRKdWRnZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGp1ZGdlbWVudCA9IHZhbGlkSnVkZ2VtZW50OyAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCBpcyBhbHJlYWR5IHZhbGlkLmApO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGp1ZGdlbWVudCk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGVHb2FsID0gdGhpcy52YWxpZGF0ZUdvYWwuYmluZCh0aGlzKSxcbiAgICAgICAgICB2YWxpZGF0ZUZyYW1lID0gdGhpcy52YWxpZGF0ZUZyYW1lLmJpbmQodGhpcyk7XG5cbiAgICByZXR1cm4gYWxsKFtcbiAgICAgIHZhbGlkYXRlRnJhbWUsXG4gICAgICB2YWxpZGF0ZUdvYWxcbiAgICBdLCBjb250ZXh0LCAodmFsaWRhdGVzKSA9PiB7XG4gICAgICBpZiAoIXZhbGlkYXRlcykge1xuICAgICAgICBjb25zdCBqdWRnZW1lbnQgPSBudWxsO1xuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oanVkZ2VtZW50KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWRhdGVXaGVuU3RhdGVkID0gdGhpcy52YWxpZGF0ZVdoZW5TdGF0ZWQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHZhbGlkYXRlV2hlbkRlcml2ZWQgPSB0aGlzLnZhbGlkYXRlV2hlbkRlcml2ZWQuYmluZCh0aGlzKTtcblxuICAgICAgcmV0dXJuIGV4aXN0cyhbXG4gICAgICAgIHZhbGlkYXRlV2hlblN0YXRlZCxcbiAgICAgICAgdmFsaWRhdGVXaGVuRGVyaXZlZFxuICAgICAgXSwgY29udGV4dCwgKHZhbGlkYXRlcykgPT4ge1xuICAgICAgICBsZXQganVkZ2VtZW50ID0gbnVsbDtcblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAganVkZ2VtZW50ID0gdGhpczsgLy8vXG5cbiAgICAgICAgICBjb250ZXh0LmFkZEp1ZGdlbWVudChqdWRnZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50LmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihqdWRnZW1lbnQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUdvYWwoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QganVkZ2VtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQncyBnb2FsLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5nb2FsLnZhbGlkYXRlKGNvbnRleHQsIChnb2FsKSA9PiB7XG4gICAgICBsZXQgZ29hbFZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgICBpZiAoZ29hbCAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmdvYWwgPSBnb2FsO1xuXG4gICAgICAgIGdvYWxWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZ29hbFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCdzIGdvYWwuYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZ29hbFZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUZyYW1lKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50J3MgZnJhbWUuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLmZyYW1lLnZhbGlkYXRlKGNvbnRleHQsIChmcmFtZSkgPT4ge1xuICAgICAgbGV0IGZyYW1lVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGlmIChmcmFtZSAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG5cbiAgICAgICAgZnJhbWVWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZnJhbWVWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC50cmFjZShgLi4udmFsaWRhdGVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQncyBmcmFtZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihmcmFtZVZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZVdoZW5TdGF0ZWQoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3RhdGVkID0gY29udGV4dC5pc1N0YXRlZCgpO1xuXG4gICAgaWYgKCFzdGF0ZWQpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlc1doZW5TdGF0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNXaGVuU3RhdGVkKTtcbiAgICB9XG5cbiAgICBsZXQgdmFsaWRhdGVzV2hlblN0YXRlZDtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIHN0YXRlZCBqdWRnZW1lbnQuLi5gKTtcblxuICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHZhbGlkYXRlc1doZW5TdGF0ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScgc3RhdGVkIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1doZW5TdGF0ZWQpO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuRGVyaXZlZChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGF0ZWQgPSBjb250ZXh0LmlzU3RhdGVkKCk7XG5cbiAgICBpZiAoc3RhdGVkKSB7XG4gICAgICBjb25zdCB2YWxpZGF0ZXNXaGVuRGVyaXZlZCA9IGZhbHNlO1xuXG4gICAgICBjb250aW51YXRpb24odmFsaWRhdGVzV2hlbkRlcml2ZWQpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QganVkZ2VtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScgZGVyaXZlZCBqdWRnZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHNjaGVtYXMgPSBjb250ZXh0LmdldFNjaGVtYXMoKSxcbiAgICAgICAgICBqdWRnZW1lbnQgPSB0aGlzOyAvLy9cblxuICAgIHJldHVybiBvbmUoc2NoZW1hcywgKHNjaGVtYSwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBzY2hlbWEudW5pZnlKdWRnZW1lbnQoanVkZ2VtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgIH0sIChqdWRnZW1lbnRVbmlmaWVzKSA9PiB7XG4gICAgICBsZXQgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgICAgaWYgKGp1ZGdlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGVzV2hlbkRlcml2ZWQpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBkZXJpdmVkIGp1ZGdlbWVudC5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNXaGVuRGVyaXZlZCk7XG4gICAgfSk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSnVkZ2VtZW50XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAganVkZ2VtZW50Tm9kZSA9IGluc3RhbnRpYXRlSnVkZ2VtZW50KHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0ganVkZ2VtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgIGZyYW1lID0gZnJhbWVGcm9tSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGdvYWwgPSBnb2FsRnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBjb25zdCBqdWRnZW1lbnQgPSBuZXcgSnVkZ2VtZW50KGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgZnJhbWUsIGdvYWwpO1xuXG4gICAgICByZXR1cm4ganVkZ2VtZW50O1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICBqdWRnZW1lbnQgPSBqdWRnZW1lbnRGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBqdWRnZW1lbnQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb29mQXNzZXJ0aW9uKHByb29mQXNzZXJ0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IGp1ZGdlbWVudCA9IG51bGw7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gcHJvb2ZBc3NlcnRpb24uZ2V0U3RhdGVtZW50Tm9kZSgpO1xuXG4gICAgaWYgKHN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGp1ZGdlbWVudCA9IGp1ZGdlbWVudEZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBqdWRnZW1lbnQ7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBnb2FsRnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCBnb2FsTm9kZSA9IGp1ZGdlbWVudE5vZGUuZ2V0R29hbE5vZGUoKSxcbiAgICAgICAgZ29hbCA9IGNvbnRleHQuZmluZEdvYWxCeUdvbGFOb2RlKGdvYWxOb2RlKTtcblxuICByZXR1cm4gZ29hbDtcbn1cblxuZnVuY3Rpb24gZnJhbWVGcm9tSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IGZyYW1lTm9kZSA9IGp1ZGdlbWVudE5vZGUuZ2V0RnJhbWVOb2RlKCksXG4gICAgICAgIGZyYW1lID0gY29udGV4dC5maW5kRnJhbWVCeUZyYW1lTm9kZShmcmFtZU5vZGUpO1xuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuZnVuY3Rpb24gaW1wbGljaXRBc3N1bXB0aW9uc0Zyb21Qcm9vZkFzc2VydGlvbnMocHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgSW1wbGljaXRBc3N1bXB0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9ucyA9IHByb29mQXNzZXJ0aW9ucy5tYXAoKHByb29mQXNzZXJ0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gcHJvb2ZBc3NlcnRpb24uZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9uID0gSW1wbGljaXRBc3N1bXB0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiBpbXBsaWNpdEFzc3VtcHRpb247XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBpbXBsaWNpdEFzc3VtcHRpb25zO1xufVxuXG4iXSwibmFtZXMiOlsib25lIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiSnVkZ2VtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImZyYW1lIiwiZ29hbCIsImdldEZyYW1lIiwiZ2V0QXNzdW1wdGlvbiIsImdldEp1ZGdlbWVudE5vZGUiLCJnZXROb2RlIiwianVkZ2VtZW50Tm9kZSIsImlzU2luZ3VsYXIiLCJzaW5ndWxhciIsImlzRXF1YWxUbyIsImp1ZGdlbWVudCIsImp1ZGdlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hKdWRnZW1lbnROb2RlIiwiZXF1YWxUbyIsImlzTWV0YXZhcmlhYmxlRGVmaW5lZCIsIm1ldGF2YXJpYWJsZSIsImlzSW1wbGljaXQiLCJnZXRTdGF0ZW1lbnQiLCJnZXRSZWZlcmVuY2UiLCJnZXRNZXRhdmFyaWFibGUiLCJnZXRBc3N1bXB0aW9ucyIsImFzc3VtcHRpb25zIiwiZnJhbWVBc3N1bXB0aW9ucyIsInByb29mQXNzZXJ0aW9ucyIsImdldFByb29mQXNzZXJ0aW9ucyIsImltcGxpY2l0QXNzdW1wdGlvbnMiLCJpbXBsaWNpdEFzc3VtcHRpb25zRnJvbVByb29mQXNzZXJ0aW9ucyIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsImZpbmRTdWJwcm9vZkFzc2VydGlvbiIsImZpbmRWYWxpZEp1ZGdlbWVudCIsImZpbmRKdWRnZW1lbnRCeUp1ZGdlbWVudE5vZGUiLCJ2YWxpZEp1ZGdlbWVuZXQiLCJjb21wYXJlU3RlcCIsInN0ZXAiLCJjb21wYXJlc1RvU3RlcCIsInN0ZXBTdHJpbmciLCJnZXRTdHJpbmciLCJqdWRnZW1lbnRTdHJpbmciLCJ0cmFjZSIsInN0YXRlbWVudCIsImNvbXBhcmVzVG9TdGF0ZW1lbnQiLCJjb21wYXJlU3RhdGVtZW50IiwiZGVidWciLCJzdGF0ZW1lbnRTdHJpbmciLCJsZWZ0U3RhdGVtZW50IiwicmlnaHRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRzRXF1YXRlIiwiZXF1YXRlU3RhdGVtZW50cyIsImNvbXBhcmVNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZSIsInZhbGlkYXRlIiwiY29udGludWF0aW9uIiwidmFsaWRKdWRnZW1lbnQiLCJ2YWxpZGF0ZUdvYWwiLCJiaW5kIiwidmFsaWRhdGVGcmFtZSIsImFsbCIsInZhbGlkYXRlcyIsInZhbGlkYXRlV2hlblN0YXRlZCIsInZhbGlkYXRlV2hlbkRlcml2ZWQiLCJleGlzdHMiLCJhZGRKdWRnZW1lbnQiLCJnb2FsVmFsaWRhdGVzIiwiZnJhbWVWYWxpZGF0ZXMiLCJzdGF0ZWQiLCJpc1N0YXRlZCIsInZhbGlkYXRlc1doZW5TdGF0ZWQiLCJ2YWxpZGF0ZXNXaGVuRGVyaXZlZCIsInNjaGVtYXMiLCJnZXRTY2hlbWFzIiwic2NoZW1hIiwidW5pZnlKdWRnZW1lbnQiLCJqdWRnZW1lbnRVbmlmaWVzIiwidG9KU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwiaW5zdGFudGlhdGVKdWRnZW1lbnQiLCJmcmFtZUZyb21KdWRnZW1lbnROb2RlIiwiZ29hbEZyb21KdWRnZW1lbnROb2RlIiwiZnJvbVN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJqdWRnZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsImZyb21Qcm9vZkFzc2VydGlvbiIsInByb29mQXNzZXJ0aW9uIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImdvYWxOb2RlIiwiZ2V0R29hbE5vZGUiLCJmaW5kR29hbEJ5R29sYU5vZGUiLCJmcmFtZU5vZGUiLCJnZXRGcmFtZU5vZGUiLCJmaW5kRnJhbWVCeUZyYW1lTm9kZSIsIkltcGxpY2l0QXNzdW1wdGlvbiIsImVsZW1lbnRzIiwibWFwIiwiaW1wbGljaXRBc3N1bXB0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUFBOzs7MkJBaEIrQjtnQ0FDcUM7a0VBRS9DO3lCQUdPOzhCQUNBO3dCQUNLOzZCQUNJO3lCQUNNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0MsTUFBTSxFQUFFQSxHQUFHLEVBQUUsR0FBR0MscUNBQXFCLEVBQy9CLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYyxFQUN6QixFQUFFQyxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxDQUFFO1FBQzFELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO0lBQ2Q7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRixJQUFJO0lBQ2xCO0lBRUFHLG1CQUFtQjtRQUNqQixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMsZ0JBQWdCUixNQUFNLEdBQUc7UUFFL0IsT0FBT1E7SUFDVDtJQUVBQyxhQUFhO1FBQ1gsTUFBTUQsZ0JBQWdCLElBQUksQ0FBQ0YsZ0JBQWdCLElBQ3JDSSxXQUFXRixjQUFjQyxVQUFVO1FBRXpDLE9BQU9DO0lBQ1Q7SUFFQUMsVUFBVUMsU0FBUyxFQUFFO1FBQ25CLE1BQU1KLGdCQUFnQkksVUFBVUwsT0FBTyxJQUNqQ00sdUJBQXVCLElBQUksQ0FBQ0Msa0JBQWtCLENBQUNOLGdCQUMvQ08sVUFB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
|
package/lib/element/label.js
CHANGED
|
@@ -84,7 +84,7 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
|
|
|
84
84
|
let metavariableValidates = false;
|
|
85
85
|
const labelString = this.getString(); ///
|
|
86
86
|
context.trace(`Validating the '${labelString}' label's metavariable...`);
|
|
87
|
-
this.metavariable.validate(context, (metavariable)=>{
|
|
87
|
+
return this.metavariable.validate(context, (metavariable)=>{
|
|
88
88
|
if (metavariable !== null) {
|
|
89
89
|
this.metavariable = metavariable;
|
|
90
90
|
metavariableValidates = true;
|
|
@@ -95,34 +95,37 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
|
|
|
95
95
|
return continuation(metavariableValidates);
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
-
unifyReference(reference, context) {
|
|
99
|
-
let referenceUnifies = false;
|
|
98
|
+
unifyReference(reference, context, continuation) {
|
|
100
99
|
const labelString = this.getString(), referenceString = reference.getString();
|
|
101
100
|
context.trace(`Unifying the '${referenceString}' reference with the '${labelString}' label...`);
|
|
102
101
|
const labelContext = this.getContext(), referenceContext = reference.getContext(), generalContext = labelContext, specificContext = referenceContext; ///
|
|
103
102
|
(0, _context.reconcile)((specificContext)=>{
|
|
104
|
-
const metavariable = reference.getMetavariable()
|
|
105
|
-
|
|
106
|
-
referenceUnifies =
|
|
107
|
-
|
|
103
|
+
const metavariable = reference.getMetavariable();
|
|
104
|
+
return this.unifyMetavariable(metavariable, generalContext, specificContext, (metavariableUnifies)=>{
|
|
105
|
+
let referenceUnifies = false;
|
|
106
|
+
if (metavariableUnifies) {
|
|
107
|
+
referenceUnifies = true;
|
|
108
|
+
}
|
|
109
|
+
if (referenceUnifies) {
|
|
110
|
+
context.debug(`...unified the '${referenceString}' reference with the '${labelString}' label.`);
|
|
111
|
+
}
|
|
112
|
+
return continuation(referenceUnifies);
|
|
113
|
+
});
|
|
108
114
|
}, specificContext);
|
|
109
|
-
if (referenceUnifies) {
|
|
110
|
-
context.debug(`...unified the '${referenceString}' reference with the '${labelString}' label.`);
|
|
111
|
-
}
|
|
112
|
-
return referenceUnifies;
|
|
113
115
|
}
|
|
114
|
-
unifyMetavariable(metavariable, generalContext, specificContext) {
|
|
115
|
-
let metavariableUnifies = false;
|
|
116
|
+
unifyMetavariable(metavariable, generalContext, specificContext, continuation) {
|
|
116
117
|
const context = specificContext, labelString = this.getString(), metavariableString = metavariable.getString();
|
|
117
118
|
context.trace(`Unifying the '${metavariableString}' metavariable with the '${labelString}' label...`);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
119
|
+
return this.metavariable.unifyMetavariableIntrinsically(metavariable, generalContext, specificContext, (metavariableUnifiesIntrinsically)=>{
|
|
120
|
+
let metavariableUnifies = false;
|
|
121
|
+
if (metavariableUnifiesIntrinsically) {
|
|
122
|
+
metavariableUnifies = true;
|
|
123
|
+
}
|
|
124
|
+
if (metavariableUnifies) {
|
|
125
|
+
context.debug(`...unified the '${metavariableString}' metavariable with the '${labelString}' label.`);
|
|
126
|
+
}
|
|
127
|
+
return continuation(metavariableUnifies);
|
|
128
|
+
});
|
|
126
129
|
}
|
|
127
130
|
toJSON() {
|
|
128
131
|
const context = this.getContext();
|
|
@@ -161,4 +164,4 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
|
|
|
161
164
|
}
|
|
162
165
|
});
|
|
163
166
|
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlTGFiZWwgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgbGFiZWxGcm9tTGFiZWxOb2RlLCBtZXRhdmFyaWFibGVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBhdHRlbXB0LCByZWNvbmNpbGUsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTGFiZWwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBtZXRhdmFyaWFibGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5tZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGU7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TGFiZWxOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBsYWJlbE5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBsYWJlbE5vZGU7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVOb2RlKCkgeyByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUuZ2V0Tm9kZSgpOyB9XG5cbiAgbWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBsYWJlbE5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuXG4gICAgcmV0dXJuIGxhYmVsTm9kZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkgeyByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpOyB9XG5cbiAgY29tcGFyZVJlZmVyZW5jZShyZWZlcmVuY2UpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGUgPSByZWZlcmVuY2UuZ2V0TWV0YXZhcmlhYmxlKCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZSA9IHRoaXMuY29tcGFyZU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpLFxuICAgICAgICAgIGNvbXBhcmVzVG9SZWZlcmVuY2UgPSBtZXRhdmFyaWFibGVDb21wYXJlc1RvTWV0YXZhcmlhYmxlOyAvLy9cblxuICAgIHJldHVybiBjb21wYXJlc1RvUmVmZXJlbmNlO1xuICB9XG5cbiAgY29tcGFyZU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLmNvbXBhcmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKTsgfVxuXG4gIHZlcmlmeShjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxOb2RlID0gdGhpcy5nZXRMYWJlbE5vZGUoKSxcbiAgICAgICAgICBsYWJlbFByZXNlbnQgPSBjb250ZXh0LmlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgIGlmIChsYWJlbFByZXNlbnQpIHtcbiAgICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlKCh2YWxpZGF0ZXMpID0+IHtcbiAgICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAodmFsaWRhdGVzICE9PSBudWxsKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZU1ldGF2YXJpYWJsZShjb250ZXh0LCAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSA9PiB7XG4gICAgICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSB7XG4gICAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcblxuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24odmFsaWRhdGVzKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgdmFsaWRhdGVNZXRhdmFyaWFibGUoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwncyBtZXRhdmFyaWFibGUuLi5gKTtcblxuICAgIHRoaXMubWV0YXZhcmlhYmxlLnZhbGlkYXRlKGNvbnRleHQsIChtZXRhdmFyaWFibGUpID0+IHtcbiAgICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5tZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGU7XG5cbiAgICAgICAgbWV0YXZhcmlhYmxlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZVZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwncyBtZXRhdmFyaWFibGUuJ2ApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKG1ldGF2YXJpYWJsZVZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB1bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIGNvbnRleHQpIHtcbiAgICBsZXQgcmVmZXJlbmNlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlIHdpdGggdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLCAvLy9cbiAgICAgICAgICByZWZlcmVuY2VDb250ZXh0ID0gcmVmZXJlbmNlLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IGxhYmVsQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gcmVmZXJlbmNlQ29udGV4dDsgIC8vL1xuXG4gICAgcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZVVuaWZpZXMgPSB0aGlzLnVuaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVVbmlmaWVzKSB7XG4gICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAocmVmZXJlbmNlVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlIHdpdGggdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZVVuaWZpZXM7XG4gIH1cblxuICB1bmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSA9IHRoaXMubWV0YXZhcmlhYmxlLnVuaWZ5TWV0YXZhcmlhYmxlSW50cmluc2ljYWxseShtZXRhdmFyaWFibGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5KSB7XG4gICAgICBtZXRhdmFyaWFibGVVbmlmaWVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlIHdpdGggdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgYnJlYWtQb2ludFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTGFiZWxcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBsYWJlbDtcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgbGFiZWxOb2RlID0gaW5zdGFudGlhdGVMYWJlbChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBub2RlID0gbGFiZWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGxhYmVsID0gbmV3IExhYmVsKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbWV0YXZhcmlhYmxlKTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGxhYmVsO1xuICB9XG5cbiAgc3RhdGljIGZyb21MYWJlbFN0cmluZyhsYWJlbFN0cmluZywgY29udGV4dCkge1xuICAgIGxldCBsYWJlbDtcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmcgPSBsYWJlbFN0cmluZywgIC8vL1xuICAgICAgICAgICAgbGFiZWxOb2RlID0gaW5zdGFudGlhdGVMYWJlbChzdHJpbmcsIGNvbnRleHQpO1xuXG4gICAgICBsYWJlbCA9IGxhYmVsRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGxhYmVsO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJMYWJlbCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJtZXRhdmFyaWFibGUiLCJnZXRNZXRhdmFyaWFibGUiLCJnZXRMYWJlbE5vZGUiLCJnZXROb2RlIiwibGFiZWxOb2RlIiwiZ2V0TWV0YXZhcmlhYmxlTm9kZSIsIm1hdGNoTGFiZWxOb2RlIiwibm9kZU1hdGNoZXMiLCJtYXRjaE5vZGUiLCJsYWJlbE5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsImNvbXBhcmVSZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXRhdmFyaWFibGVDb21wYXJlc1RvTWV0YXZhcmlhYmxlIiwiY29tcGFyZU1ldGF2YXJpYWJsZSIsImNvbXBhcmVzVG9SZWZlcmVuY2UiLCJ2ZXJpZnkiLCJjb250aW51YXRpb24iLCJnZXRDb250ZXh0IiwibGFiZWxTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImxhYmVsUHJlc2VudCIsImlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUiLCJ2ZXJpZmllcyIsImRlYnVnIiwidmFsaWRhdGUiLCJ2YWxpZGF0ZXMiLCJhdHRlbXB0IiwidmFsaWRhdGVNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVWYWxpZGF0ZXMiLCJjb21taXQiLCJ1bmlmeVJlZmVyZW5jZSIsInJlZmVyZW5jZVVuaWZpZXMiLCJyZWZlcmVuY2VTdHJpbmciLCJsYWJlbENvbnRleHQiLCJyZWZlcmVuY2VDb250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJyZWNvbmNpbGUiLCJtZXRhdmFyaWFibGVVbmlmaWVzIiwidW5pZnlNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSIsInVuaWZ5TWV0YXZhcmlhYmxlSW50cmluc2ljYWxseSIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJsYWJlbCIsImluc3RhbnRpYXRlIiwidW5zZXJpYWxpc2UiLCJpbnN0YW50aWF0ZUxhYmVsIiwibWV0YXZhcmlhYmxlRnJvbUxhYmVsTm9kZSIsImZyb21MYWJlbFN0cmluZyIsImxhYmVsRnJvbUxhYmVsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVDZDOzBCQUV0Qjs2QkFDVTt5QkFDNkI7eUJBQ1M7QUFFdkUsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFB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
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlTGFiZWwgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgbGFiZWxGcm9tTGFiZWxOb2RlLCBtZXRhdmFyaWFibGVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBhdHRlbXB0LCByZWNvbmNpbGUsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTGFiZWwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBtZXRhdmFyaWFibGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5tZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGU7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TGFiZWxOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBsYWJlbE5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBsYWJlbE5vZGU7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVOb2RlKCkgeyByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUuZ2V0Tm9kZSgpOyB9XG5cbiAgbWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBsYWJlbE5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuXG4gICAgcmV0dXJuIGxhYmVsTm9kZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkgeyByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpOyB9XG5cbiAgY29tcGFyZVJlZmVyZW5jZShyZWZlcmVuY2UpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGUgPSByZWZlcmVuY2UuZ2V0TWV0YXZhcmlhYmxlKCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZSA9IHRoaXMuY29tcGFyZU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpLFxuICAgICAgICAgIGNvbXBhcmVzVG9SZWZlcmVuY2UgPSBtZXRhdmFyaWFibGVDb21wYXJlc1RvTWV0YXZhcmlhYmxlOyAvLy9cblxuICAgIHJldHVybiBjb21wYXJlc1RvUmVmZXJlbmNlO1xuICB9XG5cbiAgY29tcGFyZU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLmNvbXBhcmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKTsgfVxuXG4gIHZlcmlmeShjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxOb2RlID0gdGhpcy5nZXRMYWJlbE5vZGUoKSxcbiAgICAgICAgICBsYWJlbFByZXNlbnQgPSBjb250ZXh0LmlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgIGlmIChsYWJlbFByZXNlbnQpIHtcbiAgICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlKCh2YWxpZGF0ZXMpID0+IHtcbiAgICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAodmFsaWRhdGVzICE9PSBudWxsKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZU1ldGF2YXJpYWJsZShjb250ZXh0LCAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSA9PiB7XG4gICAgICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAobWV0YXZhcmlhYmxlVmFsaWRhdGVzKSB7XG4gICAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcblxuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24odmFsaWRhdGVzKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgdmFsaWRhdGVNZXRhdmFyaWFibGUoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwncyBtZXRhdmFyaWFibGUuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS52YWxpZGF0ZShjb250ZXh0LCAobWV0YXZhcmlhYmxlKSA9PiB7XG4gICAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZVZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsJ3MgbWV0YXZhcmlhYmxlLidgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihtZXRhdmFyaWFibGVWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxDb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZUNvbnRleHQgPSByZWZlcmVuY2UuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gbGFiZWxDb250ZXh0LCAvLy9cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSByZWZlcmVuY2VDb250ZXh0OyAgLy8vXG5cbiAgICByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpO1xuXG4gICAgICByZXR1cm4gdGhpcy51bmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIChtZXRhdmFyaWFibGVVbmlmaWVzKSA9PiB7XG4gICAgICAgIGxldCByZWZlcmVuY2VVbmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG1ldGF2YXJpYWJsZVVuaWZpZXMpIHtcbiAgICAgICAgICByZWZlcmVuY2VVbmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWZlcmVuY2VVbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlIHdpdGggdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHJlZmVyZW5jZVVuaWZpZXMpO1xuICAgICAgfSk7XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0KTtcbiAgfVxuXG4gIHVuaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUudW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5KSA9PiB7XG4gICAgICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVVbmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKG1ldGF2YXJpYWJsZVVuaWZpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCBqc29uID0ge1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIGJyZWFrUG9pbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxhYmVsXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBsYWJlbCA9IG5ldyBMYWJlbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG1ldGF2YXJpYWJsZSk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTGFiZWxTdHJpbmcobGFiZWxTdHJpbmcsIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gbGFiZWxTdHJpbmcsICAvLy9cbiAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KTtcblxuICAgICAgbGFiZWwgPSBsYWJlbEZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiTGFiZWwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YXZhcmlhYmxlIiwiZ2V0TGFiZWxOb2RlIiwiZ2V0Tm9kZSIsImxhYmVsTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJtYXRjaExhYmVsTm9kZSIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwibGFiZWxOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJjb21wYXJlUmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZSIsImNvbXBhcmVNZXRhdmFyaWFibGUiLCJjb21wYXJlc1RvUmVmZXJlbmNlIiwidmVyaWZ5IiwiY29udGludWF0aW9uIiwiZ2V0Q29udGV4dCIsImxhYmVsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsYWJlbFByZXNlbnQiLCJpc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlIiwidmVyaWZpZXMiLCJkZWJ1ZyIsInZhbGlkYXRlIiwidmFsaWRhdGVzIiwiYXR0ZW1wdCIsInZhbGlkYXRlTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVmFsaWRhdGVzIiwiY29tbWl0IiwidW5pZnlSZWZlcmVuY2UiLCJyZWZlcmVuY2VTdHJpbmciLCJsYWJlbENvbnRleHQiLCJyZWZlcmVuY2VDb250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJyZWNvbmNpbGUiLCJ1bmlmeU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVVuaWZpZXMiLCJyZWZlcmVuY2VVbmlmaWVzIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwibWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkiLCJ0b0pTT04iLCJzZXJpYWxpc2UiLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwibGFiZWwiLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVMYWJlbCIsIm1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUiLCJmcm9tTGFiZWxTdHJpbmciLCJsYWJlbEZyb21MYWJlbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQ2QzswQkFFdEI7NkJBQ1U7eUJBQzZCO3lCQUNTO0FBRXZFLE1BQU0sRUFBRUEsa0JBQWtCLEVBQUVDLDBCQUEwQixFQUFFLEdBQUdDLG1DQUFtQjtNQUU5RSxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGNBQWNDLHVCQUFPO0lBQy9DLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsWUFBWSxDQUFFO1FBQzNELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxZQUFZLEdBQUdBO0lBQ3RCO0lBRUFDLGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQ0QsWUFBWTtJQUMxQjtJQUVBRSxlQUFlO1FBQ2IsTUFBTUosT0FBTyxJQUFJLENBQUNLLE9BQU8sSUFDbkJDLFlBQVlOLE1BQU0sR0FBRztRQUUzQixPQUFPTTtJQUNUO0lBRUFDLHNCQUFzQjtRQUFFLE9BQU8sSUFBSSxDQUFDTCxZQUFZLENBQUNHLE9BQU87SUFBSTtJQUU1REcsZUFBZUYsU0FBUyxFQUFFO1FBQ3hCLE1BQU1OLE9BQU9NLFdBQ1BHLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNWLE9BQzdCVyxtQkFBbUJGLGFBQWEsR0FBRztRQUV6QyxPQUFPRTtJQUNUO0lBRUFDLHNCQUFzQkMsZ0JBQWdCLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQ1gsWUFBWSxDQUFDVSxxQkFBcUIsQ0FBQ0M7SUFBbUI7SUFFNUdDLGlCQUFpQkMsU0FBUyxFQUFFO1FBQzFCLE1BQU1iLGVBQWVhLFVBQVVaLGVBQWUsSUFDeENhLHFDQUFxQyxJQUFJLENBQUNDLG1CQUFtQixDQUFDZixlQUM5RGdCLHNCQUFzQkYsb0NBQW9DLEdBQUc7UUFFbkUsT0FBT0U7SUFDVDtJQUVBRCxvQkFBb0JmLFlBQVksRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDQSxZQUFZLENBQUNlLG1CQUFtQixDQUFDZjtJQUFlO0lBRWhHaUIsT0FBT0MsWUFBWSxFQUFFO1FBQ25CLE1BQU10QixVQUFVLElBQUksQ0FBQ3VCLFVBQVUsSUFDekJDLGNBQWMsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUV6Q3pCLFFBQVEwQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLFlBQVksVUFBVSxDQUFDO1FBRXZELE1BQU1oQixZQUFZLElBQUksQ0FBQ0YsWUFBWSxJQUM3QnFCLGVBQWUzQixRQUFRNEIseUJBQXlCLENBQUNwQjtRQUV2RCxJQUFJbUIsY0FBYztZQUNoQixNQUFNRSxXQUFXO1lBRWpCN0IsUUFBUThCLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRU4sWUFBWSwyQkFBMkIsQ0FBQztZQUU5RCxPQUFPRixhQUFhTztRQUN0QjtRQUVBLElBQUksQ0FBQ0UsUUFBUSxDQUFDLENBQUNDO1lBQ2IsSUFBSUgsV0FBVztZQUVmLElBQUlHLGNBQWMsTUFBTTtnQkFDdEJILFdBQVc7WUFDYjtZQUVBLElBQUlBLFVBQVU7Z0JBQ1o3QixRQUFROEIsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVOLFlBQVksUUFBUSxDQUFDO1lBQ3pEO1lBRUEsT0FBT0YsYUFBYU87UUFDdEI7SUFDRjtJQUVBRSxTQUFTVCxZQUFZLEVBQUU7UUFDckIsTUFBTXRCLFVBQVUsSUFBSSxDQUFDdUIsVUFBVSxJQUN6QkMsY0FBYyxJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXpDekIsUUFBUTBCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixZQUFZLFVBQVUsQ0FBQztRQUV4RFMsSUFBQUEsZ0JBQU8sRUFBQyxDQUFDakM7WUFDUCxJQUFJLENBQUNrQyxvQkFBb0IsQ0FBQ2xDLFNBQVMsQ0FBQ21DO2dCQUNsQyxJQUFJSCxZQUFZO2dCQUVoQixJQUFJRyx1QkFBdUI7b0JBQ3pCSCxZQUFZO2dCQUNkO2dCQUVBLElBQUlBLFdBQVc7b0JBQ2IsSUFBSSxDQUFDSSxNQUFNLENBQUNwQztvQkFFWkEsUUFBUThCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFTixZQUFZLFFBQVEsQ0FBQztnQkFDMUQ7Z0JBRUEsT0FBT0YsYUFBYVU7WUFDdEI7UUFDRixHQUFHaEM7SUFDTDtJQUVBa0MscUJBQXFCbEMsT0FBTyxFQUFFc0IsWUFBWSxFQUFFO1FBQzFDLElBQUlhLHdCQUF3QjtRQUU1QixNQUFNWCxjQUFjLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFekN6QixRQUFRMEIsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLFlBQVkseUJBQXlCLENBQUM7UUFFdkUsT0FBTyxJQUFJLENBQUNwQixZQUFZLENBQUMyQixRQUFRLENBQUMvQixTQUFTLENBQUNJO1lBQzFDLElBQUlBLGlCQUFpQixNQUFNO2dCQUN6QixJQUFJLENBQUNBLFlBQVksR0FBR0E7Z0JBRXBCK0Isd0JBQXdCO1lBQzFCO1lBRUEsSUFBSUEsdUJBQXVCO2dCQUN6Qm5DLFFBQVE4QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRU4sWUFBWSx3QkFBd0IsQ0FBQztZQUMxRTtZQUVBLE9BQU9GLGFBQWFhO1FBQ3RCO0lBQ0Y7SUFFQUUsZUFBZXBCLFNBQVMsRUFBRWpCLE9BQU8sRUFBRXNCLFlBQVksRUFBRTtRQUMvQyxNQUFNRSxjQUFjLElBQUksQ0FBQ0MsU0FBUyxJQUM1QmEsa0JBQWtCckIsVUFBVVEsU0FBUztRQUUzQ3pCLFFBQVEwQixLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUVZLGdCQUFnQixzQkFBc0IsRUFBRWQsWUFBWSxVQUFVLENBQUM7UUFFOUYsTUFBTWUsZUFBZSxJQUFJLENBQUNoQixVQUFVLElBQzlCaUIsbUJBQW1CdkIsVUFBVU0sVUFBVSxJQUN2Q2tCLGlCQUFpQkYsY0FDakJHLGtCQUFrQkYsa0JBQW1CLEdBQUc7UUFFOUNHLElBQUFBLGtCQUFTLEVBQUMsQ0FBQ0Q7WUFDVCxNQUFNdEMsZUFBZWEsVUFBVVosZUFBZTtZQUU5QyxPQUFPLElBQUksQ0FBQ3VDLGlCQUFpQixDQUFDeEMsY0FBY3FDLGdCQUFnQkMsaUJBQWlCLENBQUNHO2dCQUM1RSxJQUFJQyxtQkFBbUI7Z0JBRXZCLElBQUlELHFCQUFxQjtvQkFDdkJDLG1CQUFtQjtnQkFDckI7Z0JBRUEsSUFBSUEsa0JBQWtCO29CQUNwQjlDLFFBQVE4QixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRVEsZ0JBQWdCLHNCQUFzQixFQUFFZCxZQUFZLFFBQVEsQ0FBQztnQkFDaEc7Z0JBRUEsT0FBT0YsYUFBYXdCO1lBQ3RCO1FBQ0YsR0FBR0o7SUFDTDtJQUVBRSxrQkFBa0J4QyxZQUFZLEVBQUVxQyxjQUFjLEVBQUVDLGVBQWUsRUFBRXBCLFlBQVksRUFBRTtRQUM3RSxNQUFNdEIsVUFBVTBDLGlCQUNWbEIsY0FBYyxJQUFJLENBQUNDLFNBQVMsSUFDNUJzQixxQkFBcUIzQyxhQUFhcUIsU0FBUztRQUVqRHpCLFFBQVEwQixLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUVxQixtQkFBbUIseUJBQXlCLEVBQUV2QixZQUFZLFVBQVUsQ0FBQztRQUVwRyxPQUFPLElBQUksQ0FBQ3BCLFlBQVksQ0FBQzRDLDhCQUE4QixDQUFDNUMsY0FBY3FDLGdCQUFnQkMsaUJBQWlCLENBQUNPO1lBQ3RHLElBQUlKLHNCQUFzQjtZQUUxQixJQUFJSSxrQ0FBa0M7Z0JBQ3BDSixzQkFBc0I7WUFDeEI7WUFFQSxJQUFJQSxxQkFBcUI7Z0JBQ3ZCN0MsUUFBUThCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFaUIsbUJBQW1CLHlCQUF5QixFQUFFdkIsWUFBWSxRQUFRLENBQUM7WUFDdEc7WUFFQSxPQUFPRixhQUFhdUI7UUFDdEI7SUFDRjtJQUVBSyxTQUFTO1FBQ1AsTUFBTWxELFVBQVUsSUFBSSxDQUFDdUIsVUFBVTtRQUUvQixPQUFPNEIsSUFBQUEsa0JBQVMsRUFBQyxDQUFDbkQ7WUFDaEIsTUFBTUMsU0FBUyxJQUFJLENBQUN3QixTQUFTO1lBRTdCLElBQUl0QjtZQUVKQSxhQUFhLElBQUksQ0FBQ2lELGFBQWE7WUFFL0IsTUFBTUMsaUJBQWlCMUQsMkJBQTJCUTtZQUVsREEsYUFBYWtELGdCQUFpQixHQUFHO1lBRWpDLE1BQU1DLE9BQU87Z0JBQ1h0RDtnQkFDQUM7Z0JBQ0FFO1lBQ0Y7WUFFQSxPQUFPbUQ7UUFDVCxHQUFHdEQ7SUFDTDtJQUVBLE9BQU91RCxPQUFPLFFBQVE7SUFFdEIsT0FBT0MsU0FBU0YsSUFBSSxFQUFFdEQsT0FBTyxFQUFFO1FBQzdCLElBQUl5RDtRQUVKQyxJQUFBQSxvQkFBVyxFQUFDLENBQUMxRDtZQUNYMkQsSUFBQUEsb0JBQVcsRUFBQyxDQUFDTCxNQUFNdEQ7Z0JBQ2pCLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdxRCxNQUNiOUMsWUFBWW9ELElBQUFBLDZCQUFnQixFQUFDM0QsUUFBUUQsVUFDckNFLE9BQU9NLFdBQ1BMLGFBQWFULG1CQUFtQjRELE9BQ2hDbEQsZUFBZXlELElBQUFBLGtDQUF5QixFQUFDckQsV0FBV1I7Z0JBRTFEeUQsUUFBUSxJQUFJM0QsTUFBTUUsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7WUFDdkQsR0FBR2tELE1BQU10RDtRQUNYLEdBQUdBO1FBRUgsT0FBT3lEO0lBQ1Q7SUFFQSxPQUFPSyxnQkFBZ0J0QyxXQUFXLEVBQUV4QixPQUFPLEVBQUU7UUFDM0MsSUFBSXlEO1FBRUpDLElBQUFBLG9CQUFXLEVBQUMsQ0FBQzFEO1lBQ1gsTUFBTUMsU0FBU3VCLGFBQ1RoQixZQUFZb0QsSUFBQUEsNkJBQWdCLEVBQUMzRCxRQUFRRDtZQUUzQ3lELFFBQVFNLElBQUFBLDJCQUFrQixFQUFDdkQsV0FBV1I7UUFDeEMsR0FBR0E7UUFFSCxPQUFPeUQ7SUFDVDtBQUNGIn0=
|
package/lib/element/metaType.js
CHANGED
|
@@ -31,7 +31,6 @@ const _default = (0, _elements.define)(class MetaType extends _occamlanguages.El
|
|
|
31
31
|
const comparesToMetaTypeName = metaTypeName === this.name;
|
|
32
32
|
return comparesToMetaTypeName;
|
|
33
33
|
}
|
|
34
|
-
static name = "MetaType";
|
|
35
34
|
toJSON() {
|
|
36
35
|
const string = this.getString();
|
|
37
36
|
let breakPoint;
|
|
@@ -44,6 +43,7 @@ const _default = (0, _elements.define)(class MetaType extends _occamlanguages.El
|
|
|
44
43
|
};
|
|
45
44
|
return json;
|
|
46
45
|
}
|
|
46
|
+
static name = "MetaType";
|
|
47
47
|
static fromJSON(json, context) {
|
|
48
48
|
const { string } = json, metaTypeName = string, metaType = context.findMetaTypeByMetaTypeName(metaTypeName);
|
|
49
49
|
return metaType;
|
|
@@ -54,4 +54,4 @@ const _default = (0, _elements.define)(class MetaType extends _occamlanguages.El
|
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L21ldGFUeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE1ldGFUeXBlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0TWV0YVR5cGVOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBtZXRhVHlwZU5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gbWV0YVR5cGVOb2RlO1xuICB9XG5cbiAgaXNFcXVhbFRvKG1ldGFUeXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9ICh0aGlzID09PSBtZXRhVHlwZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIGNvbXBhcmVNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKSB7XG4gICAgY29uc3QgY29tcGFyZXNUb01ldGFUeXBlTmFtZSA9IChtZXRhVHlwZU5hbWUgPT09IHRoaXMubmFtZSk7XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb01ldGFUeXBlTmFtZTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJNZXRhVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgbWV0YVR5cGVOYW1lID0gc3RyaW5nLCAgLy8vXG4gICAgICAgICAgbWV0YVR5cGUgPSBjb250ZXh0LmZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lKG1ldGFUeXBlTmFtZSk7XG5cbiAgICByZXR1cm4gbWV0YVR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWUobmFtZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICBtZXRhVHlwZSA9IG5ldyBNZXRhVHlwZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUpO1xuXG4gICAgcmV0dXJuIG1ldGFUeXBlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJNZXRhVHlwZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJuYW1lIiwiZ2V0TmFtZSIsImdldE1ldGFUeXBlTm9kZSIsImdldE5vZGUiLCJtZXRhVHlwZU5vZGUiLCJpc0VxdWFsVG8iLCJtZXRhVHlwZSIsImVxdWFsVG8iLCJjb21wYXJlTWV0YVR5cGVOYW1lIiwibWV0YVR5cGVOYW1lIiwiY29tcGFyZXNUb01ldGFUeXBlTmFtZSIsInRvSlNPTiIsImdldFN0cmluZyIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lIiwiZnJvbU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7O2dDQU42QzswQkFFdEI7QUFFdkIsTUFBTSxFQUFFQSwwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFMUQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxpQkFBaUJDLHVCQUFPO0lBQ2xELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxDQUFFO1FBQ25ELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO0lBQ2Q7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRCxJQUFJO0lBQ2xCO0lBRUFFLGtCQUFrQjtRQUNoQixNQUFNSixPQUFPLElBQUksQ0FBQ0ssT0FBTyxJQUNuQkMsZUFBZU4sTUFBTyxHQUFHO1FBRS9CLE9BQU9NO0lBQ1Q7SUFFQUMsVUFBVUMsUUFBUSxFQUFFO1FBQ2xCLE1BQU1DLFVBQVcsSUFBSSxLQUFLRDtRQUUxQixPQUFPQztJQUNUO0lBRUFDLG9CQUFvQkMsWUFBWSxFQUFFO1FBQ2hDLE1BQU1DLHlCQUEwQkQsaUJBQWlCLElBQUksQ0FBQ1QsSUFBSTtRQUUxRCxPQUFPVTtJQUNUO0lBRUFDLFNBQVM7UUFDUCxNQUFNZCxTQUFTLElBQUksQ0FBQ2UsU0FBUztRQUU3QixJQUFJYjtRQUVKQSxhQUFhLElBQUksQ0FBQ2MsYUFBYTtRQUUvQixNQUFNQyxpQkFBaUJ2QiwyQkFBMkJRO1FBRWxEQSxhQUFhZSxnQkFBaUIsR0FBRztRQUVqQyxNQUFNQyxPQUFPO1lBQ1hsQjtZQUNBRTtRQUNGO1FBRUEsT0FBT2dCO0lBQ1Q7SUFFQSxPQUFPZixPQUFPLFdBQVc7SUFFekIsT0FBT2dCLFNBQVNELElBQUksRUFBRW5CLE9BQU8sRUFBRTtRQUM3QixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHa0IsTUFDYk4sZUFBZVosUUFDZlMsV0FBV1YsUUFBUXFCLDBCQUEwQixDQUFDUjtRQUVwRCxPQUFPSDtJQUNUO0lBRUEsT0FBT1ksU0FBU2xCLElBQUksRUFBRUosT0FBTyxFQUFFO1FBQzdCLE1BQU1DLFNBQVNHLE1BQ1RGLE9BQU8sTUFDUEMsYUFBYSxNQUNiTyxXQUFXLElBQUlaLFNBQVNFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDO1FBRWpFLE9BQU9NO0lBQ1Q7QUFDRiJ9
|