@coolon/angular-ui-powerups 16.1.0-aplpha.61 → 16.1.0-aplpha.62
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/esm2022/lib/components/commands/command-face.mjs +10 -10
- package/esm2022/lib/components/tables/column/column-model.mjs +2 -2
- package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
- package/esm2022/lib/place/guards/consolidated-param-map.mjs +3 -3
- package/esm2022/lib/place/place-component.mjs +3 -4
- package/esm2022/lib/place/place-definition.mjs +2 -2
- package/esm2022/lib/place/url-snapshot.mjs +2 -2
- package/fesm2022/coolon-angular-ui-powerups.mjs +14 -14
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/place/place-component.d.ts +2 -2
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import {
|
|
2
|
+
import { MemoizeGet } from "@coolon/typescript-utilities";
|
|
3
3
|
import { isFunction } from 'lodash';
|
|
4
4
|
import { Enum } from 'typescript-string-enums';
|
|
5
5
|
export var CommandFace;
|
|
@@ -69,45 +69,45 @@ export var CommandFace;
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
__decorate([
|
|
72
|
-
|
|
72
|
+
MemoizeGet(),
|
|
73
73
|
__metadata("design:type", Object),
|
|
74
74
|
__metadata("design:paramtypes", [])
|
|
75
75
|
], Adapter.prototype, "text", null);
|
|
76
76
|
__decorate([
|
|
77
|
-
|
|
77
|
+
MemoizeGet(),
|
|
78
78
|
__metadata("design:type", Object),
|
|
79
79
|
__metadata("design:paramtypes", [])
|
|
80
80
|
], Adapter.prototype, "icon", null);
|
|
81
81
|
__decorate([
|
|
82
|
-
|
|
82
|
+
MemoizeGet(),
|
|
83
83
|
__metadata("design:type", Object),
|
|
84
84
|
__metadata("design:paramtypes", [])
|
|
85
85
|
], Adapter.prototype, "iconPosition", null);
|
|
86
86
|
__decorate([
|
|
87
|
-
|
|
87
|
+
MemoizeGet(),
|
|
88
88
|
__metadata("design:type", Object),
|
|
89
89
|
__metadata("design:paramtypes", [])
|
|
90
90
|
], Adapter.prototype, "tooltip", null);
|
|
91
91
|
__decorate([
|
|
92
|
-
|
|
92
|
+
MemoizeGet(),
|
|
93
93
|
__metadata("design:type", Boolean),
|
|
94
94
|
__metadata("design:paramtypes", [])
|
|
95
95
|
], Adapter.prototype, "iconPositionStart", null);
|
|
96
96
|
__decorate([
|
|
97
|
-
|
|
97
|
+
MemoizeGet(),
|
|
98
98
|
__metadata("design:type", Boolean),
|
|
99
99
|
__metadata("design:paramtypes", [])
|
|
100
100
|
], Adapter.prototype, "iconPositionEnd", null);
|
|
101
101
|
__decorate([
|
|
102
|
-
|
|
102
|
+
MemoizeGet(),
|
|
103
103
|
__metadata("design:type", String),
|
|
104
104
|
__metadata("design:paramtypes", [])
|
|
105
105
|
], Adapter.prototype, "color", null);
|
|
106
106
|
__decorate([
|
|
107
|
-
|
|
107
|
+
MemoizeGet(),
|
|
108
108
|
__metadata("design:type", String),
|
|
109
109
|
__metadata("design:paramtypes", [])
|
|
110
110
|
], Adapter.prototype, "style", null);
|
|
111
111
|
CommandFace.Adapter = Adapter;
|
|
112
112
|
})(CommandFace || (CommandFace = {}));
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1mYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUd4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQWtCN0MsTUFBTSxLQUFXLFdBQVcsQ0FtRjNCO0FBbkZELFdBQWlCLFdBQVc7SUFFMUIsSUFBWSxRQUdYO0lBSEQsV0FBWSxRQUFRO1FBQ2xCLDJCQUFlLENBQUE7UUFDZix1QkFBVyxDQUFBO0lBQ2IsQ0FBQyxFQUhXLFFBQVEsR0FBUixvQkFBUSxLQUFSLG9CQUFRLFFBR25CO0lBRVksaUJBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUsU0FBUztRQUNsQixNQUFNLEVBQUUsUUFBUTtLQUNqQixDQUFDLENBQUM7SUFHSCxTQUFnQixVQUFVLENBQUMsSUFBaUI7UUFDMUMsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM1RCxDQUFDO0lBRmUsc0JBQVUsYUFFekIsQ0FBQTtJQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFpQjtRQUMxQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVELENBQUM7SUFGZSxzQkFBVSxhQUV6QixDQUFBO0lBRUQsU0FBZ0IsU0FBUyxDQUFDLElBQWlCO1FBQ3pDLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUQsQ0FBQztJQUZlLHFCQUFTLFlBRXhCLENBQUE7SUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFpQjtRQUNqRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzFFLENBQUM7SUFGZSw2QkFBaUIsb0JBRWhDLENBQUE7SUFFRCxTQUFnQixZQUFZLENBQUMsSUFBaUI7UUFDNUMsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRSxDQUFDO0lBRmUsd0JBQVksZUFFM0IsQ0FBQTtJQUVELFNBQWdCLFNBQVMsQ0FBQyxJQUFpQjtRQUN6QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzFELENBQUM7SUFGZSxxQkFBUyxZQUV4QixDQUFBO0lBRUQsTUFBYSxPQUFPO1FBQ0c7UUFBckIsWUFBcUIsSUFBaUI7WUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUN0QyxDQUFDO1FBRUQsSUFDSSxJQUFJO1lBQ04sT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFDSSxJQUFJO1lBQ04sT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFDSSxZQUFZO1lBQ2QsT0FBTyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUNJLE9BQU87WUFDVCxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxJQUNJLGlCQUFpQjtZQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDMUQsQ0FBQztRQUVELElBQ0ksZUFBZTtZQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDeEQsQ0FBQztRQUVELElBQ0ksS0FBSztZQUNQLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELElBQ0ksS0FBSztZQUNQLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQztLQUVGO0lBeENDO1FBQUMsVUFBVSxFQUFFOzs7dUNBR1o7SUFFRDtRQUFDLFVBQVUsRUFBRTs7O3VDQUdaO0lBRUQ7UUFBQyxVQUFVLEVBQUU7OzsrQ0FHWjtJQUVEO1FBQUMsVUFBVSxFQUFFOzs7MENBR1o7SUFFRDtRQUFDLFVBQVUsRUFBRTs7O29EQUdaO0lBRUQ7UUFBQyxVQUFVLEVBQUU7OztrREFHWjtJQUVEO1FBQUMsVUFBVSxFQUFFOzs7d0NBR1o7SUFFRDtRQUFDLFVBQVUsRUFBRTs7O3dDQUdaO0lBMUNVLG1CQUFPLFVBNENuQixDQUFBO0FBQ0gsQ0FBQyxFQW5GZ0IsV0FBVyxLQUFYLFdBQVcsUUFtRjNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZW1vaXplR2V0fSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHtNZW1vaXplfSBmcm9tICdmYXN0LXR5cGVzY3JpcHQtbWVtb2l6ZSc7XG5cbmltcG9ydCB7aXNGdW5jdGlvbn0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7RW51bX0gZnJvbSAndHlwZXNjcmlwdC1zdHJpbmctZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRGYWNlIHtcbiAgdGV4dD8oKTogc3RyaW5nO1xuXG4gIGljb24/KCk6IHN0cmluZztcblxuICBpY29uUG9zaXRpb24/KCk6IHN0cmluZztcblxuICB0b29sdGlwPygpOiBzdHJpbmc7XG5cbiAgY29sb3I/KCk6IHN0cmluZzsgLy8gVGhlbWVQYWxldHRlXG5cbiAgc3R5bGU/KCk6IHN0cmluZzsgLy8gQ29tbWFuZEZhY2UuU3R5bGU7XG5cbiAgLy8gc2hvcnRjdXQ/KCk6IHN0cmluZzsgLy8gQ29tbWFuZEZhY2UuU3R5bGU7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29tbWFuZEZhY2Uge1xuXG4gIGV4cG9ydCBlbnVtIFBvc2l0aW9uIHtcbiAgICBTVEFSVCA9ICdzdGFydCcsXG4gICAgRU5EID0gJ2VuZCdcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBTdHlsZSA9IEVudW0oe1xuICAgIEZMQVQ6ICdmbGF0JyxcbiAgICBTVFJPS0VEOiAnc3Ryb2tlZCcsXG4gICAgUkFJU0VEOiAncmFpc2VkJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgU3R5bGUgPSBFbnVtPHR5cGVvZiBTdHlsZT47XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENvbG9yT2YoZmFjZTogQ29tbWFuZEZhY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKGZhY2U/LmNvbG9yKSA/IGZhY2UuY29sb3IoKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTdHlsZU9mKGZhY2U6IENvbW1hbmRGYWNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbihmYWNlPy5zdHlsZSkgPyBmYWNlLnN0eWxlKCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0SWNvbk9mKGZhY2U6IENvbW1hbmRGYWNlKSB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZmFjZT8uaWNvbikgPyBmYWNlLmljb24oKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRJY29uUG9zaXRpb25PZihmYWNlOiBDb21tYW5kRmFjZSkge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKGZhY2U/Lmljb25Qb3NpdGlvbikgPyBmYWNlLmljb25Qb3NpdGlvbigpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBPZihmYWNlOiBDb21tYW5kRmFjZSkge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKGZhY2U/LnRvb2x0aXApID8gZmFjZS50b29sdGlwKCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0VGV4dE9mKGZhY2U6IENvbW1hbmRGYWNlKSB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZmFjZT8udGV4dCkgPyBmYWNlLnRleHQoKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBBZGFwdGVyIHtcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBmYWNlOiBDb21tYW5kRmFjZSkge1xuICAgIH1cblxuICAgIEBNZW1vaXplR2V0KClcbiAgICBnZXQgdGV4dCgpIHtcbiAgICAgIHJldHVybiBDb21tYW5kRmFjZS5nZXRUZXh0T2YodGhpcy5mYWNlKTtcbiAgICB9XG5cbiAgICBATWVtb2l6ZUdldCgpXG4gICAgZ2V0IGljb24oKSB7XG4gICAgICByZXR1cm4gQ29tbWFuZEZhY2UuZ2V0SWNvbk9mKHRoaXMuZmFjZSk7XG4gICAgfVxuXG4gICAgQE1lbW9pemVHZXQoKVxuICAgIGdldCBpY29uUG9zaXRpb24oKSB7XG4gICAgICByZXR1cm4gQ29tbWFuZEZhY2UuZ2V0SWNvblBvc2l0aW9uT2YodGhpcy5mYWNlKTtcbiAgICB9XG5cbiAgICBATWVtb2l6ZUdldCgpXG4gICAgZ2V0IHRvb2x0aXAoKSB7XG4gICAgICByZXR1cm4gQ29tbWFuZEZhY2UuZ2V0VG9vbHRpcE9mKHRoaXMuZmFjZSk7XG4gICAgfVxuXG4gICAgQE1lbW9pemVHZXQoKVxuICAgIGdldCBpY29uUG9zaXRpb25TdGFydCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmljb25Qb3NpdGlvbiA9PT0gQ29tbWFuZEZhY2UuUG9zaXRpb24uU1RBUlQ7XG4gICAgfVxuXG4gICAgQE1lbW9pemVHZXQoKVxuICAgIGdldCBpY29uUG9zaXRpb25FbmQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5pY29uUG9zaXRpb24gPT09IENvbW1hbmRGYWNlLlBvc2l0aW9uLkVORDtcbiAgICB9XG5cbiAgICBATWVtb2l6ZUdldCgpXG4gICAgZ2V0IGNvbG9yKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gQ29tbWFuZEZhY2UuZ2V0Q29sb3JPZih0aGlzLmZhY2UpO1xuICAgIH1cblxuICAgIEBNZW1vaXplR2V0KClcbiAgICBnZXQgc3R5bGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBDb21tYW5kRmFjZS5nZXRTdHlsZU9mKHRoaXMuZmFjZSk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { ComponentRef } from "@angular/core";
|
|
3
3
|
import { DelegatingValueModel, Dsl, Functions, GarbageCollector } from "@coolon/pectin";
|
|
4
4
|
import { assert, lang, Stringy } from "@coolon/typescript-utilities";
|
|
5
|
-
import { Memoize } from "
|
|
5
|
+
import { Memoize } from "fast-typescript-memoize";
|
|
6
6
|
import { ColumnTextSearchFormatter } from "../filter/column-text-search-formatter";
|
|
7
7
|
import { CellHeaderPortalRef } from "../renderer/cell-portal-ref";
|
|
8
8
|
import { DefaultHeaderCellRendererComponent } from "../renderer/default-header-cell-renderer/default-header-cell-renderer.component";
|
|
@@ -198,4 +198,4 @@ __decorate([
|
|
|
198
198
|
(function (ColumnModel) {
|
|
199
199
|
ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');
|
|
200
200
|
})(ColumnModel || (ColumnModel = {}));
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvY29sdW1uL2NvbHVtbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFDLFlBQVksRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVoRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQXNCLG1CQUFtQixFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQzVHLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbkMsTUFBTSxpRkFBaUYsQ0FBQztBQVF6RixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7SUFDaEIsT0FBTztBQUNULENBQUMsQ0FBQztBQW9CRixNQUFNLHVCQUE2QixTQUFRLHlCQUF5QixDQUFDLFFBQWE7SUFDeEUsU0FBUyxDQUFpQztJQUMxQyxJQUFJLEdBQXFCLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFFcEQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSx5QkFBeUIsQ0FBQyxRQUFRLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVE7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxD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QUFJLENBQUMsWUFBWSxDQUFDLCtDQUErQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1NBQ3hFO0lBQ0gsQ0FBQztJQUNTLDBCQUEwQixDQUFDLEdBQStCO1FBQ2xFLElBQUksR0FBRyxZQUFZLFlBQVksRUFBRTtZQUMvQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDckI7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBMUpDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBd0JEO0lBREMsT0FBTyxFQUFFOzs7OzBEQUdUO0FBZ0lILFdBQWlCLFdBQVc7SUFDYiw2Q0FBaUMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUU5RixDQUFDLEVBSGdCLFdBQVcsS0FBWCxXQUFXLFFBRzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge0NvbXBvbmVudFJlZiwgSW5qZWN0b3J9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NvbW1hbmQsIERlbGVnYXRpbmdWYWx1ZU1vZGVsLCBEc2wsIEZ1bmN0aW9ucywgR2FyYmFnZUNvbGxlY3RvciwgVmFsdWVNb2RlbH0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2Fzc2VydCwgbGFuZywgU3RyaW5neX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSBcIkB0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvclwiO1xuaW1wb3J0IHtFZGl0U2Vzc2lvbn0gZnJvbSBcIi4uL2VkaXRvci9lZGl0LXNlc3Npb25cIjtcbmltcG9ydCB7Q29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcn0gZnJvbSBcIi4uL2ZpbHRlci9jb2x1bW4tdGV4dC1zZWFyY2gtZm9ybWF0dGVyXCI7XG5pbXBvcnQge0NlbGxFZGl0b3JQb3J0YWxSZWYsIENlbGxIZWFkZXJQb3J0YWxSZWYsIENlbGxSZW5kZXJlclBvcnRhbFJlZn0gZnJvbSBcIi4uL3JlbmRlcmVyL2NlbGwtcG9ydGFsLXJlZlwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdEhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudFxufSBmcm9tIFwiLi4vcmVuZGVyZXIvZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNlbGxDb21wb25lbnR9IGZyb20gXCIuLi9yZW5kZXJlci90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlSGVhZGVyQ2VsbENvbXBvbmVudH0gZnJvbSBcIi4uL3JlbmRlcmVyL3RhYmxlLWhlYWRlci1jZWxsL3RhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDb2x1bW5NYW5hZ2VyfSBmcm9tIFwiLi9jb2x1bW4tbWFuYWdlclwiO1xuaW1wb3J0IHtDb2x1bW5PcmRlck1hbmFnZXJ9IGZyb20gXCIuL2NvbHVtbi1vcmRlci1tYW5hZ2VyXCI7XG5pbXBvcnQge0NvbHVtblRleHRQcm9wZXJ0aWVzfSBmcm9tIFwiLi9jb2x1bW4tdGV4dC1wcm9wZXJ0aWVzXCI7XG5cblxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbiAgLy8gbm9vcFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSb3dEYXRhPFJvdz4ge1xuICByb3c6IFJvdztcbiAgZWRpdFNlc3Npb24/OiBFZGl0U2Vzc2lvbjxSb3c+O1xuICBlZGl0Um93Q29tbWFuZDogQ29tbWFuZDx2b2lkPjtcbn1cblxuZXhwb3J0IHR5cGUgT25Db21wb25lbnRJbml0PEM+ID0gKGNvbXBvbmVudDogQykgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgRT4ge1xuICBvbkNvbXBvbmVudEluaXQ/OiAoY29tcG9uZW50OiBFKSA9PiB2b2lkO1xuICBvblJvd1VwZGF0ZT86IChjb21wb25lbnQ6IEUsIHJvdzogUm93KSA9PiB2b2lkO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgTXV0YWJsZUNlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFLCBQIGV4dGVuZHMga2V5b2YgUm93PiBleHRlbmRzIENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFPiB7XG4gIG9uVmFsdWVFZGl0OiAocm93OiBSb3csIGlzOiBSb3dbUF0sIHdhczogUm93W1BdKSA9PiB2b2lkO1xufVxuXG5jbGFzcyBDb2x1bW5UZXh0U2VhcmNoV3JhcHBlcjxSb3c+IGV4dGVuZHMgQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlci5EZWxlZ2F0ZTxSb3c+e1xuICBwcml2YXRlIF9kZWxlZ2F0ZTogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+O1xuICBwcml2YXRlIF9tYXA6IChyb3c6Um93KSA9PiBhbnkgPSBGdW5jdGlvbnMuaWRlbnRpdHk7XG5cbiAgaW5pdGlhbGlzZShpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBpZiAodGhpcy5fZGVsZWdhdGUgaW5zdGFuY2VvZiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyLkRlbGVnYXRlKSB7XG4gICAgICB0aGlzLl9kZWxlZ2F0ZS5pbml0aWFsaXNlKGluamVjdG9yKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXQocm93OiBSb3cpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fbWFwKHJvdyk7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVsZWdhdGUgPyB0aGlzLl9kZWxlZ2F0ZS5mb3JtYXQodmFsdWUpIDogXCJcIjtcbiAgICAvLyBjb25zb2xlLmxvZyh7Zm9ybWF0OiByb3csIHZhbHVlLCB0ZXh0OnJlc3VsdH0pXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHNldERlbGVnYXRlPFQ+KGZvcm1hdHRlcjogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxUPiwgbWFwcGVyPzogKHJvdzpSb3cpID0+IFQpIHtcbiAgICB0aGlzLl9kZWxlZ2F0ZSA9IGZvcm1hdHRlcjtcbiAgICB0aGlzLl9tYXAgPSBtYXBwZXIgPz8gRnVuY3Rpb25zLmlkZW50aXR5O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5Nb2RlbDxSb3c+IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJpdmF0ZSBfY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzO1xuXG4gIHByaXZhdGUgX2NvbHVtbkhlYWRlclBvcnRhbFJlZjogQ2VsbEhlYWRlclBvcnRhbFJlZjxSb3csIGFueT47XG4gIHByaXZhdGUgX2NlbGxSZW5kZXJlclBvcnRhbFJlZjogQ2VsbFJlbmRlcmVyUG9ydGFsUmVmPFJvdywgYW55PjtcbiAgcHJpdmF0ZSBfY2VsbEVkaXRvclBvcnRhbFJlZjogQ2VsbEVkaXRvclBvcnRhbFJlZjxSb3csIGFueT47XG5cbiAgcHJpdmF0ZSBfZW5hYmxlUm93U2VsZWN0aW9uID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfZmxleCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2RlZmF1bHRWaXNpYmlsaXR5JCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRydWUpKTtcbiAgcHJpdmF0ZSBfbWFzdGVyVmlzaWJpbGl0eSQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdCh0cnVlKSk7XG4gIHByaXZhdGUgX3VzZXJWaXNpYmxlJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRoaXMuX2RlZmF1bHRWaXNpYmlsaXR5JCkpO1xuICByZWFkb25seSBkYXNoZXJpc2VkQ29sdW1uSWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRleHRTZWFyY2hEZWxlZ2F0ZSA9IG5ldyBDb2x1bW5UZXh0U2VhcmNoV3JhcHBlcjxSb3c+KCk7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZSQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29sdW1uSWQ6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBvcmRlcjogQ29sdW1uT3JkZXJNYW5hZ2VyLCBwcml2YXRlIHRleHRQcm9wZXJ0aWVzUHJvdmlkZXI6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHt2YWx1ZU9mfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmluc3RhbGxIZWFkZXJSZW5kZXJlcigpO1xuICAgIHRoaXMuZGFzaGVyaXNlZENvbHVtbklkID0gU3RyaW5neS5mcm9tKGNvbHVtbklkKS5kYXNoZXJpemUoKS50b1N0cmluZygpO1xuICAgIHRoaXMudmlzaWJsZSQgPSB2YWx1ZU9mLmFsbChcbiAgICAgIHRoaXMuX3VzZXJWaXNpYmxlJCxcbiAgICAgIHRoaXMuX21hc3RlclZpc2liaWxpdHkkXG4gICAgKS5hcmVUcnV0aHkoKVxuICB9XG5cbiAgcHJvdGVjdGVkIGluc3RhbGxIZWFkZXJSZW5kZXJlcigpIHtcbiAgICB0aGlzLmNlbGxIZWFkZXJSZW5kZXJlcihEZWZhdWx0SGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50LCAoY29tcG9uZW50LCBjb2x1bW4pID0+IHtcbiAgICAgIGNvbXBvbmVudC5oZWFkZXJUZXh0ID0gY29sdW1uLmdldEhlYWRlclRleHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0SGVhZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKCk/LmhlYWRlclRleHQoKSA/PyB0aGlzLmdldERlZmF1bHRIZWFkZXJUZXh0KCk7XG4gIH1cblxuICBpc1Zpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSQudmFsdWU7XG4gIH1cblxuICB2aXNpYmxlV2hpbGUodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPik6IHRoaXMge1xuICAgIHRoaXMuX3VzZXJWaXNpYmxlJC5zZXREZWxlZ2F0ZSh2aXNpYmxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXREZWZhdWx0VmlzaWJpbGl0eSh2aXNpYmxlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgdGhpcy5fZGVmYXVsdFZpc2liaWxpdHkkLnNldERlbGVnYXRlKHZpc2libGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE1hc3RlclZpc2liaWxpdHkodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX21hc3RlclZpc2liaWxpdHkkLnNldERlbGVnYXRlKHZpc2libGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRIZWFkZXJUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbklkO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRDb2x1bW5UZXh0UHJvcGVydGllcygpOiBDb2x1bW5UZXh0UHJvcGVydGllcyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtblRleHRQcm9wZXJ0aWVzID8/IHRoaXMudGV4dFByb3BlcnRpZXNQcm92aWRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjY29sdW1uVGV4dFByb3BlcnRpZXMgaW5zdGVhZFxuICAgKiBAcGFyYW0gY29sdW1uVGV4dFByb3BlcnRpZXNcbiAgICovXG4gIHRleHRQcm9wZXJ0aWVzKGNvbHVtblRleHRQcm9wZXJ0aWVzOiBDb2x1bW5UZXh0UHJvcGVydGllcyk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtblRleHRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIGNvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtblRleHRQcm9wZXJ0aWVzOiBDb2x1bW5UZXh0UHJvcGVydGllcyk6IHRoaXMge1xuICAgIHRoaXMuX2NvbHVtblRleHRQcm9wZXJ0aWVzID0gY29sdW1uVGV4dFByb3BlcnRpZXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwb3NpdGlvbkFmdGVyKGNvbHVtbjogQ29sdW1uTW9kZWw8YW55Pik6dGhpcyB7XG4gICAgdGhpcy5vcmRlci5wb3NpdGlvbih0aGlzLCB7YWZ0ZXI6IGNvbHVtbn0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcG9zaXRpb25CZWZvcmUoY29sdW1uOiBDb2x1bW5Nb2RlbDxhbnk+KTp0aGlzIHtcbiAgICB0aGlzLm9yZGVyLnBvc2l0aW9uKHRoaXMsIHtiZWZvcmU6IGNvbHVtbn0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0U2VhcmNoVGV4dEZvcihyb3c6IFJvdyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy50ZXh0U2VhcmNoRGVsZWdhdGUuZm9ybWF0KHJvdylcbiAgfVxuXG4gIGNvbmZpZ3VyZUNvbHVtblRleHRTZWFyY2goZm9ybWF0dGVyOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPFJvdz4pOnRoaXNcbiAgY29uZmlndXJlQ29sdW1uVGV4dFNlYXJjaDxUPihmb3JtYXR0ZXI6IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXI8VD4sIG1hcHBlcjogKHJvdzpSb3cpID0+IFQpOnRoaXNcbiAgY29uZmlndXJlQ29sdW1uVGV4dFNlYXJjaChmb3JtYXR0ZXI6IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXI8YW55PiwgbWFwcGVyPzogKHJvdzpSb3cpID0+IGFueSk6dGhpcyB7XG4gICAgYXNzZXJ0Lm5vdE5pbChmb3JtYXR0ZXIpO1xuICAgIC8vIGNvbnNvbGUubG9nKHtjb2w6IHRoaXMuY29sdW1uSWQsIGZvcm1hdHRlcn0pO1xuICAgIHRoaXMudGV4dFNlYXJjaERlbGVnYXRlLnNldERlbGVnYXRlKGZvcm1hdHRlciwgbWFwcGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUhlYWRlclJlbmRlcmVyPEM+KGNvbmZpZzogQ2VsbEhlYWRlclBvcnRhbFJlZjxSb3csIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLl9jb2x1bW5IZWFkZXJQb3J0YWxSZWYgPSBjb25maWc7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlQ2VsbFJlbmRlcmVyPEM+KGNvbmZpZzogQ2VsbFJlbmRlcmVyUG9ydGFsUmVmPFJvdywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZiA9IGNvbmZpZztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVDZWxsRWRpdG9yPEU+KGNlbGxFZGl0b3I6IENlbGxFZGl0b3JQb3J0YWxSZWY8Um93LCBFPik6IHZvaWQge1xuICAgIHRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWYgPSBjZWxsRWRpdG9yO1xuICB9XG5cbiAgY2VsbEhlYWRlclJlbmRlcmVyPEM+KGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8Qz4sIGluaXRpYWxpc2VyOiAoY29tcG9uZW50OiBDLCBjb2x1bW46IENvbHVtbk1vZGVsPFJvdz4pID0+IHZvaWQpOiB0aGlzIHtcbiAgICB0aGlzLmNvbmZpZ3VyZUhlYWRlclJlbmRlcmVyKG5ldyBDZWxsSGVhZGVyUG9ydGFsUmVmPFJvdywgQz4oY29tcG9uZW50VHlwZSwgaW5pdGlhbGlzZXIpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZsZXgoZmxleCA9IHRydWUpIHtcbiAgICB0aGlzLl9mbGV4ID0gZmxleDtcbiAgfVxuXG4gIGlzRmxleCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmxleDtcbiAgfVxuXG4gIGhhc0VkaXRvclBvcnRhbCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9jZWxsRWRpdG9yUG9ydGFsUmVmO1xuICB9XG5cbiAgYXR0YWNoSGVhZGVyQ2VsbChob3N0OiBhbnkpIHtcbiAgICB0aGlzLl9jb2x1bW5IZWFkZXJQb3J0YWxSZWYuaW5pdGlhbGlzZUhvc3QoaG9zdCwgdGhpcyk7XG4gIH1cblxuICBhdHRhY2hDZWxsKGhvc3Q6IGFueSkge1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5pbml0aWFsaXNlSG9zdChob3N0LCB0aGlzKTtcbiAgICBpZiAodGhpcy5oYXNFZGl0b3JQb3J0YWwoKSkge1xuICAgICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZi5pbml0aWFsaXNlSG9zdChob3N0LCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICBvbkhlYWRlckF0dGFjaGVkKGhvc3Q6IFRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCwgcmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50KHJlZik7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmLm9uUG9ydGFsQXR0YWNoZWQoaG9zdCwgY29tcG9uZW50KTtcbiAgfVxuXG4gIG9uUmVuZGVyZXJBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93PiwgcmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50T3JFbWJlZGRlZFZpZXcocmVmKTtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYub25Qb3J0YWxBdHRhY2hlZChob3N0LCBjb21wb25lbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25FZGl0b3JBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93PiwgcmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWYub25Qb3J0YWxBdHRhY2hlZChob3N0LCB0aGlzLmdldENvbXBvbmVudChyZWYpKTtcbiAgfVxuXG4gIHVwZGF0ZVBvcnRhbENvbnRlbnQoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4pIHtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYucHVzaFN0YXRlKGhvc3QpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zZWxlY3RSb3dPbkNsaWNrKHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLl9lbmFibGVSb3dTZWxlY3Rpb24gPSBzZWxlY3RSb3dPbkNsaWNrO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaXNSb3dTZWxlY3Rpb25FbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVSb3dTZWxlY3Rpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50KHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpOiBhbnkge1xuICAgIGlmIChyZWYgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybiByZWYuaW5zdGFuY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJoZWFkZXJzIG9ubHkgc3VwcG9ydCBjb21wb25lbnQgcG9ydGFscywgZ290XCIsIHJlZik7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgaGVhZGVycyBvbmx5IHN1cHBvcnQgY29tcG9uZW50IHBvcnRhbHMsIGdvdCAke3JlZn1gKVxuICAgIH1cbiAgfVxuICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50T3JFbWJlZGRlZFZpZXcocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZik6IGFueSB7XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuIHJlZi5pbnN0YW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlZjtcbiAgICB9XG4gIH1cblxuICBpbml0aWFsaXNlKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMudGV4dFNlYXJjaERlbGVnYXRlLmluaXRpYWxpc2UoaW5qZWN0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29sdW1uTW9kZWwge1xuICBleHBvcnQgY29uc3QgQ0VMTF9SRU5ERVJFUl9DT01QT05FTlRfUk9XX0NBQ0hFID0gU3ltYm9sKCdhdXAtY2VsbC1yZW5kZXJlcjpyb3ctZGF0YS1jYWNoZScpO1xuICBleHBvcnQgdHlwZSBUZXh0UHJvcGVydGllc1Byb3ZpZGVyID0gKCkgPT4gQ29sdW1uVGV4dFByb3BlcnRpZXNcbn1cblxuIl19
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvY29sdW1uL2NvbHVtbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFDLFlBQVksRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQXNCLG1CQUFtQixFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQzVHLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbkMsTUFBTSxpRkFBaUYsQ0FBQztBQVF6RixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7SUFDaEIsT0FBTztBQUNULENBQUMsQ0FBQztBQW9CRixNQUFNLHVCQUE2QixTQUFRLHlCQUF5QixDQUFDLFFBQWE7SUFDeEUsU0FBUyxDQUFpQztJQUMxQyxJQUFJLEdBQXFCLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFFcEQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSx5QkFBeUIsQ0FBQyxRQUFRLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVE7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxD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QUFJLENBQUMsWUFBWSxDQUFDLCtDQUErQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1NBQ3hFO0lBQ0gsQ0FBQztJQUNTLDBCQUEwQixDQUFDLEdBQStCO1FBQ2xFLElBQUksR0FBRyxZQUFZLFlBQVksRUFBRTtZQUMvQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDckI7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBMUpDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBd0JEO0lBREMsT0FBTyxFQUFFOzs7OzBEQUdUO0FBZ0lILFdBQWlCLFdBQVc7SUFDYiw2Q0FBaUMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUU5RixDQUFDLEVBSGdCLFdBQVcsS0FBWCxXQUFXLFFBRzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge0NvbXBvbmVudFJlZiwgSW5qZWN0b3J9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NvbW1hbmQsIERlbGVnYXRpbmdWYWx1ZU1vZGVsLCBEc2wsIEZ1bmN0aW9ucywgR2FyYmFnZUNvbGxlY3RvciwgVmFsdWVNb2RlbH0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2Fzc2VydCwgbGFuZywgU3RyaW5neX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSBcImZhc3QtdHlwZXNjcmlwdC1tZW1vaXplXCI7XG5pbXBvcnQge0VkaXRTZXNzaW9ufSBmcm9tIFwiLi4vZWRpdG9yL2VkaXQtc2Vzc2lvblwiO1xuaW1wb3J0IHtDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyfSBmcm9tIFwiLi4vZmlsdGVyL2NvbHVtbi10ZXh0LXNlYXJjaC1mb3JtYXR0ZXJcIjtcbmltcG9ydCB7Q2VsbEVkaXRvclBvcnRhbFJlZiwgQ2VsbEhlYWRlclBvcnRhbFJlZiwgQ2VsbFJlbmRlcmVyUG9ydGFsUmVmfSBmcm9tIFwiLi4vcmVuZGVyZXIvY2VsbC1wb3J0YWwtcmVmXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0SGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG59IGZyb20gXCIuLi9yZW5kZXJlci9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlQ2VsbENvbXBvbmVudH0gZnJvbSBcIi4uL3JlbmRlcmVyL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFibGVIZWFkZXJDZWxsQ29tcG9uZW50fSBmcm9tIFwiLi4vcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbHVtbk1hbmFnZXJ9IGZyb20gXCIuL2NvbHVtbi1tYW5hZ2VyXCI7XG5pbXBvcnQge0NvbHVtbk9yZGVyTWFuYWdlcn0gZnJvbSBcIi4vY29sdW1uLW9yZGVyLW1hbmFnZXJcIjtcbmltcG9ydCB7Q29sdW1uVGV4dFByb3BlcnRpZXN9IGZyb20gXCIuL2NvbHVtbi10ZXh0LXByb3BlcnRpZXNcIjtcblxuXG5jb25zdCBub29wID0gKCkgPT4ge1xuICAvLyBub29wXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvd0RhdGE8Um93PiB7XG4gIHJvdzogUm93O1xuICBlZGl0U2Vzc2lvbj86IEVkaXRTZXNzaW9uPFJvdz47XG4gIGVkaXRSb3dDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBPbkNvbXBvbmVudEluaXQ8Qz4gPSAoY29tcG9uZW50OiBDKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFPiB7XG4gIG9uQ29tcG9uZW50SW5pdD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQ7XG4gIG9uUm93VXBkYXRlPzogKGNvbXBvbmVudDogRSwgcm93OiBSb3cpID0+IHZvaWQ7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBNdXRhYmxlQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEUsIFAgZXh0ZW5kcyBrZXlvZiBSb3c+IGV4dGVuZHMgQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+IHtcbiAgb25WYWx1ZUVkaXQ6IChyb3c6IFJvdywgaXM6IFJvd1tQXSwgd2FzOiBSb3dbUF0pID0+IHZvaWQ7XG59XG5cbmNsYXNzIENvbHVtblRleHRTZWFyY2hXcmFwcGVyPFJvdz4gZXh0ZW5kcyBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyLkRlbGVnYXRlPFJvdz57XG4gIHByaXZhdGUgX2RlbGVnYXRlOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPGFueT47XG4gIHByaXZhdGUgX21hcDogKHJvdzpSb3cpID0+IGFueSA9IEZ1bmN0aW9ucy5pZGVudGl0eTtcblxuICBpbml0aWFsaXNlKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSBpbnN0YW5jZW9mIENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXIuRGVsZWdhdGUpIHtcbiAgICAgIHRoaXMuX2RlbGVnYXRlLmluaXRpYWxpc2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdChyb3c6IFJvdyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9tYXAocm93KTtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWxlZ2F0ZSA/IHRoaXMuX2RlbGVnYXRlLmZvcm1hdCh2YWx1ZSkgOiBcIlwiO1xuICAgIC8vIGNvbnNvbGUubG9nKHtmb3JtYXQ6IHJvdywgdmFsdWUsIHRleHQ6cmVzdWx0fSlcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2V0RGVsZWdhdGU8VD4oZm9ybWF0dGVyOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPFQ+LCBtYXBwZXI/OiAocm93OlJvdykgPT4gVCkge1xuICAgIHRoaXMuX2RlbGVnYXRlID0gZm9ybWF0dGVyO1xuICAgIHRoaXMuX21hcCA9IG1hcHBlciA/PyBGdW5jdGlvbnMuaWRlbnRpdHk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbk1vZGVsPFJvdz4gZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwcml2YXRlIF9jb2x1bW5UZXh0UHJvcGVydGllczogQ29sdW1uVGV4dFByb3BlcnRpZXM7XG5cbiAgcHJpdmF0ZSBfY29sdW1uSGVhZGVyUG9ydGFsUmVmOiBDZWxsSGVhZGVyUG9ydGFsUmVmPFJvdywgYW55PjtcbiAgcHJpdmF0ZSBfY2VsbFJlbmRlcmVyUG9ydGFsUmVmOiBDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93LCBhbnk+O1xuICBwcml2YXRlIF9jZWxsRWRpdG9yUG9ydGFsUmVmOiBDZWxsRWRpdG9yUG9ydGFsUmVmPFJvdywgYW55PjtcblxuICBwcml2YXRlIF9lbmFibGVSb3dTZWxlY3Rpb24gPSB0cnVlO1xuICBwcml2YXRlIF9mbGV4ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFZpc2liaWxpdHkkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQodHJ1ZSkpO1xuICBwcml2YXRlIF9tYXN0ZXJWaXNpYmlsaXR5JCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRydWUpKTtcbiAgcHJpdmF0ZSBfdXNlclZpc2libGUkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQodGhpcy5fZGVmYXVsdFZpc2liaWxpdHkkKSk7XG4gIHJlYWRvbmx5IGRhc2hlcmlzZWRDb2x1bW5JZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlYXJjaERlbGVnYXRlID0gbmV3IENvbHVtblRleHRTZWFyY2hXcmFwcGVyPFJvdz4oKTtcblxuICByZWFkb25seSB2aXNpYmxlJDogVmFsdWVNb2RlbDxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb2x1bW5JZDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9yZGVyOiBDb2x1bW5PcmRlck1hbmFnZXIsIHByaXZhdGUgdGV4dFByb3BlcnRpZXNQcm92aWRlcjogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcikge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge3ZhbHVlT2Z9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuaW5zdGFsbEhlYWRlclJlbmRlcmVyKCk7XG4gICAgdGhpcy5kYXNoZXJpc2VkQ29sdW1uSWQgPSBTdHJpbmd5LmZyb20oY29sdW1uSWQpLmRhc2hlcml6ZSgpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy52aXNpYmxlJCA9IHZhbHVlT2YuYWxsKFxuICAgICAgdGhpcy5fdXNlclZpc2libGUkLFxuICAgICAgdGhpcy5fbWFzdGVyVmlzaWJpbGl0eSRcbiAgICApLmFyZVRydXRoeSgpXG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEhlYWRlclJlbmRlcmVyKCkge1xuICAgIHRoaXMuY2VsbEhlYWRlclJlbmRlcmVyKERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQsIGNvbHVtbikgPT4ge1xuICAgICAgY29tcG9uZW50LmhlYWRlclRleHQgPSBjb2x1bW4uZ2V0SGVhZGVyVGV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoKT8uaGVhZGVyVGV4dCgpID8/IHRoaXMuZ2V0RGVmYXVsdEhlYWRlclRleHQoKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlJC52YWx1ZTtcbiAgfVxuXG4gIHZpc2libGVXaGlsZSh2aXNpYmxlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KTogdGhpcyB7XG4gICAgdGhpcy5fdXNlclZpc2libGUkLnNldERlbGVnYXRlKHZpc2libGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldERlZmF1bHRWaXNpYmlsaXR5KHZpc2libGU6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLl9kZWZhdWx0VmlzaWJpbGl0eSQuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TWFzdGVyVmlzaWJpbGl0eSh2aXNpYmxlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgdGhpcy5fbWFzdGVyVmlzaWJpbGl0eSQuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEhlYWRlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uSWQ7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKCk6IENvbHVtblRleHRQcm9wZXJ0aWVzIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPz8gdGhpcy50ZXh0UHJvcGVydGllc1Byb3ZpZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjb2x1bW5UZXh0UHJvcGVydGllcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBjb2x1bW5UZXh0UHJvcGVydGllc1xuICAgKi9cbiAgdGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXMpO1xuICB9XG5cbiAgY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBvc2l0aW9uQWZ0ZXIoY29sdW1uOiBDb2x1bW5Nb2RlbDxhbnk+KTp0aGlzIHtcbiAgICB0aGlzLm9yZGVyLnBvc2l0aW9uKHRoaXMsIHthZnRlcjogY29sdW1ufSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwb3NpdGlvbkJlZm9yZShjb2x1bW46IENvbHVtbk1vZGVsPGFueT4pOnRoaXMge1xuICAgIHRoaXMub3JkZXIucG9zaXRpb24odGhpcywge2JlZm9yZTogY29sdW1ufSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRTZWFyY2hUZXh0Rm9yKHJvdzogUm93KTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRTZWFyY2hEZWxlZ2F0ZS5mb3JtYXQocm93KVxuICB9XG5cbiAgY29uZmlndXJlQ29sdW1uVGV4dFNlYXJjaChmb3JtYXR0ZXI6IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXI8Um93Pik6dGhpc1xuICBjb25maWd1cmVDb2x1bW5UZXh0U2VhcmNoPFQ+KGZvcm1hdHRlcjogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxUPiwgbWFwcGVyOiAocm93OlJvdykgPT4gVCk6dGhpc1xuICBjb25maWd1cmVDb2x1bW5UZXh0U2VhcmNoKGZvcm1hdHRlcjogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+LCBtYXBwZXI/OiAocm93OlJvdykgPT4gYW55KTp0aGlzIHtcbiAgICBhc3NlcnQubm90TmlsKGZvcm1hdHRlcik7XG4gICAgLy8gY29uc29sZS5sb2coe2NvbDogdGhpcy5jb2x1bW5JZCwgZm9ybWF0dGVyfSk7XG4gICAgdGhpcy50ZXh0U2VhcmNoRGVsZWdhdGUuc2V0RGVsZWdhdGUoZm9ybWF0dGVyLCBtYXBwZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlSGVhZGVyUmVuZGVyZXI8Qz4oY29uZmlnOiBDZWxsSGVhZGVyUG9ydGFsUmVmPFJvdywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuX2NvbHVtbkhlYWRlclBvcnRhbFJlZiA9IGNvbmZpZztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVDZWxsUmVuZGVyZXI8Qz4oY29uZmlnOiBDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93LCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmID0gY29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUNlbGxFZGl0b3I8RT4oY2VsbEVkaXRvcjogQ2VsbEVkaXRvclBvcnRhbFJlZjxSb3csIEU+KTogdm9pZCB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZiA9IGNlbGxFZGl0b3I7XG4gIH1cblxuICBjZWxsSGVhZGVyUmVuZGVyZXI8Qz4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxDPiwgaW5pdGlhbGlzZXI6IChjb21wb25lbnQ6IEMsIGNvbHVtbjogQ29sdW1uTW9kZWw8Um93PikgPT4gdm9pZCk6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlSGVhZGVyUmVuZGVyZXIobmV3IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBDPihjb21wb25lbnRUeXBlLCBpbml0aWFsaXNlcikpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmxleChmbGV4ID0gdHJ1ZSkge1xuICAgIHRoaXMuX2ZsZXggPSBmbGV4O1xuICB9XG5cbiAgaXNGbGV4KCkge1xuICAgIHJldHVybiB0aGlzLl9mbGV4O1xuICB9XG5cbiAgaGFzRWRpdG9yUG9ydGFsKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWY7XG4gIH1cblxuICBhdHRhY2hIZWFkZXJDZWxsKGhvc3Q6IGFueSkge1xuICAgIHRoaXMuX2NvbHVtbkhlYWRlclBvcnRhbFJlZi5pbml0aWFsaXNlSG9zdChob3N0LCB0aGlzKTtcbiAgfVxuXG4gIGF0dGFjaENlbGwoaG9zdDogYW55KSB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QsIHRoaXMpO1xuICAgIGlmICh0aGlzLmhhc0VkaXRvclBvcnRhbCgpKSB7XG4gICAgICB0aGlzLl9jZWxsRWRpdG9yUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGVhZGVyQXR0YWNoZWQoaG9zdDogVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnQocmVmKTtcbiAgICB0aGlzLl9jb2x1bW5IZWFkZXJQb3J0YWxSZWYub25Qb3J0YWxBdHRhY2hlZChob3N0LCBjb21wb25lbnQpO1xuICB9XG5cbiAgb25SZW5kZXJlckF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWYpO1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIGNvbXBvbmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvbkVkaXRvckF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIHRoaXMuZ2V0Q29tcG9uZW50KHJlZikpO1xuICB9XG5cbiAgdXBkYXRlUG9ydGFsQ29udGVudChob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93Pikge1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5wdXNoU3RhdGUoaG9zdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NlbGVjdFJvd09uQ2xpY2soc2VsZWN0Um93T25DbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2VuYWJsZVJvd1NlbGVjdGlvbiA9IHNlbGVjdFJvd09uQ2xpY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZVJvd1NlbGVjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnQocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZik6IGFueSB7XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuIHJlZi5pbnN0YW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihcImhlYWRlcnMgb25seSBzdXBwb3J0IGNvbXBvbmVudCBwb3J0YWxzLCBnb3RcIiwgcmVmKTtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBoZWFkZXJzIG9ubHkgc3VwcG9ydCBjb21wb25lbnQgcG9ydGFscywgZ290ICR7cmVmfWApXG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogYW55IHtcbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gcmVmLmluc3RhbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVmO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpc2UoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy50ZXh0U2VhcmNoRGVsZWdhdGUuaW5pdGlhbGlzZShpbmplY3Rvcik7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDb2x1bW5Nb2RlbCB7XG4gIGV4cG9ydCBjb25zdCBDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEUgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyOnJvdy1kYXRhLWNhY2hlJyk7XG4gIGV4cG9ydCB0eXBlIFRleHRQcm9wZXJ0aWVzUHJvdmlkZXIgPSAoKSA9PiBDb2x1bW5UZXh0UHJvcGVydGllc1xufVxuXG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { assert } from '@coolon/pectin';
|
|
3
|
-
import {
|
|
3
|
+
import { MemoizeGet } from '@coolon/typescript-utilities';
|
|
4
|
+
import { Memoize } from 'fast-typescript-memoize';
|
|
4
5
|
export const treeNodeDecorator = Symbol('TreeDecorator');
|
|
5
6
|
export var DecoratedTreeNode;
|
|
6
7
|
(function (DecoratedTreeNode) {
|
|
@@ -112,7 +113,7 @@ export var DecoratedTreeNode;
|
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
__decorate([
|
|
115
|
-
|
|
116
|
+
MemoizeGet(),
|
|
116
117
|
__metadata("design:type", Array),
|
|
117
118
|
__metadata("design:paramtypes", [])
|
|
118
119
|
], Decorator.prototype, "children", null);
|
|
@@ -165,10 +166,10 @@ export var DecoratedTreeNode;
|
|
|
165
166
|
__metadata("design:returntype", Array)
|
|
166
167
|
], Decorator.prototype, "ancestors", null);
|
|
167
168
|
__decorate([
|
|
168
|
-
|
|
169
|
+
MemoizeGet(),
|
|
169
170
|
__metadata("design:type", Number),
|
|
170
171
|
__metadata("design:paramtypes", [])
|
|
171
172
|
], Decorator.prototype, "depth", null);
|
|
172
173
|
DecoratedTreeNode.Decorator = Decorator;
|
|
173
174
|
})(DecoratedTreeNode || (DecoratedTreeNode = {}));
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGVkLXRyZWUtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvZGVjb3JhdGVkLXRyZWUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFRekQsTUFBTSxLQUFXLGlCQUFpQixDQXNLakM7QUF0S0QsV0FBaUIsaUJBQWlCO0lBRWhDLFNBQWdCLFlBQVksQ0FBSSxJQUFPLEVBQUUsZUFBaUM7UUFDeEUsT0FBTyxJQUFJLFNBQVMsQ0FBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUMxRSxDQUFDO0lBRmUsOEJBQVksZUFFM0IsQ0FBQTtJQUVELFNBQWdCLFlBQVksQ0FBSSxJQUFNO1FBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFIZSw4QkFBWSxlQUczQixDQUFBO0lBRUQsTUFBYSxTQUFTO1FBRUM7UUFBMkQ7UUFBMEI7UUFBMUcsWUFBcUIsTUFBd0MsRUFBbUIsSUFBTyxFQUFtQixlQUFpQztZQUF0SCxXQUFNLEdBQU4sTUFBTSxDQUFrQztZQUFtQixTQUFJLEdBQUosSUFBSSxDQUFHO1lBQW1CLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtZQUN6SSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyx3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OzhDQUdUO0lBMkJEO1FBQUMsT0FBTyxFQUFFOzs7MENBR1Q7SUE1R1UsMkJBQVMsWUF5SnJCLENBQUE7QUFFSCxDQUFDLEVBdEtnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBc0tqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge01lbW9pemV9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5cbmV4cG9ydCBjb25zdCB0cmVlTm9kZURlY29yYXRvciA9IFN5bWJvbCgnVHJlZURlY29yYXRvcicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+IHtcbiAgW3RyZWVOb2RlRGVjb3JhdG9yXTogRGVjb3JhdGVkVHJlZU5vZGUuRGVjb3JhdG9yPFQ+XG59XG5cbmV4cG9ydCB0eXBlIERlY29yYXRlZFRyZWVOb2RlPFQ+ID0gVCAmIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+XG5cbmV4cG9ydCBuYW1lc3BhY2UgRGVjb3JhdGVkVHJlZU5vZGUge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZVJvb3Q8VD4obm9kZTogVCwgZXh0cmFjdENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdKTpEZWNvcmF0ZWRUcmVlTm9kZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEZWNvcmF0b3I8VD4odW5kZWZpbmVkLCBub2RlLCBleHRyYWN0Q2hpbGRyZW4pLmRlY29yYXRlZE5vZGU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVjb3JhdG9yPFQ+KG5vZGU6VCk6RGVjb3JhdG9yPFQ+IHtcbiAgICBhc3NlcnQubm90TmlsKG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdKTtcbiAgICByZXR1cm4gbm9kZVt0cmVlTm9kZURlY29yYXRvcl07XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRGVjb3JhdG9yPFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmVudDogRGVjb3JhdGVkVHJlZU5vZGU8VD4gfCB1bmRlZmluZWQsIHByaXZhdGUgcmVhZG9ubHkgbm9kZTogVCwgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0Q2hpbGRyZW46IChub2RlOiBUKSA9PiBUW10pIHtcbiAgICAgIG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdID0gdGhpczsgLy8gaW5qZWN0IG91ciBkZWNvcmF0b3IuXG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGdldCBjaGlsZHJlbigpOiBEZWNvcmF0ZWRUcmVlTm9kZTxUPltdIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RDaGlsZHJlbih0aGlzLm5vZGUpXG4gICAgICAgIC5tYXAoY2hpbGQgPT4gY2hpbGRbdHJlZU5vZGVEZWNvcmF0b3JdID8/IG5ldyBEZWNvcmF0b3IodGhpcy5kZWNvcmF0ZWROb2RlLCBjaGlsZCwgdGhpcy5leHRyYWN0Q2hpbGRyZW4pKVxuICAgICAgICAubWFwKGQgPT4gZC5kZWNvcmF0ZWROb2RlKVxuICAgIH1cblxuICAgIGdldCBkZWNvcmF0ZWROb2RlKCk6IERlY29yYXRlZFRyZWVOb2RlPFQ+IHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUgYXMgRGVjb3JhdGVkVHJlZU5vZGU8VD5cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NCZWZvcmUoKTogVFtdIHtcbiAgICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLnNsaWNlKDAsIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NBZnRlcigpOiBUW10ge1xuICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudFt0cmVlTm9kZURlY29yYXRvcl0uY2hpbGRyZW4uc2xpY2UoMSArIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3MoKTogVFtdIHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQodGhpcy5zaWJsaW5nc0JlZm9yZSgpLCB0aGlzLnNpYmxpbmdzQWZ0ZXIoKSk7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzRmlyc3RDaGlsZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMubXlJbmRleCgpID09PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIHByb3RlY3RlZCBteUluZGV4KCkge1xuICAgICAgY29uc3QgbXlJbmRleCA9IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gdGhpcy5ub2RlID09PSBjaGlsZCk7XG4gICAgICBhc3NlcnQuaXNUcnV0aHkobXlJbmRleCA+PSAwLCAnaWxsZWdhbCBzdGF0ZSwgZXhwZWN0ZWQgaW5kZXggdG8gYmUgPj0gMCcpO1xuICAgICAgcmV0dXJuIG15SW5kZXg7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzTGFzdENoaWxkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5teUluZGV4KCkgPT09IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5sZW5ndGggLSAxIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGhhc1NpYmxpbmdzKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLmxlbmd0aCA+IDEgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBmaW5kKHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVCB7XG4gICAgLy8gICByZXR1cm4gZmluZCh0aGlzLmRlc2NlbmRhbnRzKCksIHByZWRpY2F0ZSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gc2VsZWN0KHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVFtdIHtcbiAgICAvLyAgIHJldHVybiBmaWx0ZXIodGhpcy5kZXNjZW5kYW50cygpLCBwcmVkaWNhdGUpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGZsYXR0ZW5JbnRvKGFycmF5OiBUW10pOiBUW10ge1xuICAgIC8vICAgdGhpcy52aXNpdFNlbGZBbmREZXNjZW5kYW50cyhjaGlsZCA9PiBhcnJheS5wdXNoKGNoaWxkKSk7XG4gICAgLy8gICByZXR1cm4gYXJyYXk7XG4gICAgLy8gfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGFuY2VzdG9ycygpOiBUW10ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmFuY2VzdG9ycygpLmNvbmNhdChbdGhpcy5wYXJlbnRdKSA6IFtdO1xuICAgIH1cblxuICAgIC8vIGFuY2VzdG9yc0FuZFNlbGYoKTogVFtdIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ2FuY2VzdG9yc0FuZFNlbGYnLCAoKSA9PiB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmFuY2VzdG9ycygpLmNvbmNhdChbKHRoaXMuZGVjb3JhdGVkU2VsZildKTtcbiAgICAvLyAgIH0pO1xuICAgIC8vIH1cblxuICAgIC8vIHBhdGhUb1BhcmVudChwYXJlbnQ6IFQpOiBUW10ge1xuICAgIC8vICAgaWYgKHRoaXMubm9kZSA9PT0gcGFyZW50Lm5vZGUpIHtcbiAgICAvLyAgICAgcmV0dXJuIFtdO1xuICAgIC8vICAgfSBlbHNlIGlmICh0aGlzLnBhcmVudCkge1xuICAgIC8vICAgICBjb25zdCBwYXRoVG9QYXJlbnQgPSB0aGlzLnBhcmVudC5wYXRoVG9QYXJlbnQocGFyZW50KTtcbiAgICAvLyAgICAgcmV0dXJuIHBhdGhUb1BhcmVudC5jb25jYXQoW3RoaXMucGFyZW50XSk7XG4gICAgLy8gICB9IGVsc2Uge1xuICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcmVudCBpcyBub3QgYW4gYW5jZXN0b3InKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBwYXRoVG9QYXJlbnRBbmRTZWxmKHBhcmVudCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5wYXRoVG9QYXJlbnQocGFyZW50KS5jb25jYXQoW3RoaXMuZGVjb3JhdGVkU2VsZl0pO1xuICAgIC8vIH1cblxuICAgIGlzUm9vdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhdGhpcy5wYXJlbnQ7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGdldCBkZXB0aCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuaXNSb290KCkgPyAwIDogdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmRlcHRoICsgMTtcbiAgICB9XG5cbiAgICBpc0xlYWYoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNSb290KCkgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPCAxO1xuICAgIH1cblxuICAgIGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvLyBkZXB0aEZyb21QYXJlbnQocGFyZW50KTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLnBhdGhUb1BhcmVudChwYXJlbnQpLmxlbmd0aDtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB0cmVlRGVwdGgoKTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ3RyZWVEZXB0aCcsICgpID0+IHtcbiAgICAvLyAgICAgcmV0dXJuIDEgKyB0aGlzLmRlc2NlbmRhbnRzKCkubWFwKGNoaWxkID0+IGNoaWxkLmRlcHRoRnJvbVBhcmVudCh0aGlzKSkucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBNYXRoLm1heChwcmV2LCBjdXJyZW50KSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG5cbiAgICAvLyBmbGF0dGVuKCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5tZW1vaXplKCdmbGF0dGVuJywgKCkgPT4ge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5mbGF0dGVuSW50byhbXSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB2aXNpdDxWIGV4dGVuZHMgVmlzaXRvcjxUPj4odmlzaXRvcjogVik6IFYge1xuICAgIC8vICAgdmlzaXRvci52aXNpdCh0aGlzIGFzIGFueSBhcyBUKTtcbiAgICAvLyAgIHJldHVybiB2aXNpdG9yO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIHZpc2l0Q2hpbGRyZW48ViBleHRlbmRzIFZpc2l0b3I8VD4+KHZpc2l0b3I6IFYpOiBWIHtcbiAgICAvLyAgIGVhY2godGhpcy5kZWNvcmF0ZWRDaGlsZHJlbiwgY2hpbGQgPT4gY2hpbGQudmlzaXQodmlzaXRvcikpO1xuICAgIC8vICAgcmV0dXJuIHZpc2l0b3I7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXRTZWxmQW5kRGVzY2VuZGFudHMoY2FsbGJhY2s6IChpdDogVCkgPT4gdm9pZCkge1xuICAgIC8vICAgdGhpcy52aXNpdChuZXcgU2VsZkFuZERlc2NlbmRhbnRzVmlzaXRvci5FYWNoPFQ+KGNhbGxiYWNrKSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXREZXNjZW5kYW50cyhjYWxsYmFjazogKGl0OiBUKSA9PiB2b2lkKSB7XG4gICAgLy8gICB0aGlzLnZpc2l0Q2hpbGRyZW4obmV3IFNlbGZBbmREZXNjZW5kYW50c1Zpc2l0b3IuRWFjaDxUPihjYWxsYmFjaykpO1xuICAgIC8vIH1cbiAgICAvL1xuXG4gIH1cblxufVxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGVkLXRyZWUtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvZGVjb3JhdGVkLXRyZWUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBUXpELE1BQU0sS0FBVyxpQkFBaUIsQ0FzS2pDO0FBdEtELFdBQWlCLGlCQUFpQjtJQUVoQyxTQUFnQixZQUFZLENBQUksSUFBTyxFQUFFLGVBQWlDO1FBQ3hFLE9BQU8sSUFBSSxTQUFTLENBQUksU0FBUyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDMUUsQ0FBQztJQUZlLDhCQUFZLGVBRTNCLENBQUE7SUFFRCxTQUFnQixZQUFZLENBQUksSUFBTTtRQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBSGUsOEJBQVksZUFHM0IsQ0FBQTtJQUVELE1BQWEsU0FBUztRQUVDO1FBQTJEO1FBQTBCO1FBQTFHLFlBQXFCLE1BQXdDLEVBQW1CLElBQU8sRUFBbUIsZUFBaUM7WUFBdEgsV0FBTSxHQUFOLE1BQU0sQ0FBa0M7WUFBbUIsU0FBSSxHQUFKLElBQUksQ0FBRztZQUFtQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7WUFDekks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LE9BQU8sRUFBRTs7OztnREFHVDtJQWdCRDtRQURDLE9BQU8sRUFBRTs7Ozs4Q0FHVDtJQTJCRDtRQUFDLFVBQVUsRUFBRTs7OzBDQUdaO0lBNUdVLDJCQUFTLFlBeUpyQixDQUFBO0FBRUgsQ0FBQyxFQXRLZ0IsaUJBQWlCLEtBQWpCLGlCQUFpQixRQXNLakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Fzc2VydH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgTWVtb2l6ZUdldCB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtNZW1vaXplfSBmcm9tICdmYXN0LXR5cGVzY3JpcHQtbWVtb2l6ZSc7XG5cbmV4cG9ydCBjb25zdCB0cmVlTm9kZURlY29yYXRvciA9IFN5bWJvbCgnVHJlZURlY29yYXRvcicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+IHtcbiAgW3RyZWVOb2RlRGVjb3JhdG9yXTogRGVjb3JhdGVkVHJlZU5vZGUuRGVjb3JhdG9yPFQ+XG59XG5cbmV4cG9ydCB0eXBlIERlY29yYXRlZFRyZWVOb2RlPFQ+ID0gVCAmIEhhc1RyZWVOb2RlRGVjb3JhdG9yPFQ+XG5cbmV4cG9ydCBuYW1lc3BhY2UgRGVjb3JhdGVkVHJlZU5vZGUge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZVJvb3Q8VD4obm9kZTogVCwgZXh0cmFjdENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdKTpEZWNvcmF0ZWRUcmVlTm9kZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEZWNvcmF0b3I8VD4odW5kZWZpbmVkLCBub2RlLCBleHRyYWN0Q2hpbGRyZW4pLmRlY29yYXRlZE5vZGU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVjb3JhdG9yPFQ+KG5vZGU6VCk6RGVjb3JhdG9yPFQ+IHtcbiAgICBhc3NlcnQubm90TmlsKG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdKTtcbiAgICByZXR1cm4gbm9kZVt0cmVlTm9kZURlY29yYXRvcl07XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRGVjb3JhdG9yPFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmVudDogRGVjb3JhdGVkVHJlZU5vZGU8VD4gfCB1bmRlZmluZWQsIHByaXZhdGUgcmVhZG9ubHkgbm9kZTogVCwgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0Q2hpbGRyZW46IChub2RlOiBUKSA9PiBUW10pIHtcbiAgICAgIG5vZGVbdHJlZU5vZGVEZWNvcmF0b3JdID0gdGhpczsgLy8gaW5qZWN0IG91ciBkZWNvcmF0b3IuXG4gICAgfVxuXG4gICAgQE1lbW9pemVHZXQoKVxuICAgIGdldCBjaGlsZHJlbigpOiBEZWNvcmF0ZWRUcmVlTm9kZTxUPltdIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RDaGlsZHJlbih0aGlzLm5vZGUpXG4gICAgICAgIC5tYXAoY2hpbGQgPT4gY2hpbGRbdHJlZU5vZGVEZWNvcmF0b3JdID8/IG5ldyBEZWNvcmF0b3IodGhpcy5kZWNvcmF0ZWROb2RlLCBjaGlsZCwgdGhpcy5leHRyYWN0Q2hpbGRyZW4pKVxuICAgICAgICAubWFwKGQgPT4gZC5kZWNvcmF0ZWROb2RlKVxuICAgIH1cblxuICAgIGdldCBkZWNvcmF0ZWROb2RlKCk6IERlY29yYXRlZFRyZWVOb2RlPFQ+IHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUgYXMgRGVjb3JhdGVkVHJlZU5vZGU8VD5cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NCZWZvcmUoKTogVFtdIHtcbiAgICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLnNsaWNlKDAsIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3NBZnRlcigpOiBUW10ge1xuICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudFt0cmVlTm9kZURlY29yYXRvcl0uY2hpbGRyZW4uc2xpY2UoMSArIHRoaXMubXlJbmRleCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgc2libGluZ3MoKTogVFtdIHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQodGhpcy5zaWJsaW5nc0JlZm9yZSgpLCB0aGlzLnNpYmxpbmdzQWZ0ZXIoKSk7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzRmlyc3RDaGlsZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMubXlJbmRleCgpID09PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIHByb3RlY3RlZCBteUluZGV4KCkge1xuICAgICAgY29uc3QgbXlJbmRleCA9IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gdGhpcy5ub2RlID09PSBjaGlsZCk7XG4gICAgICBhc3NlcnQuaXNUcnV0aHkobXlJbmRleCA+PSAwLCAnaWxsZWdhbCBzdGF0ZSwgZXhwZWN0ZWQgaW5kZXggdG8gYmUgPj0gMCcpO1xuICAgICAgcmV0dXJuIG15SW5kZXg7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGlzTGFzdENoaWxkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5teUluZGV4KCkgPT09IHRoaXMucGFyZW50W3RyZWVOb2RlRGVjb3JhdG9yXS5jaGlsZHJlbi5sZW5ndGggLSAxIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGhhc1NpYmxpbmdzKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmNoaWxkcmVuLmxlbmd0aCA+IDEgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBmaW5kKHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVCB7XG4gICAgLy8gICByZXR1cm4gZmluZCh0aGlzLmRlc2NlbmRhbnRzKCksIHByZWRpY2F0ZSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gc2VsZWN0KHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KTogVFtdIHtcbiAgICAvLyAgIHJldHVybiBmaWx0ZXIodGhpcy5kZXNjZW5kYW50cygpLCBwcmVkaWNhdGUpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGZsYXR0ZW5JbnRvKGFycmF5OiBUW10pOiBUW10ge1xuICAgIC8vICAgdGhpcy52aXNpdFNlbGZBbmREZXNjZW5kYW50cyhjaGlsZCA9PiBhcnJheS5wdXNoKGNoaWxkKSk7XG4gICAgLy8gICByZXR1cm4gYXJyYXk7XG4gICAgLy8gfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGFuY2VzdG9ycygpOiBUW10ge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmFuY2VzdG9ycygpLmNvbmNhdChbdGhpcy5wYXJlbnRdKSA6IFtdO1xuICAgIH1cblxuICAgIC8vIGFuY2VzdG9yc0FuZFNlbGYoKTogVFtdIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ2FuY2VzdG9yc0FuZFNlbGYnLCAoKSA9PiB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmFuY2VzdG9ycygpLmNvbmNhdChbKHRoaXMuZGVjb3JhdGVkU2VsZildKTtcbiAgICAvLyAgIH0pO1xuICAgIC8vIH1cblxuICAgIC8vIHBhdGhUb1BhcmVudChwYXJlbnQ6IFQpOiBUW10ge1xuICAgIC8vICAgaWYgKHRoaXMubm9kZSA9PT0gcGFyZW50Lm5vZGUpIHtcbiAgICAvLyAgICAgcmV0dXJuIFtdO1xuICAgIC8vICAgfSBlbHNlIGlmICh0aGlzLnBhcmVudCkge1xuICAgIC8vICAgICBjb25zdCBwYXRoVG9QYXJlbnQgPSB0aGlzLnBhcmVudC5wYXRoVG9QYXJlbnQocGFyZW50KTtcbiAgICAvLyAgICAgcmV0dXJuIHBhdGhUb1BhcmVudC5jb25jYXQoW3RoaXMucGFyZW50XSk7XG4gICAgLy8gICB9IGVsc2Uge1xuICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcmVudCBpcyBub3QgYW4gYW5jZXN0b3InKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBwYXRoVG9QYXJlbnRBbmRTZWxmKHBhcmVudCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5wYXRoVG9QYXJlbnQocGFyZW50KS5jb25jYXQoW3RoaXMuZGVjb3JhdGVkU2VsZl0pO1xuICAgIC8vIH1cblxuICAgIGlzUm9vdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhdGhpcy5wYXJlbnQ7XG4gICAgfVxuXG4gICAgQE1lbW9pemVHZXQoKVxuICAgIGdldCBkZXB0aCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuaXNSb290KCkgPyAwIDogdGhpcy5wYXJlbnRbdHJlZU5vZGVEZWNvcmF0b3JdLmRlcHRoICsgMTtcbiAgICB9XG5cbiAgICBpc0xlYWYoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNSb290KCkgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPCAxO1xuICAgIH1cblxuICAgIGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvLyBkZXB0aEZyb21QYXJlbnQocGFyZW50KTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLnBhdGhUb1BhcmVudChwYXJlbnQpLmxlbmd0aDtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB0cmVlRGVwdGgoKTogbnVtYmVyIHtcbiAgICAvLyAgIHJldHVybiB0aGlzLm1lbW9pemUoJ3RyZWVEZXB0aCcsICgpID0+IHtcbiAgICAvLyAgICAgcmV0dXJuIDEgKyB0aGlzLmRlc2NlbmRhbnRzKCkubWFwKGNoaWxkID0+IGNoaWxkLmRlcHRoRnJvbVBhcmVudCh0aGlzKSkucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBNYXRoLm1heChwcmV2LCBjdXJyZW50KSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG5cbiAgICAvLyBmbGF0dGVuKCk6IFRbXSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5tZW1vaXplKCdmbGF0dGVuJywgKCkgPT4ge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5mbGF0dGVuSW50byhbXSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyB2aXNpdDxWIGV4dGVuZHMgVmlzaXRvcjxUPj4odmlzaXRvcjogVik6IFYge1xuICAgIC8vICAgdmlzaXRvci52aXNpdCh0aGlzIGFzIGFueSBhcyBUKTtcbiAgICAvLyAgIHJldHVybiB2aXNpdG9yO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIHZpc2l0Q2hpbGRyZW48ViBleHRlbmRzIFZpc2l0b3I8VD4+KHZpc2l0b3I6IFYpOiBWIHtcbiAgICAvLyAgIGVhY2godGhpcy5kZWNvcmF0ZWRDaGlsZHJlbiwgY2hpbGQgPT4gY2hpbGQudmlzaXQodmlzaXRvcikpO1xuICAgIC8vICAgcmV0dXJuIHZpc2l0b3I7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXRTZWxmQW5kRGVzY2VuZGFudHMoY2FsbGJhY2s6IChpdDogVCkgPT4gdm9pZCkge1xuICAgIC8vICAgdGhpcy52aXNpdChuZXcgU2VsZkFuZERlc2NlbmRhbnRzVmlzaXRvci5FYWNoPFQ+KGNhbGxiYWNrKSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gdmlzaXREZXNjZW5kYW50cyhjYWxsYmFjazogKGl0OiBUKSA9PiB2b2lkKSB7XG4gICAgLy8gICB0aGlzLnZpc2l0Q2hpbGRyZW4obmV3IFNlbGZBbmREZXNjZW5kYW50c1Zpc2l0b3IuRWFjaDxUPihjYWxsYmFjaykpO1xuICAgIC8vIH1cbiAgICAvL1xuXG4gIH1cblxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import {
|
|
2
|
+
import { MemoizeGet } from "@coolon/typescript-utilities";
|
|
3
3
|
import { uniq } from 'lodash';
|
|
4
4
|
/**
|
|
5
5
|
* This a work around for the fact that an activated route with multiple segments doesn't
|
|
@@ -31,7 +31,7 @@ export class ConsolidatedParameterMap {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
__decorate([
|
|
34
|
-
|
|
34
|
+
MemoizeGet(),
|
|
35
35
|
__metadata("design:type", Array),
|
|
36
36
|
__metadata("design:paramtypes", [])
|
|
37
37
|
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
@@ -54,4 +54,4 @@ class ParamMapAdapter {
|
|
|
54
54
|
return Object.keys(this.params);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29saWRhdGVkLXBhcmFtLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL2d1YXJkcy9jb25zb2xpZGF0ZWQtcGFyYW0tbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHeEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUU1Qjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUVsQixTQUFTLEdBQWUsRUFBRSxDQUFDO0lBRTVDLFlBQVksV0FBeUIsRUFBRSxRQUFtQjtRQUN4RCxvR0FBb0c7UUFDcEcsTUFBTSxhQUFhLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFlLENBQUM7UUFDcEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhO2FBQzNCLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNENBQTRDO0lBQ25FLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztDQUNGO0FBSkM7SUFBQyxVQUFVLEVBQUU7OztvREFHWjtBQUdILE1BQU0sZUFBZTtJQUNVO0lBQTdCLFlBQTZCLE1BQStCO1FBQS9CLFdBQU0sR0FBTixNQUFNLENBQXlCO0lBQzVELENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGFyYW1NYXAsIFVybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge01lbW9pemVHZXR9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5pbXBvcnQge01lbW9pemV9IGZyb20gJ2Zhc3QtdHlwZXNjcmlwdC1tZW1vaXplJztcblxuaW1wb3J0IHt1bmlxfSBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFRoaXMgYSB3b3JrIGFyb3VuZCBmb3IgdGhlIGZhY3QgdGhhdCBhbiBhY3RpdmF0ZWQgcm91dGUgd2l0aCBtdWx0aXBsZSBzZWdtZW50cyBkb2Vzbid0XG4gKiBpbmNsdWRlIHRoZSBzZWdtZW50IHBhcmFtcyBpbiB0aGUgcGFyYW1NYXAgYXMgd2VsbCBhcyBlYWNoIHNlZ21lbnQgcmV0dXJucyBhbiBlbXB0eVxuICogcGFyYW0gbWFwIGV2ZW4gd2hlbiBgcGFyYW1ldGVyYHMgaGFzIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zb2xpZGF0ZWRQYXJhbWV0ZXJNYXAgaW1wbGVtZW50cyBQYXJhbU1hcCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbU1hcHM6IFBhcmFtTWFwW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcih1cmxTZWdtZW50czogVXJsU2VnbWVudFtdLCBwYXJhbU1hcD86IFBhcmFtTWFwKSB7XG4gICAgLy8gVE9ETzogY2FuIHdlIGdldCBhbGwgb3VyIHBhcmFtcyBmcm9tIHRlaCB1cmwgc2VnbWVudHM/IElmIHNvIHdlIGNhbiBkcm9wIHRoZSBwYXJhbU1hcCBhbHRvZ2V0aGVyLlxuICAgIGNvbnN0IHNlZ21lbnRQYXJhbXMgPSAodXJsU2VnbWVudHMgfHwgW10pLm1hcChzID0+IG5ldyBQYXJhbU1hcEFkYXB0ZXIocy5wYXJhbWV0ZXJzKSkgYXMgUGFyYW1NYXBbXTtcbiAgICB0aGlzLnBhcmFtTWFwcyA9IHNlZ21lbnRQYXJhbXNcbiAgICAgIC5jb25jYXQocGFyYW1NYXApXG4gICAgICAuZmlsdGVyKG0gPT4gISFtKTsgLy8gdGhlIGFjdGl2YXRlZCByb3V0ZSBwYXJhbSBtYXAgY2FuIGJlIG51bGxcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBwYXJhbU1hcCA9IHRoaXMucGFyYW1NYXBzLmZpbmQobSA9PiBtLmhhcyhuYW1lKSk7XG4gICAgcmV0dXJuIHBhcmFtTWFwLmdldChuYW1lKTtcbiAgfVxuXG4gIGdldEFsbChuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcGFyYW1NYXAgPSB0aGlzLnBhcmFtTWFwcy5maW5kKG0gPT4gbS5oYXMobmFtZSkpO1xuICAgIHJldHVybiBwYXJhbU1hcC5nZXRBbGwobmFtZSk7XG4gIH1cblxuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5wYXJhbU1hcHMuZmluZChtID0+IG0uaGFzKG5hbWUpKTtcbiAgfVxuXG4gIEBNZW1vaXplR2V0KClcbiAgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB1bmlxKHRoaXMucGFyYW1NYXBzLnJlZHVjZSgocmVzdWx0LCBwYXJhbXMpID0+IHJlc3VsdC5jb25jYXQocGFyYW1zLmtleXMpLCBbXSkpO1xuICB9XG59XG5cbmNsYXNzIFBhcmFtTWFwQWRhcHRlciBpbXBsZW1lbnRzIFBhcmFtTWFwIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwYXJhbXM6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zW25hbWVdO1xuICB9XG5cbiAgZ2V0QWxsKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KG5hbWUpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfVxuXG4gIGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLmluY2x1ZGVzKG5hbWUpO1xuICB9XG5cbiAgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnBhcmFtcyk7XG4gIH1cblxufVxuIl19
|
|
@@ -2,8 +2,7 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { Directive, inject } from '@angular/core';
|
|
3
3
|
import { ActivatedRouteSnapshot } from '@angular/router';
|
|
4
4
|
import { assert, Binding, DebugContext, Dsl, Guard, lang, ListModel, MutableValueModel } from '@coolon/pectin';
|
|
5
|
-
import { Klass } from '@coolon/typescript-utilities';
|
|
6
|
-
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
5
|
+
import { Klass, MemoizeGet } from '@coolon/typescript-utilities';
|
|
7
6
|
import { isNil } from 'lodash';
|
|
8
7
|
import 'reflect-metadata';
|
|
9
8
|
import { LoadableComponent } from "../components/loadable-component";
|
|
@@ -164,7 +163,7 @@ export class PlaceComponent extends LoadableComponent {
|
|
|
164
163
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: PlaceComponent, usesInheritance: true, ngImport: i0 });
|
|
165
164
|
}
|
|
166
165
|
__decorate([
|
|
167
|
-
|
|
166
|
+
MemoizeGet(),
|
|
168
167
|
__metadata("design:type", PlaceDefinition),
|
|
169
168
|
__metadata("design:paramtypes", [])
|
|
170
169
|
], PlaceComponent.prototype, "placeDefinition", null);
|
|
@@ -202,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
202
201
|
// initialValue: 'evaluationUnlessNil' | 'evaluate'
|
|
203
202
|
// }
|
|
204
203
|
})(PlaceComponent || (PlaceComponent = {}));
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFFUCxZQUFZLEVBQ1osR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUM3QixPQUFPLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTNDLDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRywwQkFBMEIsQ0FBQztBQUNuRSxxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFHekUsd0NBQXdDO0FBQ3hDLHVLQUF1SztBQUN2SyxNQUFNO0FBQ04sRUFBRTtBQUNGLHdGQUF3RjtBQUN4RixtQkFBbUI7QUFDbkIsTUFBTTtBQUNOLElBQUk7QUFHSixNQUFNLE9B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LENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLHFCQUFxQixDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDO0lBVmUsNEJBQWEsZ0JBVTVCLENBQUE7SUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFvQyxFQUFFLFVBQTJCO1FBQ2hHLE9BQU8sQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFGZSwrQkFBZ0IsbUJBRS9CLENBQUE7SUFFRCw0SEFBNEg7SUFFNUgsc0NBQXNDO0lBQ3RDLHFEQUFxRDtJQUNyRCxJQUFJO0FBR04sQ0FBQyxFQWpDZ0IsY0FBYyxLQUFkLGNBQWMsUUFpQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBhc3NlcnQsXG4gIEJpbmRpbmcsXG4gIENvbnN0cnVjdGFibGUsXG4gIERlYnVnQ29udGV4dCxcbiAgRHNsLFxuICBHdWFyZCxcbiAgSU11dGFibGVIYXNWYWx1ZSxcbiAgbGFuZyxcbiAgTGlzdE1vZGVsLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0tsYXNzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yJztcbmltcG9ydCB7aXNOaWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7TG9hZGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL2xvYWRhYmxlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gJy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi9wbGFjZS1yb3V0ZXJcIjtcbmltcG9ydCB7UGFyYW1ldGVyRGVmaW5pdGlvbn0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tICcuL3VybC1zbmFwc2hvdCc7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuXG4vLyBSQUtFOiBtYWtpbmcgdGhpcyBTeW1ib2woLi4uKSBicm9rZSB0aGluZ3MuXG5leHBvcnQgY29uc3QgREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZID0gJ1BMQUNFX0RFRklOSVRJT05fT1BUSU9OUyc7XG4vLyB0aGlzIG9uZSBzZWVtcyBvay5cbmV4cG9ydCBjb25zdCBST1VURV9QQVJBTUVURVJfTElTVF9LRVkgPSBTeW1ib2woJ3BsYWNlOnJvdXRlOnBhcmFtZXRlcnMnKTtcblxuXG4vLyBjbGFzcyBQYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcjxUPiB7XG4vLyAgIGNvbnN0cnVjdG9yKHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiwgbW9kZWw6IFZhbHVlTW9kZWw8VD4sIGNhbGxiYWNrOiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRDYWxsYmFjazxUPiwgb3B0aW9uczogUGxhY2VDb21wb25lbnQuSW50ZXJjZXB0T3B0aW9ucykge1xuLy8gICB9XG4vL1xuLy8gICBhc3luYyBjYW5Qcm9jZWVkKG5leHRTdGF0ZTogVmlzaXRTZWdtZW50LCBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuLy8gICAgIHJldHVybiB0cnVlO1xuLy8gICB9XG4vLyB9XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50IGV4dGVuZHMgTG9hZGFibGVDb21wb25lbnQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BsYWNlUmVhZHlDYWxsYmFja3M6ICgoKT0+dm9pZClbXSA9IFtdO1xuICBwcml2YXRlIHZpc2l0TW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VmlzaXRTZWdtZW50PigpO1xuICBwcml2YXRlIF9pblZpc2l0VXBkYXRlID0gbmV3IEd1YXJkKCk7XG4gIHByaXZhdGUgX2FjdGl2ZSA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgaW50ZXJhY3Rpb25Db250ZXh0PzogSW50ZXJhY3Rpb25Db250ZXh0O1xuICByZWFkb25seSBjaGlsZFBsYWNlcyQ6IExpc3RNb2RlbDxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pj47XG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yczogUGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3I8YW55PltdID0gW107XG5cblxuICBjYW5EZWFjdGl2YXRlPyhpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+O1xuXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYWNlUm91dGVyID0gaW5qZWN0KFBsYWNlUm91dGVyKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT259ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHdoZW4odGhpcy5fYWN0aXZlKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHRoaXMuX25vdGlmeVBsYWNlUmVhZHkoKSk7XG4gICAgdGhpcy5jaGlsZFBsYWNlcyQgPSBMaXN0TW9kZWwuY29uc3RhbnQodGhpcy5wbGFjZURlZmluaXRpb24uY2hpbGRyZW4ubWFwKGQgPT4gZC5jb21wb25lbnQpKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXNlVmlzaXQodmlzaXQ6IFZpc2l0U2VnbWVudCwgbm90aWZ5VmlzaXRDaGFuZ2VkOiAoY3VycmVudDogVmlzaXRTZWdtZW50LCBwcmV2aW91czogVmlzaXRTZWdtZW50KSA9PiB2b2lkKSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMudmlzaXRNb2RlbC52YWx1ZSk7XG5cbiAgICBjb25zdCB7d2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLnZpc2l0TW9kZWwudmFsdWUgPSB2aXNpdDtcbiAgICBEZWJ1Z0NvbnRleHQuZ2V0T3JDcmVhdGUodGhpcy52aXNpdE1vZGVsKS50YWcoYCR7dGhpcy5wbGFjZURlZmluaXRpb24uY29tcG9uZW50Lm5hbWV9LnZpc2l0TW9kZWxgKTtcblxuICAgIC8vIHdlIHRyYWNrIGlmIHRoZSBhbnkgb2YgdGhlIGJpbmRpbmdzIHVwZGF0ZWQgdGhlIHJvdXRlLiAgSWYgc28gd2UgcmVtZW1iZXIgaXQgYW5kIHVwZGF0ZSB0aGVcbiAgICAvLyByb3V0ZSBpbiBvbmUgZ28gYXQgdGhlIGVuZC5cbiAgICB0aGlzLnBsYWNlRGVmaW5pdGlvblxuICAgICAgLmdldFZpc2l0UGFyYW1ldGVyRGVmcygpXG4gICAgICAuZm9yRWFjaChwYXJhbWV0ZXJEZWYgPT4gdGhpcy5pbnN0YWxsQW5kSW5pdGlhbGlzZUJpbmRpbmcodmlzaXQsIHBhcmFtZXRlckRlZikpO1xuXG4gICAgd2hlbih0aGlzLnZpc2l0TW9kZWwpLmNoYW5nZXMoKGN1cnJlbnQsIHByZXZpb3VzKSA9PiB7XG4gICAgICBub3RpZnlWaXNpdENoYW5nZWQoY3VycmVudCwgcHJldmlvdXMpO1xuICAgIH0sIHt1bmxlc3M6IHRoaXMuX2luVmlzaXRVcGRhdGV9KTtcblxuICAgIC8vIFRPRE86IHRoaXMgbmVlZHMgdG8gZG8gYSByZXBsYWNlIHVybCBvcHRpb24gc28gdGhhdCB0aGUgbmV3IHVybCBpc24ndCBwdXQgaW4gdGhlIGhpc3RvcnkuLi4uIGZvclxuICAgIC8vICAgICAgIG5vdyB3ZSdyZSBub3QgZG9pbmcgaXQgYXMgaXQncyBhIGZhaXIgYml0IG9mIGVmZm9ydCBhbmQgd2lsbCBvbmx5IGFmZmVjdCBwZW9wbGUgaWYgdGhleSdyZVxuICAgIC8vICAgICAgIGN1dHRpbmcgYW5kIHBhc3RpbmcgdXJscyB0byBlYWNoIG90aGVyLlxuICAgIC8vIC8vIHRoZSBiaW5kaW5nIHByb2Nlc3MgY2FuIHVwZGF0ZSB0aGUgdmlzaXQgKGUuZy4gaWYgYSBzZWxlY3Rpb24gbW9kZWwgaGFzIGFscmVhZHkgc2VsZWN0ZWQgZHVyaW5nXG4gICAgLy8gLy8gY29tcG9uZW50IGNvbnN0cnVjdGlvbikgYW5kIHRoZXJlIHdhcyBubyB2YWx1ZSBzcGVjaWZpZWQgaW4gdGhlIHJvdXRlXG4gICAgLy8gaWYgKHZpc2l0Lmhhc1JvdXRpbmdDaGFuZ2VkRnJvbSh0aGlzLnZpc2l0TW9kZWwudmFsdWUpKSB7XG4gICAgLy8gICBub3RpZnlWaXNpdENoYW5nZWQodGhpcy52aXNpdE1vZGVsLnZhbHVlLCB2aXNpdClcbiAgICAvLyB9XG4gIH1cblxuICBnZXQgY2hpbGRQbGFjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRQbGFjZXMkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpc2l0KHZpc2l0OiBWaXNpdFNlZ21lbnQpIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0luaXRpYWxpc2VkKCkpO1xuICAgIGFzc2VydC5ub3ROaWwodmlzaXQpO1xuICAgIHRoaXMuX2luVmlzaXRVcGRhdGUud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMudmlzaXRNb2RlbC52YWx1ZSA9IHZpc2l0O1xuICAgIH0pO1xuICB9XG5cbiAgaXNJbml0aWFsaXNlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnZpc2l0TW9kZWwudmFsdWU7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICAvKipcbiAgICogSW5pdGlhbGlzZWQgdGhlIGNvbXBvbmVudCBiaW5kaW5ncy4gIElmIGFueSBiaW5kaW5nIGhhcyBhbiBpbml0aWFsIG1vZGVsIHZhbHVlIChlLmcuIGEgc2VsZWN0aW9uIG1vZGVsXG4gICAqIGluaXRpYWxpc2VkIGR1cmluZyB0aGUgY29uc3RydWN0b3IpIGFuZCB0aGUgcm91dGUgaGFzIG5vdGhpbmcsIHRoZW4gdGhlIHZpc2l0IHdpbGwgYmUgdWRwYXRlZCBhbmQgdGhpc1xuICAgKiBtZXRob2Qgd2lsbCByZXR1cm4gdHVyZSB0byBub2ZpeSB0aGUgdGhlIHZpc2l0IGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsQW5kSW5pdGlhbGlzZUJpbmRpbmc8VCwgUz4oaW5pdGlhbFZpc2l0OiBWaXNpdFNlZ21lbnQsIHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTPikge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpc1twYXJhbWV0ZXJEZWYucHJvcGVydHlOYW1lXSBhcyBJTXV0YWJsZUhhc1ZhbHVlPFQ+O1xuICAgIGFzc2VydC5ub3ROaWwobW9kZWwpO1xuICAgIERlYnVnQ29udGV4dC50YWcobW9kZWwsIGAke3RoaXMucGxhY2VEZWZpbml0aW9uLmNvbXBvbmVudC5uYW1lfS4ke3BhcmFtZXRlckRlZi5wcm9wZXJ0eU5hbWV9YCk7XG4gICAgY29uc3QgYmluZGluZyA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBCaW5kaW5nKHRoaXMudmlzaXRNb2RlbCwgbW9kZWwsIHtcbiAgICAgIHRvUmlnaHQodmlzaXQ6IFZpc2l0U2VnbWVudCk6IFQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHBhcmFtZXRlckRlZik7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwdXNoIHRvIGNvbXBvbmVudCcsIHsgbmFtZTogcGFyYW1ldGVyRGVmLm5hbWUsIHZhbHVlLCB2aXNpdCB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIHRvTGVmdCh2YWx1ZTogVCwgY3VycmVudFZpc2l0PzogVmlzaXRTZWdtZW50KTogVmlzaXRTZWdtZW50IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3B1c2ggdG8gcm91dGUnLCB7IG5hbWU6IHBhcmFtZXRlckRlZi5uYW1lLCB2YWx1ZSwgY3VycmVudFZpc2l0IH0pO1xuICAgICAgICByZXR1cm4gY3VycmVudFZpc2l0LnJlcGxhY2UocGFyYW1ldGVyRGVmLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgLy8gTm93IHdlIG5lZWQgdG8gaW5pdGlhbGlzZSB0aGUgYmluZGluZyBkaXJlY3Rpb24uICBJZiB3ZSBoYXZlIGEgdmFsdWUgaW4gdGhlIFVybCB0aGVuIHdlIHNob3VsZCBhbHdheXMgcHVzaFxuICAgIC8vIHRoYXQgdG8gdGhlIHZpZXcuICBJZiB3ZSBkb24ndCBhbmQgdGhlIHZpZXcgYWxyZWFkeSBoYXMgYSB2YWx1ZSAoZS5nLiBhIHNlbGVjdGlvbiBtb2RlbCBoYXMgYWxyZWFkeSBpbml0aWFsaXNlZCBpbiB0aGVcbiAgICAvLyBjb21wb25lbnQgY29uc3RydWN0b3IpIHRoZW4gd2Ugc2hvdWxkIHB1c2ggdGhhdCB0byB0aGUgcm91dGUuXG4gICAgY29uc3QgaXNJblZpc2l0ID0gIWlzTmlsKGluaXRpYWxWaXNpdC5nZXRQYXJhbWV0ZXJWYWx1ZShwYXJhbWV0ZXJEZWYpKTtcbiAgICBjb25zdCBpc0luTW9kZWwgPSAhaXNOaWwobW9kZWwudmFsdWUpO1xuICAgIGlmICghaXNJblZpc2l0ICYmIGlzSW5Nb2RlbCkge1xuICAgICAgYmluZGluZy53cml0ZUxlZnQoKTsgLy8gcHVzaCBpdCB0byB0aGUgcm91dGVcbiAgICB9IGVsc2Uge1xuICAgICAgYmluZGluZy53cml0ZVJpZ2h0KCk7IC8vIHB1c2ggaXQgdG8gdGhlIG1vZGVsXG4gICAgfVxuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXQgcGxhY2VEZWZpbml0aW9uKCk6IFBsYWNlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24odGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkgYXMgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pO1xuICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSBleHRlbmRzIFBsYWNlQ29tcG9uZW50IGJ1dCBkb2Vzbid0IGhhdmUgQFBsYWNlKHsuLn0pIGRlY29yYXRvci5gKVxuICAgIH1cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIGdldCBhY3RpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZS5yZWFkb25seSQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgdG8gc2VlIGlmIHRoaXMgY29tcG9uZW50IGNhbiBkZWFjdGl2YXRlLiAgVGhpcyBpc24ndCBjYWxsZWQgZm9yIHJvdXRlIHBhcmFtZXRlciBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gaW50ZXJhY3Rpb25Db250ZXh0XG4gICAqL1xuICBhc3luYyBfY2FuTGVhdmVQbGFjZShpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNhbkRlYWN0aXZhdGUgPyB0aGlzLmNhbkRlYWN0aXZhdGUoaW50ZXJhY3Rpb25Db250ZXh0KSA6IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgdG8gc2VlIGlmIHRoaXMgY29tcG9uZW50IGNhbiBkZWFjdGl2YXRlLiAgVGhpcyBpc24ndCBjYWxsZWQgZm9yIHJvdXRlIHBhcmFtZXRlciBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gaW50ZXJhY3Rpb25Db250ZXh0XG4gICAqIEBwYXJhbSBuZXh0U3RhdGVcbiAgICovXG4gIGFzeW5jIF9jYW5DaGFuZ2VSb3V0ZVBhcmFtZXRlcnMoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIG5leHRTdGF0ZTogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBpZiAodGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgIGNvbnN0IHZpc2l0ID0gbmV4dFN0YXRlLmNyZWF0ZVZpc2l0U2VnbWVudEZvcih0aGlzLnBsYWNlRGVmaW5pdGlvbik7XG4gICAgLy8gICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9ycy5sZW5ndGg7IGkrKykge1xuICAgIC8vICAgICBjb25zdCBpbnRlcmNlcHRvciA9IHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yc1tpXTtcbiAgICAvLyAgICAgY29uc3Qga2VlcEdvaW5nID0gYXdhaXQgaW50ZXJjZXB0b3IuY2FuUHJvY2VlZCh2aXNpdCwgaW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICAvLyAgICAgaWYgKCFrZWVwR29pbmcpIHtcbiAgICAvLyAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB3aGVuIHRoZSBwbGFjZSBpcyByZWFkeSB0byBpbnRlcmFjdCBhZnRlciBhbnkgYW5pbWF0aW9ucyBoYXZlIHJ1bi5cbiAgICovXG4gIF9ub3RpZnlBY3RpdmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYWN0aXZlLnZhbHVlID0gYWN0aXZlO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHdoZW4gdGhlIHBsYWNlIGlzIHJlYWR5IHRvIGludGVyYWN0IGFmdGVyIGFueSBhbmltYXRpb25zIGhhdmUgcnVuLlxuICAgKi9cbiAgX25vdGlmeVBsYWNlUmVhZHkoKSB7XG4gICAgaWYgKHRoaXMub25QbGFjZVJlYWR5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5fcGxhY2VSZWFkeUNhbGxiYWNrcy5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ092ZXJyaWRpbmcgUGxhY2VDb21wb25lbnQub25QbGFjZVJlYWR5IGhhcyBiZWVuIGRlcHJlY2F0ZWQuICBVc2UgUGxhY2VDb21wb25lbnQub25QbGFjZVJlYWR5KCgpID0+IHsuLi4gZG8gc3R1ZmYuLi59KSBpbnN0ZWFkLicpO1xuICAgICAgdGhpcy5vblBsYWNlUmVhZHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBvblBsYWNlUmVhZHkoY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLl9wbGFjZVJlYWR5Q2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgLy8gaW50ZXJjZXB0VmlzaXRQYXJhbWV0ZXJDaGFuZ2U8VD4obW9kZWw6IFZhbHVlTW9kZWw8VD4sIGNhbGxiYWNrOiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRDYWxsYmFjazxUPiwgb3B0aW9ucz86IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdE9wdGlvbnMpIHtcbiAgLy8gICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBQYXJhbWV0ZXJEZWZpbml0aW9uLmdldChtb2RlbCk7XG4gIC8vICAgdGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzLnB1c2gobmV3IFBhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yKHBhcmFtZXRlckRlZiwgbW9kZWwsIGNhbGxiYWNrLCBvcHRpb25zKSk7XG4gIC8vIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlQ29tcG9uZW50IHtcblxuICBleHBvcnQgZnVuY3Rpb24gaXNQbGFjZUNvbXBvbmVudENvbnN0cnVjdG9yKHRhcmdldDogYW55KTogdGFyZ2V0IGlzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gbGFuZy5jb25zdHJ1Y3RvckNoYWluKHRhcmdldCBhcyBDb25zdHJ1Y3RhYmxlPGFueT4pLmluY2x1ZGVzKFBsYWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZVBhcmFtZXRlcnMoa2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10ge1xuICAgIHJldHVybiBLbGFzcy5nZXQoa2xhc3MpLmdldE1ldGFkYXRhTGlzdChST1VURV9QQVJBTUVURVJfTElTVF9LRVkpIGFzIFBhcmFtZXRlckRlZmluaXRpb248YW55PltdO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERlZmluaXRpb24oc25hcHNob3RPckNvbnN0cnVjdG9yOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBQbGFjZURlZmluaXRpb24ge1xuICAgIGlmIChzbmFwc2hvdE9yQ29uc3RydWN0b3IgaW5zdGFuY2VvZiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSBzbmFwc2hvdE9yQ29uc3RydWN0b3IuY29tcG9uZW50O1xuICAgICAgaWYgKCFpc1BsYWNlQ29tcG9uZW50Q29uc3RydWN0b3IoY29tcG9uZW50KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFjdGl2YXRlZFJvdXRlU25hcHNob3QgY29tcG9uZW50IGlzIG5vdCBhIFBsYWNlQ29tcG9uZW50LCBnb3QgJHtjb21wb25lbnR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShERUZJTklUSU9OX01FVEFfREFUQV9LRVksIGNvbXBvbmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKERFRklOSVRJT05fTUVUQV9EQVRBX0tFWSwgc25hcHNob3RPckNvbnN0cnVjdG9yKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaW5qZWN0RGVmaW5pdGlvbihrbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIGRlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZLCBkZWZpbml0aW9uLCBrbGFzcyk7XG4gIH1cblxuICAvLyBleHBvcnQgdHlwZSBJbnRlcmNlcHRDYWxsYmFjazxUPiA9IChpczogVCwgd2FzOiBULCBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLy8gZXhwb3J0IGludGVyZmFjZSBJbnRlcmNlcHRPcHRpb25zIHtcbiAgLy8gICBpbml0aWFsVmFsdWU6ICdldmFsdWF0aW9uVW5sZXNzTmlsJyB8ICdldmFsdWF0ZSdcbiAgLy8gfVxuXG5cbn1cbiJdfQ==
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFFUCxZQUFZLEVBQ1osR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUM3QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTNDLDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRywwQkFBMEIsQ0FBQztBQUNuRSxxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFHekUsd0NBQXdDO0FBQ3hDLHVLQUF1SztBQUN2SyxNQUFNO0FBQ04sRUFBRTtBQUNGLHdGQUF3RjtBQUN4RixtQkFBbUI7QUFDbkIsTUFBTTtBQUNOLElBQUk7QUFHSixNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjtJQUVsQyxvQkFBb0Is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QixDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDO0lBVmUsNEJBQWEsZ0JBVTVCLENBQUE7SUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFvQyxFQUFFLFVBQTJCO1FBQ2hHLE9BQU8sQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFGZSwrQkFBZ0IsbUJBRS9CLENBQUE7SUFFRCw0SEFBNEg7SUFFNUgsc0NBQXNDO0lBQ3RDLHFEQUFxRDtJQUNyRCxJQUFJO0FBR04sQ0FBQyxFQWpDZ0IsY0FBYyxLQUFkLGNBQWMsUUFpQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBhc3NlcnQsXG4gIEJpbmRpbmcsXG4gIENvbnN0cnVjdGFibGUsXG4gIERlYnVnQ29udGV4dCxcbiAgRHNsLFxuICBHdWFyZCxcbiAgSU11dGFibGVIYXNWYWx1ZSxcbiAgbGFuZyxcbiAgTGlzdE1vZGVsLFxuICBNdXRhYmxlVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0tsYXNzLCBNZW1vaXplR2V0fSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7aXNOaWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHtMb2FkYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvbG9hZGFibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gXCIuL3BsYWNlLXJvdXRlclwiO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7VXJsU25hcHNob3R9IGZyb20gJy4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5cbi8vIFJBS0U6IG1ha2luZyB0aGlzIFN5bWJvbCguLi4pIGJyb2tlIHRoaW5ncy5cbmV4cG9ydCBjb25zdCBERUZJTklUSU9OX01FVEFfREFUQV9LRVkgPSAnUExBQ0VfREVGSU5JVElPTl9PUFRJT05TJztcbi8vIHRoaXMgb25lIHNlZW1zIG9rLlxuZXhwb3J0IGNvbnN0IFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSA9IFN5bWJvbCgncGxhY2U6cm91dGU6cGFyYW1ldGVycycpO1xuXG5cbi8vIGNsYXNzIFBhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yPFQ+IHtcbi8vICAgY29uc3RydWN0b3IocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+LCBtb2RlbDogVmFsdWVNb2RlbDxUPiwgY2FsbGJhY2s6IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdENhbGxiYWNrPFQ+LCBvcHRpb25zOiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRPcHRpb25zKSB7XG4vLyAgIH1cbi8vXG4vLyAgIGFzeW5jIGNhblByb2NlZWQobmV4dFN0YXRlOiBWaXNpdFNlZ21lbnQsIGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4vLyAgICAgcmV0dXJuIHRydWU7XG4vLyAgIH1cbi8vIH1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUGxhY2VDb21wb25lbnQgZXh0ZW5kcyBMb2FkYWJsZUNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VSZWFkeUNhbGxiYWNrczogKCgpPT52b2lkKVtdID0gW107XG4gIHByaXZhdGUgdmlzaXRNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxWaXNpdFNlZ21lbnQ+KCk7XG4gIHByaXZhdGUgX2luVmlzaXRVcGRhdGUgPSBuZXcgR3VhcmQoKTtcbiAgcHJpdmF0ZSBfYWN0aXZlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBpbnRlcmFjdGlvbkNvbnRleHQ/OiBJbnRlcmFjdGlvbkNvbnRleHQ7XG4gIHJlYWRvbmx5IGNoaWxkUGxhY2VzJDogTGlzdE1vZGVsPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+PjtcbiAgLy8gcHJpdmF0ZSByZWFkb25seSBfcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzOiBQYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcjxhbnk+W10gPSBbXTtcblxuXG4gIGNhbkRlYWN0aXZhdGU/KGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG5cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxhY2VSb3V0ZXIgPSBpbmplY3QoUGxhY2VSb3V0ZXIpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLl9hY3RpdmUpLmJlY29tZXNUcnV0aHkoKCkgPT4gdGhpcy5fbm90aWZ5UGxhY2VSZWFkeSgpKTtcbiAgICB0aGlzLmNoaWxkUGxhY2VzJCA9IExpc3RNb2RlbC5jb25zdGFudCh0aGlzLnBsYWNlRGVmaW5pdGlvbi5jaGlsZHJlbi5tYXAoZCA9PiBkLmNvbXBvbmVudCkpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpc2VWaXNpdCh2aXNpdDogVmlzaXRTZWdtZW50LCBub3RpZnlWaXNpdENoYW5nZWQ6IChjdXJyZW50OiBWaXNpdFNlZ21lbnQsIHByZXZpb3VzOiBWaXNpdFNlZ21lbnQpID0+IHZvaWQpIHtcbiAgICBhc3NlcnQuaXNOaWwodGhpcy52aXNpdE1vZGVsLnZhbHVlKTtcblxuICAgIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMudmlzaXRNb2RlbC52YWx1ZSA9IHZpc2l0O1xuICAgIERlYnVnQ29udGV4dC5nZXRPckNyZWF0ZSh0aGlzLnZpc2l0TW9kZWwpLnRhZyhgJHt0aGlzLnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQubmFtZX0udmlzaXRNb2RlbGApO1xuXG4gICAgLy8gd2UgdHJhY2sgaWYgdGhlIGFueSBvZiB0aGUgYmluZGluZ3MgdXBkYXRlZCB0aGUgcm91dGUuICBJZiBzbyB3ZSByZW1lbWJlciBpdCBhbmQgdXBkYXRlIHRoZVxuICAgIC8vIHJvdXRlIGluIG9uZSBnbyBhdCB0aGUgZW5kLlxuICAgIHRoaXMucGxhY2VEZWZpbml0aW9uXG4gICAgICAuZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKClcbiAgICAgIC5mb3JFYWNoKHBhcmFtZXRlckRlZiA9PiB0aGlzLmluc3RhbGxBbmRJbml0aWFsaXNlQmluZGluZyh2aXNpdCwgcGFyYW1ldGVyRGVmKSk7XG5cbiAgICB3aGVuKHRoaXMudmlzaXRNb2RlbCkuY2hhbmdlcygoY3VycmVudCwgcHJldmlvdXMpID0+IHtcbiAgICAgIG5vdGlmeVZpc2l0Q2hhbmdlZChjdXJyZW50LCBwcmV2aW91cyk7XG4gICAgfSwge3VubGVzczogdGhpcy5faW5WaXNpdFVwZGF0ZX0pO1xuXG4gICAgLy8gVE9ETzogdGhpcyBuZWVkcyB0byBkbyBhIHJlcGxhY2UgdXJsIG9wdGlvbiBzbyB0aGF0IHRoZSBuZXcgdXJsIGlzbid0IHB1dCBpbiB0aGUgaGlzdG9yeS4uLi4gZm9yXG4gICAgLy8gICAgICAgbm93IHdlJ3JlIG5vdCBkb2luZyBpdCBhcyBpdCdzIGEgZmFpciBiaXQgb2YgZWZmb3J0IGFuZCB3aWxsIG9ubHkgYWZmZWN0IHBlb3BsZSBpZiB0aGV5J3JlXG4gICAgLy8gICAgICAgY3V0dGluZyBhbmQgcGFzdGluZyB1cmxzIHRvIGVhY2ggb3RoZXIuXG4gICAgLy8gLy8gdGhlIGJpbmRpbmcgcHJvY2VzcyBjYW4gdXBkYXRlIHRoZSB2aXNpdCAoZS5nLiBpZiBhIHNlbGVjdGlvbiBtb2RlbCBoYXMgYWxyZWFkeSBzZWxlY3RlZCBkdXJpbmdcbiAgICAvLyAvLyBjb21wb25lbnQgY29uc3RydWN0aW9uKSBhbmQgdGhlcmUgd2FzIG5vIHZhbHVlIHNwZWNpZmllZCBpbiB0aGUgcm91dGVcbiAgICAvLyBpZiAodmlzaXQuaGFzUm91dGluZ0NoYW5nZWRGcm9tKHRoaXMudmlzaXRNb2RlbC52YWx1ZSkpIHtcbiAgICAvLyAgIG5vdGlmeVZpc2l0Q2hhbmdlZCh0aGlzLnZpc2l0TW9kZWwudmFsdWUsIHZpc2l0KVxuICAgIC8vIH1cbiAgfVxuXG4gIGdldCBjaGlsZFBsYWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZFBsYWNlcyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlzaXQodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgYXNzZXJ0Lm5vdE5pbCh2aXNpdCk7XG4gICAgdGhpcy5faW5WaXNpdFVwZGF0ZS53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgdGhpcy52aXNpdE1vZGVsLnZhbHVlID0gdmlzaXQ7XG4gICAgfSk7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMudmlzaXRNb2RlbC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIC8qKlxuICAgKiBJbml0aWFsaXNlZCB0aGUgY29tcG9uZW50IGJpbmRpbmdzLiAgSWYgYW55IGJpbmRpbmcgaGFzIGFuIGluaXRpYWwgbW9kZWwgdmFsdWUgKGUuZy4gYSBzZWxlY3Rpb24gbW9kZWxcbiAgICogaW5pdGlhbGlzZWQgZHVyaW5nIHRoZSBjb25zdHJ1Y3RvcikgYW5kIHRoZSByb3V0ZSBoYXMgbm90aGluZywgdGhlbiB0aGUgdmlzaXQgd2lsbCBiZSB1ZHBhdGVkIGFuZCB0aGlzXG4gICAqIG1ldGhvZCB3aWxsIHJldHVybiB0dXJlIHRvIG5vZml5IHRoZSB0aGUgdmlzaXQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxBbmRJbml0aWFsaXNlQmluZGluZzxULCBTPihpbml0aWFsVmlzaXQ6IFZpc2l0U2VnbWVudCwgcGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzW3BhcmFtZXRlckRlZi5wcm9wZXJ0eU5hbWVdIGFzIElNdXRhYmxlSGFzVmFsdWU8VD47XG4gICAgYXNzZXJ0Lm5vdE5pbChtb2RlbCk7XG4gICAgRGVidWdDb250ZXh0LnRhZyhtb2RlbCwgYCR7dGhpcy5wbGFjZURlZmluaXRpb24uY29tcG9uZW50Lm5hbWV9LiR7cGFyYW1ldGVyRGVmLnByb3BlcnR5TmFtZX1gKTtcbiAgICBjb25zdCBiaW5kaW5nID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEJpbmRpbmcodGhpcy52aXNpdE1vZGVsLCBtb2RlbCwge1xuICAgICAgdG9SaWdodCh2aXNpdDogVmlzaXRTZWdtZW50KTogVCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyRGVmKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3B1c2ggdG8gY29tcG9uZW50JywgeyBuYW1lOiBwYXJhbWV0ZXJEZWYubmFtZSwgdmFsdWUsIHZpc2l0IH0pO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgICAgdG9MZWZ0KHZhbHVlOiBULCBjdXJyZW50VmlzaXQ/OiBWaXNpdFNlZ21lbnQpOiBWaXNpdFNlZ21lbnQge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygncHVzaCB0byByb3V0ZScsIHsgbmFtZTogcGFyYW1ldGVyRGVmLm5hbWUsIHZhbHVlLCBjdXJyZW50VmlzaXQgfSk7XG4gICAgICAgIHJldHVybiBjdXJyZW50VmlzaXQucmVwbGFjZShwYXJhbWV0ZXJEZWYsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICAvLyBOb3cgd2UgbmVlZCB0byBpbml0aWFsaXNlIHRoZSBiaW5kaW5nIGRpcmVjdGlvbi4gIElmIHdlIGhhdmUgYSB2YWx1ZSBpbiB0aGUgVXJsIHRoZW4gd2Ugc2hvdWxkIGFsd2F5cyBwdXNoXG4gICAgLy8gdGhhdCB0byB0aGUgdmlldy4gIElmIHdlIGRvbid0IGFuZCB0aGUgdmlldyBhbHJlYWR5IGhhcyBhIHZhbHVlIChlLmcuIGEgc2VsZWN0aW9uIG1vZGVsIGhhcyBhbHJlYWR5IGluaXRpYWxpc2VkIGluIHRoZVxuICAgIC8vIGNvbXBvbmVudCBjb25zdHJ1Y3RvcikgdGhlbiB3ZSBzaG91bGQgcHVzaCB0aGF0IHRvIHRoZSByb3V0ZS5cbiAgICBjb25zdCBpc0luVmlzaXQgPSAhaXNOaWwoaW5pdGlhbFZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHBhcmFtZXRlckRlZikpO1xuICAgIGNvbnN0IGlzSW5Nb2RlbCA9ICFpc05pbChtb2RlbC52YWx1ZSk7XG4gICAgaWYgKCFpc0luVmlzaXQgJiYgaXNJbk1vZGVsKSB7XG4gICAgICBiaW5kaW5nLndyaXRlTGVmdCgpOyAvLyBwdXNoIGl0IHRvIHRoZSByb3V0ZVxuICAgIH0gZWxzZSB7XG4gICAgICBiaW5kaW5nLndyaXRlUmlnaHQoKTsgLy8gcHVzaCBpdCB0byB0aGUgbW9kZWxcbiAgICB9XG4gIH1cblxuICBATWVtb2l6ZUdldCgpXG4gIGdldCBwbGFjZURlZmluaXRpb24oKTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbih0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSBhcyBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik7XG4gICAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IGV4dGVuZHMgUGxhY2VDb21wb25lbnQgYnV0IGRvZXNuJ3QgaGF2ZSBAUGxhY2Uoey4ufSkgZGVjb3JhdG9yLmApXG4gICAgfVxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlLnJlYWRvbmx5JDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB0byBzZWUgaWYgdGhpcyBjb21wb25lbnQgY2FuIGRlYWN0aXZhdGUuICBUaGlzIGlzbid0IGNhbGxlZCBmb3Igcm91dGUgcGFyYW1ldGVyIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICovXG4gIGFzeW5jIF9jYW5MZWF2ZVBsYWNlKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FuRGVhY3RpdmF0ZSA/IHRoaXMuY2FuRGVhY3RpdmF0ZShpbnRlcmFjdGlvbkNvbnRleHQpIDogdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB0byBzZWUgaWYgdGhpcyBjb21wb25lbnQgY2FuIGRlYWN0aXZhdGUuICBUaGlzIGlzbid0IGNhbGxlZCBmb3Igcm91dGUgcGFyYW1ldGVyIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICogQHBhcmFtIG5leHRTdGF0ZVxuICAgKi9cbiAgYXN5bmMgX2NhbkNoYW5nZVJvdXRlUGFyYW1ldGVycyhpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCwgbmV4dFN0YXRlOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIGlmICh0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnMubGVuZ3RoID4gMCkge1xuICAgIC8vICAgY29uc3QgdmlzaXQgPSBuZXh0U3RhdGUuY3JlYXRlVmlzaXRTZWdtZW50Rm9yKHRoaXMucGxhY2VEZWZpbml0aW9uKTtcbiAgICAvLyAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gICAgIGNvbnN0IGludGVyY2VwdG9yID0gdGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzW2ldO1xuICAgIC8vICAgICBjb25zdCBrZWVwR29pbmcgPSBhd2FpdCBpbnRlcmNlcHRvci5jYW5Qcm9jZWVkKHZpc2l0LCBpbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgIC8vICAgICBpZiAoIWtlZXBHb2luZykge1xuICAgIC8vICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHdoZW4gdGhlIHBsYWNlIGlzIHJlYWR5IHRvIGludGVyYWN0IGFmdGVyIGFueSBhbmltYXRpb25zIGhhdmUgcnVuLlxuICAgKi9cbiAgX25vdGlmeUFjdGl2ZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hY3RpdmUudmFsdWUgPSBhY3RpdmU7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgd2hlbiB0aGUgcGxhY2UgaXMgcmVhZHkgdG8gaW50ZXJhY3QgYWZ0ZXIgYW55IGFuaW1hdGlvbnMgaGF2ZSBydW4uXG4gICAqL1xuICBfbm90aWZ5UGxhY2VSZWFkeSgpIHtcbiAgICBpZiAodGhpcy5vblBsYWNlUmVhZHkubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLl9wbGFjZVJlYWR5Q2FsbGJhY2tzLmZvckVhY2goY2FsbGJhY2sgPT4gY2FsbGJhY2soKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignT3ZlcnJpZGluZyBQbGFjZUNvbXBvbmVudC5vblBsYWNlUmVhZHkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gIFVzZSBQbGFjZUNvbXBvbmVudC5vblBsYWNlUmVhZHkoKCkgPT4gey4uLiBkbyBzdHVmZi4uLn0pIGluc3RlYWQuJyk7XG4gICAgICB0aGlzLm9uUGxhY2VSZWFkeSh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIG9uUGxhY2VSZWFkeShjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuX3BsYWNlUmVhZHlDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gIH1cblxuICAvLyBpbnRlcmNlcHRWaXNpdFBhcmFtZXRlckNoYW5nZTxUPihtb2RlbDogVmFsdWVNb2RlbDxUPiwgY2FsbGJhY2s6IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdENhbGxiYWNrPFQ+LCBvcHRpb25zPzogUGxhY2VDb21wb25lbnQuSW50ZXJjZXB0T3B0aW9ucykge1xuICAvLyAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IFBhcmFtZXRlckRlZmluaXRpb24uZ2V0KG1vZGVsKTtcbiAgLy8gICB0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnMucHVzaChuZXcgUGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3IocGFyYW1ldGVyRGVmLCBtb2RlbCwgY2FsbGJhY2ssIG9wdGlvbnMpKTtcbiAgLy8gfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VDb21wb25lbnQge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc1BsYWNlQ29tcG9uZW50Q29uc3RydWN0b3IodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4ge1xuICAgIHJldHVybiBsYW5nLmNvbnN0cnVjdG9yQ2hhaW4odGFyZ2V0IGFzIENvbnN0cnVjdGFibGU8YW55PikuaW5jbHVkZXMoUGxhY2VDb21wb25lbnQpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUGFyYW1ldGVycyhrbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSB7XG4gICAgcmV0dXJuIEtsYXNzLmdldChrbGFzcykuZ2V0TWV0YWRhdGFMaXN0KFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSkgYXMgUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W107XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbihzbmFwc2hvdE9yQ29uc3RydWN0b3I6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik6IFBsYWNlRGVmaW5pdGlvbiB7XG4gICAgaWYgKHNuYXBzaG90T3JDb25zdHJ1Y3RvciBpbnN0YW5jZW9mIEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHNuYXBzaG90T3JDb25zdHJ1Y3Rvci5jb21wb25lbnQ7XG4gICAgICBpZiAoIWlzUGxhY2VDb21wb25lbnRDb25zdHJ1Y3Rvcihjb21wb25lbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCBjb21wb25lbnQgaXMgbm90IGEgUGxhY2VDb21wb25lbnQsIGdvdCAke2NvbXBvbmVudH1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKERFRklOSVRJT05fTUVUQV9EQVRBX0tFWSwgY29tcG9uZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZLCBzbmFwc2hvdE9yQ29uc3RydWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWZpbml0aW9uKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiwgZGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShERUZJTklUSU9OX01FVEFfREFUQV9LRVksIGRlZmluaXRpb24sIGtsYXNzKTtcbiAgfVxuXG4gIC8vIGV4cG9ydCB0eXBlIEludGVyY2VwdENhbGxiYWNrPFQ+ID0gKGlzOiBULCB3YXM6IFQsIGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcblxuICAvLyBleHBvcnQgaW50ZXJmYWNlIEludGVyY2VwdE9wdGlvbnMge1xuICAvLyAgIGluaXRpYWxWYWx1ZTogJ2V2YWx1YXRpb25Vbmxlc3NOaWwnIHwgJ2V2YWx1YXRlJ1xuICAvLyB9XG5cblxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { assert } from '@coolon/pectin';
|
|
3
3
|
import { lang, Opts } from '@coolon/typescript-utilities';
|
|
4
|
-
import { Memoize } from '
|
|
4
|
+
import { Memoize } from 'fast-typescript-memoize';
|
|
5
5
|
import { isEmpty, isNil, join } from 'lodash';
|
|
6
6
|
import { ParameterDefinition } from './route/parameter-definition';
|
|
7
7
|
export class PlaceDefinition {
|
|
@@ -210,4 +210,4 @@ __decorate([
|
|
|
210
210
|
__metadata("design:paramtypes", [Object]),
|
|
211
211
|
__metadata("design:returntype", Array)
|
|
212
212
|
], PlaceDefinition.prototype, "getVisitParameterDefs", null);
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE1BQU0sT0FBTyxlQUFlO0lBSUw7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRiLE9BQU8sQ0FBa0I7SUFFakMsWUFBcUIsU0FBd0MsRUFDeEMsSUFBWSxFQUNaLFlBQXFCLEVBQ3JCLElBQVMsRUFDVCxJQUF5QixFQUN6QixlQUEyQyxFQUMzQyxRQUEyQixFQUMzQixvQkFBNkI7UUFQN0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FB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YUFBYSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixVQUFVLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDakk7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsY0FBNkM7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUUsQ0FBQztDQUVGO0FBbExDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7dURBR1Q7QUFpQ0Q7SUFEQyxPQUFPLEVBQUU7OztvQ0FDZ0IsbUJBQW1COzZEQUU1QztBQUdEO0lBREMsT0FBTyxFQUFFOzs7OzREQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7NERBWVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhcmFtTWFwfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHthc3NlcnQsIENvbnN0cnVjdGFibGUsIFByZWRpY2F0ZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nLCBPcHRzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yJztcblxuaW1wb3J0IHtpc0VtcHR5LCBpc05pbCwgam9pbn0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGFyYW1ldGVyRGVmaW5pdGlvbn0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuZXhwb3J0IGNsYXNzIFBsYWNlRGVmaW5pdGlvbiB7IC8vaW1wbGVtZW50cyBWaXNpdGFibGVUcmVlPFBsYWNlRGVmaW5pdGlvbj4gIHtcblxuICBwcml2YXRlIF9wYXJlbnQ6IFBsYWNlRGVmaW5pdGlvbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LFxuICAgICAgICAgICAgICByZWFkb25seSBwYXRoOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZTogYm9vbGVhbixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcm9sZTogYW55LFxuICAgICAgICAgICAgICByZWFkb25seSBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgICAgICAgICByZWFkb25seSByb3V0ZVBhcmFtZXRlcnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLFxuICAgICAgICAgICAgICByZWFkb25seSBjaGlsZHJlbjogUGxhY2VEZWZpbml0aW9uW10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJlZGlyZWN0VG9GaXJzdENoaWxkOiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGl0ID0+IGl0LnNldFBhcmVudCh0aGlzKSk7XG5cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgYW5jZXN0b3JzKCk6IFBsYWNlRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5hbmNlc3RvcnMoKS5jb25jYXQoW3RoaXMucGFyZW50XSkgOiBbXTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgYW5jZXN0b3JzQW5kU2VsZigpOiBQbGFjZURlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuYW5jZXN0b3JzKCkuY29uY2F0KHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFBhcmVudChwYXJlbnQ6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIGFzc2VydC5pc05pbCh0aGlzLl9wYXJlbnQpO1xuICAgIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcbiAgfVxuXG4gIGdldCBwYXJlbnQoKTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICB9XG5cbiAgaXNSb290KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fcGFyZW50XG4gIH1cblxuICBoYXNQYXJlbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFxuICB9XG5cbiAgaGFzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc0VtcHR5KHRoaXMuY2hpbGRyZW4pO1xuICB9XG5cbiAgZmluZENoaWxkKHByZWRpY2F0ZTogUHJlZGljYXRlPFBsYWNlRGVmaW5pdGlvbj4pOiBQbGFjZURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmZpbmQocHJlZGljYXRlKTtcbiAgfVxuXG5cbiAgaGFzUm91dGVJZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maW5kKHAgPT4gcC5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRSb3V0ZVBhcmFtZXRlckRlZnMoaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe2luY2x1ZGVSb3V0ZUlkLCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlfSk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFZpc2l0UGFyYW1ldGVyRGVmcyhpbmNsdWRlPzogUGxhY2VEZWZpbml0aW9uLlBhcmFtZXRlck9wdGlvbnMpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSB7XG4gICAgY29uc3Qgb3B0cyA9IE9wdHMuZ2V0KGluY2x1ZGUpO1xuICAgIC8vIGluY2x1ZGVzXG4gICAgY29uc3QgaW5jbHVkZVJvdXRlSWQgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVJZCcsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZVJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZVBhcmFtZXRlcnMuZmlsdGVyKHAgPT4ge1xuICAgICAgcmV0dXJuIChpbmNsdWRlUm91dGVJZCAmJiBwLmlzUm91dGVJZClcbiAgICAgICAgfHwgKGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgJiYgcC5pc1JvdXRlUGFyYW1ldGVyICYmICFwLmlzUm91dGVJZCkgLy8gcm91dGUgaWQgaXMgaW5jbHVkZWQgaW4gdGhlIGxpbmUgYWJvdmVcbiAgICAgICAgfHwgKGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgJiYgIXAuaXNSb3V0ZVBhcmFtZXRlcik7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQbGFjZURhdGE8VD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhID9cbiAgICAgIGlzTmlsKHRoaXMuZGF0YVtrZXldKSA/IGRlZmF1bHRWYWx1ZSA6IHRoaXMuZGF0YVtrZXldIDpcbiAgICAgIGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHNlYXJjaFBsYWNlRGF0YTxUPihrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0ga2V5cy5maW5kKGtleSA9PiAhaXNOaWwodGhpcy5kYXRhW2tleV0pKTtcbiAgICAgIHJldHVybiBmb3VuZCA/IHRoaXMuZGF0YVtmb3VuZF0gOiBkZWZhdWx0VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um91dGVJZEZyb20odmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbWV0ZXJEZWYgPSB0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgICByZXR1cm4gcm91dGVJZFBhcmFtZXRlckRlZiA/IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHJvdXRlSWRQYXJhbWV0ZXJEZWYpIDogbnVsbDtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFJvdXRlSWQodmlzaXQ6IFZpc2l0U2VnbWVudCk6IGFueSB7XG4gICAgLy8gTm90ZTogUm91dGVJZHMgYXJlIGFsd2F5cyBwcmVzZW50IGluIHRoZSB1cmwgYW5kIGFyZSBqdXN0IGVtcHR5IHN0cmluZ3Mgd2hlbiBub3QgZGVmaW5lZC4gIFRoaXMgaXNcbiAgICAvLyBtYW5kYXRlZCBieSB0aGUgZmFjdCB0aGF0IHJlZGlyZWN0cyBmcm9tIDxwYXRoPiB0byA8cGF0aD4vOmlkIGFsd2F5cyBpbmNsdWRlIHRoZSBpZCBwYXJhbWV0ZXIgYXNcbiAgICAvLyBhbiBlbXB0eSBzdHJpbmcuXG4gICAgcmV0dXJuIHZpc2l0Lmhhc1JvdXRlSWQoKSA/IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpLnVybEZvcm1hdC5mb3JtYXQodmlzaXQuZ2V0Um91dGVJZCgpKSA6IFwiXCI7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0U2VnbWVudCwgaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWVcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKGRlZik7XG4gICAgICBpZiAoIWRlZi5pc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIGlmIChkZWYuaXNBcnJheSkge1xuICAgICAgICAgIGFzc2VydC5pc0FycmF5KHZhbHVlKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gdmFsdWUubWFwKHYgPT4gZGVmLnVybEZvcm1hdC5mb3JtYXQodikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFzc2VydC5pc0ZhbHNleShBcnJheS5pc0FycmF5KHZhbHVlKSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQuZm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXROb25Sb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0U2VnbWVudCk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe2luY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnM6IHRydWV9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKGRlZik7XG4gICAgICBpZiAoIWRlZi5pc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcGFyc2VSb3V0ZVBhcmFtcyhwYXJhbXM6IFBhcmFtTWFwKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQ6IHRydWUsXG4gICAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogZmFsc2VcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICAvLyBwYXJhbXMgd2lsbCByZXR1cm4gbnVsbCBmb3Igbm9uIGV4aXN0ZW50IG5hbWVzXG4gICAgICBpZiAocGFyYW1zLmhhcyhkZWYubmFtZSkpIHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgLy8gY29uc3QgdmFsdWVzID0gcGFyYW1zLmdldEFsbChkZWYubmFtZSk7IC8vIFRPRE86IEVFRUsgZ2V0QWxsIGlzIHJldHVybmluZyBbXCIxLDIsMyw0XCJdIHdoZW4gd2UgZ2F2ZSBpdCBbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCJdLlxuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcmFtcy5nZXQoZGVmLm5hbWUpLnNwbGl0KCcsJykubWFwKHMgPT4gcy50cmltKCkpO1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZXMubWFwKHYgPT4gZGVmLnVybEZvcm1hdC5wYXJzZSh2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXMuZ2V0KGRlZi5uYW1lKTtcbiAgICAgICAgICBpZiAoZGVmLmlzUm91dGVJZCkgeyAvLyBUT0RPOiBNb3ZlIHRoaXMgdG8gcGFyYW1ldGVyIGRlZiBzbyBpdCdzIGEgc3RyYXRlZ3kgcGF0dGVyblxuICAgICAgICAgICAgLy8gYmVjYXVzZSBvdXIgaWQgcm91dGVzIHJlZGlyZWN0IGlmIHRoZSBpZCBpc24ndCBwcmVzZW50IHdlIGFsd2F5cyBoYXZlIGEgaWRcbiAgICAgICAgICAgIC8vIHBhcmFtZXRlciBpbiBvdXIgcGFyYW1zLiAgVGhpcyB3aWxsIGJ1Z2dlciBvdXIgcmVtZW1iZXIgYW5kIGRlZmF1bHR2YWx1ZSBzYW5pdGlzYXRpb25cbiAgICAgICAgICAgIC8vIGFzIGl0J2xsIHNlZSB0aGF0IHRoZSBpZCBpcyBwcmVzZW50IChldmVudCB0aG91Z2h0IGl0cyBhIGJsYW5rIHN0cmluZykuXG4gICAgICAgICAgICBpZiAoIWlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSBkZWYudXJsRm9ybWF0LnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQucGFyc2UodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB2YWxpZGF0ZVJvdXRlUGFyYW1ldGVycyhwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICBjb25zdCBkZWZzID0gdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQ6IHRydWUsXG4gICAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogdHJ1ZVxuICAgIH0pLnJlZHVjZSgocmVzdWx0LCBkZWYpID0+IHtcbiAgICAgIHJldHVybiB7Li4ucmVzdWx0LCBbZGVmLm5hbWVdOiBkZWZ9XG4gICAgfSwge30pO1xuXG4gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBkZWZzW2tleV07XG4gICAgICBpZiAoIXBhcmFtZXRlckRlZikge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgUGFyYW1ldGVyICR7a2V5fSBpcyBub3QgdmFsaWQuICBNdXN0IGJlIG9uZSBvZiAke2pvaW4oT2JqZWN0LmtleXMoZGVmcykpfWApXG4gICAgICB9XG5cbiAgICAgIGlmICghIXBhcmFtc1trZXldICYmIChBcnJheS5pc0FycmF5KHBhcmFtc1trZXldKSAhPT0gcGFyYW1ldGVyRGVmLmlzQXJyYXkpKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBQYXJhbWV0ZXIgJHtrZXl9ICR7cGFyYW1ldGVyRGVmLmlzQXJyYXkgPyBcIm11c3QgYmUgYW4gYXJyYXlcIiA6IFwibXVzdCBub3QgYmUgYW4gYXJyYXlcIn0uICBHb3QgJHtwYXJhbXNba2V5XX1gKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBoYXNBbmNlc3RvcihwbGFjZUNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pIHtcbiAgICByZXR1cm4gdGhpcy5hbmNlc3RvcnMoKS5maW5kKGEgPT4gYS5jb21wb25lbnQgPT09IHBsYWNlQ29tcG9uZW50KSAhPSBudWxsO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZURlZmluaXRpb24ge1xuICBleHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlck9wdGlvbnMge1xuICAgIGluY2x1ZGVSb3V0ZUlkPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgfVxufVxuIl19
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE1BQU0sT0FBTyxlQUFlO0lBSUw7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRiLE9BQU8sQ0FBa0I7SUFFakMsWUFBcUIsU0FBd0MsRUFDeEMsSUFBWSxFQUNaLFlBQXFCLEVBQ3JCLElBQVMsRUFDVCxJQUF5QixFQUN6QixlQUEyQyxFQUMzQyxRQUEyQixFQUMzQixvQkFBNkI7UUFQN0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FB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YUFBYSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixVQUFVLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDakk7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsY0FBNkM7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUUsQ0FBQztDQUVGO0FBbExDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7dURBR1Q7QUFpQ0Q7SUFEQyxPQUFPLEVBQUU7OztvQ0FDZ0IsbUJBQW1COzZEQUU1QztBQUdEO0lBREMsT0FBTyxFQUFFOzs7OzREQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7NERBWVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhcmFtTWFwfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHthc3NlcnQsIENvbnN0cnVjdGFibGUsIFByZWRpY2F0ZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nLCBPcHRzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnZmFzdC10eXBlc2NyaXB0LW1lbW9pemUnO1xuXG5pbXBvcnQge2lzRW1wdHksIGlzTmlsLCBqb2lufSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5leHBvcnQgY2xhc3MgUGxhY2VEZWZpbml0aW9uIHsgLy9pbXBsZW1lbnRzIFZpc2l0YWJsZVRyZWU8UGxhY2VEZWZpbml0aW9uPiAge1xuXG4gIHByaXZhdGUgX3BhcmVudDogUGxhY2VEZWZpbml0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYXV0aGVudGljYXRlOiBib29sZWFuLFxuICAgICAgICAgICAgICByZWFkb25seSByb2xlOiBhbnksXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJvdXRlUGFyYW1ldGVyczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGNoaWxkcmVuOiBQbGFjZURlZmluaXRpb25bXSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcmVkaXJlY3RUb0ZpcnN0Q2hpbGQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goaXQgPT4gaXQuc2V0UGFyZW50KHRoaXMpKTtcblxuICB9XG5cbiAgQE1lbW9pemUoKVxuICBhbmNlc3RvcnMoKTogUGxhY2VEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmFuY2VzdG9ycygpLmNvbmNhdChbdGhpcy5wYXJlbnRdKSA6IFtdO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBhbmNlc3RvcnNBbmRTZWxmKCk6IFBsYWNlRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5hbmNlc3RvcnMoKS5jb25jYXQodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UGFyZW50KHBhcmVudDogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMuX3BhcmVudCk7XG4gICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICB9XG5cbiAgZ2V0IHBhcmVudCgpOiBQbGFjZURlZmluaXRpb24ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gIH1cblxuICBpc1Jvb3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9wYXJlbnRcbiAgfVxuXG4gIGhhc1BhcmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMucGFyZW50XG4gIH1cblxuICBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzRW1wdHkodGhpcy5jaGlsZHJlbik7XG4gIH1cblxuICBmaW5kQ2hpbGQocHJlZGljYXRlOiBQcmVkaWNhdGU8UGxhY2VEZWZpbml0aW9uPik6IFBsYWNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4uZmluZChwcmVkaWNhdGUpO1xuICB9XG5cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVQYXJhbWV0ZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFJvdXRlUGFyYW1ldGVyRGVmcyhpbmNsdWRlUm91dGVJZCA9IGZhbHNlKTogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7aW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWV9KTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKGluY2x1ZGU/OiBQbGFjZURlZmluaXRpb24uUGFyYW1ldGVyT3B0aW9ucyk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICBjb25zdCBvcHRzID0gT3B0cy5nZXQoaW5jbHVkZSk7XG4gICAgLy8gaW5jbHVkZXNcbiAgICBjb25zdCBpbmNsdWRlUm91dGVJZCA9ICFpbmNsdWRlIHx8IG9wdHMuZ2V0T3B0aW9uYWwoJ2luY2x1ZGVSb3V0ZUlkJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maWx0ZXIocCA9PiB7XG4gICAgICByZXR1cm4gKGluY2x1ZGVSb3V0ZUlkICYmIHAuaXNSb3V0ZUlkKVxuICAgICAgICB8fCAoaW5jbHVkZVJvdXRlUGFyYW1ldGVycyAmJiBwLmlzUm91dGVQYXJhbWV0ZXIgJiYgIXAuaXNSb3V0ZUlkKSAvLyByb3V0ZSBpZCBpcyBpbmNsdWRlZCBpbiB0aGUgbGluZSBhYm92ZVxuICAgICAgICB8fCAoaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycyAmJiAhcC5pc1JvdXRlUGFyYW1ldGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBsYWNlRGF0YTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmRhdGEgP1xuICAgICAgaXNOaWwodGhpcy5kYXRhW2tleV0pID8gZGVmYXVsdFZhbHVlIDogdGhpcy5kYXRhW2tleV0gOlxuICAgICAgZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgc2VhcmNoUGxhY2VEYXRhPFQ+KGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgY29uc3QgZm91bmQgPSBrZXlzLmZpbmQoa2V5ID0+ICFpc05pbCh0aGlzLmRhdGFba2V5XSkpO1xuICAgICAgcmV0dXJuIGZvdW5kID8gdGhpcy5kYXRhW2ZvdW5kXSA6IGRlZmF1bHRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRSb3V0ZUlkRnJvbSh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtZXRlckRlZiA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW1ldGVyRGVmID8gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUocm91dGVJZFBhcmFtZXRlckRlZikgOiBudWxsO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdDogVmlzaXRTZWdtZW50KTogYW55IHtcbiAgICAvLyBOb3RlOiBSb3V0ZUlkcyBhcmUgYWx3YXlzIHByZXNlbnQgaW4gdGhlIHVybCBhbmQgYXJlIGp1c3QgZW1wdHkgc3RyaW5ncyB3aGVuIG5vdCBkZWZpbmVkLiAgVGhpcyBpc1xuICAgIC8vIG1hbmRhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgcmVkaXJlY3RzIGZyb20gPHBhdGg+IHRvIDxwYXRoPi86aWQgYWx3YXlzIGluY2x1ZGUgdGhlIGlkIHBhcmFtZXRlciBhc1xuICAgIC8vIGFuIGVtcHR5IHN0cmluZy5cbiAgICByZXR1cm4gdmlzaXQuaGFzUm91dGVJZCgpID8gdGhpcy5nZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCkudXJsRm9ybWF0LmZvcm1hdCh2aXNpdC5nZXRSb3V0ZUlkKCkpIDogXCJcIjtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXRTZWdtZW50LCBpbmNsdWRlUm91dGVJZCA9IGZhbHNlKTogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZCwgaW5jbHVkZVJvdXRlUGFyYW1ldGVyczogdHJ1ZVxuICAgIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUoZGVmKTtcbiAgICAgIGlmICghZGVmLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgYXNzZXJ0LmlzQXJyYXkodmFsdWUpO1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZS5tYXAodiA9PiBkZWYudXJsRm9ybWF0LmZvcm1hdCh2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXNzZXJ0LmlzRmFsc2V5KEFycmF5LmlzQXJyYXkodmFsdWUpKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gZGVmLnVybEZvcm1hdC5mb3JtYXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldE5vblJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXRTZWdtZW50KTogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7aW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogdHJ1ZX0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUoZGVmKTtcbiAgICAgIGlmICghZGVmLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwYXJzZVJvdXRlUGFyYW1zKHBhcmFtczogUGFyYW1NYXApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZDogdHJ1ZSxcbiAgICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUsXG4gICAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiBmYWxzZVxuICAgIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIC8vIHBhcmFtcyB3aWxsIHJldHVybiBudWxsIGZvciBub24gZXhpc3RlbnQgbmFtZXNcbiAgICAgIGlmIChwYXJhbXMuaGFzKGRlZi5uYW1lKSkge1xuICAgICAgICBpZiAoZGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICAvLyBjb25zdCB2YWx1ZXMgPSBwYXJhbXMuZ2V0QWxsKGRlZi5uYW1lKTsgLy8gVE9ETzogRUVFSyBnZXRBbGwgaXMgcmV0dXJuaW5nIFtcIjEsMiwzLDRcIl0gd2hlbiB3ZSBnYXZlIGl0IFtcIjFcIixcIjJcIixcIjNcIixcIjRcIl0uXG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1zLmdldChkZWYubmFtZSkuc3BsaXQoJywnKS5tYXAocyA9PiBzLnRyaW0oKSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlcy5tYXAodiA9PiBkZWYudXJsRm9ybWF0LnBhcnNlKHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtcy5nZXQoZGVmLm5hbWUpO1xuICAgICAgICAgIGlmIChkZWYuaXNSb3V0ZUlkKSB7IC8vIFRPRE86IE1vdmUgdGhpcyB0byBwYXJhbWV0ZXIgZGVmIHNvIGl0J3MgYSBzdHJhdGVneSBwYXR0ZXJuXG4gICAgICAgICAgICAvLyBiZWNhdXNlIG91ciBpZCByb3V0ZXMgcmVkaXJlY3QgaWYgdGhlIGlkIGlzbid0IHByZXNlbnQgd2UgYWx3YXlzIGhhdmUgYSBpZFxuICAgICAgICAgICAgLy8gcGFyYW1ldGVyIGluIG91ciBwYXJhbXMuICBUaGlzIHdpbGwgYnVnZ2VyIG91ciByZW1lbWJlciBhbmQgZGVmYXVsdHZhbHVlIHNhbml0aXNhdGlvblxuICAgICAgICAgICAgLy8gYXMgaXQnbGwgc2VlIHRoYXQgdGhlIGlkIGlzIHByZXNlbnQgKGV2ZW50IHRob3VnaHQgaXRzIGEgYmxhbmsgc3RyaW5nKS5cbiAgICAgICAgICAgIGlmICghaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gZGVmLnVybEZvcm1hdC5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHZhbGlkYXRlUm91dGVQYXJhbWV0ZXJzKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIGNvbnN0IGRlZnMgPSB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZDogdHJ1ZSxcbiAgICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUsXG4gICAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiB0cnVlXG4gICAgfSkucmVkdWNlKChyZXN1bHQsIGRlZikgPT4ge1xuICAgICAgcmV0dXJuIHsuLi5yZXN1bHQsIFtkZWYubmFtZV06IGRlZn1cbiAgICB9LCB7fSk7XG5cbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IGRlZnNba2V5XTtcbiAgICAgIGlmICghcGFyYW1ldGVyRGVmKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBQYXJhbWV0ZXIgJHtrZXl9IGlzIG5vdCB2YWxpZC4gIE11c3QgYmUgb25lIG9mICR7am9pbihPYmplY3Qua2V5cyhkZWZzKSl9YClcbiAgICAgIH1cblxuICAgICAgaWYgKCEhcGFyYW1zW2tleV0gJiYgKEFycmF5LmlzQXJyYXkocGFyYW1zW2tleV0pICE9PSBwYXJhbWV0ZXJEZWYuaXNBcnJheSkpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYFBhcmFtZXRlciAke2tleX0gJHtwYXJhbWV0ZXJEZWYuaXNBcnJheSA/IFwibXVzdCBiZSBhbiBhcnJheVwiIDogXCJtdXN0IG5vdCBiZSBhbiBhcnJheVwifS4gIEdvdCAke3BhcmFtc1trZXldfWApXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGhhc0FuY2VzdG9yKHBsYWNlQ29tcG9uZW50OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pikge1xuICAgIHJldHVybiB0aGlzLmFuY2VzdG9ycygpLmZpbmQoYSA9PiBhLmNvbXBvbmVudCA9PT0gcGxhY2VDb21wb25lbnQpICE9IG51bGw7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlRGVmaW5pdGlvbiB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyT3B0aW9ucyB7XG4gICAgaW5jbHVkZVJvdXRlSWQ/OiBib29sZWFuO1xuICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM/OiBib29sZWFuO1xuICAgIGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnM/OiBib29sZWFuO1xuICB9XG59XG4iXX0=
|