@plait/core 0.56.2 → 0.58.0
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/core/element/element-flavour.d.ts +30 -0
- package/core/list-render.d.ts +2 -4
- package/esm2022/board/board.component.mjs +10 -5
- package/esm2022/core/element/element-flavour.mjs +136 -0
- package/esm2022/core/island/island-base.component.mjs +6 -6
- package/esm2022/core/list-render.mjs +27 -27
- package/esm2022/interfaces/board.mjs +7 -1
- package/esm2022/interfaces/element.mjs +1 -5
- package/esm2022/plugins/with-moving.mjs +2 -2
- package/esm2022/plugins/with-selection.mjs +3 -6
- package/esm2022/public-api.mjs +2 -2
- package/esm2022/services/context.service.mjs +3 -3
- package/esm2022/utils/angle.mjs +6 -8
- package/esm2022/utils/element.mjs +7 -2
- package/esm2022/utils/selected-element.mjs +9 -1
- package/esm2022/utils/snap/snap.mjs +5 -2
- package/esm2022/utils/weak-maps.mjs +1 -1
- package/fesm2022/plait-core.mjs +1033 -1027
- package/fesm2022/plait-core.mjs.map +1 -1
- package/interfaces/board.d.ts +4 -2
- package/interfaces/element.d.ts +1 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/utils/angle.d.ts +5 -5
- package/utils/element.d.ts +1 -0
- package/utils/selected-element.d.ts +2 -0
- package/utils/weak-maps.d.ts +1 -0
- package/core/element/plugin-element.d.ts +0 -34
- package/esm2022/core/element/plugin-element.mjs +0 -151
|
@@ -10,7 +10,10 @@ export function getSnapRectangles(board, activeElements) {
|
|
|
10
10
|
recursion: () => true,
|
|
11
11
|
isReverse: false
|
|
12
12
|
});
|
|
13
|
-
return elements.map(item =>
|
|
13
|
+
return elements.map(item => {
|
|
14
|
+
const rectangle = board.getRectangle(item);
|
|
15
|
+
return getRectangleByAngle(rectangle, item.angle || 0);
|
|
16
|
+
});
|
|
14
17
|
}
|
|
15
18
|
export function getBarPoint(point, isHorizontal) {
|
|
16
19
|
return isHorizontal
|
|
@@ -205,4 +208,4 @@ export function drawSolidLines(board, lines) {
|
|
|
205
208
|
});
|
|
206
209
|
return g;
|
|
207
210
|
}
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL3NuYXAvc25hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QixlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBd0IxQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUV4QixNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBaUIsRUFBRSxjQUE4QjtJQUMvRSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFO1FBQ2pDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2hHLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1FBQ3JCLFNBQVMsRUFBRSxLQUFLO0tBQ25CLENBQUMsQ0FBQztJQUNILE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQztBQUN6SCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFZLEVBQUUsWUFBcUI7SUFDM0QsT0FBTyxZQUFZO1FBQ2YsQ0FBQyxDQUFDO1lBQ0ksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO1FBQ0gsQ0FBQyxDQUFDO1lBQ0ksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNCLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLGVBQWtDLEVBQUUsSUFBWSxFQUFFLFlBQXFCO0lBQ3BHLElBQUksS0FBSyxHQUFHLGNBQWMsQ0FBQztJQUMzQixlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzNCLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBWSxFQUFFLFNBQTBCLEVBQUUsWUFBcUIsRUFBRSxFQUFFO0lBQy9GLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBMEIsRUFBRSxZQUFxQixFQUFrQixFQUFFO0lBQy9GLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUMvQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsd0JBQXdCLENBQUMsY0FBaUMsRUFBRSxlQUFnQztJQUN4RyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDM0IsSUFBSSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUcsSUFBSSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7WUFDekIsV0FBVyxHQUFHLFFBQVEsQ0FBQztZQUN2QixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFFLFNBQTBCLEVBQUUsWUFBcUIsRUFBRSxFQUFFO0lBQzNGLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekQsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsS0FBaUIsRUFDakIsZUFBZ0MsRUFDaEMsY0FBaUMsRUFDakMsY0FBYyxHQUFHLElBQUksRUFDckIsWUFBWSxHQUFHLElBQUksRUFDbkIsVUFBVSxHQUFHLEtBQUs7SUFFbEIsSUFBSSxlQUFlLEdBQXFCLEVBQUUsQ0FBQztJQUMzQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLEdBQXVCO1FBQ3RDO1lBQ0ksSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDbkIsWUFBWSxFQUFFLElBQUk7WUFDbEIsZUFBZSxFQUFFLEVBQUU7U0FDdEI7UUFDRDtZQUNJLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ25CLFlBQVksRUFBRSxJQUFJO1lBQ2xCLGVBQWUsRUFBRSxFQUFFO1NBQ3RCO1FBQ0Q7WUFDSSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNuQixZQUFZLEVBQUUsSUFBSTtZQUNsQixlQUFlLEVBQUUsRUFBRTtTQUN0QjtRQUNEO1lBQ0ksSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDbkIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsZUFBZSxFQUFFLEVBQUU7U0FDdEI7UUFDRDtZQUNJLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ25CLFlBQVksRUFBRSxLQUFLO1lBQ25CLGVBQWUsRUFBRSxFQUFFO1NBQ3RCO1FBQ0Q7WUFDSSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNuQixZQUFZLEVBQUUsS0FBSztZQUNuQixlQUFlLEVBQUUsRUFBRTtTQUN0QjtLQUNKLENBQUM7SUFDRixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3pELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM3RSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDN0UsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzdFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM3RSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDN0UsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzdFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLElBQVksRUFBRSxjQUErQixFQUFFLFlBQXFCLEVBQUUsRUFBRTtRQUNwRyxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQzdDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUN2RSxZQUFZLENBQ2YsQ0FBQztRQUNGLElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQVUsQ0FBQztZQUN4RCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFVLENBQUM7WUFDakYsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxVQUFVLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFVLENBQUM7WUFDeEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBVSxDQUFDO1lBQ2hGLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxjQUFjLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1RCxNQUFNLGFBQWEsR0FDZixhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNELElBQUksY0FBYyxJQUFJLFVBQVUsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFFLE1BQU0sZUFBZSxHQUNqQixhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELElBQUksY0FBYyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUQsTUFBTSxjQUFjLEdBQ2hCLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDekMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3RGLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsSUFBSSxZQUFZLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FDZCxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQUksWUFBWSxJQUFJLFVBQVUsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hFLE1BQU0sZUFBZSxHQUNqQixhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELElBQUksWUFBWSxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUQsTUFBTSxjQUFjLEdBQ2hCLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDekMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3RGLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWlCLEVBQUUsS0FBdUI7SUFDdEUsTUFBTSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQzNCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwRyxNQUFNLEVBQUUsc0JBQXNCO1lBQzlCLFdBQVcsRUFBRSxDQUFDO1lBQ2QsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFpQixFQUFFLEtBQWdCO0lBQzlELE1BQU0sQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUMzQixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwRyxNQUFNLEVBQUUsc0JBQXNCO1lBQzlCLFdBQVcsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUNILENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xELE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDM0csTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsV0FBVyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBTRUxFQ1RJT05fQk9SREVSX0NPTE9SIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeUFuZ2xlIH0gZnJvbSAnLi4vYW5nbGUnO1xuaW1wb3J0IHsgY3JlYXRlRyB9IGZyb20gJy4uL2RvbSc7XG5pbXBvcnQgeyBmaW5kRWxlbWVudHMgfSBmcm9tICcuLi9lbGVtZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTbmFwRGVsdGEge1xuICAgIGRlbHRhWDogbnVtYmVyO1xuICAgIGRlbHRhWTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNuYXBSZWYgZXh0ZW5kcyBTbmFwRGVsdGEge1xuICAgIHNuYXBHOiBTVkdHRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHYXBTbmFwUmVmIHtcbiAgICBiZWZvcmU6IHsgZGlzdGFuY2U6IG51bWJlcjsgaW5kZXg6IG51bWJlciB9W107XG4gICAgYWZ0ZXI6IHsgZGlzdGFuY2U6IG51bWJlcjsgaW5kZXg6IG51bWJlciB9W107XG59XG5cbnR5cGUgUG9pbnRTbmFwTGluZVJlZiA9IHtcbiAgICBheGlzOiBudW1iZXI7XG4gICAgaXNIb3Jpem9udGFsOiBib29sZWFuO1xuICAgIHBvaW50UmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W107XG59O1xuXG50eXBlIFRyaXBsZVNuYXBBeGlzID0gW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgU05BUF9UT0xFUkFOQ0UgPSAyO1xuXG5jb25zdCBTTkFQX1NQQUNJTkcgPSAyNDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNuYXBSZWN0YW5nbGVzKGJvYXJkOiBQbGFpdEJvYXJkLCBhY3RpdmVFbGVtZW50czogUGxhaXRFbGVtZW50W10pIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IGZpbmRFbGVtZW50cyhib2FyZCwge1xuICAgICAgICBtYXRjaDogZWxlbWVudCA9PiBib2FyZC5pc0FsaWduKGVsZW1lbnQpICYmICFhY3RpdmVFbGVtZW50cy5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZWxlbWVudC5pZCksXG4gICAgICAgIHJlY3Vyc2lvbjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgaXNSZXZlcnNlOiBmYWxzZVxuICAgIH0pO1xuICAgIHJldHVybiBlbGVtZW50cy5tYXAoaXRlbSA9PiBnZXRSZWN0YW5nbGVCeUFuZ2xlKGJvYXJkLmdldFJlY3RhbmdsZShpdGVtKSEsIGl0ZW0uYW5nbGUpIHx8IGJvYXJkLmdldFJlY3RhbmdsZShpdGVtKSEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFyUG9pbnQocG9pbnQ6IFBvaW50LCBpc0hvcml6b250YWw6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gaXNIb3Jpem9udGFsXG4gICAgICAgID8gW1xuICAgICAgICAgICAgICBbcG9pbnRbMF0sIHBvaW50WzFdIC0gNF0sXG4gICAgICAgICAgICAgIFtwb2ludFswXSwgcG9pbnRbMV0gKyA0XVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICAgIFtwb2ludFswXSAtIDQsIHBvaW50WzFdXSxcbiAgICAgICAgICAgICAgW3BvaW50WzBdICsgNCwgcG9pbnRbMV1dXG4gICAgICAgICAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pblBvaW50RGVsdGEocG9pbnRSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSwgYXhpczogbnVtYmVyLCBpc0hvcml6b250YWw6IGJvb2xlYW4pIHtcbiAgICBsZXQgZGVsdGEgPSBTTkFQX1RPTEVSQU5DRTtcbiAgICBwb2ludFJlY3RhbmdsZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBnZXROZWFyZXN0RGVsdGEoYXhpcywgaXRlbSwgaXNIb3Jpem9udGFsKTtcbiAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlKSA8IE1hdGguYWJzKGRlbHRhKSkge1xuICAgICAgICAgICAgZGVsdGEgPSBkaXN0YW5jZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkZWx0YTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldE5lYXJlc3REZWx0YSA9IChheGlzOiBudW1iZXIsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBpc0hvcml6b250YWw6IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCBwb2ludEF4aXMgPSBnZXRUcmlwbGVBeGlzKHJlY3RhbmdsZSwgaXNIb3Jpem9udGFsKTtcbiAgICBjb25zdCBkZWx0YXMgPSBwb2ludEF4aXMubWFwKGl0ZW0gPT4gaXRlbSAtIGF4aXMpO1xuICAgIGNvbnN0IGFic0RlbHRhcyA9IGRlbHRhcy5tYXAoaXRlbSA9PiBNYXRoLmFicyhpdGVtKSk7XG4gICAgY29uc3QgaW5kZXggPSBhYnNEZWx0YXMuaW5kZXhPZihNYXRoLm1pbiguLi5hYnNEZWx0YXMpKTtcbiAgICByZXR1cm4gZGVsdGFzW2luZGV4XTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUcmlwbGVBeGlzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBpc0hvcml6b250YWw6IGJvb2xlYW4pOiBUcmlwbGVTbmFwQXhpcyA9PiB7XG4gICAgY29uc3QgYXhpcyA9IGlzSG9yaXpvbnRhbCA/ICd4JyA6ICd5JztcbiAgICBjb25zdCBzaWRlID0gaXNIb3Jpem9udGFsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIHJldHVybiBbcmVjdGFuZ2xlW2F4aXNdLCByZWN0YW5nbGVbYXhpc10gKyByZWN0YW5nbGVbc2lkZV0gLyAyLCByZWN0YW5nbGVbYXhpc10gKyByZWN0YW5nbGVbc2lkZV1dO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lYXJlc3RQb2ludFJlY3RhbmdsZShzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sIGFjdGl2ZVJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgbGV0IG1pbkRpc3RhbmNlID0gSW5maW5pdHk7XG4gICAgbGV0IG5lYXJlc3RSZWN0YW5nbGUgPSBzbmFwUmVjdGFuZ2xlc1swXTtcblxuICAgIHNuYXBSZWN0YW5nbGVzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KE1hdGgucG93KGFjdGl2ZVJlY3RhbmdsZS54IC0gaXRlbS54LCAyKSArIE1hdGgucG93KGFjdGl2ZVJlY3RhbmdsZS55IC0gaXRlbS55LCAyKSk7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IG1pbkRpc3RhbmNlKSB7XG4gICAgICAgICAgICBtaW5EaXN0YW5jZSA9IGRpc3RhbmNlO1xuICAgICAgICAgICAgbmVhcmVzdFJlY3RhbmdsZSA9IGl0ZW07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmVhcmVzdFJlY3RhbmdsZTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzU25hcFBvaW50ID0gKGF4aXM6IG51bWJlciwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGlzSG9yaXpvbnRhbDogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHBvaW50QXhpcyA9IGdldFRyaXBsZUF4aXMocmVjdGFuZ2xlLCBpc0hvcml6b250YWwpO1xuICAgIHJldHVybiBwb2ludEF4aXMuaW5jbHVkZXMoYXhpcyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1BvaW50U25hcExpbmVzKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGFjdGl2ZVJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LFxuICAgIHNuYXBSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSxcbiAgICBkcmF3SG9yaXpvbnRhbCA9IHRydWUsXG4gICAgZHJhd1ZlcnRpY2FsID0gdHJ1ZSxcbiAgICBzbmFwTWlkZGxlID0gZmFsc2Vcbikge1xuICAgIGxldCBwb2ludExpbmVQb2ludHM6IFtQb2ludCwgUG9pbnRdW10gPSBbXTtcbiAgICBjb25zdCBwb2ludEF4aXNYID0gZ2V0VHJpcGxlQXhpcyhhY3RpdmVSZWN0YW5nbGUsIHRydWUpO1xuICAgIGNvbnN0IHBvaW50QXhpc1kgPSBnZXRUcmlwbGVBeGlzKGFjdGl2ZVJlY3RhbmdsZSwgZmFsc2UpO1xuICAgIGNvbnN0IHBvaW50TGluZVJlZnM6IFBvaW50U25hcExpbmVSZWZbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgYXhpczogcG9pbnRBeGlzWFswXSxcbiAgICAgICAgICAgIGlzSG9yaXpvbnRhbDogdHJ1ZSxcbiAgICAgICAgICAgIHBvaW50UmVjdGFuZ2xlczogW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgYXhpczogcG9pbnRBeGlzWFsxXSxcbiAgICAgICAgICAgIGlzSG9yaXpvbnRhbDogdHJ1ZSxcbiAgICAgICAgICAgIHBvaW50UmVjdGFuZ2xlczogW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgYXhpczogcG9pbnRBeGlzWFsyXSxcbiAgICAgICAgICAgIGlzSG9yaXpvbnRhbDogdHJ1ZSxcbiAgICAgICAgICAgIHBvaW50UmVjdGFuZ2xlczogW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgYXhpczogcG9pbnRBeGlzWVswXSxcbiAgICAgICAgICAgIGlzSG9yaXpvbnRhbDogZmFsc2UsXG4gICAgICAgICAgICBwb2ludFJlY3RhbmdsZXM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGF4aXM6IHBvaW50QXhpc1lbMV0sXG4gICAgICAgICAgICBpc0hvcml6b250YWw6IGZhbHNlLFxuICAgICAgICAgICAgcG9pbnRSZWN0YW5nbGVzOiBbXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBheGlzOiBwb2ludEF4aXNZWzJdLFxuICAgICAgICAgICAgaXNIb3Jpem9udGFsOiBmYWxzZSxcbiAgICAgICAgICAgIHBvaW50UmVjdGFuZ2xlczogW11cbiAgICAgICAgfVxuICAgIF07XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNuYXBSZWN0YW5nbGVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gc25hcFJlY3RhbmdsZXNbaW5kZXhdO1xuICAgICAgICBpZiAoaXNTbmFwUG9pbnQocG9pbnRMaW5lUmVmc1swXS5heGlzLCBlbGVtZW50LCBwb2ludExpbmVSZWZzWzBdLmlzSG9yaXpvbnRhbCkpIHtcbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbMF0ucG9pbnRSZWN0YW5nbGVzLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzU25hcFBvaW50KHBvaW50TGluZVJlZnNbMV0uYXhpcywgZWxlbWVudCwgcG9pbnRMaW5lUmVmc1sxXS5pc0hvcml6b250YWwpKSB7XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzFdLnBvaW50UmVjdGFuZ2xlcy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NuYXBQb2ludChwb2ludExpbmVSZWZzWzJdLmF4aXMsIGVsZW1lbnQsIHBvaW50TGluZVJlZnNbMl0uaXNIb3Jpem9udGFsKSkge1xuICAgICAgICAgICAgcG9pbnRMaW5lUmVmc1syXS5wb2ludFJlY3RhbmdsZXMucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTbmFwUG9pbnQocG9pbnRMaW5lUmVmc1szXS5heGlzLCBlbGVtZW50LCBwb2ludExpbmVSZWZzWzNdLmlzSG9yaXpvbnRhbCkpIHtcbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbM10ucG9pbnRSZWN0YW5nbGVzLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzU25hcFBvaW50KHBvaW50TGluZVJlZnNbNF0uYXhpcywgZWxlbWVudCwgcG9pbnRMaW5lUmVmc1s0XS5pc0hvcml6b250YWwpKSB7XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzRdLnBvaW50UmVjdGFuZ2xlcy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NuYXBQb2ludChwb2ludExpbmVSZWZzWzVdLmF4aXMsIGVsZW1lbnQsIHBvaW50TGluZVJlZnNbNV0uaXNIb3Jpem9udGFsKSkge1xuICAgICAgICAgICAgcG9pbnRMaW5lUmVmc1s1XS5wb2ludFJlY3RhbmdsZXMucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNldFJlc2l6ZVBvaW50U25hcExpbmUgPSAoYXhpczogbnVtYmVyLCBwb2ludFJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBpc0hvcml6b250YWw6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgY29uc3QgYm91bmRpbmdSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuaW5mbGF0ZShcbiAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRCb3VuZGluZ1JlY3RhbmdsZShbYWN0aXZlUmVjdGFuZ2xlLCBwb2ludFJlY3RhbmdsZV0pLFxuICAgICAgICAgICAgU05BUF9TUEFDSU5HXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50U3RhcnQgPSBbYXhpcywgYm91bmRpbmdSZWN0YW5nbGUueV0gYXMgUG9pbnQ7XG4gICAgICAgICAgICBjb25zdCBwb2ludEVuZCA9IFtheGlzLCBib3VuZGluZ1JlY3RhbmdsZS55ICsgYm91bmRpbmdSZWN0YW5nbGUuaGVpZ2h0XSBhcyBQb2ludDtcbiAgICAgICAgICAgIHBvaW50TGluZVBvaW50cy5wdXNoKFtwb2ludFN0YXJ0LCBwb2ludEVuZF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRTdGFydCA9IFtib3VuZGluZ1JlY3RhbmdsZS54LCBheGlzXSBhcyBQb2ludDtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50RW5kID0gW2JvdW5kaW5nUmVjdGFuZ2xlLnggKyBib3VuZGluZ1JlY3RhbmdsZS53aWR0aCwgYXhpc10gYXMgUG9pbnQ7XG4gICAgICAgICAgICBwb2ludExpbmVQb2ludHMucHVzaChbcG9pbnRTdGFydCwgcG9pbnRFbmRdKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgaWYgKGRyYXdIb3Jpem9udGFsICYmIHBvaW50TGluZVJlZnNbMF0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBsZWZ0UmVjdGFuZ2xlID1cbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbMF0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgID8gcG9pbnRMaW5lUmVmc1swXS5wb2ludFJlY3RhbmdsZXNbMF1cbiAgICAgICAgICAgICAgICA6IGdldE5lYXJlc3RQb2ludFJlY3RhbmdsZShwb2ludExpbmVSZWZzWzBdLnBvaW50UmVjdGFuZ2xlcywgYWN0aXZlUmVjdGFuZ2xlKTtcbiAgICAgICAgc2V0UmVzaXplUG9pbnRTbmFwTGluZShwb2ludExpbmVSZWZzWzBdLmF4aXMsIGxlZnRSZWN0YW5nbGUsIHBvaW50TGluZVJlZnNbMF0uaXNIb3Jpem9udGFsKTtcbiAgICB9XG4gICAgaWYgKGRyYXdIb3Jpem9udGFsICYmIHNuYXBNaWRkbGUgJiYgcG9pbnRMaW5lUmVmc1sxXS5wb2ludFJlY3RhbmdsZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IG1pZGRsZVJlY3RhbmdsZSA9XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzFdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IHBvaW50TGluZVJlZnNbMV0ucG9pbnRSZWN0YW5nbGVzWzBdXG4gICAgICAgICAgICAgICAgOiBnZXROZWFyZXN0UG9pbnRSZWN0YW5nbGUocG9pbnRMaW5lUmVmc1sxXS5wb2ludFJlY3RhbmdsZXMsIGFjdGl2ZVJlY3RhbmdsZSk7XG4gICAgICAgIHNldFJlc2l6ZVBvaW50U25hcExpbmUocG9pbnRMaW5lUmVmc1sxXS5heGlzLCBtaWRkbGVSZWN0YW5nbGUsIHBvaW50TGluZVJlZnNbMV0uaXNIb3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICBpZiAoZHJhd0hvcml6b250YWwgJiYgcG9pbnRMaW5lUmVmc1syXS5wb2ludFJlY3RhbmdsZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHJpZ2h0UmVjdGFuZ2xlID1cbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbMl0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgID8gcG9pbnRMaW5lUmVmc1syXS5wb2ludFJlY3RhbmdsZXNbMF1cbiAgICAgICAgICAgICAgICA6IGdldE5lYXJlc3RQb2ludFJlY3RhbmdsZShwb2ludExpbmVSZWZzWzJdLnBvaW50UmVjdGFuZ2xlcywgYWN0aXZlUmVjdGFuZ2xlKTtcbiAgICAgICAgc2V0UmVzaXplUG9pbnRTbmFwTGluZShwb2ludExpbmVSZWZzWzJdLmF4aXMsIHJpZ2h0UmVjdGFuZ2xlLCBwb2ludExpbmVSZWZzWzJdLmlzSG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgaWYgKGRyYXdWZXJ0aWNhbCAmJiBwb2ludExpbmVSZWZzWzNdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdG9wUmVjdGFuZ2xlID1cbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbM10ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgID8gcG9pbnRMaW5lUmVmc1szXS5wb2ludFJlY3RhbmdsZXNbMF1cbiAgICAgICAgICAgICAgICA6IGdldE5lYXJlc3RQb2ludFJlY3RhbmdsZShwb2ludExpbmVSZWZzWzNdLnBvaW50UmVjdGFuZ2xlcywgYWN0aXZlUmVjdGFuZ2xlKTtcbiAgICAgICAgc2V0UmVzaXplUG9pbnRTbmFwTGluZShwb2ludExpbmVSZWZzWzNdLmF4aXMsIHRvcFJlY3RhbmdsZSwgcG9pbnRMaW5lUmVmc1szXS5pc0hvcml6b250YWwpO1xuICAgIH1cblxuICAgIGlmIChkcmF3VmVydGljYWwgJiYgc25hcE1pZGRsZSAmJiBwb2ludExpbmVSZWZzWzRdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgbWlkZGxlUmVjdGFuZ2xlID1cbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbNF0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgID8gcG9pbnRMaW5lUmVmc1s0XS5wb2ludFJlY3RhbmdsZXNbMF1cbiAgICAgICAgICAgICAgICA6IGdldE5lYXJlc3RQb2ludFJlY3RhbmdsZShwb2ludExpbmVSZWZzWzRdLnBvaW50UmVjdGFuZ2xlcywgYWN0aXZlUmVjdGFuZ2xlKTtcbiAgICAgICAgc2V0UmVzaXplUG9pbnRTbmFwTGluZShwb2ludExpbmVSZWZzWzRdLmF4aXMsIG1pZGRsZVJlY3RhbmdsZSwgcG9pbnRMaW5lUmVmc1s0XS5pc0hvcml6b250YWwpO1xuICAgIH1cblxuICAgIGlmIChkcmF3VmVydGljYWwgJiYgcG9pbnRMaW5lUmVmc1s1XS5wb2ludFJlY3RhbmdsZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHJpZ2h0UmVjdGFuZ2xlID1cbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbNV0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgID8gcG9pbnRMaW5lUmVmc1s1XS5wb2ludFJlY3RhbmdsZXNbMF1cbiAgICAgICAgICAgICAgICA6IGdldE5lYXJlc3RQb2ludFJlY3RhbmdsZShwb2ludExpbmVSZWZzWzVdLnBvaW50UmVjdGFuZ2xlcywgYWN0aXZlUmVjdGFuZ2xlKTtcbiAgICAgICAgc2V0UmVzaXplUG9pbnRTbmFwTGluZShwb2ludExpbmVSZWZzWzVdLmF4aXMsIHJpZ2h0UmVjdGFuZ2xlLCBwb2ludExpbmVSZWZzWzVdLmlzSG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRyYXdEYXNoZWRMaW5lcyhib2FyZCwgcG9pbnRMaW5lUG9pbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdEYXNoZWRMaW5lcyhib2FyZDogUGxhaXRCb2FyZCwgbGluZXM6IFtQb2ludCwgUG9pbnRdW10pIHtcbiAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgIGxpbmVzLmZvckVhY2gocG9pbnRzID0+IHtcbiAgICAgICAgaWYgKCFwb2ludHMubGVuZ3RoKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5saW5lKHBvaW50c1swXVswXSwgcG9pbnRzWzBdWzFdLCBwb2ludHNbMV1bMF0sIHBvaW50c1sxXVsxXSwge1xuICAgICAgICAgICAgc3Ryb2tlOiBTRUxFQ1RJT05fQk9SREVSX0NPTE9SLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICBzdHJva2VMaW5lRGFzaDogWzQsIDRdXG4gICAgICAgIH0pO1xuICAgICAgICBnLmFwcGVuZENoaWxkKGxpbmUpO1xuICAgIH0pO1xuICAgIHJldHVybiBnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1NvbGlkTGluZXMoYm9hcmQ6IFBsYWl0Qm9hcmQsIGxpbmVzOiBQb2ludFtdW10pIHtcbiAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgIGxpbmVzLmZvckVhY2gocG9pbnRzID0+IHtcbiAgICAgICAgaWYgKCFwb2ludHMubGVuZ3RoKSByZXR1cm47XG4gICAgICAgIGxldCBpc0hvcml6b250YWwgPSBwb2ludHNbMF1bMV0gPT09IHBvaW50c1sxXVsxXTtcbiAgICAgICAgY29uc3QgbGluZSA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLmxpbmUocG9pbnRzWzBdWzBdLCBwb2ludHNbMF1bMV0sIHBvaW50c1sxXVswXSwgcG9pbnRzWzFdWzFdLCB7XG4gICAgICAgICAgICBzdHJva2U6IFNFTEVDVElPTl9CT1JERVJfQ09MT1IsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogMVxuICAgICAgICB9KTtcbiAgICAgICAgZy5hcHBlbmRDaGlsZChsaW5lKTtcblxuICAgICAgICBwb2ludHMuZm9yRWFjaChwb2ludCA9PiB7XG4gICAgICAgICAgICBjb25zdCBiYXJQb2ludCA9IGdldEJhclBvaW50KHBvaW50LCBpc0hvcml6b250YWwpO1xuICAgICAgICAgICAgY29uc3QgYmFyID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCkubGluZShiYXJQb2ludFswXVswXSwgYmFyUG9pbnRbMF1bMV0sIGJhclBvaW50WzFdWzBdLCBiYXJQb2ludFsxXVsxXSwge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBnLmFwcGVuZENoaWxkKGJhcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBnO1xufVxuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL3NuYXAvc25hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QixlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBd0IxQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUV4QixNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBaUIsRUFBRSxjQUE4QjtJQUMvRSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFO1FBQ2pDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2hHLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1FBQ3JCLFNBQVMsRUFBRSxLQUFLO0tBQ25CLENBQUMsQ0FBQztJQUNILE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQzVDLE9BQU8sbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDLENB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QkFDM0csTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsV0FBVyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBTRUxFQ1RJT05fQk9SREVSX0NPTE9SIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeUFuZ2xlIH0gZnJvbSAnLi4vYW5nbGUnO1xuaW1wb3J0IHsgY3JlYXRlRyB9IGZyb20gJy4uL2RvbSc7XG5pbXBvcnQgeyBmaW5kRWxlbWVudHMgfSBmcm9tICcuLi9lbGVtZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTbmFwRGVsdGEge1xuICAgIGRlbHRhWDogbnVtYmVyO1xuICAgIGRlbHRhWTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNuYXBSZWYgZXh0ZW5kcyBTbmFwRGVsdGEge1xuICAgIHNuYXBHOiBTVkdHRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHYXBTbmFwUmVmIHtcbiAgICBiZWZvcmU6IHsgZGlzdGFuY2U6IG51bWJlcjsgaW5kZXg6IG51bWJlciB9W107XG4gICAgYWZ0ZXI6IHsgZGlzdGFuY2U6IG51bWJlcjsgaW5kZXg6IG51bWJlciB9W107XG59XG5cbnR5cGUgUG9pbnRTbmFwTGluZVJlZiA9IHtcbiAgICBheGlzOiBudW1iZXI7XG4gICAgaXNIb3Jpem9udGFsOiBib29sZWFuO1xuICAgIHBvaW50UmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W107XG59O1xuXG50eXBlIFRyaXBsZVNuYXBBeGlzID0gW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgU05BUF9UT0xFUkFOQ0UgPSAyO1xuXG5jb25zdCBTTkFQX1NQQUNJTkcgPSAyNDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNuYXBSZWN0YW5nbGVzKGJvYXJkOiBQbGFpdEJvYXJkLCBhY3RpdmVFbGVtZW50czogUGxhaXRFbGVtZW50W10pIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IGZpbmRFbGVtZW50cyhib2FyZCwge1xuICAgICAgICBtYXRjaDogZWxlbWVudCA9PiBib2FyZC5pc0FsaWduKGVsZW1lbnQpICYmICFhY3RpdmVFbGVtZW50cy5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZWxlbWVudC5pZCksXG4gICAgICAgIHJlY3Vyc2lvbjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgaXNSZXZlcnNlOiBmYWxzZVxuICAgIH0pO1xuICAgIHJldHVybiBlbGVtZW50cy5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGJvYXJkLmdldFJlY3RhbmdsZShpdGVtKSE7XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeUFuZ2xlKHJlY3RhbmdsZSwgaXRlbS5hbmdsZSB8fCAwKTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhclBvaW50KHBvaW50OiBQb2ludCwgaXNIb3Jpem9udGFsOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFxuICAgICAgICA/IFtcbiAgICAgICAgICAgICAgW3BvaW50WzBdLCBwb2ludFsxXSAtIDRdLFxuICAgICAgICAgICAgICBbcG9pbnRbMF0sIHBvaW50WzFdICsgNF1cbiAgICAgICAgICBdXG4gICAgICAgIDogW1xuICAgICAgICAgICAgICBbcG9pbnRbMF0gLSA0LCBwb2ludFsxXV0sXG4gICAgICAgICAgICAgIFtwb2ludFswXSArIDQsIHBvaW50WzFdXVxuICAgICAgICAgIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNaW5Qb2ludERlbHRhKHBvaW50UmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sIGF4aXM6IG51bWJlciwgaXNIb3Jpem9udGFsOiBib29sZWFuKSB7XG4gICAgbGV0IGRlbHRhID0gU05BUF9UT0xFUkFOQ0U7XG4gICAgcG9pbnRSZWN0YW5nbGVzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gZ2V0TmVhcmVzdERlbHRhKGF4aXMsIGl0ZW0sIGlzSG9yaXpvbnRhbCk7XG4gICAgICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZSkgPCBNYXRoLmFicyhkZWx0YSkpIHtcbiAgICAgICAgICAgIGRlbHRhID0gZGlzdGFuY2U7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGVsdGE7XG59XG5cbmV4cG9ydCBjb25zdCBnZXROZWFyZXN0RGVsdGEgPSAoYXhpczogbnVtYmVyLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaXNIb3Jpem9udGFsOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgcG9pbnRBeGlzID0gZ2V0VHJpcGxlQXhpcyhyZWN0YW5nbGUsIGlzSG9yaXpvbnRhbCk7XG4gICAgY29uc3QgZGVsdGFzID0gcG9pbnRBeGlzLm1hcChpdGVtID0+IGl0ZW0gLSBheGlzKTtcbiAgICBjb25zdCBhYnNEZWx0YXMgPSBkZWx0YXMubWFwKGl0ZW0gPT4gTWF0aC5hYnMoaXRlbSkpO1xuICAgIGNvbnN0IGluZGV4ID0gYWJzRGVsdGFzLmluZGV4T2YoTWF0aC5taW4oLi4uYWJzRGVsdGFzKSk7XG4gICAgcmV0dXJuIGRlbHRhc1tpbmRleF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VHJpcGxlQXhpcyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaXNIb3Jpem9udGFsOiBib29sZWFuKTogVHJpcGxlU25hcEF4aXMgPT4ge1xuICAgIGNvbnN0IGF4aXMgPSBpc0hvcml6b250YWwgPyAneCcgOiAneSc7XG4gICAgY29uc3Qgc2lkZSA9IGlzSG9yaXpvbnRhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICByZXR1cm4gW3JlY3RhbmdsZVtheGlzXSwgcmVjdGFuZ2xlW2F4aXNdICsgcmVjdGFuZ2xlW3NpZGVdIC8gMiwgcmVjdGFuZ2xlW2F4aXNdICsgcmVjdGFuZ2xlW3NpZGVdXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZWFyZXN0UG9pbnRSZWN0YW5nbGUoc25hcFJlY3RhbmdsZXM6IFJlY3RhbmdsZUNsaWVudFtdLCBhY3RpdmVSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgIGxldCBtaW5EaXN0YW5jZSA9IEluZmluaXR5O1xuICAgIGxldCBuZWFyZXN0UmVjdGFuZ2xlID0gc25hcFJlY3RhbmdsZXNbMF07XG5cbiAgICBzbmFwUmVjdGFuZ2xlcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChNYXRoLnBvdyhhY3RpdmVSZWN0YW5nbGUueCAtIGl0ZW0ueCwgMikgKyBNYXRoLnBvdyhhY3RpdmVSZWN0YW5nbGUueSAtIGl0ZW0ueSwgMikpO1xuICAgICAgICBpZiAoZGlzdGFuY2UgPCBtaW5EaXN0YW5jZSkge1xuICAgICAgICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICAgICAgICAgIG5lYXJlc3RSZWN0YW5nbGUgPSBpdGVtO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5lYXJlc3RSZWN0YW5nbGU7XG59XG5cbmV4cG9ydCBjb25zdCBpc1NuYXBQb2ludCA9IChheGlzOiBudW1iZXIsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBpc0hvcml6b250YWw6IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCBwb2ludEF4aXMgPSBnZXRUcmlwbGVBeGlzKHJlY3RhbmdsZSwgaXNIb3Jpem9udGFsKTtcbiAgICByZXR1cm4gcG9pbnRBeGlzLmluY2x1ZGVzKGF4aXMpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdQb2ludFNuYXBMaW5lcyhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBhY3RpdmVSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sXG4gICAgZHJhd0hvcml6b250YWwgPSB0cnVlLFxuICAgIGRyYXdWZXJ0aWNhbCA9IHRydWUsXG4gICAgc25hcE1pZGRsZSA9IGZhbHNlXG4pIHtcbiAgICBsZXQgcG9pbnRMaW5lUG9pbnRzOiBbUG9pbnQsIFBvaW50XVtdID0gW107XG4gICAgY29uc3QgcG9pbnRBeGlzWCA9IGdldFRyaXBsZUF4aXMoYWN0aXZlUmVjdGFuZ2xlLCB0cnVlKTtcbiAgICBjb25zdCBwb2ludEF4aXNZID0gZ2V0VHJpcGxlQXhpcyhhY3RpdmVSZWN0YW5nbGUsIGZhbHNlKTtcbiAgICBjb25zdCBwb2ludExpbmVSZWZzOiBQb2ludFNuYXBMaW5lUmVmW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGF4aXM6IHBvaW50QXhpc1hbMF0sXG4gICAgICAgICAgICBpc0hvcml6b250YWw6IHRydWUsXG4gICAgICAgICAgICBwb2ludFJlY3RhbmdsZXM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGF4aXM6IHBvaW50QXhpc1hbMV0sXG4gICAgICAgICAgICBpc0hvcml6b250YWw6IHRydWUsXG4gICAgICAgICAgICBwb2ludFJlY3RhbmdsZXM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGF4aXM6IHBvaW50QXhpc1hbMl0sXG4gICAgICAgICAgICBpc0hvcml6b250YWw6IHRydWUsXG4gICAgICAgICAgICBwb2ludFJlY3RhbmdsZXM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGF4aXM6IHBvaW50QXhpc1lbMF0sXG4gICAgICAgICAgICBpc0hvcml6b250YWw6IGZhbHNlLFxuICAgICAgICAgICAgcG9pbnRSZWN0YW5nbGVzOiBbXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBheGlzOiBwb2ludEF4aXNZWzFdLFxuICAgICAgICAgICAgaXNIb3Jpem9udGFsOiBmYWxzZSxcbiAgICAgICAgICAgIHBvaW50UmVjdGFuZ2xlczogW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgYXhpczogcG9pbnRBeGlzWVsyXSxcbiAgICAgICAgICAgIGlzSG9yaXpvbnRhbDogZmFsc2UsXG4gICAgICAgICAgICBwb2ludFJlY3RhbmdsZXM6IFtdXG4gICAgICAgIH1cbiAgICBdO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzbmFwUmVjdGFuZ2xlcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHNuYXBSZWN0YW5nbGVzW2luZGV4XTtcbiAgICAgICAgaWYgKGlzU25hcFBvaW50KHBvaW50TGluZVJlZnNbMF0uYXhpcywgZWxlbWVudCwgcG9pbnRMaW5lUmVmc1swXS5pc0hvcml6b250YWwpKSB7XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzBdLnBvaW50UmVjdGFuZ2xlcy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NuYXBQb2ludChwb2ludExpbmVSZWZzWzFdLmF4aXMsIGVsZW1lbnQsIHBvaW50TGluZVJlZnNbMV0uaXNIb3Jpem9udGFsKSkge1xuICAgICAgICAgICAgcG9pbnRMaW5lUmVmc1sxXS5wb2ludFJlY3RhbmdsZXMucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTbmFwUG9pbnQocG9pbnRMaW5lUmVmc1syXS5heGlzLCBlbGVtZW50LCBwb2ludExpbmVSZWZzWzJdLmlzSG9yaXpvbnRhbCkpIHtcbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbMl0ucG9pbnRSZWN0YW5nbGVzLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzU25hcFBvaW50KHBvaW50TGluZVJlZnNbM10uYXhpcywgZWxlbWVudCwgcG9pbnRMaW5lUmVmc1szXS5pc0hvcml6b250YWwpKSB7XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzNdLnBvaW50UmVjdGFuZ2xlcy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NuYXBQb2ludChwb2ludExpbmVSZWZzWzRdLmF4aXMsIGVsZW1lbnQsIHBvaW50TGluZVJlZnNbNF0uaXNIb3Jpem9udGFsKSkge1xuICAgICAgICAgICAgcG9pbnRMaW5lUmVmc1s0XS5wb2ludFJlY3RhbmdsZXMucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTbmFwUG9pbnQocG9pbnRMaW5lUmVmc1s1XS5heGlzLCBlbGVtZW50LCBwb2ludExpbmVSZWZzWzVdLmlzSG9yaXpvbnRhbCkpIHtcbiAgICAgICAgICAgIHBvaW50TGluZVJlZnNbNV0ucG9pbnRSZWN0YW5nbGVzLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXRSZXNpemVQb2ludFNuYXBMaW5lID0gKGF4aXM6IG51bWJlciwgcG9pbnRSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaXNIb3Jpem9udGFsOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUoXG4gICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0Qm91bmRpbmdSZWN0YW5nbGUoW2FjdGl2ZVJlY3RhbmdsZSwgcG9pbnRSZWN0YW5nbGVdKSxcbiAgICAgICAgICAgIFNOQVBfU1BBQ0lOR1xuICAgICAgICApO1xuICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludFN0YXJ0ID0gW2F4aXMsIGJvdW5kaW5nUmVjdGFuZ2xlLnldIGFzIFBvaW50O1xuICAgICAgICAgICAgY29uc3QgcG9pbnRFbmQgPSBbYXhpcywgYm91bmRpbmdSZWN0YW5nbGUueSArIGJvdW5kaW5nUmVjdGFuZ2xlLmhlaWdodF0gYXMgUG9pbnQ7XG4gICAgICAgICAgICBwb2ludExpbmVQb2ludHMucHVzaChbcG9pbnRTdGFydCwgcG9pbnRFbmRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50U3RhcnQgPSBbYm91bmRpbmdSZWN0YW5nbGUueCwgYXhpc10gYXMgUG9pbnQ7XG4gICAgICAgICAgICBjb25zdCBwb2ludEVuZCA9IFtib3VuZGluZ1JlY3RhbmdsZS54ICsgYm91bmRpbmdSZWN0YW5nbGUud2lkdGgsIGF4aXNdIGFzIFBvaW50O1xuICAgICAgICAgICAgcG9pbnRMaW5lUG9pbnRzLnB1c2goW3BvaW50U3RhcnQsIHBvaW50RW5kXSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGlmIChkcmF3SG9yaXpvbnRhbCAmJiBwb2ludExpbmVSZWZzWzBdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgbGVmdFJlY3RhbmdsZSA9XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzBdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IHBvaW50TGluZVJlZnNbMF0ucG9pbnRSZWN0YW5nbGVzWzBdXG4gICAgICAgICAgICAgICAgOiBnZXROZWFyZXN0UG9pbnRSZWN0YW5nbGUocG9pbnRMaW5lUmVmc1swXS5wb2ludFJlY3RhbmdsZXMsIGFjdGl2ZVJlY3RhbmdsZSk7XG4gICAgICAgIHNldFJlc2l6ZVBvaW50U25hcExpbmUocG9pbnRMaW5lUmVmc1swXS5heGlzLCBsZWZ0UmVjdGFuZ2xlLCBwb2ludExpbmVSZWZzWzBdLmlzSG9yaXpvbnRhbCk7XG4gICAgfVxuICAgIGlmIChkcmF3SG9yaXpvbnRhbCAmJiBzbmFwTWlkZGxlICYmIHBvaW50TGluZVJlZnNbMV0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBtaWRkbGVSZWN0YW5nbGUgPVxuICAgICAgICAgICAgcG9pbnRMaW5lUmVmc1sxXS5wb2ludFJlY3RhbmdsZXMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgPyBwb2ludExpbmVSZWZzWzFdLnBvaW50UmVjdGFuZ2xlc1swXVxuICAgICAgICAgICAgICAgIDogZ2V0TmVhcmVzdFBvaW50UmVjdGFuZ2xlKHBvaW50TGluZVJlZnNbMV0ucG9pbnRSZWN0YW5nbGVzLCBhY3RpdmVSZWN0YW5nbGUpO1xuICAgICAgICBzZXRSZXNpemVQb2ludFNuYXBMaW5lKHBvaW50TGluZVJlZnNbMV0uYXhpcywgbWlkZGxlUmVjdGFuZ2xlLCBwb2ludExpbmVSZWZzWzFdLmlzSG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgaWYgKGRyYXdIb3Jpem9udGFsICYmIHBvaW50TGluZVJlZnNbMl0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCByaWdodFJlY3RhbmdsZSA9XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzJdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IHBvaW50TGluZVJlZnNbMl0ucG9pbnRSZWN0YW5nbGVzWzBdXG4gICAgICAgICAgICAgICAgOiBnZXROZWFyZXN0UG9pbnRSZWN0YW5nbGUocG9pbnRMaW5lUmVmc1syXS5wb2ludFJlY3RhbmdsZXMsIGFjdGl2ZVJlY3RhbmdsZSk7XG4gICAgICAgIHNldFJlc2l6ZVBvaW50U25hcExpbmUocG9pbnRMaW5lUmVmc1syXS5heGlzLCByaWdodFJlY3RhbmdsZSwgcG9pbnRMaW5lUmVmc1syXS5pc0hvcml6b250YWwpO1xuICAgIH1cblxuICAgIGlmIChkcmF3VmVydGljYWwgJiYgcG9pbnRMaW5lUmVmc1szXS5wb2ludFJlY3RhbmdsZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHRvcFJlY3RhbmdsZSA9XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzNdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IHBvaW50TGluZVJlZnNbM10ucG9pbnRSZWN0YW5nbGVzWzBdXG4gICAgICAgICAgICAgICAgOiBnZXROZWFyZXN0UG9pbnRSZWN0YW5nbGUocG9pbnRMaW5lUmVmc1szXS5wb2ludFJlY3RhbmdsZXMsIGFjdGl2ZVJlY3RhbmdsZSk7XG4gICAgICAgIHNldFJlc2l6ZVBvaW50U25hcExpbmUocG9pbnRMaW5lUmVmc1szXS5heGlzLCB0b3BSZWN0YW5nbGUsIHBvaW50TGluZVJlZnNbM10uaXNIb3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICBpZiAoZHJhd1ZlcnRpY2FsICYmIHNuYXBNaWRkbGUgJiYgcG9pbnRMaW5lUmVmc1s0XS5wb2ludFJlY3RhbmdsZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IG1pZGRsZVJlY3RhbmdsZSA9XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzRdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IHBvaW50TGluZVJlZnNbNF0ucG9pbnRSZWN0YW5nbGVzWzBdXG4gICAgICAgICAgICAgICAgOiBnZXROZWFyZXN0UG9pbnRSZWN0YW5nbGUocG9pbnRMaW5lUmVmc1s0XS5wb2ludFJlY3RhbmdsZXMsIGFjdGl2ZVJlY3RhbmdsZSk7XG4gICAgICAgIHNldFJlc2l6ZVBvaW50U25hcExpbmUocG9pbnRMaW5lUmVmc1s0XS5heGlzLCBtaWRkbGVSZWN0YW5nbGUsIHBvaW50TGluZVJlZnNbNF0uaXNIb3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICBpZiAoZHJhd1ZlcnRpY2FsICYmIHBvaW50TGluZVJlZnNbNV0ucG9pbnRSZWN0YW5nbGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCByaWdodFJlY3RhbmdsZSA9XG4gICAgICAgICAgICBwb2ludExpbmVSZWZzWzVdLnBvaW50UmVjdGFuZ2xlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IHBvaW50TGluZVJlZnNbNV0ucG9pbnRSZWN0YW5nbGVzWzBdXG4gICAgICAgICAgICAgICAgOiBnZXROZWFyZXN0UG9pbnRSZWN0YW5nbGUocG9pbnRMaW5lUmVmc1s1XS5wb2ludFJlY3RhbmdsZXMsIGFjdGl2ZVJlY3RhbmdsZSk7XG4gICAgICAgIHNldFJlc2l6ZVBvaW50U25hcExpbmUocG9pbnRMaW5lUmVmc1s1XS5heGlzLCByaWdodFJlY3RhbmdsZSwgcG9pbnRMaW5lUmVmc1s1XS5pc0hvcml6b250YWwpO1xuICAgIH1cblxuICAgIHJldHVybiBkcmF3RGFzaGVkTGluZXMoYm9hcmQsIHBvaW50TGluZVBvaW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3RGFzaGVkTGluZXMoYm9hcmQ6IFBsYWl0Qm9hcmQsIGxpbmVzOiBbUG9pbnQsIFBvaW50XVtdKSB7XG4gICAgY29uc3QgZyA9IGNyZWF0ZUcoKTtcbiAgICBsaW5lcy5mb3JFYWNoKHBvaW50cyA9PiB7XG4gICAgICAgIGlmICghcG9pbnRzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBsaW5lID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCkubGluZShwb2ludHNbMF1bMF0sIHBvaW50c1swXVsxXSwgcG9pbnRzWzFdWzBdLCBwb2ludHNbMV1bMV0sIHtcbiAgICAgICAgICAgIHN0cm9rZTogU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxLFxuICAgICAgICAgICAgc3Ryb2tlTGluZURhc2g6IFs0LCA0XVxuICAgICAgICB9KTtcbiAgICAgICAgZy5hcHBlbmRDaGlsZChsaW5lKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdTb2xpZExpbmVzKGJvYXJkOiBQbGFpdEJvYXJkLCBsaW5lczogUG9pbnRbXVtdKSB7XG4gICAgY29uc3QgZyA9IGNyZWF0ZUcoKTtcbiAgICBsaW5lcy5mb3JFYWNoKHBvaW50cyA9PiB7XG4gICAgICAgIGlmICghcG9pbnRzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICBsZXQgaXNIb3Jpem9udGFsID0gcG9pbnRzWzBdWzFdID09PSBwb2ludHNbMV1bMV07XG4gICAgICAgIGNvbnN0IGxpbmUgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKS5saW5lKHBvaW50c1swXVswXSwgcG9pbnRzWzBdWzFdLCBwb2ludHNbMV1bMF0sIHBvaW50c1sxXVsxXSwge1xuICAgICAgICAgICAgc3Ryb2tlOiBTRUxFQ1RJT05fQk9SREVSX0NPTE9SLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDFcbiAgICAgICAgfSk7XG4gICAgICAgIGcuYXBwZW5kQ2hpbGQobGluZSk7XG5cbiAgICAgICAgcG9pbnRzLmZvckVhY2gocG9pbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmFyUG9pbnQgPSBnZXRCYXJQb2ludChwb2ludCwgaXNIb3Jpem9udGFsKTtcbiAgICAgICAgICAgIGNvbnN0IGJhciA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLmxpbmUoYmFyUG9pbnRbMF1bMF0sIGJhclBvaW50WzBdWzFdLCBiYXJQb2ludFsxXVswXSwgYmFyUG9pbnRbMV1bMV0sIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IFNFTEVDVElPTl9CT1JERVJfQ09MT1IsXG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZy5hcHBlbmRDaGlsZChiYXIpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZztcbn1cbiJdfQ==
|
|
@@ -23,4 +23,4 @@ export const BOARD_TO_TEMPORARY_ELEMENTS = new WeakMap();
|
|
|
23
23
|
export const BOARD_TO_MOVING_ELEMENT = new WeakMap();
|
|
24
24
|
export const PATH_REFS = new WeakMap();
|
|
25
25
|
export const ELEMENT_TO_REF = new WeakMap();
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvd2Vhay1tYXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLDhCQUE4QjtBQUM5QixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF1QyxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBVTdDLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztBQUUvRSxxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxPQUFPLEVBQTRELENBQUM7QUFFbkgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBMkMsSUFBSSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IEJvYXJkQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vYm9hcmQvYm9hcmQuY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50JztcbmltcG9ydCB7IEFuY2VzdG9yLCBQbGFpdE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGF0aFJlZiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGF0aC1yZWYnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50UmVmIH0gZnJvbSAnLi4vY29yZS9lbGVtZW50L2VsZW1lbnQtcmVmJztcblxuLy8gcmVjb3JkIHJpY2h0ZXh0IHR5cGUgc3RhdHVzXG5leHBvcnQgY29uc3QgSVNfQk9BUkRfQ0FDSEUgPSBuZXcgV2Vha01hcDxPYmplY3QsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBGTFVTSElORyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBOT0RFX1RPX0lOREVYID0gbmV3IFdlYWtNYXA8UGxhaXROb2RlLCBudW1iZXI+KCk7XG5cbmV4cG9ydCBjb25zdCBOT0RFX1RPX1BBUkVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Tm9kZSwgQW5jZXN0b3I+KCk7XG5cbmV4cG9ydCBjb25zdCBOT0RFX1RPX0cgPSBuZXcgV2Vha01hcDxQbGFpdE5vZGUsIFNWR0dFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgTk9ERV9UT19DT05UQUlORVJfRyA9IG5ldyBXZWFrTWFwPFBsYWl0Tm9kZSwgU1ZHR0VsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBJU19URVhUX0VESVRBQkxFID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgYm9vbGVhbj4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX09OX0NIQU5HRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsICgpID0+IHZvaWQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19BRlRFUl9DSEFOR0UgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCAoKSA9PiB2b2lkPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fQ09NUE9ORU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgQm9hcmRDb21wb25lbnRJbnRlcmZhY2U+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19ST1VHSF9TVkcgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBSb3VnaFNWRz4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0hPU1QgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBTVkdTVkdFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgSVNfQk9BUkRfQUxJVkUgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBib29sZWFuPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fRUxFTUVOVF9IT1NUID0gbmV3IFdlYWtNYXA8XG4gICAgUGxhaXRCb2FyZCxcbiAgICB7XG4gICAgICAgIGxvd2VySG9zdDogU1ZHR0VsZW1lbnQ7XG4gICAgICAgIGhvc3Q6IFNWR0dFbGVtZW50O1xuICAgICAgICB1cHBlckhvc3Q6IFNWR0dFbGVtZW50O1xuICAgICAgICBhY3RpdmVIb3N0OiBTVkdHRWxlbWVudDtcbiAgICAgICAgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICAgICAgdmlld3BvcnRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIH1cbj4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnRbXT4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX01PVklOR19QT0lOVF9JTl9CT0FSRCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBvaW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fTU9WSU5HX1BPSU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUG9pbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19WSUVXUE9SVF9PUklHSU5BVElPTiA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBvaW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fSVNfU0VMRUNUSU9OX01PVklORyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbi8vIHNhdmUgbm8gc3RhbmRhcmQgc2VsZWN0ZWQgZWxlbWVudHNcbmV4cG9ydCBjb25zdCBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCB7IGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXTsgdGltZW91dElkOiBhbnkgfT4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX01PVklOR19FTEVNRU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50W10+KCk7XG5cbmV4cG9ydCBjb25zdCBQQVRIX1JFRlM6IFdlYWtNYXA8UGxhaXRCb2FyZCwgU2V0PFBhdGhSZWY+PiA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RPX1JFRjogV2Vha01hcDxQbGFpdEVsZW1lbnQsIFBsYWl0RWxlbWVudFJlZj4gPSBuZXcgV2Vha01hcCgpO1xuIl19
|