@plait/draw 0.71.0 → 0.72.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/arrow-line.component.d.ts +1 -1
- package/constants/default.d.ts +1 -0
- package/constants/geometry.d.ts +5 -5
- package/constants/index.d.ts +1 -0
- package/constants/pointer.d.ts +3 -3
- package/engines/table/table.d.ts +2 -2
- package/engines/uml/combined-fragment.d.ts +2 -2
- package/engines/uml/package.d.ts +2 -2
- package/esm2022/arrow-line.component.mjs +13 -13
- package/esm2022/constants/default.mjs +2 -0
- package/esm2022/constants/geometry.mjs +8 -8
- package/esm2022/constants/index.mjs +2 -1
- package/esm2022/constants/pointer.mjs +4 -4
- package/esm2022/engines/table/table.mjs +3 -3
- package/esm2022/engines/uml/combined-fragment.mjs +5 -5
- package/esm2022/engines/uml/package.mjs +5 -5
- package/esm2022/generators/single-text.generator.mjs +3 -3
- package/esm2022/generators/text.generator.mjs +25 -21
- package/esm2022/geometry.component.mjs +4 -5
- package/esm2022/interfaces/arrow-line.mjs +1 -1
- package/esm2022/interfaces/element.mjs +1 -7
- package/esm2022/interfaces/geometry.mjs +6 -6
- package/esm2022/interfaces/index.mjs +13 -1
- package/esm2022/interfaces/options.mjs +2 -0
- package/esm2022/interfaces/vector-line.mjs +5 -5
- package/esm2022/plugins/with-arrow-line-text.mjs +2 -2
- package/esm2022/plugins/with-draw-fragment.mjs +8 -12
- package/esm2022/plugins/with-draw-hotkey.mjs +3 -3
- package/esm2022/plugins/with-draw-resize.mjs +11 -6
- package/esm2022/plugins/with-draw-rotate.mjs +3 -2
- package/esm2022/plugins/with-draw.mjs +10 -11
- package/esm2022/plugins/with-vector-line-create.mjs +123 -0
- package/esm2022/plugins/with-vector-line-resize.mjs +3 -3
- package/esm2022/table.component.mjs +8 -9
- package/esm2022/transforms/index.mjs +3 -3
- package/esm2022/transforms/multi-text-geometry-text.mjs +3 -3
- package/esm2022/utils/arrow-line/arrow-line-basic.mjs +3 -3
- package/esm2022/utils/clipboard.mjs +6 -17
- package/esm2022/utils/common.mjs +15 -8
- package/esm2022/utils/geometry.mjs +3 -3
- package/esm2022/utils/hit.mjs +21 -19
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/multi-text-geometry.mjs +3 -3
- package/esm2022/utils/selected.mjs +9 -1
- package/esm2022/utils/snap-resizing.mjs +1 -1
- package/esm2022/utils/style/stroke.mjs +6 -6
- package/esm2022/utils/table.mjs +2 -2
- package/esm2022/utils/vector-line.mjs +3 -9
- package/esm2022/vector-line.component.mjs +2 -4
- package/fesm2022/plait-draw.mjs +248 -301
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/generators/single-text.generator.d.ts +2 -2
- package/generators/text.generator.d.ts +11 -11
- package/interfaces/arrow-line.d.ts +1 -1
- package/interfaces/element.d.ts +0 -5
- package/interfaces/geometry.d.ts +11 -10
- package/interfaces/index.d.ts +4 -1
- package/interfaces/options.d.ts +4 -0
- package/interfaces/vector-line.d.ts +4 -4
- package/package.json +1 -1
- package/plugins/with-vector-line-create.d.ts +2 -0
- package/styles/styles.scss +1 -1
- package/table.component.d.ts +2 -2
- package/transforms/common.d.ts +1 -1
- package/transforms/geometry.d.ts +1 -1
- package/transforms/index.d.ts +3 -3
- package/transforms/multi-text-geometry-text.d.ts +2 -2
- package/utils/clipboard.d.ts +10 -3
- package/utils/common.d.ts +5 -3
- package/utils/geometry.d.ts +6 -6
- package/utils/hit.d.ts +8 -4
- package/utils/index.d.ts +1 -0
- package/utils/multi-text-geometry.d.ts +6 -10
- package/utils/selected.d.ts +3 -1
- package/utils/snap-resizing.d.ts +2 -2
- package/utils/vector-line.d.ts +0 -1
- package/esm2022/plugins/with-geometry-resize.mjs +0 -70
- package/esm2022/plugins/with-vector-pen-create.mjs +0 -123
- package/plugins/with-geometry-resize.d.ts +0 -2
- package/plugins/with-vector-pen-create.d.ts +0 -2
|
@@ -182,4 +182,4 @@ function drawIsometricSnapLines(board, activePoints, snapRectangles, resizeSnapO
|
|
|
182
182
|
const isometricLines = [...widthIsometricPoints, ...heightIsometricPoints];
|
|
183
183
|
return drawSolidLines(board, isometricLines);
|
|
184
184
|
}
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1yZXNpemluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3V0aWxzL3NuYXAtcmVzaXppbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFDNUIsc0JBQXNCLEVBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLSCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUd0QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0YsTUFBTSxRQUFRLEdBQUcsZ0NBQWdDLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBb0I3RCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFFekIsTUFBTSxVQUFVLHlCQUF5QixDQUNyQyxLQUFpQixFQUNqQixTQUEyRCxFQUMzRCxXQUF3QixFQUN4QiwrQkFHQyxFQUNELGFBQXNCLEVBQ3RCLFlBQXFCO0lBRXJCLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsK0JBQStCLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQW1CLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTVHLElBQUks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QUN2QyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3RFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNuRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxHQUFHLHFCQUFxQixDQUFDLENBQUM7SUFDM0UsT0FBTyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFJlc2l6ZVJlZixcbiAgICBSZXNpemVTdGF0ZSxcbiAgICBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCxcbiAgICBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50LFxuICAgIHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemVcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGlvbkZhY3RvcnMsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGNyZWF0ZURlYnVnR2VuZXJhdG9yLFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0aW9uQW5nbGUsXG4gICAgZ2V0UmVjdGFuZ2xlQnlBbmdsZSxcbiAgICBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLFxuICAgIFNuYXBEZWx0YSxcbiAgICBTbmFwUmVmLFxuICAgIGdldFNuYXBSZWN0YW5nbGVzLFxuICAgIFNOQVBfVE9MRVJBTkNFLFxuICAgIGRyYXdTb2xpZExpbmVzLFxuICAgIGRyYXdQb2ludFNuYXBMaW5lcyxcbiAgICBnZXRUcmlwbGVBeGlzLFxuICAgIGdldE1pblBvaW50RGVsdGFcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UmVzaXplWm9vbSwgbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtZHJhdy1yZXNpemUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBkZWJ1Z0tleSA9ICdkZWJ1ZzpwbGFpdDpwb2ludC1mb3ItZ2VvbWV0cnknO1xuZXhwb3J0IGNvbnN0IGRlYnVnR2VuZXJhdG9yID0gY3JlYXRlRGVidWdHZW5lcmF0b3IoZGVidWdLZXkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBSZWYgZXh0ZW5kcyBTbmFwUmVmIHtcbiAgICB4Wm9vbTogbnVtYmVyO1xuICAgIHlab29tOiBudW1iZXI7XG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBPcHRpb25zIHtcbiAgICByZXNpemVQb2ludHM6IFBvaW50W107XG4gICAgYWN0aXZlUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZGlyZWN0aW9uRmFjdG9yczogRGlyZWN0aW9uRmFjdG9ycztcbiAgICBpc0Zyb21Db3JuZXI6IGJvb2xlYW47XG4gICAgaXNBc3BlY3RSYXRpbzogYm9vbGVhbjtcbiAgICByZXNpemVPcmlnaW5Qb2ludD86IFBvaW50W107XG4gICAgb3JpZ2luUG9pbnQ/OiBQb2ludDtcbiAgICBoYW5kbGVQb2ludD86IFBvaW50O1xuICAgIGlzQ3JlYXRlPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRVFVQUxfU1BBQ0lORyA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U25hcFJlc2l6aW5nUmVmT3B0aW9ucyhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByZXNpemVSZWY6IFJlc2l6ZVJlZjxQbGFpdERyYXdFbGVtZW50IHwgUGxhaXREcmF3RWxlbWVudFtdPixcbiAgICByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUsXG4gICAgcmVzaXplT3JpZ2luUG9pbnRBbmRIYW5kbGVQb2ludDoge1xuICAgICAgICBvcmlnaW5Qb2ludDogUG9pbnQ7XG4gICAgICAgIGhhbmRsZVBvaW50OiBQb2ludDtcbiAgICB9LFxuICAgIGlzQXNwZWN0UmF0aW86IGJvb2xlYW4sXG4gICAgaXNGcm9tQ29ybmVyOiBib29sZWFuXG4pOiBSZXNpemVTbmFwT3B0aW9ucyB7XG4gICAgY29uc3QgeyBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQgfSA9IHJlc2l6ZU9yaWdpblBvaW50QW5kSGFuZGxlUG9pbnQ7XG4gICAgY29uc3QgcmVzaXplUG9pbnRzOiBbUG9pbnQsIFBvaW50XSA9IFtyZXNpemVTdGF0ZS5zdGFydFBvaW50LCByZXNpemVTdGF0ZS5lbmRQb2ludF07XG4gICAgY29uc3QgeyB4Wm9vbSwgeVpvb20gfSA9IGdldFJlc2l6ZVpvb20ocmVzaXplUG9pbnRzLCBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQsIGlzRnJvbUNvcm5lciwgaXNBc3BlY3RSYXRpbyk7XG5cbiAgICBsZXQgYWN0aXZlRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdO1xuICAgIGxldCByZXNpemVPcmlnaW5Qb2ludDogUG9pbnRbXSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc2l6ZVJlZi5lbGVtZW50KSkge1xuICAgICAgICBhY3RpdmVFbGVtZW50cyA9IHJlc2l6ZVJlZi5lbGVtZW50O1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCByZXNpemVSZWYuZWxlbWVudCwgZmFsc2UpO1xuICAgICAgICByZXNpemVPcmlnaW5Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhY3RpdmVFbGVtZW50cyA9IFtyZXNpemVSZWYuZWxlbWVudF07XG4gICAgICAgIHJlc2l6ZU9yaWdpblBvaW50ID0gcmVzaXplUmVmLmVsZW1lbnQucG9pbnRzO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50cyA9IHJlc2l6ZU9yaWdpblBvaW50Lm1hcChwID0+IHtcbiAgICAgICAgcmV0dXJuIG1vdmVQb2ludEJ5Wm9vbUFuZE9yaWdpblBvaW50KHAsIG9yaWdpblBvaW50LCB4Wm9vbSwgeVpvb20pO1xuICAgIH0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhwb2ludHMpO1xuICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5QW5nbGUocmVjdGFuZ2xlLCBnZXRTZWxlY3Rpb25BbmdsZShhY3RpdmVFbGVtZW50cykpO1xuICAgIGNvbnN0IHJlc2l6ZUhhbmRsZVBvaW50ID0gbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQoaGFuZGxlUG9pbnQsIG9yaWdpblBvaW50LCB4Wm9vbSwgeVpvb20pO1xuICAgIGNvbnN0IFt4LCB5XSA9IGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQob3JpZ2luUG9pbnQsIHJlc2l6ZUhhbmRsZVBvaW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgICByZXNpemVQb2ludHMsXG4gICAgICAgIHJlc2l6ZU9yaWdpblBvaW50LFxuICAgICAgICBhY3RpdmVSZWN0YW5nbGUsXG4gICAgICAgIG9yaWdpblBvaW50LFxuICAgICAgICBoYW5kbGVQb2ludCxcbiAgICAgICAgZGlyZWN0aW9uRmFjdG9yczogW2dldERpcmVjdGlvbkZhY3RvckJ5RGlyZWN0aW9uQ29tcG9uZW50KHgpLCBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCh5KV0sXG4gICAgICAgIGlzQXNwZWN0UmF0aW8sXG4gICAgICAgIGlzRnJvbUNvcm5lclxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTbmFwUmVzaXppbmdSZWYoYm9hcmQ6IFBsYWl0Qm9hcmQsIGFjdGl2ZUVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zKTogUmVzaXplU25hcFJlZiB7XG4gICAgY29uc3Qgc25hcEcgPSBjcmVhdGVHKCk7XG4gICAgY29uc3Qgc25hcFJlY3RhbmdsZXMgPSBnZXRTbmFwUmVjdGFuZ2xlcyhib2FyZCwgYWN0aXZlRWxlbWVudHMpO1xuICAgIGxldCBzbmFwTGluZURlbHRhID0gZ2V0SXNvbWV0cmljTGluZURlbHRhKHNuYXBSZWN0YW5nbGVzLCByZXNpemVTbmFwT3B0aW9ucyk7XG4gICAgaWYgKHNuYXBMaW5lRGVsdGEuZGVsdGFYID09PSAwICYmIHNuYXBMaW5lRGVsdGEuZGVsdGFZID09PSAwKSB7XG4gICAgICAgIHNuYXBMaW5lRGVsdGEgPSBnZXRTbmFwUG9pbnREZWx0YShzbmFwUmVjdGFuZ2xlcywgcmVzaXplU25hcE9wdGlvbnMpO1xuICAgIH1cbiAgICBjb25zdCBhbmdsZSA9IGdldFNlbGVjdGlvbkFuZ2xlKGFjdGl2ZUVsZW1lbnRzKTtcbiAgICBjb25zdCBhY3RpdmVQb2ludEFuZFpvb20gPSBnZXRBY3RpdmVQb2ludEFuZFpvb20oc25hcExpbmVEZWx0YSwgcmVzaXplU25hcE9wdGlvbnMsIGFuZ2xlKTtcbiAgICBjb25zdCBpc29tZXRyaWNMaW5lc0cgPSBkcmF3SXNvbWV0cmljU25hcExpbmVzKGJvYXJkLCBhY3RpdmVQb2ludEFuZFpvb20uYWN0aXZlUG9pbnRzLCBzbmFwUmVjdGFuZ2xlcywgcmVzaXplU25hcE9wdGlvbnMsIGFuZ2xlKTtcbiAgICBjb25zdCBwb2ludExpbmVzRyA9IGRyYXdSZXNpemluZ1BvaW50U25hcExpbmVzKGJvYXJkLCBhY3RpdmVQb2ludEFuZFpvb20uYWN0aXZlUG9pbnRzLCBzbmFwUmVjdGFuZ2xlcywgcmVzaXplU25hcE9wdGlvbnMsIGFuZ2xlKTtcbiAgICBzbmFwRy5hcHBlbmQoaXNvbWV0cmljTGluZXNHLCBwb2ludExpbmVzRyk7XG4gICAgcmV0dXJuIHsgLi4uYWN0aXZlUG9pbnRBbmRab29tLCAuLi5zbmFwTGluZURlbHRhLCBzbmFwRyB9O1xufVxuXG5mdW5jdGlvbiBnZXRTbmFwUG9pbnREZWx0YShzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sIHJlc2l6ZVNuYXBPcHRpb25zOiBSZXNpemVTbmFwT3B0aW9ucykge1xuICAgIGxldCBwb2ludExpbmVEZWx0YTogU25hcERlbHRhID0ge1xuICAgICAgICBkZWx0YVg6IDAsXG4gICAgICAgIGRlbHRhWTogMFxuICAgIH07XG4gICAgY29uc3QgeyBpc0FzcGVjdFJhdGlvLCBhY3RpdmVSZWN0YW5nbGUsIGRpcmVjdGlvbkZhY3RvcnMgfSA9IHJlc2l6ZVNuYXBPcHRpb25zO1xuICAgIGNvbnN0IGRyYXdIb3Jpem9udGFsID0gZGlyZWN0aW9uRmFjdG9yc1swXSAhPT0gMCB8fCBpc0FzcGVjdFJhdGlvO1xuICAgIGNvbnN0IGRyYXdWZXJ0aWNhbCA9IGRpcmVjdGlvbkZhY3RvcnNbMV0gIT09IDAgfHwgaXNBc3BlY3RSYXRpbztcblxuICAgIGlmIChkcmF3SG9yaXpvbnRhbCkge1xuICAgICAgICBjb25zdCB4U25hcEF4aXMgPSBnZXRUcmlwbGVBeGlzKGFjdGl2ZVJlY3RhbmdsZSwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHBvaW50WCA9IGRpcmVjdGlvbkZhY3RvcnNbMF0gPT09IC0xID8geFNuYXBBeGlzWzBdIDogeFNuYXBBeGlzWzJdO1xuICAgICAgICBjb25zdCBkZWx0YVggPSBnZXRNaW5Qb2ludERlbHRhKHNuYXBSZWN0YW5nbGVzLCBwb2ludFgsIHRydWUpO1xuICAgICAgICBpZiAoTWF0aC5hYnMoZGVsdGFYKSA8IFNOQVBfVE9MRVJBTkNFKSB7XG4gICAgICAgICAgICBwb2ludExpbmVEZWx0YS5kZWx0YVggPSBkZWx0YVg7XG4gICAgICAgICAgICBpZiAocG9pbnRMaW5lRGVsdGEuZGVsdGFYICE9PSAwICYmIGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgICAgICBwb2ludExpbmVEZWx0YS5kZWx0YVkgPSBwb2ludExpbmVEZWx0YS5kZWx0YVggLyAoYWN0aXZlUmVjdGFuZ2xlLndpZHRoIC8gYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50TGluZURlbHRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRyYXdWZXJ0aWNhbCkge1xuICAgICAgICBjb25zdCB5U25hcEF4aXMgPSBnZXRUcmlwbGVBeGlzKGFjdGl2ZVJlY3RhbmdsZSwgZmFsc2UpO1xuICAgICAgICBjb25zdCBwb2ludFkgPSBkaXJlY3Rpb25GYWN0b3JzWzFdID09PSAtMSA/IHlTbmFwQXhpc1swXSA6IHlTbmFwQXhpc1syXTtcbiAgICAgICAgY29uc3QgZGVsdGFZID0gZ2V0TWluUG9pbnREZWx0YShzbmFwUmVjdGFuZ2xlcywgcG9pbnRZLCBmYWxzZSk7XG4gICAgICAgIGlmIChNYXRoLmFicyhkZWx0YVkpIDwgU05BUF9UT0xFUkFOQ0UpIHtcbiAgICAgICAgICAgIHBvaW50TGluZURlbHRhLmRlbHRhWSA9IGRlbHRhWTtcbiAgICAgICAgICAgIGlmIChwb2ludExpbmVEZWx0YS5kZWx0YVkgIT09IDAgJiYgaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgICAgIHBvaW50TGluZURlbHRhLmRlbHRhWCA9IHBvaW50TGluZURlbHRhLmRlbHRhWSAqIChhY3RpdmVSZWN0YW5nbGUud2lkdGggLyBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9pbnRMaW5lRGVsdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcG9pbnRMaW5lRGVsdGE7XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZVBvaW50QW5kWm9vbShyZXNpemVTbmFwRGVsdGE6IFNuYXBEZWx0YSwgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zLCBhbmdsZTogbnVtYmVyKSB7XG4gICAgY29uc3QgeyBkZWx0YVgsIGRlbHRhWSB9ID0gcmVzaXplU25hcERlbHRhO1xuICAgIGNvbnN0IHsgcmVzaXplUG9pbnRzLCBpc0NyZWF0ZSB9ID0gcmVzaXplU25hcE9wdGlvbnM7XG4gICAgY29uc3QgbmV3UmVzaXplUG9pbnRzOiBbUG9pbnQsIFBvaW50XSA9IFtyZXNpemVQb2ludHNbMF0sIFtyZXNpemVQb2ludHNbMV1bMF0gKyBkZWx0YVgsIHJlc2l6ZVBvaW50c1sxXVsxXSArIGRlbHRhWV1dO1xuICAgIGxldCBhY3RpdmVQb2ludHMgPSBuZXdSZXNpemVQb2ludHM7XG4gICAgbGV0IHhab29tID0gMDtcbiAgICBsZXQgeVpvb20gPSAwO1xuICAgIGlmICghaXNDcmVhdGUpIHtcbiAgICAgICAgY29uc3QgeyBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQsIGlzRnJvbUNvcm5lciwgaXNBc3BlY3RSYXRpbywgcmVzaXplT3JpZ2luUG9pbnQgfSA9IHJlc2l6ZVNuYXBPcHRpb25zO1xuICAgICAgICBjb25zdCByZXNpemVab29tID0gZ2V0UmVzaXplWm9vbShuZXdSZXNpemVQb2ludHMsIG9yaWdpblBvaW50ISwgaGFuZGxlUG9pbnQhLCBpc0Zyb21Db3JuZXIsIGlzQXNwZWN0UmF0aW8pO1xuICAgICAgICB4Wm9vbSA9IHJlc2l6ZVpvb20ueFpvb207XG4gICAgICAgIHlab29tID0gcmVzaXplWm9vbS55Wm9vbTtcbiAgICAgICAgYWN0aXZlUG9pbnRzID0gcmVzaXplT3JpZ2luUG9pbnQhLm1hcChwID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChwLCBvcmlnaW5Qb2ludCEsIHhab29tLCB5Wm9vbSk7XG4gICAgICAgIH0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgICAgICBpZiAoYW5nbGUpIHtcbiAgICAgICAgICAgIGFjdGl2ZVBvaW50cyA9IHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemUoXG4gICAgICAgICAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHJlc2l6ZU9yaWdpblBvaW50ISksXG4gICAgICAgICAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGFjdGl2ZVBvaW50cyksXG4gICAgICAgICAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhyZXNpemVPcmlnaW5Qb2ludCEpKSxcbiAgICAgICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGFjdGl2ZVBvaW50cykpLFxuICAgICAgICAgICAgICAgIGFuZ2xlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgeFpvb20sXG4gICAgICAgIHlab29tLFxuICAgICAgICBhY3RpdmVQb2ludHNcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBnZXRJc29tZXRyaWNMaW5lRGVsdGEoc25hcFJlY3RhbmdsZXM6IFJlY3RhbmdsZUNsaWVudFtdLCByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMpIHtcbiAgICBsZXQgaXNvbWV0cmljTGluZURlbHRhOiBTbmFwRGVsdGEgPSB7XG4gICAgICAgIGRlbHRhWDogMCxcbiAgICAgICAgZGVsdGFZOiAwXG4gICAgfTtcbiAgICBjb25zdCB7IGlzQXNwZWN0UmF0aW8sIGFjdGl2ZVJlY3RhbmdsZSB9ID0gcmVzaXplU25hcE9wdGlvbnM7XG4gICAgY29uc3Qgd2lkdGhTbmFwUmVjdGFuZ2xlID0gc25hcFJlY3RhbmdsZXMuZmluZChpdGVtID0+IE1hdGguYWJzKGl0ZW0ud2lkdGggLSBhY3RpdmVSZWN0YW5nbGUud2lkdGgpIDwgU05BUF9UT0xFUkFOQ0UpO1xuICAgIGlmICh3aWR0aFNuYXBSZWN0YW5nbGUpIHtcbiAgICAgICAgY29uc3QgZGVsdGFXaWR0aCA9IHdpZHRoU25hcFJlY3RhbmdsZS53aWR0aCAtIGFjdGl2ZVJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgaXNvbWV0cmljTGluZURlbHRhLmRlbHRhWCA9IGRlbHRhV2lkdGggKiByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzBdO1xuICAgICAgICBpZiAoaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgY29uc3QgZGVsdGFIZWlnaHQgPSBkZWx0YVdpZHRoIC8gKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCAvIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICAgICAgaXNvbWV0cmljTGluZURlbHRhLmRlbHRhWSA9IGRlbHRhSGVpZ2h0ICogcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1sxXTtcbiAgICAgICAgICAgIHJldHVybiBpc29tZXRyaWNMaW5lRGVsdGE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaGVpZ2h0U25hcFJlY3RhbmdsZSA9IHNuYXBSZWN0YW5nbGVzLmZpbmQoaXRlbSA9PiBNYXRoLmFicyhpdGVtLmhlaWdodCAtIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpIDwgU05BUF9UT0xFUkFOQ0UpO1xuICAgIGlmIChoZWlnaHRTbmFwUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGRlbHRhSGVpZ2h0ID0gaGVpZ2h0U25hcFJlY3RhbmdsZS5oZWlnaHQgLSBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0O1xuICAgICAgICBpc29tZXRyaWNMaW5lRGVsdGEuZGVsdGFZID0gZGVsdGFIZWlnaHQgKiByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzFdO1xuICAgICAgICBpZiAoaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgY29uc3QgZGVsdGFXaWR0aCA9IGRlbHRhSGVpZ2h0ICogKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCAvIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICAgICAgaXNvbWV0cmljTGluZURlbHRhLmRlbHRhWCA9IGRlbHRhV2lkdGggKiByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzBdO1xuICAgICAgICAgICAgcmV0dXJuIGlzb21ldHJpY0xpbmVEZWx0YTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNvbWV0cmljTGluZURlbHRhO1xufVxuXG5mdW5jdGlvbiBnZXRJc29tZXRyaWNMaW5lUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBpc0hvcml6b250YWw6IGJvb2xlYW4pOiBQb2ludFtdIHtcbiAgICByZXR1cm4gaXNIb3Jpem9udGFsXG4gICAgICAgID8gW1xuICAgICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55IC0gRVFVQUxfU1BBQ0lOR10sXG4gICAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgLSBFUVVBTF9TUEFDSU5HXVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICAgIFtyZWN0YW5nbGUueCAtIEVRVUFMX1NQQUNJTkcsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgICAgW3JlY3RhbmdsZS54IC0gRVFVQUxfU1BBQ0lORywgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XVxuICAgICAgICAgIF07XG59XG5cbmZ1bmN0aW9uIGRyYXdSZXNpemluZ1BvaW50U25hcExpbmVzKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGFjdGl2ZVBvaW50czogUG9pbnRbXSxcbiAgICBzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sXG4gICAgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zLFxuICAgIGFuZ2xlOiBudW1iZXJcbikge1xuICAgIGRlYnVnR2VuZXJhdG9yLmlzRGVidWcoKSAmJiBkZWJ1Z0dlbmVyYXRvci5jbGVhcigpO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhY3RpdmVQb2ludHMpO1xuICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5QW5nbGUocmVjdGFuZ2xlLCBhbmdsZSk7XG4gICAgY29uc3QgeyBpc0FzcGVjdFJhdGlvLCBkaXJlY3Rpb25GYWN0b3JzIH0gPSByZXNpemVTbmFwT3B0aW9ucztcbiAgICBjb25zdCBkcmF3SG9yaXpvbnRhbCA9IGRpcmVjdGlvbkZhY3RvcnNbMF0gIT09IDAgfHwgaXNBc3BlY3RSYXRpbztcbiAgICBjb25zdCBkcmF3VmVydGljYWwgPSBkaXJlY3Rpb25GYWN0b3JzWzFdICE9PSAwIHx8IGlzQXNwZWN0UmF0aW87XG4gICAgcmV0dXJuIGRyYXdQb2ludFNuYXBMaW5lcyhib2FyZCwgYWN0aXZlUmVjdGFuZ2xlLCBzbmFwUmVjdGFuZ2xlcywgZHJhd0hvcml6b250YWwsIGRyYXdWZXJ0aWNhbCk7XG59XG5cbmZ1bmN0aW9uIGRyYXdJc29tZXRyaWNTbmFwTGluZXMoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdLFxuICAgIHNuYXBSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSxcbiAgICByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMsXG4gICAgYW5nbGU6IG51bWJlclxuKSB7XG4gICAgbGV0IHdpZHRoSXNvbWV0cmljUG9pbnRzID0gW107XG4gICAgbGV0IGhlaWdodElzb21ldHJpY1BvaW50cyA9IFtdO1xuXG4gICAgY29uc3QgZHJhd0hvcml6b250YWxMaW5lID0gcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1swXSAhPT0gMCB8fCByZXNpemVTbmFwT3B0aW9ucy5pc0FzcGVjdFJhdGlvO1xuICAgIGNvbnN0IGRyYXdWZXJ0aWNhbExpbmUgPSByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzFdICE9PSAwIHx8IHJlc2l6ZVNuYXBPcHRpb25zLmlzQXNwZWN0UmF0aW87XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGFjdGl2ZVBvaW50cyk7XG4gICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlBbmdsZShyZWN0YW5nbGUsIGFuZ2xlKTtcbiAgICBmb3IgKGxldCBzbmFwUmVjdGFuZ2xlIG9mIHNuYXBSZWN0YW5nbGVzKSB7XG4gICAgICAgIGlmIChhY3RpdmVSZWN0YW5nbGUud2lkdGggPT09IHNuYXBSZWN0YW5nbGUud2lkdGggJiYgZHJhd0hvcml6b250YWxMaW5lKSB7XG4gICAgICAgICAgICB3aWR0aElzb21ldHJpY1BvaW50cy5wdXNoKGdldElzb21ldHJpY0xpbmVQb2ludHMoc25hcFJlY3RhbmdsZSwgdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0ID09PSBzbmFwUmVjdGFuZ2xlLmhlaWdodCAmJiBkcmF3VmVydGljYWxMaW5lKSB7XG4gICAgICAgICAgICBoZWlnaHRJc29tZXRyaWNQb2ludHMucHVzaChnZXRJc29tZXRyaWNMaW5lUG9pbnRzKHNuYXBSZWN0YW5nbGUsIGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdpZHRoSXNvbWV0cmljUG9pbnRzLmxlbmd0aCAmJiBkcmF3SG9yaXpvbnRhbExpbmUpIHtcbiAgICAgICAgd2lkdGhJc29tZXRyaWNQb2ludHMucHVzaChnZXRJc29tZXRyaWNMaW5lUG9pbnRzKGFjdGl2ZVJlY3RhbmdsZSwgdHJ1ZSkpO1xuICAgIH1cbiAgICBpZiAoaGVpZ2h0SXNvbWV0cmljUG9pbnRzLmxlbmd0aCAmJiBkcmF3VmVydGljYWxMaW5lKSB7XG4gICAgICAgIGhlaWdodElzb21ldHJpY1BvaW50cy5wdXNoKGdldElzb21ldHJpY0xpbmVQb2ludHMoYWN0aXZlUmVjdGFuZ2xlLCBmYWxzZSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzb21ldHJpY0xpbmVzID0gWy4uLndpZHRoSXNvbWV0cmljUG9pbnRzLCAuLi5oZWlnaHRJc29tZXRyaWNQb2ludHNdO1xuICAgIHJldHVybiBkcmF3U29saWRMaW5lcyhib2FyZCwgaXNvbWV0cmljTGluZXMpO1xufVxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1yZXNpemluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3V0aWxzL3NuYXAtcmVzaXppbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFDNUIsc0JBQXNCLEVBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLSCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUd0QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0YsTUFBTSxRQUFRLEdBQUcsZ0NBQWdDLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBb0I3RCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFFekIsTUFBTSxVQUFVLHlCQUF5QixDQUNyQyxLQUFpQixFQUNqQixTQUF5RyxFQUN6RyxXQUF3QixFQUN4QiwrQkFHQyxFQUNELGFBQXNCLEVBQ3RCLFlBQXFCO0lBRXJCLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsK0JBQStCLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQW1CLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTVHLElBQUks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QUN2QyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3RFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNuRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxHQUFHLHFCQUFxQixDQUFDLENBQUM7SUFDM0UsT0FBTyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFJlc2l6ZVJlZixcbiAgICBSZXNpemVTdGF0ZSxcbiAgICBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCxcbiAgICBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50LFxuICAgIHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemVcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGlvbkZhY3RvcnMsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGNyZWF0ZURlYnVnR2VuZXJhdG9yLFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0aW9uQW5nbGUsXG4gICAgZ2V0UmVjdGFuZ2xlQnlBbmdsZSxcbiAgICBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLFxuICAgIFNuYXBEZWx0YSxcbiAgICBTbmFwUmVmLFxuICAgIGdldFNuYXBSZWN0YW5nbGVzLFxuICAgIFNOQVBfVE9MRVJBTkNFLFxuICAgIGRyYXdTb2xpZExpbmVzLFxuICAgIGRyYXdQb2ludFNuYXBMaW5lcyxcbiAgICBnZXRUcmlwbGVBeGlzLFxuICAgIGdldE1pblBvaW50RGVsdGFcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UmVzaXplWm9vbSwgbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtZHJhdy1yZXNpemUnO1xuaW1wb3J0IHsgUGxhaXRDdXN0b21HZW9tZXRyeSwgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBkZWJ1Z0tleSA9ICdkZWJ1ZzpwbGFpdDpwb2ludC1mb3ItZ2VvbWV0cnknO1xuZXhwb3J0IGNvbnN0IGRlYnVnR2VuZXJhdG9yID0gY3JlYXRlRGVidWdHZW5lcmF0b3IoZGVidWdLZXkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBSZWYgZXh0ZW5kcyBTbmFwUmVmIHtcbiAgICB4Wm9vbTogbnVtYmVyO1xuICAgIHlab29tOiBudW1iZXI7XG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBPcHRpb25zIHtcbiAgICByZXNpemVQb2ludHM6IFBvaW50W107XG4gICAgYWN0aXZlUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZGlyZWN0aW9uRmFjdG9yczogRGlyZWN0aW9uRmFjdG9ycztcbiAgICBpc0Zyb21Db3JuZXI6IGJvb2xlYW47XG4gICAgaXNBc3BlY3RSYXRpbzogYm9vbGVhbjtcbiAgICByZXNpemVPcmlnaW5Qb2ludD86IFBvaW50W107XG4gICAgb3JpZ2luUG9pbnQ/OiBQb2ludDtcbiAgICBoYW5kbGVQb2ludD86IFBvaW50O1xuICAgIGlzQ3JlYXRlPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRVFVQUxfU1BBQ0lORyA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U25hcFJlc2l6aW5nUmVmT3B0aW9ucyhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByZXNpemVSZWY6IFJlc2l6ZVJlZjxQbGFpdERyYXdFbGVtZW50IHwgUGxhaXRDdXN0b21HZW9tZXRyeSB8IChQbGFpdERyYXdFbGVtZW50IHwgUGxhaXRDdXN0b21HZW9tZXRyeSlbXT4sXG4gICAgcmVzaXplU3RhdGU6IFJlc2l6ZVN0YXRlLFxuICAgIHJlc2l6ZU9yaWdpblBvaW50QW5kSGFuZGxlUG9pbnQ6IHtcbiAgICAgICAgb3JpZ2luUG9pbnQ6IFBvaW50O1xuICAgICAgICBoYW5kbGVQb2ludDogUG9pbnQ7XG4gICAgfSxcbiAgICBpc0FzcGVjdFJhdGlvOiBib29sZWFuLFxuICAgIGlzRnJvbUNvcm5lcjogYm9vbGVhblxuKTogUmVzaXplU25hcE9wdGlvbnMge1xuICAgIGNvbnN0IHsgb3JpZ2luUG9pbnQsIGhhbmRsZVBvaW50IH0gPSByZXNpemVPcmlnaW5Qb2ludEFuZEhhbmRsZVBvaW50O1xuICAgIGNvbnN0IHJlc2l6ZVBvaW50czogW1BvaW50LCBQb2ludF0gPSBbcmVzaXplU3RhdGUuc3RhcnRQb2ludCwgcmVzaXplU3RhdGUuZW5kUG9pbnRdO1xuICAgIGNvbnN0IHsgeFpvb20sIHlab29tIH0gPSBnZXRSZXNpemVab29tKHJlc2l6ZVBvaW50cywgb3JpZ2luUG9pbnQsIGhhbmRsZVBvaW50LCBpc0Zyb21Db3JuZXIsIGlzQXNwZWN0UmF0aW8pO1xuXG4gICAgbGV0IGFjdGl2ZUVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXTtcbiAgICBsZXQgcmVzaXplT3JpZ2luUG9pbnQ6IFBvaW50W10gPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNpemVSZWYuZWxlbWVudCkpIHtcbiAgICAgICAgYWN0aXZlRWxlbWVudHMgPSByZXNpemVSZWYuZWxlbWVudDtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgcmVzaXplUmVmLmVsZW1lbnQsIGZhbHNlKTtcbiAgICAgICAgcmVzaXplT3JpZ2luUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aXZlRWxlbWVudHMgPSBbcmVzaXplUmVmLmVsZW1lbnRdO1xuICAgICAgICByZXNpemVPcmlnaW5Qb2ludCA9IHJlc2l6ZVJlZi5lbGVtZW50LnBvaW50cztcbiAgICB9XG5cbiAgICBjb25zdCBwb2ludHMgPSByZXNpemVPcmlnaW5Qb2ludC5tYXAocCA9PiB7XG4gICAgICAgIHJldHVybiBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChwLCBvcmlnaW5Qb2ludCwgeFpvb20sIHlab29tKTtcbiAgICB9KSBhcyBbUG9pbnQsIFBvaW50XTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocG9pbnRzKTtcbiAgICBjb25zdCBhY3RpdmVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUFuZ2xlKHJlY3RhbmdsZSwgZ2V0U2VsZWN0aW9uQW5nbGUoYWN0aXZlRWxlbWVudHMpKTtcbiAgICBjb25zdCByZXNpemVIYW5kbGVQb2ludCA9IG1vdmVQb2ludEJ5Wm9vbUFuZE9yaWdpblBvaW50KGhhbmRsZVBvaW50LCBvcmlnaW5Qb2ludCwgeFpvb20sIHlab29tKTtcbiAgICBjb25zdCBbeCwgeV0gPSBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KG9yaWdpblBvaW50LCByZXNpemVIYW5kbGVQb2ludCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzaXplUG9pbnRzLFxuICAgICAgICByZXNpemVPcmlnaW5Qb2ludCxcbiAgICAgICAgYWN0aXZlUmVjdGFuZ2xlLFxuICAgICAgICBvcmlnaW5Qb2ludCxcbiAgICAgICAgaGFuZGxlUG9pbnQsXG4gICAgICAgIGRpcmVjdGlvbkZhY3RvcnM6IFtnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCh4KSwgZ2V0RGlyZWN0aW9uRmFjdG9yQnlEaXJlY3Rpb25Db21wb25lbnQoeSldLFxuICAgICAgICBpc0FzcGVjdFJhdGlvLFxuICAgICAgICBpc0Zyb21Db3JuZXJcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U25hcFJlc2l6aW5nUmVmKGJvYXJkOiBQbGFpdEJvYXJkLCBhY3RpdmVFbGVtZW50czogUGxhaXRFbGVtZW50W10sIHJlc2l6ZVNuYXBPcHRpb25zOiBSZXNpemVTbmFwT3B0aW9ucyk6IFJlc2l6ZVNuYXBSZWYge1xuICAgIGNvbnN0IHNuYXBHID0gY3JlYXRlRygpO1xuICAgIGNvbnN0IHNuYXBSZWN0YW5nbGVzID0gZ2V0U25hcFJlY3RhbmdsZXMoYm9hcmQsIGFjdGl2ZUVsZW1lbnRzKTtcbiAgICBsZXQgc25hcExpbmVEZWx0YSA9IGdldElzb21ldHJpY0xpbmVEZWx0YShzbmFwUmVjdGFuZ2xlcywgcmVzaXplU25hcE9wdGlvbnMpO1xuICAgIGlmIChzbmFwTGluZURlbHRhLmRlbHRhWCA9PT0gMCAmJiBzbmFwTGluZURlbHRhLmRlbHRhWSA9PT0gMCkge1xuICAgICAgICBzbmFwTGluZURlbHRhID0gZ2V0U25hcFBvaW50RGVsdGEoc25hcFJlY3RhbmdsZXMsIHJlc2l6ZVNuYXBPcHRpb25zKTtcbiAgICB9XG4gICAgY29uc3QgYW5nbGUgPSBnZXRTZWxlY3Rpb25BbmdsZShhY3RpdmVFbGVtZW50cyk7XG4gICAgY29uc3QgYWN0aXZlUG9pbnRBbmRab29tID0gZ2V0QWN0aXZlUG9pbnRBbmRab29tKHNuYXBMaW5lRGVsdGEsIHJlc2l6ZVNuYXBPcHRpb25zLCBhbmdsZSk7XG4gICAgY29uc3QgaXNvbWV0cmljTGluZXNHID0gZHJhd0lzb21ldHJpY1NuYXBMaW5lcyhib2FyZCwgYWN0aXZlUG9pbnRBbmRab29tLmFjdGl2ZVBvaW50cywgc25hcFJlY3RhbmdsZXMsIHJlc2l6ZVNuYXBPcHRpb25zLCBhbmdsZSk7XG4gICAgY29uc3QgcG9pbnRMaW5lc0cgPSBkcmF3UmVzaXppbmdQb2ludFNuYXBMaW5lcyhib2FyZCwgYWN0aXZlUG9pbnRBbmRab29tLmFjdGl2ZVBvaW50cywgc25hcFJlY3RhbmdsZXMsIHJlc2l6ZVNuYXBPcHRpb25zLCBhbmdsZSk7XG4gICAgc25hcEcuYXBwZW5kKGlzb21ldHJpY0xpbmVzRywgcG9pbnRMaW5lc0cpO1xuICAgIHJldHVybiB7IC4uLmFjdGl2ZVBvaW50QW5kWm9vbSwgLi4uc25hcExpbmVEZWx0YSwgc25hcEcgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U25hcFBvaW50RGVsdGEoc25hcFJlY3RhbmdsZXM6IFJlY3RhbmdsZUNsaWVudFtdLCByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMpIHtcbiAgICBsZXQgcG9pbnRMaW5lRGVsdGE6IFNuYXBEZWx0YSA9IHtcbiAgICAgICAgZGVsdGFYOiAwLFxuICAgICAgICBkZWx0YVk6IDBcbiAgICB9O1xuICAgIGNvbnN0IHsgaXNBc3BlY3RSYXRpbywgYWN0aXZlUmVjdGFuZ2xlLCBkaXJlY3Rpb25GYWN0b3JzIH0gPSByZXNpemVTbmFwT3B0aW9ucztcbiAgICBjb25zdCBkcmF3SG9yaXpvbnRhbCA9IGRpcmVjdGlvbkZhY3RvcnNbMF0gIT09IDAgfHwgaXNBc3BlY3RSYXRpbztcbiAgICBjb25zdCBkcmF3VmVydGljYWwgPSBkaXJlY3Rpb25GYWN0b3JzWzFdICE9PSAwIHx8IGlzQXNwZWN0UmF0aW87XG5cbiAgICBpZiAoZHJhd0hvcml6b250YWwpIHtcbiAgICAgICAgY29uc3QgeFNuYXBBeGlzID0gZ2V0VHJpcGxlQXhpcyhhY3RpdmVSZWN0YW5nbGUsIHRydWUpO1xuICAgICAgICBjb25zdCBwb2ludFggPSBkaXJlY3Rpb25GYWN0b3JzWzBdID09PSAtMSA/IHhTbmFwQXhpc1swXSA6IHhTbmFwQXhpc1syXTtcbiAgICAgICAgY29uc3QgZGVsdGFYID0gZ2V0TWluUG9pbnREZWx0YShzbmFwUmVjdGFuZ2xlcywgcG9pbnRYLCB0cnVlKTtcbiAgICAgICAgaWYgKE1hdGguYWJzKGRlbHRhWCkgPCBTTkFQX1RPTEVSQU5DRSkge1xuICAgICAgICAgICAgcG9pbnRMaW5lRGVsdGEuZGVsdGFYID0gZGVsdGFYO1xuICAgICAgICAgICAgaWYgKHBvaW50TGluZURlbHRhLmRlbHRhWCAhPT0gMCAmJiBpc0FzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgcG9pbnRMaW5lRGVsdGEuZGVsdGFZID0gcG9pbnRMaW5lRGVsdGEuZGVsdGFYIC8gKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCAvIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb2ludExpbmVEZWx0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkcmF3VmVydGljYWwpIHtcbiAgICAgICAgY29uc3QgeVNuYXBBeGlzID0gZ2V0VHJpcGxlQXhpcyhhY3RpdmVSZWN0YW5nbGUsIGZhbHNlKTtcbiAgICAgICAgY29uc3QgcG9pbnRZID0gZGlyZWN0aW9uRmFjdG9yc1sxXSA9PT0gLTEgPyB5U25hcEF4aXNbMF0gOiB5U25hcEF4aXNbMl07XG4gICAgICAgIGNvbnN0IGRlbHRhWSA9IGdldE1pblBvaW50RGVsdGEoc25hcFJlY3RhbmdsZXMsIHBvaW50WSwgZmFsc2UpO1xuICAgICAgICBpZiAoTWF0aC5hYnMoZGVsdGFZKSA8IFNOQVBfVE9MRVJBTkNFKSB7XG4gICAgICAgICAgICBwb2ludExpbmVEZWx0YS5kZWx0YVkgPSBkZWx0YVk7XG4gICAgICAgICAgICBpZiAocG9pbnRMaW5lRGVsdGEuZGVsdGFZICE9PSAwICYmIGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgICAgICBwb2ludExpbmVEZWx0YS5kZWx0YVggPSBwb2ludExpbmVEZWx0YS5kZWx0YVkgKiAoYWN0aXZlUmVjdGFuZ2xlLndpZHRoIC8gYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50TGluZURlbHRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvaW50TGluZURlbHRhO1xufVxuXG5mdW5jdGlvbiBnZXRBY3RpdmVQb2ludEFuZFpvb20ocmVzaXplU25hcERlbHRhOiBTbmFwRGVsdGEsIHJlc2l6ZVNuYXBPcHRpb25zOiBSZXNpemVTbmFwT3B0aW9ucywgYW5nbGU6IG51bWJlcikge1xuICAgIGNvbnN0IHsgZGVsdGFYLCBkZWx0YVkgfSA9IHJlc2l6ZVNuYXBEZWx0YTtcbiAgICBjb25zdCB7IHJlc2l6ZVBvaW50cywgaXNDcmVhdGUgfSA9IHJlc2l6ZVNuYXBPcHRpb25zO1xuICAgIGNvbnN0IG5ld1Jlc2l6ZVBvaW50czogW1BvaW50LCBQb2ludF0gPSBbcmVzaXplUG9pbnRzWzBdLCBbcmVzaXplUG9pbnRzWzFdWzBdICsgZGVsdGFYLCByZXNpemVQb2ludHNbMV1bMV0gKyBkZWx0YVldXTtcbiAgICBsZXQgYWN0aXZlUG9pbnRzID0gbmV3UmVzaXplUG9pbnRzO1xuICAgIGxldCB4Wm9vbSA9IDA7XG4gICAgbGV0IHlab29tID0gMDtcbiAgICBpZiAoIWlzQ3JlYXRlKSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luUG9pbnQsIGhhbmRsZVBvaW50LCBpc0Zyb21Db3JuZXIsIGlzQXNwZWN0UmF0aW8sIHJlc2l6ZU9yaWdpblBvaW50IH0gPSByZXNpemVTbmFwT3B0aW9ucztcbiAgICAgICAgY29uc3QgcmVzaXplWm9vbSA9IGdldFJlc2l6ZVpvb20obmV3UmVzaXplUG9pbnRzLCBvcmlnaW5Qb2ludCEsIGhhbmRsZVBvaW50ISwgaXNGcm9tQ29ybmVyLCBpc0FzcGVjdFJhdGlvKTtcbiAgICAgICAgeFpvb20gPSByZXNpemVab29tLnhab29tO1xuICAgICAgICB5Wm9vbSA9IHJlc2l6ZVpvb20ueVpvb207XG4gICAgICAgIGFjdGl2ZVBvaW50cyA9IHJlc2l6ZU9yaWdpblBvaW50IS5tYXAocCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQocCwgb3JpZ2luUG9pbnQhLCB4Wm9vbSwgeVpvb20pO1xuICAgICAgICB9KSBhcyBbUG9pbnQsIFBvaW50XTtcbiAgICAgICAgaWYgKGFuZ2xlKSB7XG4gICAgICAgICAgICBhY3RpdmVQb2ludHMgPSByZXNldFBvaW50c0FmdGVyUmVzaXplKFxuICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhyZXNpemVPcmlnaW5Qb2ludCEpLFxuICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhY3RpdmVQb2ludHMpLFxuICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocmVzaXplT3JpZ2luUG9pbnQhKSksXG4gICAgICAgICAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhY3RpdmVQb2ludHMpKSxcbiAgICAgICAgICAgICAgICBhbmdsZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIHhab29tLFxuICAgICAgICB5Wm9vbSxcbiAgICAgICAgYWN0aXZlUG9pbnRzXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0SXNvbWV0cmljTGluZURlbHRhKHNuYXBSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSwgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zKSB7XG4gICAgbGV0IGlzb21ldHJpY0xpbmVEZWx0YTogU25hcERlbHRhID0ge1xuICAgICAgICBkZWx0YVg6IDAsXG4gICAgICAgIGRlbHRhWTogMFxuICAgIH07XG4gICAgY29uc3QgeyBpc0FzcGVjdFJhdGlvLCBhY3RpdmVSZWN0YW5nbGUgfSA9IHJlc2l6ZVNuYXBPcHRpb25zO1xuICAgIGNvbnN0IHdpZHRoU25hcFJlY3RhbmdsZSA9IHNuYXBSZWN0YW5nbGVzLmZpbmQoaXRlbSA9PiBNYXRoLmFicyhpdGVtLndpZHRoIC0gYWN0aXZlUmVjdGFuZ2xlLndpZHRoKSA8IFNOQVBfVE9MRVJBTkNFKTtcbiAgICBpZiAod2lkdGhTbmFwUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGRlbHRhV2lkdGggPSB3aWR0aFNuYXBSZWN0YW5nbGUud2lkdGggLSBhY3RpdmVSZWN0YW5nbGUud2lkdGg7XG4gICAgICAgIGlzb21ldHJpY0xpbmVEZWx0YS5kZWx0YVggPSBkZWx0YVdpZHRoICogcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1swXTtcbiAgICAgICAgaWYgKGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhSGVpZ2h0ID0gZGVsdGFXaWR0aCAvIChhY3RpdmVSZWN0YW5nbGUud2lkdGggLyBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgICAgIGlzb21ldHJpY0xpbmVEZWx0YS5kZWx0YVkgPSBkZWx0YUhlaWdodCAqIHJlc2l6ZVNuYXBPcHRpb25zLmRpcmVjdGlvbkZhY3RvcnNbMV07XG4gICAgICAgICAgICByZXR1cm4gaXNvbWV0cmljTGluZURlbHRhO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGhlaWdodFNuYXBSZWN0YW5nbGUgPSBzbmFwUmVjdGFuZ2xlcy5maW5kKGl0ZW0gPT4gTWF0aC5hYnMoaXRlbS5oZWlnaHQgLSBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0KSA8IFNOQVBfVE9MRVJBTkNFKTtcbiAgICBpZiAoaGVpZ2h0U25hcFJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBkZWx0YUhlaWdodCA9IGhlaWdodFNuYXBSZWN0YW5nbGUuaGVpZ2h0IC0gYWN0aXZlUmVjdGFuZ2xlLmhlaWdodDtcbiAgICAgICAgaXNvbWV0cmljTGluZURlbHRhLmRlbHRhWSA9IGRlbHRhSGVpZ2h0ICogcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1sxXTtcbiAgICAgICAgaWYgKGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhV2lkdGggPSBkZWx0YUhlaWdodCAqIChhY3RpdmVSZWN0YW5nbGUud2lkdGggLyBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgICAgIGlzb21ldHJpY0xpbmVEZWx0YS5kZWx0YVggPSBkZWx0YVdpZHRoICogcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1swXTtcbiAgICAgICAgICAgIHJldHVybiBpc29tZXRyaWNMaW5lRGVsdGE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzb21ldHJpY0xpbmVEZWx0YTtcbn1cblxuZnVuY3Rpb24gZ2V0SXNvbWV0cmljTGluZVBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaXNIb3Jpem9udGFsOiBib29sZWFuKTogUG9pbnRbXSB7XG4gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFxuICAgICAgICA/IFtcbiAgICAgICAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSAtIEVRVUFMX1NQQUNJTkddLFxuICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55IC0gRVFVQUxfU1BBQ0lOR11cbiAgICAgICAgICBdXG4gICAgICAgIDogW1xuICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggLSBFUVVBTF9TUEFDSU5HLCByZWN0YW5nbGUueV0sXG4gICAgICAgICAgICAgIFtyZWN0YW5nbGUueCAtIEVRVUFMX1NQQUNJTkcsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF1cbiAgICAgICAgICBdO1xufVxuXG5mdW5jdGlvbiBkcmF3UmVzaXppbmdQb2ludFNuYXBMaW5lcyhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBhY3RpdmVQb2ludHM6IFBvaW50W10sXG4gICAgc25hcFJlY3RhbmdsZXM6IFJlY3RhbmdsZUNsaWVudFtdLFxuICAgIHJlc2l6ZVNuYXBPcHRpb25zOiBSZXNpemVTbmFwT3B0aW9ucyxcbiAgICBhbmdsZTogbnVtYmVyXG4pIHtcbiAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuY2xlYXIoKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoYWN0aXZlUG9pbnRzKTtcbiAgICBjb25zdCBhY3RpdmVSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUFuZ2xlKHJlY3RhbmdsZSwgYW5nbGUpO1xuICAgIGNvbnN0IHsgaXNBc3BlY3RSYXRpbywgZGlyZWN0aW9uRmFjdG9ycyB9ID0gcmVzaXplU25hcE9wdGlvbnM7XG4gICAgY29uc3QgZHJhd0hvcml6b250YWwgPSBkaXJlY3Rpb25GYWN0b3JzWzBdICE9PSAwIHx8IGlzQXNwZWN0UmF0aW87XG4gICAgY29uc3QgZHJhd1ZlcnRpY2FsID0gZGlyZWN0aW9uRmFjdG9yc1sxXSAhPT0gMCB8fCBpc0FzcGVjdFJhdGlvO1xuICAgIHJldHVybiBkcmF3UG9pbnRTbmFwTGluZXMoYm9hcmQsIGFjdGl2ZVJlY3RhbmdsZSwgc25hcFJlY3RhbmdsZXMsIGRyYXdIb3Jpem9udGFsLCBkcmF3VmVydGljYWwpO1xufVxuXG5mdW5jdGlvbiBkcmF3SXNvbWV0cmljU25hcExpbmVzKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGFjdGl2ZVBvaW50czogUG9pbnRbXSxcbiAgICBzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sXG4gICAgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zLFxuICAgIGFuZ2xlOiBudW1iZXJcbikge1xuICAgIGxldCB3aWR0aElzb21ldHJpY1BvaW50cyA9IFtdO1xuICAgIGxldCBoZWlnaHRJc29tZXRyaWNQb2ludHMgPSBbXTtcblxuICAgIGNvbnN0IGRyYXdIb3Jpem9udGFsTGluZSA9IHJlc2l6ZVNuYXBPcHRpb25zLmRpcmVjdGlvbkZhY3RvcnNbMF0gIT09IDAgfHwgcmVzaXplU25hcE9wdGlvbnMuaXNBc3BlY3RSYXRpbztcbiAgICBjb25zdCBkcmF3VmVydGljYWxMaW5lID0gcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1sxXSAhPT0gMCB8fCByZXNpemVTbmFwT3B0aW9ucy5pc0FzcGVjdFJhdGlvO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhY3RpdmVQb2ludHMpO1xuICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5QW5nbGUocmVjdGFuZ2xlLCBhbmdsZSk7XG4gICAgZm9yIChsZXQgc25hcFJlY3RhbmdsZSBvZiBzbmFwUmVjdGFuZ2xlcykge1xuICAgICAgICBpZiAoYWN0aXZlUmVjdGFuZ2xlLndpZHRoID09PSBzbmFwUmVjdGFuZ2xlLndpZHRoICYmIGRyYXdIb3Jpem9udGFsTGluZSkge1xuICAgICAgICAgICAgd2lkdGhJc29tZXRyaWNQb2ludHMucHVzaChnZXRJc29tZXRyaWNMaW5lUG9pbnRzKHNuYXBSZWN0YW5nbGUsIHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCA9PT0gc25hcFJlY3RhbmdsZS5oZWlnaHQgJiYgZHJhd1ZlcnRpY2FsTGluZSkge1xuICAgICAgICAgICAgaGVpZ2h0SXNvbWV0cmljUG9pbnRzLnB1c2goZ2V0SXNvbWV0cmljTGluZVBvaW50cyhzbmFwUmVjdGFuZ2xlLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh3aWR0aElzb21ldHJpY1BvaW50cy5sZW5ndGggJiYgZHJhd0hvcml6b250YWxMaW5lKSB7XG4gICAgICAgIHdpZHRoSXNvbWV0cmljUG9pbnRzLnB1c2goZ2V0SXNvbWV0cmljTGluZVBvaW50cyhhY3RpdmVSZWN0YW5nbGUsIHRydWUpKTtcbiAgICB9XG4gICAgaWYgKGhlaWdodElzb21ldHJpY1BvaW50cy5sZW5ndGggJiYgZHJhd1ZlcnRpY2FsTGluZSkge1xuICAgICAgICBoZWlnaHRJc29tZXRyaWNQb2ludHMucHVzaChnZXRJc29tZXRyaWNMaW5lUG9pbnRzKGFjdGl2ZVJlY3RhbmdsZSwgZmFsc2UpKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc29tZXRyaWNMaW5lcyA9IFsuLi53aWR0aElzb21ldHJpY1BvaW50cywgLi4uaGVpZ2h0SXNvbWV0cmljUG9pbnRzXTtcbiAgICByZXR1cm4gZHJhd1NvbGlkTGluZXMoYm9hcmQsIGlzb21ldHJpY0xpbmVzKTtcbn1cbiJdfQ==
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { PlaitDrawElement, StrokeStyle } from '../../interfaces';
|
|
2
1
|
import { DefaultDrawStyle } from '../../constants';
|
|
3
|
-
import { getDrawDefaultStrokeColor,
|
|
4
|
-
import { isDrawElementClosed } from '../common';
|
|
2
|
+
import { getDrawDefaultStrokeColor, getDefaultFill } from '../geometry';
|
|
3
|
+
import { isCustomGeometryClosed, isDrawElementClosed } from '../common';
|
|
4
|
+
import { StrokeStyle } from '@plait/common';
|
|
5
5
|
export const getStrokeColorByElement = (board, element) => {
|
|
6
6
|
const defaultColor = getDrawDefaultStrokeColor(board.theme.themeColorMode);
|
|
7
7
|
const strokeColor = element.strokeColor || defaultColor;
|
|
8
8
|
return strokeColor;
|
|
9
9
|
};
|
|
10
10
|
export const getFillByElement = (board, element) => {
|
|
11
|
-
const defaultFill =
|
|
12
|
-
?
|
|
11
|
+
const defaultFill = isDrawElementClosed(element) || isCustomGeometryClosed(board, element)
|
|
12
|
+
? getDefaultFill(board.theme.themeColorMode)
|
|
13
13
|
: DefaultDrawStyle.fill;
|
|
14
14
|
const fill = element.fill || defaultFill;
|
|
15
15
|
return fill;
|
|
@@ -17,4 +17,4 @@ export const getFillByElement = (board, element) => {
|
|
|
17
17
|
export const getStrokeStyleByElement = (board, element) => {
|
|
18
18
|
return element.strokeStyle || StrokeStyle.solid;
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Ryb2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvc3R5bGUvc3Ryb2tlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUNoRixNQUFNLFlBQVksR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDO0lBQ3hELE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDekUsTUFBTSxXQUFXLEdBQ2IsbUJBQW1CLENBQUMsT0FBMkIsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUEyQixDQUFDO1FBQzFHLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDNUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNoQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztJQUN6QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQ2hGLE9BQU8sT0FBTyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDO0FBQ3BELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERlZmF1bHREcmF3U3R5bGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0RHJhd0RlZmF1bHRTdHJva2VDb2xvciwgZ2V0RGVmYXVsdEZpbGwgfSBmcm9tICcuLi9nZW9tZXRyeSc7XG5pbXBvcnQgeyBpc0N1c3RvbUdlb21ldHJ5Q2xvc2VkLCBpc0RyYXdFbGVtZW50Q2xvc2VkIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IFN0cm9rZVN0eWxlIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJva2VDb2xvckJ5RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9yID0gZ2V0RHJhd0RlZmF1bHRTdHJva2VDb2xvcihib2FyZC50aGVtZS50aGVtZUNvbG9yTW9kZSk7XG4gICAgY29uc3Qgc3Ryb2tlQ29sb3IgPSBlbGVtZW50LnN0cm9rZUNvbG9yIHx8IGRlZmF1bHRDb2xvcjtcbiAgICByZXR1cm4gc3Ryb2tlQ29sb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsbEJ5RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdEZpbGwgPVxuICAgICAgICBpc0RyYXdFbGVtZW50Q2xvc2VkKGVsZW1lbnQgYXMgUGxhaXREcmF3RWxlbWVudCkgfHwgaXNDdXN0b21HZW9tZXRyeUNsb3NlZChib2FyZCwgZWxlbWVudCBhcyBQbGFpdERyYXdFbGVtZW50KVxuICAgICAgICAgICAgPyBnZXREZWZhdWx0RmlsbChib2FyZC50aGVtZS50aGVtZUNvbG9yTW9kZSlcbiAgICAgICAgICAgIDogRGVmYXVsdERyYXdTdHlsZS5maWxsO1xuICAgIGNvbnN0IGZpbGwgPSBlbGVtZW50LmZpbGwgfHwgZGVmYXVsdEZpbGw7XG4gICAgcmV0dXJuIGZpbGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Ryb2tlU3R5bGVCeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50LnN0cm9rZVN0eWxlIHx8IFN0cm9rZVN0eWxlLnNvbGlkO1xufTtcbiJdfQ==
|
package/esm2022/utils/table.mjs
CHANGED
|
@@ -96,7 +96,7 @@ export function editCell(board, cell) {
|
|
|
96
96
|
textManage && textManage.edit();
|
|
97
97
|
}
|
|
98
98
|
export function getTextManageByCell(board, cell) {
|
|
99
|
-
return getTextManage(board, cell
|
|
99
|
+
return getTextManage(board, undefined, cell);
|
|
100
100
|
}
|
|
101
101
|
export const updateColumns = (table, columnId, width, offset) => {
|
|
102
102
|
const columns = table.columns.map(item => (item.id === columnId ? { ...item, width } : item));
|
|
@@ -169,4 +169,4 @@ export const getSelectedTableCellsEditor = (board) => {
|
|
|
169
169
|
}
|
|
170
170
|
return undefined;
|
|
171
171
|
};
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUcsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsT0FBdUI7SUFDekUsTUFBTSxLQUFLLEdBQUksS0FBeUIsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FB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LENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUE0QixFQUFFO0lBQ3ZGLElBQUksNEJBQTRCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLG1CQUFtQixHQUFHLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BELE9BQU8sVUFBVSxFQUFFLE1BQU0sQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksbUJBQW1CLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDOUIsT0FBTyxtQkFBbUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlkQ3JlYXRvciwgUGxhaXRCb2FyZCwgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0QmFzZVRhYmxlLCBQbGFpdFRhYmxlLCBQbGFpdFRhYmxlQm9hcmQsIFBsYWl0VGFibGVDZWxsLCBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldFRleHRNYW5hZ2UgfSBmcm9tICcuLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgVEVYVF9ERUZBVUxUX0hFSUdIVCB9IGZyb20gJ0BwbGFpdC90ZXh0LXBsdWdpbnMnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRDZWxscywgZ2V0U2VsZWN0ZWRUYWJsZUVsZW1lbnRzLCBpc1NpbmdsZVNlbGVjdEVsZW1lbnRCeVRhYmxlIH0gZnJvbSAnLi90YWJsZS1zZWxlY3RlZCc7XG5pbXBvcnQgeyBCYXNlRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2VsbHNXaXRoUG9pbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEJhc2VUYWJsZSk6IFBsYWl0VGFibGVDZWxsV2l0aFBvaW50c1tdIHtcbiAgICBjb25zdCB0YWJsZSA9IChib2FyZCBhcyBQbGFpdFRhYmxlQm9hcmQpPy5idWlsZFRhYmxlKGVsZW1lbnQpO1xuICAgIGlmICghdGFibGUgfHwgIXRhYmxlLnBvaW50cyB8fCAhdGFibGUuY29sdW1ucyB8fCAhdGFibGUucm93cykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgZ2V0IHRhYmxlIGNlbGxzIHBvaW50cycpO1xuICAgIH1cbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHModGFibGUucG9pbnRzKTtcbiAgICBjb25zdCBjb2x1bW5zQ291bnQgPSB0YWJsZS5jb2x1bW5zLmxlbmd0aDtcbiAgICBjb25zdCByb3dzQ291bnQgPSB0YWJsZS5yb3dzLmxlbmd0aDtcbiAgICBjb25zdCBjZWxsV2lkdGhzID0gY2FsY3VsYXRlQ2VsbHNTaXplKHRhYmxlLmNvbHVtbnMsIHJlY3RhbmdsZS53aWR0aCwgY29sdW1uc0NvdW50LCB0cnVlKTtcbiAgICBjb25zdCBjZWxsSGVpZ2h0cyA9IGNhbGN1bGF0ZUNlbGxzU2l6ZSh0YWJsZS5yb3dzLCByZWN0YW5nbGUuaGVpZ2h0LCByb3dzQ291bnQsIGZhbHNlKTtcbiAgICBjb25zdCBjZWxsczogUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzW10gPSB0YWJsZS5jZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgIGNvbnN0IHJvd0lkeCA9IHRhYmxlLnJvd3MuZmluZEluZGV4KHJvdyA9PiByb3cuaWQgPT09IGNlbGwucm93SWQpO1xuICAgICAgICBjb25zdCBjb2x1bW5JZHggPSB0YWJsZS5jb2x1bW5zLmZpbmRJbmRleChjb2x1bW4gPT4gY29sdW1uLmlkID09PSBjZWxsLmNvbHVtbklkKTtcblxuICAgICAgICBsZXQgY2VsbFRvcExlZnRYID0gcmVjdGFuZ2xlLng7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uSWR4OyBpKyspIHtcbiAgICAgICAgICAgIGNlbGxUb3BMZWZ0WCArPSBjZWxsV2lkdGhzW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNlbGxUb3BMZWZ0WSA9IHJlY3RhbmdsZS55O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd0lkeDsgaSsrKSB7XG4gICAgICAgICAgICBjZWxsVG9wTGVmdFkgKz0gY2VsbEhlaWdodHNbaV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjZWxsV2lkdGggPSBjYWxjdWxhdGVDZWxsU2l6ZShjZWxsLCBjZWxsV2lkdGhzLCBjb2x1bW5JZHgsIHRydWUpO1xuICAgICAgICBjb25zdCBjZWxsQm90dG9tUmlnaHRYID0gY2VsbFRvcExlZnRYICsgY2VsbFdpZHRoO1xuXG4gICAgICAgIGNvbnN0IGNlbGxIZWlnaHQgPSBjYWxjdWxhdGVDZWxsU2l6ZShjZWxsLCBjZWxsSGVpZ2h0cywgcm93SWR4LCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGNlbGxCb3R0b21SaWdodFkgPSBjZWxsVG9wTGVmdFkgKyBjZWxsSGVpZ2h0O1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jZWxsLFxuICAgICAgICAgICAgcG9pbnRzOiBbXG4gICAgICAgICAgICAgICAgW2NlbGxUb3BMZWZ0WCwgY2VsbFRvcExlZnRZXSxcbiAgICAgICAgICAgICAgICBbY2VsbEJvdHRvbVJpZ2h0WCwgY2VsbEJvdHRvbVJpZ2h0WV1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjZWxscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENlbGxXaXRoUG9pbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCB0YWJsZTogUGxhaXRCYXNlVGFibGUsIGNlbGxJZDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQgYXMgUGxhaXRUYWJsZUJvYXJkLCB0YWJsZSk7XG4gICAgICAgIGNvbnN0IGNlbGxJbmRleCA9IGNlbGxzICYmIHRhYmxlLmNlbGxzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGNlbGxJZCk7XG4gICAgICAgIHJldHVybiBjZWxsc1tjZWxsSW5kZXhdO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY2FuIG5vdCBnZXQgdGFibGUgY2VsbCBwb2ludHMnKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNlbGxzU2l6ZShpdGVtczogeyBpZDogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLCB0YWJsZVNpemU6IG51bWJlciwgY291bnQ6IG51bWJlciwgaXNXaWR0aDogYm9vbGVhbikge1xuICAgIGNvbnN0IGNlbGxTaXplczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBzaXplVHlwZSA9IGlzV2lkdGggPyAnd2lkdGgnIDogJ2hlaWdodCc7XG5cbiAgICAvLyBUaGUgcmVtYWluaW5nIHNpemUgb2YgdGhlIHRhYmxlIGV4Y2x1ZGluZyBjZWxscyB3aXRoIGFscmVhZHkgc2V0IHNpemVzLlxuICAgIGxldCB0b3RhbFNpemVSZW1haW5pbmcgPSB0YWJsZVNpemU7XG5cbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaXRlbVtzaXplVHlwZV0pIHtcbiAgICAgICAgICAgIGNlbGxTaXplc1tpbmRleF0gPSBpdGVtW3NpemVUeXBlXTtcbiAgICAgICAgICAgIHRvdGFsU2l6ZVJlbWFpbmluZyAtPSBpdGVtW3NpemVUeXBlXTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRGl2aWRlIHRoZSByZW1haW5pbmcgc2l6ZSBlcXVhbGx5LlxuICAgIGNvbnN0IHJlbWFpbmluZ0l0ZW1Db3VudCA9IGNvdW50IC0gY2VsbFNpemVzLmZpbHRlcihpdGVtID0+ICEhaXRlbSkubGVuZ3RoO1xuICAgIGNvbnN0IHJlbWFpbmluZ0NlbGxTaXplID0gcmVtYWluaW5nSXRlbUNvdW50ID4gMCA/IHRvdGFsU2l6ZVJlbWFpbmluZyAvIHJlbWFpbmluZ0l0ZW1Db3VudCA6IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgIGlmICghY2VsbFNpemVzW2ldKSB7XG4gICAgICAgICAgICBjZWxsU2l6ZXNbaV0gPSByZW1haW5pbmdDZWxsU2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2VsbFNpemVzO1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVDZWxsU2l6ZShjZWxsOiBQbGFpdFRhYmxlQ2VsbCwgc2l6ZXM6IG51bWJlcltdLCBpbmRleDogbnVtYmVyLCBpc1dpZHRoOiBib29sZWFuKSB7XG4gICAgY29uc3Qgc3BhbiA9IGlzV2lkdGggPyBjZWxsLmNvbHNwYW4gfHwgMSA6IGNlbGwucm93c3BhbiB8fCAxO1xuICAgIGxldCBzaXplID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYW47IGkrKykge1xuICAgICAgICBjb25zdCBjZWxsSW5kZXggPSBpbmRleCArIGk7XG4gICAgICAgIHNpemUgKz0gc2l6ZXNbY2VsbEluZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIHNpemU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaXRDZWxsKGJvYXJkOiBQbGFpdFRhYmxlQm9hcmQsIGVsZW1lbnQ6IFBsYWl0QmFzZVRhYmxlLCBwb2ludDogUG9pbnQpIHtcbiAgICBjb25zdCB0YWJsZSA9IGJvYXJkLmJ1aWxkVGFibGUoZWxlbWVudCk7XG4gICAgY29uc3QgY2VsbHMgPSBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQsIHRhYmxlKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgIGNvbnN0IGNlbGwgPSBjZWxscy5maW5kKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGl0ZW0ucG9pbnRzKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIGNlbGxSZWN0YW5nbGUpO1xuICAgIH0pO1xuICAgIGlmIChjZWxsKSB7XG4gICAgICAgIHJldHVybiB0YWJsZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2VsbC5pZCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdENlbGwoYm9hcmQ6IFBsYWl0Qm9hcmQsIGNlbGw6IFBsYWl0VGFibGVDZWxsKSB7XG4gICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2VCeUNlbGwoYm9hcmQsIGNlbGwpO1xuICAgIHRleHRNYW5hZ2UgJiYgdGV4dE1hbmFnZS5lZGl0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0TWFuYWdlQnlDZWxsKGJvYXJkOiBQbGFpdEJvYXJkLCBjZWxsOiBQbGFpdFRhYmxlQ2VsbCkge1xuICAgIHJldHVybiBnZXRUZXh0TWFuYWdlKGJvYXJkLCBjZWxsLmlkKTtcbn1cblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUNvbHVtbnMgPSAodGFibGU6IFBsYWl0QmFzZVRhYmxlLCBjb2x1bW5JZDogc3RyaW5nLCB3aWR0aDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0YWJsZS5jb2x1bW5zLm1hcChpdGVtID0+IChpdGVtLmlkID09PSBjb2x1bW5JZCA/IHsgLi4uaXRlbSwgd2lkdGggfSA6IGl0ZW0pKTtcbiAgICBjb25zdCBwb2ludHMgPSBbdGFibGUucG9pbnRzWzBdLCBbdGFibGUucG9pbnRzWzFdWzBdICsgb2Zmc2V0LCB0YWJsZS5wb2ludHNbMV1bMV1dXSBhcyBQb2ludFtdO1xuICAgIHJldHVybiB7IGNvbHVtbnMsIHBvaW50cyB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVJvd3MgPSAodGFibGU6IFBsYWl0QmFzZVRhYmxlLCByb3dJZDogc3RyaW5nLCBoZWlnaHQ6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCByb3dzID0gdGFibGUucm93cy5tYXAoaXRlbSA9PiAoaXRlbS5pZCA9PT0gcm93SWQgPyB7IC4uLml0ZW0sIGhlaWdodCB9IDogaXRlbSkpO1xuICAgIGNvbnN0IHBvaW50cyA9IFt0YWJsZS5wb2ludHNbMF0sIFt0YWJsZS5wb2ludHNbMV1bMF0sIHRhYmxlLnBvaW50c1sxXVsxXSArIG9mZnNldF1dIGFzIFBvaW50W107XG4gICAgcmV0dXJuIHsgcm93cywgcG9pbnRzIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2VsbElkc0J5Um93T3JDb2x1bW4oY2VsbHM6IFBsYWl0VGFibGVDZWxsW10sIG9sZElkOiBzdHJpbmcsIG5ld0lkOiBzdHJpbmcsIHR5cGU6ICdyb3cnIHwgJ2NvbHVtbicpIHtcbiAgICBjb25zdCBpZDogJ3Jvd0lkJyB8ICdjb2x1bW5JZCcgPSBgJHt0eXBlfUlkYDtcbiAgICBjZWxscy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoaXRlbVtpZF0gPT09IG9sZElkKSB7XG4gICAgICAgICAgICBpdGVtW2lkXSA9IG5ld0lkO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVSb3dPckNvbHVtbklkcyhlbGVtZW50OiBQbGFpdFRhYmxlLCB0eXBlOiAncm93JyB8ICdjb2x1bW4nKSB7XG4gICAgZWxlbWVudFtgJHt0eXBlfXNgXS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBuZXdJZCA9IGlkQ3JlYXRvcigpO1xuICAgICAgICB1cGRhdGVDZWxsSWRzQnlSb3dPckNvbHVtbihlbGVtZW50LmNlbGxzLCBpdGVtLmlkLCBuZXdJZCwgdHlwZSk7XG4gICAgICAgIGl0ZW0uaWQgPSBuZXdJZDtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNlbGxJZHMoY2VsbHM6IFBsYWl0VGFibGVDZWxsW10pIHtcbiAgICBjZWxscy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBuZXdJZCA9IGlkQ3JlYXRvcigpO1xuICAgICAgICBpdGVtLmlkID0gbmV3SWQ7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NlbGxJbmNsdWRlVGV4dChjZWxsOiBQbGFpdFRhYmxlQ2VsbCkge1xuICAgIHJldHVybiBjZWxsLnRleHQgJiYgY2VsbC50ZXh0SGVpZ2h0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2VsbHNSZWN0YW5nbGUoYm9hcmQ6IFBsYWl0VGFibGVCb2FyZCwgZWxlbWVudDogUGxhaXRUYWJsZSwgY2VsbHM6IFBsYWl0VGFibGVDZWxsW10pIHtcbiAgICBjb25zdCBjZWxsc1dpdGhQb2ludHMgPSBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQgYXMgUGxhaXRUYWJsZUJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBwb2ludHMgPSBjZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgIGNvbnN0IGNlbGxXaXRoUG9pbnRzID0gY2VsbHNXaXRoUG9pbnRzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBjZWxsLmlkKTtcbiAgICAgICAgcmV0dXJuIGNlbGxXaXRoUG9pbnRzIS5wb2ludHM7XG4gICAgfSk7XG4gICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhwb2ludHMpO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ2VsbCA9IChyb3dJZDogc3RyaW5nLCBjb2x1bW5JZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbCkgPT4ge1xuICAgIGNvbnN0IGNlbGw6IFBsYWl0VGFibGVDZWxsID0ge1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHJvd0lkLFxuICAgICAgICBjb2x1bW5JZFxuICAgIH07XG4gICAgaWYgKHRleHQgIT09IG51bGwpIHtcbiAgICAgICAgY2VsbFsndGV4dEhlaWdodCddID0gVEVYVF9ERUZBVUxUX0hFSUdIVDtcbiAgICAgICAgY2VsbFsndGV4dCddID0ge1xuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHRleHQgfV0sXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmNlbnRlclxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gY2VsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZFRhYmxlQ2VsbHNFZGl0b3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpOiBCYXNlRWRpdG9yW10gfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChpc1NpbmdsZVNlbGVjdEVsZW1lbnRCeVRhYmxlKGJvYXJkKSkge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IGdldFNlbGVjdGVkVGFibGVFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbHMgPSBnZXRTZWxlY3RlZENlbGxzKGVsZW1lbnRzWzBdKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxsc0VkaXRvciA9IHNlbGVjdGVkQ2VsbHM/Lm1hcChjZWxsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlQnlDZWxsKGJvYXJkLCBjZWxsKTtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0TWFuYWdlPy5lZGl0b3I7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoc2VsZWN0ZWRDZWxsc0VkaXRvcj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRDZWxsc0VkaXRvciBhcyBCYXNlRWRpdG9yW107XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG4iXX0=
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUcsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsT0FBdUI7SUFDekUsTUFBTSxLQUFLLEdBQUksS0FBeUIsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FB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LENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUE0QixFQUFFO0lBQ3ZGLElBQUksNEJBQTRCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLG1CQUFtQixHQUFHLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BELE9BQU8sVUFBVSxFQUFFLE1BQU0sQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksbUJBQW1CLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDOUIsT0FBTyxtQkFBbUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlkQ3JlYXRvciwgUGxhaXRCb2FyZCwgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0QmFzZVRhYmxlLCBQbGFpdFRhYmxlLCBQbGFpdFRhYmxlQm9hcmQsIFBsYWl0VGFibGVDZWxsLCBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldFRleHRNYW5hZ2UgfSBmcm9tICcuLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgVEVYVF9ERUZBVUxUX0hFSUdIVCB9IGZyb20gJ0BwbGFpdC90ZXh0LXBsdWdpbnMnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRDZWxscywgZ2V0U2VsZWN0ZWRUYWJsZUVsZW1lbnRzLCBpc1NpbmdsZVNlbGVjdEVsZW1lbnRCeVRhYmxlIH0gZnJvbSAnLi90YWJsZS1zZWxlY3RlZCc7XG5pbXBvcnQgeyBCYXNlRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2VsbHNXaXRoUG9pbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEJhc2VUYWJsZSk6IFBsYWl0VGFibGVDZWxsV2l0aFBvaW50c1tdIHtcbiAgICBjb25zdCB0YWJsZSA9IChib2FyZCBhcyBQbGFpdFRhYmxlQm9hcmQpPy5idWlsZFRhYmxlKGVsZW1lbnQpO1xuICAgIGlmICghdGFibGUgfHwgIXRhYmxlLnBvaW50cyB8fCAhdGFibGUuY29sdW1ucyB8fCAhdGFibGUucm93cykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgZ2V0IHRhYmxlIGNlbGxzIHBvaW50cycpO1xuICAgIH1cbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHModGFibGUucG9pbnRzKTtcbiAgICBjb25zdCBjb2x1bW5zQ291bnQgPSB0YWJsZS5jb2x1bW5zLmxlbmd0aDtcbiAgICBjb25zdCByb3dzQ291bnQgPSB0YWJsZS5yb3dzLmxlbmd0aDtcbiAgICBjb25zdCBjZWxsV2lkdGhzID0gY2FsY3VsYXRlQ2VsbHNTaXplKHRhYmxlLmNvbHVtbnMsIHJlY3RhbmdsZS53aWR0aCwgY29sdW1uc0NvdW50LCB0cnVlKTtcbiAgICBjb25zdCBjZWxsSGVpZ2h0cyA9IGNhbGN1bGF0ZUNlbGxzU2l6ZSh0YWJsZS5yb3dzLCByZWN0YW5nbGUuaGVpZ2h0LCByb3dzQ291bnQsIGZhbHNlKTtcbiAgICBjb25zdCBjZWxsczogUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzW10gPSB0YWJsZS5jZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgIGNvbnN0IHJvd0lkeCA9IHRhYmxlLnJvd3MuZmluZEluZGV4KHJvdyA9PiByb3cuaWQgPT09IGNlbGwucm93SWQpO1xuICAgICAgICBjb25zdCBjb2x1bW5JZHggPSB0YWJsZS5jb2x1bW5zLmZpbmRJbmRleChjb2x1bW4gPT4gY29sdW1uLmlkID09PSBjZWxsLmNvbHVtbklkKTtcblxuICAgICAgICBsZXQgY2VsbFRvcExlZnRYID0gcmVjdGFuZ2xlLng7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uSWR4OyBpKyspIHtcbiAgICAgICAgICAgIGNlbGxUb3BMZWZ0WCArPSBjZWxsV2lkdGhzW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNlbGxUb3BMZWZ0WSA9IHJlY3RhbmdsZS55O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd0lkeDsgaSsrKSB7XG4gICAgICAgICAgICBjZWxsVG9wTGVmdFkgKz0gY2VsbEhlaWdodHNbaV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjZWxsV2lkdGggPSBjYWxjdWxhdGVDZWxsU2l6ZShjZWxsLCBjZWxsV2lkdGhzLCBjb2x1bW5JZHgsIHRydWUpO1xuICAgICAgICBjb25zdCBjZWxsQm90dG9tUmlnaHRYID0gY2VsbFRvcExlZnRYICsgY2VsbFdpZHRoO1xuXG4gICAgICAgIGNvbnN0IGNlbGxIZWlnaHQgPSBjYWxjdWxhdGVDZWxsU2l6ZShjZWxsLCBjZWxsSGVpZ2h0cywgcm93SWR4LCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGNlbGxCb3R0b21SaWdodFkgPSBjZWxsVG9wTGVmdFkgKyBjZWxsSGVpZ2h0O1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jZWxsLFxuICAgICAgICAgICAgcG9pbnRzOiBbXG4gICAgICAgICAgICAgICAgW2NlbGxUb3BMZWZ0WCwgY2VsbFRvcExlZnRZXSxcbiAgICAgICAgICAgICAgICBbY2VsbEJvdHRvbVJpZ2h0WCwgY2VsbEJvdHRvbVJpZ2h0WV1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjZWxscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENlbGxXaXRoUG9pbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCB0YWJsZTogUGxhaXRCYXNlVGFibGUsIGNlbGxJZDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQgYXMgUGxhaXRUYWJsZUJvYXJkLCB0YWJsZSk7XG4gICAgICAgIGNvbnN0IGNlbGxJbmRleCA9IGNlbGxzICYmIHRhYmxlLmNlbGxzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGNlbGxJZCk7XG4gICAgICAgIHJldHVybiBjZWxsc1tjZWxsSW5kZXhdO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY2FuIG5vdCBnZXQgdGFibGUgY2VsbCBwb2ludHMnKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNlbGxzU2l6ZShpdGVtczogeyBpZDogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLCB0YWJsZVNpemU6IG51bWJlciwgY291bnQ6IG51bWJlciwgaXNXaWR0aDogYm9vbGVhbikge1xuICAgIGNvbnN0IGNlbGxTaXplczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBzaXplVHlwZSA9IGlzV2lkdGggPyAnd2lkdGgnIDogJ2hlaWdodCc7XG5cbiAgICAvLyBUaGUgcmVtYWluaW5nIHNpemUgb2YgdGhlIHRhYmxlIGV4Y2x1ZGluZyBjZWxscyB3aXRoIGFscmVhZHkgc2V0IHNpemVzLlxuICAgIGxldCB0b3RhbFNpemVSZW1haW5pbmcgPSB0YWJsZVNpemU7XG5cbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaXRlbVtzaXplVHlwZV0pIHtcbiAgICAgICAgICAgIGNlbGxTaXplc1tpbmRleF0gPSBpdGVtW3NpemVUeXBlXTtcbiAgICAgICAgICAgIHRvdGFsU2l6ZVJlbWFpbmluZyAtPSBpdGVtW3NpemVUeXBlXTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRGl2aWRlIHRoZSByZW1haW5pbmcgc2l6ZSBlcXVhbGx5LlxuICAgIGNvbnN0IHJlbWFpbmluZ0l0ZW1Db3VudCA9IGNvdW50IC0gY2VsbFNpemVzLmZpbHRlcihpdGVtID0+ICEhaXRlbSkubGVuZ3RoO1xuICAgIGNvbnN0IHJlbWFpbmluZ0NlbGxTaXplID0gcmVtYWluaW5nSXRlbUNvdW50ID4gMCA/IHRvdGFsU2l6ZVJlbWFpbmluZyAvIHJlbWFpbmluZ0l0ZW1Db3VudCA6IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgIGlmICghY2VsbFNpemVzW2ldKSB7XG4gICAgICAgICAgICBjZWxsU2l6ZXNbaV0gPSByZW1haW5pbmdDZWxsU2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2VsbFNpemVzO1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVDZWxsU2l6ZShjZWxsOiBQbGFpdFRhYmxlQ2VsbCwgc2l6ZXM6IG51bWJlcltdLCBpbmRleDogbnVtYmVyLCBpc1dpZHRoOiBib29sZWFuKSB7XG4gICAgY29uc3Qgc3BhbiA9IGlzV2lkdGggPyBjZWxsLmNvbHNwYW4gfHwgMSA6IGNlbGwucm93c3BhbiB8fCAxO1xuICAgIGxldCBzaXplID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYW47IGkrKykge1xuICAgICAgICBjb25zdCBjZWxsSW5kZXggPSBpbmRleCArIGk7XG4gICAgICAgIHNpemUgKz0gc2l6ZXNbY2VsbEluZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIHNpemU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaXRDZWxsKGJvYXJkOiBQbGFpdFRhYmxlQm9hcmQsIGVsZW1lbnQ6IFBsYWl0QmFzZVRhYmxlLCBwb2ludDogUG9pbnQpIHtcbiAgICBjb25zdCB0YWJsZSA9IGJvYXJkLmJ1aWxkVGFibGUoZWxlbWVudCk7XG4gICAgY29uc3QgY2VsbHMgPSBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQsIHRhYmxlKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgIGNvbnN0IGNlbGwgPSBjZWxscy5maW5kKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGl0ZW0ucG9pbnRzKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIGNlbGxSZWN0YW5nbGUpO1xuICAgIH0pO1xuICAgIGlmIChjZWxsKSB7XG4gICAgICAgIHJldHVybiB0YWJsZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2VsbC5pZCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdENlbGwoYm9hcmQ6IFBsYWl0Qm9hcmQsIGNlbGw6IFBsYWl0VGFibGVDZWxsKSB7XG4gICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2VCeUNlbGwoYm9hcmQsIGNlbGwpO1xuICAgIHRleHRNYW5hZ2UgJiYgdGV4dE1hbmFnZS5lZGl0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0TWFuYWdlQnlDZWxsKGJvYXJkOiBQbGFpdEJvYXJkLCBjZWxsOiBQbGFpdFRhYmxlQ2VsbCkge1xuICAgIHJldHVybiBnZXRUZXh0TWFuYWdlKGJvYXJkLCB1bmRlZmluZWQsIGNlbGwpO1xufVxuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29sdW1ucyA9ICh0YWJsZTogUGxhaXRCYXNlVGFibGUsIGNvbHVtbklkOiBzdHJpbmcsIHdpZHRoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgY29sdW1ucyA9IHRhYmxlLmNvbHVtbnMubWFwKGl0ZW0gPT4gKGl0ZW0uaWQgPT09IGNvbHVtbklkID8geyAuLi5pdGVtLCB3aWR0aCB9IDogaXRlbSkpO1xuICAgIGNvbnN0IHBvaW50cyA9IFt0YWJsZS5wb2ludHNbMF0sIFt0YWJsZS5wb2ludHNbMV1bMF0gKyBvZmZzZXQsIHRhYmxlLnBvaW50c1sxXVsxXV1dIGFzIFBvaW50W107XG4gICAgcmV0dXJuIHsgY29sdW1ucywgcG9pbnRzIH07XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUm93cyA9ICh0YWJsZTogUGxhaXRCYXNlVGFibGUsIHJvd0lkOiBzdHJpbmcsIGhlaWdodDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzLm1hcChpdGVtID0+IChpdGVtLmlkID09PSByb3dJZCA/IHsgLi4uaXRlbSwgaGVpZ2h0IH0gOiBpdGVtKSk7XG4gICAgY29uc3QgcG9pbnRzID0gW3RhYmxlLnBvaW50c1swXSwgW3RhYmxlLnBvaW50c1sxXVswXSwgdGFibGUucG9pbnRzWzFdWzFdICsgb2Zmc2V0XV0gYXMgUG9pbnRbXTtcbiAgICByZXR1cm4geyByb3dzLCBwb2ludHMgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDZWxsSWRzQnlSb3dPckNvbHVtbihjZWxsczogUGxhaXRUYWJsZUNlbGxbXSwgb2xkSWQ6IHN0cmluZywgbmV3SWQ6IHN0cmluZywgdHlwZTogJ3JvdycgfCAnY29sdW1uJykge1xuICAgIGNvbnN0IGlkOiAncm93SWQnIHwgJ2NvbHVtbklkJyA9IGAke3R5cGV9SWRgO1xuICAgIGNlbGxzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtW2lkXSA9PT0gb2xkSWQpIHtcbiAgICAgICAgICAgIGl0ZW1baWRdID0gbmV3SWQ7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVJvd09yQ29sdW1uSWRzKGVsZW1lbnQ6IFBsYWl0VGFibGUsIHR5cGU6ICdyb3cnIHwgJ2NvbHVtbicpIHtcbiAgICBlbGVtZW50W2Ake3R5cGV9c2BdLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIHVwZGF0ZUNlbGxJZHNCeVJvd09yQ29sdW1uKGVsZW1lbnQuY2VsbHMsIGl0ZW0uaWQsIG5ld0lkLCB0eXBlKTtcbiAgICAgICAgaXRlbS5pZCA9IG5ld0lkO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2VsbElkcyhjZWxsczogUGxhaXRUYWJsZUNlbGxbXSkge1xuICAgIGNlbGxzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIGl0ZW0uaWQgPSBuZXdJZDtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2VsbEluY2x1ZGVUZXh0KGNlbGw6IFBsYWl0VGFibGVDZWxsKSB7XG4gICAgcmV0dXJuIGNlbGwudGV4dCAmJiBjZWxsLnRleHRIZWlnaHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZWxsc1JlY3RhbmdsZShib2FyZDogUGxhaXRUYWJsZUJvYXJkLCBlbGVtZW50OiBQbGFpdFRhYmxlLCBjZWxsczogUGxhaXRUYWJsZUNlbGxbXSkge1xuICAgIGNvbnN0IGNlbGxzV2l0aFBvaW50cyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCBhcyBQbGFpdFRhYmxlQm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHBvaW50cyA9IGNlbGxzLm1hcChjZWxsID0+IHtcbiAgICAgICAgY29uc3QgY2VsbFdpdGhQb2ludHMgPSBjZWxsc1dpdGhQb2ludHMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGNlbGwuaWQpO1xuICAgICAgICByZXR1cm4gY2VsbFdpdGhQb2ludHMhLnBvaW50cztcbiAgICB9KTtcbiAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHBvaW50cyk7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDZWxsID0gKHJvd0lkOiBzdHJpbmcsIGNvbHVtbklkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsKSA9PiB7XG4gICAgY29uc3QgY2VsbDogUGxhaXRUYWJsZUNlbGwgPSB7XG4gICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgcm93SWQsXG4gICAgICAgIGNvbHVtbklkXG4gICAgfTtcbiAgICBpZiAodGV4dCAhPT0gbnVsbCkge1xuICAgICAgICBjZWxsWyd0ZXh0SGVpZ2h0J10gPSBURVhUX0RFRkFVTFRfSEVJR0hUO1xuICAgICAgICBjZWxsWyd0ZXh0J10gPSB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dCB9XSxcbiAgICAgICAgICAgIGFsaWduOiBBbGlnbm1lbnQuY2VudGVyXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBjZWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkVGFibGVDZWxsc0VkaXRvciA9IChib2FyZDogUGxhaXRCb2FyZCk6IEJhc2VFZGl0b3JbXSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKGlzU2luZ2xlU2VsZWN0RWxlbWVudEJ5VGFibGUoYm9hcmQpKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRUYWJsZUVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxscyA9IGdldFNlbGVjdGVkQ2VsbHMoZWxlbWVudHNbMF0pO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzRWRpdG9yID0gc2VsZWN0ZWRDZWxscz8ubWFwKGNlbGwgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2VCeUNlbGwoYm9hcmQsIGNlbGwpO1xuICAgICAgICAgICAgcmV0dXJuIHRleHRNYW5hZ2U/LmVkaXRvcjtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChzZWxlY3RlZENlbGxzRWRpdG9yPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENlbGxzRWRpdG9yIGFzIEJhc2VFZGl0b3JbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PlaitBoard, catmullRomFitting, createG, drawLinearPath, idCreator, setStrokeLinecap } from '@plait/core';
|
|
2
|
-
import {
|
|
2
|
+
import { VectorLineShape } from '../interfaces';
|
|
3
3
|
import { getLineMemorizedLatest } from './memorize';
|
|
4
4
|
import { DefaultLineStyle } from '../constants/line';
|
|
5
5
|
import { alignPoints } from './arrow-line';
|
|
@@ -7,13 +7,7 @@ import { getStrokeWidthByElement } from './common';
|
|
|
7
7
|
import { getFillByElement, getStrokeColorByElement, getStrokeStyleByElement } from './style';
|
|
8
8
|
import { VectorLineShapeGenerator } from '../generators/vector-line-generator';
|
|
9
9
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
10
|
-
import { getStrokeLineDash } from '@plait/common';
|
|
11
|
-
export const isClosedVectorLine = (vectorLine) => {
|
|
12
|
-
const points = vectorLine.points;
|
|
13
|
-
const startPoint = points[0];
|
|
14
|
-
const endPoint = points[points.length - 1];
|
|
15
|
-
return startPoint[0] === endPoint[0] && startPoint[1] === endPoint[1];
|
|
16
|
-
};
|
|
10
|
+
import { getStrokeLineDash, StrokeStyle } from '@plait/common';
|
|
17
11
|
export const getVectorLinePoints = (board, element) => {
|
|
18
12
|
switch (element.shape) {
|
|
19
13
|
case VectorLineShape.straight: {
|
|
@@ -74,4 +68,4 @@ export const drawVectorLine = (board, element) => {
|
|
|
74
68
|
lineG.appendChild(line);
|
|
75
69
|
return lineG;
|
|
76
70
|
};
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy92ZWN0b3ItbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFTLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pILE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBd0IsRUFBRSxFQUFFO0lBQy9FLFFBQVEsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksT0FBTyxD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Q0FBQztJQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekMsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGNhdG11bGxSb21GaXR0aW5nLCBjcmVhdGVHLCBkcmF3TGluZWFyUGF0aCwgaWRDcmVhdG9yLCBzZXRTdHJva2VMaW5lY2FwIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRWZWN0b3JMaW5lLCBWZWN0b3JMaW5lU2hhcGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldExpbmVNZW1vcml6ZWRMYXRlc3QgfSBmcm9tICcuL21lbW9yaXplJztcbmltcG9ydCB7IERlZmF1bHRMaW5lU3R5bGUgfSBmcm9tICcuLi9jb25zdGFudHMvbGluZSc7XG5pbXBvcnQgeyBhbGlnblBvaW50cyB9IGZyb20gJy4vYXJyb3ctbGluZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGdldEZpbGxCeUVsZW1lbnQsIGdldFN0cm9rZUNvbG9yQnlFbGVtZW50LCBnZXRTdHJva2VTdHlsZUJ5RWxlbWVudCB9IGZyb20gJy4vc3R5bGUnO1xuaW1wb3J0IHsgVmVjdG9yTGluZVNoYXBlR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy92ZWN0b3ItbGluZS1nZW5lcmF0b3InO1xuaW1wb3J0IHsgcG9pbnRzT25CZXppZXJDdXJ2ZXMgfSBmcm9tICdwb2ludHMtb24tY3VydmUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlTGluZURhc2gsIFN0cm9rZVN0eWxlIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBnZXRWZWN0b3JMaW5lUG9pbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdFZlY3RvckxpbmUpID0+IHtcbiAgICBzd2l0Y2ggKGVsZW1lbnQuc2hhcGUpIHtcbiAgICAgICAgY2FzZSBWZWN0b3JMaW5lU2hhcGUuc3RyYWlnaHQ6IHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnBvaW50cztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFZlY3RvckxpbmVTaGFwZS5jdXJ2ZToge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQucG9pbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBwb2ludHNPbkJlemllckN1cnZlcyhlbGVtZW50LnBvaW50cykgYXMgUG9pbnRbXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGFQb2ludHMgPSBlbGVtZW50LnBvaW50cztcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludHMgPSBjYXRtdWxsUm9tRml0dGluZyhkYXRhUG9pbnRzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9pbnRzT25CZXppZXJDdXJ2ZXMocG9pbnRzKSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVmVjdG9yTGluZUVsZW1lbnQgPSAoXG4gICAgc2hhcGU6IFZlY3RvckxpbmVTaGFwZSxcbiAgICBwb2ludHM6IFBvaW50W10sXG4gICAgb3B0aW9ucz86IFBpY2s8UGxhaXRWZWN0b3JMaW5lLCAnc3Ryb2tlQ29sb3InIHwgJ3N0cm9rZVdpZHRoJyB8ICdmaWxsJz5cbik6IFBsYWl0VmVjdG9yTGluZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICB0eXBlOiAndmVjdG9yLWxpbmUnLFxuICAgICAgICBzaGFwZSxcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgcG9pbnRzLFxuICAgICAgICAuLi5vcHRpb25zXG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB2ZWN0b3JMaW5lQ3JlYXRpbmcgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgbGluZVNoYXBlOiBWZWN0b3JMaW5lU2hhcGUsXG4gICAgcG9pbnRzOiBQb2ludFtdLFxuICAgIG1vdmluZ1BvaW50OiBQb2ludCxcbiAgICBsaW5lU2hhcGVHOiBTVkdHRWxlbWVudFxuKSA9PiB7XG4gICAgY29uc3QgbGluZUdlbmVyYXRvciA9IG5ldyBWZWN0b3JMaW5lU2hhcGVHZW5lcmF0b3IoYm9hcmQpO1xuICAgIGNvbnN0IG1lbW9yaXplZExhdGVzdCA9IGdldExpbmVNZW1vcml6ZWRMYXRlc3QoKTtcblxuICAgIGNvbnN0IHRlbXBvcmFyeUxpbmVFbGVtZW50ID0gY3JlYXRlVmVjdG9yTGluZUVsZW1lbnQobGluZVNoYXBlLCBbLi4ucG9pbnRzLCBtb3ZpbmdQb2ludF0sIHtcbiAgICAgICAgc3Ryb2tlV2lkdGg6IERlZmF1bHRMaW5lU3R5bGUuc3Ryb2tlV2lkdGgsXG4gICAgICAgIC4uLm1lbW9yaXplZExhdGVzdFxuICAgIH0pO1xuICAgIGNvbnN0IG90aGVyUG9pbnQgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdO1xuICAgIHRlbXBvcmFyeUxpbmVFbGVtZW50LnBvaW50c1t0ZW1wb3JhcnlMaW5lRWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMV0gPSBhbGlnblBvaW50cyhvdGhlclBvaW50LCBtb3ZpbmdQb2ludCk7XG4gICAgbGluZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0ZW1wb3JhcnlMaW5lRWxlbWVudCwgbGluZVNoYXBlRyk7XG4gICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKGxpbmVTaGFwZUcpO1xuICAgIHJldHVybiB0ZW1wb3JhcnlMaW5lRWxlbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBkcmF3VmVjdG9yTGluZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRWZWN0b3JMaW5lKSA9PiB7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICBjb25zdCBzdHJva2VDb2xvciA9IGdldFN0cm9rZUNvbG9yQnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBzdHJva2VTdHlsZSA9IGdldFN0cm9rZVN0eWxlQnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBzdHJva2VMaW5lRGFzaCA9IGdldFN0cm9rZUxpbmVEYXNoKHN0cm9rZVN0eWxlLCBzdHJva2VXaWR0aCk7XG4gICAgY29uc3QgZmlsbCA9IGdldEZpbGxCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7IHN0cm9rZTogc3Ryb2tlQ29sb3IsIHN0cm9rZVdpZHRoLCBzdHJva2VMaW5lRGFzaCwgZmlsbCB9O1xuICAgIGNvbnN0IGxpbmVHID0gY3JlYXRlRygpO1xuICAgIGxldCBwb2ludHMgPSBnZXRWZWN0b3JMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KSE7XG4gICAgY29uc3QgbGluZSA9IGRyYXdMaW5lYXJQYXRoKHBvaW50cywgb3B0aW9ucyk7XG4gICAgY29uc3QgaWQgPSBpZENyZWF0b3IoKTtcbiAgICBsaW5lLnNldEF0dHJpYnV0ZSgnbWFzaycsIGB1cmwoIyR7aWR9KWApO1xuICAgIGlmIChlbGVtZW50LnN0cm9rZVN0eWxlID09PSBTdHJva2VTdHlsZS5kb3R0ZWQpIHtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChsaW5lLCAncm91bmQnKTtcbiAgICB9XG4gICAgbGluZUcuYXBwZW5kQ2hpbGQobGluZSk7XG4gICAgcmV0dXJuIGxpbmVHO1xufTtcbiJdfQ==
|
|
@@ -22,10 +22,8 @@ export class VectorLineComponent extends CommonElementFlavour {
|
|
|
22
22
|
super.initialize();
|
|
23
23
|
}
|
|
24
24
|
onContextChanged(value, previous) {
|
|
25
|
-
this.initializeWeakMap();
|
|
26
|
-
const isChangeTheme = this.board.operations.find(op => op.type === 'set_theme');
|
|
27
25
|
const linePoints = getVectorLinePoints(this.board, this.element);
|
|
28
|
-
if (value.element !== previous.element ||
|
|
26
|
+
if (value.element !== previous.element || value.hasThemeChanged) {
|
|
29
27
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
30
28
|
this.activeGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), {
|
|
31
29
|
selected: this.selected,
|
|
@@ -47,4 +45,4 @@ export class VectorLineComponent extends CommonElementFlavour {
|
|
|
47
45
|
this.activeGenerator.destroy();
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdmVjdG9yLWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQStDLE1BQU0sYUFBYSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFOUUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG9CQUFpRDtJQU10RjtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNGLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FDWixLQUE2RCxFQUM3RCxRQUFnRTtRQUVoRSxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUUsQ0FBQztRQUNsRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzNGLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsVUFBVTthQUNiLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0YsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzNGLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDdkIsVUFBVTtpQkFDYixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCwgT25Db250ZXh0Q2hhbmdlZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0VmVjdG9yTGluZSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMaW5lQWN0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL2xpbmUtYWN0aXZlLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBDb21tb25FbGVtZW50Rmxhdm91ciB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0VmVjdG9yTGluZVBvaW50cyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVmVjdG9yTGluZVNoYXBlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL3ZlY3Rvci1saW5lLWdlbmVyYXRvcic7XG5cbmV4cG9ydCBjbGFzcyBWZWN0b3JMaW5lQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRWZWN0b3JMaW5lLCBQbGFpdEJvYXJkPlxuICAgIGltcGxlbWVudHMgT25Db250ZXh0Q2hhbmdlZDxQbGFpdFZlY3RvckxpbmUsIFBsYWl0Qm9hcmQ+IHtcbiAgICBzaGFwZUdlbmVyYXRvciE6IFZlY3RvckxpbmVTaGFwZUdlbmVyYXRvcjtcblxuICAgIGFjdGl2ZUdlbmVyYXRvciE6IExpbmVBY3RpdmVHZW5lcmF0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLnNoYXBlR2VuZXJhdG9yID0gbmV3IFZlY3RvckxpbmVTaGFwZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBuZXcgTGluZUFjdGl2ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgIGNvbnN0IGxpbmVQb2ludHMgPSBnZXRWZWN0b3JMaW5lUG9pbnRzKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCkhO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICAgICAgbGluZVBvaW50c1xuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZWQoXG4gICAgICAgIHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0VmVjdG9yTGluZSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0VmVjdG9yTGluZSwgUGxhaXRCb2FyZD5cbiAgICApIHtcbiAgICAgICAgY29uc3QgbGluZVBvaW50cyA9IGdldFZlY3RvckxpbmVQb2ludHModGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KSE7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50IHx8IHZhbHVlLmhhc1RoZW1lQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBsaW5lUG9pbnRzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRVcGRhdGUgPSB2YWx1ZS5zZWxlY3RlZCAhPT0gcHJldmlvdXMuc2VsZWN0ZWQgfHwgdGhpcy5hY3RpdmVHZW5lcmF0b3IubmVlZFVwZGF0ZSgpO1xuICAgICAgICAgICAgaWYgKG5lZWRVcGRhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVQb2ludHNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|