@jax-data-science/sci-image-visualizer 0.5.0 → 0.6.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/README.md +49 -0
- package/esm2022/lib/contracts/display-types.mjs +1 -1
- package/esm2022/lib/contracts/plot-type-contribution.contract.mjs +1 -1
- package/esm2022/lib/contracts/toolbar-tool.contract.mjs +46 -4
- package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +2 -3
- package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +2 -2
- package/esm2022/lib/implementations/plotly/plotly.service.mjs +2 -3
- package/esm2022/lib/toolbar/brush/brush-tool.service.mjs +44 -3
- package/esm2022/lib/toolbar/toolbar.component.mjs +15 -3
- package/esm2022/lib/visualizer.component.mjs +221 -7
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs +325 -18
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -1
- package/lib/contracts/display-types.d.ts +10 -0
- package/lib/contracts/plot-type-contribution.contract.d.ts +27 -0
- package/lib/contracts/toolbar-tool.contract.d.ts +84 -5
- package/lib/toolbar/brush/brush-tool.service.d.ts +21 -0
- package/lib/toolbar/toolbar.component.d.ts +11 -3
- package/lib/visualizer.component.d.ts +54 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -607,6 +607,8 @@ const myMode: PlotTypeContribution = {
|
|
|
607
607
|
// ctx.visualizer — the public IVisualizer (regions, region overlay, undo…)
|
|
608
608
|
// ctx.viewport — overlay container, dataToClient / clientToData, frame$ / settled$
|
|
609
609
|
// ctx.imageInfo$ — the current image
|
|
610
|
+
// ctx.tools — arm the toolbar brush for a class (0.6.0+):
|
|
611
|
+
// ctx.tools?.armBrush({ label: 'tumour', color: '#1E88E5' })
|
|
610
612
|
const sub = ctx.viewport.frame$.subscribe((visible) => redraw(visible));
|
|
611
613
|
return { deactivate: () => sub.unsubscribe() };
|
|
612
614
|
},
|
|
@@ -640,6 +642,53 @@ built-ins. The full contract
|
|
|
640
642
|
and its guarantees are documented in
|
|
641
643
|
[`plot-type-contribution.contract.ts`](./src/lib/contracts/plot-type-contribution.contract.ts).
|
|
642
644
|
|
|
645
|
+
## Contributed dialog tools
|
|
646
|
+
|
|
647
|
+
An interactive tool that is not "set parameters, run once" can be a **dialog
|
|
648
|
+
tool** (0.6.0+). It is provided on `TOOLBAR_TOOLS`, like the run tools, with
|
|
649
|
+
`kind: 'dialog'`:
|
|
650
|
+
|
|
651
|
+
- **Button:** it sits with the host's own projected buttons at the start of the
|
|
652
|
+
toolbar, and shows in the Image view only.
|
|
653
|
+
- **Dialog:** clicking the button opens a floating, non-modal dialog and starts
|
|
654
|
+
a session. The tool fills the dialog body with plain DOM.
|
|
655
|
+
- **Context:** the same one a plot mode gets (the public visualizer, the Image
|
|
656
|
+
view's viewport, the current image), with `ctx.tools` always present.
|
|
657
|
+
|
|
658
|
+
```ts
|
|
659
|
+
import { TOOLBAR_TOOLS, ToolbarDialogToolContribution } from '@jax-data-science/sci-image-visualizer';
|
|
660
|
+
|
|
661
|
+
const myTool: ToolbarDialogToolContribution = {
|
|
662
|
+
kind: 'dialog',
|
|
663
|
+
id: 'my-tool',
|
|
664
|
+
label: 'My tool',
|
|
665
|
+
icon: { pi: 'pi-pencil' },
|
|
666
|
+
tooltip: 'Open my tool',
|
|
667
|
+
dialog: { title: 'My tool', width: '22rem' },
|
|
668
|
+
activate(ctx) {
|
|
669
|
+
const sub = ctx.viewport.frame$.subscribe((visible) => redraw(visible));
|
|
670
|
+
return { deactivate: () => sub.unsubscribe() };
|
|
671
|
+
},
|
|
672
|
+
// After activate(), once the dialog has rendered: `host` is in the document here,
|
|
673
|
+
// so the body can measure itself.
|
|
674
|
+
mount(host, ctx, session) {
|
|
675
|
+
host.textContent = 'Hello';
|
|
676
|
+
return () => { host.textContent = ''; }; // teardown, before deactivate()
|
|
677
|
+
},
|
|
678
|
+
};
|
|
679
|
+
|
|
680
|
+
providers: [{ provide: TOOLBAR_TOOLS, useValue: myTool, multi: true }]
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
**Lifecycle:**
|
|
684
|
+
- Clicking the button again, or closing the dialog, tears the body down and then
|
|
685
|
+
calls `session.deactivate()`, exactly once.
|
|
686
|
+
- Re-rendering the Image view (another image or slice) ends the session. The
|
|
687
|
+
dialog stays open, and a fresh session starts on the new view.
|
|
688
|
+
- Leaving the Image view closes the dialog.
|
|
689
|
+
- A failed start closes the dialog with a warning. As with plot modes, nothing
|
|
690
|
+
the tool throws or rejects escapes.
|
|
691
|
+
|
|
643
692
|
## Development
|
|
644
693
|
|
|
645
694
|
```bash
|
|
@@ -23,4 +23,4 @@ export const DEFAULT_SPATIAL_VIEW = {
|
|
|
23
23
|
geneMapSmoothing: 1,
|
|
24
24
|
geneMapOpacity: 0.85,
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUEyS0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ3BELE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxLQUFLO0lBQ2YsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUM1QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxjQUFjLEVBQUUsSUFBSTtJQUNwQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLGNBQWMsRUFBRSxJQUFJO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpY2F0aW9uLWNyaXRpY2FsIHR5cGVzIHRoYXQgd2VyZSBgYW55YCBvbiB0aGUgcHVibGljIGNvbnRyYWN0c1xuICogKHJlZmFjdG9yaW5nIHBsYW4sIFN0ZXAgNikuIERlbGliZXJhdGVseSBwZXJtaXNzaXZlIOKAlCBldmVyeSBmaWVsZCBvcHRpb25hbCDigJRcbiAqIHNvIGV4aXN0aW5nIGhvc3RzICh3aGljaCBwYXNzIFByaW1lTkcgYFRyZWVOb2RlYHMgYW5kIHBsYWluIG9wdGlvbiBvYmplY3RzKVxuICoga2VlcCBjb21waWxpbmcgdW5jaGFuZ2VkIHdoaWxlIGNvbnN1bWVycyBmaW5hbGx5IGdldCBuYW1lZCBzaGFwZXMuXG4gKi9cblxuLyoqIEEgY29sb3JtYXAgdmFsdWUgYXMgUGxvdGx5IHVuZGVyc3RhbmRzIGl0OiBhIGJ1aWx0LWluIHNjYWxlIG5hbWUgKGUuZy5cbiAqICAnVmlyaWRpcycpIG9yIGFuIGlubGluZSBhcnJheSBvZiBgW3N0b3AsIGNvbG9yXWAgcGFpcnMuICovXG5leHBvcnQgdHlwZSBDb2xvcm1hcFZhbHVlID0gc3RyaW5nIHwgQXJyYXk8W251bWJlciwgc3RyaW5nXT47XG5cbi8qKiBPbmUgbm9kZSBvZiB0aGUgY29sb3JtYXAgc2VsZWN0b3IgdHJlZSAoc3RydWN0dXJhbGx5IGNvbXBhdGlibGUgd2l0aCB0aGVcbiAqICBQcmltZU5HIGBUcmVlTm9kZWBzIHRoZSBob3N0IHBhc3Nlcyk6IGdyb3VwIG5vZGVzIGNhcnJ5IGBjaGlsZHJlbmAsIGxlYWZcbiAqICBub2RlcyBjYXJyeSB0aGUgc2NhbGUgaW4gYGRhdGEudmFsdWVgICgrIGEgcHJldmlldyBpbWFnZSBpbiBgZGF0YS5zcmNgKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JtYXBOb2RlIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRhdGE/OiB7IHZhbHVlPzogQ29sb3JtYXBWYWx1ZTsgc3JjPzogc3RyaW5nIH07XG4gIGNoaWxkcmVuPzogQ29sb3JtYXBOb2RlW107XG59XG5cbi8qKiBNYWdpYy13YW5kIHBpeGVsLWNvbXBhcmlzb24gc3BhY2UuICovXG5leHBvcnQgdHlwZSBXYW5kVHlwZSA9ICdHUkFZJyB8ICdSR0InIHwgJ0xBQl9ESVNUQU5DRSc7XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgbWFnaWMtd2FuZCB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2FuZE9wdGlvbnMge1xuICB0eXBlPzogV2FuZFR5cGU7XG4gIC8qKiBHYXVzc2lhbiBzaWdtYSBhcHBsaWVkIHRvIHRoZSBwYXRjaCBiZWZvcmUgdGhyZXNob2xkaW5nLiAqL1xuICBzaWdtYT86IG51bWJlcjtcbiAgLyoqIEhpZ2hlciA9IHN0cmljdGVyIChzbWFsbGVyIHNlbGVjdGlvbikgZm9yIEdSQVkvUkdCOyBoaWdoZXIgPSBsb29zZXIgZm9yXG4gICAqICBMQUJfRElTVEFOQ0Ug4oCUIG1hdGNoZXMgUXVQYXRoLiAqL1xuICBzZW5zaXRpdml0eT86IG51bWJlcjtcbiAgLyoqIFNxdWFyZSBwYXRjaCBzaXplIGluIHBpeGVscyAobXVzdCBiZSBvZGQpLiAqL1xuICBwYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKiBXaGVuIHRydWUsIHNraXAgYmx1ci90aHJlc2hvbGQgYW5kIGZsb29kLWZpbGwgYXQgZXhhY3QtbWF0Y2hcbiAgICogIChDbWQvQ3RybC1jbGljayBpbiBRdVBhdGgpLiAqL1xuICBzaW1wbGVNb2RlPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBicnVzaCByZWdpb24gdG9vbCAoUXVQYXRoLXN0eWxlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJydXNoT3B0aW9ucyB7XG4gIC8qKiBCcnVzaCBkaWFtZXRlciBpbiBtYXRyaXggKGltYWdlKSBwaXhlbHMuICovXG4gIHNpemU/OiBudW1iZXI7XG59XG5cbi8qKiBXaGF0IGRyaXZlcyBwb2ludCBjb2xvdXIgaW4gdGhlIHNwYXRpYWwtb21pY3MgbW9kZTogYW4gYW5ub3RhdGlvbiBjb2x1bW5cbiAqICBmcm9tIHRoZSBkYXRhc2V0LCBvciBvbmUgZmVhdHVyZSAoZ2VuZSkgdmVjdG9yIGZldGNoZWQgb24gZGVtYW5kLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsQ29sb3JCeSB7XG4gIGtpbmQ6ICdjb2x1bW4nIHwgJ2ZlYXR1cmUnO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBEaXNwbGF5IHN0YXRlIGZvciB0aGUgc3BhdGlhbC1vbWljcyBwbG90IG1vZGUuIExpdmVzIGluIGBWaXN1YWxpemVyU3RvcmVgXG4gKiAgYWxvbmdzaWRlIHRoZSBjb2xvcm1hcC9jaGFubmVsIHN0YXRlIHNvIHRoZSByZW5kZXJlciByZWFjdHMgdG8gZWRpdHMgdGhlXG4gKiAgc2FtZSB3YXkgaXQgZG9lcyBmb3IgYW4gaW1hZ2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxWaWV3U3RhdGUge1xuICAvKiogQ29sb3VyIHNvdXJjZTsgYG51bGxgIHJlbmRlcnMgZXZlcnkgb2JzZXJ2YXRpb24gaW4gb25lIG5ldXRyYWwgY29sb3VyXG4gICAqICAodXNlZnVsIG9uIGl0cyBvd24g4oCUIGl0IHNob3dzIHdoZXJlIHRoZSB0aXNzdWUgYWN0dWFsbHkgaXMpLiAqL1xuICBjb2xvckJ5OiBTcGF0aWFsQ29sb3JCeSB8IG51bGw7XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBkYXRhc2V0J3MgcGh5c2ljYWwgbWFya2VyIHNpemUuIDEgPSB0cnVlIHNpemUsIHdoaWNoIGZvclxuICAgKiAgYSA1NSDCtW0gVmlzaXVtIHNwb3QgaXMgY29ycmVjdCBidXQgY2FuIGJlIGludmlzaWJsZSB3aGVuIHpvb21lZCBvdXQuICovXG4gIHBvaW50U2NhbGU6IG51bWJlcjtcbiAgLyoqIEFscGhhIGZvciBwb2ludHMgdGhhdCBhcmUgbm90IG11dGVkLiAqL1xuICBvcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBMb2ctc2NhbGUgY29udGludW91cyB2YWx1ZXMgYmVmb3JlIG1hcHBpbmcgdGhlbSBvbnRvIHRoZSBjb2xvcm1hcC4gU2VlZGVkXG4gICAqICBmcm9tIHRoZSBjb2x1bW4ncyBgbG9nU2NhbGVIaW50YCDigJQgY291bnQgZGF0YSBuZWVkcyBpdC4gKi9cbiAgbG9nU2NhbGU6IGJvb2xlYW47XG4gIC8qKiBQZXJjZW50aWxlIGNsaXAgZm9yIHRoZSBjb250cmFzdCB3aW5kb3cgYXMgYFtsbywgaGldYCBmcmFjdGlvbnMsIHNvIGFcbiAgICogIGhhbmRmdWwgb2Ygc2F0dXJhdGVkIG9ic2VydmF0aW9ucyBkb24ndCBmbGF0dGVuIHRoZSByZXN0LiAqL1xuICAgcGVyY2VudGlsZUNsaXA6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBDb2xvcm1hcCBmb3IgQ09OVElOVU9VUyBzcGF0aWFsIGNvbG91cmluZyDigJQgYSBnZW5lLCBhIG51bWVyaWMgY29sdW1uIOKAlCBhcyBhXG4gICAqIHtAbGluayBDb2xvcm1hcFZhbHVlfSwgdGhlIHNhbWUgc2hhcGUgdGhlIGRpc3BsYXkgY29sb3JtYXAgY2FycmllczogYSBzY2FsZVxuICAgKiBOQU1FIGZvciB0aGUgYnVpbHQtaW5zLCBvciBhbiBpbmxpbmUgYFtzdG9wLCBjb2xvdXJdYCBhcnJheSBmb3IgdGhlIHJlc3QuXG4gICAqIE51bGwgZm9sbG93cyB0aGUgZGlzcGxheSBjb2xvcm1hcC5cbiAgICpcbiAgICogSXRzIG93biBzZXR0aW5nIGJlY2F1c2UgdGhlIGRpc3BsYXkgY29sb3JtYXAgYmVsb25ncyB0byB0aGUgdGlzc3VlIGltYWdlIGFuZFxuICAgKiBpcyB1c3VhbGx5IGEgZ3JleSByYW1wLCB3aGljaCBpcyB0aGUgd3JvbmcgdGhpbmcgdG8gcmVhZCBhIG1lYXN1cmVtZW50XG4gICAqIHRocm91Z2g6IGdyZXkgb3ZlciBncmV5IGNhbm5vdCBiZSB0b2xkIGFwYXJ0IGZyb20gdGhlIGFuYXRvbXkuIEZvbGxvd2luZyBpdFxuICAgKiAod2l0aCBhIFZpcmlkaXMgZmFsbGJhY2sgZm9yIGV4YWN0bHkgdGhhdCBjYXNlKSBpcyBhIHJlYXNvbmFibGUgZGVmYXVsdCBhbmQgYVxuICAgKiBwb29yIGNlaWxpbmcsIHNpbmNlIHdoaWNoIGdyYWRpZW50IHJlYWRzIGJlc3QgaXMgYSBqdWRnZW1lbnQgYWJvdXQgdGhlIGRhdGEuXG4gICAqXG4gICAqIE9uZSBzZXR0aW5nIGZvciB0aGUgbWFya2VycywgdGhlIDJEIGdlbmUgbWFwIGFuZCB0aGUgM0QgZ2VuZSBtYXAgdG9nZXRoZXIsIHNvXG4gICAqIHRoZSBmaWVsZCB1bmRlciB0aGUgY2VsbHMgYW5kIHRoZSBjZWxscyBvdmVyIGl0IGNhbm5vdCBkaXNhZ3JlZSBhYm91dCB3aGF0IGFcbiAgICogY29sb3VyIG1lYW5zIOKAlCBhbmQgdGhlIHBhbmVsJ3Mgb3duIGNvbG91ciBiYXIgaXMgYnVpbHQgZnJvbSBpdCB0b28uXG4gICAqL1xuICBjb250aW51b3VzQ29sb3JtYXA6IENvbG9ybWFwVmFsdWUgfCBudWxsO1xuICAvKipcbiAgICogV2hhdCB0aGUgM0Qgc2NlbmUgZHJhd3MuIFRoZSB0aHJlZSB0aGluZ3MgaW4gaXQg4oCUIHRoZSByZWZlcmVuY2Ugdm9sdW1lLCB0aGVcbiAgICogb2JzZXJ2YXRpb24gY2xvdWQgYW5kIHRoZSBjbHVzdGVyIGRlbnNpdHkgdm9sdW1lcyDigJQgb2NjdXB5IHRoZSBzYW1lIHNwYWNlLCBzb1xuICAgKiBhbnkgdHdvIG9mIHRoZW0gaGlkZSBlYWNoIG90aGVyIHRvIHNvbWUgZGVncmVlLiBUaGVzZSBhcmUgaW5kZXBlbmRlbnQgYmVjYXVzZVxuICAgKiB0aGUgdXNlZnVsIHZpZXdzIGFyZSB0aGUgY29tYmluYXRpb25zOiB0aGUgdm9sdW1lcyBhbG9uZSB0byByZWFkIGFuIGVzdGltYXRlZFxuICAgKiBkaXN0cmlidXRpb24sIG9uZSBzZWN0aW9uJ3MgY2VsbHMgb3ZlciB0aGVtIHRvIGNoZWNrIHRoYXQgZXN0aW1hdGUgYWdhaW5zdCB0aGVcbiAgICogbWVhc3VyZW1lbnQsIHRoZSBhbmF0b215IGFsb25lIHRvIGZpbmQgYSBsYW5kbWFyay5cbiAgICpcbiAgICogVmlzaWJpbGl0eSBvbmx5IOKAlCB0aGUgbGF5ZXJzIHN0YXkgYnVpbHQsIHNvIHRvZ2dsaW5nIG9uZSBiYWNrIG9uIGlzIGltbWVkaWF0ZVxuICAgKiBhbmQgZG9lcyBub3QgcmUtcnVuIGEgcmFzdGVyaXNhdGlvbi4ge0BsaW5rIGRlbnNpdHlWb2x1bWV9IGlzIHRoZSBleGNlcHRpb24gYW5kXG4gICAqIGdlbnVpbmVseSBnYXRlcyBjb25zdHJ1Y3Rpb24sIGJlY2F1c2UgYnVpbGRpbmcgc2l4IHZvbHVtZXMgaXMgbm90IGZyZWUuXG4gICAqL1xuICBzaG93Vm9sdW1lOiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSB2b2x1bWUncyBvcGFjaXR5LlxuICAgKlxuICAgKiBJdHMgb3duLCBub3Qge0BsaW5rIG9wYWNpdHl9ICh3aGljaCBiZWxvbmdzIHRvIHRoZSBtYXJrZXJzKTogdGhlIHZvbHVtZSBpcyBhXG4gICAqIEJBQ0tEUk9QLCBhbmQgcmVhZGluZyB0aGUgY2xvdWQgb3IgYSBkZW5zaXR5IGZpZWxkIHRocm91Z2ggaXQgbWVhbnMgdHVybmluZ1xuICAgKiB0aGUgYW5hdG9teSBkb3duIHdpdGhvdXQgdG91Y2hpbmcgdGhlIGRhdGEgZHJhd24gb3ZlciBpdC4gUmFuZ2VzIGxvd2VyIHRoYW5cbiAgICogdGhlIG1hcmtlcnMnIHNsaWRlciBmb3IgdGhlIHNhbWUgcmVhc29uIOKAlCBhIGZhaW50IGFuYXRvbWljYWwgaGludCBpcyBhIHVzZWZ1bFxuICAgKiBzZXR0aW5nIGZvciBhIGJhY2tkcm9wIGFuZCBhIHVzZWxlc3Mgb25lIGZvciB0aGUgbWVhc3VyZW1lbnQuXG4gICAqL1xuICB2b2x1bWVPcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBEcmF3IHRoZSBvYnNlcnZhdGlvbiBjbG91ZCAoM0QpLiAqL1xuICBzaG93UG9pbnRzOiBib29sZWFuO1xuICAvKipcbiAgICogUmVzdHJpY3QgdGhlIGNsb3VkIHRvIE9ORSBpbWFnZWQgc2VjdGlvbiwgYnkgaW5kZXggaW50byB0aGUgZGF0YXNldCdzIHNhbXBsZWRcbiAgICogc2VjdGlvbnM7IG51bGwgZHJhd3MgZXZlcnkgc2VjdGlvbi5cbiAgICpcbiAgICogVGhlIHdob2xlIGNsb3VkIGlzIGEgc3RhY2sgb2YgZGlzY3MgdGhhdCBoaWRlcyB3aGF0ZXZlciBpcyBkcmF3biBiZXR3ZWVuIHRoZW0uXG4gICAqIE9uZSBzZWN0aW9uIGF0IGEgdGltZSBpcyB0aGUgdmlldyB0aGF0IGFuc3dlcnMgXCJkb2VzIHRoZSBlc3RpbWF0ZWQgZmllbGRcbiAgICogYWN0dWFsbHkgZm9sbG93IHRoZSBjZWxscyBJIG1lYXN1cmVkXCIg4oCUIGFuZCBpdCBpcyBvbmx5IG9mZmVyZWQgZm9yIGRhdGEgdGhhdFxuICAgKiByZWFsbHkgaXMgc2VjdGlvbmVkIChzZWUgYHNhbXBsZWRTZWN0aW9uc2ApLlxuICAgKi9cbiAgcG9pbnRTZWN0aW9uOiBudW1iZXIgfCBudWxsO1xuICAvKipcbiAgICogRHJhdyBlYWNoIGNsdXN0ZXIgYXMgYSB0cmFuc2x1Y2VudCBERU5TSVRZIHZvbHVtZSBhbG9uZ3NpZGUgdGhlIDNEIGNsb3VkLlxuICAgKlxuICAgKiBTZXJpYWwgc2VjdGlvbnMgaHVuZHJlZHMgb2YgbWljcm9ucyBhcGFydCBtYWtlIGEgY2xvdWQgaGFyZCB0byByZWFkIGFzIGFuXG4gICAqIGFuYXRvbWljYWwgZGlzdHJpYnV0aW9uIOKAlCB0aGUgZXllIGNhbm5vdCBpbnRlZ3JhdGUgZGlzY3MgaW50byBhIHNoYXBlLiBBXG4gICAqIGRlbnNpdHkgZmllbGQgY2FuIGJlIGVzdGltYXRlZCBiZXR3ZWVuIHRoZSBpbWFnZWQgcGxhbmVzIChhIGNvbnRpbnVvdXNcbiAgICogZXN0aW1hdGUsIHVubGlrZSBpbmRpdmlkdWFsIGNlbGxzLCB3aGljaCBoYXZlIG5vIGNvcnJlc3BvbmRlbmNlIHRvXG4gICAqIGludGVycG9sYXRlIGFsb25nKSBhbmQgcmVuZGVycyBhcyBhIGNsb3VkIHRoYXQgcmVhZHMgYXMgYW4gZXN0aW1hdGUuXG4gICAqL1xuICBkZW5zaXR5Vm9sdW1lOiBib29sZWFuO1xuICAvKiogTXVsdGlwbGllciBvbiB0aGUgZGVmYXVsdCBrZXJuZWwgYmFuZHdpZHRoLiBBYm92ZSAxIGlzIHNtb290aGVyIGFuZCBsZXNzXG4gICAqICBjb21taXR0YWw7IGJlbG93IDEgZXhwb3NlcyB0aGUgaW5kaXZpZHVhbCBzZWN0aW9ucy4gKi9cbiAgZGVuc2l0eVNtb290aGluZzogbnVtYmVyO1xuICAvKipcbiAgICogRHJhdyB0aGUgYWN0aXZlIEdFTkUgYXMgYSBjb250aW51b3VzIGZpZWxkIHVuZGVyIHRoZSBvYnNlcnZhdGlvbnMgKDJEKS5cbiAgICpcbiAgICogQ29sb3VyaW5nIHRoZSBtYXJrZXJzIGJ5IGEgZ2VuZSBzYXlzIHdoaWNoIGNlbGxzIGV4cHJlc3MgaXQ7IGl0IGNhbm5vdCBzYXlcbiAgICogd2hlcmUsIGJlY2F1c2UgdGhlIGV5ZSB3aWxsIG5vdCBpbnRlZ3JhdGUgdGhvdXNhbmRzIG9mIGRvdHMgaW50byBhIHRlcnJpdG9yeS5cbiAgICogVGhlIGZpZWxkIGlzIGFuIGVzdGltYXRlIOKAlCBhIGtlcm5lbC13ZWlnaHRlZCBtZWFuIHBlciBjZWxsLCB0cmFuc3BhcmVudCB3aGVyZVxuICAgKiBubyBjZWxsIHdhcyBtZWFzdXJlZCDigJQgYW5kIGl0IGlzIGRyYXduIGJlbmVhdGggdGhlIGNlbGxzLCBub3QgaW5zdGVhZCBvZiB0aGVtLFxuICAgKiBzbyB0aGUgbWVhc3VyZW1lbnQgc3RheXMgb24gc2NyZWVuIG5leHQgdG8gdGhlIGludGVycG9sYXRpb24uXG4gICAqXG4gICAqIElnbm9yZWQgdW5sZXNzIHRoZSBjb2xvdXIgc291cmNlIGlzIGEgZ2VuZTogdGhlcmUgaXMgbm90aGluZyBlbHNlIHRvIG1hcC5cbiAgICovXG4gIGdlbmVNYXA6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgM0QgZ2VuZSBtYXAgdG8gT05FIGltYWdlZCBzZWN0aW9uLCBieSBpbmRleCBpbnRvIHRoZSBkYXRhc2V0J3NcbiAgICogc2FtcGxlZCBzZWN0aW9uczsgbnVsbCBkcmF3cyBldmVyeSBzZWN0aW9uJ3Mgc2hlZXQuXG4gICAqXG4gICAqIFNlcGFyYXRlIGZyb20ge0BsaW5rIHBvaW50U2VjdGlvbn0gc28gdGhlIGNvbWJpbmF0aW9ucyBzdGF5IG9wZW46IGFsbCB0aGVcbiAgICogc2hlZXRzIHdpdGggb25lIHNlY3Rpb24ncyBjZWxscyBvdmVyIHRoZW0gaXMgYSB1c2VmdWwgdmlldywgYW5kIHNvIGlzIG9uZVxuICAgKiBzaGVldCBpbnNpZGUgdGhlIHdob2xlIGNsb3VkLiBJZ25vcmVkIHdoaWxlIHtAbGluayBnZW5lTWFwVm9sdW1lfSBpcyBzZXQg4oCUXG4gICAqIGludGVycG9sYXRpbmcgYSBzaW5nbGUgc2VjdGlvbiBhbG9uZyB6IHdvdWxkIHNtZWFyIG9uZSBzbGlkZSB0aHJvdWdoIHRoZVxuICAgKiBzcGVjaW1lbidzIHdob2xlIGRlcHRoIGFuZCBjYWxsIGl0IGFuIGVzdGltYXRlLlxuICAgKi9cbiAgZ2VuZU1hcFNlY3Rpb246IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBTbW9vdGggdGhlIHBlci1zZWN0aW9uIGdlbmUgbWFwcyBhbG9uZyB6IGludG8gYSBjb250aW51b3VzIFZPTFVNRSAoM0QpLlxuICAgKlxuICAgKiBUaGUgc2hlZXRzIGFyZSB3aGF0IHdhcyBtZWFzdXJlZCDigJQgb25lIGZpZWxkIHBlciBpbWFnZWQgc2xpZGUsIHdpdGggdGhlIGdhcHNcbiAgICogYmV0d2VlbiB0aGVtIGVtcHR5LiBUaGlzIHR1cm5zIHRoZW0gaW50byBhbiBlc3RpbWF0ZSBkZWZpbmVkIGJldHdlZW4gdGhlXG4gICAqIHNsaWRlcywgdGhlIHNhbWUgbW92ZSB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMgbWFrZSBhbmQgd2l0aCB0aGUgc2FtZVxuICAgKiBjYXZlYXQ6IGEgZmllbGQgbWF5IGJlIGludGVycG9sYXRlZCBiZXR3ZWVuIHNlY3Rpb25zLCBpbmRpdmlkdWFsIGNlbGxzIG1heVxuICAgKiBub3QsIGFuZCB0aGUgcmVzdWx0IGlzIGRyYXduIGFzIGEgdHJhbnNsdWNlbnQgY2xvdWQgc28gaXQgY2Fubm90IGJlIG1pc3Rha2VuXG4gICAqIGZvciBtZWFzdXJlbWVudC5cbiAgICovXG4gIGdlbmVNYXBWb2x1bWU6IGJvb2xlYW47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBnZW5lIG1hcCdzIGtlcm5lbCBiYW5kd2lkdGguICovXG4gIGdlbmVNYXBTbW9vdGhpbmc6IG51bWJlcjtcbiAgLyoqIFRoZSBnZW5lIG1hcCdzIG93biBvcGFjaXR5LiBTZXBhcmF0ZSBmcm9tIHtAbGluayBvcGFjaXR5fSwgd2hpY2ggYmVsb25ncyB0b1xuICAgKiAgdGhlIG1hcmtlcnM6IHR1cm5pbmcgdGhlIGNlbGxzIGRvd24gdG8gcmVhZCB0aGUgZmllbGQgdW5kZXJuZWF0aCBtdXN0IG5vdFxuICAgKiAgdHVybiB0aGUgZmllbGQgZG93biB3aXRoIHRoZW0uICovXG4gIGdlbmVNYXBPcGFjaXR5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NQQVRJQUxfVklFVzogU3BhdGlhbFZpZXdTdGF0ZSA9IHtcbiAgY29sb3JCeTogbnVsbCxcbiAgcG9pbnRTY2FsZTogMSxcbiAgb3BhY2l0eTogMSxcbiAgbG9nU2NhbGU6IGZhbHNlLFxuICBwZXJjZW50aWxlQ2xpcDogWzAuMDEsIDAuOTldLFxuICBjb250aW51b3VzQ29sb3JtYXA6IG51bGwsXG4gIHNob3dWb2x1bWU6IHRydWUsXG4gIHZvbHVtZU9wYWNpdHk6IDAuNSxcbiAgc2hvd1BvaW50czogdHJ1ZSxcbiAgcG9pbnRTZWN0aW9uOiBudWxsLFxuICBkZW5zaXR5Vm9sdW1lOiBmYWxzZSxcbiAgZGVuc2l0eVNtb290aGluZzogMSxcbiAgZ2VuZU1hcDogZmFsc2UsXG4gIGdlbmVNYXBTZWN0aW9uOiBudWxsLFxuICBnZW5lTWFwVm9sdW1lOiBmYWxzZSxcbiAgZ2VuZU1hcFNtb290aGluZzogMSxcbiAgZ2VuZU1hcE9wYWNpdHk6IDAuODUsXG59O1xuIl19
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFxTEgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ3BELE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxLQUFLO0lBQ2YsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUM1QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxjQUFjLEVBQUUsSUFBSTtJQUNwQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLGNBQWMsRUFBRSxJQUFJO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpY2F0aW9uLWNyaXRpY2FsIHR5cGVzIHRoYXQgd2VyZSBgYW55YCBvbiB0aGUgcHVibGljIGNvbnRyYWN0c1xuICogKHJlZmFjdG9yaW5nIHBsYW4sIFN0ZXAgNikuIERlbGliZXJhdGVseSBwZXJtaXNzaXZlIOKAlCBldmVyeSBmaWVsZCBvcHRpb25hbCDigJRcbiAqIHNvIGV4aXN0aW5nIGhvc3RzICh3aGljaCBwYXNzIFByaW1lTkcgYFRyZWVOb2RlYHMgYW5kIHBsYWluIG9wdGlvbiBvYmplY3RzKVxuICoga2VlcCBjb21waWxpbmcgdW5jaGFuZ2VkIHdoaWxlIGNvbnN1bWVycyBmaW5hbGx5IGdldCBuYW1lZCBzaGFwZXMuXG4gKi9cblxuLyoqIEEgY29sb3JtYXAgdmFsdWUgYXMgUGxvdGx5IHVuZGVyc3RhbmRzIGl0OiBhIGJ1aWx0LWluIHNjYWxlIG5hbWUgKGUuZy5cbiAqICAnVmlyaWRpcycpIG9yIGFuIGlubGluZSBhcnJheSBvZiBgW3N0b3AsIGNvbG9yXWAgcGFpcnMuICovXG5leHBvcnQgdHlwZSBDb2xvcm1hcFZhbHVlID0gc3RyaW5nIHwgQXJyYXk8W251bWJlciwgc3RyaW5nXT47XG5cbi8qKiBPbmUgbm9kZSBvZiB0aGUgY29sb3JtYXAgc2VsZWN0b3IgdHJlZSAoc3RydWN0dXJhbGx5IGNvbXBhdGlibGUgd2l0aCB0aGVcbiAqICBQcmltZU5HIGBUcmVlTm9kZWBzIHRoZSBob3N0IHBhc3Nlcyk6IGdyb3VwIG5vZGVzIGNhcnJ5IGBjaGlsZHJlbmAsIGxlYWZcbiAqICBub2RlcyBjYXJyeSB0aGUgc2NhbGUgaW4gYGRhdGEudmFsdWVgICgrIGEgcHJldmlldyBpbWFnZSBpbiBgZGF0YS5zcmNgKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JtYXBOb2RlIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRhdGE/OiB7IHZhbHVlPzogQ29sb3JtYXBWYWx1ZTsgc3JjPzogc3RyaW5nIH07XG4gIGNoaWxkcmVuPzogQ29sb3JtYXBOb2RlW107XG59XG5cbi8qKiBNYWdpYy13YW5kIHBpeGVsLWNvbXBhcmlzb24gc3BhY2UuICovXG5leHBvcnQgdHlwZSBXYW5kVHlwZSA9ICdHUkFZJyB8ICdSR0InIHwgJ0xBQl9ESVNUQU5DRSc7XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgbWFnaWMtd2FuZCB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2FuZE9wdGlvbnMge1xuICB0eXBlPzogV2FuZFR5cGU7XG4gIC8qKiBHYXVzc2lhbiBzaWdtYSBhcHBsaWVkIHRvIHRoZSBwYXRjaCBiZWZvcmUgdGhyZXNob2xkaW5nLiAqL1xuICBzaWdtYT86IG51bWJlcjtcbiAgLyoqIEhpZ2hlciA9IHN0cmljdGVyIChzbWFsbGVyIHNlbGVjdGlvbikgZm9yIEdSQVkvUkdCOyBoaWdoZXIgPSBsb29zZXIgZm9yXG4gICAqICBMQUJfRElTVEFOQ0Ug4oCUIG1hdGNoZXMgUXVQYXRoLiAqL1xuICBzZW5zaXRpdml0eT86IG51bWJlcjtcbiAgLyoqIFNxdWFyZSBwYXRjaCBzaXplIGluIHBpeGVscyAobXVzdCBiZSBvZGQpLiAqL1xuICBwYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKiBXaGVuIHRydWUsIHNraXAgYmx1ci90aHJlc2hvbGQgYW5kIGZsb29kLWZpbGwgYXQgZXhhY3QtbWF0Y2hcbiAgICogIChDbWQvQ3RybC1jbGljayBpbiBRdVBhdGgpLiAqL1xuICBzaW1wbGVNb2RlPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBicnVzaCByZWdpb24gdG9vbCAoUXVQYXRoLXN0eWxlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJydXNoT3B0aW9ucyB7XG4gIC8qKiBCcnVzaCBkaWFtZXRlciBpbiBtYXRyaXggKGltYWdlKSBwaXhlbHMuICovXG4gIHNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQYWludCBhcyBvbmUgY2xhc3M6IG5ldyByZWdpb25zIHRha2UgdGhpcyBsYWJlbCwgYW5kIGEgc3Ryb2tlIG9ubHkgZXh0ZW5kc1xuICAgKiBvciBtZXJnZXMgcmVnaW9ucyB3aXRoIHRoZSBzYW1lIGxhYmVsLiBVbnNldCA9IHRoZSBwbGFpbiBicnVzaCAobGFiZWxcbiAgICogYCdSZWdpb24nYCwgZXh0ZW5kcyBhbnkgcmVnaW9uKS4gYHNldEJydXNoTW9kZSh0cnVlLCDigKYpYCBzZXRzIHRoZSBjbGFzcyBpblxuICAgKiBmdWxsOyBgc2V0QnJ1c2hPcHRpb25zYCBjaGFuZ2VzIGl0IG9ubHkgd2hlbiBgbGFiZWxgIG9yIGBjb2xvcmAgaXMgcGFzc2VkLFxuICAgKiBzbyBhIHNpemUtb25seSB1cGRhdGUga2VlcHMgaXQuXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIENvbG91ciBmb3IgdGhlIHBhaW50ZWQgcmVnaW9ucyBpbnN0ZWFkIG9mIHRoZSBzaGFwZSBjb2xvdXIuIEtlcHQgYWdhaW5zdCBwcmVzZXQgcmUtYXBwbHkuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG4vKiogV2hhdCBkcml2ZXMgcG9pbnQgY29sb3VyIGluIHRoZSBzcGF0aWFsLW9taWNzIG1vZGU6IGFuIGFubm90YXRpb24gY29sdW1uXG4gKiAgZnJvbSB0aGUgZGF0YXNldCwgb3Igb25lIGZlYXR1cmUgKGdlbmUpIHZlY3RvciBmZXRjaGVkIG9uIGRlbWFuZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbENvbG9yQnkge1xuICBraW5kOiAnY29sdW1uJyB8ICdmZWF0dXJlJztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogRGlzcGxheSBzdGF0ZSBmb3IgdGhlIHNwYXRpYWwtb21pY3MgcGxvdCBtb2RlLiBMaXZlcyBpbiBgVmlzdWFsaXplclN0b3JlYFxuICogIGFsb25nc2lkZSB0aGUgY29sb3JtYXAvY2hhbm5lbCBzdGF0ZSBzbyB0aGUgcmVuZGVyZXIgcmVhY3RzIHRvIGVkaXRzIHRoZVxuICogIHNhbWUgd2F5IGl0IGRvZXMgZm9yIGFuIGltYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVmlld1N0YXRlIHtcbiAgLyoqIENvbG91ciBzb3VyY2U7IGBudWxsYCByZW5kZXJzIGV2ZXJ5IG9ic2VydmF0aW9uIGluIG9uZSBuZXV0cmFsIGNvbG91clxuICAgKiAgKHVzZWZ1bCBvbiBpdHMgb3duIOKAlCBpdCBzaG93cyB3aGVyZSB0aGUgdGlzc3VlIGFjdHVhbGx5IGlzKS4gKi9cbiAgY29sb3JCeTogU3BhdGlhbENvbG9yQnkgfCBudWxsO1xuICAvKiogTXVsdGlwbGllciBvbiB0aGUgZGF0YXNldCdzIHBoeXNpY2FsIG1hcmtlciBzaXplLiAxID0gdHJ1ZSBzaXplLCB3aGljaCBmb3JcbiAgICogIGEgNTUgwrVtIFZpc2l1bSBzcG90IGlzIGNvcnJlY3QgYnV0IGNhbiBiZSBpbnZpc2libGUgd2hlbiB6b29tZWQgb3V0LiAqL1xuICBwb2ludFNjYWxlOiBudW1iZXI7XG4gIC8qKiBBbHBoYSBmb3IgcG9pbnRzIHRoYXQgYXJlIG5vdCBtdXRlZC4gKi9cbiAgb3BhY2l0eTogbnVtYmVyO1xuICAvKiogTG9nLXNjYWxlIGNvbnRpbnVvdXMgdmFsdWVzIGJlZm9yZSBtYXBwaW5nIHRoZW0gb250byB0aGUgY29sb3JtYXAuIFNlZWRlZFxuICAgKiAgZnJvbSB0aGUgY29sdW1uJ3MgYGxvZ1NjYWxlSGludGAg4oCUIGNvdW50IGRhdGEgbmVlZHMgaXQuICovXG4gIGxvZ1NjYWxlOiBib29sZWFuO1xuICAvKiogUGVyY2VudGlsZSBjbGlwIGZvciB0aGUgY29udHJhc3Qgd2luZG93IGFzIGBbbG8sIGhpXWAgZnJhY3Rpb25zLCBzbyBhXG4gICAqICBoYW5kZnVsIG9mIHNhdHVyYXRlZCBvYnNlcnZhdGlvbnMgZG9uJ3QgZmxhdHRlbiB0aGUgcmVzdC4gKi9cbiAgIHBlcmNlbnRpbGVDbGlwOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogQ29sb3JtYXAgZm9yIENPTlRJTlVPVVMgc3BhdGlhbCBjb2xvdXJpbmcg4oCUIGEgZ2VuZSwgYSBudW1lcmljIGNvbHVtbiDigJQgYXMgYVxuICAgKiB7QGxpbmsgQ29sb3JtYXBWYWx1ZX0sIHRoZSBzYW1lIHNoYXBlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGNhcnJpZXM6IGEgc2NhbGVcbiAgICogTkFNRSBmb3IgdGhlIGJ1aWx0LWlucywgb3IgYW4gaW5saW5lIGBbc3RvcCwgY29sb3VyXWAgYXJyYXkgZm9yIHRoZSByZXN0LlxuICAgKiBOdWxsIGZvbGxvd3MgdGhlIGRpc3BsYXkgY29sb3JtYXAuXG4gICAqXG4gICAqIEl0cyBvd24gc2V0dGluZyBiZWNhdXNlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGJlbG9uZ3MgdG8gdGhlIHRpc3N1ZSBpbWFnZSBhbmRcbiAgICogaXMgdXN1YWxseSBhIGdyZXkgcmFtcCwgd2hpY2ggaXMgdGhlIHdyb25nIHRoaW5nIHRvIHJlYWQgYSBtZWFzdXJlbWVudFxuICAgKiB0aHJvdWdoOiBncmV5IG92ZXIgZ3JleSBjYW5ub3QgYmUgdG9sZCBhcGFydCBmcm9tIHRoZSBhbmF0b215LiBGb2xsb3dpbmcgaXRcbiAgICogKHdpdGggYSBWaXJpZGlzIGZhbGxiYWNrIGZvciBleGFjdGx5IHRoYXQgY2FzZSkgaXMgYSByZWFzb25hYmxlIGRlZmF1bHQgYW5kIGFcbiAgICogcG9vciBjZWlsaW5nLCBzaW5jZSB3aGljaCBncmFkaWVudCByZWFkcyBiZXN0IGlzIGEganVkZ2VtZW50IGFib3V0IHRoZSBkYXRhLlxuICAgKlxuICAgKiBPbmUgc2V0dGluZyBmb3IgdGhlIG1hcmtlcnMsIHRoZSAyRCBnZW5lIG1hcCBhbmQgdGhlIDNEIGdlbmUgbWFwIHRvZ2V0aGVyLCBzb1xuICAgKiB0aGUgZmllbGQgdW5kZXIgdGhlIGNlbGxzIGFuZCB0aGUgY2VsbHMgb3ZlciBpdCBjYW5ub3QgZGlzYWdyZWUgYWJvdXQgd2hhdCBhXG4gICAqIGNvbG91ciBtZWFucyDigJQgYW5kIHRoZSBwYW5lbCdzIG93biBjb2xvdXIgYmFyIGlzIGJ1aWx0IGZyb20gaXQgdG9vLlxuICAgKi9cbiAgY29udGludW91c0NvbG9ybWFwOiBDb2xvcm1hcFZhbHVlIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoYXQgdGhlIDNEIHNjZW5lIGRyYXdzLiBUaGUgdGhyZWUgdGhpbmdzIGluIGl0IOKAlCB0aGUgcmVmZXJlbmNlIHZvbHVtZSwgdGhlXG4gICAqIG9ic2VydmF0aW9uIGNsb3VkIGFuZCB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMg4oCUIG9jY3VweSB0aGUgc2FtZSBzcGFjZSwgc29cbiAgICogYW55IHR3byBvZiB0aGVtIGhpZGUgZWFjaCBvdGhlciB0byBzb21lIGRlZ3JlZS4gVGhlc2UgYXJlIGluZGVwZW5kZW50IGJlY2F1c2VcbiAgICogdGhlIHVzZWZ1bCB2aWV3cyBhcmUgdGhlIGNvbWJpbmF0aW9uczogdGhlIHZvbHVtZXMgYWxvbmUgdG8gcmVhZCBhbiBlc3RpbWF0ZWRcbiAgICogZGlzdHJpYnV0aW9uLCBvbmUgc2VjdGlvbidzIGNlbGxzIG92ZXIgdGhlbSB0byBjaGVjayB0aGF0IGVzdGltYXRlIGFnYWluc3QgdGhlXG4gICAqIG1lYXN1cmVtZW50LCB0aGUgYW5hdG9teSBhbG9uZSB0byBmaW5kIGEgbGFuZG1hcmsuXG4gICAqXG4gICAqIFZpc2liaWxpdHkgb25seSDigJQgdGhlIGxheWVycyBzdGF5IGJ1aWx0LCBzbyB0b2dnbGluZyBvbmUgYmFjayBvbiBpcyBpbW1lZGlhdGVcbiAgICogYW5kIGRvZXMgbm90IHJlLXJ1biBhIHJhc3RlcmlzYXRpb24uIHtAbGluayBkZW5zaXR5Vm9sdW1lfSBpcyB0aGUgZXhjZXB0aW9uIGFuZFxuICAgKiBnZW51aW5lbHkgZ2F0ZXMgY29uc3RydWN0aW9uLCBiZWNhdXNlIGJ1aWxkaW5nIHNpeCB2b2x1bWVzIGlzIG5vdCBmcmVlLlxuICAgKi9cbiAgc2hvd1ZvbHVtZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2Ugdm9sdW1lJ3Mgb3BhY2l0eS5cbiAgICpcbiAgICogSXRzIG93biwgbm90IHtAbGluayBvcGFjaXR5fSAod2hpY2ggYmVsb25ncyB0byB0aGUgbWFya2Vycyk6IHRoZSB2b2x1bWUgaXMgYVxuICAgKiBCQUNLRFJPUCwgYW5kIHJlYWRpbmcgdGhlIGNsb3VkIG9yIGEgZGVuc2l0eSBmaWVsZCB0aHJvdWdoIGl0IG1lYW5zIHR1cm5pbmdcbiAgICogdGhlIGFuYXRvbXkgZG93biB3aXRob3V0IHRvdWNoaW5nIHRoZSBkYXRhIGRyYXduIG92ZXIgaXQuIFJhbmdlcyBsb3dlciB0aGFuXG4gICAqIHRoZSBtYXJrZXJzJyBzbGlkZXIgZm9yIHRoZSBzYW1lIHJlYXNvbiDigJQgYSBmYWludCBhbmF0b21pY2FsIGhpbnQgaXMgYSB1c2VmdWxcbiAgICogc2V0dGluZyBmb3IgYSBiYWNrZHJvcCBhbmQgYSB1c2VsZXNzIG9uZSBmb3IgdGhlIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgdm9sdW1lT3BhY2l0eTogbnVtYmVyO1xuICAvKiogRHJhdyB0aGUgb2JzZXJ2YXRpb24gY2xvdWQgKDNEKS4gKi9cbiAgc2hvd1BvaW50czogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSBjbG91ZCB0byBPTkUgaW1hZ2VkIHNlY3Rpb24sIGJ5IGluZGV4IGludG8gdGhlIGRhdGFzZXQncyBzYW1wbGVkXG4gICAqIHNlY3Rpb25zOyBudWxsIGRyYXdzIGV2ZXJ5IHNlY3Rpb24uXG4gICAqXG4gICAqIFRoZSB3aG9sZSBjbG91ZCBpcyBhIHN0YWNrIG9mIGRpc2NzIHRoYXQgaGlkZXMgd2hhdGV2ZXIgaXMgZHJhd24gYmV0d2VlbiB0aGVtLlxuICAgKiBPbmUgc2VjdGlvbiBhdCBhIHRpbWUgaXMgdGhlIHZpZXcgdGhhdCBhbnN3ZXJzIFwiZG9lcyB0aGUgZXN0aW1hdGVkIGZpZWxkXG4gICAqIGFjdHVhbGx5IGZvbGxvdyB0aGUgY2VsbHMgSSBtZWFzdXJlZFwiIOKAlCBhbmQgaXQgaXMgb25seSBvZmZlcmVkIGZvciBkYXRhIHRoYXRcbiAgICogcmVhbGx5IGlzIHNlY3Rpb25lZCAoc2VlIGBzYW1wbGVkU2VjdGlvbnNgKS5cbiAgICovXG4gIHBvaW50U2VjdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIERyYXcgZWFjaCBjbHVzdGVyIGFzIGEgdHJhbnNsdWNlbnQgREVOU0lUWSB2b2x1bWUgYWxvbmdzaWRlIHRoZSAzRCBjbG91ZC5cbiAgICpcbiAgICogU2VyaWFsIHNlY3Rpb25zIGh1bmRyZWRzIG9mIG1pY3JvbnMgYXBhcnQgbWFrZSBhIGNsb3VkIGhhcmQgdG8gcmVhZCBhcyBhblxuICAgKiBhbmF0b21pY2FsIGRpc3RyaWJ1dGlvbiDigJQgdGhlIGV5ZSBjYW5ub3QgaW50ZWdyYXRlIGRpc2NzIGludG8gYSBzaGFwZS4gQVxuICAgKiBkZW5zaXR5IGZpZWxkIGNhbiBiZSBlc3RpbWF0ZWQgYmV0d2VlbiB0aGUgaW1hZ2VkIHBsYW5lcyAoYSBjb250aW51b3VzXG4gICAqIGVzdGltYXRlLCB1bmxpa2UgaW5kaXZpZHVhbCBjZWxscywgd2hpY2ggaGF2ZSBubyBjb3JyZXNwb25kZW5jZSB0b1xuICAgKiBpbnRlcnBvbGF0ZSBhbG9uZykgYW5kIHJlbmRlcnMgYXMgYSBjbG91ZCB0aGF0IHJlYWRzIGFzIGFuIGVzdGltYXRlLlxuICAgKi9cbiAgZGVuc2l0eVZvbHVtZTogYm9vbGVhbjtcbiAgLyoqIE11bHRpcGxpZXIgb24gdGhlIGRlZmF1bHQga2VybmVsIGJhbmR3aWR0aC4gQWJvdmUgMSBpcyBzbW9vdGhlciBhbmQgbGVzc1xuICAgKiAgY29tbWl0dGFsOyBiZWxvdyAxIGV4cG9zZXMgdGhlIGluZGl2aWR1YWwgc2VjdGlvbnMuICovXG4gIGRlbnNpdHlTbW9vdGhpbmc6IG51bWJlcjtcbiAgLyoqXG4gICAqIERyYXcgdGhlIGFjdGl2ZSBHRU5FIGFzIGEgY29udGludW91cyBmaWVsZCB1bmRlciB0aGUgb2JzZXJ2YXRpb25zICgyRCkuXG4gICAqXG4gICAqIENvbG91cmluZyB0aGUgbWFya2VycyBieSBhIGdlbmUgc2F5cyB3aGljaCBjZWxscyBleHByZXNzIGl0OyBpdCBjYW5ub3Qgc2F5XG4gICAqIHdoZXJlLCBiZWNhdXNlIHRoZSBleWUgd2lsbCBub3QgaW50ZWdyYXRlIHRob3VzYW5kcyBvZiBkb3RzIGludG8gYSB0ZXJyaXRvcnkuXG4gICAqIFRoZSBmaWVsZCBpcyBhbiBlc3RpbWF0ZSDigJQgYSBrZXJuZWwtd2VpZ2h0ZWQgbWVhbiBwZXIgY2VsbCwgdHJhbnNwYXJlbnQgd2hlcmVcbiAgICogbm8gY2VsbCB3YXMgbWVhc3VyZWQg4oCUIGFuZCBpdCBpcyBkcmF3biBiZW5lYXRoIHRoZSBjZWxscywgbm90IGluc3RlYWQgb2YgdGhlbSxcbiAgICogc28gdGhlIG1lYXN1cmVtZW50IHN0YXlzIG9uIHNjcmVlbiBuZXh0IHRvIHRoZSBpbnRlcnBvbGF0aW9uLlxuICAgKlxuICAgKiBJZ25vcmVkIHVubGVzcyB0aGUgY29sb3VyIHNvdXJjZSBpcyBhIGdlbmU6IHRoZXJlIGlzIG5vdGhpbmcgZWxzZSB0byBtYXAuXG4gICAqL1xuICBnZW5lTWFwOiBib29sZWFuO1xuICAvKipcbiAgICogUmVzdHJpY3QgdGhlIDNEIGdlbmUgbWFwIHRvIE9ORSBpbWFnZWQgc2VjdGlvbiwgYnkgaW5kZXggaW50byB0aGUgZGF0YXNldCdzXG4gICAqIHNhbXBsZWQgc2VjdGlvbnM7IG51bGwgZHJhd3MgZXZlcnkgc2VjdGlvbidzIHNoZWV0LlxuICAgKlxuICAgKiBTZXBhcmF0ZSBmcm9tIHtAbGluayBwb2ludFNlY3Rpb259IHNvIHRoZSBjb21iaW5hdGlvbnMgc3RheSBvcGVuOiBhbGwgdGhlXG4gICAqIHNoZWV0cyB3aXRoIG9uZSBzZWN0aW9uJ3MgY2VsbHMgb3ZlciB0aGVtIGlzIGEgdXNlZnVsIHZpZXcsIGFuZCBzbyBpcyBvbmVcbiAgICogc2hlZXQgaW5zaWRlIHRoZSB3aG9sZSBjbG91ZC4gSWdub3JlZCB3aGlsZSB7QGxpbmsgZ2VuZU1hcFZvbHVtZX0gaXMgc2V0IOKAlFxuICAgKiBpbnRlcnBvbGF0aW5nIGEgc2luZ2xlIHNlY3Rpb24gYWxvbmcgeiB3b3VsZCBzbWVhciBvbmUgc2xpZGUgdGhyb3VnaCB0aGVcbiAgICogc3BlY2ltZW4ncyB3aG9sZSBkZXB0aCBhbmQgY2FsbCBpdCBhbiBlc3RpbWF0ZS5cbiAgICovXG4gIGdlbmVNYXBTZWN0aW9uOiBudW1iZXIgfCBudWxsO1xuICAvKipcbiAgICogU21vb3RoIHRoZSBwZXItc2VjdGlvbiBnZW5lIG1hcHMgYWxvbmcgeiBpbnRvIGEgY29udGludW91cyBWT0xVTUUgKDNEKS5cbiAgICpcbiAgICogVGhlIHNoZWV0cyBhcmUgd2hhdCB3YXMgbWVhc3VyZWQg4oCUIG9uZSBmaWVsZCBwZXIgaW1hZ2VkIHNsaWRlLCB3aXRoIHRoZSBnYXBzXG4gICAqIGJldHdlZW4gdGhlbSBlbXB0eS4gVGhpcyB0dXJucyB0aGVtIGludG8gYW4gZXN0aW1hdGUgZGVmaW5lZCBiZXR3ZWVuIHRoZVxuICAgKiBzbGlkZXMsIHRoZSBzYW1lIG1vdmUgdGhlIGNsdXN0ZXIgZGVuc2l0eSB2b2x1bWVzIG1ha2UgYW5kIHdpdGggdGhlIHNhbWVcbiAgICogY2F2ZWF0OiBhIGZpZWxkIG1heSBiZSBpbnRlcnBvbGF0ZWQgYmV0d2VlbiBzZWN0aW9ucywgaW5kaXZpZHVhbCBjZWxscyBtYXlcbiAgICogbm90LCBhbmQgdGhlIHJlc3VsdCBpcyBkcmF3biBhcyBhIHRyYW5zbHVjZW50IGNsb3VkIHNvIGl0IGNhbm5vdCBiZSBtaXN0YWtlblxuICAgKiBmb3IgbWVhc3VyZW1lbnQuXG4gICAqL1xuICBnZW5lTWFwVm9sdW1lOiBib29sZWFuO1xuICAvKiogTXVsdGlwbGllciBvbiB0aGUgZ2VuZSBtYXAncyBrZXJuZWwgYmFuZHdpZHRoLiAqL1xuICBnZW5lTWFwU21vb3RoaW5nOiBudW1iZXI7XG4gIC8qKiBUaGUgZ2VuZSBtYXAncyBvd24gb3BhY2l0eS4gU2VwYXJhdGUgZnJvbSB7QGxpbmsgb3BhY2l0eX0sIHdoaWNoIGJlbG9uZ3MgdG9cbiAgICogIHRoZSBtYXJrZXJzOiB0dXJuaW5nIHRoZSBjZWxscyBkb3duIHRvIHJlYWQgdGhlIGZpZWxkIHVuZGVybmVhdGggbXVzdCBub3RcbiAgICogIHR1cm4gdGhlIGZpZWxkIGRvd24gd2l0aCB0aGVtLiAqL1xuICBnZW5lTWFwT3BhY2l0eTogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TUEFUSUFMX1ZJRVc6IFNwYXRpYWxWaWV3U3RhdGUgPSB7XG4gIGNvbG9yQnk6IG51bGwsXG4gIHBvaW50U2NhbGU6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIGxvZ1NjYWxlOiBmYWxzZSxcbiAgcGVyY2VudGlsZUNsaXA6IFswLjAxLCAwLjk5XSxcbiAgY29udGludW91c0NvbG9ybWFwOiBudWxsLFxuICBzaG93Vm9sdW1lOiB0cnVlLFxuICB2b2x1bWVPcGFjaXR5OiAwLjUsXG4gIHNob3dQb2ludHM6IHRydWUsXG4gIHBvaW50U2VjdGlvbjogbnVsbCxcbiAgZGVuc2l0eVZvbHVtZTogZmFsc2UsXG4gIGRlbnNpdHlTbW9vdGhpbmc6IDEsXG4gIGdlbmVNYXA6IGZhbHNlLFxuICBnZW5lTWFwU2VjdGlvbjogbnVsbCxcbiAgZ2VuZU1hcFZvbHVtZTogZmFsc2UsXG4gIGdlbmVNYXBTbW9vdGhpbmc6IDEsXG4gIGdlbmVNYXBPcGFjaXR5OiAwLjg1LFxufTtcbiJdfQ==
|
|
@@ -63,4 +63,4 @@ export const PLOT_MODE_SESSION = new InjectionToken('PLOT_MODE_SESSION');
|
|
|
63
63
|
export function contributedPlotTypeOption(d, base) {
|
|
64
64
|
return { ...d, source: base.source };
|
|
65
65
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQXNHckQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2xDLElBQUksY0FBYyxDQUFrQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2pGLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUMxRixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFhMUYsbUZBQW1GO0FBQ25GLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsQ0FBZ0MsRUFDaEMsSUFBd0I7SUFFeEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IGEgcGxvdCBtb2RlIGdldHMgaW50byB0aGUgcGxvdC10eXBlIHNlbGVjdG9yIHdpdGhvdXQgdGhpcyBsaWJyYXJ5IGtub3dpbmdcbiAqIHdoYXQgaXQgaXMuXG4gKlxuICogQSBwYWNrYWdlIGNvbnRyaWJ1dGVzIGEgbW9kZSBieSBwcm92aWRpbmcgYSB7QGxpbmsgUGxvdFR5cGVDb250cmlidXRpb259IG9uIHRoZVxuICoge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBtdWx0aS1wcm92aWRlciB0b2tlbiwgdGhlIHNhbWUgd2F5XG4gKiBgVE9PTEJBUl9UT09MU2AgY29udHJpYnV0ZXMgdG9vbGJhciB0b29scy4gTm90aGluZyByZWdpc3RlcnMgYXQgaW1wb3J0IHRpbWU6XG4gKiBpbnN0YWxsaW5nIGEgcGFja2FnZSBtYWtlcyBhIG1vZGUgYXZhaWxhYmxlLCBhbmQgYWRkaW5nIGl0cyBwcm92aWRlciB0dXJucyBpdFxuICogb24uIEEgcGxhaW4gb2JqZWN0IHdvcmtzLCBzbyB0aGUgY29udHJpYnV0aW5nIHBhY2thZ2UgbmVlZHMgbm8gQW5ndWxhclxuICogY29tcGlsZXIgYW5kIG5vIGRlY29yYXRvcnM6XG4gKlxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZVZhbHVlOiBteUNvbnRyaWJ1dGlvbiwgbXVsdGk6IHRydWUgfVxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZUZhY3Rvcnk6ICgpID0+IG1ha2VDb250cmlidXRpb24oKSwgbXVsdGk6IHRydWUgfVxuICpcbiAqIFByb3ZpZGUgbm90aGluZyBhbmQgdGhlIHNlbGVjdG9yLCB0aGUgcmVuZGVyIHBhdGggYW5kIHRoZSBwYW5lbCBhcmVhIGJlaGF2ZVxuICogZXhhY3RseSBhcyB0aGV5IGRpZCBiZWZvcmUgdGhpcyBleHRlbnNpb24gcG9pbnQgZXhpc3RlZC5cbiAqXG4gKiBXSFkgQSBDT05UUklCVVRFRCBNT0RFIFJJREVTIE9OIEEgQlVJTFQtSU4gT05FXG4gKiBBIGNvbnRyaWJ1dGVkIG1vZGUgZG9lcyBub3QgYnJpbmcgYSByZW5kZXJlci4gSXQgbmFtZXMgYSBidWlsdC1pblxuICoge0BsaW5rIENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yLmJhc2VUeXBlfSDigJQgaW4gdjEgb25seSBgUGxvdFR5cGUuSU1BR0VgLFxuICogdGhlIE9wZW5TZWFkcmFnb24gdmlldyDigJQgYW5kIHRoZSB2aXN1YWxpemVyIHBsb3RzIGV4YWN0bHkgYXMgaWYgdGhhdCB0eXBlIGhhZFxuICogYmVlbiBzZWxlY3RlZDogc2FtZSBiYWNrZW5kLCBzYW1lIHRvb2xiYXIsIHNhbWUgcmVnaW9uIHRvb2xzLCBzYW1lIHdoZWVsXG4gKiBoYW5kbGluZy4gVGhlIGNvbnRyaWJ1dGlvbiB0aGVuIGRyYXdzIG92ZXIgaXQgdGhyb3VnaCB0aGVcbiAqIHtAbGluayBQbG90TW9kZVZpZXdwb3J0fSBhbmQgdGFsa3MgdG8gdGhlIHZpZXdlciB0aHJvdWdoIHRoZSBwdWJsaWNcbiAqIHtAbGluayBJVmlzdWFsaXplcn0uIFRoYXQga2VlcHMgZXZlcnkgcmVuZGVyaW5nIGRlY2lzaW9uIGluIG9uZSBwbGFjZSBhbmQgbWVhbnNcbiAqIGEgY29udHJpYnV0aW9uIGNhbiBuZXZlciBiZSBoYWxmLXN1cHBvcnRlZCBieSBzb21lIGNvZGUgcGF0aCB0aGF0IHN3aXRjaGVzIG9uXG4gKiB0aGUgcGxvdCB0eXBlLlxuICpcbiAqIFdIQVQgVEhFIFZJU1VBTElaRVIgR1VBUkFOVEVFU1xuICogIDEuIENvbnRyaWJ1dGVkIGRlc2NyaXB0b3JzIGFyZSBhcHBlbmRlZCBhZnRlciB0aGUgYnVpbHQtaW4gb25lcyBhbmQgY3VyYXRlZCBieVxuICogICAgIHRoZSBzYW1lIGBwcm9kdWN0aW9uTGFiZWxgIC8gdGVzdC1tb2RlIC8gYHJlcXVpcmVzKmAgcnVsZXMuXG4gKiAgMi4gU2VsZWN0aW5nIG9uZSBwbG90cyB3aXRoIGBiYXNlVHlwZWAncyBiYWNrZW5kLCB0aGVuIGNhbGxzIGBhY3RpdmF0ZShjdHgpYFxuICogICAgIG9uY2UgdGhlIHZpZXdwb3J0IGlzIHJlYWR5LlxuICogIDMuIExlYXZpbmcgdGhlIG1vZGUg4oCUIGFub3RoZXIgdHlwZSwgYW4gaW1hZ2Ugc3dpdGNoIChvciBhbnkgcmUtcmVuZGVyIG9mIHRoZVxuICogICAgIGJhc2UgdmlldyksIG9yIHRoZSB2aXN1YWxpemVyIGJlaW5nIGRlc3Ryb3llZCDigJQgY2FsbHMgYHNlc3Npb24uZGVhY3RpdmF0ZSgpYFxuICogICAgIGV4YWN0bHkgb25jZSwgYmVmb3JlIHRoZSBuZXh0IG1vZGUgZHJhd3MuIElmIHRoZSBtb2RlIGlzIHN0aWxsIHNlbGVjdGVkXG4gKiAgICAgd2hlbiB0aGUgbmV3IGltYWdlIGhhcyBwbG90dGVkLCBhIGZyZXNoIHNlc3Npb24gaXMgYWN0aXZhdGVkIGZvciBpdC5cbiAqICA0LiBgcGFuZWxgIGlzIHNob3duIG9ubHkgd2hpbGUgYSBzZXNzaW9uIGlzIGxpdmUuXG4gKiAgNS4gQSB0aHJvd24gZXJyb3Igb3IgcmVqZWN0ZWQgcHJvbWlzZSBmcm9tIGBhY3RpdmF0ZWAsIGBkZWFjdGl2YXRlYCwgYG1vdW50YFxuICogICAgIG9yIGEgbW91bnQncyB0ZWFyZG93biBpcyBjYXVnaHQgYW5kIGxvZ2dlZDsgbm9uZSBlc2NhcGVzLCBzbyBhIGNvbnRyaWJ1dGlvblxuICogICAgIGNhbm5vdCBicmVhayB0aGUgdmlld2VyLiBGYWlsaW5nIHRvIHN0YXJ0IChgYWN0aXZhdGVgLCBgbW91bnRgLCBvciBhIHBhbmVsXG4gKiAgICAgY29tcG9uZW50IHRocm93aW5nIHdoaWxlIGl0IGlzIGNyZWF0ZWQgLyBmaXJzdCByZW5kZXJlZCkgZmFsbHMgYmFja1xuICogICAgIHRvIGBiYXNlVHlwZWAuIEZhaWxpbmcgdG8gY2xlYW4gdXAgZmFsbHMgYmFjayB3aGVuIHRoYXQgc2FtZSBtb2RlIGlzIGJlaW5nXG4gKiAgICAgcmUtYWN0aXZhdGVkIChiYXNlIHJlLXJlbmRlciwgaW1hZ2Ugc3dpdGNoKSDigJQgaW1tZWRpYXRlbHkgaWYgaXQgYWxyZWFkeSBpc1xuICogICAgIGxpdmUgYWdhaW4g4oCUIGFuZCBpcyBvbmx5IGxvZ2dlZCB3aGVuIHRoZSB1c2VyIGhhcyBtb3ZlZCB0byBhbm90aGVyIG1vZGU7IHRoZVxuICogICAgIHVzZXIgZXhwbGljaXRseSBzZWxlY3RpbmcgaXQgYWdhaW4gZ2V0cyBhIGZyZXNoIGF0dGVtcHQuXG4gKiAgNi4ge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBoYXMgbm8gZmFjdG9yeTogbm8gcHJvdmlkZXJzLCBubyBtb2Rlcy5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IElJbWFnZUluZm8gfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHsgUGxvdFR5cGUsIFBsb3RUeXBlRGVzY3JpcHRvciwgUGxvdFR5cGVJZCB9IGZyb20gJy4vcGxvdC10eXBlJztcbmltcG9ydCB0eXBlIHsgSVZpc3VhbGl6ZXIgfSBmcm9tICcuL3Zpc3VhbGl6ZXIuY29udHJhY3QnO1xuXG4vKiogQSByZWN0YW5nbGUgaW4gbGV2ZWwtMCBpbWFnZSBwaXhlbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuLyoqIFNlbGVjdG9yIG1ldGFkYXRhIGZvciBhIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3Ige1xuICAvKiogVW5pcXVlIGlkLCBuYW1lc3BhY2VkLCBlLmcuICdkaWFubmUnLiBNdXN0IG5vdCBjbGFzaCB3aXRoIFBsb3RUeXBlIHZhbHVlcy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICAvKiogVGVzdC1tb2RlIGxhYmVsLCBlLmcuICdEaWdpdGFsIFBhdGhvbG9neSAtIERJQU5ORScuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0LXNlbGVjdG9yIGxhYmVsOyBvbWl0IHRvIG1ha2UgdGhlIG1vZGUgdGVzdC1vbmx5IChzYW1lIHJ1bGUgYXMgYnVpbHQtaW5zKS4gKi9cbiAgcHJvZHVjdGlvbkxhYmVsPzogc3RyaW5nO1xuICAvKiogJ3BpIHBpLeKApicgY2xhc3Mgb3IgYXNzZXQgcGF0aCwgc2FtZSBhcyBQbG90VHlwZURlc2NyaXB0b3IuaWNvbi4gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEFsd2F5cyAnMmQnIGluIHYxLiAqL1xuICBkaW1lbnNpb25zOiAnMmQnO1xuICAvKiogQnVpbHQtaW4gdHlwZSB3aG9zZSBiYWNrZW5kIHJlbmRlcnMgdGhlIGJhc2UgaW1hZ2UuIHYxIHN1cHBvcnRzIFBsb3RUeXBlLklNQUdFIChPU0QpLiAqL1xuICBiYXNlVHlwZTogUGxvdFR5cGU7XG4gIC8qKiBTYW1lIGdhdGVzIGFzIFBsb3RUeXBlRGVzY3JpcHRvciwgZXZhbHVhdGVkIGluIGFkZGl0aW9uIHRvIHRoZSBiYXNlIHR5cGUncyBvd24uICovXG4gIHJlcXVpcmVzR3JheXNjYWxlPzogYm9vbGVhbjtcbiAgcmVxdWlyZXNTdGFjaz86IGJvb2xlYW47XG4gIC8qKiBIaWRkZW4gdW50aWwgYSBgU3BhdGlhbERhdGFzZXRgIGlzIHB1Ymxpc2hlZCBvbiBTUEFUSUFMX0RBVEFfUE9SVCAoYW4gb3ZlcmxheSBvZiBzcGF0aWFsIG9ic2VydmF0aW9ucykuICovXG4gIHJlcXVpcmVzU3BhdGlhbERhdGE/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIHVubGVzcyB0aGUgcHVibGlzaGVkIGRhdGFzZXQgY2FycmllcyBgb2JzZXJ2YXRpb25zLnpgLiAqL1xuICByZXF1aXJlc1NwYXRpYWwzZD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgYmFzZSB2aWV3J3Mgdmlld3BvcnQsIGFzIGEgY29udHJpYnV0ZWQgbW9kZSBzZWVzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVZpZXdwb3J0IHtcbiAgLyoqIEVsZW1lbnQgdGhlIG1vZGUncyBvdmVybGF5IGNhbnZhcy9TVkcgYXR0YWNoZXMgdG87IGZpbGxzIHRoZSBwbG90IGFyZWEuICovXG4gIGdldE92ZXJsYXlDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAvKiogTGV2ZWwtMCBpbWFnZSBweCAtPiBjbGllbnQgcHgsIGFuZCB0aGUgcmV2ZXJzZS4gKi9cbiAgZGF0YVRvQ2xpZW50KHg6IG51bWJlciwgeTogbnVtYmVyKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBjbGllbnRUb0RhdGEoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIC8qKiBTY3JlZW4gcHggcGVyIGltYWdlIHB4IGF0IHRoZSBjdXJyZW50IHpvb20uICovXG4gIGRhdGFMZW5ndGhUb1NjcmVlbihsZW46IG51bWJlcik6IG51bWJlcjtcbiAgaXNSZWFkeSgpOiBib29sZWFuO1xuICAvKiogVmlzaWJsZSBpbWFnZSByZWN0IGluIGxldmVsLTAgcHgsIGVtaXR0ZWQgb24gZXZlcnkgcmVkcmF3IGZyYW1lIChwYW4vem9vbSBhbmltYXRpb24pLlxuICAgKiAgQSBuZXcgc3Vic2NyaWJlciBmaXJzdCByZWNlaXZlcyB0aGUgY3VycmVudCByZWN0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIHJlYWR5LiAqL1xuICBmcmFtZSQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0PjtcbiAgLyoqIFNhbWUgcmVjdCwgZW1pdHRlZCBvbmNlIHRoZSB2aWV3cG9ydCBzZXR0bGVzIChleGlzdGluZyBnZXRWaWV3cG9ydENoYW5nZSQgc2VtYW50aWNzKS5cbiAgICogIEEgbmV3IHN1YnNjcmliZXIgZmlyc3QgcmVjZWl2ZXMgdGhlIGN1cnJlbnQgcmVjdCB3aGVuIHRoZSB2aWV3cG9ydCBpcyByZWFkeS4gKi9cbiAgc2V0dGxlZCQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0Pjtcbn1cblxuLyoqIEV2ZXJ5dGhpbmcgYSBjb250cmlidXRlZCBtb2RlIGdldHMgdG8gd29yayB3aXRoIHdoaWxlIGl0IGlzIGFjdGl2ZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVDb250ZXh0IHtcbiAgLyoqIEZ1bGwgcHVibGljIHZpc3VhbGl6ZXIgQVBJOiByZWdpb25zLCByZWdpb24gb3ZlcmxheSAodG9vbCBtb2RlcyksIHVuZG8sIGV0Yy4gKi9cbiAgdmlzdWFsaXplcjogSVZpc3VhbGl6ZXI7XG4gIHZpZXdwb3J0OiBQbG90TW9kZVZpZXdwb3J0O1xuICAvKiogQ3VycmVudCBpbWFnZSBpbmZvIGZyb20gSU1BR0VfU1RBVEVfUE9SVCAobnVsbCB1bnRpbCBhbiBpbWFnZSBpcyBsb2FkZWQpLiAqL1xuICBpbWFnZUluZm8kOiBPYnNlcnZhYmxlPElJbWFnZUluZm8gfCBudWxsPjtcbn1cblxuLyoqIEEgbGl2ZSBhY3RpdmF0aW9uIG9mIGEgY29udHJpYnV0ZWQgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVTZXNzaW9uIHtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIGxlYXZlcyB0aGUgbW9kZSwgdGhlIGltYWdlIGNoYW5nZXMsIG9yIHRoZSB2aXN1YWxpemVyIGlzIGRlc3Ryb3llZC4gKi9cbiAgZGVhY3RpdmF0ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBtb2RlJ3Mgc2lkZSBwYW5lbCwgc2hvd24gaW4gdGhlIHZpc3VhbGl6ZXIncyByaWdodC1oYW5kIHBhbmVsIGFyZWEgd2hpbGVcbiAqIGEgc2Vzc2lvbiBpcyBsaXZlLiBUd28gZm9ybXM6XG4gKlxuICogIC0gYGNvbXBvbmVudGA6IGFuIEFuZ3VsYXIgY29tcG9uZW50LCByZW5kZXJlZCB0aHJvdWdoIGBOZ0NvbXBvbmVudE91dGxldGBcbiAqICAgIHdpdGgge0BsaW5rIFBMT1RfTU9ERV9DT05URVhUfSBhbmQge0BsaW5rIFBMT1RfTU9ERV9TRVNTSU9OfSBpbiBpdHNcbiAqICAgIGluamVjdG9yLiBOZWVkcyBhbiBBT1QtY29tcGlsZWQgKHBhcnRpYWwtSXZ5KSBjb21wb25lbnQuXG4gKiAgLSBgbW91bnRgOiBmcmFtZXdvcmstYWdub3N0aWMuIFRoZSB2aXN1YWxpemVyIGhhbmRzIG92ZXIgYW4gZW1wdHkgaG9zdFxuICogICAgZWxlbWVudCBhZnRlciBgYWN0aXZhdGVgIHJlc29sdmVzOyB0aGUgZnVuY3Rpb24gcmVuZGVycyBpbnRvIGl0IGFuZCByZXR1cm5zXG4gKiAgICBhIHRlYXJkb3duLiBUaGUgdGVhcmRvd24gaXMgY2FsbGVkIGV4YWN0bHkgb25jZSB3aGVuIHRoZSBtb2RlIGRlYWN0aXZhdGVzLFxuICogICAgYmVmb3JlIGBzZXNzaW9uLmRlYWN0aXZhdGUoKWAsIGFuZCB0aGUgaG9zdCBlbGVtZW50IGlzIHRoZW4gcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IHR5cGUgUGxvdE1vZGVQYW5lbCA9XG4gIHwgeyB0aXRsZTogc3RyaW5nOyBjb21wb25lbnQ6IFR5cGU8dW5rbm93bj4gfVxuICB8IHtcbiAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICBtb3VudChob3N0OiBIVE1MRWxlbWVudCwgY3R4OiBQbG90TW9kZUNvbnRleHQsIHNlc3Npb246IFBsb3RNb2RlU2Vzc2lvbik6ICgpID0+IHZvaWQ7XG4gICAgfTtcblxuLyoqIEEgcGxvdCBtb2RlIGNvbnRyaWJ1dGVkIHRvIHRoZSBzZWxlY3Rvci4gQSBwbGFpbiBvYmplY3QgaXMgZW5vdWdoLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90VHlwZUNvbnRyaWJ1dGlvbiB7XG4gIGRlc2NyaXB0b3I6IENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yO1xuICAvKiogQ2FsbGVkIGFmdGVyIHRoZSBiYXNlIGJhY2tlbmQgaGFzIHBsb3R0ZWQgdGhlIGltYWdlIGluIHRoaXMgbW9kZS4gKi9cbiAgYWN0aXZhdGUoY3R4OiBQbG90TW9kZUNvbnRleHQpOiBQbG90TW9kZVNlc3Npb24gfCBQcm9taXNlPFBsb3RNb2RlU2Vzc2lvbj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBzaWRlIHBhbmVsLCByZW5kZXJlZCBpbiB0aGUgdmlzdWFsaXplcidzIHJpZ2h0LWhhbmQgcGFuZWwgYXJlYSB3aGlsZSB0aGVcbiAgICogbW9kZSBpcyBhY3RpdmUuIEEgY29tcG9uZW50IHBhbmVsIGNhbiBpbmplY3QgUExPVF9NT0RFX0NPTlRFWFQgYW5kIFBMT1RfTU9ERV9TRVNTSU9OLlxuICAgKi9cbiAgcGFuZWw/OiBQbG90TW9kZVBhbmVsO1xufVxuXG4vKipcbiAqIE11bHRpLXByb3ZpZGVyIHRva2VuIGZvciBjb250cmlidXRlZCBwbG90IG1vZGVzLlxuICpcbiAqIERlbGliZXJhdGVseSBoYXMgbm8gYGZhY3RvcnlgOiB1bnJlZ2lzdGVyZWQgbWVhbnMgbm8gY29udHJpYnV0ZWQgbW9kZXMsIGFuZCB0aGVcbiAqIGxpYnJhcnkgYmVoYXZlcyBleGFjdGx5IGFzIGJlZm9yZS4gVGhlIHZpc3VhbGl6ZXIgaW5qZWN0cyBpdCBgeyBvcHRpb25hbDogdHJ1ZSB9YFxuICogYW5kIHRyZWF0cyBudWxsIGFzIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgUExPVF9UWVBFX0NPTlRSSUJVVElPTlMgPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48cmVhZG9ubHkgUGxvdFR5cGVDb250cmlidXRpb25bXT4oJ1BMT1RfVFlQRV9DT05UUklCVVRJT05TJyk7XG4vKiogVGhlIGFjdGl2ZSBtb2RlJ3MgY29udGV4dCwgaW4gYSBjb21wb25lbnQgcGFuZWwncyBpbmplY3Rvci4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX01PREVfQ09OVEVYVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQbG90TW9kZUNvbnRleHQ+KCdQTE9UX01PREVfQ09OVEVYVCcpO1xuLyoqIFRoZSBhY3RpdmUgbW9kZSdzIHNlc3Npb24sIGluIGEgY29tcG9uZW50IHBhbmVsJ3MgaW5qZWN0b3IuICovXG5leHBvcnQgY29uc3QgUExPVF9NT0RFX1NFU1NJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48UGxvdE1vZGVTZXNzaW9uPignUExPVF9NT0RFX1NFU1NJT04nKTtcblxuLyoqXG4gKiBPbmUgZW50cnkgaW4gdGhlIHBsb3QtdHlwZSBzZWxlY3RvcjogYSBidWlsdC1pbiB7QGxpbmsgUGxvdFR5cGVEZXNjcmlwdG9yfVxuICogYXMtaXMsIG9yIGEgY29udHJpYnV0ZWQgZGVzY3JpcHRvciBjb21wbGV0ZWQgd2l0aCBpdHMgYmFzZSB0eXBlJ3MgYHNvdXJjZWAuXG4gKiBFdmVyeSBlbnRyeSB0aGVyZWZvcmUgY2FycmllcyB0aGUgc2FtZSBmaWVsZHMgdGhlIHNlbGVjdG9yIGN1cmF0ZXMgYnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdFR5cGVPcHRpb24gZXh0ZW5kcyBPbWl0PFBsb3RUeXBlRGVzY3JpcHRvciwgJ3R5cGUnPiB7XG4gIHR5cGU6IFBsb3RUeXBlSWQ7XG4gIC8qKiBTZXQgb25seSBmb3IgYSBjb250cmlidXRlZCBtb2RlOiB0aGUgYnVpbHQtaW4gdHlwZSB0aGF0IHJlbmRlcnMgaXQuICovXG4gIGJhc2VUeXBlPzogUGxvdFR5cGU7XG59XG5cbi8qKiBUaGUgc2VsZWN0b3IgZW50cnkgZm9yIGEgY29udHJpYnV0ZWQgbW9kZSwgZ2l2ZW4gaXRzIGJhc2UgdHlwZSdzIGRlc2NyaXB0b3IuICovXG5leHBvcnQgZnVuY3Rpb24gY29udHJpYnV0ZWRQbG90VHlwZU9wdGlvbihcbiAgZDogQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3IsXG4gIGJhc2U6IFBsb3RUeXBlRGVzY3JpcHRvcixcbik6IFBsb3RUeXBlT3B0aW9uIHtcbiAgcmV0dXJuIHsgLi4uZCwgc291cmNlOiBiYXNlLnNvdXJjZSB9O1xufVxuIl19
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQW1JckQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2xDLElBQUksY0FBYyxDQUFrQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2pGLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUMxRixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFhMUYsbUZBQW1GO0FBQ25GLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsQ0FBZ0MsRUFDaEMsSUFBd0I7SUFFeEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IGEgcGxvdCBtb2RlIGdldHMgaW50byB0aGUgcGxvdC10eXBlIHNlbGVjdG9yIHdpdGhvdXQgdGhpcyBsaWJyYXJ5IGtub3dpbmdcbiAqIHdoYXQgaXQgaXMuXG4gKlxuICogQSBwYWNrYWdlIGNvbnRyaWJ1dGVzIGEgbW9kZSBieSBwcm92aWRpbmcgYSB7QGxpbmsgUGxvdFR5cGVDb250cmlidXRpb259IG9uIHRoZVxuICoge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBtdWx0aS1wcm92aWRlciB0b2tlbiwgdGhlIHNhbWUgd2F5XG4gKiBgVE9PTEJBUl9UT09MU2AgY29udHJpYnV0ZXMgdG9vbGJhciB0b29scy4gTm90aGluZyByZWdpc3RlcnMgYXQgaW1wb3J0IHRpbWU6XG4gKiBpbnN0YWxsaW5nIGEgcGFja2FnZSBtYWtlcyBhIG1vZGUgYXZhaWxhYmxlLCBhbmQgYWRkaW5nIGl0cyBwcm92aWRlciB0dXJucyBpdFxuICogb24uIEEgcGxhaW4gb2JqZWN0IHdvcmtzLCBzbyB0aGUgY29udHJpYnV0aW5nIHBhY2thZ2UgbmVlZHMgbm8gQW5ndWxhclxuICogY29tcGlsZXIgYW5kIG5vIGRlY29yYXRvcnM6XG4gKlxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZVZhbHVlOiBteUNvbnRyaWJ1dGlvbiwgbXVsdGk6IHRydWUgfVxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZUZhY3Rvcnk6ICgpID0+IG1ha2VDb250cmlidXRpb24oKSwgbXVsdGk6IHRydWUgfVxuICpcbiAqIFByb3ZpZGUgbm90aGluZyBhbmQgdGhlIHNlbGVjdG9yLCB0aGUgcmVuZGVyIHBhdGggYW5kIHRoZSBwYW5lbCBhcmVhIGJlaGF2ZVxuICogZXhhY3RseSBhcyB0aGV5IGRpZCBiZWZvcmUgdGhpcyBleHRlbnNpb24gcG9pbnQgZXhpc3RlZC5cbiAqXG4gKiBXSFkgQSBDT05UUklCVVRFRCBNT0RFIFJJREVTIE9OIEEgQlVJTFQtSU4gT05FXG4gKiBBIGNvbnRyaWJ1dGVkIG1vZGUgZG9lcyBub3QgYnJpbmcgYSByZW5kZXJlci4gSXQgbmFtZXMgYSBidWlsdC1pblxuICoge0BsaW5rIENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yLmJhc2VUeXBlfSDigJQgaW4gdjEgb25seSBgUGxvdFR5cGUuSU1BR0VgLFxuICogdGhlIE9wZW5TZWFkcmFnb24gdmlldyDigJQgYW5kIHRoZSB2aXN1YWxpemVyIHBsb3RzIGV4YWN0bHkgYXMgaWYgdGhhdCB0eXBlIGhhZFxuICogYmVlbiBzZWxlY3RlZDogc2FtZSBiYWNrZW5kLCBzYW1lIHRvb2xiYXIsIHNhbWUgcmVnaW9uIHRvb2xzLCBzYW1lIHdoZWVsXG4gKiBoYW5kbGluZy4gVGhlIGNvbnRyaWJ1dGlvbiB0aGVuIGRyYXdzIG92ZXIgaXQgdGhyb3VnaCB0aGVcbiAqIHtAbGluayBQbG90TW9kZVZpZXdwb3J0fSBhbmQgdGFsa3MgdG8gdGhlIHZpZXdlciB0aHJvdWdoIHRoZSBwdWJsaWNcbiAqIHtAbGluayBJVmlzdWFsaXplcn0uIFRoYXQga2VlcHMgZXZlcnkgcmVuZGVyaW5nIGRlY2lzaW9uIGluIG9uZSBwbGFjZSBhbmQgbWVhbnNcbiAqIGEgY29udHJpYnV0aW9uIGNhbiBuZXZlciBiZSBoYWxmLXN1cHBvcnRlZCBieSBzb21lIGNvZGUgcGF0aCB0aGF0IHN3aXRjaGVzIG9uXG4gKiB0aGUgcGxvdCB0eXBlLlxuICpcbiAqIFdIQVQgVEhFIFZJU1VBTElaRVIgR1VBUkFOVEVFU1xuICogIDEuIENvbnRyaWJ1dGVkIGRlc2NyaXB0b3JzIGFyZSBhcHBlbmRlZCBhZnRlciB0aGUgYnVpbHQtaW4gb25lcyBhbmQgY3VyYXRlZCBieVxuICogICAgIHRoZSBzYW1lIGBwcm9kdWN0aW9uTGFiZWxgIC8gdGVzdC1tb2RlIC8gYHJlcXVpcmVzKmAgcnVsZXMuXG4gKiAgMi4gU2VsZWN0aW5nIG9uZSBwbG90cyB3aXRoIGBiYXNlVHlwZWAncyBiYWNrZW5kLCB0aGVuIGNhbGxzIGBhY3RpdmF0ZShjdHgpYFxuICogICAgIG9uY2UgdGhlIHZpZXdwb3J0IGlzIHJlYWR5LlxuICogIDMuIExlYXZpbmcgdGhlIG1vZGUg4oCUIGFub3RoZXIgdHlwZSwgYW4gaW1hZ2Ugc3dpdGNoIChvciBhbnkgcmUtcmVuZGVyIG9mIHRoZVxuICogICAgIGJhc2UgdmlldyksIG9yIHRoZSB2aXN1YWxpemVyIGJlaW5nIGRlc3Ryb3llZCDigJQgY2FsbHMgYHNlc3Npb24uZGVhY3RpdmF0ZSgpYFxuICogICAgIGV4YWN0bHkgb25jZSwgYmVmb3JlIHRoZSBuZXh0IG1vZGUgZHJhd3MuIElmIHRoZSBtb2RlIGlzIHN0aWxsIHNlbGVjdGVkXG4gKiAgICAgd2hlbiB0aGUgbmV3IGltYWdlIGhhcyBwbG90dGVkLCBhIGZyZXNoIHNlc3Npb24gaXMgYWN0aXZhdGVkIGZvciBpdC5cbiAqICA0LiBgcGFuZWxgIGlzIHNob3duIG9ubHkgd2hpbGUgYSBzZXNzaW9uIGlzIGxpdmUuXG4gKiAgNS4gQSB0aHJvd24gZXJyb3Igb3IgcmVqZWN0ZWQgcHJvbWlzZSBmcm9tIGBhY3RpdmF0ZWAsIGBkZWFjdGl2YXRlYCwgYG1vdW50YFxuICogICAgIG9yIGEgbW91bnQncyB0ZWFyZG93biBpcyBjYXVnaHQgYW5kIGxvZ2dlZDsgbm9uZSBlc2NhcGVzLCBzbyBhIGNvbnRyaWJ1dGlvblxuICogICAgIGNhbm5vdCBicmVhayB0aGUgdmlld2VyLiBGYWlsaW5nIHRvIHN0YXJ0IChgYWN0aXZhdGVgLCBgbW91bnRgLCBvciBhIHBhbmVsXG4gKiAgICAgY29tcG9uZW50IHRocm93aW5nIHdoaWxlIGl0IGlzIGNyZWF0ZWQgLyBmaXJzdCByZW5kZXJlZCkgZmFsbHMgYmFja1xuICogICAgIHRvIGBiYXNlVHlwZWAuIEZhaWxpbmcgdG8gY2xlYW4gdXAgZmFsbHMgYmFjayB3aGVuIHRoYXQgc2FtZSBtb2RlIGlzIGJlaW5nXG4gKiAgICAgcmUtYWN0aXZhdGVkIChiYXNlIHJlLXJlbmRlciwgaW1hZ2Ugc3dpdGNoKSDigJQgaW1tZWRpYXRlbHkgaWYgaXQgYWxyZWFkeSBpc1xuICogICAgIGxpdmUgYWdhaW4g4oCUIGFuZCBpcyBvbmx5IGxvZ2dlZCB3aGVuIHRoZSB1c2VyIGhhcyBtb3ZlZCB0byBhbm90aGVyIG1vZGU7IHRoZVxuICogICAgIHVzZXIgZXhwbGljaXRseSBzZWxlY3RpbmcgaXQgYWdhaW4gZ2V0cyBhIGZyZXNoIGF0dGVtcHQuXG4gKiAgNi4ge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBoYXMgbm8gZmFjdG9yeTogbm8gcHJvdmlkZXJzLCBubyBtb2Rlcy5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IElJbWFnZUluZm8gfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHsgUGxvdFR5cGUsIFBsb3RUeXBlRGVzY3JpcHRvciwgUGxvdFR5cGVJZCB9IGZyb20gJy4vcGxvdC10eXBlJztcbmltcG9ydCB0eXBlIHsgSVZpc3VhbGl6ZXIgfSBmcm9tICcuL3Zpc3VhbGl6ZXIuY29udHJhY3QnO1xuXG4vKiogQSByZWN0YW5nbGUgaW4gbGV2ZWwtMCBpbWFnZSBwaXhlbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuLyoqIFNlbGVjdG9yIG1ldGFkYXRhIGZvciBhIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3Ige1xuICAvKiogVW5pcXVlIGlkLCBuYW1lc3BhY2VkLCBlLmcuICdkaWFubmUnLiBNdXN0IG5vdCBjbGFzaCB3aXRoIFBsb3RUeXBlIHZhbHVlcy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICAvKiogVGVzdC1tb2RlIGxhYmVsLCBlLmcuICdEaWdpdGFsIFBhdGhvbG9neSAtIERJQU5ORScuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0LXNlbGVjdG9yIGxhYmVsOyBvbWl0IHRvIG1ha2UgdGhlIG1vZGUgdGVzdC1vbmx5IChzYW1lIHJ1bGUgYXMgYnVpbHQtaW5zKS4gKi9cbiAgcHJvZHVjdGlvbkxhYmVsPzogc3RyaW5nO1xuICAvKiogJ3BpIHBpLeKApicgY2xhc3Mgb3IgYXNzZXQgcGF0aCwgc2FtZSBhcyBQbG90VHlwZURlc2NyaXB0b3IuaWNvbi4gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEFsd2F5cyAnMmQnIGluIHYxLiAqL1xuICBkaW1lbnNpb25zOiAnMmQnO1xuICAvKiogQnVpbHQtaW4gdHlwZSB3aG9zZSBiYWNrZW5kIHJlbmRlcnMgdGhlIGJhc2UgaW1hZ2UuIHYxIHN1cHBvcnRzIFBsb3RUeXBlLklNQUdFIChPU0QpLiAqL1xuICBiYXNlVHlwZTogUGxvdFR5cGU7XG4gIC8qKiBTYW1lIGdhdGVzIGFzIFBsb3RUeXBlRGVzY3JpcHRvciwgZXZhbHVhdGVkIGluIGFkZGl0aW9uIHRvIHRoZSBiYXNlIHR5cGUncyBvd24uICovXG4gIHJlcXVpcmVzR3JheXNjYWxlPzogYm9vbGVhbjtcbiAgcmVxdWlyZXNTdGFjaz86IGJvb2xlYW47XG4gIC8qKiBIaWRkZW4gdW50aWwgYSBgU3BhdGlhbERhdGFzZXRgIGlzIHB1Ymxpc2hlZCBvbiBTUEFUSUFMX0RBVEFfUE9SVCAoYW4gb3ZlcmxheSBvZiBzcGF0aWFsIG9ic2VydmF0aW9ucykuICovXG4gIHJlcXVpcmVzU3BhdGlhbERhdGE/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIHVubGVzcyB0aGUgcHVibGlzaGVkIGRhdGFzZXQgY2FycmllcyBgb2JzZXJ2YXRpb25zLnpgLiAqL1xuICByZXF1aXJlc1NwYXRpYWwzZD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgYmFzZSB2aWV3J3Mgdmlld3BvcnQsIGFzIGEgY29udHJpYnV0ZWQgbW9kZSBzZWVzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVZpZXdwb3J0IHtcbiAgLyoqIEVsZW1lbnQgdGhlIG1vZGUncyBvdmVybGF5IGNhbnZhcy9TVkcgYXR0YWNoZXMgdG87IGZpbGxzIHRoZSBwbG90IGFyZWEuICovXG4gIGdldE92ZXJsYXlDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAvKiogTGV2ZWwtMCBpbWFnZSBweCAtPiBjbGllbnQgcHgsIGFuZCB0aGUgcmV2ZXJzZS4gKi9cbiAgZGF0YVRvQ2xpZW50KHg6IG51bWJlciwgeTogbnVtYmVyKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBjbGllbnRUb0RhdGEoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIC8qKiBTY3JlZW4gcHggcGVyIGltYWdlIHB4IGF0IHRoZSBjdXJyZW50IHpvb20uICovXG4gIGRhdGFMZW5ndGhUb1NjcmVlbihsZW46IG51bWJlcik6IG51bWJlcjtcbiAgaXNSZWFkeSgpOiBib29sZWFuO1xuICAvKiogVmlzaWJsZSBpbWFnZSByZWN0IGluIGxldmVsLTAgcHgsIGVtaXR0ZWQgb24gZXZlcnkgcmVkcmF3IGZyYW1lIChwYW4vem9vbSBhbmltYXRpb24pLlxuICAgKiAgQSBuZXcgc3Vic2NyaWJlciBmaXJzdCByZWNlaXZlcyB0aGUgY3VycmVudCByZWN0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIHJlYWR5LiAqL1xuICBmcmFtZSQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0PjtcbiAgLyoqIFNhbWUgcmVjdCwgZW1pdHRlZCBvbmNlIHRoZSB2aWV3cG9ydCBzZXR0bGVzIChleGlzdGluZyBnZXRWaWV3cG9ydENoYW5nZSQgc2VtYW50aWNzKS5cbiAgICogIEEgbmV3IHN1YnNjcmliZXIgZmlyc3QgcmVjZWl2ZXMgdGhlIGN1cnJlbnQgcmVjdCB3aGVuIHRoZSB2aWV3cG9ydCBpcyByZWFkeS4gKi9cbiAgc2V0dGxlZCQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0Pjtcbn1cblxuLyoqIFRoZSBjbGFzcyBhIHtAbGluayBQbG90TW9kZVRvb2xzLmFybUJydXNofSBzdHJva2UgcGFpbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZUJydXNoQ2xhc3Mge1xuICAvKiogTGFiZWwgZm9yIHRoZSBwYWludGVkIHJlZ2lvbnM7IHRoZSBzdHJva2Ugb25seSBleHRlbmRzIG9yIG1lcmdlcyByZWdpb25zIHdpdGggaXQuICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQ29sb3VyIGZvciB0aGUgcGFpbnRlZCByZWdpb25zIChpbnN0ZWFkIG9mIHRoZSB0b29sYmFyJ3Mgc2hhcGUgY29sb3VyKS4gKi9cbiAgY29sb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHZpc3VhbGl6ZXIncyBvd24gdG9vbGJhciB0b29scywgYXJtZWQgb24gYSBtb2RlJ3MgYmVoYWxmLiBHb2luZyB0aHJvdWdoXG4gKiB0aGlzIHJhdGhlciB0aGFuIHtAbGluayBJVmlzdWFsaXplcn0ga2VlcHMgdGhlIHRvb2xiYXIgaW4gc3RlcDogdGhlIGFybWVkXG4gKiB0b29sJ3MgYnV0dG9uIGlzIGhpZ2hsaWdodGVkIGFuZCBpdHMgY29udHJvbHMgKGUuZy4gdGhlIGJydXNoIHNpemUpIHNob3cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVUb29scyB7XG4gIC8qKlxuICAgKiBBcm0gdGhlIHRvb2xiYXIgYnJ1c2gsIHBhaW50aW5nIGBicnVzaENsYXNzYC4gQ2FsbGluZyBpdCBhZ2FpbiB3aGlsZSB0aGVcbiAgICogYnJ1c2ggaXMgYXJtZWQgc3dpdGNoZXMgY2xhc3M7IHRoZSBuZXh0IHN0cm9rZSBzdGFydHMgYSByZWdpb24gb2YgaXQuXG4gICAqIFRoZSB1c2VyIHBpY2tpbmcgYW55IHRvb2wgZnJvbSB0aGUgdG9vbGJhciAoaW5jbHVkaW5nIHRoZSBicnVzaCkgcmVwbGFjZXNcbiAgICogdGhpcyB3aXRoIHRoZSBwbGFpbiB0b29sLlxuICAgKi9cbiAgYXJtQnJ1c2goYnJ1c2hDbGFzcz86IFBsb3RNb2RlQnJ1c2hDbGFzcyk6IHZvaWQ7XG4gIC8qKiBEaXNhcm0gd2hhdGV2ZXIgdG9vbCBpcyBhcm1lZCwgYXMgaWYgdGhlIHVzZXIgdG9nZ2xlZCBpdCBvZmYuICovXG4gIGRpc2FybSgpOiB2b2lkO1xuICAvKiogVGhlIGFybWVkIHRvb2xiYXIgdG9vbCBpZCAoJ2JydXNoJywgJ3BhbicsIOKApiBvciBudWxsKS4gUmVwbGF5cyB0aGUgY3VycmVudCB2YWx1ZS4gKi9cbiAgYWN0aXZlVG9vbCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG59XG5cbi8qKiBFdmVyeXRoaW5nIGEgY29udHJpYnV0ZWQgbW9kZSBnZXRzIHRvIHdvcmsgd2l0aCB3aGlsZSBpdCBpcyBhY3RpdmUuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlQ29udGV4dCB7XG4gIC8qKiBGdWxsIHB1YmxpYyB2aXN1YWxpemVyIEFQSTogcmVnaW9ucywgcmVnaW9uIG92ZXJsYXkgKHRvb2wgbW9kZXMpLCB1bmRvLCBldGMuICovXG4gIHZpc3VhbGl6ZXI6IElWaXN1YWxpemVyO1xuICB2aWV3cG9ydDogUGxvdE1vZGVWaWV3cG9ydDtcbiAgLyoqIEN1cnJlbnQgaW1hZ2UgaW5mbyBmcm9tIElNQUdFX1NUQVRFX1BPUlQgKG51bGwgdW50aWwgYW4gaW1hZ2UgaXMgbG9hZGVkKS4gKi9cbiAgaW1hZ2VJbmZvJDogT2JzZXJ2YWJsZTxJSW1hZ2VJbmZvIHwgbnVsbD47XG4gIC8qKiBUb29sYmFyIHRvb2xzIChzaW5jZSAwLjYuMCkuIE9wdGlvbmFsIHNvIGEgY29udGV4dCBidWlsdCBmb3IgMC41LjAgc3RpbGwgdHlwZS1jaGVja3MuICovXG4gIHRvb2xzPzogUGxvdE1vZGVUb29scztcbn1cblxuLyoqIEEgbGl2ZSBhY3RpdmF0aW9uIG9mIGEgY29udHJpYnV0ZWQgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVTZXNzaW9uIHtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIGxlYXZlcyB0aGUgbW9kZSwgdGhlIGltYWdlIGNoYW5nZXMsIG9yIHRoZSB2aXN1YWxpemVyIGlzIGRlc3Ryb3llZC4gKi9cbiAgZGVhY3RpdmF0ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBtb2RlJ3Mgc2lkZSBwYW5lbCwgc2hvd24gaW4gdGhlIHZpc3VhbGl6ZXIncyByaWdodC1oYW5kIHBhbmVsIGFyZWEgd2hpbGVcbiAqIGEgc2Vzc2lvbiBpcyBsaXZlLiBUd28gZm9ybXM6XG4gKlxuICogIC0gYGNvbXBvbmVudGA6IGFuIEFuZ3VsYXIgY29tcG9uZW50LCByZW5kZXJlZCB0aHJvdWdoIGBOZ0NvbXBvbmVudE91dGxldGBcbiAqICAgIHdpdGgge0BsaW5rIFBMT1RfTU9ERV9DT05URVhUfSBhbmQge0BsaW5rIFBMT1RfTU9ERV9TRVNTSU9OfSBpbiBpdHNcbiAqICAgIGluamVjdG9yLiBOZWVkcyBhbiBBT1QtY29tcGlsZWQgKHBhcnRpYWwtSXZ5KSBjb21wb25lbnQuXG4gKiAgLSBgbW91bnRgOiBmcmFtZXdvcmstYWdub3N0aWMuIFRoZSB2aXN1YWxpemVyIGhhbmRzIG92ZXIgYW4gZW1wdHkgaG9zdFxuICogICAgZWxlbWVudCBhZnRlciBgYWN0aXZhdGVgIHJlc29sdmVzOyB0aGUgZnVuY3Rpb24gcmVuZGVycyBpbnRvIGl0IGFuZCByZXR1cm5zXG4gKiAgICBhIHRlYXJkb3duLiBUaGUgdGVhcmRvd24gaXMgY2FsbGVkIGV4YWN0bHkgb25jZSB3aGVuIHRoZSBtb2RlIGRlYWN0aXZhdGVzLFxuICogICAgYmVmb3JlIGBzZXNzaW9uLmRlYWN0aXZhdGUoKWAsIGFuZCB0aGUgaG9zdCBlbGVtZW50IGlzIHRoZW4gcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IHR5cGUgUGxvdE1vZGVQYW5lbCA9XG4gIHwgeyB0aXRsZTogc3RyaW5nOyBjb21wb25lbnQ6IFR5cGU8dW5rbm93bj4gfVxuICB8IHtcbiAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICBtb3VudChob3N0OiBIVE1MRWxlbWVudCwgY3R4OiBQbG90TW9kZUNvbnRleHQsIHNlc3Npb246IFBsb3RNb2RlU2Vzc2lvbik6ICgpID0+IHZvaWQ7XG4gICAgfTtcblxuLyoqIEEgcGxvdCBtb2RlIGNvbnRyaWJ1dGVkIHRvIHRoZSBzZWxlY3Rvci4gQSBwbGFpbiBvYmplY3QgaXMgZW5vdWdoLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90VHlwZUNvbnRyaWJ1dGlvbiB7XG4gIGRlc2NyaXB0b3I6IENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yO1xuICAvKiogQ2FsbGVkIGFmdGVyIHRoZSBiYXNlIGJhY2tlbmQgaGFzIHBsb3R0ZWQgdGhlIGltYWdlIGluIHRoaXMgbW9kZS4gKi9cbiAgYWN0aXZhdGUoY3R4OiBQbG90TW9kZUNvbnRleHQpOiBQbG90TW9kZVNlc3Npb24gfCBQcm9taXNlPFBsb3RNb2RlU2Vzc2lvbj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBzaWRlIHBhbmVsLCByZW5kZXJlZCBpbiB0aGUgdmlzdWFsaXplcidzIHJpZ2h0LWhhbmQgcGFuZWwgYXJlYSB3aGlsZSB0aGVcbiAgICogbW9kZSBpcyBhY3RpdmUuIEEgY29tcG9uZW50IHBhbmVsIGNhbiBpbmplY3QgUExPVF9NT0RFX0NPTlRFWFQgYW5kIFBMT1RfTU9ERV9TRVNTSU9OLlxuICAgKi9cbiAgcGFuZWw/OiBQbG90TW9kZVBhbmVsO1xufVxuXG4vKipcbiAqIE11bHRpLXByb3ZpZGVyIHRva2VuIGZvciBjb250cmlidXRlZCBwbG90IG1vZGVzLlxuICpcbiAqIERlbGliZXJhdGVseSBoYXMgbm8gYGZhY3RvcnlgOiB1bnJlZ2lzdGVyZWQgbWVhbnMgbm8gY29udHJpYnV0ZWQgbW9kZXMsIGFuZCB0aGVcbiAqIGxpYnJhcnkgYmVoYXZlcyBleGFjdGx5IGFzIGJlZm9yZS4gVGhlIHZpc3VhbGl6ZXIgaW5qZWN0cyBpdCBgeyBvcHRpb25hbDogdHJ1ZSB9YFxuICogYW5kIHRyZWF0cyBudWxsIGFzIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgUExPVF9UWVBFX0NPTlRSSUJVVElPTlMgPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48cmVhZG9ubHkgUGxvdFR5cGVDb250cmlidXRpb25bXT4oJ1BMT1RfVFlQRV9DT05UUklCVVRJT05TJyk7XG4vKiogVGhlIGFjdGl2ZSBtb2RlJ3MgY29udGV4dCwgaW4gYSBjb21wb25lbnQgcGFuZWwncyBpbmplY3Rvci4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX01PREVfQ09OVEVYVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQbG90TW9kZUNvbnRleHQ+KCdQTE9UX01PREVfQ09OVEVYVCcpO1xuLyoqIFRoZSBhY3RpdmUgbW9kZSdzIHNlc3Npb24sIGluIGEgY29tcG9uZW50IHBhbmVsJ3MgaW5qZWN0b3IuICovXG5leHBvcnQgY29uc3QgUExPVF9NT0RFX1NFU1NJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48UGxvdE1vZGVTZXNzaW9uPignUExPVF9NT0RFX1NFU1NJT04nKTtcblxuLyoqXG4gKiBPbmUgZW50cnkgaW4gdGhlIHBsb3QtdHlwZSBzZWxlY3RvcjogYSBidWlsdC1pbiB7QGxpbmsgUGxvdFR5cGVEZXNjcmlwdG9yfVxuICogYXMtaXMsIG9yIGEgY29udHJpYnV0ZWQgZGVzY3JpcHRvciBjb21wbGV0ZWQgd2l0aCBpdHMgYmFzZSB0eXBlJ3MgYHNvdXJjZWAuXG4gKiBFdmVyeSBlbnRyeSB0aGVyZWZvcmUgY2FycmllcyB0aGUgc2FtZSBmaWVsZHMgdGhlIHNlbGVjdG9yIGN1cmF0ZXMgYnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdFR5cGVPcHRpb24gZXh0ZW5kcyBPbWl0PFBsb3RUeXBlRGVzY3JpcHRvciwgJ3R5cGUnPiB7XG4gIHR5cGU6IFBsb3RUeXBlSWQ7XG4gIC8qKiBTZXQgb25seSBmb3IgYSBjb250cmlidXRlZCBtb2RlOiB0aGUgYnVpbHQtaW4gdHlwZSB0aGF0IHJlbmRlcnMgaXQuICovXG4gIGJhc2VUeXBlPzogUGxvdFR5cGU7XG59XG5cbi8qKiBUaGUgc2VsZWN0b3IgZW50cnkgZm9yIGEgY29udHJpYnV0ZWQgbW9kZSwgZ2l2ZW4gaXRzIGJhc2UgdHlwZSdzIGRlc2NyaXB0b3IuICovXG5leHBvcnQgZnVuY3Rpb24gY29udHJpYnV0ZWRQbG90VHlwZU9wdGlvbihcbiAgZDogQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3IsXG4gIGJhc2U6IFBsb3RUeXBlRGVzY3JpcHRvcixcbik6IFBsb3RUeXBlT3B0aW9uIHtcbiAgcmV0dXJuIHsgLi4uZCwgc291cmNlOiBiYXNlLnNvdXJjZSB9O1xufVxuIl19
|
|
@@ -35,6 +35,17 @@
|
|
|
35
35
|
* than an escape hatch that returns a component — the moment one tool draws
|
|
36
36
|
* itself, the toolbar stops being able to lay tools out consistently.
|
|
37
37
|
*
|
|
38
|
+
* DIALOG TOOLS
|
|
39
|
+
* Some tools are not "set parameters, run once" but an interactive session: the
|
|
40
|
+
* user paints, the tool retrains and redraws, over and over (DIANNE). A schema
|
|
41
|
+
* cannot describe that, so {@link ToolbarDialogToolContribution} is the one
|
|
42
|
+
* variant that renders its own body. The toolbar still owns the button, its
|
|
43
|
+
* placement and the dialog chrome; the tool only fills the dialog, with plain
|
|
44
|
+
* DOM (`mount`), so it needs neither Angular nor this library's PrimeNG version.
|
|
45
|
+
* Its button sits with the host's own actions at the start of the toolbar, and
|
|
46
|
+
* shows only in the Image view, the view its context ({@link ToolDialogContext})
|
|
47
|
+
* draws over.
|
|
48
|
+
*
|
|
38
49
|
* WHY AN EMPTY MODEL LIST HIDES THE TOOL
|
|
39
50
|
* {@link ToolbarToolContribution.models} returning `[]` removes the tool from
|
|
40
51
|
* the toolbar entirely. This preserves the behaviour the built-in tools already
|
|
@@ -43,8 +54,14 @@
|
|
|
43
54
|
* not require unregistering the provider.
|
|
44
55
|
*/
|
|
45
56
|
import { InjectionToken } from '@angular/core';
|
|
57
|
+
/** Whether a contribution is a {@link ToolbarDialogToolContribution}. */
|
|
58
|
+
export function isDialogToolContribution(c) {
|
|
59
|
+
return !!c && c.kind === 'dialog';
|
|
60
|
+
}
|
|
46
61
|
/**
|
|
47
|
-
* Multi-provider token for contributed tools
|
|
62
|
+
* Multi-provider token for contributed tools: run tools
|
|
63
|
+
* ({@link ToolbarToolContribution}) and, since 0.6.0, dialog tools
|
|
64
|
+
* ({@link ToolbarDialogToolContribution}).
|
|
48
65
|
*
|
|
49
66
|
* Deliberately has no `factory`: unregistered means no tools, which is what
|
|
50
67
|
* makes this library shippable without the closed model packages. Inject it
|
|
@@ -57,8 +74,33 @@ export function sortToolContributions(tools) {
|
|
|
57
74
|
// provider order without having to invent numbers.
|
|
58
75
|
return tools.map((t, i) => ({ t, i })).sort((a, b) => (a.t.order ?? 100) - (b.t.order ?? 100) || a.i - b.i).map(({ t }) => t);
|
|
59
76
|
}
|
|
60
|
-
/** The tools a toolbar should actually show: those with at least one model.
|
|
77
|
+
/** The run tools a toolbar should actually show: those with at least one model.
|
|
78
|
+
* Dialog tools are left out (see {@link dialogToolContributions}). */
|
|
61
79
|
export function visibleToolContributions(tools) {
|
|
62
|
-
|
|
80
|
+
const run = (tools ?? []).filter((t) => !isDialogToolContribution(t) && typeof t?.models === 'function');
|
|
81
|
+
return sortToolContributions(run).filter((t) => t.models().length > 0);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The dialog tools, in display order. A malformed one (no string `id`, no
|
|
85
|
+
* `activate` or `mount` function) or a repeated `id` is dropped with a warning
|
|
86
|
+
* rather than breaking the toolbar.
|
|
87
|
+
*/
|
|
88
|
+
export function dialogToolContributions(tools, log = console) {
|
|
89
|
+
const seen = new Set();
|
|
90
|
+
const out = [];
|
|
91
|
+
for (const t of (tools ?? []).filter(isDialogToolContribution)) {
|
|
92
|
+
if (typeof t.id !== 'string' || !t.id || typeof t.activate !== 'function'
|
|
93
|
+
|| typeof t.mount !== 'function') {
|
|
94
|
+
log.warn('[visualizer] dialog tool ignored: it needs a string `id` and `activate` and `mount` functions.', t);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (seen.has(t.id)) {
|
|
98
|
+
log.warn(`[visualizer] dialog tool '${t.id}' ignored: another dialog tool already uses that id.`);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
seen.add(t.id);
|
|
102
|
+
out.push(t);
|
|
103
|
+
}
|
|
104
|
+
return sortToolContributions(out);
|
|
63
105
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci10b29sLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvdG9vbGJhci10b29sLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQTRJL0M7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFxQyxlQUFlLENBQUMsQ0FBQztBQUVyRyxpREFBaUQ7QUFDakQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxLQUF5QztJQUV6Qyw2RUFBNkU7SUFDN0UsbURBQW1EO0lBQ25ELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNyRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxLQUE0RDtJQUU1RCxPQUFPLHFCQUFxQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IGEgdG9vbCBnZXRzIGludG8gdGhlIHRvb2xiYXIgd2l0aG91dCB0aGlzIGxpYnJhcnkga25vd2luZyB3aGF0IGl0IGlzLlxuICpcbiAqIFdIWSBUSElTIEVYSVNUU1xuICogVGhlIFlPTE8gZGV0ZWN0b3IgYW5kIHRoZSByZXRpbmFsLWxheWVyIHNlZ21lbnRlciB1c2VkIHRvIGJlIGJ1aWx0IGluOiB0aGVpclxuICogYnV0dG9ucyB3ZXJlIGhhcmRjb2RlZCBpbiB0aGUgdG9vbGJhciB0ZW1wbGF0ZSwgdGhlaXIgbW9kZWwgcmVnaXN0cmllcyBuYW1lZFxuICogSkFYIGNoZWNrcG9pbnRzLCBhbmQgdGhlIGBJTlNUQU5DRV9TRUdNRU5URVJgIC8gYFNFTUFOVElDX1NFR01FTlRFUmAgdG9rZW5zXG4gKiBkZWZhdWx0ZWQgdG8gaW4tbGlicmFyeSBzZXJ2aWNlcyB0aGF0IGltcG9ydGVkIGB5b2xvLXNlZ2RldGVjdC1qc2AgYW5kXG4gKiBgamF4LWFpLWpzYC4gVGhvc2UgZGVmYXVsdCBmYWN0b3JpZXMgd2VyZSB0aGUgb25seSB0aGluZyBwdWxsaW5nIGVpdGhlclxuICogcGFja2FnZSBpbnRvIHRoZSBidW5kbGUg4oCUIHRoZSBjb250cmFjdHMgdGhlbXNlbHZlcyB3ZXJlIGFscmVhZHkgY2xlYW4uXG4gKlxuICogVGhhdCBhcnJhbmdlbWVudCBjYW5ub3Qgc2hpcCBpbiBhbiBvcGVuIGxpYnJhcnkgd2hpbGUgdGhlIG1vZGVscyBhcmUgY2xvc2VkLlxuICogU28gdGhlIHRvb2xzIG1vdmUgb3V0LCBpbnRvIGEgcGFja2FnZSB0aGF0IGRlcGVuZHMgb24gdGhpcyBvbmUsIGFuZCBhcnJpdmVcbiAqIGJhY2sgdGhyb3VnaCB7QGxpbmsgVE9PTEJBUl9UT09MU30uIFRoaXMgbGlicmFyeSBrZWVwcyB0aGUgY29udHJhY3RzLCB0aGVcbiAqIGNocm9tZSBhbmQgdGhlIHJlZ2lvbiBwbHVtYmluZzsgaXQgbm8gbG9uZ2VyIGtub3dzIHRoYXQgWU9MTyBleGlzdHMuXG4gKlxuICogQSBob3N0IHJlZ2lzdGVycyB0b29scyB3aXRoIGEgbXVsdGktcHJvdmlkZXI6XG4gKlxuICogICAgIHsgcHJvdmlkZTogVE9PTEJBUl9UT09MUywgdXNlRXhpc3Rpbmc6IFlvbG9Ub29sQ29udHJpYnV0aW9uLCBtdWx0aTogdHJ1ZSB9XG4gKlxuICogUmVnaXN0ZXIgbm90aGluZyBhbmQgdGhlIHRvb2xiYXIgaGFzIG5vIHNlZ21lbnRhdGlvbiB0b29scywgdGhlIGhlbHAgZGlhbG9nXG4gKiBsaXN0cyBub25lLCBhbmQgbmVpdGhlciBtb2RlbCBwYWNrYWdlIGlzIGluIHRoZSBncmFwaC5cbiAqXG4gKiBXSFkgUEFSQU1TIEFSRSBERUNMQVJFRCwgTk9UIFJFTkRFUkVEXG4gKiBBIGNvbnRyaWJ1dGlvbiBkZXNjcmliZXMgaXRzIHBhcmFtZXRlcnMgKHtAbGluayBUb29sUGFyYW1TcGVjfSkgaW5zdGVhZCBvZlxuICogc3VwcGx5aW5nIGEgY29tcG9uZW50IHRvIGRyYXcgdGhlbS4gVGhlIHRvb2xiYXIgcmVuZGVycyBvbmUgZ2VuZXJpYyBkaWFsb2dcbiAqIGZyb20gdGhhdCBkZXNjcmlwdGlvbi4gVGhlIGFsdGVybmF0aXZlIOKAlCBlYWNoIHBsdWdpbiBzaGlwcGluZyBpdHMgb3duIGRpYWxvZ1xuICogY29tcG9uZW50IOKAlCB3b3VsZCBtYWtlIGV2ZXJ5IHBsdWdpbiBkZXBlbmQgb24gdGhpcyBsaWJyYXJ5J3MgZXhhY3QgUHJpbWVOR1xuICogdmVyc2lvbiBhbmQgc3R5bGluZyBpbnRlcm5hbHMgdG8gbG9vayBsaWtlIHRoZSByZXN0IG9mIHRoZSB0b29sYmFyLCBhbmQgdGhlXG4gKiB0d28gZGlhbG9ncyB0aGF0IGV4aXN0IHRvZGF5IGFyZSBlbnRpcmVseSBudW1iZXJzIGFuZCBvbmUgY2hlY2tib3guIEEgc2NoZW1hXG4gKiBjb3ZlcnMgdGhlbSwgYW5kIGl0IGlzIHRoZSBzYW1lIHNoYXBlIGppdC11aSBhbHJlYWR5IHVzZXMgZm9yIGl0cyBwaXBlbGluZVxuICogc3RlcCBwYXJhbWV0ZXJzLCBzbyB0aGUgdm9jYWJ1bGFyeSBpcyBmYW1pbGlhci5cbiAqXG4gKiBJZiBhIHRvb2wgZXZlciBuZWVkcyBhIGNvbnRyb2wgdGhpcyBjYW5ub3QgZXhwcmVzcywgYWRkIGEgdmFyaWFudCBoZXJlIHJhdGhlclxuICogdGhhbiBhbiBlc2NhcGUgaGF0Y2ggdGhhdCByZXR1cm5zIGEgY29tcG9uZW50IOKAlCB0aGUgbW9tZW50IG9uZSB0b29sIGRyYXdzXG4gKiBpdHNlbGYsIHRoZSB0b29sYmFyIHN0b3BzIGJlaW5nIGFibGUgdG8gbGF5IHRvb2xzIG91dCBjb25zaXN0ZW50bHkuXG4gKlxuICogV0hZIEFOIEVNUFRZIE1PREVMIExJU1QgSElERVMgVEhFIFRPT0xcbiAqIHtAbGluayBUb29sYmFyVG9vbENvbnRyaWJ1dGlvbi5tb2RlbHN9IHJldHVybmluZyBgW11gIHJlbW92ZXMgdGhlIHRvb2wgZnJvbVxuICogdGhlIHRvb2xiYXIgZW50aXJlbHkuIFRoaXMgcHJlc2VydmVzIHRoZSBiZWhhdmlvdXIgdGhlIGJ1aWx0LWluIHRvb2xzIGFscmVhZHlcbiAqIGhhZCAodGhlaXIgYnV0dG9ucyB3ZXJlIGAqbmdJZmAnZCBvbiBhIGZpbHRlcmVkIHJlZ2lzdHJ5KSwgYW5kIGl0IGdpdmVzIGEgaG9zdFxuICogb25lIHN3aXRjaCBmb3IgXCJ0aGUgd2VpZ2h0cyBhcmUgbm90IGNvbmZpZ3VyZWQgaW4gdGhpcyBkZXBsb3ltZW50XCIgdGhhdCBkb2VzXG4gKiBub3QgcmVxdWlyZSB1bnJlZ2lzdGVyaW5nIHRoZSBwcm92aWRlci5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IElWaXN1YWxpemVyIH0gZnJvbSAnLi92aXN1YWxpemVyLmNvbnRyYWN0JztcblxuLyoqIEEgbnVtYmVyIGZpZWxkLiBSZW5kZXJlZCBhcyBhIHN0ZXBwZXIsIG1hdGNoaW5nIHRoZSBidWlsdC1pbiBkaWFsb2dzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJQYXJhbVNwZWMge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnbnVtYmVyJztcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIHN0ZXA/OiBudW1iZXI7XG4gIC8qKiBEZWNpbWFsIHBsYWNlcyB0byBzaG93LiBPbWl0IGZvciBpbnRlZ2Vycy4gKi9cbiAgZnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gIC8qKiBIb3ZlciBoZWxwLiBQbGFpbiB0ZXh0OyBpdCBpcyBub3QgcmVuZGVyZWQgYXMgSFRNTC4gKi9cbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuLyoqIEEgY2hlY2tib3guIGBsYWJlbGAgc2l0cyBiZXNpZGUgaXQgYW5kIG1heSBydW4gdG8gYSBzZW50ZW5jZSBvciB0d28uICovXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5QYXJhbVNwZWMge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnYm9vbGVhbic7XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbi8qKiBBIGZpeGVkIHNldCBvZiBjaG9pY2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RQYXJhbVNwZWMge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnc2VsZWN0JztcbiAgb3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIH1bXTtcbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVG9vbFBhcmFtU3BlYyA9IE51bWJlclBhcmFtU3BlYyB8IEJvb2xlYW5QYXJhbVNwZWMgfCBTZWxlY3RQYXJhbVNwZWM7XG5cbi8qKiBPbmUgc2VsZWN0YWJsZSBjaGVja3BvaW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sTW9kZWxPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBjaGVja3BvaW50IGluIHRoZSBwaWNrZXIncyBob3ZlciB0b29sdGlwIOKAlCBzaXplLCBzcGVlZCxcbiAgICogdHJhaW5pbmcgZG9tYWluLCBhY2N1cmFjeS4gKipSZW5kZXJlZCBhcyBIVE1MKiosIHNvIGl0IGlzIHRydXN0ZWQgY29udGVudFxuICAgKiBmcm9tIHRoZSBjb250cmlidXRpbmcgcGFja2FnZSwgbmV2ZXIgYW55dGhpbmcgdXNlci1zdXBwbGllZC5cbiAgICovXG4gIGluZm8/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgdmFsdWVzIHRoaXMgY2hlY2twb2ludCB3YW50cywgbWVyZ2VkIG92ZXJcbiAgICoge0BsaW5rIFRvb2xiYXJUb29sQ29udHJpYnV0aW9uLmRlZmF1bHRQYXJhbXN9IHdoZW4gaXQgaXMgc2VsZWN0ZWQuIERlZmF1bHRzXG4gICAqIGJlbG9uZyB0byB0aGUgbW9kZWwgcmF0aGVyIHRoYW4gdGhlIHRvb2wg4oCUIGEgZGV0ZWN0b3IgdHJhaW5lZCBvbiBuYXRpdmUgNDB4XG4gICAqIHBhdGNoZXMgd2FudHMgZGlmZmVyZW50IHRpbGluZyBmcm9tIG9uZSB0cmFpbmVkIG9uIHRodW1ibmFpbHMuXG4gICAqL1xuICBkZWZhdWx0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFRoZSBgc3RhdHVzJGAgLyBgYnVzeSRgIC8gYHByb2dyZXNzJGAgc3VyZmFjZSB0aGUgdG9vbGJhciBkcml2ZXMgaXRzIHN0aWNreVxuICogdG9hc3QgYW5kIHByb2dyZXNzIGJhciBmcm9tLiBgcHJvZ3Jlc3MkYCBpcyBhIDAuLjEgZnJhY3Rpb24sIG9yIC0xIGZvclxuICogaW5kZXRlcm1pbmF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sUHJvZ3Jlc3Mge1xuICBzdGF0dXMkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGJ1c3kkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcm9ncmVzcyQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbn1cblxuLyoqIFRvb2xiYXIgaWNvbjogYSBwdWJsaXNoZWQgYXNzZXQsIG9yIGEgUHJpbWVJY29uIGNsYXNzIG5hbWUuICovXG5leHBvcnQgdHlwZSBUb29sSWNvbiA9IHsgc3JjOiBzdHJpbmc7IHBpPzogbmV2ZXIgfSB8IHsgcGk6IHN0cmluZzsgc3JjPzogbmV2ZXIgfTtcblxuLyoqXG4gKiBBIHRvb2wgY29udHJpYnV0ZWQgdG8gdGhlIHRvb2xiYXIuXG4gKlxuICogSW1wbGVtZW50IGl0IG9uIGFuIGBASW5qZWN0YWJsZSgpYCBzZXJ2aWNlIGluIHRoZSBjb250cmlidXRpbmcgcGFja2FnZSwgc28gaXRcbiAqIGNhbiBpbmplY3QgaXRzIG93biBzZWdtZW50ZXIgYW5kIG1vZGVsIHJlZ2lzdHJ5IOKAlCB0aGlzIGxpYnJhcnkgcHJvdmlkZXNcbiAqIG5laXRoZXIgYW5kIG11c3Qgbm90IGxlYXJuIHRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xiYXJUb29sQ29udHJpYnV0aW9uIHtcbiAgLyoqIFN0YWJsZSBpZGVudGl0eSwgdXNlZCBmb3IgdHJhY2tpbmcgYW5kIHBlcnNpc3RlZCBwcmVmZXJlbmNlcy4gKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIFNob3J0IG5hbWUsIHVzZWQgaW4gdGhlIHRvYXN0IGFuZCB0aGUgaGVscCBkaWFsb2cgaGVhZGluZy4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogVG9vbEljb247XG5cbiAgLyoqIFRvb2x0aXAgb24gdGhlIHJ1biBidXR0b24g4oCUIHNheSB3aGF0IGl0IGRvZXMgdG8gdGhlIGN1cnJlbnQgdmlldy4gKi9cbiAgcnVuVG9vbHRpcDogc3RyaW5nO1xuICAvKiogVG9vbHRpcCBvbiB0aGUgY2hlY2twb2ludCBwaWNrZXIuIERlZmF1bHRzIHRvIFwiUGljayB0aGUgbW9kZWxcIi4gKi9cbiAgbW9kZWxUb29sdGlwPzogc3RyaW5nO1xuICAvKiogVG9vbHRpcCBvbiB0aGUgcGFyYW1ldGVycyBidXR0b24uIERlZmF1bHRzIHRvIFwiUGFyYW1ldGVyc1wiLiAqL1xuICBwYXJhbXNUb29sdGlwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVyZSBpdCBzaXRzIGFtb25nIHRoZSBzZWdtZW50YXRpb24gdG9vbHMuIExvd2VyIHNvcnRzIGZpcnN0OyB0aWVzIGZhbGxcbiAgICogYmFjayB0byByZWdpc3RyYXRpb24gb3JkZXIuIFRoZSBidWlsdC1pbiBwcm9tcHRlZCB0b29scyBvY2N1cHkgMC05OSwgc29cbiAgICogY29udHJpYnV0ZWQgdG9vbHMgc2hvdWxkIHN0YXJ0IGF0IDEwMCB0byBsYW5kIGFmdGVyIHRoZW0uXG4gICAqL1xuICBvcmRlcj86IG51bWJlcjtcblxuICAvKiogU2VsZWN0YWJsZSBjaGVja3BvaW50cy4gKipFbXB0eSBoaWRlcyB0aGUgdG9vbC4qKiAqL1xuICBtb2RlbHMoKTogVG9vbE1vZGVsT3B0aW9uW107XG4gIC8qKiBXaGljaCBjaGVja3BvaW50IHJ1bnMgd2hlbiB0aGUgdXNlciBoYXMgbm90IGNob3Nlbi4gKi9cbiAgZGVmYXVsdE1vZGVsSWQoKTogc3RyaW5nO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgcGlja3MgYSBjaGVja3BvaW50LCBiZWZvcmUgcGFyYW1ldGVycyBhcmUgcmUtc2VlZGVkLlxuICAgKiBVc2UgaXQgdG8gcmVjb3JkIHRoZSBjaG9pY2UgaW4gdGhlIGNvbnRyaWJ1dGluZyBwYWNrYWdlJ3Mgb3duIHJlZ2lzdHJ5LlxuICAgKi9cbiAgb25Nb2RlbENoYW5nZT8obW9kZWxJZDogc3RyaW5nKTogdm9pZDtcblxuICAvKiogUGFyYW1ldGVyIGZpZWxkcywgaW4gZGlhbG9nIG9yZGVyLiBFbXB0eSBoaWRlcyB0aGUgcGFyYW1ldGVycyBidXR0b24uICovXG4gIHBhcmFtczogVG9vbFBhcmFtU3BlY1tdO1xuICAvKipcbiAgICogQmFzZWxpbmUgcGFyYW1ldGVyIHZhbHVlcyBmb3IgYSBjaGVja3BvaW50LiBDYWxsZWQgb24gZmlyc3QgdXNlIGFuZCBhZ2FpblxuICAgKiBvbiBcIlJlc2V0IHRvIG1vZGVsIGRlZmF1bHRzXCIsIHNvIGl0IG11c3QgYmUgcHVyZSBhbmQgbXVzdCByZXR1cm4gZXZlcnkga2V5XG4gICAqIHRoZSB0b29sIHJlYWRzIOKAlCBhIHBhcmFtZXRlciB0aGUgZGlhbG9nIHNob3dzIGJ1dCB0aGlzIG9taXRzIHJlbmRlcnMgYXNcbiAgICogZW1wdHkgYW5kIHJlYWNoZXMgYHJ1bmAgYXMgdW5kZWZpbmVkLlxuICAgKi9cbiAgZGVmYXVsdFBhcmFtcyhtb2RlbElkOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKipcbiAgICogRW50cnkgZm9yIHRoZSBoZWxwIGRpYWxvZydzIHRvb2wgbGlzdC4gYGJvZHlgIGlzIHJlbmRlcmVkIGFzIEhUTUwgYW5kIG1heVxuICAgKiByZWZlcmVuY2UgcHVibGlzaGVkIGFzc2V0cyAoZS5nLiB0aGUgdG9vbCdzIG93biBpY29uKS5cbiAgICovXG4gIGhlbHA/OiB7IGJvZHk6IHN0cmluZyB9O1xuXG4gIC8qKiBQcm9ncmVzcyBzdXJmYWNlIGZvciB0aGUgdG9hc3QuICovXG4gIHByb2dyZXNzOiBUb29sUHJvZ3Jlc3M7XG5cbiAgLyoqXG4gICAqIFJ1biBvdmVyIHdoYXQgaXMgY3VycmVudGx5IGRpc3BsYXllZCwgYW5kIHdyaXRlIHdoYXRldmVyIGl0IGZpbmRzIHRocm91Z2hcbiAgICogYHZpemAuIFJlc29sdmVzIHdpdGggdGhlIG51bWJlciBvZiByZWdpb25zIGFkZGVkLlxuICAgKlxuICAgKiBFdmVyeXRoaW5nIHRoZSB0b29sIG5lZWRzIGlzIG9uIHtAbGluayBJVmlzdWFsaXplcn0sIHdoaWNoIGlzIHBhcnQgb2YgdGhpc1xuICAgKiBsaWJyYXJ5J3MgcHVibGljIHN1cmZhY2Ug4oCUIGEgY29udHJpYnV0aW9uIG5ldmVyIHJlYWNoZXMgaW50byBpbnRlcm5hbHMuXG4gICAqIFJlZ2lvbiB3cml0ZXMgZ28gdGhyb3VnaCB0aGUgc2FtZSBwYXRoIHRoZSBidWlsdC1pbiB0b29scyB1c2UsIHNvIHRoZVxuICAgKiBpbmRleC1iYXNlZCBvdmVybGF5cyBhbmQgdGhlIFJlZ2lvbnMgdGFibGUgc3RheSBjb25zaXN0ZW50LlxuICAgKi9cbiAgcnVuKHZpejogSVZpc3VhbGl6ZXIsIHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPG51bWJlcj47XG59XG5cbi8qKlxuICogTXVsdGktcHJvdmlkZXIgdG9rZW4gZm9yIGNvbnRyaWJ1dGVkIHRvb2xzLlxuICpcbiAqIERlbGliZXJhdGVseSBoYXMgbm8gYGZhY3RvcnlgOiB1bnJlZ2lzdGVyZWQgbWVhbnMgbm8gdG9vbHMsIHdoaWNoIGlzIHdoYXRcbiAqIG1ha2VzIHRoaXMgbGlicmFyeSBzaGlwcGFibGUgd2l0aG91dCB0aGUgY2xvc2VkIG1vZGVsIHBhY2thZ2VzLiBJbmplY3QgaXRcbiAqIGB7IG9wdGlvbmFsOiB0cnVlIH1gIGFuZCB0cmVhdCBudWxsIGFzIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgVE9PTEJBUl9UT09MUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxyZWFkb25seSBUb29sYmFyVG9vbENvbnRyaWJ1dGlvbltdPignVE9PTEJBUl9UT09MUycpO1xuXG4vKiogU29ydCBjb250cmlidXRlZCB0b29scyBpbnRvIGRpc3BsYXkgb3JkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFRvb2xDb250cmlidXRpb25zKFxuICB0b29sczogcmVhZG9ubHkgVG9vbGJhclRvb2xDb250cmlidXRpb25bXSxcbik6IFRvb2xiYXJUb29sQ29udHJpYnV0aW9uW10ge1xuICAvLyBTdGFibGU6IGVxdWFsIGBvcmRlcmAga2VlcHMgcmVnaXN0cmF0aW9uIG9yZGVyLCBzbyBhIGhvc3QgY29udHJvbHMgdGllcyBieVxuICAvLyBwcm92aWRlciBvcmRlciB3aXRob3V0IGhhdmluZyB0byBpbnZlbnQgbnVtYmVycy5cbiAgcmV0dXJuIHRvb2xzLm1hcCgodCwgaSkgPT4gKHsgdCwgaSB9KSkuc29ydCgoYSwgYikgPT5cbiAgICAoYS50Lm9yZGVyID8/IDEwMCkgLSAoYi50Lm9yZGVyID8/IDEwMCkgfHwgYS5pIC0gYi5pLFxuICApLm1hcCgoeyB0IH0pID0+IHQpO1xufVxuXG4vKiogVGhlIHRvb2xzIGEgdG9vbGJhciBzaG91bGQgYWN0dWFsbHkgc2hvdzogdGhvc2Ugd2l0aCBhdCBsZWFzdCBvbmUgbW9kZWwuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaWJsZVRvb2xDb250cmlidXRpb25zKFxuICB0b29sczogcmVhZG9ubHkgVG9vbGJhclRvb2xDb250cmlidXRpb25bXSB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBUb29sYmFyVG9vbENvbnRyaWJ1dGlvbltdIHtcbiAgcmV0dXJuIHNvcnRUb29sQ29udHJpYnV0aW9ucyh0b29scyA/PyBbXSkuZmlsdGVyKCh0KSA9PiB0Lm1vZGVscygpLmxlbmd0aCA+IDApO1xufVxuIl19
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci10b29sLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvdG9vbGJhci10b29sLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzREc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBaU0vQyx5RUFBeUU7QUFDekUsTUFBTSxVQUFVLHdCQUF3QixDQUFDLENBQVU7SUFDakQsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQXdCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWlDLGVBQWUsQ0FBQyxDQUFDO0FBRWpHLGlEQUFpRDtBQUNqRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQW1CO0lBRW5CLDZFQUE2RTtJQUM3RSxtREFBbUQ7SUFDbkQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ3JELENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVEO3VFQUN1RTtBQUN2RSxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLEtBQXdEO0lBRXhELE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDOUIsQ0FBQyxDQUFDLEVBQWdDLEVBQUUsQ0FDbEMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFRLENBQTZCLEVBQUUsTUFBTSxLQUFLLFVBQVUsQ0FDL0YsQ0FBQztJQUNGLE9BQU8scUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxLQUF3RCxFQUN4RCxNQUEwQyxPQUFPO0lBRWpELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDL0IsTUFBTSxHQUFHLEdBQW9DLEVBQUUsQ0FBQztJQUNoRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7UUFDL0QsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxRQUFRLEtBQUssVUFBVTtlQUNsRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxnR0FBZ0csRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5RyxTQUFTO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsRUFBRSxzREFBc0QsQ0FBQyxDQUFDO1lBQ2xHLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8scUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IGEgdG9vbCBnZXRzIGludG8gdGhlIHRvb2xiYXIgd2l0aG91dCB0aGlzIGxpYnJhcnkga25vd2luZyB3aGF0IGl0IGlzLlxuICpcbiAqIFdIWSBUSElTIEVYSVNUU1xuICogVGhlIFlPTE8gZGV0ZWN0b3IgYW5kIHRoZSByZXRpbmFsLWxheWVyIHNlZ21lbnRlciB1c2VkIHRvIGJlIGJ1aWx0IGluOiB0aGVpclxuICogYnV0dG9ucyB3ZXJlIGhhcmRjb2RlZCBpbiB0aGUgdG9vbGJhciB0ZW1wbGF0ZSwgdGhlaXIgbW9kZWwgcmVnaXN0cmllcyBuYW1lZFxuICogSkFYIGNoZWNrcG9pbnRzLCBhbmQgdGhlIGBJTlNUQU5DRV9TRUdNRU5URVJgIC8gYFNFTUFOVElDX1NFR01FTlRFUmAgdG9rZW5zXG4gKiBkZWZhdWx0ZWQgdG8gaW4tbGlicmFyeSBzZXJ2aWNlcyB0aGF0IGltcG9ydGVkIGB5b2xvLXNlZ2RldGVjdC1qc2AgYW5kXG4gKiBgamF4LWFpLWpzYC4gVGhvc2UgZGVmYXVsdCBmYWN0b3JpZXMgd2VyZSB0aGUgb25seSB0aGluZyBwdWxsaW5nIGVpdGhlclxuICogcGFja2FnZSBpbnRvIHRoZSBidW5kbGUg4oCUIHRoZSBjb250cmFjdHMgdGhlbXNlbHZlcyB3ZXJlIGFscmVhZHkgY2xlYW4uXG4gKlxuICogVGhhdCBhcnJhbmdlbWVudCBjYW5ub3Qgc2hpcCBpbiBhbiBvcGVuIGxpYnJhcnkgd2hpbGUgdGhlIG1vZGVscyBhcmUgY2xvc2VkLlxuICogU28gdGhlIHRvb2xzIG1vdmUgb3V0LCBpbnRvIGEgcGFja2FnZSB0aGF0IGRlcGVuZHMgb24gdGhpcyBvbmUsIGFuZCBhcnJpdmVcbiAqIGJhY2sgdGhyb3VnaCB7QGxpbmsgVE9PTEJBUl9UT09MU30uIFRoaXMgbGlicmFyeSBrZWVwcyB0aGUgY29udHJhY3RzLCB0aGVcbiAqIGNocm9tZSBhbmQgdGhlIHJlZ2lvbiBwbHVtYmluZzsgaXQgbm8gbG9uZ2VyIGtub3dzIHRoYXQgWU9MTyBleGlzdHMuXG4gKlxuICogQSBob3N0IHJlZ2lzdGVycyB0b29scyB3aXRoIGEgbXVsdGktcHJvdmlkZXI6XG4gKlxuICogICAgIHsgcHJvdmlkZTogVE9PTEJBUl9UT09MUywgdXNlRXhpc3Rpbmc6IFlvbG9Ub29sQ29udHJpYnV0aW9uLCBtdWx0aTogdHJ1ZSB9XG4gKlxuICogUmVnaXN0ZXIgbm90aGluZyBhbmQgdGhlIHRvb2xiYXIgaGFzIG5vIHNlZ21lbnRhdGlvbiB0b29scywgdGhlIGhlbHAgZGlhbG9nXG4gKiBsaXN0cyBub25lLCBhbmQgbmVpdGhlciBtb2RlbCBwYWNrYWdlIGlzIGluIHRoZSBncmFwaC5cbiAqXG4gKiBXSFkgUEFSQU1TIEFSRSBERUNMQVJFRCwgTk9UIFJFTkRFUkVEXG4gKiBBIGNvbnRyaWJ1dGlvbiBkZXNjcmliZXMgaXRzIHBhcmFtZXRlcnMgKHtAbGluayBUb29sUGFyYW1TcGVjfSkgaW5zdGVhZCBvZlxuICogc3VwcGx5aW5nIGEgY29tcG9uZW50IHRvIGRyYXcgdGhlbS4gVGhlIHRvb2xiYXIgcmVuZGVycyBvbmUgZ2VuZXJpYyBkaWFsb2dcbiAqIGZyb20gdGhhdCBkZXNjcmlwdGlvbi4gVGhlIGFsdGVybmF0aXZlIOKAlCBlYWNoIHBsdWdpbiBzaGlwcGluZyBpdHMgb3duIGRpYWxvZ1xuICogY29tcG9uZW50IOKAlCB3b3VsZCBtYWtlIGV2ZXJ5IHBsdWdpbiBkZXBlbmQgb24gdGhpcyBsaWJyYXJ5J3MgZXhhY3QgUHJpbWVOR1xuICogdmVyc2lvbiBhbmQgc3R5bGluZyBpbnRlcm5hbHMgdG8gbG9vayBsaWtlIHRoZSByZXN0IG9mIHRoZSB0b29sYmFyLCBhbmQgdGhlXG4gKiB0d28gZGlhbG9ncyB0aGF0IGV4aXN0IHRvZGF5IGFyZSBlbnRpcmVseSBudW1iZXJzIGFuZCBvbmUgY2hlY2tib3guIEEgc2NoZW1hXG4gKiBjb3ZlcnMgdGhlbSwgYW5kIGl0IGlzIHRoZSBzYW1lIHNoYXBlIGppdC11aSBhbHJlYWR5IHVzZXMgZm9yIGl0cyBwaXBlbGluZVxuICogc3RlcCBwYXJhbWV0ZXJzLCBzbyB0aGUgdm9jYWJ1bGFyeSBpcyBmYW1pbGlhci5cbiAqXG4gKiBJZiBhIHRvb2wgZXZlciBuZWVkcyBhIGNvbnRyb2wgdGhpcyBjYW5ub3QgZXhwcmVzcywgYWRkIGEgdmFyaWFudCBoZXJlIHJhdGhlclxuICogdGhhbiBhbiBlc2NhcGUgaGF0Y2ggdGhhdCByZXR1cm5zIGEgY29tcG9uZW50IOKAlCB0aGUgbW9tZW50IG9uZSB0b29sIGRyYXdzXG4gKiBpdHNlbGYsIHRoZSB0b29sYmFyIHN0b3BzIGJlaW5nIGFibGUgdG8gbGF5IHRvb2xzIG91dCBjb25zaXN0ZW50bHkuXG4gKlxuICogRElBTE9HIFRPT0xTXG4gKiBTb21lIHRvb2xzIGFyZSBub3QgXCJzZXQgcGFyYW1ldGVycywgcnVuIG9uY2VcIiBidXQgYW4gaW50ZXJhY3RpdmUgc2Vzc2lvbjogdGhlXG4gKiB1c2VyIHBhaW50cywgdGhlIHRvb2wgcmV0cmFpbnMgYW5kIHJlZHJhd3MsIG92ZXIgYW5kIG92ZXIgKERJQU5ORSkuIEEgc2NoZW1hXG4gKiBjYW5ub3QgZGVzY3JpYmUgdGhhdCwgc28ge0BsaW5rIFRvb2xiYXJEaWFsb2dUb29sQ29udHJpYnV0aW9ufSBpcyB0aGUgb25lXG4gKiB2YXJpYW50IHRoYXQgcmVuZGVycyBpdHMgb3duIGJvZHkuIFRoZSB0b29sYmFyIHN0aWxsIG93bnMgdGhlIGJ1dHRvbiwgaXRzXG4gKiBwbGFjZW1lbnQgYW5kIHRoZSBkaWFsb2cgY2hyb21lOyB0aGUgdG9vbCBvbmx5IGZpbGxzIHRoZSBkaWFsb2csIHdpdGggcGxhaW5cbiAqIERPTSAoYG1vdW50YCksIHNvIGl0IG5lZWRzIG5laXRoZXIgQW5ndWxhciBub3IgdGhpcyBsaWJyYXJ5J3MgUHJpbWVORyB2ZXJzaW9uLlxuICogSXRzIGJ1dHRvbiBzaXRzIHdpdGggdGhlIGhvc3QncyBvd24gYWN0aW9ucyBhdCB0aGUgc3RhcnQgb2YgdGhlIHRvb2xiYXIsIGFuZFxuICogc2hvd3Mgb25seSBpbiB0aGUgSW1hZ2UgdmlldywgdGhlIHZpZXcgaXRzIGNvbnRleHQgKHtAbGluayBUb29sRGlhbG9nQ29udGV4dH0pXG4gKiBkcmF3cyBvdmVyLlxuICpcbiAqIFdIWSBBTiBFTVBUWSBNT0RFTCBMSVNUIEhJREVTIFRIRSBUT09MXG4gKiB7QGxpbmsgVG9vbGJhclRvb2xDb250cmlidXRpb24ubW9kZWxzfSByZXR1cm5pbmcgYFtdYCByZW1vdmVzIHRoZSB0b29sIGZyb21cbiAqIHRoZSB0b29sYmFyIGVudGlyZWx5LiBUaGlzIHByZXNlcnZlcyB0aGUgYmVoYXZpb3VyIHRoZSBidWlsdC1pbiB0b29scyBhbHJlYWR5XG4gKiBoYWQgKHRoZWlyIGJ1dHRvbnMgd2VyZSBgKm5nSWZgJ2Qgb24gYSBmaWx0ZXJlZCByZWdpc3RyeSksIGFuZCBpdCBnaXZlcyBhIGhvc3RcbiAqIG9uZSBzd2l0Y2ggZm9yIFwidGhlIHdlaWdodHMgYXJlIG5vdCBjb25maWd1cmVkIGluIHRoaXMgZGVwbG95bWVudFwiIHRoYXQgZG9lc1xuICogbm90IHJlcXVpcmUgdW5yZWdpc3RlcmluZyB0aGUgcHJvdmlkZXIuXG4gKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBJVmlzdWFsaXplciB9IGZyb20gJy4vdmlzdWFsaXplci5jb250cmFjdCc7XG5pbXBvcnQgdHlwZSB7IFBsb3RNb2RlQ29udGV4dCwgUGxvdE1vZGVTZXNzaW9uLCBQbG90TW9kZVRvb2xzIH0gZnJvbSAnLi9wbG90LXR5cGUtY29udHJpYnV0aW9uLmNvbnRyYWN0JztcblxuLyoqIEEgbnVtYmVyIGZpZWxkLiBSZW5kZXJlZCBhcyBhIHN0ZXBwZXIsIG1hdGNoaW5nIHRoZSBidWlsdC1pbiBkaWFsb2dzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJQYXJhbVNwZWMge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnbnVtYmVyJztcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIHN0ZXA/OiBudW1iZXI7XG4gIC8qKiBEZWNpbWFsIHBsYWNlcyB0byBzaG93LiBPbWl0IGZvciBpbnRlZ2Vycy4gKi9cbiAgZnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gIC8qKiBIb3ZlciBoZWxwLiBQbGFpbiB0ZXh0OyBpdCBpcyBub3QgcmVuZGVyZWQgYXMgSFRNTC4gKi9cbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuLyoqIEEgY2hlY2tib3guIGBsYWJlbGAgc2l0cyBiZXNpZGUgaXQgYW5kIG1heSBydW4gdG8gYSBzZW50ZW5jZSBvciB0d28uICovXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5QYXJhbVNwZWMge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnYm9vbGVhbic7XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbi8qKiBBIGZpeGVkIHNldCBvZiBjaG9pY2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RQYXJhbVNwZWMge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnc2VsZWN0JztcbiAgb3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIH1bXTtcbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVG9vbFBhcmFtU3BlYyA9IE51bWJlclBhcmFtU3BlYyB8IEJvb2xlYW5QYXJhbVNwZWMgfCBTZWxlY3RQYXJhbVNwZWM7XG5cbi8qKiBPbmUgc2VsZWN0YWJsZSBjaGVja3BvaW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sTW9kZWxPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBjaGVja3BvaW50IGluIHRoZSBwaWNrZXIncyBob3ZlciB0b29sdGlwIOKAlCBzaXplLCBzcGVlZCxcbiAgICogdHJhaW5pbmcgZG9tYWluLCBhY2N1cmFjeS4gKipSZW5kZXJlZCBhcyBIVE1MKiosIHNvIGl0IGlzIHRydXN0ZWQgY29udGVudFxuICAgKiBmcm9tIHRoZSBjb250cmlidXRpbmcgcGFja2FnZSwgbmV2ZXIgYW55dGhpbmcgdXNlci1zdXBwbGllZC5cbiAgICovXG4gIGluZm8/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgdmFsdWVzIHRoaXMgY2hlY2twb2ludCB3YW50cywgbWVyZ2VkIG92ZXJcbiAgICoge0BsaW5rIFRvb2xiYXJUb29sQ29udHJpYnV0aW9uLmRlZmF1bHRQYXJhbXN9IHdoZW4gaXQgaXMgc2VsZWN0ZWQuIERlZmF1bHRzXG4gICAqIGJlbG9uZyB0byB0aGUgbW9kZWwgcmF0aGVyIHRoYW4gdGhlIHRvb2wg4oCUIGEgZGV0ZWN0b3IgdHJhaW5lZCBvbiBuYXRpdmUgNDB4XG4gICAqIHBhdGNoZXMgd2FudHMgZGlmZmVyZW50IHRpbGluZyBmcm9tIG9uZSB0cmFpbmVkIG9uIHRodW1ibmFpbHMuXG4gICAqL1xuICBkZWZhdWx0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFRoZSBgc3RhdHVzJGAgLyBgYnVzeSRgIC8gYHByb2dyZXNzJGAgc3VyZmFjZSB0aGUgdG9vbGJhciBkcml2ZXMgaXRzIHN0aWNreVxuICogdG9hc3QgYW5kIHByb2dyZXNzIGJhciBmcm9tLiBgcHJvZ3Jlc3MkYCBpcyBhIDAuLjEgZnJhY3Rpb24sIG9yIC0xIGZvclxuICogaW5kZXRlcm1pbmF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sUHJvZ3Jlc3Mge1xuICBzdGF0dXMkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGJ1c3kkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcm9ncmVzcyQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbn1cblxuLyoqIFRvb2xiYXIgaWNvbjogYSBwdWJsaXNoZWQgYXNzZXQsIG9yIGEgUHJpbWVJY29uIGNsYXNzIG5hbWUuICovXG5leHBvcnQgdHlwZSBUb29sSWNvbiA9IHsgc3JjOiBzdHJpbmc7IHBpPzogbmV2ZXIgfSB8IHsgcGk6IHN0cmluZzsgc3JjPzogbmV2ZXIgfTtcblxuLyoqXG4gKiBBIHRvb2wgY29udHJpYnV0ZWQgdG8gdGhlIHRvb2xiYXIuXG4gKlxuICogSW1wbGVtZW50IGl0IG9uIGFuIGBASW5qZWN0YWJsZSgpYCBzZXJ2aWNlIGluIHRoZSBjb250cmlidXRpbmcgcGFja2FnZSwgc28gaXRcbiAqIGNhbiBpbmplY3QgaXRzIG93biBzZWdtZW50ZXIgYW5kIG1vZGVsIHJlZ2lzdHJ5IOKAlCB0aGlzIGxpYnJhcnkgcHJvdmlkZXNcbiAqIG5laXRoZXIgYW5kIG11c3Qgbm90IGxlYXJuIHRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xiYXJUb29sQ29udHJpYnV0aW9uIHtcbiAgLyoqIFN0YWJsZSBpZGVudGl0eSwgdXNlZCBmb3IgdHJhY2tpbmcgYW5kIHBlcnNpc3RlZCBwcmVmZXJlbmNlcy4gKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIFNob3J0IG5hbWUsIHVzZWQgaW4gdGhlIHRvYXN0IGFuZCB0aGUgaGVscCBkaWFsb2cgaGVhZGluZy4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogVG9vbEljb247XG5cbiAgLyoqIFRvb2x0aXAgb24gdGhlIHJ1biBidXR0b24g4oCUIHNheSB3aGF0IGl0IGRvZXMgdG8gdGhlIGN1cnJlbnQgdmlldy4gKi9cbiAgcnVuVG9vbHRpcDogc3RyaW5nO1xuICAvKiogVG9vbHRpcCBvbiB0aGUgY2hlY2twb2ludCBwaWNrZXIuIERlZmF1bHRzIHRvIFwiUGljayB0aGUgbW9kZWxcIi4gKi9cbiAgbW9kZWxUb29sdGlwPzogc3RyaW5nO1xuICAvKiogVG9vbHRpcCBvbiB0aGUgcGFyYW1ldGVycyBidXR0b24uIERlZmF1bHRzIHRvIFwiUGFyYW1ldGVyc1wiLiAqL1xuICBwYXJhbXNUb29sdGlwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVyZSBpdCBzaXRzIGFtb25nIHRoZSBzZWdtZW50YXRpb24gdG9vbHMuIExvd2VyIHNvcnRzIGZpcnN0OyB0aWVzIGZhbGxcbiAgICogYmFjayB0byByZWdpc3RyYXRpb24gb3JkZXIuIFRoZSBidWlsdC1pbiBwcm9tcHRlZCB0b29scyBvY2N1cHkgMC05OSwgc29cbiAgICogY29udHJpYnV0ZWQgdG9vbHMgc2hvdWxkIHN0YXJ0IGF0IDEwMCB0byBsYW5kIGFmdGVyIHRoZW0uXG4gICAqL1xuICBvcmRlcj86IG51bWJlcjtcblxuICAvKiogU2VsZWN0YWJsZSBjaGVja3BvaW50cy4gKipFbXB0eSBoaWRlcyB0aGUgdG9vbC4qKiAqL1xuICBtb2RlbHMoKTogVG9vbE1vZGVsT3B0aW9uW107XG4gIC8qKiBXaGljaCBjaGVja3BvaW50IHJ1bnMgd2hlbiB0aGUgdXNlciBoYXMgbm90IGNob3Nlbi4gKi9cbiAgZGVmYXVsdE1vZGVsSWQoKTogc3RyaW5nO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgcGlja3MgYSBjaGVja3BvaW50LCBiZWZvcmUgcGFyYW1ldGVycyBhcmUgcmUtc2VlZGVkLlxuICAgKiBVc2UgaXQgdG8gcmVjb3JkIHRoZSBjaG9pY2UgaW4gdGhlIGNvbnRyaWJ1dGluZyBwYWNrYWdlJ3Mgb3duIHJlZ2lzdHJ5LlxuICAgKi9cbiAgb25Nb2RlbENoYW5nZT8obW9kZWxJZDogc3RyaW5nKTogdm9pZDtcblxuICAvKiogUGFyYW1ldGVyIGZpZWxkcywgaW4gZGlhbG9nIG9yZGVyLiBFbXB0eSBoaWRlcyB0aGUgcGFyYW1ldGVycyBidXR0b24uICovXG4gIHBhcmFtczogVG9vbFBhcmFtU3BlY1tdO1xuICAvKipcbiAgICogQmFzZWxpbmUgcGFyYW1ldGVyIHZhbHVlcyBmb3IgYSBjaGVja3BvaW50LiBDYWxsZWQgb24gZmlyc3QgdXNlIGFuZCBhZ2FpblxuICAgKiBvbiBcIlJlc2V0IHRvIG1vZGVsIGRlZmF1bHRzXCIsIHNvIGl0IG11c3QgYmUgcHVyZSBhbmQgbXVzdCByZXR1cm4gZXZlcnkga2V5XG4gICAqIHRoZSB0b29sIHJlYWRzIOKAlCBhIHBhcmFtZXRlciB0aGUgZGlhbG9nIHNob3dzIGJ1dCB0aGlzIG9taXRzIHJlbmRlcnMgYXNcbiAgICogZW1wdHkgYW5kIHJlYWNoZXMgYHJ1bmAgYXMgdW5kZWZpbmVkLlxuICAgKi9cbiAgZGVmYXVsdFBhcmFtcyhtb2RlbElkOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKipcbiAgICogRW50cnkgZm9yIHRoZSBoZWxwIGRpYWxvZydzIHRvb2wgbGlzdC4gYGJvZHlgIGlzIHJlbmRlcmVkIGFzIEhUTUwgYW5kIG1heVxuICAgKiByZWZlcmVuY2UgcHVibGlzaGVkIGFzc2V0cyAoZS5nLiB0aGUgdG9vbCdzIG93biBpY29uKS5cbiAgICovXG4gIGhlbHA/OiB7IGJvZHk6IHN0cmluZyB9O1xuXG4gIC8qKiBQcm9ncmVzcyBzdXJmYWNlIGZvciB0aGUgdG9hc3QuICovXG4gIHByb2dyZXNzOiBUb29sUHJvZ3Jlc3M7XG5cbiAgLyoqXG4gICAqIFJ1biBvdmVyIHdoYXQgaXMgY3VycmVudGx5IGRpc3BsYXllZCwgYW5kIHdyaXRlIHdoYXRldmVyIGl0IGZpbmRzIHRocm91Z2hcbiAgICogYHZpemAuIFJlc29sdmVzIHdpdGggdGhlIG51bWJlciBvZiByZWdpb25zIGFkZGVkLlxuICAgKlxuICAgKiBFdmVyeXRoaW5nIHRoZSB0b29sIG5lZWRzIGlzIG9uIHtAbGluayBJVmlzdWFsaXplcn0sIHdoaWNoIGlzIHBhcnQgb2YgdGhpc1xuICAgKiBsaWJyYXJ5J3MgcHVibGljIHN1cmZhY2Ug4oCUIGEgY29udHJpYnV0aW9uIG5ldmVyIHJlYWNoZXMgaW50byBpbnRlcm5hbHMuXG4gICAqIFJlZ2lvbiB3cml0ZXMgZ28gdGhyb3VnaCB0aGUgc2FtZSBwYXRoIHRoZSBidWlsdC1pbiB0b29scyB1c2UsIHNvIHRoZVxuICAgKiBpbmRleC1iYXNlZCBvdmVybGF5cyBhbmQgdGhlIFJlZ2lvbnMgdGFibGUgc3RheSBjb25zaXN0ZW50LlxuICAgKi9cbiAgcnVuKHZpejogSVZpc3VhbGl6ZXIsIHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPG51bWJlcj47XG59XG5cbi8qKlxuICogV2hhdCBhIGRpYWxvZyB0b29sIGdldHMgd2hpbGUgaXRzIGRpYWxvZyBpcyBvcGVuOiB0aGUgc2FtZSBzdXJmYWNlIGFcbiAqIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZSBnZXRzICh0aGUgcHVibGljIHZpc3VhbGl6ZXIsIHRoZSBJbWFnZSB2aWV3J3Mgdmlld3BvcnRcbiAqIGFuZCB0aGUgY3VycmVudCBpbWFnZSksIHdpdGggdGhlIHRvb2xiYXIgdG9vbHMgYWx3YXlzIHByZXNlbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFRvb2xEaWFsb2dDb250ZXh0ID0gUGxvdE1vZGVDb250ZXh0ICYgeyB0b29sczogUGxvdE1vZGVUb29scyB9O1xuXG4vKiogQSBsaXZlIGRpYWxvZy10b29sIHNlc3Npb24uIGBkZWFjdGl2YXRlKClgIHJ1bnMgZXhhY3RseSBvbmNlLCBhZnRlciB0aGUgYm9keSdzIHRlYXJkb3duLiAqL1xuZXhwb3J0IHR5cGUgVG9vbERpYWxvZ1Nlc3Npb24gPSBQbG90TW9kZVNlc3Npb247XG5cbi8qKlxuICogQSB0b29sYmFyIHRvb2wgdGhhdCBvcGVucyBhIGRpYWxvZyBpbnN0ZWFkIG9mIHJ1bm5pbmcgb25jZSAoc2VlIERJQUxPRyBUT09MU1xuICogYWJvdmUpLiBDbGlja2luZyBpdHMgYnV0dG9uIG9wZW5zIHRoZSBkaWFsb2cgYW5kIHN0YXJ0cyBhIHNlc3Npb247IGNsaWNraW5nIGl0XG4gKiBhZ2Fpbiwgb3IgY2xvc2luZyB0aGUgZGlhbG9nLCBlbmRzIGl0LlxuICpcbiAqIFRoZSBzZXNzaW9uIGlzIGJvdW5kIHRvIHRoZSBJbWFnZSB2aWV3IG9uIHNjcmVlbi4gV2hlbiB0aGF0IHZpZXcgaXMgcmUtcmVuZGVyZWRcbiAqIChhbm90aGVyIGltYWdlLCBhbm90aGVyIHNsaWNlKSB0aGUgc2Vzc2lvbiBlbmRzIGFuZCwgd2l0aCB0aGUgZGlhbG9nIHN0aWxsXG4gKiBvcGVuLCBhIGZyZXNoIG9uZSBzdGFydHMgb25jZSB0aGUgbmV3IHZpZXcgaXMgcmVhZHkuIExlYXZpbmcgdGhlIEltYWdlIHZpZXdcbiAqIGNsb3NlcyB0aGUgZGlhbG9nLiBBcyB3aXRoIHBsb3QgbW9kZXMsIG5vdGhpbmcgdGhlIHRvb2wgdGhyb3dzIG9yIHJlamVjdHNcbiAqIGVzY2FwZXM6IGEgZmFpbGVkIHN0YXJ0IGNsb3NlcyB0aGUgZGlhbG9nIHdpdGggYSB3YXJuaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xiYXJEaWFsb2dUb29sQ29udHJpYnV0aW9uIHtcbiAga2luZDogJ2RpYWxvZyc7XG4gIC8qKiBTdGFibGUgaWRlbnRpdHkuIE11c3Qgbm90IGNsYXNoIHdpdGggYW5vdGhlciB0b29sYmFyIHRvb2wuICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBTaG9ydCBuYW1lOyB0aGUgZGlhbG9nIHRpdGxlIHVubGVzcyBgZGlhbG9nLnRpdGxlYCBpcyBzZXQuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IFRvb2xJY29uO1xuICAvKiogVG9vbHRpcCBvbiB0aGUgYnV0dG9uLiAqL1xuICB0b29sdGlwOiBzdHJpbmc7XG4gIC8qKiBPcmRlciBhbW9uZyB0aGUgZGlhbG9nIHRvb2xzLiBMb3dlciBzb3J0cyBmaXJzdDsgdGllcyBrZWVwIHJlZ2lzdHJhdGlvbiBvcmRlci4gKi9cbiAgb3JkZXI/OiBudW1iZXI7XG4gIGRpYWxvZz86IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICAvKiogQ1NTIHdpZHRoIG9mIHRoZSBkaWFsb2cuIERlZmF1bHQgYCcyMnJlbSdgLiAqL1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICB9O1xuICAvKiogRW50cnkgZm9yIHRoZSBoZWxwIGRpYWxvZydzIHRvb2wgbGlzdCwgcmVuZGVyZWQgYXMgSFRNTCAodHJ1c3RlZCBjb250ZW50KS4gKi9cbiAgaGVscD86IHsgYm9keTogc3RyaW5nIH07XG4gIC8qKiBTdGFydCBhIHNlc3Npb24sIG9uY2UgdGhlIEltYWdlIHZpZXcncyB2aWV3cG9ydCBpcyByZWFkeS4gKi9cbiAgYWN0aXZhdGUoY3R4OiBUb29sRGlhbG9nQ29udGV4dCk6IFRvb2xEaWFsb2dTZXNzaW9uIHwgUHJvbWlzZTxUb29sRGlhbG9nU2Vzc2lvbj47XG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGRpYWxvZyBib2R5IGludG8gYGhvc3RgOyByZXR1cm4gaXRzIHRlYXJkb3duIChjYWxsZWQgYmVmb3JlXG4gICAqIGBkZWFjdGl2YXRlKClgKS4gQ2FsbGVkIGFmdGVyIGBhY3RpdmF0ZWAgcmVzb2x2ZXMsIG9uY2UgdGhlIGRpYWxvZyBoYXMgcmVuZGVyZWQgYW5kXG4gICAqIGBob3N0YCBpcyBpbiB0aGUgZG9jdW1lbnQsIHNvIHRoZSBib2R5IGNhbiBtZWFzdXJlIGl0c2VsZi5cbiAgICovXG4gIG1vdW50KGhvc3Q6IEhUTUxFbGVtZW50LCBjdHg6IFRvb2xEaWFsb2dDb250ZXh0LCBzZXNzaW9uOiBUb29sRGlhbG9nU2Vzc2lvbik6ICgpID0+IHZvaWQ7XG59XG5cbi8qKiBBbnl0aGluZyBwcm92aWRlZCBvbiB7QGxpbmsgVE9PTEJBUl9UT09MU30uIEEgcnVuIHRvb2wgaGFzIG5vIGBraW5kYC4gKi9cbmV4cG9ydCB0eXBlIFRvb2xiYXJDb250cmlidXRpb24gPSBUb29sYmFyVG9vbENvbnRyaWJ1dGlvbiB8IFRvb2xiYXJEaWFsb2dUb29sQ29udHJpYnV0aW9uO1xuXG4vKiogV2hldGhlciBhIGNvbnRyaWJ1dGlvbiBpcyBhIHtAbGluayBUb29sYmFyRGlhbG9nVG9vbENvbnRyaWJ1dGlvbn0uICovXG5leHBvcnQgZnVuY3Rpb24gaXNEaWFsb2dUb29sQ29udHJpYnV0aW9uKGM6IHVua25vd24pOiBjIGlzIFRvb2xiYXJEaWFsb2dUb29sQ29udHJpYnV0aW9uIHtcbiAgcmV0dXJuICEhYyAmJiAoYyBhcyB7IGtpbmQ/OiB1bmtub3duIH0pLmtpbmQgPT09ICdkaWFsb2cnO1xufVxuXG4vKipcbiAqIE11bHRpLXByb3ZpZGVyIHRva2VuIGZvciBjb250cmlidXRlZCB0b29sczogcnVuIHRvb2xzXG4gKiAoe0BsaW5rIFRvb2xiYXJUb29sQ29udHJpYnV0aW9ufSkgYW5kLCBzaW5jZSAwLjYuMCwgZGlhbG9nIHRvb2xzXG4gKiAoe0BsaW5rIFRvb2xiYXJEaWFsb2dUb29sQ29udHJpYnV0aW9ufSkuXG4gKlxuICogRGVsaWJlcmF0ZWx5IGhhcyBubyBgZmFjdG9yeWA6IHVucmVnaXN0ZXJlZCBtZWFucyBubyB0b29scywgd2hpY2ggaXMgd2hhdFxuICogbWFrZXMgdGhpcyBsaWJyYXJ5IHNoaXBwYWJsZSB3aXRob3V0IHRoZSBjbG9zZWQgbW9kZWwgcGFja2FnZXMuIEluamVjdCBpdFxuICogYHsgb3B0aW9uYWw6IHRydWUgfWAgYW5kIHRyZWF0IG51bGwgYXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBUT09MQkFSX1RPT0xTID0gbmV3IEluamVjdGlvblRva2VuPHJlYWRvbmx5IFRvb2xiYXJDb250cmlidXRpb25bXT4oJ1RPT0xCQVJfVE9PTFMnKTtcblxuLyoqIFNvcnQgY29udHJpYnV0ZWQgdG9vbHMgaW50byBkaXNwbGF5IG9yZGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvcnRUb29sQ29udHJpYnV0aW9uczxUIGV4dGVuZHMgeyBvcmRlcj86IG51bWJlciB9PihcbiAgdG9vbHM6IHJlYWRvbmx5IFRbXSxcbik6IFRbXSB7XG4gIC8vIFN0YWJsZTogZXF1YWwgYG9yZGVyYCBrZWVwcyByZWdpc3RyYXRpb24gb3JkZXIsIHNvIGEgaG9zdCBjb250cm9scyB0aWVzIGJ5XG4gIC8vIHByb3ZpZGVyIG9yZGVyIHdpdGhvdXQgaGF2aW5nIHRvIGludmVudCBudW1iZXJzLlxuICByZXR1cm4gdG9vbHMubWFwKCh0LCBpKSA9PiAoeyB0LCBpIH0pKS5zb3J0KChhLCBiKSA9PlxuICAgIChhLnQub3JkZXIgPz8gMTAwKSAtIChiLnQub3JkZXIgPz8gMTAwKSB8fCBhLmkgLSBiLmksXG4gICkubWFwKCh7IHQgfSkgPT4gdCk7XG59XG5cbi8qKiBUaGUgcnVuIHRvb2xzIGEgdG9vbGJhciBzaG91bGQgYWN0dWFsbHkgc2hvdzogdGhvc2Ugd2l0aCBhdCBsZWFzdCBvbmUgbW9kZWwuXG4gKiAgRGlhbG9nIHRvb2xzIGFyZSBsZWZ0IG91dCAoc2VlIHtAbGluayBkaWFsb2dUb29sQ29udHJpYnV0aW9uc30pLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpc2libGVUb29sQ29udHJpYnV0aW9ucyhcbiAgdG9vbHM6IHJlYWRvbmx5IFRvb2xiYXJDb250cmlidXRpb25bXSB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBUb29sYmFyVG9vbENvbnRyaWJ1dGlvbltdIHtcbiAgY29uc3QgcnVuID0gKHRvb2xzID8/IFtdKS5maWx0ZXIoXG4gICAgKHQpOiB0IGlzIFRvb2xiYXJUb29sQ29udHJpYnV0aW9uID0+XG4gICAgICAhaXNEaWFsb2dUb29sQ29udHJpYnV0aW9uKHQpICYmIHR5cGVvZiAodCBhcyBUb29sYmFyVG9vbENvbnRyaWJ1dGlvbik/Lm1vZGVscyA9PT0gJ2Z1bmN0aW9uJyxcbiAgKTtcbiAgcmV0dXJuIHNvcnRUb29sQ29udHJpYnV0aW9ucyhydW4pLmZpbHRlcigodCkgPT4gdC5tb2RlbHMoKS5sZW5ndGggPiAwKTtcbn1cblxuLyoqXG4gKiBUaGUgZGlhbG9nIHRvb2xzLCBpbiBkaXNwbGF5IG9yZGVyLiBBIG1hbGZvcm1lZCBvbmUgKG5vIHN0cmluZyBgaWRgLCBub1xuICogYGFjdGl2YXRlYCBvciBgbW91bnRgIGZ1bmN0aW9uKSBvciBhIHJlcGVhdGVkIGBpZGAgaXMgZHJvcHBlZCB3aXRoIGEgd2FybmluZ1xuICogcmF0aGVyIHRoYW4gYnJlYWtpbmcgdGhlIHRvb2xiYXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWFsb2dUb29sQ29udHJpYnV0aW9ucyhcbiAgdG9vbHM6IHJlYWRvbmx5IFRvb2xiYXJDb250cmlidXRpb25bXSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIGxvZzogeyB3YXJuKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQgfSA9IGNvbnNvbGUsXG4pOiBUb29sYmFyRGlhbG9nVG9vbENvbnRyaWJ1dGlvbltdIHtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBvdXQ6IFRvb2xiYXJEaWFsb2dUb29sQ29udHJpYnV0aW9uW10gPSBbXTtcbiAgZm9yIChjb25zdCB0IG9mICh0b29scyA/PyBbXSkuZmlsdGVyKGlzRGlhbG9nVG9vbENvbnRyaWJ1dGlvbikpIHtcbiAgICBpZiAodHlwZW9mIHQuaWQgIT09ICdzdHJpbmcnIHx8ICF0LmlkIHx8IHR5cGVvZiB0LmFjdGl2YXRlICE9PSAnZnVuY3Rpb24nXG4gICAgICAgIHx8IHR5cGVvZiB0Lm1vdW50ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBsb2cud2FybignW3Zpc3VhbGl6ZXJdIGRpYWxvZyB0b29sIGlnbm9yZWQ6IGl0IG5lZWRzIGEgc3RyaW5nIGBpZGAgYW5kIGBhY3RpdmF0ZWAgYW5kIGBtb3VudGAgZnVuY3Rpb25zLicsIHQpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChzZWVuLmhhcyh0LmlkKSkge1xuICAgICAgbG9nLndhcm4oYFt2aXN1YWxpemVyXSBkaWFsb2cgdG9vbCAnJHt0LmlkfScgaWdub3JlZDogYW5vdGhlciBkaWFsb2cgdG9vbCBhbHJlYWR5IHVzZXMgdGhhdCBpZC5gKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBzZWVuLmFkZCh0LmlkKTtcbiAgICBvdXQucHVzaCh0KTtcbiAgfVxuICByZXR1cm4gc29ydFRvb2xDb250cmlidXRpb25zKG91dCk7XG59XG4iXX0=
|