mnemonica 0.9.99782 → 0.9.99785
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/build/api/errors/throwModificationError.js +7 -3
- package/build/api/hooks/flowCheckers.js +2 -5
- package/build/api/types/InstanceCreator.d.ts +2 -2
- package/build/api/types/InstanceCreator.js +8 -3
- package/build/api/types/Mnemosyne.d.ts +3 -2
- package/build/api/types/Mnemosyne.js +4 -3
- package/build/api/types/TypeProxy.d.ts +2 -2
- package/build/api/types/TypeProxy.js +1 -1
- package/build/api/types/index.js +24 -4
- package/build/constants/index.d.ts +0 -1
- package/build/constants/index.js +1 -2
- package/build/descriptors/types/index.d.ts +2 -2
- package/build/descriptors/types/index.js +4 -1
- package/build/index.d.ts +4 -4
- package/build/index.js +5 -3
- package/build/types/index.d.ts +46 -32
- package/build/types/index.js +1 -1
- package/build/utils/parent.d.ts +1 -1
- package/build/utils/parent.js +1 -1
- package/module/index.js +35 -41
- package/package.json +4 -4
|
@@ -47,8 +47,12 @@ const throwModificationError = function (error) {
|
|
|
47
47
|
let isMnemonicaInstance = false;
|
|
48
48
|
while (errorProto) {
|
|
49
49
|
const testToProto = Reflect.getPrototypeOf(errorProto);
|
|
50
|
-
if (testToProto
|
|
51
|
-
|
|
50
|
+
if (testToProto === null) {
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
if (testToProto !== null &&
|
|
54
|
+
Object.hasOwnProperty.call(testToProto, 'constructor') &&
|
|
55
|
+
testToProto.constructor.name === MNEMONICA) {
|
|
52
56
|
isMnemonicaInstance = true;
|
|
53
57
|
break;
|
|
54
58
|
}
|
|
@@ -122,4 +126,4 @@ const throwModificationError = function (error) {
|
|
|
122
126
|
throw erroredInstance;
|
|
123
127
|
};
|
|
124
128
|
exports.throwModificationError = throwModificationError;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3dNb2RpZmljYXRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYiwrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxTQUFTLEdBQ1QsR0FBRyxxQkFBUyxDQUFDO0FBR2QscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLHlCQUE0QztBQUU1QyxvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLHdCQUF3QixFQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxhQUFLLENBQUM7QUFFVixzRUFBdUU7QUFjaEUsTUFBTSxzQkFBc0IsR0FBRyxVQUF5QyxLQUFxQjtJQUluRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsTUFBTSxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQUUsRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixFQUNELElBQUksRUFDSixHQUFHLElBQUksQ0FBQztJQU1ULE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO0lBRXZELElBQUssS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUcsQ0FBQztRQUUxQyxLQUFLLENBQUMsT0FBbUIsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFtQixDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV6QyxNQUFNLEtBQUssQ0FBQztJQUViLENBQUM7SUFFRCxHQUFHLENBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1FBQzlCLEdBQUc7WUFDRixPQUFPLGVBQWUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsVUFBVSxFQUFHLElBQUk7S0FDakIsQ0FBRSxDQUFDO0lBRUosTUFBTSxPQUFPLEdBQVksQ0FBRSxlQUFlLENBQUUsQ0FBQztJQUU3QyxHQUFHLENBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtRQUN0QixHQUFHO1lBQ0YsT0FBTyxPQUFPLENBQUM7UUFDaEIsQ0FBQztRQUNELFVBQVUsRUFBRyxJQUFJO0tBQ2pCLENBQUUsQ0FBQztJQUNKLE1BQU0sT0FBTyxHQUFZLEVBQUUsQ0FBQztJQUM1QixHQUFHLENBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtRQUN0QixHQUFHO1lBQ0YsT0FBTyxPQUFPLENBQUM7UUFDaEIsQ0FBQztRQUNELFVBQVUsRUFBRyxJQUFJO0tBQ2pCLENBQUUsQ0FBQztJQUVKLElBQUksQ0FBQyxlQUFlLEdBQUcsd0JBQXdCLENBQUUsUUFBUSxDQUFFLENBQUM7SUFFNUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUEsNkNBQXVCLEVBQUUsSUFBMEMsQ0FBbUQsQ0FBQztJQUdsSixNQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBRXZELElBQUksVUFBVSxHQUFrQixPQUFPLENBQUMsY0FBYyxDQUFFLGVBQWUsQ0FBRSxDQUFDO0lBQzFFLElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLE9BQVEsVUFBVSxFQUFHLENBQUM7UUFDckIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBRSxVQUFVLENBQUUsQ0FBQztRQU96RCxJQUNDLFdBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssU0FBUztZQUNsRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLEVBQ3JELENBQUM7WUFDRixtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDM0IsTUFBTTtRQUNQLENBQUM7UUFDRCxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFFLFVBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFTcEUsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBRTNCLElBQUssS0FBSyxZQUFZLG9CQUFvQixFQUFHLENBQUM7UUFFN0MsS0FBSyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUMsS0FBZSxDQUFFLENBQUM7SUFFckMsQ0FBQztTQUFNLENBQUM7UUFFUCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsUUFBUSxlQUFlLENBQUM7UUFFN0QsV0FBUSxDQUFDLElBQUksQ0FBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSw4QkFBc0IsQ0FBRSxDQUFDO1FBRXBFLEtBQUssQ0FBQyxJQUFJLENBQUUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFFLENBQUM7UUFFdkMsTUFBTSxVQUFVLEdBQUksS0FBSyxDQUFDLEtBQWlCLENBQUMsS0FBSyxDQUFFLElBQUksQ0FBRSxDQUFDO1FBRTFELEtBQUssQ0FBQyxJQUFJLENBQUUsa0NBQWtDLENBQUUsQ0FBQztRQUVqRCxVQUFVLENBQUMsT0FBTyxDQUFFLENBQUUsSUFBWSxFQUFHLEVBQUU7WUFDdEMsSUFBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUUsSUFBSSxDQUFFLEVBQUcsQ0FBQztnQkFDL0IsS0FBSyxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0YsQ0FBQyxDQUFFLENBQUM7UUFFSixLQUFLLENBQUMsSUFBSSxDQUFFLDRDQUE0QyxDQUFFLENBQUM7UUFDM0QsS0FBSyxDQUFDLElBQUksQ0FBRSxHQUFHLFNBQVMsQ0FBRSxDQUFDO0lBRTVCLENBQUM7SUFFRCxNQUFNLG9CQUFvQixHQUFHLElBQUEsZUFBWSxFQUFFLEtBQUssQ0FBRSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztJQU9oRSxHQUFHLENBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRTtRQUM5QixHQUFHO1lBQ0YsT0FBTyxvQkFBb0IsQ0FBQztRQUM3QixDQUFDO0tBQ0QsQ0FBRSxDQUFDO0lBRUosSUFBSSxDQUFDLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztJQUV6QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1osSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBR3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEVBQ0wsSUFBSSxFQUNKLFVBQVUsR0FDVixHQUFHLE9BQU8sQ0FBQztZQUNaLElBQUssSUFBSSxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUUsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBRSxFQUFHLENBQUM7Z0JBQ2xELE9BQU87WUFDUixDQUFDO1FBQ0YsQ0FBQztRQU1ELEdBQUcsQ0FBRSxlQUFlLEVBQUUsTUFBTSxFQUFFO1lBQzdCLEdBQUc7Z0JBQ0YsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDO1NBQ0QsQ0FBRSxDQUFDO1FBRUosR0FBRyxDQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUU7WUFDdEMsR0FBRztnQkFDRixPQUFPLEtBQUssQ0FBQztZQUNkLENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixHQUFHLENBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRTtZQUNqQyxHQUFHO2dCQUNGLE9BQU8sZUFBZSxDQUFDO1lBQ3hCLENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixHQUFHLENBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRTtZQUNoQyxHQUFHO2dCQUNGLE9BQU8sR0FBRyxFQUFFO29CQUNYLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQztZQUNILENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixHQUFHLENBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRTtZQUM5QixHQUFHO2dCQUNGLE9BQU8sR0FBRyxFQUFFO29CQUNYLE9BQU8sS0FBSyxDQUFFLGVBQWUsQ0FBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sZUFBZSxDQUFDO0FBRXZCLENBQUMsQ0FBQztBQTdMVyxRQUFBLHNCQUFzQiwwQkE2TGpDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1uZW1vbmljYUVycm9yIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdE1ORU1PTklDQSxcbn0gPSBjb25zdGFudHM7XG5cblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRCQVNFX01ORU1PTklDQV9FUlJPUlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi8nO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdG1ha2VFcnJvck1vZGlmaWNhdG9yVHlwZVxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRwYXJzZSxcblx0cGFyZW50LFxuXHRleHRyYWN0XG59ID0gdXRpbHM7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi4vdHlwZXMvSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbi8vIEluc3RhbmNlIGNyZWF0b3IgY29udGV4dCB0eXBlXG50eXBlIEluc3RhbmNlQ3JlYXRvckNvbnRleHQgPSB7XG5cdFR5cGVOYW1lOiBzdHJpbmc7XG5cdHR5cGU6IHsgc3RhY2s6IHN0cmluZyB9O1xuXHRhcmdzOiB1bmtub3duW107XG5cdE1vZGlmaWNhdG9yVHlwZTogQ2FsbGFibGVGdW5jdGlvbjtcblx0SW5zdGFuY2VNb2RpZmljYXRvcjogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IHsgc3RhY2s6IHN0cmluZ1tdIH07XG5cdGluaGVyaXRlZEluc3RhbmNlPzogdW5rbm93bjtcblx0aW52b2tlUG9zdEhvb2tzKCk6IHsgdHlwZTogU2V0PHVua25vd24+OyBjb2xsZWN0aW9uOiBTZXQ8dW5rbm93bj4gfTtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5cbmV4cG9ydCBjb25zdCB0aHJvd01vZGlmaWNhdGlvbkVycm9yID0gZnVuY3Rpb24gKCB0aGlzOiBJbnN0YW5jZUNyZWF0b3JDb250ZXh0LCBlcnJvcjogTW5lbW9uaWNhRXJyb3IgKSB7XG5cblx0Ly8gSW5zdGFuY2VDcmVhdG9yXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0Y29uc3Qge1xuXHRcdFR5cGVOYW1lLFxuXHRcdHR5cGU6IHtcblx0XHRcdHN0YWNrOiB0eXBlU3RhY2tcblx0XHR9LFxuXHRcdGFyZ3Ncblx0fSA9IHNlbGY7XG5cblx0Ly8gaWYgKCBlcnJvclsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gKSB7XG5cdC8vIFx0ZGVidWdnZXI7XG5cdC8vIH1cblxuXHRjb25zdCBleGNlcHRpb25SZWFzb24gPSBlcnJvci5leGNlcHRpb25SZWFzb24gfHwgZXJyb3I7XG5cblx0aWYgKCBlcnJvci5leGNlcHRpb25SZWFzb24gIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdChlcnJvci5yZWFzb25zIGFzIEVycm9yW10pLnB1c2goIGVycm9yLmV4Y2VwdGlvblJlYXNvbiApO1xuXHRcdChlcnJvci5zdXJwbHVzIGFzIEVycm9yW10pLnB1c2goIGVycm9yICk7XG5cblx0XHR0aHJvdyBlcnJvcjtcblxuXHR9XG5cblx0b2RwKCBlcnJvciwgJ2V4Y2VwdGlvblJlYXNvbicsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGV4Y2VwdGlvblJlYXNvbjtcblx0XHR9LFxuXHRcdGVudW1lcmFibGUgOiB0cnVlXG5cdH0gKTtcblxuXHRjb25zdCByZWFzb25zOiBFcnJvcltdID0gWyBleGNlcHRpb25SZWFzb24gXTtcblxuXHRvZHAoIGVycm9yLCAncmVhc29ucycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIHJlYXNvbnM7XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9ICk7XG5cdGNvbnN0IHN1cnBsdXM6IEVycm9yW10gPSBbXTtcblx0b2RwKCBlcnJvciwgJ3N1cnBsdXMnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBzdXJwbHVzO1xuXHRcdH0sXG5cdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0fSApO1xuXG5cdHNlbGYuTW9kaWZpY2F0b3JUeXBlID0gbWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlKCBUeXBlTmFtZSApO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gKSBhcyBJbnN0YW5jZUNyZWF0b3JDb250ZXh0WydJbnN0YW5jZU1vZGlmaWNhdG9yJ107XG5cblx0Ly8gbGV0IGVycm9yZWRJbnN0YW5jZSA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xuXG5cdGxldCBlcnJvclByb3RvOiBvYmplY3QgfCBudWxsID0gUmVmbGVjdC5nZXRQcm90b3R5cGVPZiggZXJyb3JlZEluc3RhbmNlICk7XG5cdGxldCBpc01uZW1vbmljYUluc3RhbmNlID0gZmFsc2U7XG5cdHdoaWxlICggZXJyb3JQcm90byApIHtcblx0XHRjb25zdCB0ZXN0VG9Qcm90byA9IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8gKTtcblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IG51bGwpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHRpZiAoXG5cdFx0XHR0ZXN0VG9Qcm90byAhPT0gbnVsbCAmJiB0ZXN0VG9Qcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBNTkVNT05JQ0EgJiZcblx0XHRcdE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlc3RUb1Byb3RvLCAnY29uc3RydWN0b3InKVxuXHRcdCkge1xuXHRcdFx0aXNNbmVtb25pY2FJbnN0YW5jZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0ZXJyb3JQcm90byA9IHRlc3RUb1Byb3RvO1xuXHR9XG5cblx0Ly8gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHRjb25zdCByZXN1bHQgPSBSZWZsZWN0LnNldFByb3RvdHlwZU9mKCBlcnJvclByb3RvIGFzIG9iamVjdCwgZXJyb3IpO1xuXHQvLyBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHQvLyBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuXHQvLyBcdE9iamVjdC5zZXRQcm90b3R5cGVPZihlcnJvclByb3RvLCBlcnJvcik7XG5cdC8vIFx0Ly8gdW5yZWFjaGFibGVcblx0Ly8gXHRyZXN1bHQgPSB0cnVlO1xuXHQvLyB9XG5cdC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cblx0Y29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW107XG5cblx0aWYgKCBlcnJvciBpbnN0YW5jZW9mIEJBU0VfTU5FTU9OSUNBX0VSUk9SICkge1xuXG5cdFx0c3RhY2sucHVzaCggZXJyb3Iuc3RhY2sgYXMgc3RyaW5nICk7XG5cblx0fSBlbHNlIHtcblxuXHRcdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBjcmVhdGlvbiBvZiBbICR7VHlwZU5hbWV9IF0gdHJhY2VkIC0tPmA7XG5cblx0XHRnZXRTdGFjay5jYWxsKCBlcnJvcmVkSW5zdGFuY2UsIHRpdGxlLCBbXSwgdGhyb3dNb2RpZmljYXRpb25FcnJvciApO1xuXG5cdFx0c3RhY2sucHVzaCggLi4uZXJyb3JlZEluc3RhbmNlLnN0YWNrICk7XG5cblx0XHRjb25zdCBlcnJvclN0YWNrID0gKGVycm9yLnN0YWNrIGFzIHN0cmluZyApLnNwbGl0KCAnXFxuJyApO1xuXG5cdFx0c3RhY2sucHVzaCggJzwtLSB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IgLS0+JyApO1xuXG5cdFx0ZXJyb3JTdGFjay5mb3JFYWNoKCAoIGxpbmU6IHN0cmluZyApID0+IHtcblx0XHRcdGlmICggIXN0YWNrLmluY2x1ZGVzKCBsaW5lICkgKSB7XG5cdFx0XHRcdHN0YWNrLnB1c2goIGxpbmUgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRzdGFjay5wdXNoKCAnXFxuPC0tIG9mIGNvbnN0cnVjdG9yIGRlZmluaXRpb25zIHN0YWNrIC0tPicgKTtcblx0XHRzdGFjay5wdXNoKCAuLi50eXBlU3RhY2sgKTtcblxuXHR9XG5cblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlU3RhY2sgPSBjbGVhbnVwU3RhY2soIHN0YWNrICkuam9pbiggJ1xcbicgKTtcblxuXHQvLyBzdGFydGluZyBmcm9tIE5vZGUuanMgdjIyIHdlIHNob3VsZCBkZWZpbmUgdGhpcyBwcm9wZXJ0eSB0aHJvdWdoIG9kcFxuXHQvLyB0aGF0IHdhcyB1bm5lY2Vzc2FyeSBmb3IgdjIwLCB0aG91Z2ggc2VlbXMgbmV3IHY4IG9wdGltaXplZCBjb21waWxlclxuXHQvLyBpcyBnYXRoZXJpbmcgdmFsdWUgZnJvbSBkZWVwIGNoYWluIGFuZCB3aGlsZSBjb21wYXJpbmcgaXQgd2l0aCBcblx0Ly8gYXNzaWdubWVudCBvcGVyYXRvciwgdGhlbiBpdCB3aWxsIG5vdCBjcmVhdGUgdGhpcyBwcm9wZXJ0eSBcblx0Ly8gc28gd2UgbmVlZCBkaXJlY3QgcHJvcGVydHkgZGVjbGFyYXRpb24gaGVyZSAuLi5cblx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdzdGFjaycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGVycm9yZWRJbnN0YW5jZVN0YWNrO1xuXHRcdH1cblx0fSApO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBlcnJvcmVkSW5zdGFuY2U7XG5cblx0aWYgKHJlc3VsdCkge1xuXHRcdGlmIChpc01uZW1vbmljYUluc3RhbmNlKSB7XG5cblx0XHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RhcnRcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSBzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRjb2xsZWN0aW9uLFxuXHRcdFx0fSA9IHJlc3VsdHM7XG5cdFx0XHRpZiAoIHR5cGUuaGFzKCB0cnVlICkgfHwgY29sbGVjdGlvbi5oYXMoIHRydWUgKSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIH1cblxuXHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RvcFxuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdhcmdzJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdvcmlnaW5hbEVycm9yJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnaW5zdGFuY2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gZXJyb3JlZEluc3RhbmNlO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnZXh0cmFjdCcsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgX3BhcmVudCA9IHBhcmVudChlcnJvcmVkSW5zdGFuY2UpO1xuXHRcdFx0XHRcdHJldHVybiBleHRyYWN0KF9wYXJlbnQpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAncGFyc2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZSggZXJyb3JlZEluc3RhbmNlICk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0dGhyb3cgZXJyb3JlZEluc3RhbmNlO1xuXG59O1xuIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3dNb2RpZmljYXRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYiwrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxTQUFTLEdBQ1QsR0FBRyxxQkFBUyxDQUFDO0FBR2QscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLHlCQUE0QztBQUU1QyxvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLHdCQUF3QixFQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxhQUFLLENBQUM7QUFFVixzRUFBdUU7QUFjaEUsTUFBTSxzQkFBc0IsR0FBRyxVQUF5QyxLQUFxQjtJQUluRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsTUFBTSxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQUUsRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixFQUNELElBQUksRUFDSixHQUFHLElBQUksQ0FBQztJQU1ULE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO0lBRXZELElBQUssS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUcsQ0FBQztRQUUxQyxLQUFLLENBQUMsT0FBbUIsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFtQixDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV6QyxNQUFNLEtBQUssQ0FBQztJQUViLENBQUM7SUFFRCxHQUFHLENBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1FBQzlCLEdBQUc7WUFDRixPQUFP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LE9BQU8sRUFBRTtZQUM5QixHQUFHO2dCQUNGLE9BQU8sR0FBRyxFQUFFO29CQUNYLE9BQU8sS0FBSyxDQUFFLGVBQWUsQ0FBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sZUFBZSxDQUFDO0FBRXZCLENBQUMsQ0FBQztBQTlMVyxRQUFBLHNCQUFzQiwwQkE4TGpDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1uZW1vbmljYUVycm9yIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdE1ORU1PTklDQSxcbn0gPSBjb25zdGFudHM7XG5cblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRCQVNFX01ORU1PTklDQV9FUlJPUlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi8nO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdG1ha2VFcnJvck1vZGlmaWNhdG9yVHlwZVxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRwYXJzZSxcblx0cGFyZW50LFxuXHRleHRyYWN0XG59ID0gdXRpbHM7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi4vdHlwZXMvSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbi8vIEluc3RhbmNlIGNyZWF0b3IgY29udGV4dCB0eXBlXG50eXBlIEluc3RhbmNlQ3JlYXRvckNvbnRleHQgPSB7XG5cdFR5cGVOYW1lOiBzdHJpbmc7XG5cdHR5cGU6IHsgc3RhY2s6IHN0cmluZyB9O1xuXHRhcmdzOiB1bmtub3duW107XG5cdE1vZGlmaWNhdG9yVHlwZTogQ2FsbGFibGVGdW5jdGlvbjtcblx0SW5zdGFuY2VNb2RpZmljYXRvcjogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IHsgc3RhY2s6IHN0cmluZ1tdIH07XG5cdGluaGVyaXRlZEluc3RhbmNlPzogdW5rbm93bjtcblx0aW52b2tlUG9zdEhvb2tzKCk6IHsgdHlwZTogU2V0PHVua25vd24+OyBjb2xsZWN0aW9uOiBTZXQ8dW5rbm93bj4gfTtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5cbmV4cG9ydCBjb25zdCB0aHJvd01vZGlmaWNhdGlvbkVycm9yID0gZnVuY3Rpb24gKCB0aGlzOiBJbnN0YW5jZUNyZWF0b3JDb250ZXh0LCBlcnJvcjogTW5lbW9uaWNhRXJyb3IgKSB7XG5cblx0Ly8gSW5zdGFuY2VDcmVhdG9yXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0Y29uc3Qge1xuXHRcdFR5cGVOYW1lLFxuXHRcdHR5cGU6IHtcblx0XHRcdHN0YWNrOiB0eXBlU3RhY2tcblx0XHR9LFxuXHRcdGFyZ3Ncblx0fSA9IHNlbGY7XG5cblx0Ly8gaWYgKCBlcnJvclsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gKSB7XG5cdC8vIFx0ZGVidWdnZXI7XG5cdC8vIH1cblxuXHRjb25zdCBleGNlcHRpb25SZWFzb24gPSBlcnJvci5leGNlcHRpb25SZWFzb24gfHwgZXJyb3I7XG5cblx0aWYgKCBlcnJvci5leGNlcHRpb25SZWFzb24gIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdChlcnJvci5yZWFzb25zIGFzIEVycm9yW10pLnB1c2goIGVycm9yLmV4Y2VwdGlvblJlYXNvbiApO1xuXHRcdChlcnJvci5zdXJwbHVzIGFzIEVycm9yW10pLnB1c2goIGVycm9yICk7XG5cblx0XHR0aHJvdyBlcnJvcjtcblxuXHR9XG5cblx0b2RwKCBlcnJvciwgJ2V4Y2VwdGlvblJlYXNvbicsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGV4Y2VwdGlvblJlYXNvbjtcblx0XHR9LFxuXHRcdGVudW1lcmFibGUgOiB0cnVlXG5cdH0gKTtcblxuXHRjb25zdCByZWFzb25zOiBFcnJvcltdID0gWyBleGNlcHRpb25SZWFzb24gXTtcblxuXHRvZHAoIGVycm9yLCAncmVhc29ucycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIHJlYXNvbnM7XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9ICk7XG5cdGNvbnN0IHN1cnBsdXM6IEVycm9yW10gPSBbXTtcblx0b2RwKCBlcnJvciwgJ3N1cnBsdXMnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBzdXJwbHVzO1xuXHRcdH0sXG5cdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0fSApO1xuXG5cdHNlbGYuTW9kaWZpY2F0b3JUeXBlID0gbWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlKCBUeXBlTmFtZSApO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gKSBhcyBJbnN0YW5jZUNyZWF0b3JDb250ZXh0WydJbnN0YW5jZU1vZGlmaWNhdG9yJ107XG5cblx0Ly8gbGV0IGVycm9yZWRJbnN0YW5jZSA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xuXG5cdGxldCBlcnJvclByb3RvOiBvYmplY3QgfCBudWxsID0gUmVmbGVjdC5nZXRQcm90b3R5cGVPZiggZXJyb3JlZEluc3RhbmNlICk7XG5cdGxldCBpc01uZW1vbmljYUluc3RhbmNlID0gZmFsc2U7XG5cdHdoaWxlICggZXJyb3JQcm90byApIHtcblx0XHRjb25zdCB0ZXN0VG9Qcm90byA9IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8gKTtcblx0XHRpZiAodGVzdFRvUHJvdG8gPT09IG51bGwpIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHRpZiAoXG5cdFx0XHR0ZXN0VG9Qcm90byAhPT0gbnVsbCAmJlxuXHRcdFx0T2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodGVzdFRvUHJvdG8sICdjb25zdHJ1Y3RvcicpICYmXG5cdFx0XHR0ZXN0VG9Qcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBNTkVNT05JQ0Fcblx0XHQpIHtcblx0XHRcdGlzTW5lbW9uaWNhSW5zdGFuY2UgPSB0cnVlO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGVycm9yUHJvdG8gPSB0ZXN0VG9Qcm90bztcblx0fVxuXG5cdC8vIFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8sIGVycm9yKTtcblx0Y29uc3QgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90byBhcyBvYmplY3QsIGVycm9yKTtcblx0Ly8gbGV0IHJlc3VsdCA9IFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8sIGVycm9yKTtcblx0Ly8gaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcblx0Ly8gXHRPYmplY3Quc2V0UHJvdG90eXBlT2YoZXJyb3JQcm90bywgZXJyb3IpO1xuXHQvLyBcdC8vIHVucmVhY2hhYmxlXG5cdC8vIFx0cmVzdWx0ID0gdHJ1ZTtcblx0Ly8gfVxuXHQvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xuXG5cdGNvbnN0IHN0YWNrOiBzdHJpbmdbXSA9IFtdO1xuXG5cdGlmICggZXJyb3IgaW5zdGFuY2VvZiBCQVNFX01ORU1PTklDQV9FUlJPUiApIHtcblxuXHRcdHN0YWNrLnB1c2goIGVycm9yLnN0YWNrIGFzIHN0cmluZyApO1xuXG5cdH0gZWxzZSB7XG5cblx0XHRjb25zdCB0aXRsZSA9IGBcXG48LS0gY3JlYXRpb24gb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXG5cdFx0Z2V0U3RhY2suY2FsbCggZXJyb3JlZEluc3RhbmNlLCB0aXRsZSwgW10sIHRocm93TW9kaWZpY2F0aW9uRXJyb3IgKTtcblxuXHRcdHN0YWNrLnB1c2goIC4uLmVycm9yZWRJbnN0YW5jZS5zdGFjayApO1xuXG5cdFx0Y29uc3QgZXJyb3JTdGFjayA9IChlcnJvci5zdGFjayBhcyBzdHJpbmcgKS5zcGxpdCggJ1xcbicgKTtcblxuXHRcdHN0YWNrLnB1c2goICc8LS0gd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yIC0tPicgKTtcblxuXHRcdGVycm9yU3RhY2suZm9yRWFjaCggKCBsaW5lOiBzdHJpbmcgKSA9PiB7XG5cdFx0XHRpZiAoICFzdGFjay5pbmNsdWRlcyggbGluZSApICkge1xuXHRcdFx0XHRzdGFjay5wdXNoKCBsaW5lICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0c3RhY2sucHVzaCggJ1xcbjwtLSBvZiBjb25zdHJ1Y3RvciBkZWZpbml0aW9ucyBzdGFjayAtLT4nICk7XG5cdFx0c3RhY2sucHVzaCggLi4udHlwZVN0YWNrICk7XG5cblx0fVxuXG5cdGNvbnN0IGVycm9yZWRJbnN0YW5jZVN0YWNrID0gY2xlYW51cFN0YWNrKCBzdGFjayApLmpvaW4oICdcXG4nICk7XG5cblx0Ly8gc3RhcnRpbmcgZnJvbSBOb2RlLmpzIHYyMiB3ZSBzaG91bGQgZGVmaW5lIHRoaXMgcHJvcGVydHkgdGhyb3VnaCBvZHBcblx0Ly8gdGhhdCB3YXMgdW5uZWNlc3NhcnkgZm9yIHYyMCwgdGhvdWdoIHNlZW1zIG5ldyB2OCBvcHRpbWl6ZWQgY29tcGlsZXJcblx0Ly8gaXMgZ2F0aGVyaW5nIHZhbHVlIGZyb20gZGVlcCBjaGFpbiBhbmQgd2hpbGUgY29tcGFyaW5nIGl0IHdpdGggXG5cdC8vIGFzc2lnbm1lbnQgb3BlcmF0b3IsIHRoZW4gaXQgd2lsbCBub3QgY3JlYXRlIHRoaXMgcHJvcGVydHkgXG5cdC8vIHNvIHdlIG5lZWQgZGlyZWN0IHByb3BlcnR5IGRlY2xhcmF0aW9uIGhlcmUgLi4uXG5cdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnc3RhY2snLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBlcnJvcmVkSW5zdGFuY2VTdGFjaztcblx0XHR9XG5cdH0gKTtcblxuXHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gZXJyb3JlZEluc3RhbmNlO1xuXG5cdGlmIChyZXN1bHQpIHtcblx0XHRpZiAoaXNNbmVtb25pY2FJbnN0YW5jZSkge1xuXG5cdFx0XHQvLyBpZiBob29rcyBoYWQgc29tZSBpbnRlcmNlcHRpb246IHN0YXJ0XG5cdFx0XHRjb25zdCByZXN1bHRzID0gc2VsZi5pbnZva2VQb3N0SG9va3MoKTtcblx0XHRcdGNvbnN0IHtcblx0XHRcdFx0dHlwZSxcblx0XHRcdFx0Y29sbGVjdGlvbixcblx0XHRcdH0gPSByZXN1bHRzO1xuXHRcdFx0aWYgKCB0eXBlLmhhcyggdHJ1ZSApIHx8IGNvbGxlY3Rpb24uaGFzKCB0cnVlICkgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyB9XG5cblx0XHQvLyBpZiBob29rcyBoYWQgc29tZSBpbnRlcmNlcHRpb246IHN0b3BcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnYXJncycsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiBhcmdzO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnb3JpZ2luYWxFcnJvcicsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiBlcnJvcjtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRvZHAoIGVycm9yZWRJbnN0YW5jZSwgJ2luc3RhbmNlJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGVycm9yZWRJbnN0YW5jZTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRvZHAoIGVycm9yZWRJbnN0YW5jZSwgJ2V4dHJhY3QnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IF9wYXJlbnQgPSBwYXJlbnQoZXJyb3JlZEluc3RhbmNlKTtcblx0XHRcdFx0XHRyZXR1cm4gZXh0cmFjdChfcGFyZW50KTtcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRvZHAoIGVycm9yZWRJbnN0YW5jZSwgJ3BhcnNlJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gcGFyc2UoIGVycm9yZWRJbnN0YW5jZSApO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxuXG5cdHRocm93IGVycm9yZWRJbnN0YW5jZTtcblxufTtcbiJdfQ==
|
|
@@ -2,16 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerFlowChecker = exports.flowCheckers = void 0;
|
|
4
4
|
const errors_1 = require("../../descriptors/errors");
|
|
5
|
-
const { MISSING_CALLBACK_ARGUMENT,
|
|
5
|
+
const { MISSING_CALLBACK_ARGUMENT, } = errors_1.ErrorsTypes;
|
|
6
6
|
exports.flowCheckers = new WeakMap();
|
|
7
7
|
const registerFlowChecker = function (cb) {
|
|
8
8
|
if (typeof cb !== 'function') {
|
|
9
9
|
throw new MISSING_CALLBACK_ARGUMENT;
|
|
10
10
|
}
|
|
11
|
-
if (exports.flowCheckers.has(this)) {
|
|
12
|
-
throw new FLOW_CHECKER_REDEFINITION;
|
|
13
|
-
}
|
|
14
11
|
exports.flowCheckers.set(this, cb);
|
|
15
12
|
};
|
|
16
13
|
exports.registerFlowChecker = registerFlowChecker;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd0NoZWNrZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9ob29rcy9mbG93Q2hlY2tlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFFYixxREFBdUQ7QUFDdkQsTUFBTSxFQUNMLHlCQUF5QixHQUV6QixHQUFHLG9CQUFXLENBQUM7QUFFSCxRQUFBLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQ25DLE1BQU0sbUJBQW1CLEdBQUcsVUFBcUIsRUFBaUI7SUFFeEUsSUFBSyxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUcsQ0FBQztRQUNoQyxNQUFNLElBQUkseUJBQXlCLENBQUM7SUFDckMsQ0FBQztJQU1ELG9CQUFZLENBQUMsR0FBRyxDQUFFLElBQUksRUFBRSxFQUFFLENBQUUsQ0FBQztBQUU5QixDQUFDLENBQUM7QUFaVyxRQUFBLG1CQUFtQix1QkFZOUIiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmNvbnN0IHtcblx0TUlTU0lOR19DQUxMQkFDS19BUkdVTUVOVCxcblx0Ly8gRkxPV19DSEVDS0VSX1JFREVGSU5JVElPTixcbn0gPSBFcnJvcnNUeXBlcztcblxuZXhwb3J0IGNvbnN0IGZsb3dDaGVja2VycyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgY29uc3QgcmVnaXN0ZXJGbG93Q2hlY2tlciA9IGZ1bmN0aW9uICh0aGlzOiBhbnksIGNiOiAoKSA9PiB1bmtub3duICkge1xuXG5cdGlmICggdHlwZW9mIGNiICE9PSAnZnVuY3Rpb24nICkge1xuXHRcdHRocm93IG5ldyBNSVNTSU5HX0NBTExCQUNLX0FSR1VNRU5UO1xuXHR9XG5cblx0Ly8gaWYgKCBmbG93Q2hlY2tlcnMuaGFzKCB0aGlzICkgKSB7XG5cdC8vIFx0dGhyb3cgbmV3IEZMT1dfQ0hFQ0tFUl9SRURFRklOSVRJT047XG5cdC8vIH1cblxuXHRmbG93Q2hlY2tlcnMuc2V0KCB0aGlzLCBjYiApO1xuXG59O1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _Internal_TC_ } from '../../types';
|
|
2
2
|
export interface ThenSpec {
|
|
3
3
|
subtype: object;
|
|
4
4
|
args: unknown[];
|
|
@@ -32,5 +32,5 @@ declare const InstanceCreatorPrototype: {
|
|
|
32
32
|
};
|
|
33
33
|
}, error: import("../../types").MnemonicaError) => void;
|
|
34
34
|
};
|
|
35
|
-
export declare const InstanceCreator:
|
|
35
|
+
export declare const InstanceCreator: _Internal_TC_<typeof InstanceCreatorPrototype>;
|
|
36
36
|
export {};
|
|
@@ -11,6 +11,7 @@ const errors_2 = require("../errors");
|
|
|
11
11
|
const throwModificationError_1 = require("../errors/throwModificationError");
|
|
12
12
|
const Props_1 = require("./Props");
|
|
13
13
|
const InstanceModificator_1 = require("./InstanceModificator");
|
|
14
|
+
const parent_1 = require("../../utils/parent");
|
|
14
15
|
const invokePreHooks = function () {
|
|
15
16
|
const { type, existentInstance, args, InstanceModificator } = this;
|
|
16
17
|
const { collection, } = type;
|
|
@@ -63,8 +64,12 @@ const postProcessing = function (continuationOf) {
|
|
|
63
64
|
if (self.inheritedInstance instanceof Error && !blockErrors) {
|
|
64
65
|
return;
|
|
65
66
|
}
|
|
66
|
-
const
|
|
67
|
-
|
|
67
|
+
const prev = (0, parent_1.parent)(self.inheritedInstance);
|
|
68
|
+
if (!prev || (prev && !prev.constructor)) {
|
|
69
|
+
const msg = 'should inherit from some instance';
|
|
70
|
+
self.throwModificationError(new WRONG_MODIFICATION_PATTERN(msg, stack));
|
|
71
|
+
}
|
|
72
|
+
const parentName = prev.constructor.name;
|
|
68
73
|
const parentTypeName = self.type.parentType.TypeName;
|
|
69
74
|
if (parentName !== parentTypeName) {
|
|
70
75
|
const msg = `should inherit from ${parentTypeName} but made on ${parentName}`;
|
|
@@ -204,4 +209,4 @@ exports.InstanceCreator = function (type, existentInstance, args, chained) {
|
|
|
204
209
|
return self.inheritedInstance;
|
|
205
210
|
};
|
|
206
211
|
Object.assign(exports.InstanceCreator.prototype, InstanceCreatorPrototype);
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VDcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9JbnN0YW5jZUNyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFJYiwrQ0FFeUI7QUFFekIsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wscUJBQXFCLEVBQ3JCLHdCQUF3QixHQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUFxQztBQUNyQyw2RUFBMEU7QUFFMUUsbUNBQXFEO0FBRXJELCtEQUFnRTtBQUVoRSxNQUFNLGNBQWMsR0FBRztJQUV0QixNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLElBQUksQ0FBQztJQUVULE1BQU0sUUFBUSxHQUFHO1FBQ2hCLElBQUk7UUFDSixnQkFBZ0I7UUFDaEIsSUFBSTtRQUNKLG1CQUFtQjtLQUNuQixDQUFDO0lBRUYsVUFBVSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7SUFFakQsSUFBSSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7QUFFNUMsQ0FBQyxDQUFDO0FBSUYsTUFBTSxlQUFlLEdBQUc7SUFHdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLE1BQU0sRUFDTCxpQkFBaUIsR0FDakIsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLEtBQUssR0FBRyxJQUFBLGlCQUFTLEVBQUMsaUJBQWlCLENBQVUsQ0FBQztJQUVwRCxNQUFNLEVBQ0wsUUFBUSxF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aUJBQWlCLEdBQUcsTUFBTSxDQUFDO0lBRWpDLENBQUM7SUFHRCxJQUFLLElBQUksQ0FBQyxpQkFBaUIsWUFBWSxPQUFPLEVBQUcsQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBRSxDQUFDO1FBRXhDLEdBQUcsQ0FBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUU7WUFDbkMsR0FBRztnQkFDRixPQUFPLFFBQVEsQ0FBQztZQUNqQixDQUFDO1NBQ0QsQ0FBRSxDQUFDO1FBRUosT0FBTyxNQUFNLENBQUM7SUFFZixDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUU1QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUUvQixDQUF5RCxDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLENBQUUsdUJBQWUsQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiAgXG4ndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IENvbnN0cnVjdG9yRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7XG5cdGNvbnN0YW50c1xufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5jb25zdCB7XG5cdG9kcCxcblx0U3ltYm9sQ29uc3RydWN0b3JOYW1lXG59ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5jb25zdCB7XG5cdFdST05HX01PRElGSUNBVElPTl9QQVRURVJOLFxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdGdldEV4aXN0ZW50QXN5bmNTdGFjayxcblx0bWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlLFxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IGdldFN0YWNrIH0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7IHRocm93TW9kaWZpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvdGhyb3dNb2RpZmljYXRpb25FcnJvcic7XG5cbmltcG9ydCB7IF9nZXRQcm9wcywgX3NldFNlbGYsIFByb3BzIH0gZnJvbSAnLi9Qcm9wcyc7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi9JbnN0YW5jZU1vZGlmaWNhdG9yJztcbiAgXG5jb25zdCBpbnZva2VQcmVIb29rcyA9IGZ1bmN0aW9uICggdGhpczogYW55ICkge1xuXG5cdGNvbnN0IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH0gPSB0aGlzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH07XG5cblx0Y29sbGVjdGlvbi5pbnZva2VIb29rKCAncHJlQ3JlYXRpb24nLCBob29rRGF0YSApO1xuXG5cdHR5cGUuaW52b2tlSG9vayggJ3ByZUNyZWF0aW9uJywgaG9va0RhdGEgKTtcblxufTtcblxuXG4gIFxuY29uc3QgaW52b2tlUG9zdEhvb2tzID0gZnVuY3Rpb24gKCB0aGlzOiBhbnkgKSB7XG5cblx0IFxuXHRjb25zdCBjcmVhdG9yID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHR9ID0gY3JlYXRvcjtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbmhlcml0ZWRJbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB0eXBlLFxuXHRcdF9fcGFyZW50X186IGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0X19hcmdzX186IGFyZ3MsXG5cdH0gPSBwcm9wcztcblxuXHRjb25zdCB7XG5cdFx0Y29sbGVjdGlvbixcblx0fSA9IHR5cGU7XG5cblx0Y29uc3QgaG9va1R5cGUgPSBpbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIEVycm9yID9cblx0XHQnY3JlYXRpb25FcnJvcicgOiAncG9zdENyZWF0aW9uJztcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0aW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRjcmVhdG9yXG5cdH07XG5cblx0cmV0dXJuIHtcblxuXHRcdHR5cGUgOiB0eXBlLmludm9rZUhvb2soIGhvb2tUeXBlLCBob29rRGF0YSApLFxuXG5cdFx0Y29sbGVjdGlvbiA6IGNvbGxlY3Rpb24uaW52b2tlSG9vayggaG9va1R5cGUsIGhvb2tEYXRhICksXG5cblx0fTtcblxufTtcblxuXG4gIFxuY29uc3QgcG9zdFByb2Nlc3NpbmcgPSBmdW5jdGlvbiAoIHRoaXM6IGFueSwgY29udGludWF0aW9uT2Y6IGFueSApIHtcblx0IFxuXHRjb25zdCBzZWxmID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdHN0YWNrLFxuXHRcdHR5cGU6IHtcblx0XHRcdGlzU3ViVHlwZSxcblx0XHRcdGNvbmZpZzoge1xuXHRcdFx0XHRzdHJpY3RDaGFpbixcblx0XHRcdFx0YmxvY2tFcnJvcnNcblx0XHRcdH1cblx0XHR9XG5cdH0gPSBzZWxmO1xuXG5cdGlmICggIXNlbGYuaW5oZXJpdGVkSW5zdGFuY2UuY29uc3RydWN0b3IgKSB7XG5cdFx0Y29uc3QgbXNnID0gJ3Nob3VsZCBpbmhlcml0IGZyb20gbW5lbW9uaWNhIGluc3RhbmNlJztcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdH1cblxuXHRpZiAoICFzZWxmLmluaGVyaXRlZEluc3RhbmNlLmNvbnN0cnVjdG9yWyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgXSApIHtcblx0XHRjb25zdCBtc2cgPSAnc2hvdWxkIGluaGVyaXQgZnJvbSBtbmVtb25pY2EgaW5zdGFuY2UnO1xuXHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHN0YWNrICkgKTtcblx0fVxuXG5cdGlmICggY29udGludWF0aW9uT2YgJiYgISggc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIGNvbnRpbnVhdGlvbk9mICkgKSB7XG5cdFx0Ly8gZGVidWdnZXI7XG5cdFx0Y29uc3QgaWNuID0gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lO1xuXHRcdGNvbnN0IG1zZyA9IGBzaG91bGQgaW5oZXJpdCBmcm9tICR7Y29udGludWF0aW9uT2YuVHlwZU5hbWV9IGJ1dCBnb3QgJHtpY259YDtcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdFx0Ly8gdGhyb3cgbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKG1zZywgc2VsZi5zdGFjayk7XG5cdH1cblxuXHRpZiAoaXNTdWJUeXBlICYmIHN0cmljdENoYWluKSB7XG5cdFx0XG5cdFx0aWYgKHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBFcnJvciAmJiAhYmxvY2tFcnJvcnMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBwYXJlbnQgPSBzZWxmLmluaGVyaXRlZEluc3RhbmNlLnBhcmVudCgpO1xuXHRcdGNvbnN0IHBhcmVudE5hbWUgPSBwYXJlbnQuY29uc3RydWN0b3IubmFtZTtcblx0XHRjb25zdCBwYXJlbnRUeXBlTmFtZSA9IHNlbGYudHlwZS5wYXJlbnRUeXBlLlR5cGVOYW1lO1xuXHRcdGlmIChwYXJlbnROYW1lICE9PSBwYXJlbnRUeXBlTmFtZSkge1xuXHRcdFx0Y29uc3QgbXNnID0gYHNob3VsZCBpbmhlcml0IGZyb20gJHtwYXJlbnRUeXBlTmFtZX0gYnV0IG1hZGUgb24gJHtwYXJlbnROYW1lfWA7XG5cdFx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdFx0fVxuXG5cdH1cblxuXHRfc2V0U2VsZihzZWxmLmluaGVyaXRlZEluc3RhbmNlKTtcblxuXHRzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW5TcGVjIHtcblx0c3VidHlwZTogb2JqZWN0O1xuXHRhcmdzOiB1bmtub3duW107XG5cdG5hbWU/OiBzdHJpbmc7XG59XG5cbiAgXG5jb25zdCBhZGRUaGVuID0gZnVuY3Rpb24gKCB0aGlzOiBhbnksIHRoZW46IFRoZW5TcGVjICkge1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9XG5cdFx0XHRcdG5ldyBJbnN0YW5jZUNyZWF0b3IoXG5cdFx0XHRcdFx0dGhlbi5zdWJ0eXBlLFxuXHRcdFx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0XHRcdFx0dGhlbi5hcmdzLFxuXHRcdFx0XHRcdC8vIHdhcyBjaGFpbmVkIDpcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0Ly8gc2VsZi5leGlzdGVudEluc3RhbmNlXG5cdFx0XHRcdCkgYXMgdW5rbm93biBhcyBQcm9taXNlPHVua25vd24+O1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fSApO1xuXG59O1xuXG5jb25zdCBtYWtlQXdhaXRlciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIHRoZW4/OiBUaGVuU3BlYyApIHtcblxuXHQgXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBzZWxmLmluaGVyaXRlZEluc3RhbmNlXG5cdFx0LnRoZW4oICggaW5zdGFuY2U6IHVua25vd24gKSA9PiB7XG5cblx0XHRcdGlmICggdHlwZW9mIGluc3RhbmNlICE9PSAnb2JqZWN0JyApIHtcblx0XHRcdFx0aWYgKCBzZWxmLmNvbmZpZy5hd2FpdFJldHVybiApIHtcblx0XHRcdFx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke3R5cGUuVHlwZU5hbWV9OiBzZWVtcyBhc3luYyAke3R5cGUuVHlwZU5hbWV9IGhhcyBubyByZXR1cm4gc3RhdGVtZW50YDtcblx0XHRcdFx0XHR0aHJvdyBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc2VsZi5zdGFjayApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBpbnN0YW5jZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICEoIGluc3RhbmNlIGluc3RhbmNlb2Ygc2VsZi50eXBlICkgKSB7XG5cdFx0XHRcdCBcblx0XHRcdFx0Y29uc3QgaWNuID0gKGluc3RhbmNlIGFzIGFueSkuY29uc3RydWN0b3IubmFtZTtcblx0XHRcdFx0Y29uc3QgbXNnID0gYHNob3VsZCBpbmhlcml0IGZyb20gJHt0eXBlLlR5cGVOYW1lfSBidXQgZ290ICR7aWNufWA7XG5cdFx0XHRcdHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzZWxmLnN0YWNrICk7XG5cdFx0XHR9XG5cblx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBpbnN0YW5jZTtcblxuXHRcdFx0Y29uc3QgcHJvcHMgPSBfZ2V0UHJvcHMoc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0XHRcdCBcblx0XHRcdGlmICggcHJvcHMuX19zZWxmX18gIT09IChzZWxmLmluaGVyaXRlZEluc3RhbmNlIGFzIHVua25vd24pICkge1xuXHRcdFx0XHRzZWxmLnBvc3RQcm9jZXNzaW5nKCB0eXBlICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXG5cdFx0fSApXG5cdFx0LmNhdGNoKCAoIGVycm9yOiBFcnJvciApID0+IHtcblx0XHRcdGlmICggc2VsZi5jb25maWcuYmxvY2tFcnJvcnMgKSB7XG5cdFx0XHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRpZiAoIHRoZW4gKSB7XG5cdFx0c2VsZi5hZGRUaGVuKCB0aGVuICk7XG5cdH1cblxuXHR0eXBlLnN1YnR5cGVzLmZvckVhY2goICggc3VidHlwZTogb2JqZWN0LCBuYW1lOiBzdHJpbmcgKSA9PiB7XG5cdFx0IFxuXHRcdChzZWxmLmluaGVyaXRlZEluc3RhbmNlIGFzIGFueSlbIG5hbWUgXSA9ICggLi4uYXJnczogdW5rbm93bltdICkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYubWFrZUF3YWl0ZXIoIHN1YnR5cGUsIHtcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0c3VidHlwZSxcblx0XHRcdFx0YXJncyxcblx0XHRcdH0gKTtcblx0XHRcdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXHRcdH07XG5cdH0gKTtcblxuXHRyZXR1cm4gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZTtcblxufTtcblxuY29uc3QgSW5zdGFuY2VDcmVhdG9yUHJvdG90eXBlID0ge1xuXHRnZXRFeGlzdGVudEFzeW5jU3RhY2ssXG5cdHBvc3RQcm9jZXNzaW5nLFxuXHRtYWtlQXdhaXRlcixcblx0YWRkVGhlbixcblx0aW52b2tlUHJlSG9va3MsXG5cdGludm9rZVBvc3RIb29rcyxcblx0dGhyb3dNb2RpZmljYXRpb25FcnJvclxufTtcblxuICBcbmV4cG9ydCBjb25zdCBJbnN0YW5jZUNyZWF0b3IgPSBmdW5jdGlvbiAoIHRoaXM6IGFueSwgdHlwZTogYW55LCBleGlzdGVudEluc3RhbmNlOiB1bmtub3duLCBhcmdzOiB1bmtub3duW10sIGNoYWluZWQ6IGJvb2xlYW4gKSB7XG5cblx0Y29uc3Qge1xuXHRcdGNvbnN0cnVjdEhhbmRsZXIsXG5cdFx0cHJvdG8sXG5cdFx0Y29uZmlnLFxuXHRcdFR5cGVOYW1lXG5cdH0gPSB0eXBlO1xuXG5cdGNvbnN0IHtcblx0XHRNb2RpZmljYXRpb25Db25zdHJ1Y3Rvcixcblx0XHRibG9ja0Vycm9ycyxcblx0XHRzdWJtaXRTdGFja1xuXHR9ID0gY29uZmlnO1xuXG5cdCBcblx0Y29uc3QgbWMgPSBNb2RpZmljYXRpb25Db25zdHJ1Y3RvcigpO1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0Y29uc3QgTW9kaWZpY2F0b3JUeXBlID0gY29uc3RydWN0SGFuZGxlcigpO1xuXG5cdE9iamVjdC5hc3NpZ24oIHNlbGYsIHtcblxuXHRcdHR5cGUsXG5cdFx0VHlwZU5hbWUsXG5cblx0XHRleGlzdGVudEluc3RhbmNlLFxuXG5cdFx0Z2V0IGFyZ3MgKCkge1xuXHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0fSxcblxuXHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yIDogbWMsXG5cdFx0TW9kaWZpY2F0b3JUeXBlLFxuXG5cdFx0Y29uZmlnLFxuXG5cdFx0cHJvdG9cblxuXHR9ICk7XG5cblx0aWYgKCBzdWJtaXRTdGFjayB8fCBjaGFpbmVkICkge1xuXHRcdGNvbnN0IHN0YWNrQWRkaXRpb246IHN0cmluZ1tdID0gY2hhaW5lZCA/IHNlbGYuZ2V0RXhpc3RlbnRBc3luY1N0YWNrKCBleGlzdGVudEluc3RhbmNlICkgOiBbXTtcblx0XHRjb25zdCB0aXRsZSA9IGBcXG48LS0gY3JlYXRpb24gb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXHRcdGlmICggc3VibWl0U3RhY2sgKSB7XG5cdFx0XHRnZXRTdGFjay5jYWxsKCBzZWxmLCB0aXRsZSwgc3RhY2tBZGRpdGlvbiApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZWxmLnN0YWNrID0gdGl0bGU7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBibG9ja0Vycm9ycyApIHtcblxuXHRcdGlmICggZXhpc3RlbnRJbnN0YW5jZSBpbnN0YW5jZW9mIEVycm9yICkge1xuXG5cdFx0XHRzZWxmLk1vZGlmaWNhdG9yVHlwZSA9IG1ha2VFcnJvck1vZGlmaWNhdG9yVHlwZSggVHlwZU5hbWUgKTtcblxuXHRcdFx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRcdFx0Y29uc3QgYmxvY2tFcnJvcnNFcnJvckluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXG5cdFx0XHR0aHJvdyBibG9ja0Vycm9yc0Vycm9ySW5zdGFuY2U7XG5cblx0XHR9XG5cdH1cblxuXHRzZWxmLmludm9rZVByZUhvb2tzKCk7XG5cblx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRpZiAoIGJsb2NrRXJyb3JzICkge1xuXG5cdFx0dHJ5IHtcblx0XHRcdC8vIENvbnN0cnVjdG9yIEludm9jYXRpb24gSXRzZWxmXG5cdFx0XHRjb25zdCBhbnN3ZXIgPSBuZXcgc2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yKCAuLi5hcmdzICk7XG5cdFx0XHQvLyBkZWJ1Z2dlcjtcblx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBhbnN3ZXI7XG5cblx0XHR9IGNhdGNoICggZXJyb3IgKSB7XG5cblx0XHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblxuXHRcdH1cblxuXHR9IGVsc2Uge1xuXG5cdFx0Ly8gQ29uc3RydWN0b3IgSW52b2NhdGlvbiBJdHNlbGZcblx0XHRjb25zdCBhbnN3ZXIgPSBuZXcgc2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yKCAuLi5hcmdzICk7XG5cdFx0Ly8gZGVidWdnZXI7XG5cdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IGFuc3dlcjtcblxuXHR9XG5cblxuXHRpZiAoIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBQcm9taXNlICkge1xuXG5cdFx0Y29uc3Qgd2FpdGVyID0gc2VsZi5tYWtlQXdhaXRlciggdHlwZSApO1xuXG5cdFx0b2RwKCB3YWl0ZXIsIFN5bWJvbENvbnN0cnVjdG9yTmFtZSwge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIFR5cGVOYW1lO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdHJldHVybiB3YWl0ZXI7XG5cblx0fVxuXG5cdHNlbGYucG9zdFByb2Nlc3NpbmcoIHR5cGUgKTtcblxuXHRyZXR1cm4gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZTtcblxufSBhcyBDb25zdHJ1Y3RvckZ1bmN0aW9uPHR5cGVvZiBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGU+O1xuXG5PYmplY3QuYXNzaWduKCBJbnN0YW5jZUNyZWF0b3IucHJvdG90eXBlLCBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGUgKTtcbiJdfQ==
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VDcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9JbnN0YW5jZUNyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFJYiwrQ0FFeUI7QUFFekIsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wscUJBQXFCLEVBQ3JCLHdCQUF3QixHQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUFxQztBQUNyQyw2RUFBMEU7QUFFMUUsbUNBQXFEO0FBRXJELCtEQUFnRTtBQUNoRSwrQ0FBNEM7QUFJNUMsTUFBTSxjQUFjLEdBQUc7SUFFdEIsTUFBTSxFQUNMLElBQUksRUFDSixnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLG1CQUFtQixFQUNuQixHQUFHLElBQUksQ0FBQztJQUVULE1BQU0sRUFDTCxVQUFVLEdBQ1YsR0FBRyxJQUFJLENBQUM7SUFFVCxNQUFNLFFBQVEsR0FBRztRQUNoQixJQUFJO1FBQ0osZ0JBQWdCO1FBQ2hCLElBQUk7UUFDSixtQkFBbUI7S0FDbkIsQ0FBQztJQUVGLFVBQVUsQ0FBQyxVQUFVLENBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBRSxDQUFDO0lBRWpELElBQUksQ0FBQyxVQUFVLENBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBRSxDQUFDO0FBRTVDLENBQUMsQ0FBQztBQUlGLE1BQU0sZUFBZSxHQUFHO0lBR3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztJQUNyQixNQUFNLEVBQ0wsaUJBQWlCLEdBQ2pCLEdBQUcsT0FBTyxDQUFDO0lBRVosTUFBTSxLQUFLLEdBQUcsSUFBQSxpQkFBUyxFQUFDLGlCQUFpQixDQUFVLENBQUM7SUFFcEQsTUFB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QWlCLEdBQUcsTUFBTSxDQUFDO1FBRWpDLENBQUM7UUFBQyxPQUFRLEtBQUssRUFBRyxDQUFDO1lBRWxCLElBQUksQ0FBQyxzQkFBc0IsQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV0QyxDQUFDO0lBRUYsQ0FBQztTQUFNLENBQUM7UUFHUCxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBRSxHQUFHLElBQUksQ0FBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7SUFFakMsQ0FBQztJQUdELElBQUssSUFBSSxDQUFDLGlCQUFpQixZQUFZLE9BQU8sRUFBRyxDQUFDO1FBRWpELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUUsSUFBSSxDQUFFLENBQUM7UUFFeEMsR0FBRyxDQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRTtZQUNuQyxHQUFHO2dCQUNGLE9BQU8sUUFBUSxDQUFDO1lBQ2pCLENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixPQUFPLE1BQU0sQ0FBQztJQUVmLENBQUM7SUFFRCxJQUFJLENBQUMsY0FBYyxDQUFFLElBQUksQ0FBRSxDQUFDO0lBRTVCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0FBRS9CLENBQW1ELENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0sQ0FBRSx1QkFBZSxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsQ0FBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiICBcbid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgX0ludGVybmFsX1RDXyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHtcblx0Y29uc3RhbnRzXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWVcbn0gPSBjb25zdGFudHM7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmNvbnN0IHtcblx0V1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4sXG59ID0gRXJyb3JzVHlwZXM7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Z2V0RXhpc3RlbnRBc3luY1N0YWNrLFxuXHRtYWtlRXJyb3JNb2RpZmljYXRvclR5cGUsXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHsgZ2V0U3RhY2sgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgdGhyb3dNb2RpZmljYXRpb25FcnJvciB9IGZyb20gJy4uL2Vycm9ycy90aHJvd01vZGlmaWNhdGlvbkVycm9yJztcblxuaW1wb3J0IHsgX2dldFByb3BzLCBfc2V0U2VsZiwgUHJvcHMgfSBmcm9tICcuL1Byb3BzJztcblxuaW1wb3J0IHsgbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IgfSBmcm9tICcuL0luc3RhbmNlTW9kaWZpY2F0b3InO1xuaW1wb3J0IHsgcGFyZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcGFyZW50JztcblxuLy8gaW1wb3J0IHsgTW5lbW9zeW5lIH0gZnJvbSAnLi9NbmVtb3N5bmUnO1xuICBcbmNvbnN0IGludm9rZVByZUhvb2tzID0gZnVuY3Rpb24gKCB0aGlzOiBhbnkgKSB7XG5cblx0Y29uc3Qge1xuXHRcdHR5cGUsXG5cdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRhcmdzLFxuXHRcdEluc3RhbmNlTW9kaWZpY2F0b3Jcblx0fSA9IHRoaXM7XG5cblx0Y29uc3Qge1xuXHRcdGNvbGxlY3Rpb24sXG5cdH0gPSB0eXBlO1xuXG5cdGNvbnN0IGhvb2tEYXRhID0ge1xuXHRcdHR5cGUsXG5cdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRhcmdzLFxuXHRcdEluc3RhbmNlTW9kaWZpY2F0b3Jcblx0fTtcblxuXHRjb2xsZWN0aW9uLmludm9rZUhvb2soICdwcmVDcmVhdGlvbicsIGhvb2tEYXRhICk7XG5cblx0dHlwZS5pbnZva2VIb29rKCAncHJlQ3JlYXRpb24nLCBob29rRGF0YSApO1xuXG59O1xuXG5cbiAgXG5jb25zdCBpbnZva2VQb3N0SG9va3MgPSBmdW5jdGlvbiAoIHRoaXM6IGFueSApIHtcblxuXHQgXG5cdGNvbnN0IGNyZWF0b3IgPSB0aGlzO1xuXHRjb25zdCB7XG5cdFx0aW5oZXJpdGVkSW5zdGFuY2UsXG5cdH0gPSBjcmVhdG9yO1xuXG5cdGNvbnN0IHByb3BzID0gX2dldFByb3BzKGluaGVyaXRlZEluc3RhbmNlKSBhcyBQcm9wcztcblxuXHRjb25zdCB7XG5cdFx0X190eXBlX186IHR5cGUsXG5cdFx0X19wYXJlbnRfXzogZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRfX2FyZ3NfXzogYXJncyxcblx0fSA9IHByb3BzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rVHlwZSA9IGluaGVyaXRlZEluc3RhbmNlIGluc3RhbmNlb2YgRXJyb3IgP1xuXHRcdCdjcmVhdGlvbkVycm9yJyA6ICdwb3N0Q3JlYXRpb24nO1xuXG5cdGNvbnN0IGhvb2tEYXRhID0ge1xuXHRcdHR5cGUsXG5cdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRpbmhlcml0ZWRJbnN0YW5jZSxcblx0XHRhcmdzLFxuXHRcdGNyZWF0b3Jcblx0fTtcblxuXHRyZXR1cm4ge1xuXG5cdFx0dHlwZSA6IHR5cGUuaW52b2tlSG9vayggaG9va1R5cGUsIGhvb2tEYXRhICksXG5cblx0XHRjb2xsZWN0aW9uIDogY29sbGVjdGlvbi5pbnZva2VIb29rKCBob29rVHlwZSwgaG9va0RhdGEgKSxcblxuXHR9O1xuXG59O1xuXG5cbiAgXG5jb25zdCBwb3N0UHJvY2Vzc2luZyA9IGZ1bmN0aW9uICggdGhpczogYW55LCBjb250aW51YXRpb25PZjogYW55ICkge1xuXHQgXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXHRjb25zdCB7XG5cdFx0c3RhY2ssXG5cdFx0dHlwZToge1xuXHRcdFx0aXNTdWJUeXBlLFxuXHRcdFx0Y29uZmlnOiB7XG5cdFx0XHRcdHN0cmljdENoYWluLFxuXHRcdFx0XHRibG9ja0Vycm9yc1xuXHRcdFx0fVxuXHRcdH1cblx0fSA9IHNlbGY7XG5cblx0aWYgKCAhc2VsZi5pbmhlcml0ZWRJbnN0YW5jZS5jb25zdHJ1Y3RvciApIHtcblx0XHRjb25zdCBtc2cgPSAnc2hvdWxkIGluaGVyaXQgZnJvbSBtbmVtb25pY2EgaW5zdGFuY2UnO1xuXHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHN0YWNrICkgKTtcblx0fVxuXG5cdGlmICggIXNlbGYuaW5oZXJpdGVkSW5zdGFuY2UuY29uc3RydWN0b3JbIFN5bWJvbENvbnN0cnVjdG9yTmFtZSBdICkge1xuXHRcdGNvbnN0IG1zZyA9ICdzaG91bGQgaW5oZXJpdCBmcm9tIG1uZW1vbmljYSBpbnN0YW5jZSc7XG5cdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc3RhY2sgKSApO1xuXHR9XG5cblx0aWYgKCBjb250aW51YXRpb25PZiAmJiAhKCBzZWxmLmluaGVyaXRlZEluc3RhbmNlIGluc3RhbmNlb2YgY29udGludWF0aW9uT2YgKSApIHtcblx0XHQvLyBkZWJ1Z2dlcjtcblx0XHRjb25zdCBpY24gPSBzZWxmLmluaGVyaXRlZEluc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWU7XG5cdFx0Y29uc3QgbXNnID0gYHNob3VsZCBpbmhlcml0IGZyb20gJHtjb250aW51YXRpb25PZi5UeXBlTmFtZX0gYnV0IGdvdCAke2ljbn1gO1xuXHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHN0YWNrICkgKTtcblx0XHQvLyB0aHJvdyBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4obXNnLCBzZWxmLnN0YWNrKTtcblx0fVxuXG5cdGlmIChpc1N1YlR5cGUgJiYgc3RyaWN0Q2hhaW4pIHtcblx0XHRcblx0XHRpZiAoc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIEVycm9yICYmICFibG9ja0Vycm9ycykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHByZXYgPSBwYXJlbnQoc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSkgYXMgYW55O1xuXHRcdGlmICghcHJldiB8fCAocHJldiAmJiAhcHJldi5jb25zdHJ1Y3RvcikpIHtcblx0XHRcdGNvbnN0IG1zZyA9ICdzaG91bGQgaW5oZXJpdCBmcm9tIHNvbWUgaW5zdGFuY2UnO1xuXHRcdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc3RhY2sgKSApO1xuXHRcdH1cblx0XHRjb25zdCBwYXJlbnROYW1lID0gcHJldi5jb25zdHJ1Y3Rvci5uYW1lO1xuXHRcdGNvbnN0IHBhcmVudFR5cGVOYW1lID0gc2VsZi50eXBlLnBhcmVudFR5cGUuVHlwZU5hbWU7XG5cdFx0aWYgKHBhcmVudE5hbWUgIT09IHBhcmVudFR5cGVOYW1lKSB7XG5cdFx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke3BhcmVudFR5cGVOYW1lfSBidXQgbWFkZSBvbiAke3BhcmVudE5hbWV9YDtcblx0XHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHN0YWNrICkgKTtcblx0XHR9XG5cblx0fVxuXG5cdF9zZXRTZWxmKHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UpO1xuXG5cdHNlbGYuaW52b2tlUG9zdEhvb2tzKCk7XG5cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlblNwZWMge1xuXHRzdWJ0eXBlOiBvYmplY3Q7XG5cdGFyZ3M6IHVua25vd25bXTtcblx0bmFtZT86IHN0cmluZztcbn1cblxuICBcbmNvbnN0IGFkZFRoZW4gPSBmdW5jdGlvbiAoIHRoaXM6IGFueSwgdGhlbjogVGhlblNwZWMgKSB7XG5cblx0IFxuXHRjb25zdCBzZWxmID0gdGhpcztcblxuXHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZVxuXHRcdC50aGVuKCAoKSA9PiB7XG5cdFx0XHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID1cblx0XHRcdFx0bmV3IEluc3RhbmNlQ3JlYXRvcihcblx0XHRcdFx0XHR0aGVuLnN1YnR5cGUsXG5cdFx0XHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSxcblx0XHRcdFx0XHR0aGVuLmFyZ3MsXG5cdFx0XHRcdFx0Ly8gd2FzIGNoYWluZWQgOlxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHQvLyBzZWxmLmV4aXN0ZW50SW5zdGFuY2Vcblx0XHRcdFx0KSBhcyB1bmtub3duIGFzIFByb21pc2U8dW5rbm93bj47XG5cdFx0XHRyZXR1cm4gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZTtcblx0XHR9ICk7XG5cbn07XG5cbmNvbnN0IG1ha2VBd2FpdGVyID0gZnVuY3Rpb24gKCB0aGlzOiBhbnksIHR5cGU6IGFueSwgdGhlbj86IFRoZW5TcGVjICkge1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCBpbnN0YW5jZTogdW5rbm93biApID0+IHtcblxuXHRcdFx0aWYgKCB0eXBlb2YgaW5zdGFuY2UgIT09ICdvYmplY3QnICkge1xuXHRcdFx0XHRpZiAoIHNlbGYuY29uZmlnLmF3YWl0UmV0dXJuICkge1xuXHRcdFx0XHRcdGNvbnN0IG1zZyA9IGBzaG91bGQgaW5oZXJpdCBmcm9tICR7dHlwZS5UeXBlTmFtZX06IHNlZW1zIGFzeW5jICR7dHlwZS5UeXBlTmFtZX0gaGFzIG5vIHJldHVybiBzdGF0ZW1lbnRgO1xuXHRcdFx0XHRcdHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzZWxmLnN0YWNrICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGluc3RhbmNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggISggaW5zdGFuY2UgaW5zdGFuY2VvZiBzZWxmLnR5cGUgKSApIHtcblx0XHRcdFx0IFxuXHRcdFx0XHRjb25zdCBpY24gPSAoaW5zdGFuY2UgYXMgYW55KS5jb25zdHJ1Y3Rvci5uYW1lO1xuXHRcdFx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke3R5cGUuVHlwZU5hbWV9IGJ1dCBnb3QgJHtpY259YDtcblx0XHRcdFx0dGhyb3cgbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHNlbGYuc3RhY2sgKTtcblx0XHRcdH1cblxuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXG5cdFx0XHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhzZWxmLmluaGVyaXRlZEluc3RhbmNlKSBhcyBQcm9wcztcblxuXHRcdFx0IFxuXHRcdFx0aWYgKCBwcm9wcy5fX3NlbGZfXyAhPT0gKHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgYXMgdW5rbm93bikgKSB7XG5cdFx0XHRcdHNlbGYucG9zdFByb2Nlc3NpbmcoIHR5cGUgKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cblx0XHR9IClcblx0XHQuY2F0Y2goICggZXJyb3I6IEVycm9yICkgPT4ge1xuXHRcdFx0aWYgKCBzZWxmLmNvbmZpZy5ibG9ja0Vycm9ycyApIHtcblx0XHRcdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBlcnJvciApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdGlmICggdGhlbiApIHtcblx0XHRzZWxmLmFkZFRoZW4oIHRoZW4gKTtcblx0fVxuXG5cdHR5cGUuc3VidHlwZXMuZm9yRWFjaCggKCBzdWJ0eXBlOiBvYmplY3QsIG5hbWU6IHN0cmluZyApID0+IHtcblx0XHQgXG5cdFx0KHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgYXMgYW55KVsgbmFtZSBdID0gKCAuLi5hcmdzOiB1bmtub3duW10gKSA9PiB7XG5cdFx0XHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gc2VsZi5tYWtlQXdhaXRlciggc3VidHlwZSwge1xuXHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRzdWJ0eXBlLFxuXHRcdFx0XHRhcmdzLFxuXHRcdFx0fSApO1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fTtcblx0fSApO1xuXG5cdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXG59O1xuXG5jb25zdCBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGUgPSB7XG5cdGdldEV4aXN0ZW50QXN5bmNTdGFjayxcblx0cG9zdFByb2Nlc3NpbmcsXG5cdG1ha2VBd2FpdGVyLFxuXHRhZGRUaGVuLFxuXHRpbnZva2VQcmVIb29rcyxcblx0aW52b2tlUG9zdEhvb2tzLFxuXHR0aHJvd01vZGlmaWNhdGlvbkVycm9yXG59O1xuXG4gIFxuZXhwb3J0IGNvbnN0IEluc3RhbmNlQ3JlYXRvciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIGV4aXN0ZW50SW5zdGFuY2U6IHVua25vd24sIGFyZ3M6IHVua25vd25bXSwgY2hhaW5lZDogYm9vbGVhbiApIHtcblxuXHRjb25zdCB7XG5cdFx0Y29uc3RydWN0SGFuZGxlcixcblx0XHRwcm90byxcblx0XHRjb25maWcsXG5cdFx0VHlwZU5hbWVcblx0fSA9IHR5cGU7XG5cblx0Y29uc3Qge1xuXHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yLFxuXHRcdGJsb2NrRXJyb3JzLFxuXHRcdHN1Ym1pdFN0YWNrXG5cdH0gPSBjb25maWc7XG5cblx0IFxuXHRjb25zdCBtYyA9IE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yKCk7XG5cblx0IFxuXHRjb25zdCBzZWxmID0gdGhpcztcblxuXHRjb25zdCBNb2RpZmljYXRvclR5cGUgPSBjb25zdHJ1Y3RIYW5kbGVyKCk7XG5cblx0T2JqZWN0LmFzc2lnbiggc2VsZiwge1xuXG5cdFx0dHlwZSxcblx0XHRUeXBlTmFtZSxcblxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cblx0XHRnZXQgYXJncyAoKSB7XG5cdFx0XHRyZXR1cm4gYXJncztcblx0XHR9LFxuXG5cdFx0TW9kaWZpY2F0aW9uQ29uc3RydWN0b3IgOiBtYyxcblx0XHRNb2RpZmljYXRvclR5cGUsXG5cblx0XHRjb25maWcsXG5cblx0XHRwcm90b1xuXG5cdH0gKTtcblxuXHRpZiAoIHN1Ym1pdFN0YWNrIHx8IGNoYWluZWQgKSB7XG5cdFx0Y29uc3Qgc3RhY2tBZGRpdGlvbjogc3RyaW5nW10gPSBjaGFpbmVkID8gc2VsZi5nZXRFeGlzdGVudEFzeW5jU3RhY2soIGV4aXN0ZW50SW5zdGFuY2UgKSA6IFtdO1xuXHRcdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBjcmVhdGlvbiBvZiBbICR7VHlwZU5hbWV9IF0gdHJhY2VkIC0tPmA7XG5cdFx0aWYgKCBzdWJtaXRTdGFjayApIHtcblx0XHRcdGdldFN0YWNrLmNhbGwoIHNlbGYsIHRpdGxlLCBzdGFja0FkZGl0aW9uICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHNlbGYuc3RhY2sgPSB0aXRsZTtcblx0XHR9XG5cdH1cblxuXHRpZiAoIGJsb2NrRXJyb3JzICkge1xuXG5cdFx0aWYgKCBleGlzdGVudEluc3RhbmNlIGluc3RhbmNlb2YgRXJyb3IgKSB7XG5cblx0XHRcdHNlbGYuTW9kaWZpY2F0b3JUeXBlID0gbWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlKCBUeXBlTmFtZSApO1xuXG5cdFx0XHRzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IgPSBtYWtlSW5zdGFuY2VNb2RpZmljYXRvciggc2VsZiApO1xuXG5cdFx0XHRjb25zdCBibG9ja0Vycm9yc0Vycm9ySW5zdGFuY2UgPSBuZXcgc2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yKCAuLi5hcmdzICk7XG5cblx0XHRcdHRocm93IGJsb2NrRXJyb3JzRXJyb3JJbnN0YW5jZTtcblxuXHRcdH1cblx0fVxuXG5cdHNlbGYuaW52b2tlUHJlSG9va3MoKTtcblxuXHRzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IgPSBtYWtlSW5zdGFuY2VNb2RpZmljYXRvciggc2VsZiApO1xuXG5cdGlmICggYmxvY2tFcnJvcnMgKSB7XG5cblx0XHR0cnkge1xuXHRcdFx0Ly8gQ29uc3RydWN0b3IgSW52b2NhdGlvbiBJdHNlbGZcblx0XHRcdGNvbnN0IGFuc3dlciA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoIC4uLmFyZ3MgKTtcblx0XHRcdC8vIGRlYnVnZ2VyO1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IGFuc3dlcjtcblxuXHRcdH0gY2F0Y2ggKCBlcnJvciApIHtcblxuXHRcdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBlcnJvciApO1xuXG5cdFx0fVxuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBDb25zdHJ1Y3RvciBJbnZvY2F0aW9uIEl0c2VsZlxuXHRcdGNvbnN0IGFuc3dlciA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoIC4uLmFyZ3MgKTtcblx0XHQvLyBkZWJ1Z2dlcjtcblx0XHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gYW5zd2VyO1xuXG5cdH1cblxuXG5cdGlmICggc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIFByb21pc2UgKSB7XG5cblx0XHRjb25zdCB3YWl0ZXIgPSBzZWxmLm1ha2VBd2FpdGVyKCB0eXBlICk7XG5cblx0XHRvZHAoIHdhaXRlciwgU3ltYm9sQ29uc3RydWN0b3JOYW1lLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gVHlwZU5hbWU7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0cmV0dXJuIHdhaXRlcjtcblxuXHR9XG5cblx0c2VsZi5wb3N0UHJvY2Vzc2luZyggdHlwZSApO1xuXG5cdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXG59IGFzIF9JbnRlcm5hbF9UQ188dHlwZW9mIEluc3RhbmNlQ3JlYXRvclByb3RvdHlwZT47XG5cbk9iamVjdC5hc3NpZ24oIEluc3RhbmNlQ3JlYXRvci5wcm90b3R5cGUsIEluc3RhbmNlQ3JlYXRvclByb3RvdHlwZSApO1xuIl19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _Internal_TC_ } from '../../types';
|
|
2
|
+
export declare const Mnemosyne: _Internal_TC_<object>;
|
|
2
3
|
declare const _default: {
|
|
3
4
|
readonly createMnemosyne: (Uranus: unknown, exposeInstanceMethods: boolean) => object;
|
|
4
|
-
readonly prepareSubtypeForConstruction: (subtypeName: string, inheritedInstance: unknown) =>
|
|
5
|
+
readonly prepareSubtypeForConstruction: (subtypeName: string, inheritedInstance: unknown) => _Internal_TC_<{
|
|
5
6
|
getExistentAsyncStack: (existentInstance: import("../utils").asyncStack) => unknown;
|
|
6
7
|
postProcessing: (this: any, continuationOf: any) => void;
|
|
7
8
|
makeAwaiter: (this: any, type: any, then?: import("./InstanceCreator").ThenSpec) => any;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Mnemosyne = void 0;
|
|
3
4
|
const constants_1 = require("../../constants");
|
|
4
5
|
const { odp, SymbolConstructorName, MNEMONICA, } = constants_1.constants;
|
|
5
6
|
const utils_1 = require("../utils");
|
|
@@ -148,7 +149,7 @@ const mnemosyneProxyHandlerGet = (target, prop, receiver) => {
|
|
|
148
149
|
const subtype = prepareSubtypeForConstruction(prop, receiver);
|
|
149
150
|
return subtype || result;
|
|
150
151
|
};
|
|
151
|
-
|
|
152
|
+
exports.Mnemosyne = function (mnemonica, exposeInstanceMethods) {
|
|
152
153
|
const instance = this;
|
|
153
154
|
const Mnemonica = function () {
|
|
154
155
|
odp(this, SymbolConstructorName, {
|
|
@@ -185,7 +186,7 @@ const Mnemosyne = function (mnemonica, exposeInstanceMethods) {
|
|
|
185
186
|
};
|
|
186
187
|
const createMnemosyne = function (Uranus, exposeInstanceMethods) {
|
|
187
188
|
const uranus = reflectPrimitiveWrappers(Uranus);
|
|
188
|
-
const mnemosyne = new Mnemosyne(uranus, exposeInstanceMethods);
|
|
189
|
+
const mnemosyne = new exports.Mnemosyne(uranus, exposeInstanceMethods);
|
|
189
190
|
const mnemosyneProxy = new Proxy(mnemosyne, {
|
|
190
191
|
get: mnemosyneProxyHandlerGet
|
|
191
192
|
});
|
|
@@ -202,4 +203,4 @@ exports.default = {
|
|
|
202
203
|
return getDefaultPrototype;
|
|
203
204
|
},
|
|
204
205
|
};
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW5lbW9zeW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9NbmVtb3N5bmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUdiLCtDQUE0QztBQUM1QyxNQUFNLEVBQ0wsR0FBRyxFQUNILHFCQUFxQixFQUVyQixTQUFTLEdBRVQsR0FBRyxxQkFBUyxDQUFDO0FBRWQsb0NBQWtDO0FBQ2xDLE1BQU0sRUFDTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLGlEQUE4QztBQUM5QywrQ0FBNEM7QUFDNUMsMkNBQXdDO0FBRXhDLHlFQUFrRTtBQUVsRSx1REFBb0Q7QUFFcEQsbUNBQTJDO0FBRTNDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO0lBQ2hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFJRixNQUFNLG1CQUFtQixHQUFHO0lBRTNCLE9BQU87UUFDTixPQUFPO1lBQ04sT0FBTyxJQUFBLGlCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDSCxPQUFPLFVBQXdCLEdBQUcsSUFBMkI7WUFDNUQsT0FBTyxJQUFBLFdBQUksRUFBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNMLE9BQU8sVUFBd0IscUJBQTZCO1lBQzNELE9BQU8sSUFBQSxlQUFNLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSTtRQUVILE1BQU0sS0FBSyxHQUFHLElBQUEs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LENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFHRCxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFO1FBQzVDLEdBQUc7WUFDRixPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7S0FDRCxDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBSXpDLENBQWdDLENBQUM7QUFFakMsTUFBTSxlQUFlLEdBQUcsVUFBVSxNQUFlLEVBQUUscUJBQThCO0lBVWhGLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sY0FBYyxHQUFHLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtRQUMzQyxHQUFHLEVBQUcsd0JBQXdCO0tBQzlCLENBQUMsQ0FBQztJQUVILE9BQU8sY0FBYyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLGtCQUFlO0lBQ2QsSUFBSSxlQUFlO1FBQ2xCLE9BQU8sZUFBZSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLDZCQUE2QjtRQUNoQyxPQUFPLDZCQUE2QixDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFJLG1CQUFtQjtRQUN0QixPQUFPLG1CQUFtQixDQUFDO0lBQzVCLENBQUM7Q0FPRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZ1bmN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsXG5cblx0TU5FTU9OSUNBLFxuXG59ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdGdldFR5cGVDaGVja2VyLFxuXHRmaW5kU3ViVHlwZUZyb21QYXJlbnQsXG5cdHJlZmxlY3RQcmltaXRpdmVXcmFwcGVyc1xufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IGV4dHJhY3QgfSBmcm9tICcuLi8uLi91dGlscy9leHRyYWN0JztcbmltcG9ydCB7IHBhcmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BhcmVudCc7XG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnLi4vLi4vdXRpbHMvcGljayc7XG5cbmltcG9ydCBleGNlcHRpb25Db25zdHJ1Y3RvciBmcm9tICcuLi9lcnJvcnMvZXhjZXB0aW9uQ29uc3RydWN0b3InO1xuXG5pbXBvcnQgeyBJbnN0YW5jZUNyZWF0b3IgfSBmcm9tICcuL0luc3RhbmNlQ3JlYXRvcic7XG5cbmltcG9ydCB7IF9nZXRQcm9wcywgUHJvcHMgfSBmcm9tICcuL1Byb3BzJztcblxuY29uc3QgZ2V0RGVmYXVsdFByb3RvdHlwZSA9ICgpID0+IHtcblx0cmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbCk7XG59O1xuXG4vLyBjb25zdCBJbnN0YW5jZVJvb3RzID0gbmV3IFdlYWtNYXA7XG5cbmNvbnN0IE1uZW1vbmljYVByb3RvUHJvcHMgPSB7XG5cblx0ZXh0cmFjdCAoKSB7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBvYmplY3QpIHtcblx0XHRcdHJldHVybiBleHRyYWN0KHRoaXMpO1xuXHRcdH07XG5cdH0sXG5cblx0cGljayAoKSB7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBvYmplY3QsIC4uLmFyZ3M6IChzdHJpbmcgfCBzdHJpbmdbXSlbXSkge1xuXHRcdFx0cmV0dXJuIHBpY2sodGhpcywgLi4uYXJncyk7XG5cdFx0fTtcblx0fSxcblxuXHRwYXJlbnQgKCkge1xuXHRcdHJldHVybiBmdW5jdGlvbiAodGhpczogb2JqZWN0LCBjb25zdHJ1Y3Rvckxvb2t1cFBhdGg6IHN0cmluZykge1xuXHRcdFx0cmV0dXJuIHBhcmVudCh0aGlzLCBjb25zdHJ1Y3Rvckxvb2t1cFBhdGgpO1xuXHRcdH07XG5cdH0sXG5cblx0Y2xvbmUgKHRoaXM6IHsgZm9yazogKCkgPT4gb2JqZWN0IH0pIHtcblx0XHRyZXR1cm4gdGhpcy5mb3JrKCk7XG5cdH0sXG5cblx0Zm9yayAodGhpczogb2JqZWN0KSB7XG5cblx0XHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyh0aGlzKSBhcyBQcm9wcztcblxuXHRcdGNvbnN0IHtcblx0XHRcdF9fdHlwZV9fOiB0eXBlLFxuXHRcdFx0X19jb2xsZWN0aW9uX186IGNvbGxlY3Rpb24sXG5cdFx0XHRfX3BhcmVudF9fOiBleGlzdGVudEluc3RhbmNlLFxuXHRcdFx0X19hcmdzX18sXG5cdFx0XHRfX3NlbGZfXyxcblx0XHR9ID0gcHJvcHM7XG5cblx0XHRjb25zdCB7XG5cdFx0XHRpc1N1YlR5cGUsXG5cdFx0XHRUeXBlTmFtZVxuXHRcdH0gPSB0eXBlO1xuXG5cdFx0Ly8gJ2Z1bmN0aW9uJywgY2F1c2UgbWlnaHQgYmUgY2FsbGVkIHdpdGggJ25ldydcblx0XHQgXG5cdFx0cmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBvYmplY3QsIC4uLmZvcmtBcmdzOiB1bmtub3duW10pIHtcblxuXHRcdFx0bGV0IGZvcmtlZDtcblx0XHRcdGNvbnN0IENvbnN0cnVjdG9yID0gaXNTdWJUeXBlID9cblx0XHRcdFx0ZXhpc3RlbnRJbnN0YW5jZSA6XG5cdFx0XHRcdGNvbGxlY3Rpb247XG5cblx0XHRcdGNvbnN0IGFyZ3MgPSBmb3JrQXJncy5sZW5ndGggPyBmb3JrQXJncyA6IF9fYXJnc19fO1xuXG5cblx0XHRcdGlmICh0aGlzID09PSBfX3NlbGZfXykge1xuXHRcdFx0XHQgXG5cdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgIHRoaXMgaXMgZGVmaW5pdGVseSBhIGNvbnN0cnVjdG9yXG5cdFx0XHRcdGZvcmtlZCA9IG5ldyAoQ29uc3RydWN0b3JbIFR5cGVOYW1lIF0pKC4uLmFyZ3MpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gZm9yay5jYWxsID8gbGV0J3MgZG8gaXQgIVxuXHRcdFx0XHRmb3JrZWQgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKHR5cGUsIHJlZmxlY3RQcmltaXRpdmVXcmFwcGVycyh0aGlzKSwgYXJncyk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBmb3JrZWQ7XG5cblx0XHR9O1xuXHR9LFxuXG5cdFsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gKCkge1xuXHRcdHJldHVybiBNTkVNT05JQ0E7XG5cdH0sXG5cblx0ZXhjZXB0aW9uICgpIHtcblx0XHQgXG5cdFx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uIChlcnJvcjogRXJyb3IsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuXHRcdFx0Y29uc3QgdGFyZ2V0ID0gbmV3LnRhcmdldDtcblx0XHRcdHJldHVybiBleGNlcHRpb25Db25zdHJ1Y3Rvci5jYWxsKHNlbGYsIHRhcmdldCwgZXJyb3IsIC4uLmFyZ3MpO1xuXHRcdH07XG5cdH0sXG5cblx0c2libGluZyAoKSB7XG5cdFx0IFxuXHRcdGNvbnN0IHNpYmxpbmdzID0gKFNpYmxpbmdUeXBlTmFtZTogc3RyaW5nKSA9PiB7XG5cblx0XHRcdGNvbnN0IHByb3BzID0gX2dldFByb3BzKHRoaXMpIGFzIFByb3BzO1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRfX2NvbGxlY3Rpb25fXzogY29sbGVjdGlvbixcblx0XHRcdH0gPSBwcm9wcztcblx0XHRcdGNvbnN0IHNpYmxpbmc6IHVua25vd24gPSBjb2xsZWN0aW9uWyBTaWJsaW5nVHlwZU5hbWUgXTtcblx0XHRcdHJldHVybiBzaWJsaW5nO1xuXHRcdH07XG5cblx0XHRyZXR1cm4gbmV3IFByb3h5KHNpYmxpbmdzLCB7XG5cdFx0XHRnZXQgKF8sIHByb3A6IHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc2libGluZ3MocHJvcCk7XG5cdFx0XHR9LFxuXHRcdFx0YXBwbHkgKF8sIF9fLCBhcmdzLCkge1xuXHRcdFx0XHRyZXR1cm4gc2libGluZ3MoYXJnc1sgMCBdKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG59O1xuXG5jb25zdCBzdGF0aWNQcm9wcyA9IFtcblxuXHQvLyBidWlsdGluczogZnVuY3Rpb25zICsgUHJvbWlzZXNcblx0J2NvbnN0cnVjdG9yJyxcblx0J3Byb3RvdHlwZScsXG5cdCd0aGVuJyxcblxuXHQvLyBidWlsdGluczogZXJyb3JzXG5cdCdzdGFjaycsXG5cdCdtZXNzYWdlJyxcblx0J2RvbWFpbicsXG5cblx0Ly8gYnVpbHRpbnM6IEV2ZW50RW1pdHRlclxuXHQnb24nLFxuXHQnb25jZScsXG5cdCdvZmYnLFxuXG5cdC8vIG1vY2hhICsgY2hhaSA9PiBidWc6IC4vdXRpbHMuanMgLmZpbmRTdWJUeXBlRnJvbVBhcmVudCAnaW5zcGVjdCdcblx0J2luc3BlY3QnLFxuXHQnc2hvd0RpZmYnLFxuXG5dXG5cdC5jb25jYXQoT2JqZWN0LmtleXMoTW5lbW9uaWNhUHJvdG9Qcm9wcykpXG5cdC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlwZSkpXG5cdC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoRnVuY3Rpb24ucHJvdG90eXBlKSlcblx0LnJlZHVjZSgob2JqLCBrZXkpID0+IHtcblx0XHRvYmpbIGtleSBdID0gdHJ1ZTtcblx0XHRyZXR1cm4gb2JqO1xuXHR9LCBPYmplY3QuY3JlYXRlKG51bGwpKTtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBvbmx5LWFycm93LWZ1bmN0aW9uc1xuY29uc3QgbWFrZVN1YlR5cGVQcm94eSA9IGZ1bmN0aW9uIChzdWJ0eXBlOiBhbnksIGluaGVyaXRlZEluc3RhbmNlOiB1bmtub3duKSB7XG5cblx0Y29uc3Qgc3VidHlwZVByb3h5ID0gbmV3IFByb3h5KEluc3RhbmNlQ3JlYXRvciwge1xuXG5cdFx0Z2V0IChUYXJnZXQsIF9wcm9wKSB7XG5cblx0XHRcdGlmIChfcHJvcCA9PT0gU3ltYm9sLmhhc0luc3RhbmNlKSB7XG5cdFx0XHRcdHJldHVybiBnZXRUeXBlQ2hlY2tlcihzdWJ0eXBlLlR5cGVOYW1lKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIFJlZmxlY3QuZ2V0KFRhcmdldCwgX3Byb3ApO1xuXG5cdFx0fSxcblxuXHRcdGNvbnN0cnVjdCAoVGFyZ2V0LCBfYXJncykge1xuXHRcdFx0cmV0dXJuIG5ldyBUYXJnZXQoc3VidHlwZSwgaW5oZXJpdGVkSW5zdGFuY2UsIF9hcmdzKTtcblx0XHR9LFxuXG5cdFx0YXBwbHkgKFRhcmdldCwgdGhpc0FyZywgX2FyZ3MpIHtcblxuXHRcdFx0aWYgKHRoaXNBcmcgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHR0aGlzQXJnID0gaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGV4aXN0ZW50SW5zdGFuY2UgPSByZWZsZWN0UHJpbWl0aXZlV3JhcHBlcnModGhpc0FyZyk7XG5cblx0XHRcdGNvbnN0IGVudGl0eSA9IG5ldyBUYXJnZXQoc3VidHlwZSwgZXhpc3RlbnRJbnN0YW5jZSwgX2FyZ3MpO1xuXHRcdFx0cmV0dXJuIGVudGl0eTtcblx0XHR9LFxuXG5cdH0pO1xuXG5cdHJldHVybiBzdWJ0eXBlUHJveHk7XG59O1xuXG5jb25zdCBwcmVwYXJlU3VidHlwZUZvckNvbnN0cnVjdGlvbiA9IGZ1bmN0aW9uIChzdWJ0eXBlTmFtZTogc3RyaW5nLCBpbmhlcml0ZWRJbnN0YW5jZTogdW5rbm93bikge1xuXHQvLyBwcm90b3R5cGUgb2YgcHJveHlcblx0Y29uc3QgcHJvcEluc3RhbmNlID0gUmVmbGVjdC5nZXRQcm90b3R5cGVPZihpbmhlcml0ZWRJbnN0YW5jZSBhcyBvYmplY3QpIGFzIG9iamVjdDtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhwcm9wSW5zdGFuY2UpIGFzIFByb3BzO1xuXHRpZiAoIXByb3BzKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IHtcblx0XHRfX3R5cGVfXzoge1xuXHRcdFx0Y29uZmlnOiB7XG5cdFx0XHRcdHN0cmljdENoYWluXG5cdFx0XHR9LFxuXHRcdFx0c3VidHlwZXNcblx0XHR9LFxuXHR9ID0gcHJvcHM7XG5cblxuXHRjb25zdCBzdWJ0eXBlID0gc3VidHlwZXMuaGFzKHN1YnR5cGVOYW1lKSA/XG5cdFx0c3VidHlwZXMuZ2V0KHN1YnR5cGVOYW1lKSA6XG5cdFx0c3RyaWN0Q2hhaW4gP1xuXHRcdFx0dW5kZWZpbmVkIDpcblx0XHRcdGZpbmRTdWJUeXBlRnJvbVBhcmVudChpbmhlcml0ZWRJbnN0YW5jZSBhcyBvYmplY3QsIHN1YnR5cGVOYW1lKTtcblxuXHRyZXR1cm4gc3VidHlwZSA/IG1ha2VTdWJUeXBlUHJveHkoc3VidHlwZSwgaW5oZXJpdGVkSW5zdGFuY2UpIDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgbW5lbW9zeW5lUHJveHlIYW5kbGVyR2V0ID0gKHRhcmdldDogb2JqZWN0LCBwcm9wOiBzdHJpbmcsIHJlY2VpdmVyOiB1bmtub3duKSA9PiB7XG5cblx0Ly8gTm9kZS5qcyAyMiBSZWZsZWN0LmdldCBCZWhhdmlvdXIgQ2hhbmdlZCBoZXJlXG5cdC8vIGNhdXNlIHNvbWV0aGluZyBnb25lIHdyb25nIHdpdGggcHJvcCBhc3NpZ25tZW50XG5cdC8vIHNvIG5vdyBpZiB3ZSBuZWVkIC5zdGFjaywgd2Ugc2hvdWxkIGF2b2lkIHJlY2VpdmVyIGhlcmVcblx0Ly8gbmF2ZSBub3QgeWV0IGNoZWNrZWQgb3RoZXIgc3RhdGljUHJvcHMsXG5cdC8vIGp1c3QgZml4ZWQgdGhpcyBiZWxvd1xuXHQvLyB3aGlsZSB1c2luZyBjb25kaXRpb25hbCBmb3Igc3RhdGljUHJvcHNcblx0Y29uc3QgcmVzdWx0ID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG5cblx0aWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N5bWJvbCcpIHtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0aWYgKHN0YXRpY1Byb3BzWyBwcm9wIF0pIHtcblx0XHQvKlxuXHRcdGNvbnN0IG1heUJlUmVzdWx0ID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wKTtcblx0XHRpZiAobWF5QmVSZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIG1heUJlUmVzdWx0O1xuXHRcdH1cblx0XHQqL1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRjb25zdCBzdWJ0eXBlID0gcHJlcGFyZVN1YnR5cGVGb3JDb25zdHJ1Y3Rpb24ocHJvcCwgcmVjZWl2ZXIpO1xuXHRyZXR1cm4gc3VidHlwZSB8fCByZXN1bHQ7XG59O1xuXG5jb25zdCBNbmVtb3N5bmUgPSBmdW5jdGlvbiAodGhpczogb2JqZWN0LCBtbmVtb25pY2E6IG9iamVjdCwgZXhwb3NlSW5zdGFuY2VNZXRob2RzOiBib29sZWFuKSB7XG5cblx0IFxuXHRjb25zdCBpbnN0YW5jZSA9IHRoaXM7XG5cblx0Y29uc3QgTW5lbW9uaWNhID0gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCkge1xuXHRcdG9kcCh0aGlzLCBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiBNTkVNT05JQ0E7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0gYXMgQ29uc3RydWN0b3JGdW5jdGlvbjx0eXBlb2YgTW5lbW9uaWNhUHJvdG9Qcm9wcz47XG5cdFxuXHQvLyB0aGlzIHRocm93cyBhbiBlcnJvclxuXHRPYmplY3Quc2V0UHJvdG90eXBlT2YoTW5lbW9uaWNhLnByb3RvdHlwZSwgbW5lbW9uaWNhKTtcblx0Ly8gd2hpbGUgdGhpcyBqdXN0IHJldHVybnMgZmFsc2UsIHNpbGVudGx5IC4uLiB1bmZvcnR1bmF0ZWx5XG5cdC8vIFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoTW5lbW9uaWNhLnByb3RvdHlwZSwgbW5lbW9uaWNhKTtcblxuXHQvLyBPbmx5IGFkZCBNbmVtb25pY2FQcm90b1Byb3BzIG1ldGhvZHMgaWYgZXhwb3NlSW5zdGFuY2VNZXRob2RzIGlzIHRydWVcblx0aWYgKGV4cG9zZUluc3RhbmNlTWV0aG9kcykge1xuXHRcdE9iamVjdC5lbnRyaWVzKE1uZW1vbmljYVByb3RvUHJvcHMpLmZvckVhY2goKFsgbmFtZSwgbWV0aG9kIF06IFtzdHJpbmcsIHVua25vd25dKSA9PiB7XG5cdFx0XHRvZHAoTW5lbW9uaWNhLnByb3RvdHlwZSwgbmFtZSwge1xuXHRcdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRcdCBcblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIHRoZXJlIGlzIGEgcHJveHkgYW5kIG5leHQgbGluZSBpcyBjYWxsYWJsZVxuXHRcdFx0XHRcdHJldHVybiAobWV0aG9kIGFzIENhbGxhYmxlRnVuY3Rpb24pLmNhbGwodGhpcyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhNbmVtb25pY2FQcm90b1Byb3BzKS5mb3JFYWNoKChzeW1ib2w6IHN5bWJvbCkgPT4ge1xuXHRcdFx0b2RwKE1uZW1vbmljYS5wcm90b3R5cGUsIHN5bWJvbCwge1xuXHRcdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRcdGNvbnN0IHN5bWJvbE1ldGhvZCA9IFJlZmxlY3QuZ2V0KE1uZW1vbmljYVByb3RvUHJvcHMsIHN5bWJvbCk7XG5cdFx0XHRcdFx0cmV0dXJuIHN5bWJvbE1ldGhvZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdC8vIGluc3RhbmNlIG9mIHNlbGYgQ29uc3RydWN0b3IgdHlwZVxuXHRvZHAoTW5lbW9uaWNhLnByb3RvdHlwZSwgU3ltYm9sLmhhc0luc3RhbmNlLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBnZXRUeXBlQ2hlY2tlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXHRcdH1cblx0fSk7XG5cblx0Y29uc3QgcHJvdG8gPSBuZXcgTW5lbW9uaWNhKCk7XG5cdFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoaW5zdGFuY2UsIHByb3RvKTtcblxuXHQvLyBJbnN0YW5jZVJvb3RzLnNldChpbnN0YW5jZSwgcHJvdG8pO1xuXG59IGFzIENvbnN0cnVjdG9yRnVuY3Rpb248b2JqZWN0PjtcblxuY29uc3QgY3JlYXRlTW5lbW9zeW5lID0gZnVuY3Rpb24gKFVyYW51czogdW5rbm93biwgZXhwb3NlSW5zdGFuY2VNZXRob2RzOiBib29sZWFuKSB7XG4vLyBjb25zdCBjcmVhdGVNbmVtb3N5bmUgPSBmdW5jdGlvbiAoVXJhbnVzOiB1bmtub3duLCB0eXBlUHJveHk6IHVua25vd24pIHtcbi8vIFx0aWYgKHR5cGVvZiBVcmFudXMgPT09ICd1bmRlZmluZWQnKSB7XG4vLyBcdFx0Y29uc3QgeyBfX3R5cGVfXzogdHlwZSwgVXJhbnVzOiBfdXJhbnVzIH0gPSB0eXBlUHJveHk7XG4vLyBcdFx0Y29uc29sZS5sb2codHlwZSwgX3VyYW51cyk7XG4vLyBcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlYnVnZ2VyXG4vLyBcdFx0ZGVidWdnZXI7XG4vLyBcdFx0dGhyb3cgbmV3IEVycm9yKCdjcmVhdGVNbmVtb3N5bmUgVXJhbnVzIGlzIG5vdCBkZWZpbmVkIGZvciB0eXBlUHJveHkuJyk7XG4vLyBcdH1cblxuXHRjb25zdCB1cmFudXMgPSByZWZsZWN0UHJpbWl0aXZlV3JhcHBlcnMoVXJhbnVzKTtcblx0Y29uc3QgbW5lbW9zeW5lID0gbmV3IE1uZW1vc3luZSh1cmFudXMsIGV4cG9zZUluc3RhbmNlTWV0aG9kcyk7XG5cdGNvbnN0IG1uZW1vc3luZVByb3h5ID0gbmV3IFByb3h5KG1uZW1vc3luZSwge1xuXHRcdGdldCA6IG1uZW1vc3luZVByb3h5SGFuZGxlckdldFxuXHR9KTtcblxuXHRyZXR1cm4gbW5lbW9zeW5lUHJveHk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGdldCBjcmVhdGVNbmVtb3N5bmUgKCkge1xuXHRcdHJldHVybiBjcmVhdGVNbmVtb3N5bmU7XG5cdH0sXG5cdGdldCBwcmVwYXJlU3VidHlwZUZvckNvbnN0cnVjdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHByZXBhcmVTdWJ0eXBlRm9yQ29uc3RydWN0aW9uO1xuXHR9LFxuXHRnZXQgZ2V0RGVmYXVsdFByb3RvdHlwZSAoKSB7XG5cdFx0cmV0dXJuIGdldERlZmF1bHRQcm90b3R5cGU7XG5cdH0sXG5cdC8vIGdldCBNbmVtb3N5bmVQcm90b3R5cGVLZXlzICgpIHtcblx0Ly8gXHRyZXR1cm4gTW5lbW9zeW5lUHJvdG90eXBlS2V5cztcblx0Ly8gfSxcblx0Ly8gZ2V0IEluc3RhbmNlUm9vdHMgKCkge1xuXHQvLyBcdHJldHVybiBJbnN0YW5jZVJvb3RzO1xuXHQvLyB9XG59O1xuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW5lbW9zeW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9NbmVtb3N5bmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFHYiwrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFFckIsU0FBUyxHQUVULEdBQUcscUJBQVMsQ0FBQztBQUVkLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wsY0FBYyxFQUNkLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsR0FBRyxlQUFVLENBQUM7QUFFZixpREFBOEM7QUFDOUMsK0NBQTRDO0FBQzVDLDJDQUF3QztBQUV4Qyx5RUFBa0U7QUFFbEUsdURBQW9EO0FBRXBELG1DQUEyQztBQUUzQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBSUYsTUFBTSxtQkFBbUIsR0FBRztJQUUzQixPQUFPO1FBQ04sT0FBTztZQUNOLE9BQU8sSUFBQSxpQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0gsT0FBTyxVQUF3QixHQUFHLElBQTJCO1lBQzVELE9BQU8sSUFBQSxXQUFJLEVBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDTCxPQUFPLFVBQXdCLHFCQUE2QjtZQUMzRCxPQUFPLElBQUEsZUFBTSxFQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUk7UUFFSCxNQUFNLEtBQUssR0FBRyxJQUFB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QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBR0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRTtRQUM1QyxHQUFHO1lBQ0YsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO0tBQ0QsQ0FBQyxDQUFDO0lBRUgsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUM5QixPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUl6QyxDQUEwQixDQUFDO0FBRTNCLE1BQU0sZUFBZSxHQUFHLFVBQVUsTUFBZSxFQUFFLHFCQUE4QjtJQVVoRixNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGlCQUFTLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDL0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1FBQzNDLEdBQUcsRUFBRyx3QkFBd0I7S0FDOUIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxjQUFjLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUYsa0JBQWU7SUFDZCxJQUFJLGVBQWU7UUFDbEIsT0FBTyxlQUFlLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksNkJBQTZCO1FBQ2hDLE9BQU8sNkJBQTZCLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ3RCLE9BQU8sbUJBQW1CLENBQUM7SUFDNUIsQ0FBQztDQU9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IF9JbnRlcm5hbF9UQ18gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdFN5bWJvbENvbnN0cnVjdG9yTmFtZSxcblxuXHRNTkVNT05JQ0EsXG5cbn0gPSBjb25zdGFudHM7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Z2V0VHlwZUNoZWNrZXIsXG5cdGZpbmRTdWJUeXBlRnJvbVBhcmVudCxcblx0cmVmbGVjdFByaW1pdGl2ZVdyYXBwZXJzXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHsgZXh0cmFjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2V4dHJhY3QnO1xuaW1wb3J0IHsgcGFyZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcGFyZW50JztcbmltcG9ydCB7IHBpY2sgfSBmcm9tICcuLi8uLi91dGlscy9waWNrJztcblxuaW1wb3J0IGV4Y2VwdGlvbkNvbnN0cnVjdG9yIGZyb20gJy4uL2Vycm9ycy9leGNlcHRpb25Db25zdHJ1Y3Rvcic7XG5cbmltcG9ydCB7IEluc3RhbmNlQ3JlYXRvciB9IGZyb20gJy4vSW5zdGFuY2VDcmVhdG9yJztcblxuaW1wb3J0IHsgX2dldFByb3BzLCBQcm9wcyB9IGZyb20gJy4vUHJvcHMnO1xuXG5jb25zdCBnZXREZWZhdWx0UHJvdG90eXBlID0gKCkgPT4ge1xuXHRyZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKTtcbn07XG5cbi8vIGNvbnN0IEluc3RhbmNlUm9vdHMgPSBuZXcgV2Vha01hcDtcblxuY29uc3QgTW5lbW9uaWNhUHJvdG9Qcm9wcyA9IHtcblxuXHRleHRyYWN0ICgpIHtcblx0XHRyZXR1cm4gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCkge1xuXHRcdFx0cmV0dXJuIGV4dHJhY3QodGhpcyk7XG5cdFx0fTtcblx0fSxcblxuXHRwaWNrICgpIHtcblx0XHRyZXR1cm4gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCwgLi4uYXJnczogKHN0cmluZyB8IHN0cmluZ1tdKVtdKSB7XG5cdFx0XHRyZXR1cm4gcGljayh0aGlzLCAuLi5hcmdzKTtcblx0XHR9O1xuXHR9LFxuXG5cdHBhcmVudCAoKSB7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBvYmplY3QsIGNvbnN0cnVjdG9yTG9va3VwUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRyZXR1cm4gcGFyZW50KHRoaXMsIGNvbnN0cnVjdG9yTG9va3VwUGF0aCk7XG5cdFx0fTtcblx0fSxcblxuXHRjbG9uZSAodGhpczogeyBmb3JrOiAoKSA9PiBvYmplY3QgfSkge1xuXHRcdHJldHVybiB0aGlzLmZvcmsoKTtcblx0fSxcblxuXHRmb3JrICh0aGlzOiBvYmplY3QpIHtcblxuXHRcdGNvbnN0IHByb3BzID0gX2dldFByb3BzKHRoaXMpIGFzIFByb3BzO1xuXG5cdFx0Y29uc3Qge1xuXHRcdFx0X190eXBlX186IHR5cGUsXG5cdFx0XHRfX2NvbGxlY3Rpb25fXzogY29sbGVjdGlvbixcblx0XHRcdF9fcGFyZW50X186IGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0XHRfX2FyZ3NfXyxcblx0XHRcdF9fc2VsZl9fLFxuXHRcdH0gPSBwcm9wcztcblxuXHRcdGNvbnN0IHtcblx0XHRcdGlzU3ViVHlwZSxcblx0XHRcdFR5cGVOYW1lXG5cdFx0fSA9IHR5cGU7XG5cblx0XHQvLyAnZnVuY3Rpb24nLCBjYXVzZSBtaWdodCBiZSBjYWxsZWQgd2l0aCAnbmV3J1xuXHRcdCBcblx0XHRyZXR1cm4gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCwgLi4uZm9ya0FyZ3M6IHVua25vd25bXSkge1xuXG5cdFx0XHRsZXQgZm9ya2VkO1xuXHRcdFx0Y29uc3QgQ29uc3RydWN0b3IgPSBpc1N1YlR5cGUgP1xuXHRcdFx0XHRleGlzdGVudEluc3RhbmNlIDpcblx0XHRcdFx0Y29sbGVjdGlvbjtcblxuXHRcdFx0Y29uc3QgYXJncyA9IGZvcmtBcmdzLmxlbmd0aCA/IGZvcmtBcmdzIDogX19hcmdzX187XG5cblxuXHRcdFx0aWYgKHRoaXMgPT09IF9fc2VsZl9fKSB7XG5cdFx0XHRcdCBcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAgdGhpcyBpcyBkZWZpbml0ZWx5IGEgY29uc3RydWN0b3Jcblx0XHRcdFx0Zm9ya2VkID0gbmV3IChDb25zdHJ1Y3RvclsgVHlwZU5hbWUgXSkoLi4uYXJncyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBmb3JrLmNhbGwgPyBsZXQncyBkbyBpdCAhXG5cdFx0XHRcdGZvcmtlZCA9IG5ldyBJbnN0YW5jZUNyZWF0b3IodHlwZSwgcmVmbGVjdFByaW1pdGl2ZVdyYXBwZXJzKHRoaXMpLCBhcmdzKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGZvcmtlZDtcblxuXHRcdH07XG5cdH0sXG5cblx0WyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgXSAoKSB7XG5cdFx0cmV0dXJuIE1ORU1PTklDQTtcblx0fSxcblxuXHRleGNlcHRpb24gKCkge1xuXHRcdCBcblx0XHRjb25zdCBzZWxmID0gdGhpcztcblx0XHRyZXR1cm4gZnVuY3Rpb24gKGVycm9yOiBFcnJvciwgLi4uYXJnczogdW5rbm93bltdKSB7XG5cdFx0XHRjb25zdCB0YXJnZXQgPSBuZXcudGFyZ2V0O1xuXHRcdFx0cmV0dXJuIGV4Y2VwdGlvbkNvbnN0cnVjdG9yLmNhbGwoc2VsZiwgdGFyZ2V0LCBlcnJvciwgLi4uYXJncyk7XG5cdFx0fTtcblx0fSxcblxuXHRzaWJsaW5nICgpIHtcblx0XHQgXG5cdFx0Y29uc3Qgc2libGluZ3MgPSAoU2libGluZ1R5cGVOYW1lOiBzdHJpbmcpID0+IHtcblxuXHRcdFx0Y29uc3QgcHJvcHMgPSBfZ2V0UHJvcHModGhpcykgYXMgUHJvcHM7XG5cdFx0XHRjb25zdCB7XG5cdFx0XHRcdF9fY29sbGVjdGlvbl9fOiBjb2xsZWN0aW9uLFxuXHRcdFx0fSA9IHByb3BzO1xuXHRcdFx0Y29uc3Qgc2libGluZzogdW5rbm93biA9IGNvbGxlY3Rpb25bIFNpYmxpbmdUeXBlTmFtZSBdO1xuXHRcdFx0cmV0dXJuIHNpYmxpbmc7XG5cdFx0fTtcblxuXHRcdHJldHVybiBuZXcgUHJveHkoc2libGluZ3MsIHtcblx0XHRcdGdldCAoXywgcHJvcDogc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzaWJsaW5ncyhwcm9wKTtcblx0XHRcdH0sXG5cdFx0XHRhcHBseSAoXywgX18sIGFyZ3MsKSB7XG5cdFx0XHRcdHJldHVybiBzaWJsaW5ncyhhcmdzWyAwIF0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cbn07XG5cbmNvbnN0IHN0YXRpY1Byb3BzID0gW1xuXG5cdC8vIGJ1aWx0aW5zOiBmdW5jdGlvbnMgKyBQcm9taXNlc1xuXHQnY29uc3RydWN0b3InLFxuXHQncHJvdG90eXBlJyxcblx0J3RoZW4nLFxuXG5cdC8vIGJ1aWx0aW5zOiBlcnJvcnNcblx0J3N0YWNrJyxcblx0J21lc3NhZ2UnLFxuXHQnZG9tYWluJyxcblxuXHQvLyBidWlsdGluczogRXZlbnRFbWl0dGVyXG5cdCdvbicsXG5cdCdvbmNlJyxcblx0J29mZicsXG5cblx0Ly8gbW9jaGEgKyBjaGFpID0+IGJ1ZzogLi91dGlscy5qcyAuZmluZFN1YlR5cGVGcm9tUGFyZW50ICdpbnNwZWN0J1xuXHQnaW5zcGVjdCcsXG5cdCdzaG93RGlmZicsXG5cbl1cblx0LmNvbmNhdChPYmplY3Qua2V5cyhNbmVtb25pY2FQcm90b1Byb3BzKSlcblx0LmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3QucHJvdG90eXBlKSlcblx0LmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhGdW5jdGlvbi5wcm90b3R5cGUpKVxuXHQucmVkdWNlKChvYmosIGtleSkgPT4ge1xuXHRcdG9ialsga2V5IF0gPSB0cnVlO1xuXHRcdHJldHVybiBvYmo7XG5cdH0sIE9iamVjdC5jcmVhdGUobnVsbCkpO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9ubHktYXJyb3ctZnVuY3Rpb25zXG5jb25zdCBtYWtlU3ViVHlwZVByb3h5ID0gZnVuY3Rpb24gKHN1YnR5cGU6IGFueSwgaW5oZXJpdGVkSW5zdGFuY2U6IHVua25vd24pIHtcblxuXHRjb25zdCBzdWJ0eXBlUHJveHkgPSBuZXcgUHJveHkoSW5zdGFuY2VDcmVhdG9yLCB7XG5cblx0XHRnZXQgKFRhcmdldCwgX3Byb3ApIHtcblxuXHRcdFx0aWYgKF9wcm9wID09PSBTeW1ib2wuaGFzSW5zdGFuY2UpIHtcblx0XHRcdFx0cmV0dXJuIGdldFR5cGVDaGVja2VyKHN1YnR5cGUuVHlwZU5hbWUpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gUmVmbGVjdC5nZXQoVGFyZ2V0LCBfcHJvcCk7XG5cblx0XHR9LFxuXG5cdFx0Y29uc3RydWN0IChUYXJnZXQsIF9hcmdzKSB7XG5cdFx0XHRyZXR1cm4gbmV3IFRhcmdldChzdWJ0eXBlLCBpbmhlcml0ZWRJbnN0YW5jZSwgX2FyZ3MpO1xuXHRcdH0sXG5cblx0XHRhcHBseSAoVGFyZ2V0LCB0aGlzQXJnLCBfYXJncykge1xuXG5cdFx0XHRpZiAodGhpc0FyZyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHRoaXNBcmcgPSBpbmhlcml0ZWRJbnN0YW5jZTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZXhpc3RlbnRJbnN0YW5jZSA9IHJlZmxlY3RQcmltaXRpdmVXcmFwcGVycyh0aGlzQXJnKTtcblxuXHRcdFx0Y29uc3QgZW50aXR5ID0gbmV3IFRhcmdldChzdWJ0eXBlLCBleGlzdGVudEluc3RhbmNlLCBfYXJncyk7XG5cdFx0XHRyZXR1cm4gZW50aXR5O1xuXHRcdH0sXG5cblx0fSk7XG5cblx0cmV0dXJuIHN1YnR5cGVQcm94eTtcbn07XG5cbmNvbnN0IHByZXBhcmVTdWJ0eXBlRm9yQ29uc3RydWN0aW9uID0gZnVuY3Rpb24gKHN1YnR5cGVOYW1lOiBzdHJpbmcsIGluaGVyaXRlZEluc3RhbmNlOiB1bmtub3duKSB7XG5cdC8vIHByb3RvdHlwZSBvZiBwcm94eVxuXHRjb25zdCBwcm9wSW5zdGFuY2UgPSBSZWZsZWN0LmdldFByb3RvdHlwZU9mKGluaGVyaXRlZEluc3RhbmNlIGFzIG9iamVjdCkgYXMgb2JqZWN0O1xuXG5cdGNvbnN0IHByb3BzID0gX2dldFByb3BzKHByb3BJbnN0YW5jZSkgYXMgUHJvcHM7XG5cdGlmICghcHJvcHMpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB7XG5cdFx0XHRjb25maWc6IHtcblx0XHRcdFx0c3RyaWN0Q2hhaW5cblx0XHRcdH0sXG5cdFx0XHRzdWJ0eXBlc1xuXHRcdH0sXG5cdH0gPSBwcm9wcztcblxuXG5cdGNvbnN0IHN1YnR5cGUgPSBzdWJ0eXBlcy5oYXMoc3VidHlwZU5hbWUpID9cblx0XHRzdWJ0eXBlcy5nZXQoc3VidHlwZU5hbWUpIDpcblx0XHRzdHJpY3RDaGFpbiA/XG5cdFx0XHR1bmRlZmluZWQgOlxuXHRcdFx0ZmluZFN1YlR5cGVGcm9tUGFyZW50KGluaGVyaXRlZEluc3RhbmNlIGFzIG9iamVjdCwgc3VidHlwZU5hbWUpO1xuXG5cdHJldHVybiBzdWJ0eXBlID8gbWFrZVN1YlR5cGVQcm94eShzdWJ0eXBlLCBpbmhlcml0ZWRJbnN0YW5jZSkgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBtbmVtb3N5bmVQcm94eUhhbmRsZXJHZXQgPSAodGFyZ2V0OiBvYmplY3QsIHByb3A6IHN0cmluZywgcmVjZWl2ZXI6IHVua25vd24pID0+IHtcblxuXHQvLyBOb2RlLmpzIDIyIFJlZmxlY3QuZ2V0IEJlaGF2aW91ciBDaGFuZ2VkIGhlcmVcblx0Ly8gY2F1c2Ugc29tZXRoaW5nIGdvbmUgd3Jvbmcgd2l0aCBwcm9wIGFzc2lnbm1lbnRcblx0Ly8gc28gbm93IGlmIHdlIG5lZWQgLnN0YWNrLCB3ZSBzaG91bGQgYXZvaWQgcmVjZWl2ZXIgaGVyZVxuXHQvLyBuYXZlIG5vdCB5ZXQgY2hlY2tlZCBvdGhlciBzdGF0aWNQcm9wcyxcblx0Ly8ganVzdCBmaXhlZCB0aGlzIGJlbG93XG5cdC8vIHdoaWxlIHVzaW5nIGNvbmRpdGlvbmFsIGZvciBzdGF0aWNQcm9wc1xuXHRjb25zdCByZXN1bHQgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcblxuXHRpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0aWYgKHR5cGVvZiBwcm9wID09PSAnc3ltYm9sJykge1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRpZiAoc3RhdGljUHJvcHNbIHByb3AgXSkge1xuXHRcdC8qXG5cdFx0Y29uc3QgbWF5QmVSZXN1bHQgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3ApO1xuXHRcdGlmIChtYXlCZVJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gbWF5QmVSZXN1bHQ7XG5cdFx0fVxuXHRcdCovXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdGNvbnN0IHN1YnR5cGUgPSBwcmVwYXJlU3VidHlwZUZvckNvbnN0cnVjdGlvbihwcm9wLCByZWNlaXZlcik7XG5cdHJldHVybiBzdWJ0eXBlIHx8IHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBNbmVtb3N5bmUgPSBmdW5jdGlvbiAodGhpczogb2JqZWN0LCBtbmVtb25pY2E6IG9iamVjdCwgZXhwb3NlSW5zdGFuY2VNZXRob2RzOiBib29sZWFuKSB7XG5cdCBcblx0Y29uc3QgaW5zdGFuY2UgPSB0aGlzO1xuXG5cdC8vIGJlY2F1c2Ugd2UgbXVzdCBpbnN0YW50aWF0ZSBuZXcgY2hhaW4gZm9yIHJvb3Rcblx0Ly8gdGhlcmVmb3JlIHdlIGNyZWF0ZSB0aGlzIGNvbnN0cnVjdG9yIGludGVybmFsbHlcblx0Ly8gc28gaXQgY2FuIG5vdCBiZSBhdWdtZW50ZWQgZXh0ZXJuYWxseSBkdXJpbmcgaW5zdGFuY2UgY3JlYXRpb25cblx0Y29uc3QgTW5lbW9uaWNhID0gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCkge1xuXHRcdG9kcCh0aGlzLCBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiBNTkVNT05JQ0E7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0gYXMgX0ludGVybmFsX1RDXzx0eXBlb2YgTW5lbW9uaWNhUHJvdG9Qcm9wcz47XG5cdFxuXHQvLyB0aGlzIHRocm93cyBhbiBlcnJvclxuXHRPYmplY3Quc2V0UHJvdG90eXBlT2YoTW5lbW9uaWNhLnByb3RvdHlwZSwgbW5lbW9uaWNhKTtcblx0Ly8gd2hpbGUgdGhpcyBqdXN0IHJldHVybnMgZmFsc2UsIHNpbGVudGx5IC4uLiB1bmZvcnR1bmF0ZWx5XG5cdC8vIFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoTW5lbW9uaWNhLnByb3RvdHlwZSwgbW5lbW9uaWNhKTtcblxuXHQvLyBPbmx5IGFkZCBNbmVtb25pY2FQcm90b1Byb3BzIG1ldGhvZHMgaWYgZXhwb3NlSW5zdGFuY2VNZXRob2RzIGlzIHRydWVcblx0aWYgKGV4cG9zZUluc3RhbmNlTWV0aG9kcykge1xuXHRcdE9iamVjdC5lbnRyaWVzKE1uZW1vbmljYVByb3RvUHJvcHMpLmZvckVhY2goKFsgbmFtZSwgbWV0aG9kIF06IFtzdHJpbmcsIHVua25vd25dKSA9PiB7XG5cdFx0XHRvZHAoTW5lbW9uaWNhLnByb3RvdHlwZSwgbmFtZSwge1xuXHRcdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRcdCBcblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIHRoZXJlIGlzIGEgcHJveHkgYW5kIG5leHQgbGluZSBpcyBjYWxsYWJsZVxuXHRcdFx0XHRcdHJldHVybiAobWV0aG9kIGFzIENhbGxhYmxlRnVuY3Rpb24pLmNhbGwodGhpcyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhNbmVtb25pY2FQcm90b1Byb3BzKS5mb3JFYWNoKChzeW1ib2w6IHN5bWJvbCkgPT4ge1xuXHRcdFx0b2RwKE1uZW1vbmljYS5wcm90b3R5cGUsIHN5bWJvbCwge1xuXHRcdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRcdGNvbnN0IHN5bWJvbE1ldGhvZCA9IFJlZmxlY3QuZ2V0KE1uZW1vbmljYVByb3RvUHJvcHMsIHN5bWJvbCk7XG5cdFx0XHRcdFx0cmV0dXJuIHN5bWJvbE1ldGhvZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdC8vIGluc3RhbmNlIG9mIHNlbGYgQ29uc3RydWN0b3IgdHlwZVxuXHRvZHAoTW5lbW9uaWNhLnByb3RvdHlwZSwgU3ltYm9sLmhhc0luc3RhbmNlLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBnZXRUeXBlQ2hlY2tlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXHRcdH1cblx0fSk7XG5cblx0Y29uc3QgcHJvdG8gPSBuZXcgTW5lbW9uaWNhKCk7XG5cdFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoaW5zdGFuY2UsIHByb3RvKTtcblxuXHQvLyBJbnN0YW5jZVJvb3RzLnNldChpbnN0YW5jZSwgcHJvdG8pO1xuXG59IGFzIF9JbnRlcm5hbF9UQ188b2JqZWN0PjtcblxuY29uc3QgY3JlYXRlTW5lbW9zeW5lID0gZnVuY3Rpb24gKFVyYW51czogdW5rbm93biwgZXhwb3NlSW5zdGFuY2VNZXRob2RzOiBib29sZWFuKSB7XG4vLyBjb25zdCBjcmVhdGVNbmVtb3N5bmUgPSBmdW5jdGlvbiAoVXJhbnVzOiB1bmtub3duLCB0eXBlUHJveHk6IHVua25vd24pIHtcbi8vIFx0aWYgKHR5cGVvZiBVcmFudXMgPT09ICd1bmRlZmluZWQnKSB7XG4vLyBcdFx0Y29uc3QgeyBfX3R5cGVfXzogdHlwZSwgVXJhbnVzOiBfdXJhbnVzIH0gPSB0eXBlUHJveHk7XG4vLyBcdFx0Y29uc29sZS5sb2codHlwZSwgX3VyYW51cyk7XG4vLyBcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlYnVnZ2VyXG4vLyBcdFx0ZGVidWdnZXI7XG4vLyBcdFx0dGhyb3cgbmV3IEVycm9yKCdjcmVhdGVNbmVtb3N5bmUgVXJhbnVzIGlzIG5vdCBkZWZpbmVkIGZvciB0eXBlUHJveHkuJyk7XG4vLyBcdH1cblxuXHRjb25zdCB1cmFudXMgPSByZWZsZWN0UHJpbWl0aXZlV3JhcHBlcnMoVXJhbnVzKTtcblx0Y29uc3QgbW5lbW9zeW5lID0gbmV3IE1uZW1vc3luZSh1cmFudXMsIGV4cG9zZUluc3RhbmNlTWV0aG9kcyk7XG5cdGNvbnN0IG1uZW1vc3luZVByb3h5ID0gbmV3IFByb3h5KG1uZW1vc3luZSwge1xuXHRcdGdldCA6IG1uZW1vc3luZVByb3h5SGFuZGxlckdldFxuXHR9KTtcblxuXHRyZXR1cm4gbW5lbW9zeW5lUHJveHk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGdldCBjcmVhdGVNbmVtb3N5bmUgKCkge1xuXHRcdHJldHVybiBjcmVhdGVNbmVtb3N5bmU7XG5cdH0sXG5cdGdldCBwcmVwYXJlU3VidHlwZUZvckNvbnN0cnVjdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHByZXBhcmVTdWJ0eXBlRm9yQ29uc3RydWN0aW9uO1xuXHR9LFxuXHRnZXQgZ2V0RGVmYXVsdFByb3RvdHlwZSAoKSB7XG5cdFx0cmV0dXJuIGdldERlZmF1bHRQcm90b3R5cGU7XG5cdH0sXG5cdC8vIGdldCBNbmVtb3N5bmVQcm90b3R5cGVLZXlzICgpIHtcblx0Ly8gXHRyZXR1cm4gTW5lbW9zeW5lUHJvdG90eXBlS2V5cztcblx0Ly8gfSxcblx0Ly8gZ2V0IEluc3RhbmNlUm9vdHMgKCkge1xuXHQvLyBcdHJldHVybiBJbnN0YW5jZVJvb3RzO1xuXHQvLyB9XG59O1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { constructorOptions,
|
|
1
|
+
import type { constructorOptions, _Internal_TC_ } from '../../types';
|
|
2
2
|
export interface TypeProxyInstance {
|
|
3
3
|
__type__: {
|
|
4
4
|
[key: string]: unknown;
|
|
@@ -13,7 +13,7 @@ export interface TypeProxyInstance {
|
|
|
13
13
|
apply: typeof subTypeApply;
|
|
14
14
|
new (...args: unknown[]): object;
|
|
15
15
|
}
|
|
16
|
-
export declare const TypeProxy:
|
|
16
|
+
export declare const TypeProxy: _Internal_TC_<TypeProxyInstance>;
|
|
17
17
|
declare const subTypeApply: (parentType: {
|
|
18
18
|
define: (n: string, c: CallableFunction, cf?: object, ...fa: unknown[]) => unknown;
|
|
19
19
|
}, cfg?: constructorOptions, ...fnArgs: unknown[]) => <T extends {
|
|
@@ -83,4 +83,4 @@ exports.TypeProxy.prototype.construct = function (_target, args) {
|
|
|
83
83
|
const instance = new InstanceCreator_1.InstanceCreator(type, mnemosyneProxy, args);
|
|
84
84
|
return instance;
|
|
85
85
|
};
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9UeXBlUHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYixvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLGVBQVUsQ0FBQztBQUVmLHlDQUFzQztBQUV0QyxxREFBdUQ7QUFDdkQsTUFBTSxFQUNMLHFCQUFxQixHQUNyQixHQUFHLG9CQUFXLENBQUM7QUFFaEIsMkNBQXFDO0FBQ3JDLE1BQU0sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxtQkFBVSxDQUFDO0FBRTVELHVEQUFvRDtBQWF2QyxRQUFBLFNBQVMsR0FBRyxVQUFVLFFBQXVDLEVBQUUsTUFBZTtJQUMxRixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixRQUFRO1FBQ1IsTUFBTTtLQUNOLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLGlDQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBMkMsQ0FBQztBQUU1QyxpQkFBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxNQUF3QixFQUFFLElBQVk7SUFJekUsTUFBTSxFQUNMLFFBQVEsRUFBRSxJQUFJLEVBQ2QsR0FBRyxJQUFJLENBQUM7SUFLVCxJQUFJLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUNyQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sZUFBZSxDQUFDO0lBQ3hCLENBQUM7SUFJRCxJQUFJLElBQUEsU0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFD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LENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFHL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQXlELENBQUM7SUFDOUUsTUFBTSxxQkFBcUIsR0FBRyxNQUFPLENBQUMscUJBQTJDLENBQUM7SUFLbEYsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLElBQUksaUNBQWUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBR2pFLE9BQU8sUUFBUSxDQUFDO0FBRWpCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHR5cGUgeyBjb25zdHJ1Y3Rvck9wdGlvbnMsIENvbnN0cnVjdG9yRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Y2hlY2tQcm90byxcbn0gPSBUeXBlc1V0aWxzO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5jb25zdCB7XG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcbn0gPSBFcnJvcnNUeXBlcztcblxuaW1wb3J0IG1uZW1vc3luZXMgZnJvbSAnLi9NbmVtb3N5bmUnO1xuY29uc3QgeyBjcmVhdGVNbmVtb3N5bmUsIGdldERlZmF1bHRQcm90b3R5cGUgfSA9IG1uZW1vc3luZXM7XG5cbmltcG9ydCB7IEluc3RhbmNlQ3JlYXRvciB9IGZyb20gJy4vSW5zdGFuY2VDcmVhdG9yJztcblxuLy8gVHlwZSBmb3IgVHlwZVByb3h5IGluc3RhbmNlXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVQcm94eUluc3RhbmNlIHtcblx0X190eXBlX186IHsgW2tleTogc3RyaW5nXTogdW5rbm93bjsgcHJvdG86IG9iamVjdDsgc3VidHlwZXM6IE1hcDxzdHJpbmcsIHVua25vd24+OyBkZWZpbmU6IChuOiBzdHJpbmcsIGM6IENhbGxhYmxlRnVuY3Rpb24sIGNmPzogb2JqZWN0LCAuLi5mYTogdW5rbm93bltdKSA9PiB1bmtub3duIH07XG5cdFVyYW51czogdW5rbm93bjtcblx0Z2V0KHRhcmdldDogQ2FsbGFibGVGdW5jdGlvbiwgcHJvcDogc3RyaW5nKTogdW5rbm93bjtcblx0c2V0KHRhcmdldDogdW5rbm93biwgbmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IGJvb2xlYW47XG5cdGNvbnN0cnVjdCh0YXJnZXQ6IHVua25vd24sIGFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcblx0YXBwbHk6IHR5cGVvZiBzdWJUeXBlQXBwbHk7XG5cdG5ldyAoLi4uYXJnczogdW5rbm93bltdKTogb2JqZWN0O1xufVxuXG5leHBvcnQgY29uc3QgVHlwZVByb3h5ID0gZnVuY3Rpb24gKF9fdHlwZV9fOiBUeXBlUHJveHlJbnN0YW5jZVsnX190eXBlX18nXSwgVXJhbnVzOiB1bmtub3duKSB7XG5cdE9iamVjdC5hc3NpZ24odGhpcywge1xuXHRcdF9fdHlwZV9fLFxuXHRcdFVyYW51c1xuXHR9KTtcblx0Y29uc3QgdHlwZVByb3h5ID0gbmV3IFByb3h5KEluc3RhbmNlQ3JlYXRvciwgdGhpcyk7XG5cdHJldHVybiB0eXBlUHJveHk7XG59IGFzIENvbnN0cnVjdG9yRnVuY3Rpb248VHlwZVByb3h5SW5zdGFuY2U+O1xuXG5UeXBlUHJveHkucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uICh0YXJnZXQ6IENhbGxhYmxlRnVuY3Rpb24sIHByb3A6IHN0cmluZykge1xuXG5cdC8vIGNvbnN0IHByb3BzID0gX2dldFByb3BzKHRoaXMpIGFzIFByb3BzO1xuXG5cdGNvbnN0IHtcblx0XHRfX3R5cGVfXzogdHlwZVxuXHR9ID0gdGhpcztcblxuXHQvLyBwcm90b3R5cGUgb2YgcHJveHlcblx0Ly8gY29uc3QgaW5zdGFuY2UgPSBSZWZsZWN0LmdldFByb3RvdHlwZU9mKHJlY2VpdmVyKTtcblxuXHRpZiAocHJvcCA9PT0gJ3Byb3RvdHlwZScpIHtcblx0XHRyZXR1cm4gdHlwZS5wcm90bztcblx0fVxuXG5cdGNvbnN0IHByb3BEZWNsYXJhdGlvbiA9IHR5cGVbIHByb3AgXTtcblx0aWYgKHByb3BEZWNsYXJhdGlvbikge1xuXHRcdHJldHVybiBwcm9wRGVjbGFyYXRpb247XG5cdH1cblxuXHQvLyB1c2VkIGZvciBleGlzdGVudCBwcm9wcyB3aXRoIHZhbHVlXG5cdC8vIHVuZGVmaW5lZCB8fCBudWxsIHx8IGZhbHNlXG5cdGlmIChob3AodHlwZSwgcHJvcCkpIHtcblx0XHRyZXR1cm4gcHJvcERlY2xhcmF0aW9uO1xuXHR9XG5cblx0Ly8gU29tZVR5cGUuU29tZVN1YlR5cGVcblx0aWYgKHR5cGUuc3VidHlwZXMuaGFzKHByb3ApKSB7XG5cdFx0cmV0dXJuIHR5cGUuc3VidHlwZXMuZ2V0KHByb3ApO1xuXHR9XG5cblx0cmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCk7XG5cbn07XG5cblR5cGVQcm94eS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKF90YXJnZXQ6IHVua25vd24sIG5hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcblxuXHRjb25zdCB7XG5cdFx0X190eXBlX186IHR5cGVcblx0fSA9IHRoaXM7XG5cblx0Ly8gaXMgYWJvdXQgc2V0dGluZyBhIHByb3RvdHlwZSB0byBUeXBlXG5cdGlmIChuYW1lID09PSAncHJvdG90eXBlJykge1xuXHRcdGNoZWNrUHJvdG8odmFsdWUpO1xuXHRcdE9iamVjdC5hc3NpZ24odHlwZS5wcm90bywgdmFsdWUpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJyB8fCAhbmFtZS5sZW5ndGgpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdzaG91bGQgdXNlIG5vbiBlbXB0eSBzdHJpbmcgYXMgVHlwZU5hbWUnKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdzaG91bGQgdXNlIGZ1bmN0aW9uIGZvciB0eXBlIGRlZmluaXRpb24nKTtcblx0fVxuXG5cdGNvbnN0IFR5cGVOYW1lID0gbmFtZTtcblx0Y29uc3QgQ29uc3RydWN0b3IgPSB2YWx1ZTtcblxuXHR0eXBlLmRlZmluZShUeXBlTmFtZSwgQ29uc3RydWN0b3IpO1xuXHRyZXR1cm4gdHJ1ZTtcblxufTtcblxuXG4vLyBzaGFyZSBkZWNvcmF0b3IgZnJvbSBwcmltYXJ5IHR5cGVcbmNvbnN0IHN1YlR5cGVBcHBseSA9IChcblx0cGFyZW50VHlwZTogeyBkZWZpbmU6IChuOiBzdHJpbmcsIGM6IENhbGxhYmxlRnVuY3Rpb24sIGNmPzogb2JqZWN0LCAuLi5mYTogdW5rbm93bltdKSA9PiB1bmtub3duIH0sXG5cdGNmZz86IGNvbnN0cnVjdG9yT3B0aW9ucyxcblx0Li4uZm5BcmdzOiB1bmtub3duW11cbikgPT4ge1xuXHQvLyBjb25zdCBkZWNvcmF0b3IgPSBmdW5jdGlvbiA8VCBleHRlbmRzIHsgbmV3ICgpOiB1bmtub3duIH0+KGNzdHI6IFQsIHM/OiBDbGFzc0RlY29yYXRvckNvbnRleHQ8VD4pOiBUIHtcblx0Y29uc3QgZGVjb3JhdG9yID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyB7IG5ldyAoKTogdW5rbm93biB9Pihjc3RyOiBUKTogVCB7XG5cdFx0Ly8gY29uc3QgbmFtZSA9IHR5cGVvZiBzID09PSAnb2JqZWN0JyA/IHMubmFtZSA6IGNzdHIuY29uc3RydWN0b3IubmFtZTtcblx0XHRjb25zdCB7IG5hbWUgfSA9IGNzdHI7XG5cdFx0IFxuXHRcdHJldHVybiBwYXJlbnRUeXBlLmRlZmluZShuYW1lLCBjc3RyIGFzIHVua25vd24gYXMgQ2FsbGFibGVGdW5jdGlvbiwgY2ZnLCAuLi5mbkFyZ3MpIGFzIHVua25vd24gYXMgVDtcblx0fTtcblx0cmV0dXJuIGRlY29yYXRvcjtcbn07XG5cbi8vIHJlcGxhY2UgaW5zdGFuY2UgcHJvdG90eXBlXG5jb25zdCBwcmltYXJ5VHlwZUFwcGx5ID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlUHJveHlJbnN0YW5jZSxcblx0Ly8gcHJveHkgdGFyZ2V0XG5cdF9fOiB1bmtub3duLFxuXHRVcmFudXM6IHVua25vd24sXG5cdGFyZ3M6IFtjb25zdHJ1Y3Rvck9wdGlvbnMsIC4uLnVua25vd25bXV0sXG4pIHtcblx0Y29uc3QgdHlwZSA9IHRoaXMuX190eXBlX187XG5cdC8vIGNhc2Ugb2YgZGVjb3JhdG9yIGxpa2UgdXNhZ2Vcblx0aWYgKFVyYW51cyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gc28gaW5zdGVhZCBvZlxuXHRcdC8vIGluc3RhbmNlID0gdGhpcy5jb25zdHJ1Y3QobnVsbCwgYXJncyk7XG5cdFx0Ly8gd2Ugd2lsbCByZXR1cm4gZGVjb3JhdG9yXG5cdFx0Y29uc3QgZGVjb3JhdG9yID0gc3ViVHlwZUFwcGx5KHR5cGUsIGFyZ3NbIDAgXSk7XG5cdFx0cmV0dXJuIGRlY29yYXRvcjtcblx0fVxuXG5cdC8vIHRoaXMgaXMgdGhlIHNjZW5hcmlvLCB3aGVuIHdlIC5jYWxsIG9yIC5hcHBseSBvciAuYmluZFxuXHQvLyBvdXIgUHJpbWFyeVR5cGUgd2hpY2sgaXMgPT09IGluc3RhbmNlIG9mIGN1cnJlbnQgVHlwZVByb3h5XG5cdGNvbnN0IEluc3RhbmNlQ3JlYXRvclByb3h5ID0gbmV3IFR5cGVQcm94eSh0eXBlLCBVcmFudXMpO1xuXHRjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3JQcm94eSguLi5hcmdzKTtcblx0cmV0dXJuIGluc3RhbmNlO1xufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFR5cGVQcm94eS5wcm90b3R5cGUsICdhcHBseScsIHtcblx0Z2V0ICgpIHtcblx0XHQvLyBjb25zdCB0eXBlID0gdGhpcy5fX3R5cGVfXztcblx0XHRyZXR1cm4gcHJpbWFyeVR5cGVBcHBseTtcblx0XHQvLyBjb25zdCBhbnN3ZXIgPSAhdHlwZS5pc1N1YlR5cGUgPyBwcmltYXJ5VHlwZUFwcGx5IDogXG5cdFx0Ly8gXHQoX186IHVua25vd24sIF9fXzogdW5rbm93biwgY29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zLCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcblx0XHQvLyBcdFx0cmV0dXJuIHN1YlR5cGVBcHBseSh0eXBlLCBjb25maWcsIC4uLmFyZ3MpO1xuXHRcdC8vIFx0fTtcblx0XHQvLyByZXR1cm4gYW5zd2VyO1xuXHR9XG59KTtcblxuXG4vLyB0aGlzIGFsd2F5cyBpcyBpbml0aWFsIHR5cGUgY3JlYXRpb24gLi4uXG4vLyBzbyBubyB3YXkgdG8gaW52b2tlIHRoaXMgb3RoZXJ3aXNlIHRoYW4gZGlyZWN0IHR5cGUgY2FsbFxuVHlwZVByb3h5LnByb3RvdHlwZS5jb25zdHJ1Y3QgPSBmdW5jdGlvbiAoX3RhcmdldDogdW5rbm93biwgYXJnczogdW5rbm93bltdKSB7XG5cblx0Ly8gbmV3LnRhcmdldCBpZCBlcXVhbCB3aXRoIHRhcmdldCBoZXJlXG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB0eXBlLFxuXHRcdFVyYW51c1xuXHR9ID0gdGhpcztcblxuXHQvLyBzbyB0aGlzIGlzIGEgZGlyZWN0IFN1Yi1UeXBlIGludm9jYXRpb25cblx0Ly8gaGF2aW5nIG5vIGV4aXN0ZW50SW5zdGFuY2UgY3JlYXRlZCBlYXJsaWVyXG5cdC8vIHRoZW4gd2Ugc2hvdWxkIHJlbHkgb24gdGhhdCBzb21laG93XG5cdGNvbnN0IHVyYW51cyA9IHR5cGUuaXNTdWJUeXBlID8gZ2V0RGVmYXVsdFByb3RvdHlwZSgpIDogVXJhbnVzO1xuXG5cdC8vIEdldCBleHBvc2VJbnN0YW5jZU1ldGhvZHMgZnJvbSB0eXBlIGNvbmZpZywgZGVmYXVsdGluZyB0byBmYWxzZVxuXHRjb25zdCBjb25maWcgPSB0eXBlLmNvbmZpZyBhcyB7IGV4cG9zZUluc3RhbmNlTWV0aG9kcz86IGJvb2xlYW4gfSB8IHVuZGVmaW5lZDtcblx0Y29uc3QgZXhwb3NlSW5zdGFuY2VNZXRob2RzID0gY29uZmlnIS5leHBvc2VJbnN0YW5jZU1ldGhvZHMgYXMgdW5rbm93biBhcyBib29sZWFuO1xuXG5cdC8vIFwidGhpc1wiIGFyZ3VtZW50IG1heSBiZSBwYXNzZWQgZm9yIHRyYWNraW5nIHdoeSBzb21ldGhpbmcgaGFwcGVuZWRcblx0Ly8gYnV0IHVuY29tbWVudCBpdCB0aGVyZSBpbiBjcmVhdGVNbmVtb3N5bmUgaWYgbmVlZGVkXG5cdC8vIGNvbnN0IG1uZW1vc3luZVByb3h5ID0gY3JlYXRlTW5lbW9zeW5lKHVyYW51cywgdGhpcyk7XG5cdGNvbnN0IG1uZW1vc3luZVByb3h5ID0gY3JlYXRlTW5lbW9zeW5lKHVyYW51cywgZXhwb3NlSW5zdGFuY2VNZXRob2RzKTtcblx0Y29uc3QgaW5zdGFuY2UgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKHR5cGUsIG1uZW1vc3luZVByb3h5LCBhcmdzKTtcblxuXHQvLyBjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3IodHlwZSwgbnVsbCwgYXJncyk7XG5cdHJldHVybiBpbnN0YW5jZTtcblxufTtcbiJdfQ==
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9UeXBlUHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYixvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLGVBQVUsQ0FBQztBQUVmLHlDQUFzQztBQUV0QyxxREFBdUQ7QUFDdkQsTUFBTSxFQUNMLHFCQUFxQixHQUNyQixHQUFHLG9CQUFXLENBQUM7QUFFaEIsMkNBQXFDO0FBQ3JDLE1BQU0sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxtQkFBVSxDQUFDO0FBRTVELHVEQUFvRDtBQWF2QyxRQUFBLFNBQVMsR0FBRyxVQUFVLFFBQXVDLEVBQUUsTUFBZTtJQUMxRixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixRQUFRO1FBQ1IsTUFBTTtLQUNOLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLGlDQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBcUMsQ0FBQztBQUV0QyxpQkFBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxNQUF3QixFQUFFLElBQVk7SUFJekUsTUFBTSxFQUNMLFFBQVEsRUFBRSxJQUFJLEVBQ2QsR0FBRyxJQUFJLENBQUM7SUFLVCxJQUFJLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUNyQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sZUFBZSxDQUFDO0lBQ3hCLENBQUM7SUFJRCxJQUFJLElBQUEsU0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFD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LENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFHL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQXlELENBQUM7SUFDOUUsTUFBTSxxQkFBcUIsR0FBRyxNQUFPLENBQUMscUJBQTJDLENBQUM7SUFLbEYsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLElBQUksaUNBQWUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBR2pFLE9BQU8sUUFBUSxDQUFDO0FBRWpCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHR5cGUgeyBjb25zdHJ1Y3Rvck9wdGlvbnMsIF9JbnRlcm5hbF9UQ18gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Y2hlY2tQcm90byxcbn0gPSBUeXBlc1V0aWxzO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5jb25zdCB7XG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcbn0gPSBFcnJvcnNUeXBlcztcblxuaW1wb3J0IG1uZW1vc3luZXMgZnJvbSAnLi9NbmVtb3N5bmUnO1xuY29uc3QgeyBjcmVhdGVNbmVtb3N5bmUsIGdldERlZmF1bHRQcm90b3R5cGUgfSA9IG1uZW1vc3luZXM7XG5cbmltcG9ydCB7IEluc3RhbmNlQ3JlYXRvciB9IGZyb20gJy4vSW5zdGFuY2VDcmVhdG9yJztcblxuLy8gVHlwZSBmb3IgVHlwZVByb3h5IGluc3RhbmNlXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVQcm94eUluc3RhbmNlIHtcblx0X190eXBlX186IHsgW2tleTogc3RyaW5nXTogdW5rbm93bjsgcHJvdG86IG9iamVjdDsgc3VidHlwZXM6IE1hcDxzdHJpbmcsIHVua25vd24+OyBkZWZpbmU6IChuOiBzdHJpbmcsIGM6IENhbGxhYmxlRnVuY3Rpb24sIGNmPzogb2JqZWN0LCAuLi5mYTogdW5rbm93bltdKSA9PiB1bmtub3duIH07XG5cdFVyYW51czogdW5rbm93bjtcblx0Z2V0KHRhcmdldDogQ2FsbGFibGVGdW5jdGlvbiwgcHJvcDogc3RyaW5nKTogdW5rbm93bjtcblx0c2V0KHRhcmdldDogdW5rbm93biwgbmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IGJvb2xlYW47XG5cdGNvbnN0cnVjdCh0YXJnZXQ6IHVua25vd24sIGFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcblx0YXBwbHk6IHR5cGVvZiBzdWJUeXBlQXBwbHk7XG5cdG5ldyAoLi4uYXJnczogdW5rbm93bltdKTogb2JqZWN0O1xufVxuXG5leHBvcnQgY29uc3QgVHlwZVByb3h5ID0gZnVuY3Rpb24gKF9fdHlwZV9fOiBUeXBlUHJveHlJbnN0YW5jZVsnX190eXBlX18nXSwgVXJhbnVzOiB1bmtub3duKSB7XG5cdE9iamVjdC5hc3NpZ24odGhpcywge1xuXHRcdF9fdHlwZV9fLFxuXHRcdFVyYW51c1xuXHR9KTtcblx0Y29uc3QgdHlwZVByb3h5ID0gbmV3IFByb3h5KEluc3RhbmNlQ3JlYXRvciwgdGhpcyk7XG5cdHJldHVybiB0eXBlUHJveHk7XG59IGFzIF9JbnRlcm5hbF9UQ188VHlwZVByb3h5SW5zdGFuY2U+O1xuXG5UeXBlUHJveHkucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uICh0YXJnZXQ6IENhbGxhYmxlRnVuY3Rpb24sIHByb3A6IHN0cmluZykge1xuXG5cdC8vIGNvbnN0IHByb3BzID0gX2dldFByb3BzKHRoaXMpIGFzIFByb3BzO1xuXG5cdGNvbnN0IHtcblx0XHRfX3R5cGVfXzogdHlwZVxuXHR9ID0gdGhpcztcblxuXHQvLyBwcm90b3R5cGUgb2YgcHJveHlcblx0Ly8gY29uc3QgaW5zdGFuY2UgPSBSZWZsZWN0LmdldFByb3RvdHlwZU9mKHJlY2VpdmVyKTtcblxuXHRpZiAocHJvcCA9PT0gJ3Byb3RvdHlwZScpIHtcblx0XHRyZXR1cm4gdHlwZS5wcm90bztcblx0fVxuXG5cdGNvbnN0IHByb3BEZWNsYXJhdGlvbiA9IHR5cGVbIHByb3AgXTtcblx0aWYgKHByb3BEZWNsYXJhdGlvbikge1xuXHRcdHJldHVybiBwcm9wRGVjbGFyYXRpb247XG5cdH1cblxuXHQvLyB1c2VkIGZvciBleGlzdGVudCBwcm9wcyB3aXRoIHZhbHVlXG5cdC8vIHVuZGVmaW5lZCB8fCBudWxsIHx8IGZhbHNlXG5cdGlmIChob3AodHlwZSwgcHJvcCkpIHtcblx0XHRyZXR1cm4gcHJvcERlY2xhcmF0aW9uO1xuXHR9XG5cblx0Ly8gU29tZVR5cGUuU29tZVN1YlR5cGVcblx0aWYgKHR5cGUuc3VidHlwZXMuaGFzKHByb3ApKSB7XG5cdFx0cmV0dXJuIHR5cGUuc3VidHlwZXMuZ2V0KHByb3ApO1xuXHR9XG5cblx0cmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCk7XG5cbn07XG5cblR5cGVQcm94eS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKF90YXJnZXQ6IHVua25vd24sIG5hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcblxuXHRjb25zdCB7XG5cdFx0X190eXBlX186IHR5cGVcblx0fSA9IHRoaXM7XG5cblx0Ly8gaXMgYWJvdXQgc2V0dGluZyBhIHByb3RvdHlwZSB0byBUeXBlXG5cdGlmIChuYW1lID09PSAncHJvdG90eXBlJykge1xuXHRcdGNoZWNrUHJvdG8odmFsdWUpO1xuXHRcdE9iamVjdC5hc3NpZ24odHlwZS5wcm90bywgdmFsdWUpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJyB8fCAhbmFtZS5sZW5ndGgpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdzaG91bGQgdXNlIG5vbiBlbXB0eSBzdHJpbmcgYXMgVHlwZU5hbWUnKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdzaG91bGQgdXNlIGZ1bmN0aW9uIGZvciB0eXBlIGRlZmluaXRpb24nKTtcblx0fVxuXG5cdGNvbnN0IFR5cGVOYW1lID0gbmFtZTtcblx0Y29uc3QgQ29uc3RydWN0b3IgPSB2YWx1ZTtcblxuXHR0eXBlLmRlZmluZShUeXBlTmFtZSwgQ29uc3RydWN0b3IpO1xuXHRyZXR1cm4gdHJ1ZTtcblxufTtcblxuXG4vLyBzaGFyZSBkZWNvcmF0b3IgZnJvbSBwcmltYXJ5IHR5cGVcbmNvbnN0IHN1YlR5cGVBcHBseSA9IChcblx0cGFyZW50VHlwZTogeyBkZWZpbmU6IChuOiBzdHJpbmcsIGM6IENhbGxhYmxlRnVuY3Rpb24sIGNmPzogb2JqZWN0LCAuLi5mYTogdW5rbm93bltdKSA9PiB1bmtub3duIH0sXG5cdGNmZz86IGNvbnN0cnVjdG9yT3B0aW9ucyxcblx0Li4uZm5BcmdzOiB1bmtub3duW11cbikgPT4ge1xuXHQvLyBjb25zdCBkZWNvcmF0b3IgPSBmdW5jdGlvbiA8VCBleHRlbmRzIHsgbmV3ICgpOiB1bmtub3duIH0+KGNzdHI6IFQsIHM/OiBDbGFzc0RlY29yYXRvckNvbnRleHQ8VD4pOiBUIHtcblx0Y29uc3QgZGVjb3JhdG9yID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyB7IG5ldyAoKTogdW5rbm93biB9Pihjc3RyOiBUKTogVCB7XG5cdFx0Ly8gY29uc3QgbmFtZSA9IHR5cGVvZiBzID09PSAnb2JqZWN0JyA/IHMubmFtZSA6IGNzdHIuY29uc3RydWN0b3IubmFtZTtcblx0XHRjb25zdCB7IG5hbWUgfSA9IGNzdHI7XG5cdFx0IFxuXHRcdHJldHVybiBwYXJlbnRUeXBlLmRlZmluZShuYW1lLCBjc3RyIGFzIHVua25vd24gYXMgQ2FsbGFibGVGdW5jdGlvbiwgY2ZnLCAuLi5mbkFyZ3MpIGFzIHVua25vd24gYXMgVDtcblx0fTtcblx0cmV0dXJuIGRlY29yYXRvcjtcbn07XG5cbi8vIHJlcGxhY2UgaW5zdGFuY2UgcHJvdG90eXBlXG5jb25zdCBwcmltYXJ5VHlwZUFwcGx5ID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlUHJveHlJbnN0YW5jZSxcblx0Ly8gcHJveHkgdGFyZ2V0XG5cdF9fOiB1bmtub3duLFxuXHRVcmFudXM6IHVua25vd24sXG5cdGFyZ3M6IFtjb25zdHJ1Y3Rvck9wdGlvbnMsIC4uLnVua25vd25bXV0sXG4pIHtcblx0Y29uc3QgdHlwZSA9IHRoaXMuX190eXBlX187XG5cdC8vIGNhc2Ugb2YgZGVjb3JhdG9yIGxpa2UgdXNhZ2Vcblx0aWYgKFVyYW51cyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gc28gaW5zdGVhZCBvZlxuXHRcdC8vIGluc3RhbmNlID0gdGhpcy5jb25zdHJ1Y3QobnVsbCwgYXJncyk7XG5cdFx0Ly8gd2Ugd2lsbCByZXR1cm4gZGVjb3JhdG9yXG5cdFx0Y29uc3QgZGVjb3JhdG9yID0gc3ViVHlwZUFwcGx5KHR5cGUsIGFyZ3NbIDAgXSk7XG5cdFx0cmV0dXJuIGRlY29yYXRvcjtcblx0fVxuXG5cdC8vIHRoaXMgaXMgdGhlIHNjZW5hcmlvLCB3aGVuIHdlIC5jYWxsIG9yIC5hcHBseSBvciAuYmluZFxuXHQvLyBvdXIgUHJpbWFyeVR5cGUgd2hpY2sgaXMgPT09IGluc3RhbmNlIG9mIGN1cnJlbnQgVHlwZVByb3h5XG5cdGNvbnN0IEluc3RhbmNlQ3JlYXRvclByb3h5ID0gbmV3IFR5cGVQcm94eSh0eXBlLCBVcmFudXMpO1xuXHRjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3JQcm94eSguLi5hcmdzKTtcblx0cmV0dXJuIGluc3RhbmNlO1xufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFR5cGVQcm94eS5wcm90b3R5cGUsICdhcHBseScsIHtcblx0Z2V0ICgpIHtcblx0XHQvLyBjb25zdCB0eXBlID0gdGhpcy5fX3R5cGVfXztcblx0XHRyZXR1cm4gcHJpbWFyeVR5cGVBcHBseTtcblx0XHQvLyBjb25zdCBhbnN3ZXIgPSAhdHlwZS5pc1N1YlR5cGUgPyBwcmltYXJ5VHlwZUFwcGx5IDogXG5cdFx0Ly8gXHQoX186IHVua25vd24sIF9fXzogdW5rbm93biwgY29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zLCAuLi5hcmdzOiB1bmtub3duW10pID0+IHtcblx0XHQvLyBcdFx0cmV0dXJuIHN1YlR5cGVBcHBseSh0eXBlLCBjb25maWcsIC4uLmFyZ3MpO1xuXHRcdC8vIFx0fTtcblx0XHQvLyByZXR1cm4gYW5zd2VyO1xuXHR9XG59KTtcblxuXG4vLyB0aGlzIGFsd2F5cyBpcyBpbml0aWFsIHR5cGUgY3JlYXRpb24gLi4uXG4vLyBzbyBubyB3YXkgdG8gaW52b2tlIHRoaXMgb3RoZXJ3aXNlIHRoYW4gZGlyZWN0IHR5cGUgY2FsbFxuVHlwZVByb3h5LnByb3RvdHlwZS5jb25zdHJ1Y3QgPSBmdW5jdGlvbiAoX3RhcmdldDogdW5rbm93biwgYXJnczogdW5rbm93bltdKSB7XG5cblx0Ly8gbmV3LnRhcmdldCBpZCBlcXVhbCB3aXRoIHRhcmdldCBoZXJlXG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB0eXBlLFxuXHRcdFVyYW51c1xuXHR9ID0gdGhpcztcblxuXHQvLyBzbyB0aGlzIGlzIGEgZGlyZWN0IFN1Yi1UeXBlIGludm9jYXRpb25cblx0Ly8gaGF2aW5nIG5vIGV4aXN0ZW50SW5zdGFuY2UgY3JlYXRlZCBlYXJsaWVyXG5cdC8vIHRoZW4gd2Ugc2hvdWxkIHJlbHkgb24gdGhhdCBzb21laG93XG5cdGNvbnN0IHVyYW51cyA9IHR5cGUuaXNTdWJUeXBlID8gZ2V0RGVmYXVsdFByb3RvdHlwZSgpIDogVXJhbnVzO1xuXG5cdC8vIEdldCBleHBvc2VJbnN0YW5jZU1ldGhvZHMgZnJvbSB0eXBlIGNvbmZpZywgZGVmYXVsdGluZyB0byBmYWxzZVxuXHRjb25zdCBjb25maWcgPSB0eXBlLmNvbmZpZyBhcyB7IGV4cG9zZUluc3RhbmNlTWV0aG9kcz86IGJvb2xlYW4gfSB8IHVuZGVmaW5lZDtcblx0Y29uc3QgZXhwb3NlSW5zdGFuY2VNZXRob2RzID0gY29uZmlnIS5leHBvc2VJbnN0YW5jZU1ldGhvZHMgYXMgdW5rbm93biBhcyBib29sZWFuO1xuXG5cdC8vIFwidGhpc1wiIGFyZ3VtZW50IG1heSBiZSBwYXNzZWQgZm9yIHRyYWNraW5nIHdoeSBzb21ldGhpbmcgaGFwcGVuZWRcblx0Ly8gYnV0IHVuY29tbWVudCBpdCB0aGVyZSBpbiBjcmVhdGVNbmVtb3N5bmUgaWYgbmVlZGVkXG5cdC8vIGNvbnN0IG1uZW1vc3luZVByb3h5ID0gY3JlYXRlTW5lbW9zeW5lKHVyYW51cywgdGhpcyk7XG5cdGNvbnN0IG1uZW1vc3luZVByb3h5ID0gY3JlYXRlTW5lbW9zeW5lKHVyYW51cywgZXhwb3NlSW5zdGFuY2VNZXRob2RzKTtcblx0Y29uc3QgaW5zdGFuY2UgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKHR5cGUsIG1uZW1vc3luZVByb3h5LCBhcmdzKTtcblxuXHQvLyBjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3IodHlwZSwgbnVsbCwgYXJncyk7XG5cdHJldHVybiBpbnN0YW5jZTtcblxufTtcbiJdfQ==
|