@jax-data-science/sci-image-visualizer 0.13.0 → 0.15.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/esm2022/lib/channel-histogram/channel-histogram.component.mjs +39 -3
- package/esm2022/lib/channel-histogram/channel-tree.mjs +65 -0
- package/esm2022/lib/contracts/channel-histogram-api.contract.mjs +19 -1
- package/esm2022/lib/contracts/display-types.mjs +7 -1
- package/esm2022/lib/contracts/image.contract.mjs +1 -1
- package/esm2022/lib/contracts/spatial-dataset.contract.mjs +1 -1
- package/esm2022/lib/contracts/visualizer.contract.mjs +1 -1
- package/esm2022/lib/implementations/napari-js/napari-image-2d-scene.mjs +17 -2
- package/esm2022/lib/implementations/napari-js/napari-spatial-2d-scene.mjs +88 -10
- package/esm2022/lib/implementations/napari-js/napari-spatial-3d-scene.mjs +62 -13
- package/esm2022/lib/implementations/napari-js/napari-spatial-encoding.mjs +21 -1
- package/esm2022/lib/implementations/napari-js/napari-spatial-scene.mjs +5 -1
- package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +4 -1
- package/esm2022/lib/implementations/napari-js/spatial-tiles/categorical-lookup.mjs +26 -3
- package/esm2022/lib/implementations/napari-js/spatial-tiles/cell-layers.mjs +7 -9
- package/esm2022/lib/implementations/napari-js/spatial-tiles/density-layer.mjs +20 -4
- package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-hover.mjs +4 -2
- package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-jobs.mjs +4 -2
- package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-layers.mjs +42 -15
- package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +3 -1
- package/esm2022/lib/spatial/lod.mjs +24 -3
- package/esm2022/lib/spatial/spatial-controls.facade.mjs +8 -3
- package/esm2022/lib/spatial/spatial-gene-filter.mjs +138 -0
- package/esm2022/lib/spatial/spatial-tile-merge.mjs +42 -1
- package/esm2022/lib/spatial-controls/spatial-cells-panel/spatial-cells-panel.component.mjs +47 -10
- package/esm2022/lib/spatial-controls/spatial-controls.component.mjs +4 -3
- package/esm2022/lib/spatial-controls/spatial-gene-style/spatial-gene-style.component.mjs +66 -0
- package/esm2022/lib/spatial-controls/spatial-gene-tree/spatial-gene-tree.component.mjs +106 -26
- package/esm2022/lib/spatial-controls/spatial-groups-panel/spatial-groups-panel.component.mjs +3 -3
- package/esm2022/lib/spatial-controls/spatial-key/spatial-key.component.mjs +3 -3
- package/esm2022/lib/spatial-controls/spatial-marker-genes-form/spatial-marker-genes-form.component.mjs +3 -3
- package/esm2022/lib/spatial-controls/spatial-observations-panel/spatial-observations-panel.component.mjs +110 -8
- package/esm2022/lib/spatial-controls/spatial-transcripts-panel/spatial-transcripts-panel.component.mjs +41 -9
- package/esm2022/lib/store/visualizer-store.service.mjs +67 -1
- package/fesm2022/{jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-DURPqs5a.mjs → jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-qUeMuBb0.mjs} +1250 -335
- package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-qUeMuBb0.mjs.map +1 -0
- package/fesm2022/{jax-data-science-sci-image-visualizer-onnx-sam-session-D0IQ6PjZ.mjs → jax-data-science-sci-image-visualizer-onnx-sam-session-U1ODcfYD.mjs} +3 -2
- package/fesm2022/{jax-data-science-sci-image-visualizer-onnx-sam-session-D0IQ6PjZ.mjs.map → jax-data-science-sci-image-visualizer-onnx-sam-session-U1ODcfYD.mjs.map} +1 -1
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs +2 -1
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -1
- package/lib/channel-histogram/channel-histogram.component.d.ts +14 -0
- package/lib/channel-histogram/channel-tree.d.ts +30 -0
- package/lib/contracts/channel-histogram-api.contract.d.ts +16 -0
- package/lib/contracts/display-types.d.ts +27 -0
- package/lib/contracts/image.contract.d.ts +8 -0
- package/lib/contracts/spatial-dataset.contract.d.ts +7 -0
- package/lib/contracts/visualizer.contract.d.ts +3 -0
- package/lib/implementations/napari-js/napari-image-2d-scene.d.ts +7 -0
- package/lib/implementations/napari-js/napari-spatial-2d-scene.d.ts +13 -2
- package/lib/implementations/napari-js/napari-spatial-encoding.d.ts +5 -0
- package/lib/implementations/napari-js/napari-spatial-scene.d.ts +4 -0
- package/lib/implementations/napari-js/napari-visualizer.service.d.ts +2 -0
- package/lib/implementations/napari-js/spatial-tiles/categorical-lookup.d.ts +6 -1
- package/lib/implementations/napari-js/spatial-tiles/transcript-hover.d.ts +4 -0
- package/lib/implementations/napari-js/spatial-tiles/transcript-layers.d.ts +3 -1
- package/lib/spatial/lod.d.ts +14 -2
- package/lib/spatial/spatial-controls.facade.d.ts +3 -0
- package/lib/spatial/spatial-gene-filter.d.ts +44 -0
- package/lib/spatial/spatial-tile-merge.d.ts +17 -0
- package/lib/spatial-controls/spatial-cells-panel/spatial-cells-panel.component.d.ts +18 -1
- package/lib/spatial-controls/spatial-gene-style/spatial-gene-style.component.d.ts +30 -0
- package/lib/spatial-controls/spatial-gene-tree/spatial-gene-tree.component.d.ts +39 -7
- package/lib/spatial-controls/spatial-observations-panel/spatial-observations-panel.component.d.ts +33 -1
- package/lib/spatial-controls/spatial-transcripts-panel/spatial-transcripts-panel.component.d.ts +13 -1
- package/lib/store/visualizer-store.service.d.ts +19 -0
- package/package.json +1 -1
- package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-DURPqs5a.mjs.map +0 -1
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* How many channels of a multichannel image start visible. Each visible channel is drawn
|
|
4
|
+
* from tiles of its own, so a 22-channel plate showed every channel at once and asked the
|
|
5
|
+
* server for 22 tiles per position on every pan and zoom. Channels past these start hidden
|
|
6
|
+
* (one click shows them), and a hidden channel fetches no tiles.
|
|
7
|
+
*/
|
|
8
|
+
export const DEFAULT_VISIBLE_CHANNELS = 4;
|
|
9
|
+
/**
|
|
10
|
+
* Whether channel `index` of `count` starts visible: as the image says when its
|
|
11
|
+
* `channelInfo` does, else every channel of an image with at most
|
|
12
|
+
* {@link DEFAULT_VISIBLE_CHANNELS}, and the first {@link DEFAULT_VISIBLE_CHANNELS} of one with more.
|
|
13
|
+
* Only a boolean says: a descriptor's `null` (a JSON field left empty) leaves the default.
|
|
14
|
+
*/
|
|
15
|
+
export function defaultChannelVisible(index, count, specified) {
|
|
16
|
+
if (typeof specified === 'boolean')
|
|
17
|
+
return specified;
|
|
18
|
+
return count <= DEFAULT_VISIBLE_CHANNELS || index < DEFAULT_VISIBLE_CHANNELS;
|
|
19
|
+
}
|
|
2
20
|
/** The standard LUT pseudo-colours (mirrors Fiji's Merge Channels palette) for
|
|
3
21
|
* quick per-channel assignment. */
|
|
4
22
|
export const LUT_COLORS = [
|
|
@@ -15,4 +33,4 @@ export const LUT_COLORS = [
|
|
|
15
33
|
* (VisualizationModule / provideVisualization); hosts inject it, they do not provide it.
|
|
16
34
|
*/
|
|
17
35
|
export const CHANNEL_HISTOGRAM_API = new InjectionToken('CHANNEL_HISTOGRAM_API');
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1oaXN0b2dyYW0tYXBpLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvY2hhbm5lbC1oaXN0b2dyYW0tYXBpLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFzQi9DO29DQUNvQztBQUNwQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQW1EO0lBQ3hFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2pDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ25DLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2xDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2xDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2xDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0NBQ3JDLENBQUM7QUFzRkY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXVCLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSUltYWdlTWV0YWRhdGEgfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB7IENvbG9ybWFwTm9kZSB9IGZyb20gJy4vZGlzcGxheS10eXBlcyc7XG5cbi8qKlxuICogRGlzcGxheSBzdGF0ZSBmb3Igb25lIGltYWdlIGNoYW5uZWwgaW4gdGhlIENoYW5uZWxzICYgSGlzdG9ncmFtIHBhbmUuXG4gKiBgbWluYC9gbWF4YCBhcmUgdGhlIGRpc3BsYXkgd2luZG93IChjb250cmFzdC9icmlnaHRuZXNzKSBpbiByYXcgMC4uMjU1IHNwYWNlO1xuICogYGdhbW1hYCBzaGFwZXMgdGhlIHRyYW5zZmVyIGN1cnZlOyBgY29sb3JgIGlzIHRoZSBjaGFubmVsJ3MgZGlzcGxheSB0aW50XG4gKiAodXNlZCB3aGVuIGNvbXBvc2l0aW5nIG11bHRpcGxlIGNoYW5uZWxzKTsgYHZpc2libGVgIHRvZ2dsZXMgaXQgb24vb2ZmLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDaGFubmVsU3RhdGUge1xuICBpbmRleDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IHRpbnQgYXMgYCNycmdnYmJgLiAqL1xuICBjb2xvcjogc3RyaW5nO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIGdhbW1hOiBudW1iZXI7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgc3RhbmRhcmQgTFVUIHBzZXVkby1jb2xvdXJzIChtaXJyb3JzIEZpamkncyBNZXJnZSBDaGFubmVscyBwYWxldHRlKSBmb3JcbiAqICBxdWljayBwZXItY2hhbm5lbCBhc3NpZ25tZW50LiAqL1xuZXhwb3J0IGNvbnN0IExVVF9DT0xPUlM6IFJlYWRvbmx5QXJyYXk8eyBuYW1lOiBzdHJpbmc7IGNvbG9yOiBzdHJpbmcgfT4gPSBbXG4gIHsgbmFtZTogJ1JlZCcsIGNvbG9yOiAnI2ZmMDAwMCcgfSxcbiAgeyBuYW1lOiAnR3JlZW4nLCBjb2xvcjogJyMwMGZmMDAnIH0sXG4gIHsgbmFtZTogJ0JsdWUnLCBjb2xvcjogJyMwMDAwZmYnIH0sXG4gIHsgbmFtZTogJ0dyYXknLCBjb2xvcjogJyNmZmZmZmYnIH0sXG4gIHsgbmFtZTogJ0N5YW4nLCBjb2xvcjogJyMwMGZmZmYnIH0sXG4gIHsgbmFtZTogJ01hZ2VudGEnLCBjb2xvcjogJyNmZjAwZmYnIH0sXG4gIHsgbmFtZTogJ1llbGxvdycsIGNvbG9yOiAnI2ZmZmYwMCcgfSxcbl07XG5cbi8qKiBBIGJpbm5lZCBpbnRlbnNpdHkgaGlzdG9ncmFtIGZvciBvbmUgY2hhbm5lbC5cbiAqXG4gKiBUaGUgOC1iaXQgY2xpZW50IHBhdGggKFJHQiAvIDgtYml0IGdyYXlzY2FsZSwgc2FtcGxlZCBmcm9tIGRpc3BsYXllZCB0aWxlcylcbiAqIGxlYXZlcyB0aGUgbmF0aXZlIGZpZWxkcyB1bmRlZmluZWQgYW5kIGBiaW5zYCBzcGFuIDAuLjI1NS4gVGhlIG5hdGl2ZSBwYXRoXG4gKiAoPjgtYml0IGltYWdlcywgZnJvbSB0aGUgc2VydmVyIGAvaGlzdG9ncmFtYCBlbmRwb2ludCkgZmlsbHMgYGJpdERlcHRoYCxcbiAqIGByYW5nZU1pbmAvYHJhbmdlTWF4YCAodGhlIHBpeGVsLXR5cGUgc3BhbiB0aGUgYmlucyBjb3ZlcikgYW5kXG4gKiBgb2JzZXJ2ZWRNaW5gL2BvYnNlcnZlZE1heGAgKHRoZSBhY3R1YWwgZXh0cmVtZXMgc2VlbiksIHNvIHRoZSBkaWFsb2cgY2FuXG4gKiBsYWJlbCB0aGUgd2luZG93L2F4aXMgaW4gbmF0aXZlIHVuaXRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSGlzdG9ncmFtIHtcbiAgLyoqIExlZnQgZWRnZSBvZiBlYWNoIGJpbiAoMC4uMjU1IGZvciB0aGUgOC1iaXQgcGF0aCwgbmF0aXZlIHVuaXRzIG90aGVyd2lzZSkuICovXG4gIGJpbnM6IG51bWJlcltdO1xuICAvKiogUGl4ZWwgY291bnQgcGVyIGJpbiwgbGVuZ3RoID0gYmluIGNvdW50LiAqL1xuICBjb3VudHM6IG51bWJlcltdO1xuICAvKiogTGFyZ2VzdCBiaW4gY291bnQsIGZvciB5LWF4aXMgc2NhbGluZy4gKi9cbiAgbWF4OiBudW1iZXI7XG4gIC8qKiBOYXRpdmUgYml0IGRlcHRoICg4LCAxNiwg4oCmKSDigJQgcHJlc2VudCBvbmx5IG9uIHRoZSBuYXRpdmUgc2VydmVyIHBhdGguICovXG4gIGJpdERlcHRoPzogbnVtYmVyO1xuICAvKiogUGl4ZWwtdHlwZSByYW5nZSB0aGUgYmlucyBzcGFuIChlLmcuIDAuLjY1NTM1KSwgbmF0aXZlIHBhdGggb25seS4gKi9cbiAgcmFuZ2VNaW4/OiBudW1iZXI7XG4gIHJhbmdlTWF4PzogbnVtYmVyO1xuICAvKiogQWN0dWFsIG1pbi9tYXggcGl4ZWwgb2JzZXJ2ZWQgKGF1dG8tY29udHJhc3Qgc2VlZCksIG5hdGl2ZSBwYXRoIG9ubHkuICovXG4gIG9ic2VydmVkTWluPzogbnVtYmVyO1xuICBvYnNlcnZlZE1heD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQdWJsaWMsIGltcGxlbWVudGF0aW9uLWFnbm9zdGljIHN1cmZhY2UgdGhlIENoYW5uZWxzICYgSGlzdG9ncmFtIHBhbmUgKGFuXG4gKiBleHRlcm5hbCBjb25zdW1lciBvZiB0aGUgdmlzdWFsaXphdGlvbiBwYWNrYWdlKSBkZXBlbmRzIG9uLiBJdCBleHBvc2VzIHRoZVxuICogcGVyLWNoYW5uZWwgZGlzcGxheSB3aW5kb3cvZ2FtbWEvdmlzaWJpbGl0eSwgYW4gaW50ZW5zaXR5IGhpc3RvZ3JhbSBjb21wdXRlZFxuICogZnJvbSB0aGUgY3VycmVudGx5LWRpc3BsYXllZCBwaXhlbHMsIGFuZCB0aGUgTFVUL2NvbG9ybWFwIGNvbnRyb2xzIHRoYXQgdXNlZFxuICogdG8gbGl2ZSBpbiB0aGUgdG9vbGJhci4gVGhlIHBhbmUgaW5qZWN0cyB0aGlzIHZpYSB7QGxpbmsgQ0hBTk5FTF9ISVNUT0dSQU1fQVBJfVxuICogKGJvdW5kIHRvIHRoZSBjb25jcmV0ZSBgUm91dGluZ1Zpc3VhbGl6ZXJTZXJ2aWNlYCB3aXRoIGB1c2VFeGlzdGluZ2ApIHNvIGl0XG4gKiBuZXZlciByZWFjaGVzIHRoZSBpbXBsZW1lbnRhdGlvbi4gRXZlcnkgc2V0dGVyIGxpdmUtdXBkYXRlcyB3aGljaGV2ZXIgYmFja2VuZFxuICogKFBsb3RseSBvciBPcGVuU2VhZHJhZ29uKSBpcyBvbiBzY3JlZW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYW5uZWxIaXN0b2dyYW1BcGkge1xuICAvLyDilIDilIAgY2hhbm5lbHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBUaGUgY2hhbm5lbHMgb2YgdGhlIGN1cnJlbnQgaW1hZ2UgKDEgZm9yIGdyYXlzY2FsZSwgMyBmb3IgUkdCKS4gKi9cbiAgZ2V0Q2hhbm5lbHMkKCk6IE9ic2VydmFibGU8SUNoYW5uZWxTdGF0ZVtdPjtcbiAgLyoqIFBhdGNoIG9uZSBjaGFubmVsJ3Mgc3RhdGUgKHdpbmRvdy9nYW1tYS92aXNpYmlsaXR5L2NvbG9yKTsgbGl2ZS11cGRhdGVzLiAqL1xuICBzZXRDaGFubmVsU3RhdGUoaW5kZXg6IG51bWJlciwgcGFydGlhbDogUGFydGlhbDxJQ2hhbm5lbFN0YXRlPik6IHZvaWQ7XG4gIC8qKiBTZXQgdGhlIGNoYW5uZWwgc2VsZWN0ZWQgaW4gdGhlIHBhbmUg4oCUIHRoZSBiYW5kIGEgc2luZ2xlLXNjYWxhciAzRCBTdXJmYWNlIGZvbGxvd3MuICovXG4gIHNldFNlbGVjdGVkQ2hhbm5lbChpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgLyoqIEF1dG8td2luZG93IHRoZSBnaXZlbiBjaGFubmVscyBieSBzYXR1cmF0aW5nIGBzYXR1cmF0aW9uYCAoMC4uMSkgb2YgcGl4ZWxzXG4gICAqICBhdCBlYWNoIGVuZCBvZiB0aGVpciBoaXN0b2dyYW0uICovXG4gIGF1dG9Db250cmFzdChpbmRpY2VzOiBudW1iZXJbXSwgc2F0dXJhdGlvbjogbnVtYmVyKTogdm9pZDtcbiAgLyoqIFJlc2V0IHRoZSBnaXZlbiBjaGFubmVscyB0byB0aGVpciBkZXJpdmVkIGRlZmF1bHRzOiBmdWxsIGRpc3BsYXkgcmFuZ2VcbiAgICogICgwLi4yNTUpLCBnYW1tYSAxLCBhbmQgdGhlIGNoYW5uZWwncyBkZWZhdWx0IHRpbnQgY29sb3VyLiAqL1xuICByZXNldENvbnRyYXN0KGluZGljZXM6IG51bWJlcltdKTogdm9pZDtcblxuICAvLyDilIDilIAgaGlzdG9ncmFtIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogQmlubmVkIGhpc3RvZ3JhbSBmb3IgYSBjaGFubmVsIGZyb20gdGhlIGRpc3BsYXllZCBwaXhlbHMsIG9yIG51bGwgd2hlbiBub1xuICAgKiAgaW1hZ2UvcGl4ZWxzIGFyZSBhdmFpbGFibGUuIFN5bmNocm9ub3VzIDgtYml0IHBhdGggKHVzZWQgYnkgYXV0by1jb250cmFzdCkuICovXG4gIGdldEhpc3RvZ3JhbShjaGFubmVsSW5kZXg6IG51bWJlciwgYmluczogbnVtYmVyKTogSUhpc3RvZ3JhbSB8IG51bGw7XG4gIC8qKiBIaXN0b2dyYW0gZm9yIGEgY2hhbm5lbCBhcyBhbiBhc3luYyBzdHJlYW06IGVtaXRzIHRoZSAqKm5hdGl2ZSoqIGJpdC1kZXB0aFxuICAgKiAgaGlzdG9ncmFtIChmcm9tIHRoZSBzZXJ2ZXIpIGZvciA+OC1iaXQgaW1hZ2VzLCBlbHNlIHRoZSA4LWJpdCBjbGllbnRcbiAgICogIGhpc3RvZ3JhbS4gVGhlIGRpYWxvZyB1c2VzIHRoaXMgc28gMTYtYml0IHN0YWNrcyBnZXQgYSB0cnVlIGRpc3RyaWJ1dGlvbi4gKi9cbiAgZ2V0SGlzdG9ncmFtJChjaGFubmVsSW5kZXg6IG51bWJlciwgYmluczogbnVtYmVyKTogT2JzZXJ2YWJsZTxJSGlzdG9ncmFtIHwgbnVsbD47XG5cbiAgLy8g4pSA4pSAIGRpc3BsYXkgb3B0aW9ucyAobW92ZWQgb3V0IG9mIHRoZSB0b29sYmFyKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgZ2V0Q29sb3JtYXAoKTogT2JzZXJ2YWJsZTxDb2xvcm1hcE5vZGUgfCBudWxsPjtcbiAgc2V0Q29sb3JtYXAoY29sb3JtYXA6IENvbG9ybWFwTm9kZSk6IHZvaWQ7XG4gIGdldENvbG9ybWFwT3B0aW9ucygpOiBDb2xvcm1hcE5vZGVbXTtcbiAgZ2V0UmV2ZXJzZVNjYWxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHNldFJldmVyc2VTY2FsZShyZXZlcnNlOiBib29sZWFuKTogdm9pZDtcbiAgZ2V0R3JheXNjYWxlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzZXRHcmF5c2NhbGUob246IGJvb2xlYW4pOiB2b2lkO1xuICBnZXRJbnZlcnQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHNldEludmVydChvbjogYm9vbGVhbik6IHZvaWQ7XG5cbiAgLy8g4pSA4pSAIGltYWdlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICBnZXRJbWFnZU1ldGEoKTogT2JzZXJ2YWJsZTxJSW1hZ2VNZXRhZGF0YVtdPjtcblxuICAvKiogRXhwb3J0IHRoZSBkaXNwbGF5ZWQgaW1hZ2Ug4oCUIGNvbXBvc2l0ZWQgd2l0aCB0aGUgY3VycmVudCBwZXItY2hhbm5lbFxuICAgKiAgcHNldWRvLWNvbG91cnMgLyB3aW5kb3cgLyBjb2xvcm1hcCDigJQgYXMgYSBwdWJsaWNhdGlvbi1yZWFkeSBQTkcgZG93bmxvYWQuICovXG4gIGV4cG9ydENvbXBvc2l0ZSgpOiB2b2lkO1xuXG4gIC8qKiBFeHBvcnQgdGhlIHVuZGVybHlpbmcgaW1hZ2UgZGF0YSDigJQgYWxsIChvciB0aGUgdmlzaWJsZSkgY2hhbm5lbHMgYXQgbmF0aXZlXG4gICAqICBiaXQgZGVwdGgg4oCUIGFzIGEgZGF0YS1wcmVzZXJ2aW5nIG11bHRpLWJhbmQgVElGRiBkb3dubG9hZC4gU2VydmVyLXNpZGUsIHNvXG4gICAqICBpdCBrZWVwcyB0cnVlIDE2LWJpdCB2YWx1ZXMgKHRoZSBQTkcgY29tcG9zaXRlIGlzIGFuIDgtYml0IGZpZ3VyZSkuIE9ubHlcbiAgICogIG1lYW5pbmdmdWwgZm9yID44LWJpdCBpbWFnZXM7IGEgbm8tb3Agb24gYmFja2VuZHMgdGhhdCBjYW4ndCBwcm92aWRlIGl0LiAqL1xuICBleHBvcnREYXRhKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogREkgdG9rZW4gZm9yIHRoZSBDaGFubmVscyAmIEhpc3RvZ3JhbSBwYW5lJ3MgQVBJLiBUaGUgbGlicmFyeSBiaW5kcyBpdCB0byBpdHMgcm91dGVyXG4gKiAoVmlzdWFsaXphdGlvbk1vZHVsZSAvIHByb3ZpZGVWaXN1YWxpemF0aW9uKTsgaG9zdHMgaW5qZWN0IGl0LCB0aGV5IGRvIG5vdCBwcm92aWRlIGl0LlxuICovXG5leHBvcnQgY29uc3QgQ0hBTk5FTF9ISVNUT0dSQU1fQVBJID0gbmV3IEluamVjdGlvblRva2VuPElDaGFubmVsSGlzdG9ncmFtQXBpPignQ0hBTk5FTF9ISVNUT0dSQU1fQVBJJyk7XG4iXX0=
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1oaXN0b2dyYW0tYXBpLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvY2hhbm5lbC1oaXN0b2dyYW0tYXBpLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUF3Qi9DOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBRTFDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsU0FBMEI7SUFDNUYsSUFBSSxPQUFPLFNBQVMsS0FBSyxTQUFTO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDckQsT0FBTyxLQUFLLElBQUksd0JBQXdCLElBQUksS0FBSyxHQUFHLHdCQUF3QixDQUFDO0FBQy9FLENBQUM7QUFFRDtvQ0FDb0M7QUFDcEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFtRDtJQUN4RSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUNqQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUNuQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUNsQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUNsQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUNsQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUNyQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtDQUNyQyxDQUFDO0FBc0ZGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUF1Qix1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElJbWFnZU1ldGFkYXRhIH0gZnJvbSAnLi9pbWFnZS5jb250cmFjdCc7XG5pbXBvcnQgeyBDb2xvcm1hcE5vZGUgfSBmcm9tICcuL2Rpc3BsYXktdHlwZXMnO1xuXG4vKipcbiAqIERpc3BsYXkgc3RhdGUgZm9yIG9uZSBpbWFnZSBjaGFubmVsIGluIHRoZSBDaGFubmVscyAmIEhpc3RvZ3JhbSBwYW5lLlxuICogYG1pbmAvYG1heGAgYXJlIHRoZSBkaXNwbGF5IHdpbmRvdyAoY29udHJhc3QvYnJpZ2h0bmVzcykgaW4gcmF3IDAuLjI1NSBzcGFjZTtcbiAqIGBnYW1tYWAgc2hhcGVzIHRoZSB0cmFuc2ZlciBjdXJ2ZTsgYGNvbG9yYCBpcyB0aGUgY2hhbm5lbCdzIGRpc3BsYXkgdGludFxuICogKHVzZWQgd2hlbiBjb21wb3NpdGluZyBtdWx0aXBsZSBjaGFubmVscyk7IGB2aXNpYmxlYCB0b2dnbGVzIGl0IG9uL29mZi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2hhbm5lbFN0YXRlIHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogRGlzcGxheSB0aW50IGFzIGAjcnJnZ2JiYC4gKi9cbiAgY29sb3I6IHN0cmluZztcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBnYW1tYTogbnVtYmVyO1xuICB2aXNpYmxlOiBib29sZWFuO1xuICAvKiogVGhlIGdyb3VwcyB0aGUgY2hhbm5lbCBpcyBpbiwgb3V0ZXJtb3N0IGZpcnN0IChgSUNoYW5uZWxJbmZvLmdyb3VwYCk7IGFic2VudCB3aGVuIGl0IGlzIGluIG5vbmUuICovXG4gIGdyb3VwPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogSG93IG1hbnkgY2hhbm5lbHMgb2YgYSBtdWx0aWNoYW5uZWwgaW1hZ2Ugc3RhcnQgdmlzaWJsZS4gRWFjaCB2aXNpYmxlIGNoYW5uZWwgaXMgZHJhd25cbiAqIGZyb20gdGlsZXMgb2YgaXRzIG93biwgc28gYSAyMi1jaGFubmVsIHBsYXRlIHNob3dlZCBldmVyeSBjaGFubmVsIGF0IG9uY2UgYW5kIGFza2VkIHRoZVxuICogc2VydmVyIGZvciAyMiB0aWxlcyBwZXIgcG9zaXRpb24gb24gZXZlcnkgcGFuIGFuZCB6b29tLiBDaGFubmVscyBwYXN0IHRoZXNlIHN0YXJ0IGhpZGRlblxuICogKG9uZSBjbGljayBzaG93cyB0aGVtKSwgYW5kIGEgaGlkZGVuIGNoYW5uZWwgZmV0Y2hlcyBubyB0aWxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVklTSUJMRV9DSEFOTkVMUyA9IDQ7XG5cbi8qKlxuICogV2hldGhlciBjaGFubmVsIGBpbmRleGAgb2YgYGNvdW50YCBzdGFydHMgdmlzaWJsZTogYXMgdGhlIGltYWdlIHNheXMgd2hlbiBpdHNcbiAqIGBjaGFubmVsSW5mb2AgZG9lcywgZWxzZSBldmVyeSBjaGFubmVsIG9mIGFuIGltYWdlIHdpdGggYXQgbW9zdFxuICoge0BsaW5rIERFRkFVTFRfVklTSUJMRV9DSEFOTkVMU30sIGFuZCB0aGUgZmlyc3Qge0BsaW5rIERFRkFVTFRfVklTSUJMRV9DSEFOTkVMU30gb2Ygb25lIHdpdGggbW9yZS5cbiAqIE9ubHkgYSBib29sZWFuIHNheXM6IGEgZGVzY3JpcHRvcidzIGBudWxsYCAoYSBKU09OIGZpZWxkIGxlZnQgZW1wdHkpIGxlYXZlcyB0aGUgZGVmYXVsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRDaGFubmVsVmlzaWJsZShpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyLCBzcGVjaWZpZWQ/OiBib29sZWFuIHwgbnVsbCk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHNwZWNpZmllZCA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gc3BlY2lmaWVkO1xuICByZXR1cm4gY291bnQgPD0gREVGQVVMVF9WSVNJQkxFX0NIQU5ORUxTIHx8IGluZGV4IDwgREVGQVVMVF9WSVNJQkxFX0NIQU5ORUxTO1xufVxuXG4vKiogVGhlIHN0YW5kYXJkIExVVCBwc2V1ZG8tY29sb3VycyAobWlycm9ycyBGaWppJ3MgTWVyZ2UgQ2hhbm5lbHMgcGFsZXR0ZSkgZm9yXG4gKiAgcXVpY2sgcGVyLWNoYW5uZWwgYXNzaWdubWVudC4gKi9cbmV4cG9ydCBjb25zdCBMVVRfQ09MT1JTOiBSZWFkb25seUFycmF5PHsgbmFtZTogc3RyaW5nOyBjb2xvcjogc3RyaW5nIH0+ID0gW1xuICB7IG5hbWU6ICdSZWQnLCBjb2xvcjogJyNmZjAwMDAnIH0sXG4gIHsgbmFtZTogJ0dyZWVuJywgY29sb3I6ICcjMDBmZjAwJyB9LFxuICB7IG5hbWU6ICdCbHVlJywgY29sb3I6ICcjMDAwMGZmJyB9LFxuICB7IG5hbWU6ICdHcmF5JywgY29sb3I6ICcjZmZmZmZmJyB9LFxuICB7IG5hbWU6ICdDeWFuJywgY29sb3I6ICcjMDBmZmZmJyB9LFxuICB7IG5hbWU6ICdNYWdlbnRhJywgY29sb3I6ICcjZmYwMGZmJyB9LFxuICB7IG5hbWU6ICdZZWxsb3cnLCBjb2xvcjogJyNmZmZmMDAnIH0sXG5dO1xuXG4vKiogQSBiaW5uZWQgaW50ZW5zaXR5IGhpc3RvZ3JhbSBmb3Igb25lIGNoYW5uZWwuXG4gKlxuICogVGhlIDgtYml0IGNsaWVudCBwYXRoIChSR0IgLyA4LWJpdCBncmF5c2NhbGUsIHNhbXBsZWQgZnJvbSBkaXNwbGF5ZWQgdGlsZXMpXG4gKiBsZWF2ZXMgdGhlIG5hdGl2ZSBmaWVsZHMgdW5kZWZpbmVkIGFuZCBgYmluc2Agc3BhbiAwLi4yNTUuIFRoZSBuYXRpdmUgcGF0aFxuICogKD44LWJpdCBpbWFnZXMsIGZyb20gdGhlIHNlcnZlciBgL2hpc3RvZ3JhbWAgZW5kcG9pbnQpIGZpbGxzIGBiaXREZXB0aGAsXG4gKiBgcmFuZ2VNaW5gL2ByYW5nZU1heGAgKHRoZSBwaXhlbC10eXBlIHNwYW4gdGhlIGJpbnMgY292ZXIpIGFuZFxuICogYG9ic2VydmVkTWluYC9gb2JzZXJ2ZWRNYXhgICh0aGUgYWN0dWFsIGV4dHJlbWVzIHNlZW4pLCBzbyB0aGUgZGlhbG9nIGNhblxuICogbGFiZWwgdGhlIHdpbmRvdy9heGlzIGluIG5hdGl2ZSB1bml0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUhpc3RvZ3JhbSB7XG4gIC8qKiBMZWZ0IGVkZ2Ugb2YgZWFjaCBiaW4gKDAuLjI1NSBmb3IgdGhlIDgtYml0IHBhdGgsIG5hdGl2ZSB1bml0cyBvdGhlcndpc2UpLiAqL1xuICBiaW5zOiBudW1iZXJbXTtcbiAgLyoqIFBpeGVsIGNvdW50IHBlciBiaW4sIGxlbmd0aCA9IGJpbiBjb3VudC4gKi9cbiAgY291bnRzOiBudW1iZXJbXTtcbiAgLyoqIExhcmdlc3QgYmluIGNvdW50LCBmb3IgeS1heGlzIHNjYWxpbmcuICovXG4gIG1heDogbnVtYmVyO1xuICAvKiogTmF0aXZlIGJpdCBkZXB0aCAoOCwgMTYsIOKApikg4oCUIHByZXNlbnQgb25seSBvbiB0aGUgbmF0aXZlIHNlcnZlciBwYXRoLiAqL1xuICBiaXREZXB0aD86IG51bWJlcjtcbiAgLyoqIFBpeGVsLXR5cGUgcmFuZ2UgdGhlIGJpbnMgc3BhbiAoZS5nLiAwLi42NTUzNSksIG5hdGl2ZSBwYXRoIG9ubHkuICovXG4gIHJhbmdlTWluPzogbnVtYmVyO1xuICByYW5nZU1heD86IG51bWJlcjtcbiAgLyoqIEFjdHVhbCBtaW4vbWF4IHBpeGVsIG9ic2VydmVkIChhdXRvLWNvbnRyYXN0IHNlZWQpLCBuYXRpdmUgcGF0aCBvbmx5LiAqL1xuICBvYnNlcnZlZE1pbj86IG51bWJlcjtcbiAgb2JzZXJ2ZWRNYXg/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHVibGljLCBpbXBsZW1lbnRhdGlvbi1hZ25vc3RpYyBzdXJmYWNlIHRoZSBDaGFubmVscyAmIEhpc3RvZ3JhbSBwYW5lIChhblxuICogZXh0ZXJuYWwgY29uc3VtZXIgb2YgdGhlIHZpc3VhbGl6YXRpb24gcGFja2FnZSkgZGVwZW5kcyBvbi4gSXQgZXhwb3NlcyB0aGVcbiAqIHBlci1jaGFubmVsIGRpc3BsYXkgd2luZG93L2dhbW1hL3Zpc2liaWxpdHksIGFuIGludGVuc2l0eSBoaXN0b2dyYW0gY29tcHV0ZWRcbiAqIGZyb20gdGhlIGN1cnJlbnRseS1kaXNwbGF5ZWQgcGl4ZWxzLCBhbmQgdGhlIExVVC9jb2xvcm1hcCBjb250cm9scyB0aGF0IHVzZWRcbiAqIHRvIGxpdmUgaW4gdGhlIHRvb2xiYXIuIFRoZSBwYW5lIGluamVjdHMgdGhpcyB2aWEge0BsaW5rIENIQU5ORUxfSElTVE9HUkFNX0FQSX1cbiAqIChib3VuZCB0byB0aGUgY29uY3JldGUgYFJvdXRpbmdWaXN1YWxpemVyU2VydmljZWAgd2l0aCBgdXNlRXhpc3RpbmdgKSBzbyBpdFxuICogbmV2ZXIgcmVhY2hlcyB0aGUgaW1wbGVtZW50YXRpb24uIEV2ZXJ5IHNldHRlciBsaXZlLXVwZGF0ZXMgd2hpY2hldmVyIGJhY2tlbmRcbiAqIChQbG90bHkgb3IgT3BlblNlYWRyYWdvbikgaXMgb24gc2NyZWVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDaGFubmVsSGlzdG9ncmFtQXBpIHtcbiAgLy8g4pSA4pSAIGNoYW5uZWxzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogVGhlIGNoYW5uZWxzIG9mIHRoZSBjdXJyZW50IGltYWdlICgxIGZvciBncmF5c2NhbGUsIDMgZm9yIFJHQikuICovXG4gIGdldENoYW5uZWxzJCgpOiBPYnNlcnZhYmxlPElDaGFubmVsU3RhdGVbXT47XG4gIC8qKiBQYXRjaCBvbmUgY2hhbm5lbCdzIHN0YXRlICh3aW5kb3cvZ2FtbWEvdmlzaWJpbGl0eS9jb2xvcik7IGxpdmUtdXBkYXRlcy4gKi9cbiAgc2V0Q2hhbm5lbFN0YXRlKGluZGV4OiBudW1iZXIsIHBhcnRpYWw6IFBhcnRpYWw8SUNoYW5uZWxTdGF0ZT4pOiB2b2lkO1xuICAvKiogU2V0IHRoZSBjaGFubmVsIHNlbGVjdGVkIGluIHRoZSBwYW5lIOKAlCB0aGUgYmFuZCBhIHNpbmdsZS1zY2FsYXIgM0QgU3VyZmFjZSBmb2xsb3dzLiAqL1xuICBzZXRTZWxlY3RlZENoYW5uZWwoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIC8qKiBBdXRvLXdpbmRvdyB0aGUgZ2l2ZW4gY2hhbm5lbHMgYnkgc2F0dXJhdGluZyBgc2F0dXJhdGlvbmAgKDAuLjEpIG9mIHBpeGVsc1xuICAgKiAgYXQgZWFjaCBlbmQgb2YgdGhlaXIgaGlzdG9ncmFtLiAqL1xuICBhdXRvQ29udHJhc3QoaW5kaWNlczogbnVtYmVyW10sIHNhdHVyYXRpb246IG51bWJlcik6IHZvaWQ7XG4gIC8qKiBSZXNldCB0aGUgZ2l2ZW4gY2hhbm5lbHMgdG8gdGhlaXIgZGVyaXZlZCBkZWZhdWx0czogZnVsbCBkaXNwbGF5IHJhbmdlXG4gICAqICAoMC4uMjU1KSwgZ2FtbWEgMSwgYW5kIHRoZSBjaGFubmVsJ3MgZGVmYXVsdCB0aW50IGNvbG91ci4gKi9cbiAgcmVzZXRDb250cmFzdChpbmRpY2VzOiBudW1iZXJbXSk6IHZvaWQ7XG5cbiAgLy8g4pSA4pSAIGhpc3RvZ3JhbSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLyoqIEJpbm5lZCBoaXN0b2dyYW0gZm9yIGEgY2hhbm5lbCBmcm9tIHRoZSBkaXNwbGF5ZWQgcGl4ZWxzLCBvciBudWxsIHdoZW4gbm9cbiAgICogIGltYWdlL3BpeGVscyBhcmUgYXZhaWxhYmxlLiBTeW5jaHJvbm91cyA4LWJpdCBwYXRoICh1c2VkIGJ5IGF1dG8tY29udHJhc3QpLiAqL1xuICBnZXRIaXN0b2dyYW0oY2hhbm5lbEluZGV4OiBudW1iZXIsIGJpbnM6IG51bWJlcik6IElIaXN0b2dyYW0gfCBudWxsO1xuICAvKiogSGlzdG9ncmFtIGZvciBhIGNoYW5uZWwgYXMgYW4gYXN5bmMgc3RyZWFtOiBlbWl0cyB0aGUgKipuYXRpdmUqKiBiaXQtZGVwdGhcbiAgICogIGhpc3RvZ3JhbSAoZnJvbSB0aGUgc2VydmVyKSBmb3IgPjgtYml0IGltYWdlcywgZWxzZSB0aGUgOC1iaXQgY2xpZW50XG4gICAqICBoaXN0b2dyYW0uIFRoZSBkaWFsb2cgdXNlcyB0aGlzIHNvIDE2LWJpdCBzdGFja3MgZ2V0IGEgdHJ1ZSBkaXN0cmlidXRpb24uICovXG4gIGdldEhpc3RvZ3JhbSQoY2hhbm5lbEluZGV4OiBudW1iZXIsIGJpbnM6IG51bWJlcik6IE9ic2VydmFibGU8SUhpc3RvZ3JhbSB8IG51bGw+O1xuXG4gIC8vIOKUgOKUgCBkaXNwbGF5IG9wdGlvbnMgKG1vdmVkIG91dCBvZiB0aGUgdG9vbGJhcikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIGdldENvbG9ybWFwKCk6IE9ic2VydmFibGU8Q29sb3JtYXBOb2RlIHwgbnVsbD47XG4gIHNldENvbG9ybWFwKGNvbG9ybWFwOiBDb2xvcm1hcE5vZGUpOiB2b2lkO1xuICBnZXRDb2xvcm1hcE9wdGlvbnMoKTogQ29sb3JtYXBOb2RlW107XG4gIGdldFJldmVyc2VTY2FsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzZXRSZXZlcnNlU2NhbGUocmV2ZXJzZTogYm9vbGVhbik6IHZvaWQ7XG4gIGdldEdyYXlzY2FsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2V0R3JheXNjYWxlKG9uOiBib29sZWFuKTogdm9pZDtcbiAgZ2V0SW52ZXJ0JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzZXRJbnZlcnQob246IGJvb2xlYW4pOiB2b2lkO1xuXG4gIC8vIOKUgOKUgCBpbWFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgZ2V0SW1hZ2VNZXRhKCk6IE9ic2VydmFibGU8SUltYWdlTWV0YWRhdGFbXT47XG5cbiAgLyoqIEV4cG9ydCB0aGUgZGlzcGxheWVkIGltYWdlIOKAlCBjb21wb3NpdGVkIHdpdGggdGhlIGN1cnJlbnQgcGVyLWNoYW5uZWxcbiAgICogIHBzZXVkby1jb2xvdXJzIC8gd2luZG93IC8gY29sb3JtYXAg4oCUIGFzIGEgcHVibGljYXRpb24tcmVhZHkgUE5HIGRvd25sb2FkLiAqL1xuICBleHBvcnRDb21wb3NpdGUoKTogdm9pZDtcblxuICAvKiogRXhwb3J0IHRoZSB1bmRlcmx5aW5nIGltYWdlIGRhdGEg4oCUIGFsbCAob3IgdGhlIHZpc2libGUpIGNoYW5uZWxzIGF0IG5hdGl2ZVxuICAgKiAgYml0IGRlcHRoIOKAlCBhcyBhIGRhdGEtcHJlc2VydmluZyBtdWx0aS1iYW5kIFRJRkYgZG93bmxvYWQuIFNlcnZlci1zaWRlLCBzb1xuICAgKiAgaXQga2VlcHMgdHJ1ZSAxNi1iaXQgdmFsdWVzICh0aGUgUE5HIGNvbXBvc2l0ZSBpcyBhbiA4LWJpdCBmaWd1cmUpLiBPbmx5XG4gICAqICBtZWFuaW5nZnVsIGZvciA+OC1iaXQgaW1hZ2VzOyBhIG5vLW9wIG9uIGJhY2tlbmRzIHRoYXQgY2FuJ3QgcHJvdmlkZSBpdC4gKi9cbiAgZXhwb3J0RGF0YSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIERJIHRva2VuIGZvciB0aGUgQ2hhbm5lbHMgJiBIaXN0b2dyYW0gcGFuZSdzIEFQSS4gVGhlIGxpYnJhcnkgYmluZHMgaXQgdG8gaXRzIHJvdXRlclxuICogKFZpc3VhbGl6YXRpb25Nb2R1bGUgLyBwcm92aWRlVmlzdWFsaXphdGlvbik7IGhvc3RzIGluamVjdCBpdCwgdGhleSBkbyBub3QgcHJvdmlkZSBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IENIQU5ORUxfSElTVE9HUkFNX0FQSSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ2hhbm5lbEhpc3RvZ3JhbUFwaT4oJ0NIQU5ORUxfSElTVE9HUkFNX0FQSScpO1xuIl19
|
|
@@ -42,6 +42,7 @@ export const DEFAULT_SPATIAL_VIEW = {
|
|
|
42
42
|
transcriptGeneColors: {},
|
|
43
43
|
transcriptGeneGroups: [],
|
|
44
44
|
transcriptAllGenes: false,
|
|
45
|
+
transcriptAllGenesHidden: [],
|
|
45
46
|
transcriptBudget: 100_000,
|
|
46
47
|
transcriptMode: 'off',
|
|
47
48
|
transcriptColorBy: 'cellType',
|
|
@@ -57,7 +58,12 @@ export const DEFAULT_SPATIAL_VIEW = {
|
|
|
57
58
|
cellColorGene: null,
|
|
58
59
|
cellSingleColor: '#4fc3f7',
|
|
59
60
|
hiddenGroups: [],
|
|
61
|
+
observationGenes: [],
|
|
62
|
+
observationGenesMatch: 'any',
|
|
63
|
+
observationGenesColorBy: true,
|
|
64
|
+
observationGeneColors: {},
|
|
65
|
+
observationGeneGlyphs: {},
|
|
60
66
|
showImage: true,
|
|
61
67
|
showAnnotations: true,
|
|
62
68
|
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUE4REgsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBNEIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFbEgsNENBQTRDO0FBQzVDLE1BQU0sVUFBVSxjQUFjLENBQUMsRUFBNkI7SUFDMUQsT0FBUSxlQUFxQyxDQUFDLFFBQVEsQ0FBQyxFQUFZLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBdU9EOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFxQjtJQUNwRCxPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsS0FBSztJQUNmLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDNUIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixVQUFVLEVBQUUsSUFBSTtJQUNoQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLE9BQU8sRUFBRSxLQUFLO0lBQ2QsY0FBYyxFQUFFLElBQUk7SUFDcEIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQixjQUFjLEVBQUUsSUFBSTtJQUNwQixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLE1BQU07SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLElBQUk7SUFDcEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsa0JBQWtCLEVBQUUsS0FBSztJQUN6QixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGlCQUFpQixFQUFFLFVBQVU7SUFDN0IsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixlQUFlLEVBQUUsQ0FBQztJQUNsQixpQkFBaUIsRUFBRSxHQUFHO0lBQ3RCLGlCQUFpQixFQUFFLE1BQU07SUFDekIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsVUFBVSxFQUFFLEVBQUU7SUFDZCxZQUFZLEVBQUUsSUFBSTtJQUNsQixlQUFlLEVBQUUsSUFBSTtJQUNyQixhQUFhLEVBQUUsT0FBTztJQUN0QixhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsU0FBUztJQUMxQixZQUFZLEVBQUUsRUFBRTtJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLGVBQWUsRUFBRSxJQUFJO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpY2F0aW9uLWNyaXRpY2FsIHR5cGVzIHRoYXQgd2VyZSBgYW55YCBvbiB0aGUgcHVibGljIGNvbnRyYWN0c1xuICogKHJlZmFjdG9yaW5nIHBsYW4sIFN0ZXAgNikuIERlbGliZXJhdGVseSBwZXJtaXNzaXZlIOKAlCBldmVyeSBmaWVsZCBvcHRpb25hbCDigJRcbiAqIHNvIGV4aXN0aW5nIGhvc3RzICh3aGljaCBwYXNzIFByaW1lTkcgYFRyZWVOb2RlYHMgYW5kIHBsYWluIG9wdGlvbiBvYmplY3RzKVxuICoga2VlcCBjb21waWxpbmcgdW5jaGFuZ2VkIHdoaWxlIGNvbnN1bWVycyBmaW5hbGx5IGdldCBuYW1lZCBzaGFwZXMuXG4gKi9cblxuLyoqIEEgY29sb3JtYXAgdmFsdWUgYXMgUGxvdGx5IHVuZGVyc3RhbmRzIGl0OiBhIGJ1aWx0LWluIHNjYWxlIG5hbWUgKGUuZy5cbiAqICAnVmlyaWRpcycpIG9yIGFuIGlubGluZSBhcnJheSBvZiBgW3N0b3AsIGNvbG9yXWAgcGFpcnMuICovXG5leHBvcnQgdHlwZSBDb2xvcm1hcFZhbHVlID0gc3RyaW5nIHwgQXJyYXk8W251bWJlciwgc3RyaW5nXT47XG5cbi8qKiBPbmUgbm9kZSBvZiB0aGUgY29sb3JtYXAgc2VsZWN0b3IgdHJlZSAoc3RydWN0dXJhbGx5IGNvbXBhdGlibGUgd2l0aCB0aGVcbiAqICBQcmltZU5HIGBUcmVlTm9kZWBzIHRoZSBob3N0IHBhc3Nlcyk6IGdyb3VwIG5vZGVzIGNhcnJ5IGBjaGlsZHJlbmAsIGxlYWZcbiAqICBub2RlcyBjYXJyeSB0aGUgc2NhbGUgaW4gYGRhdGEudmFsdWVgICgrIGEgcHJldmlldyBpbWFnZSBpbiBgZGF0YS5zcmNgKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JtYXBOb2RlIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRhdGE/OiB7IHZhbHVlPzogQ29sb3JtYXBWYWx1ZTsgc3JjPzogc3RyaW5nIH07XG4gIGNoaWxkcmVuPzogQ29sb3JtYXBOb2RlW107XG59XG5cbi8qKiBNYWdpYy13YW5kIHBpeGVsLWNvbXBhcmlzb24gc3BhY2UuICovXG5leHBvcnQgdHlwZSBXYW5kVHlwZSA9ICdHUkFZJyB8ICdSR0InIHwgJ0xBQl9ESVNUQU5DRSc7XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgbWFnaWMtd2FuZCB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2FuZE9wdGlvbnMge1xuICB0eXBlPzogV2FuZFR5cGU7XG4gIC8qKiBHYXVzc2lhbiBzaWdtYSBhcHBsaWVkIHRvIHRoZSBwYXRjaCBiZWZvcmUgdGhyZXNob2xkaW5nLiAqL1xuICBzaWdtYT86IG51bWJlcjtcbiAgLyoqIEhpZ2hlciA9IHN0cmljdGVyIChzbWFsbGVyIHNlbGVjdGlvbikgZm9yIEdSQVkvUkdCOyBoaWdoZXIgPSBsb29zZXIgZm9yXG4gICAqICBMQUJfRElTVEFOQ0Ug4oCUIG1hdGNoZXMgUXVQYXRoLiAqL1xuICBzZW5zaXRpdml0eT86IG51bWJlcjtcbiAgLyoqIFNxdWFyZSBwYXRjaCBzaXplIGluIHBpeGVscyAobXVzdCBiZSBvZGQpLiAqL1xuICBwYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKiBXaGVuIHRydWUsIHNraXAgYmx1ci90aHJlc2hvbGQgYW5kIGZsb29kLWZpbGwgYXQgZXhhY3QtbWF0Y2hcbiAgICogIChDbWQvQ3RybC1jbGljayBpbiBRdVBhdGgpLiAqL1xuICBzaW1wbGVNb2RlPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBicnVzaCByZWdpb24gdG9vbCAoUXVQYXRoLXN0eWxlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJydXNoT3B0aW9ucyB7XG4gIC8qKiBCcnVzaCBkaWFtZXRlciBpbiBtYXRyaXggKGltYWdlKSBwaXhlbHMuICovXG4gIHNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQYWludCBhcyBvbmUgY2xhc3M6IG5ldyByZWdpb25zIHRha2UgdGhpcyBsYWJlbCwgYW5kIGEgc3Ryb2tlIG9ubHkgZXh0ZW5kc1xuICAgKiBvciBtZXJnZXMgcmVnaW9ucyB3aXRoIHRoZSBzYW1lIGxhYmVsLiBVbnNldCA9IHRoZSBwbGFpbiBicnVzaCAobGFiZWxcbiAgICogYCdSZWdpb24nYCwgZXh0ZW5kcyBhbnkgcmVnaW9uKS4gYHNldEJydXNoTW9kZSh0cnVlLCDigKYpYCBzZXRzIHRoZSBjbGFzcyBpblxuICAgKiBmdWxsOyBgc2V0QnJ1c2hPcHRpb25zYCBjaGFuZ2VzIGl0IG9ubHkgd2hlbiBgbGFiZWxgIG9yIGBjb2xvcmAgaXMgcGFzc2VkLFxuICAgKiBzbyBhIHNpemUtb25seSB1cGRhdGUga2VlcHMgaXQuXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIENvbG91ciBmb3IgdGhlIHBhaW50ZWQgcmVnaW9ucyBpbnN0ZWFkIG9mIHRoZSBzaGFwZSBjb2xvdXIuIEtlcHQgYWdhaW5zdCBwcmVzZXQgcmUtYXBwbHkuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHZlcnRleCBlcmFzZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIElWZXJ0ZXhFcmFzZXJPcHRpb25zIHtcbiAgLyoqIEVyYXNlciByYWRpdXMgaW4gbWF0cml4IChpbWFnZSkgcGl4ZWxzLiAqL1xuICByYWRpdXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIG9uLWNhbnZhcyB0b29scyBgSVRvb2xDb250cm9sbGVyLnNldEFjdGl2ZVRvb2xgIGFybXM6IG1hZ2ljIHdhbmQsIGJydXNoLFxuICogdmVydGV4IGVyYXNlciwgYm94IHpvb20gYW5kIFNBTSBwb2ludCBwcm9tcHRzLiBBbnkgb3RoZXIgaWQgKGEgcmVnaW9uIGRyYXdcbiAqIG1vZGUgc3VjaCBhcyBgJ2RyYXdyZWN0J2AsIGAncGFuJ2ApIGFybXMgbm9uZSBvZiB0aGVtLlxuICovXG5leHBvcnQgdHlwZSBDYW52YXNUb29sSWQgPSAnd2FuZCcgfCAnYnJ1c2gnIHwgJ2VyYXNlVmVydGV4JyB8ICd6b29tVG9Cb3gnIHwgJ3NhbVBvaW50JztcblxuLyoqIEV2ZXJ5IHtAbGluayBDYW52YXNUb29sSWR9LiAqL1xuZXhwb3J0IGNvbnN0IENBTlZBU19UT09MX0lEUzogcmVhZG9ubHkgQ2FudmFzVG9vbElkW10gPSBbJ3dhbmQnLCAnYnJ1c2gnLCAnZXJhc2VWZXJ0ZXgnLCAnem9vbVRvQm94JywgJ3NhbVBvaW50J107XG5cbi8qKiBXaGV0aGVyIGBpZGAgbmFtZXMgYW4gb24tY2FudmFzIHRvb2wuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDYW52YXNUb29sSWQoaWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBpZCBpcyBDYW52YXNUb29sSWQge1xuICByZXR1cm4gKENBTlZBU19UT09MX0lEUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMoaWQgYXMgc3RyaW5nKTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHtAbGluayBDYW52YXNUb29sSWR9IHRvb2xzOiB0aGUgd2FuZCdzLCB0aGUgYnJ1c2gncyBvciB0aGUgZXJhc2VyJ3MuICovXG5leHBvcnQgdHlwZSBDYW52YXNUb29sT3B0aW9ucyA9IElXYW5kT3B0aW9ucyB8IElCcnVzaE9wdGlvbnMgfCBJVmVydGV4RXJhc2VyT3B0aW9ucztcblxuLyoqIFdoYXQgZHJpdmVzIHBvaW50IGNvbG91ciBpbiB0aGUgc3BhdGlhbC1vbWljcyBtb2RlOiBhbiBhbm5vdGF0aW9uIGNvbHVtblxuICogIGZyb20gdGhlIGRhdGFzZXQsIG9yIG9uZSBmZWF0dXJlIChnZW5lKSB2ZWN0b3IgZmV0Y2hlZCBvbiBkZW1hbmQuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxDb2xvckJ5IHtcbiAga2luZDogJ2NvbHVtbicgfCAnZmVhdHVyZSc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqIERpc3BsYXkgc3RhdGUgZm9yIHRoZSBzcGF0aWFsLW9taWNzIHBsb3QgbW9kZS4gTGl2ZXMgaW4gYFZpc3VhbGl6ZXJTdG9yZWBcbiAqICBhbG9uZ3NpZGUgdGhlIGNvbG9ybWFwL2NoYW5uZWwgc3RhdGUgc28gdGhlIHJlbmRlcmVyIHJlYWN0cyB0byBlZGl0cyB0aGVcbiAqICBzYW1lIHdheSBpdCBkb2VzIGZvciBhbiBpbWFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFZpZXdTdGF0ZSB7XG4gIC8qKiBDb2xvdXIgc291cmNlOyBgbnVsbGAgcmVuZGVycyBldmVyeSBvYnNlcnZhdGlvbiBpbiBvbmUgbmV1dHJhbCBjb2xvdXJcbiAgICogICh1c2VmdWwgb24gaXRzIG93biDigJQgaXQgc2hvd3Mgd2hlcmUgdGhlIHRpc3N1ZSBhY3R1YWxseSBpcykuICovXG4gIGNvbG9yQnk6IFNwYXRpYWxDb2xvckJ5IHwgbnVsbDtcbiAgLyoqIE11bHRpcGxpZXIgb24gdGhlIGRhdGFzZXQncyBwaHlzaWNhbCBtYXJrZXIgc2l6ZS4gMSA9IHRydWUgc2l6ZSwgd2hpY2ggZm9yXG4gICAqICBhIDU1IMK1bSBWaXNpdW0gc3BvdCBpcyBjb3JyZWN0IGJ1dCBjYW4gYmUgaW52aXNpYmxlIHdoZW4gem9vbWVkIG91dC4gKi9cbiAgcG9pbnRTY2FsZTogbnVtYmVyO1xuICAvKiogQWxwaGEgZm9yIHBvaW50cyB0aGF0IGFyZSBub3QgbXV0ZWQuICovXG4gIG9wYWNpdHk6IG51bWJlcjtcbiAgLyoqIExvZy1zY2FsZSBjb250aW51b3VzIHZhbHVlcyBiZWZvcmUgbWFwcGluZyB0aGVtIG9udG8gdGhlIGNvbG9ybWFwLiBTZWVkZWRcbiAgICogIGZyb20gdGhlIGNvbHVtbidzIGBsb2dTY2FsZUhpbnRgIOKAlCBjb3VudCBkYXRhIG5lZWRzIGl0LiAqL1xuICBsb2dTY2FsZTogYm9vbGVhbjtcbiAgLyoqIFBlcmNlbnRpbGUgY2xpcCBmb3IgdGhlIGNvbnRyYXN0IHdpbmRvdyBhcyBgW2xvLCBoaV1gIGZyYWN0aW9ucywgc28gYVxuICAgKiAgaGFuZGZ1bCBvZiBzYXR1cmF0ZWQgb2JzZXJ2YXRpb25zIGRvbid0IGZsYXR0ZW4gdGhlIHJlc3QuICovXG4gIHBlcmNlbnRpbGVDbGlwOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogQ29sb3JtYXAgZm9yIENPTlRJTlVPVVMgc3BhdGlhbCBjb2xvdXJpbmcg4oCUIGEgZ2VuZSwgYSBudW1lcmljIGNvbHVtbiDigJQgYXMgYVxuICAgKiB7QGxpbmsgQ29sb3JtYXBWYWx1ZX0sIHRoZSBzYW1lIHNoYXBlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGNhcnJpZXM6IGEgc2NhbGVcbiAgICogTkFNRSBmb3IgdGhlIGJ1aWx0LWlucywgb3IgYW4gaW5saW5lIGBbc3RvcCwgY29sb3VyXWAgYXJyYXkgZm9yIHRoZSByZXN0LlxuICAgKiBOdWxsIGZvbGxvd3MgdGhlIGRpc3BsYXkgY29sb3JtYXAuXG4gICAqXG4gICAqIEl0cyBvd24gc2V0dGluZyBiZWNhdXNlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGJlbG9uZ3MgdG8gdGhlIHRpc3N1ZSBpbWFnZSBhbmRcbiAgICogaXMgdXN1YWxseSBhIGdyZXkgcmFtcCwgd2hpY2ggaXMgdGhlIHdyb25nIHRoaW5nIHRvIHJlYWQgYSBtZWFzdXJlbWVudFxuICAgKiB0aHJvdWdoOiBncmV5IG92ZXIgZ3JleSBjYW5ub3QgYmUgdG9sZCBhcGFydCBmcm9tIHRoZSBhbmF0b215LiBGb2xsb3dpbmcgaXRcbiAgICogKHdpdGggYSBWaXJpZGlzIGZhbGxiYWNrIGZvciBleGFjdGx5IHRoYXQgY2FzZSkgaXMgYSByZWFzb25hYmxlIGRlZmF1bHQgYW5kIGFcbiAgICogcG9vciBjZWlsaW5nLCBzaW5jZSB3aGljaCBncmFkaWVudCByZWFkcyBiZXN0IGlzIGEganVkZ2VtZW50IGFib3V0IHRoZSBkYXRhLlxuICAgKlxuICAgKiBPbmUgc2V0dGluZyBmb3IgdGhlIG1hcmtlcnMsIHRoZSAyRCBnZW5lIG1hcCBhbmQgdGhlIDNEIGdlbmUgbWFwIHRvZ2V0aGVyLCBzb1xuICAgKiB0aGUgZmllbGQgdW5kZXIgdGhlIGNlbGxzIGFuZCB0aGUgY2VsbHMgb3ZlciBpdCBjYW5ub3QgZGlzYWdyZWUgYWJvdXQgd2hhdCBhXG4gICAqIGNvbG91ciBtZWFucyDigJQgYW5kIHRoZSBwYW5lbCdzIG93biBjb2xvdXIgYmFyIGlzIGJ1aWx0IGZyb20gaXQgdG9vLlxuICAgKi9cbiAgY29udGludW91c0NvbG9ybWFwOiBDb2xvcm1hcFZhbHVlIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoYXQgdGhlIDNEIHNjZW5lIGRyYXdzLiBUaGUgdGhyZWUgdGhpbmdzIGluIGl0IOKAlCB0aGUgcmVmZXJlbmNlIHZvbHVtZSwgdGhlXG4gICAqIG9ic2VydmF0aW9uIGNsb3VkIGFuZCB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMg4oCUIG9jY3VweSB0aGUgc2FtZSBzcGFjZSwgc29cbiAgICogYW55IHR3byBvZiB0aGVtIGhpZGUgZWFjaCBvdGhlciB0byBzb21lIGRlZ3JlZS4gVGhlc2UgYXJlIGluZGVwZW5kZW50IGJlY2F1c2VcbiAgICogdGhlIHVzZWZ1bCB2aWV3cyBhcmUgdGhlIGNvbWJpbmF0aW9uczogdGhlIHZvbHVtZXMgYWxvbmUgdG8gcmVhZCBhbiBlc3RpbWF0ZWRcbiAgICogZGlzdHJpYnV0aW9uLCBvbmUgc2VjdGlvbidzIGNlbGxzIG92ZXIgdGhlbSB0byBjaGVjayB0aGF0IGVzdGltYXRlIGFnYWluc3QgdGhlXG4gICAqIG1lYXN1cmVtZW50LCB0aGUgYW5hdG9teSBhbG9uZSB0byBmaW5kIGEgbGFuZG1hcmsuXG4gICAqXG4gICAqIFZpc2liaWxpdHkgb25seSDigJQgdGhlIGxheWVycyBzdGF5IGJ1aWx0LCBzbyB0b2dnbGluZyBvbmUgYmFjayBvbiBpcyBpbW1lZGlhdGVcbiAgICogYW5kIGRvZXMgbm90IHJlLXJ1biBhIHJhc3RlcmlzYXRpb24uIHtAbGluayBkZW5zaXR5Vm9sdW1lfSBpcyB0aGUgZXhjZXB0aW9uIGFuZFxuICAgKiBnZW51aW5lbHkgZ2F0ZXMgY29uc3RydWN0aW9uLCBiZWNhdXNlIGJ1aWxkaW5nIHNpeCB2b2x1bWVzIGlzIG5vdCBmcmVlLlxuICAgKi9cbiAgc2hvd1ZvbHVtZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2Ugdm9sdW1lJ3Mgb3BhY2l0eS5cbiAgICpcbiAgICogSXRzIG93biwgbm90IHtAbGluayBvcGFjaXR5fSAod2hpY2ggYmVsb25ncyB0byB0aGUgbWFya2Vycyk6IHRoZSB2b2x1bWUgaXMgYVxuICAgKiBCQUNLRFJPUCwgYW5kIHJlYWRpbmcgdGhlIGNsb3VkIG9yIGEgZGVuc2l0eSBmaWVsZCB0aHJvdWdoIGl0IG1lYW5zIHR1cm5pbmdcbiAgICogdGhlIGFuYXRvbXkgZG93biB3aXRob3V0IHRvdWNoaW5nIHRoZSBkYXRhIGRyYXduIG92ZXIgaXQuIFJhbmdlcyBsb3dlciB0aGFuXG4gICAqIHRoZSBtYXJrZXJzJyBzbGlkZXIgZm9yIHRoZSBzYW1lIHJlYXNvbiDigJQgYSBmYWludCBhbmF0b21pY2FsIGhpbnQgaXMgYSB1c2VmdWxcbiAgICogc2V0dGluZyBmb3IgYSBiYWNrZHJvcCBhbmQgYSB1c2VsZXNzIG9uZSBmb3IgdGhlIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgdm9sdW1lT3BhY2l0eTogbnVtYmVyO1xuICAvKiogRHJhdyB0aGUgb2JzZXJ2YXRpb24gbWFya2VycyDigJQgdGhlIDNEIGNsb3VkLCBvciB0aGUgMkQgY2lyY2xlcy4gSW4gMkQgdGhleSBhbHNvXG4gICAqICBzdGFuZCBpbiBmb3IgY2VsbHMgdG9vIHNtYWxsIG9uIHNjcmVlbiB0byBvdXRsaW5lLiAqL1xuICBzaG93UG9pbnRzOiBib29sZWFuO1xuICAvKipcbiAgICogUmVzdHJpY3QgdGhlIGNsb3VkIHRvIE9ORSBpbWFnZWQgc2VjdGlvbiwgYnkgaW5kZXggaW50byB0aGUgZGF0YXNldCdzIHNhbXBsZWRcbiAgICogc2VjdGlvbnM7IG51bGwgZHJhd3MgZXZlcnkgc2VjdGlvbi5cbiAgICpcbiAgICogVGhlIHdob2xlIGNsb3VkIGlzIGEgc3RhY2sgb2YgZGlzY3MgdGhhdCBoaWRlcyB3aGF0ZXZlciBpcyBkcmF3biBiZXR3ZWVuIHRoZW0uXG4gICAqIE9uZSBzZWN0aW9uIGF0IGEgdGltZSBpcyB0aGUgdmlldyB0aGF0IGFuc3dlcnMgXCJkb2VzIHRoZSBlc3RpbWF0ZWQgZmllbGRcbiAgICogYWN0dWFsbHkgZm9sbG93IHRoZSBjZWxscyBJIG1lYXN1cmVkXCIg4oCUIGFuZCBpdCBpcyBvbmx5IG9mZmVyZWQgZm9yIGRhdGEgdGhhdFxuICAgKiByZWFsbHkgaXMgc2VjdGlvbmVkIChzZWUgYHNhbXBsZWRTZWN0aW9uc2ApLlxuICAgKi9cbiAgcG9pbnRTZWN0aW9uOiBudW1iZXIgfCBudWxsO1xuICAvKipcbiAgICogRHJhdyBlYWNoIGNsdXN0ZXIgYXMgYSB0cmFuc2x1Y2VudCBERU5TSVRZIHZvbHVtZSBhbG9uZ3NpZGUgdGhlIDNEIGNsb3VkLlxuICAgKlxuICAgKiBTZXJpYWwgc2VjdGlvbnMgaHVuZHJlZHMgb2YgbWljcm9ucyBhcGFydCBtYWtlIGEgY2xvdWQgaGFyZCB0byByZWFkIGFzIGFuXG4gICAqIGFuYXRvbWljYWwgZGlzdHJpYnV0aW9uIOKAlCB0aGUgZXllIGNhbm5vdCBpbnRlZ3JhdGUgZGlzY3MgaW50byBhIHNoYXBlLiBBXG4gICAqIGRlbnNpdHkgZmllbGQgY2FuIGJlIGVzdGltYXRlZCBiZXR3ZWVuIHRoZSBpbWFnZWQgcGxhbmVzIChhIGNvbnRpbnVvdXNcbiAgICogZXN0aW1hdGUsIHVubGlrZSBpbmRpdmlkdWFsIGNlbGxzLCB3aGljaCBoYXZlIG5vIGNvcnJlc3BvbmRlbmNlIHRvXG4gICAqIGludGVycG9sYXRlIGFsb25nKSBhbmQgcmVuZGVycyBhcyBhIGNsb3VkIHRoYXQgcmVhZHMgYXMgYW4gZXN0aW1hdGUuXG4gICAqL1xuICBkZW5zaXR5Vm9sdW1lOiBib29sZWFuO1xuICAvKiogTXVsdGlwbGllciBvbiB0aGUgZGVmYXVsdCBrZXJuZWwgYmFuZHdpZHRoLiBBYm92ZSAxIGlzIHNtb290aGVyIGFuZCBsZXNzXG4gICAqICBjb21taXR0YWw7IGJlbG93IDEgZXhwb3NlcyB0aGUgaW5kaXZpZHVhbCBzZWN0aW9ucy4gKi9cbiAgZGVuc2l0eVNtb290aGluZzogbnVtYmVyO1xuICAvKipcbiAgICogRHJhdyB0aGUgYWN0aXZlIEdFTkUgYXMgYSBjb250aW51b3VzIGZpZWxkIHVuZGVyIHRoZSBvYnNlcnZhdGlvbnMgKDJEKS5cbiAgICpcbiAgICogQ29sb3VyaW5nIHRoZSBtYXJrZXJzIGJ5IGEgZ2VuZSBzYXlzIHdoaWNoIGNlbGxzIGV4cHJlc3MgaXQ7IGl0IGNhbm5vdCBzYXlcbiAgICogd2hlcmUsIGJlY2F1c2UgdGhlIGV5ZSB3aWxsIG5vdCBpbnRlZ3JhdGUgdGhvdXNhbmRzIG9mIGRvdHMgaW50byBhIHRlcnJpdG9yeS5cbiAgICogVGhlIGZpZWxkIGlzIGFuIGVzdGltYXRlIOKAlCBhIGtlcm5lbC13ZWlnaHRlZCBtZWFuIHBlciBjZWxsLCB0cmFuc3BhcmVudCB3aGVyZVxuICAgKiBubyBjZWxsIHdhcyBtZWFzdXJlZCDigJQgYW5kIGl0IGlzIGRyYXduIGJlbmVhdGggdGhlIGNlbGxzLCBub3QgaW5zdGVhZCBvZiB0aGVtLFxuICAgKiBzbyB0aGUgbWVhc3VyZW1lbnQgc3RheXMgb24gc2NyZWVuIG5leHQgdG8gdGhlIGludGVycG9sYXRpb24uXG4gICAqXG4gICAqIElnbm9yZWQgdW5sZXNzIHRoZSBjb2xvdXIgc291cmNlIGlzIGEgZ2VuZTogdGhlcmUgaXMgbm90aGluZyBlbHNlIHRvIG1hcC5cbiAgICovXG4gIGdlbmVNYXA6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgM0QgZ2VuZSBtYXAgdG8gT05FIGltYWdlZCBzZWN0aW9uLCBieSBpbmRleCBpbnRvIHRoZSBkYXRhc2V0J3NcbiAgICogc2FtcGxlZCBzZWN0aW9uczsgbnVsbCBkcmF3cyBldmVyeSBzZWN0aW9uJ3Mgc2hlZXQuXG4gICAqXG4gICAqIFNlcGFyYXRlIGZyb20ge0BsaW5rIHBvaW50U2VjdGlvbn0gc28gdGhlIGNvbWJpbmF0aW9ucyBzdGF5IG9wZW46IGFsbCB0aGVcbiAgICogc2hlZXRzIHdpdGggb25lIHNlY3Rpb24ncyBjZWxscyBvdmVyIHRoZW0gaXMgYSB1c2VmdWwgdmlldywgYW5kIHNvIGlzIG9uZVxuICAgKiBzaGVldCBpbnNpZGUgdGhlIHdob2xlIGNsb3VkLiBJZ25vcmVkIHdoaWxlIHtAbGluayBnZW5lTWFwVm9sdW1lfSBpcyBzZXQg4oCUXG4gICAqIGludGVycG9sYXRpbmcgYSBzaW5nbGUgc2VjdGlvbiBhbG9uZyB6IHdvdWxkIHNtZWFyIG9uZSBzbGlkZSB0aHJvdWdoIHRoZVxuICAgKiBzcGVjaW1lbidzIHdob2xlIGRlcHRoIGFuZCBjYWxsIGl0IGFuIGVzdGltYXRlLlxuICAgKi9cbiAgZ2VuZU1hcFNlY3Rpb246IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBTbW9vdGggdGhlIHBlci1zZWN0aW9uIGdlbmUgbWFwcyBhbG9uZyB6IGludG8gYSBjb250aW51b3VzIFZPTFVNRSAoM0QpLlxuICAgKlxuICAgKiBUaGUgc2hlZXRzIGFyZSB3aGF0IHdhcyBtZWFzdXJlZCDigJQgb25lIGZpZWxkIHBlciBpbWFnZWQgc2xpZGUsIHdpdGggdGhlIGdhcHNcbiAgICogYmV0d2VlbiB0aGVtIGVtcHR5LiBUaGlzIHR1cm5zIHRoZW0gaW50byBhbiBlc3RpbWF0ZSBkZWZpbmVkIGJldHdlZW4gdGhlXG4gICAqIHNsaWRlcywgdGhlIHNhbWUgbW92ZSB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMgbWFrZSBhbmQgd2l0aCB0aGUgc2FtZVxuICAgKiBjYXZlYXQ6IGEgZmllbGQgbWF5IGJlIGludGVycG9sYXRlZCBiZXR3ZWVuIHNlY3Rpb25zLCBpbmRpdmlkdWFsIGNlbGxzIG1heVxuICAgKiBub3QsIGFuZCB0aGUgcmVzdWx0IGlzIGRyYXduIGFzIGEgdHJhbnNsdWNlbnQgY2xvdWQgc28gaXQgY2Fubm90IGJlIG1pc3Rha2VuXG4gICAqIGZvciBtZWFzdXJlbWVudC5cbiAgICovXG4gIGdlbmVNYXBWb2x1bWU6IGJvb2xlYW47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBnZW5lIG1hcCdzIGtlcm5lbCBiYW5kd2lkdGguICovXG4gIGdlbmVNYXBTbW9vdGhpbmc6IG51bWJlcjtcbiAgLyoqIFRoZSBnZW5lIG1hcCdzIG93biBvcGFjaXR5LiBTZXBhcmF0ZSBmcm9tIHtAbGluayBvcGFjaXR5fSwgd2hpY2ggYmVsb25ncyB0b1xuICAgKiAgdGhlIG1hcmtlcnM6IHR1cm5pbmcgdGhlIGNlbGxzIGRvd24gdG8gcmVhZCB0aGUgZmllbGQgdW5kZXJuZWF0aCBtdXN0IG5vdFxuICAgKiAgdHVybiB0aGUgZmllbGQgZG93biB3aXRoIHRoZW0uICovXG4gIGdlbmVNYXBPcGFjaXR5OiBudW1iZXI7XG4gIC8qKlxuICAgKiBEcmF3IGNlbGwgYm91bmRhcmllcyAoZm9yIGEgZGF0YXNldCB3aXRoIGBwb2x5Z29uVGlsZXNgIG9yIGBwb2x5Z29uc2ApLlxuICAgKlxuICAgKiBPdXRsaW5lcyBhcmUgbGV2ZWwtb2YtZGV0YWlsOiBjb2Fyc2UgcmluZ3Mgd2hlbiB6b29tZWQgb3V0LCBldmVyeSB2ZXJ0ZXggYXQgdGhlXG4gICAqIGZpbmVzdCB6b29tLCBhbmQgbm9uZSBhdCBhbGwgb25jZSBhIGNlbGwgaXMgYSBmZXcgcGl4ZWxzIHdpZGUg4oCUIHRoZXJlIHRoZVxuICAgKiBvYnNlcnZhdGlvbiBtYXJrZXJzIGFscmVhZHkgZHJhdyBpdCBhcyBhIGRvdC5cbiAgICpcbiAgICogYG51bGxgICh0aGUgZGVmYXVsdCkgbWVhbnMgYXV0b21hdGljOiBvbiBmb3IgYW55IGRhdGFzZXQgdGhhdCBoYXMgb3V0bGluZXMsIHNpbmNlIGFcbiAgICogc2VnbWVudGVkIGNlbGwgaXMgYmV0dGVyIHNob3duIGFzIGl0cyBzaGFwZSB0aGFuIGFzIGEgY2lyY2xlLiBBIGJvb2xlYW4gaXMgdGhlXG4gICAqIHVzZXIncyBleHBsaWNpdCBjaG9pY2UuXG4gICAqL1xuICBzaG93Q2VsbHM6IGJvb2xlYW4gfCBudWxsO1xuICAvKiogV2hpY2ggYm91bmRhcnkgc2V0IChgY2VsbGAsIGBudWNsZXVzYCwgb3IgYGJvdGhgIOKAlCBjZWxscyBhcyBzZXQgYnlcbiAgICogIHtAbGluayBjZWxsRHJhd30sIG51Y2xlaSBvdXRsaW5lZCBvdmVyIHRoZW0pOyBudWxsIHRha2VzIHRoZSBkYXRhc2V0J3MgZGVmYXVsdC4gKi9cbiAgY2VsbFNldDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoYXQgY29sb3VycyB0aGUgY2VsbHMg4oCUIFhlbml1bSBFeHBsb3JlcidzIFwiQ2VsbCBDb2xvclwiOiB0aGUgYWN0aXZlIGdyb3VwXG4gICAqICh7QGxpbmsgY2VsbFR5cGVDb2x1bW59KSwgb25lIGdlbmUncyBleHByZXNzaW9uICh7QGxpbmsgY2VsbENvbG9yR2VuZX0pLCB0aGUgY2VsbCdzXG4gICAqIHRyYW5zY3JpcHQgZGVuc2l0eSwgb25lIGZsYXQgY29sb3VyLCBvciBob3cgdGhlIGNlbGwgd2FzIHNlZ21lbnRlZC5cbiAgICovXG4gIGNlbGxDb2xvck1vZGU6ICdncm91cCcgfCAnZ2VuZScgfCAndHJhbnNjcmlwdERlbnNpdHknIHwgJ3NpbmdsZScgfCAnc2VnbWVudGF0aW9uJztcbiAgY2VsbENvbG9yR2VuZTogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIGAjcnJnZ2JiYCBmb3Ige0BsaW5rIGNlbGxDb2xvck1vZGV9IGBzaW5nbGVgLiAqL1xuICBjZWxsU2luZ2xlQ29sb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIENhdGVnb3JpZXMgb2Yge0BsaW5rIGNlbGxUeXBlQ29sdW1ufSBzd2l0Y2hlZCBvZmYgaW4gdGhlIGdyb3VwcyBsaXN0OiB0aGVpciBjZWxscyBhcmVcbiAgICogbm90IGRyYXduLCBub3IgdGhlIHRyYW5zY3JpcHRzIGluc2lkZSB0aGVtLiBDbGVhcmVkIHdoZW4gdGhlIGdyb3VwIGNvbHVtbiBjaGFuZ2VzLlxuICAgKi9cbiAgaGlkZGVuR3JvdXBzOiBzdHJpbmdbXTtcbiAgLyoqIERyYXcgdGhlIHRpc3N1ZSBpbWFnZSAodGhlIEltYWdlcyBzZWN0aW9uJ3Mgc3dpdGNoKS4gKi9cbiAgc2hvd0ltYWdlOiBib29sZWFuO1xuICAvKiogRHJhdyB0aGUgYW5ub3RhdGlvbiByZWdpb25zICh0aGUgQW5ub3RhdGlvbnMgc2VjdGlvbidzIHN3aXRjaCkuIFNlbGVjdGluZyBmcm9tIHRoZW1cbiAgICogIHN0aWxsIHdvcmtzIHdoaWxlIHRoZXkgYXJlIGhpZGRlbi4gKi9cbiAgc2hvd0Fubm90YXRpb25zOiBib29sZWFuO1xuICAvKiogRmlsbCB0aGUgY2VsbHMgd2l0aCB0aGVpciBjb2xvdXIsIG91dGxpbmUgdGhlbSwgb3IgYm90aC4gKi9cbiAgY2VsbERyYXc6ICdmaWxsJyB8ICdvdXRsaW5lJyB8ICdib3RoJztcbiAgLyoqIE9wYWNpdHkgb2YgdGhlIGNlbGwgZmlsbCAob3V0bGluZXMgZHJhdyBvcGFxdWUpLiAqL1xuICBjZWxsT3BhY2l0eTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGNhdGVnb3JpY2FsIGNvbHVtbiB0aGF0IHNheXMgd2hhdCBUWVBFIGVhY2ggY2VsbCBpczogaXQgY29sb3VycyB0aGUgY2VsbHNcbiAgICogd2hlbmV2ZXIgbm90aGluZyBlbHNlIGlzIGNob3NlbiwgYW5kIGl0IGNvbG91cnMgZXZlcnkgdHJhbnNjcmlwdCBieSB0aGUgY2VsbCBpdFxuICAgKiBmYWxscyBpbi4gTnVsbCBwaWNrcyB0aGUgZGF0YXNldCdzIGZpcnN0IGNhdGVnb3JpY2FsIGNvbHVtbi4gU3dhcHBpbmcgYmV0d2VlbiBhXG4gICAqIHBpcGVsaW5lJ3MgY2x1c3RlcmluZyBhbmQgYSBjdXJhdGVkIGFubm90YXRpb24gaXMgc3dhcHBpbmcgdGhpcy5cbiAgICovXG4gIGNlbGxUeXBlQ29sdW1uOiBzdHJpbmcgfCBudWxsO1xuICAvKiogR2VuZXMgd2hvc2UgdHJhbnNjcmlwdHMgYXJlIGRyYXduLiAqL1xuICB0cmFuc2NyaXB0R2VuZXM6IHN0cmluZ1tdO1xuICAvKiogU2VsZWN0ZWQgZ2VuZXMgc3dpdGNoZWQgb2ZmIHdpdGggdGhlaXIgZXllIHRvZ2dsZSDigJQga2VwdCBpbiB0aGUgbGlzdCwgbm90IGRyYXduLiAqL1xuICB0cmFuc2NyaXB0SGlkZGVuR2VuZXM6IHN0cmluZ1tdO1xuICAvKiogUGVyLWdlbmUgbWFya2VyIGNvbG91ciAoYCNycmdnYmJgKTsgZ2VuZXMgbm90IGxpc3RlZCB0YWtlIHRoZSBwYWxldHRlIGJ5IHBvc2l0aW9uLiAqL1xuICB0cmFuc2NyaXB0R2VuZUNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIE5hbWVkIGdlbmUgZ3JvdXBzIChlLmcuIG1hcmtlciBnZW5lcyBwZXIgY2VsbCB0eXBlKSBmb3IgdGhlIHNlbGVjdGVkLWdlbmVzIHRyZWUuICovXG4gIHRyYW5zY3JpcHRHZW5lR3JvdXBzOiB7IG5hbWU6IHN0cmluZzsgZ2VuZXM6IHN0cmluZ1tdIH1bXTtcbiAgLyoqXG4gICAqIERyYXcgRVZFUlkgZ2VuZSdzIHRyYW5zY3JpcHRzIGluc3RlYWQgb2Yge0BsaW5rIHRyYW5zY3JpcHRHZW5lc306IGdyb3VwZWQgaW50byBiaW5zXG4gICAqIHNpemVkIGJ5IGhvdyBtYW55IHRyYW5zY3JpcHRzIHRoZXkgaG9sZCwgZmluZXIgYXMgdGhlIGNhbWVyYSB6b29tcyBpbiwgZG93biB0byBvbmVcbiAgICogbWFya2VyIHBlciB0cmFuc2NyaXB0IG9uY2UgdGhvc2UgZml0IHtAbGluayB0cmFuc2NyaXB0QnVkZ2V0fS5cbiAgICovXG4gIHRyYW5zY3JpcHRBbGxHZW5lczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1vc3QgdHJhbnNjcmlwdCBtYXJrZXJzIGRyYXduIGF0IG9uY2UuIFRoZSBsZXZlbCBvZiBkZXRhaWwgaXMgY2hvc2VuIHRvIHN0YXkgdW5kZXIgaXQsXG4gICAqIHdoaWNoIGlzIHdoYXQga2VlcHMgcGFuIGFuZCB6b29tIHJlc3BvbnNpdmUgaG93ZXZlciBkZW5zZSB0aGUgZGF0YSBpcy5cbiAgICovXG4gIHRyYW5zY3JpcHRCdWRnZXQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyB0cmFuc2NyaXB0cyBhcmUgZHJhd246IGBjaXJjbGVzYCBzaXplZCBieSBob3cgbWFueSB0cmFuc2NyaXB0cyBlYWNoIHN0YW5kcyBmb3IsXG4gICAqIGBnbHlwaHNgIChvbmUgaWNvbiBzaGFwZSBwZXIgZ2VuZSksIG9yIGEgYGRlbnNpdHlgIHJhc3Rlci4gQ2lyY2xlcyBhbmQgZ2x5cGhzIGFyZVxuICAgKiBsZXZlbC1vZi1kZXRhaWwg4oCUIGFnZ3JlZ2F0ZWQgd2hlbiB6b29tZWQgb3V0LCBvbmUgcGVyIHRyYW5zY3JpcHQgYXQgdGhlIGZpbmVzdCB6b29tLlxuICAgKi9cbiAgdHJhbnNjcmlwdE1vZGU6ICdvZmYnIHwgJ2NpcmNsZXMnIHwgJ2dseXBocycgfCAnZGVuc2l0eSc7XG4gIC8qKiBDb2xvdXIgdHJhbnNjcmlwdHMgYnkgdGhlIHR5cGUgb2YgdGhlIGNlbGwgdGhleSBmYWxsIGluLCBieSBnZW5lLCBvciBieSB0aGUgZ2VuZS10cmVlXG4gICAqICBjbHVzdGVyIHRoZWlyIGdlbmUgaXMgaW4gKGluIHRoZSBjb2xvdXIgdGhhdCBjbHVzdGVyJ3MgY2VsbHMgaGF2ZSwgd2hlbiBhIGNlbGwgZ3JvdXBpbmdcbiAgICogIG5hbWVzIGl0KS4gKi9cbiAgdHJhbnNjcmlwdENvbG9yQnk6ICdjZWxsVHlwZScgfCAnZ2VuZScgfCAnY2x1c3Rlcic7XG4gIC8qKiBHbHlwaCBwZXIgZ2VuZSBmb3IgYGdseXBoc2AgbW9kZTsgZ2VuZXMgbm90IGxpc3RlZCB0YWtlIG9uZSBieSBwb3NpdGlvbi4gKi9cbiAgdHJhbnNjcmlwdEdseXBoczogUmVjb3JkPHN0cmluZywgVHJhbnNjcmlwdEdseXBoTmFtZT47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRyYW5zY3JpcHQgbWFya2VyIHNpemUuICovXG4gIHRyYW5zY3JpcHRTY2FsZTogbnVtYmVyO1xuICB0cmFuc2NyaXB0T3BhY2l0eTogbnVtYmVyO1xuICAvKiogYGhpZ2hgIGtlZXBzIG9ubHkgY29uZmlkZW50bHkgZGVjb2RlZCB0cmFuc2NyaXB0cy4gKi9cbiAgdHJhbnNjcmlwdFF1YWxpdHk6ICdoaWdoJyB8ICdhbGwnO1xuICAvKiogT3BhY2l0eSBvZiB0aGUgdHJhbnNjcmlwdCBkZW5zaXR5IHJhc3Rlci4gKi9cbiAgZGVuc2l0eU9wYWNpdHk6IG51bWJlcjtcbiAgLyoqIERlbnNpdHkgYmluIGVkZ2UgaW4gb2JzZXJ2YXRpb24gdW5pdHMgKMK1bSk6IDEwLCAyMCwgNDAgb3IgODAuICovXG4gIGRlbnNpdHlCaW46IG51bWJlcjtcbiAgLyoqIENvbG91ciB3aW5kb3cgaW4gdHJhbnNjcmlwdHMgcGVyIHVuaXTCsiAowrVtwrIpOyBudWxsIGRlcml2ZXMgaXQgZnJvbSB0aGUgZGF0YS4gKi9cbiAgZGVuc2l0eVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbDtcbiAgLyoqIENvbG9ybWFwIGZvciB0aGUgZGVuc2l0eSBiaW5zOyBudWxsIHVzZXMgSW5mZXJuby4gKi9cbiAgZGVuc2l0eUNvbG9ybWFwOiBDb2xvcm1hcFZhbHVlIHwgbnVsbDtcbn1cblxuLyoqIFRyYW5zY3JpcHQgZ2x5cGggbmFtZXMg4oCUIHNlZSBgVFJBTlNDUklQVF9HTFlQSFNgIGluIGBzcGF0aWFsL3NwYXRpYWwtdGlsZXMudHNgLiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNjcmlwdEdseXBoTmFtZSA9XG4gICdjaXJjbGUnIHwgJ3N0YXInIHwgJ3RyaWFuZ2xlJyB8ICdzcXVhcmUnIHwgJ2RpYW1vbmQnIHwgJ2Nyb3NzJyB8ICdoZXhhZ29uJyB8ICd0cmlhbmdsZS1kb3duJyB8ICdwZW50YWdvbicgfCAneCc7XG5cbi8qKlxuICogVGhlIHNwYXRpYWwgdmlldyBhIGRhdGFzZXQgb3BlbnMgd2l0aDogbm8gY29sb3VyIHNvdXJjZSwgcG9pbnRzIGFuZCB2b2x1bWUgc2hvd24sIHRoZVxuICogb3B0aW9uYWwgbGF5ZXJzIG9mZi4gQSBjb21wbGV0ZSBzdGF0ZSB0byBzcHJlYWQgcGFydGlhbCB2aWV3LXN0YXRlIHBhdGNoZXMgb3Zlci5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1BBVElBTF9WSUVXOiBTcGF0aWFsVmlld1N0YXRlID0ge1xuICBjb2xvckJ5OiBudWxsLFxuICBwb2ludFNjYWxlOiAxLFxuICBvcGFjaXR5OiAxLFxuICBsb2dTY2FsZTogZmFsc2UsXG4gIHBlcmNlbnRpbGVDbGlwOiBbMC4wMSwgMC45OV0sXG4gIGNvbnRpbnVvdXNDb2xvcm1hcDogbnVsbCxcbiAgc2hvd1ZvbHVtZTogdHJ1ZSxcbiAgdm9sdW1lT3BhY2l0eTogMC41LFxuICBzaG93UG9pbnRzOiB0cnVlLFxuICBwb2ludFNlY3Rpb246IG51bGwsXG4gIGRlbnNpdHlWb2x1bWU6IGZhbHNlLFxuICBkZW5zaXR5U21vb3RoaW5nOiAxLFxuICBnZW5lTWFwOiBmYWxzZSxcbiAgZ2VuZU1hcFNlY3Rpb246IG51bGwsXG4gIGdlbmVNYXBWb2x1bWU6IGZhbHNlLFxuICBnZW5lTWFwU21vb3RoaW5nOiAxLFxuICBnZW5lTWFwT3BhY2l0eTogMC44NSxcbiAgc2hvd0NlbGxzOiBudWxsLFxuICBjZWxsU2V0OiBudWxsLFxuICBjZWxsRHJhdzogJ2ZpbGwnLFxuICBjZWxsT3BhY2l0eTogMC41NSxcbiAgY2VsbFR5cGVDb2x1bW46IG51bGwsXG4gIHRyYW5zY3JpcHRHZW5lczogW10sXG4gIHRyYW5zY3JpcHRIaWRkZW5HZW5lczogW10sXG4gIHRyYW5zY3JpcHRHZW5lQ29sb3JzOiB7fSxcbiAgdHJhbnNjcmlwdEdlbmVHcm91cHM6IFtdLFxuICB0cmFuc2NyaXB0QWxsR2VuZXM6IGZhbHNlLFxuICB0cmFuc2NyaXB0QnVkZ2V0OiAxMDBfMDAwLFxuICB0cmFuc2NyaXB0TW9kZTogJ29mZicsXG4gIHRyYW5zY3JpcHRDb2xvckJ5OiAnY2VsbFR5cGUnLFxuICB0cmFuc2NyaXB0R2x5cGhzOiB7fSxcbiAgdHJhbnNjcmlwdFNjYWxlOiAxLFxuICB0cmFuc2NyaXB0T3BhY2l0eTogMC45LFxuICB0cmFuc2NyaXB0UXVhbGl0eTogJ2hpZ2gnLFxuICBkZW5zaXR5T3BhY2l0eTogMC44LFxuICBkZW5zaXR5QmluOiAxMCxcbiAgZGVuc2l0eVJhbmdlOiBudWxsLFxuICBkZW5zaXR5Q29sb3JtYXA6IG51bGwsXG4gIGNlbGxDb2xvck1vZGU6ICdncm91cCcsXG4gIGNlbGxDb2xvckdlbmU6IG51bGwsXG4gIGNlbGxTaW5nbGVDb2xvcjogJyM0ZmMzZjcnLFxuICBoaWRkZW5Hcm91cHM6IFtdLFxuICBzaG93SW1hZ2U6IHRydWUsXG4gIHNob3dBbm5vdGF0aW9uczogdHJ1ZSxcbn07XG4iXX0=
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUE4REgsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBNEIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFbEgsNENBQTRDO0FBQzVDLE1BQU0sVUFBVSxjQUFjLENBQUMsRUFBNkI7SUFDMUQsT0FBUSxlQUFxQyxDQUFDLFFBQVEsQ0FBQyxFQUFZLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBa1FEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFxQjtJQUNwRCxPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsS0FBSztJQUNmLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDNUIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixVQUFVLEVBQUUsSUFBSTtJQUNoQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLE9BQU8sRUFBRSxLQUFLO0lBQ2QsY0FBYyxFQUFFLElBQUk7SUFDcEIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQixjQUFjLEVBQUUsSUFBSTtJQUNwQixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLE1BQU07SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLElBQUk7SUFDcEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsa0JBQWtCLEVBQUUsS0FBSztJQUN6Qix3QkFBd0IsRUFBRSxFQUFFO0lBQzVCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsY0FBYyxFQUFFLEtBQUs7SUFDckIsaUJBQWlCLEVBQUUsVUFBVTtJQUM3QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGlCQUFpQixFQUFFLEdBQUc7SUFDdEIsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixjQUFjLEVBQUUsR0FBRztJQUNuQixVQUFVLEVBQUUsRUFBRTtJQUNkLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLGdCQUFnQixFQUFFLEVBQUU7SUFDcEIscUJBQXFCLEVBQUUsS0FBSztJQUM1Qix1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLHFCQUFxQixFQUFFLEVBQUU7SUFDekIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixTQUFTLEVBQUUsSUFBSTtJQUNmLGVBQWUsRUFBRSxJQUFJO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpY2F0aW9uLWNyaXRpY2FsIHR5cGVzIHRoYXQgd2VyZSBgYW55YCBvbiB0aGUgcHVibGljIGNvbnRyYWN0c1xuICogKHJlZmFjdG9yaW5nIHBsYW4sIFN0ZXAgNikuIERlbGliZXJhdGVseSBwZXJtaXNzaXZlIOKAlCBldmVyeSBmaWVsZCBvcHRpb25hbCDigJRcbiAqIHNvIGV4aXN0aW5nIGhvc3RzICh3aGljaCBwYXNzIFByaW1lTkcgYFRyZWVOb2RlYHMgYW5kIHBsYWluIG9wdGlvbiBvYmplY3RzKVxuICoga2VlcCBjb21waWxpbmcgdW5jaGFuZ2VkIHdoaWxlIGNvbnN1bWVycyBmaW5hbGx5IGdldCBuYW1lZCBzaGFwZXMuXG4gKi9cblxuLyoqIEEgY29sb3JtYXAgdmFsdWUgYXMgUGxvdGx5IHVuZGVyc3RhbmRzIGl0OiBhIGJ1aWx0LWluIHNjYWxlIG5hbWUgKGUuZy5cbiAqICAnVmlyaWRpcycpIG9yIGFuIGlubGluZSBhcnJheSBvZiBgW3N0b3AsIGNvbG9yXWAgcGFpcnMuICovXG5leHBvcnQgdHlwZSBDb2xvcm1hcFZhbHVlID0gc3RyaW5nIHwgQXJyYXk8W251bWJlciwgc3RyaW5nXT47XG5cbi8qKiBPbmUgbm9kZSBvZiB0aGUgY29sb3JtYXAgc2VsZWN0b3IgdHJlZSAoc3RydWN0dXJhbGx5IGNvbXBhdGlibGUgd2l0aCB0aGVcbiAqICBQcmltZU5HIGBUcmVlTm9kZWBzIHRoZSBob3N0IHBhc3Nlcyk6IGdyb3VwIG5vZGVzIGNhcnJ5IGBjaGlsZHJlbmAsIGxlYWZcbiAqICBub2RlcyBjYXJyeSB0aGUgc2NhbGUgaW4gYGRhdGEudmFsdWVgICgrIGEgcHJldmlldyBpbWFnZSBpbiBgZGF0YS5zcmNgKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JtYXBOb2RlIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRhdGE/OiB7IHZhbHVlPzogQ29sb3JtYXBWYWx1ZTsgc3JjPzogc3RyaW5nIH07XG4gIGNoaWxkcmVuPzogQ29sb3JtYXBOb2RlW107XG59XG5cbi8qKiBNYWdpYy13YW5kIHBpeGVsLWNvbXBhcmlzb24gc3BhY2UuICovXG5leHBvcnQgdHlwZSBXYW5kVHlwZSA9ICdHUkFZJyB8ICdSR0InIHwgJ0xBQl9ESVNUQU5DRSc7XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgbWFnaWMtd2FuZCB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2FuZE9wdGlvbnMge1xuICB0eXBlPzogV2FuZFR5cGU7XG4gIC8qKiBHYXVzc2lhbiBzaWdtYSBhcHBsaWVkIHRvIHRoZSBwYXRjaCBiZWZvcmUgdGhyZXNob2xkaW5nLiAqL1xuICBzaWdtYT86IG51bWJlcjtcbiAgLyoqIEhpZ2hlciA9IHN0cmljdGVyIChzbWFsbGVyIHNlbGVjdGlvbikgZm9yIEdSQVkvUkdCOyBoaWdoZXIgPSBsb29zZXIgZm9yXG4gICAqICBMQUJfRElTVEFOQ0Ug4oCUIG1hdGNoZXMgUXVQYXRoLiAqL1xuICBzZW5zaXRpdml0eT86IG51bWJlcjtcbiAgLyoqIFNxdWFyZSBwYXRjaCBzaXplIGluIHBpeGVscyAobXVzdCBiZSBvZGQpLiAqL1xuICBwYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKiBXaGVuIHRydWUsIHNraXAgYmx1ci90aHJlc2hvbGQgYW5kIGZsb29kLWZpbGwgYXQgZXhhY3QtbWF0Y2hcbiAgICogIChDbWQvQ3RybC1jbGljayBpbiBRdVBhdGgpLiAqL1xuICBzaW1wbGVNb2RlPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBicnVzaCByZWdpb24gdG9vbCAoUXVQYXRoLXN0eWxlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJydXNoT3B0aW9ucyB7XG4gIC8qKiBCcnVzaCBkaWFtZXRlciBpbiBtYXRyaXggKGltYWdlKSBwaXhlbHMuICovXG4gIHNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQYWludCBhcyBvbmUgY2xhc3M6IG5ldyByZWdpb25zIHRha2UgdGhpcyBsYWJlbCwgYW5kIGEgc3Ryb2tlIG9ubHkgZXh0ZW5kc1xuICAgKiBvciBtZXJnZXMgcmVnaW9ucyB3aXRoIHRoZSBzYW1lIGxhYmVsLiBVbnNldCA9IHRoZSBwbGFpbiBicnVzaCAobGFiZWxcbiAgICogYCdSZWdpb24nYCwgZXh0ZW5kcyBhbnkgcmVnaW9uKS4gYHNldEJydXNoTW9kZSh0cnVlLCDigKYpYCBzZXRzIHRoZSBjbGFzcyBpblxuICAgKiBmdWxsOyBgc2V0QnJ1c2hPcHRpb25zYCBjaGFuZ2VzIGl0IG9ubHkgd2hlbiBgbGFiZWxgIG9yIGBjb2xvcmAgaXMgcGFzc2VkLFxuICAgKiBzbyBhIHNpemUtb25seSB1cGRhdGUga2VlcHMgaXQuXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIENvbG91ciBmb3IgdGhlIHBhaW50ZWQgcmVnaW9ucyBpbnN0ZWFkIG9mIHRoZSBzaGFwZSBjb2xvdXIuIEtlcHQgYWdhaW5zdCBwcmVzZXQgcmUtYXBwbHkuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHZlcnRleCBlcmFzZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIElWZXJ0ZXhFcmFzZXJPcHRpb25zIHtcbiAgLyoqIEVyYXNlciByYWRpdXMgaW4gbWF0cml4IChpbWFnZSkgcGl4ZWxzLiAqL1xuICByYWRpdXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIG9uLWNhbnZhcyB0b29scyBgSVRvb2xDb250cm9sbGVyLnNldEFjdGl2ZVRvb2xgIGFybXM6IG1hZ2ljIHdhbmQsIGJydXNoLFxuICogdmVydGV4IGVyYXNlciwgYm94IHpvb20gYW5kIFNBTSBwb2ludCBwcm9tcHRzLiBBbnkgb3RoZXIgaWQgKGEgcmVnaW9uIGRyYXdcbiAqIG1vZGUgc3VjaCBhcyBgJ2RyYXdyZWN0J2AsIGAncGFuJ2ApIGFybXMgbm9uZSBvZiB0aGVtLlxuICovXG5leHBvcnQgdHlwZSBDYW52YXNUb29sSWQgPSAnd2FuZCcgfCAnYnJ1c2gnIHwgJ2VyYXNlVmVydGV4JyB8ICd6b29tVG9Cb3gnIHwgJ3NhbVBvaW50JztcblxuLyoqIEV2ZXJ5IHtAbGluayBDYW52YXNUb29sSWR9LiAqL1xuZXhwb3J0IGNvbnN0IENBTlZBU19UT09MX0lEUzogcmVhZG9ubHkgQ2FudmFzVG9vbElkW10gPSBbJ3dhbmQnLCAnYnJ1c2gnLCAnZXJhc2VWZXJ0ZXgnLCAnem9vbVRvQm94JywgJ3NhbVBvaW50J107XG5cbi8qKiBXaGV0aGVyIGBpZGAgbmFtZXMgYW4gb24tY2FudmFzIHRvb2wuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDYW52YXNUb29sSWQoaWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBpZCBpcyBDYW52YXNUb29sSWQge1xuICByZXR1cm4gKENBTlZBU19UT09MX0lEUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMoaWQgYXMgc3RyaW5nKTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHtAbGluayBDYW52YXNUb29sSWR9IHRvb2xzOiB0aGUgd2FuZCdzLCB0aGUgYnJ1c2gncyBvciB0aGUgZXJhc2VyJ3MuICovXG5leHBvcnQgdHlwZSBDYW52YXNUb29sT3B0aW9ucyA9IElXYW5kT3B0aW9ucyB8IElCcnVzaE9wdGlvbnMgfCBJVmVydGV4RXJhc2VyT3B0aW9ucztcblxuLyoqIFdoYXQgZHJpdmVzIHBvaW50IGNvbG91ciBpbiB0aGUgc3BhdGlhbC1vbWljcyBtb2RlOiBhbiBhbm5vdGF0aW9uIGNvbHVtblxuICogIGZyb20gdGhlIGRhdGFzZXQsIG9yIG9uZSBmZWF0dXJlIChnZW5lKSB2ZWN0b3IgZmV0Y2hlZCBvbiBkZW1hbmQuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxDb2xvckJ5IHtcbiAga2luZDogJ2NvbHVtbicgfCAnZmVhdHVyZSc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqIERpc3BsYXkgc3RhdGUgZm9yIHRoZSBzcGF0aWFsLW9taWNzIHBsb3QgbW9kZS4gTGl2ZXMgaW4gYFZpc3VhbGl6ZXJTdG9yZWBcbiAqICBhbG9uZ3NpZGUgdGhlIGNvbG9ybWFwL2NoYW5uZWwgc3RhdGUgc28gdGhlIHJlbmRlcmVyIHJlYWN0cyB0byBlZGl0cyB0aGVcbiAqICBzYW1lIHdheSBpdCBkb2VzIGZvciBhbiBpbWFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFZpZXdTdGF0ZSB7XG4gIC8qKiBDb2xvdXIgc291cmNlOyBgbnVsbGAgcmVuZGVycyBldmVyeSBvYnNlcnZhdGlvbiBpbiBvbmUgbmV1dHJhbCBjb2xvdXJcbiAgICogICh1c2VmdWwgb24gaXRzIG93biDigJQgaXQgc2hvd3Mgd2hlcmUgdGhlIHRpc3N1ZSBhY3R1YWxseSBpcykuICovXG4gIGNvbG9yQnk6IFNwYXRpYWxDb2xvckJ5IHwgbnVsbDtcbiAgLyoqIE11bHRpcGxpZXIgb24gdGhlIGRhdGFzZXQncyBwaHlzaWNhbCBtYXJrZXIgc2l6ZS4gMSA9IHRydWUgc2l6ZSwgd2hpY2ggZm9yXG4gICAqICBhIDU1IMK1bSBWaXNpdW0gc3BvdCBpcyBjb3JyZWN0IGJ1dCBjYW4gYmUgaW52aXNpYmxlIHdoZW4gem9vbWVkIG91dC4gKi9cbiAgcG9pbnRTY2FsZTogbnVtYmVyO1xuICAvKiogQWxwaGEgZm9yIHBvaW50cyB0aGF0IGFyZSBub3QgbXV0ZWQuICovXG4gIG9wYWNpdHk6IG51bWJlcjtcbiAgLyoqIExvZy1zY2FsZSBjb250aW51b3VzIHZhbHVlcyBiZWZvcmUgbWFwcGluZyB0aGVtIG9udG8gdGhlIGNvbG9ybWFwLiBTZWVkZWRcbiAgICogIGZyb20gdGhlIGNvbHVtbidzIGBsb2dTY2FsZUhpbnRgIOKAlCBjb3VudCBkYXRhIG5lZWRzIGl0LiAqL1xuICBsb2dTY2FsZTogYm9vbGVhbjtcbiAgLyoqIFBlcmNlbnRpbGUgY2xpcCBmb3IgdGhlIGNvbnRyYXN0IHdpbmRvdyBhcyBgW2xvLCBoaV1gIGZyYWN0aW9ucywgc28gYVxuICAgKiAgaGFuZGZ1bCBvZiBzYXR1cmF0ZWQgb2JzZXJ2YXRpb25zIGRvbid0IGZsYXR0ZW4gdGhlIHJlc3QuICovXG4gIHBlcmNlbnRpbGVDbGlwOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogQ29sb3JtYXAgZm9yIENPTlRJTlVPVVMgc3BhdGlhbCBjb2xvdXJpbmcg4oCUIGEgZ2VuZSwgYSBudW1lcmljIGNvbHVtbiDigJQgYXMgYVxuICAgKiB7QGxpbmsgQ29sb3JtYXBWYWx1ZX0sIHRoZSBzYW1lIHNoYXBlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGNhcnJpZXM6IGEgc2NhbGVcbiAgICogTkFNRSBmb3IgdGhlIGJ1aWx0LWlucywgb3IgYW4gaW5saW5lIGBbc3RvcCwgY29sb3VyXWAgYXJyYXkgZm9yIHRoZSByZXN0LlxuICAgKiBOdWxsIGZvbGxvd3MgdGhlIGRpc3BsYXkgY29sb3JtYXAuXG4gICAqXG4gICAqIEl0cyBvd24gc2V0dGluZyBiZWNhdXNlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGJlbG9uZ3MgdG8gdGhlIHRpc3N1ZSBpbWFnZSBhbmRcbiAgICogaXMgdXN1YWxseSBhIGdyZXkgcmFtcCwgd2hpY2ggaXMgdGhlIHdyb25nIHRoaW5nIHRvIHJlYWQgYSBtZWFzdXJlbWVudFxuICAgKiB0aHJvdWdoOiBncmV5IG92ZXIgZ3JleSBjYW5ub3QgYmUgdG9sZCBhcGFydCBmcm9tIHRoZSBhbmF0b215LiBGb2xsb3dpbmcgaXRcbiAgICogKHdpdGggYSBWaXJpZGlzIGZhbGxiYWNrIGZvciBleGFjdGx5IHRoYXQgY2FzZSkgaXMgYSByZWFzb25hYmxlIGRlZmF1bHQgYW5kIGFcbiAgICogcG9vciBjZWlsaW5nLCBzaW5jZSB3aGljaCBncmFkaWVudCByZWFkcyBiZXN0IGlzIGEganVkZ2VtZW50IGFib3V0IHRoZSBkYXRhLlxuICAgKlxuICAgKiBPbmUgc2V0dGluZyBmb3IgdGhlIG1hcmtlcnMsIHRoZSAyRCBnZW5lIG1hcCBhbmQgdGhlIDNEIGdlbmUgbWFwIHRvZ2V0aGVyLCBzb1xuICAgKiB0aGUgZmllbGQgdW5kZXIgdGhlIGNlbGxzIGFuZCB0aGUgY2VsbHMgb3ZlciBpdCBjYW5ub3QgZGlzYWdyZWUgYWJvdXQgd2hhdCBhXG4gICAqIGNvbG91ciBtZWFucyDigJQgYW5kIHRoZSBwYW5lbCdzIG93biBjb2xvdXIgYmFyIGlzIGJ1aWx0IGZyb20gaXQgdG9vLlxuICAgKi9cbiAgY29udGludW91c0NvbG9ybWFwOiBDb2xvcm1hcFZhbHVlIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoYXQgdGhlIDNEIHNjZW5lIGRyYXdzLiBUaGUgdGhyZWUgdGhpbmdzIGluIGl0IOKAlCB0aGUgcmVmZXJlbmNlIHZvbHVtZSwgdGhlXG4gICAqIG9ic2VydmF0aW9uIGNsb3VkIGFuZCB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMg4oCUIG9jY3VweSB0aGUgc2FtZSBzcGFjZSwgc29cbiAgICogYW55IHR3byBvZiB0aGVtIGhpZGUgZWFjaCBvdGhlciB0byBzb21lIGRlZ3JlZS4gVGhlc2UgYXJlIGluZGVwZW5kZW50IGJlY2F1c2VcbiAgICogdGhlIHVzZWZ1bCB2aWV3cyBhcmUgdGhlIGNvbWJpbmF0aW9uczogdGhlIHZvbHVtZXMgYWxvbmUgdG8gcmVhZCBhbiBlc3RpbWF0ZWRcbiAgICogZGlzdHJpYnV0aW9uLCBvbmUgc2VjdGlvbidzIGNlbGxzIG92ZXIgdGhlbSB0byBjaGVjayB0aGF0IGVzdGltYXRlIGFnYWluc3QgdGhlXG4gICAqIG1lYXN1cmVtZW50LCB0aGUgYW5hdG9teSBhbG9uZSB0byBmaW5kIGEgbGFuZG1hcmsuXG4gICAqXG4gICAqIFZpc2liaWxpdHkgb25seSDigJQgdGhlIGxheWVycyBzdGF5IGJ1aWx0LCBzbyB0b2dnbGluZyBvbmUgYmFjayBvbiBpcyBpbW1lZGlhdGVcbiAgICogYW5kIGRvZXMgbm90IHJlLXJ1biBhIHJhc3RlcmlzYXRpb24uIHtAbGluayBkZW5zaXR5Vm9sdW1lfSBpcyB0aGUgZXhjZXB0aW9uIGFuZFxuICAgKiBnZW51aW5lbHkgZ2F0ZXMgY29uc3RydWN0aW9uLCBiZWNhdXNlIGJ1aWxkaW5nIHNpeCB2b2x1bWVzIGlzIG5vdCBmcmVlLlxuICAgKi9cbiAgc2hvd1ZvbHVtZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2Ugdm9sdW1lJ3Mgb3BhY2l0eS5cbiAgICpcbiAgICogSXRzIG93biwgbm90IHtAbGluayBvcGFjaXR5fSAod2hpY2ggYmVsb25ncyB0byB0aGUgbWFya2Vycyk6IHRoZSB2b2x1bWUgaXMgYVxuICAgKiBCQUNLRFJPUCwgYW5kIHJlYWRpbmcgdGhlIGNsb3VkIG9yIGEgZGVuc2l0eSBmaWVsZCB0aHJvdWdoIGl0IG1lYW5zIHR1cm5pbmdcbiAgICogdGhlIGFuYXRvbXkgZG93biB3aXRob3V0IHRvdWNoaW5nIHRoZSBkYXRhIGRyYXduIG92ZXIgaXQuIFJhbmdlcyBsb3dlciB0aGFuXG4gICAqIHRoZSBtYXJrZXJzJyBzbGlkZXIgZm9yIHRoZSBzYW1lIHJlYXNvbiDigJQgYSBmYWludCBhbmF0b21pY2FsIGhpbnQgaXMgYSB1c2VmdWxcbiAgICogc2V0dGluZyBmb3IgYSBiYWNrZHJvcCBhbmQgYSB1c2VsZXNzIG9uZSBmb3IgdGhlIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgdm9sdW1lT3BhY2l0eTogbnVtYmVyO1xuICAvKiogRHJhdyB0aGUgb2JzZXJ2YXRpb24gbWFya2VycyDigJQgdGhlIDNEIGNsb3VkLCBvciB0aGUgMkQgY2lyY2xlcy4gSW4gMkQgdGhleSBhbHNvXG4gICAqICBzdGFuZCBpbiBmb3IgY2VsbHMgdG9vIHNtYWxsIG9uIHNjcmVlbiB0byBvdXRsaW5lLiAqL1xuICBzaG93UG9pbnRzOiBib29sZWFuO1xuICAvKipcbiAgICogUmVzdHJpY3QgdGhlIGNsb3VkIHRvIE9ORSBpbWFnZWQgc2VjdGlvbiwgYnkgaW5kZXggaW50byB0aGUgZGF0YXNldCdzIHNhbXBsZWRcbiAgICogc2VjdGlvbnM7IG51bGwgZHJhd3MgZXZlcnkgc2VjdGlvbi5cbiAgICpcbiAgICogVGhlIHdob2xlIGNsb3VkIGlzIGEgc3RhY2sgb2YgZGlzY3MgdGhhdCBoaWRlcyB3aGF0ZXZlciBpcyBkcmF3biBiZXR3ZWVuIHRoZW0uXG4gICAqIE9uZSBzZWN0aW9uIGF0IGEgdGltZSBpcyB0aGUgdmlldyB0aGF0IGFuc3dlcnMgXCJkb2VzIHRoZSBlc3RpbWF0ZWQgZmllbGRcbiAgICogYWN0dWFsbHkgZm9sbG93IHRoZSBjZWxscyBJIG1lYXN1cmVkXCIg4oCUIGFuZCBpdCBpcyBvbmx5IG9mZmVyZWQgZm9yIGRhdGEgdGhhdFxuICAgKiByZWFsbHkgaXMgc2VjdGlvbmVkIChzZWUgYHNhbXBsZWRTZWN0aW9uc2ApLlxuICAgKi9cbiAgcG9pbnRTZWN0aW9uOiBudW1iZXIgfCBudWxsO1xuICAvKipcbiAgICogRHJhdyBlYWNoIGNsdXN0ZXIgYXMgYSB0cmFuc2x1Y2VudCBERU5TSVRZIHZvbHVtZSBhbG9uZ3NpZGUgdGhlIDNEIGNsb3VkLlxuICAgKlxuICAgKiBTZXJpYWwgc2VjdGlvbnMgaHVuZHJlZHMgb2YgbWljcm9ucyBhcGFydCBtYWtlIGEgY2xvdWQgaGFyZCB0byByZWFkIGFzIGFuXG4gICAqIGFuYXRvbWljYWwgZGlzdHJpYnV0aW9uIOKAlCB0aGUgZXllIGNhbm5vdCBpbnRlZ3JhdGUgZGlzY3MgaW50byBhIHNoYXBlLiBBXG4gICAqIGRlbnNpdHkgZmllbGQgY2FuIGJlIGVzdGltYXRlZCBiZXR3ZWVuIHRoZSBpbWFnZWQgcGxhbmVzIChhIGNvbnRpbnVvdXNcbiAgICogZXN0aW1hdGUsIHVubGlrZSBpbmRpdmlkdWFsIGNlbGxzLCB3aGljaCBoYXZlIG5vIGNvcnJlc3BvbmRlbmNlIHRvXG4gICAqIGludGVycG9sYXRlIGFsb25nKSBhbmQgcmVuZGVycyBhcyBhIGNsb3VkIHRoYXQgcmVhZHMgYXMgYW4gZXN0aW1hdGUuXG4gICAqL1xuICBkZW5zaXR5Vm9sdW1lOiBib29sZWFuO1xuICAvKiogTXVsdGlwbGllciBvbiB0aGUgZGVmYXVsdCBrZXJuZWwgYmFuZHdpZHRoLiBBYm92ZSAxIGlzIHNtb290aGVyIGFuZCBsZXNzXG4gICAqICBjb21taXR0YWw7IGJlbG93IDEgZXhwb3NlcyB0aGUgaW5kaXZpZHVhbCBzZWN0aW9ucy4gKi9cbiAgZGVuc2l0eVNtb290aGluZzogbnVtYmVyO1xuICAvKipcbiAgICogRHJhdyB0aGUgYWN0aXZlIEdFTkUgYXMgYSBjb250aW51b3VzIGZpZWxkIHVuZGVyIHRoZSBvYnNlcnZhdGlvbnMgKDJEKS5cbiAgICpcbiAgICogQ29sb3VyaW5nIHRoZSBtYXJrZXJzIGJ5IGEgZ2VuZSBzYXlzIHdoaWNoIGNlbGxzIGV4cHJlc3MgaXQ7IGl0IGNhbm5vdCBzYXlcbiAgICogd2hlcmUsIGJlY2F1c2UgdGhlIGV5ZSB3aWxsIG5vdCBpbnRlZ3JhdGUgdGhvdXNhbmRzIG9mIGRvdHMgaW50byBhIHRlcnJpdG9yeS5cbiAgICogVGhlIGZpZWxkIGlzIGFuIGVzdGltYXRlIOKAlCBhIGtlcm5lbC13ZWlnaHRlZCBtZWFuIHBlciBjZWxsLCB0cmFuc3BhcmVudCB3aGVyZVxuICAgKiBubyBjZWxsIHdhcyBtZWFzdXJlZCDigJQgYW5kIGl0IGlzIGRyYXduIGJlbmVhdGggdGhlIGNlbGxzLCBub3QgaW5zdGVhZCBvZiB0aGVtLFxuICAgKiBzbyB0aGUgbWVhc3VyZW1lbnQgc3RheXMgb24gc2NyZWVuIG5leHQgdG8gdGhlIGludGVycG9sYXRpb24uXG4gICAqXG4gICAqIElnbm9yZWQgdW5sZXNzIHRoZSBjb2xvdXIgc291cmNlIGlzIGEgZ2VuZTogdGhlcmUgaXMgbm90aGluZyBlbHNlIHRvIG1hcC5cbiAgICovXG4gIGdlbmVNYXA6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgM0QgZ2VuZSBtYXAgdG8gT05FIGltYWdlZCBzZWN0aW9uLCBieSBpbmRleCBpbnRvIHRoZSBkYXRhc2V0J3NcbiAgICogc2FtcGxlZCBzZWN0aW9uczsgbnVsbCBkcmF3cyBldmVyeSBzZWN0aW9uJ3Mgc2hlZXQuXG4gICAqXG4gICAqIFNlcGFyYXRlIGZyb20ge0BsaW5rIHBvaW50U2VjdGlvbn0gc28gdGhlIGNvbWJpbmF0aW9ucyBzdGF5IG9wZW46IGFsbCB0aGVcbiAgICogc2hlZXRzIHdpdGggb25lIHNlY3Rpb24ncyBjZWxscyBvdmVyIHRoZW0gaXMgYSB1c2VmdWwgdmlldywgYW5kIHNvIGlzIG9uZVxuICAgKiBzaGVldCBpbnNpZGUgdGhlIHdob2xlIGNsb3VkLiBJZ25vcmVkIHdoaWxlIHtAbGluayBnZW5lTWFwVm9sdW1lfSBpcyBzZXQg4oCUXG4gICAqIGludGVycG9sYXRpbmcgYSBzaW5nbGUgc2VjdGlvbiBhbG9uZyB6IHdvdWxkIHNtZWFyIG9uZSBzbGlkZSB0aHJvdWdoIHRoZVxuICAgKiBzcGVjaW1lbidzIHdob2xlIGRlcHRoIGFuZCBjYWxsIGl0IGFuIGVzdGltYXRlLlxuICAgKi9cbiAgZ2VuZU1hcFNlY3Rpb246IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBTbW9vdGggdGhlIHBlci1zZWN0aW9uIGdlbmUgbWFwcyBhbG9uZyB6IGludG8gYSBjb250aW51b3VzIFZPTFVNRSAoM0QpLlxuICAgKlxuICAgKiBUaGUgc2hlZXRzIGFyZSB3aGF0IHdhcyBtZWFzdXJlZCDigJQgb25lIGZpZWxkIHBlciBpbWFnZWQgc2xpZGUsIHdpdGggdGhlIGdhcHNcbiAgICogYmV0d2VlbiB0aGVtIGVtcHR5LiBUaGlzIHR1cm5zIHRoZW0gaW50byBhbiBlc3RpbWF0ZSBkZWZpbmVkIGJldHdlZW4gdGhlXG4gICAqIHNsaWRlcywgdGhlIHNhbWUgbW92ZSB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMgbWFrZSBhbmQgd2l0aCB0aGUgc2FtZVxuICAgKiBjYXZlYXQ6IGEgZmllbGQgbWF5IGJlIGludGVycG9sYXRlZCBiZXR3ZWVuIHNlY3Rpb25zLCBpbmRpdmlkdWFsIGNlbGxzIG1heVxuICAgKiBub3QsIGFuZCB0aGUgcmVzdWx0IGlzIGRyYXduIGFzIGEgdHJhbnNsdWNlbnQgY2xvdWQgc28gaXQgY2Fubm90IGJlIG1pc3Rha2VuXG4gICAqIGZvciBtZWFzdXJlbWVudC5cbiAgICovXG4gIGdlbmVNYXBWb2x1bWU6IGJvb2xlYW47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBnZW5lIG1hcCdzIGtlcm5lbCBiYW5kd2lkdGguICovXG4gIGdlbmVNYXBTbW9vdGhpbmc6IG51bWJlcjtcbiAgLyoqIFRoZSBnZW5lIG1hcCdzIG93biBvcGFjaXR5LiBTZXBhcmF0ZSBmcm9tIHtAbGluayBvcGFjaXR5fSwgd2hpY2ggYmVsb25ncyB0b1xuICAgKiAgdGhlIG1hcmtlcnM6IHR1cm5pbmcgdGhlIGNlbGxzIGRvd24gdG8gcmVhZCB0aGUgZmllbGQgdW5kZXJuZWF0aCBtdXN0IG5vdFxuICAgKiAgdHVybiB0aGUgZmllbGQgZG93biB3aXRoIHRoZW0uICovXG4gIGdlbmVNYXBPcGFjaXR5OiBudW1iZXI7XG4gIC8qKlxuICAgKiBEcmF3IGNlbGwgYm91bmRhcmllcyAoZm9yIGEgZGF0YXNldCB3aXRoIGBwb2x5Z29uVGlsZXNgIG9yIGBwb2x5Z29uc2ApLlxuICAgKlxuICAgKiBPdXRsaW5lcyBhcmUgbGV2ZWwtb2YtZGV0YWlsOiBjb2Fyc2UgcmluZ3Mgd2hlbiB6b29tZWQgb3V0LCBldmVyeSB2ZXJ0ZXggYXQgdGhlXG4gICAqIGZpbmVzdCB6b29tLCBhbmQgbm9uZSBhdCBhbGwgb25jZSBhIGNlbGwgaXMgYSBmZXcgcGl4ZWxzIHdpZGUg4oCUIHRoZXJlIHRoZVxuICAgKiBvYnNlcnZhdGlvbiBtYXJrZXJzIGFscmVhZHkgZHJhdyBpdCBhcyBhIGRvdC5cbiAgICpcbiAgICogYG51bGxgICh0aGUgZGVmYXVsdCkgbWVhbnMgYXV0b21hdGljOiBvbiBmb3IgYW55IGRhdGFzZXQgdGhhdCBoYXMgb3V0bGluZXMsIHNpbmNlIGFcbiAgICogc2VnbWVudGVkIGNlbGwgaXMgYmV0dGVyIHNob3duIGFzIGl0cyBzaGFwZSB0aGFuIGFzIGEgY2lyY2xlLiBBIGJvb2xlYW4gaXMgdGhlXG4gICAqIHVzZXIncyBleHBsaWNpdCBjaG9pY2UuXG4gICAqL1xuICBzaG93Q2VsbHM6IGJvb2xlYW4gfCBudWxsO1xuICAvKiogV2hpY2ggYm91bmRhcnkgc2V0IChgY2VsbGAsIGBudWNsZXVzYCwgb3IgYGJvdGhgIOKAlCBjZWxscyBhcyBzZXQgYnlcbiAgICogIHtAbGluayBjZWxsRHJhd30sIG51Y2xlaSBvdXRsaW5lZCBvdmVyIHRoZW0pOyBudWxsIHRha2VzIHRoZSBkYXRhc2V0J3MgZGVmYXVsdC4gKi9cbiAgY2VsbFNldDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoYXQgY29sb3VycyB0aGUgY2VsbHMg4oCUIFhlbml1bSBFeHBsb3JlcidzIFwiQ2VsbCBDb2xvclwiOiB0aGUgYWN0aXZlIGdyb3VwXG4gICAqICh7QGxpbmsgY2VsbFR5cGVDb2x1bW59KSwgb25lIGdlbmUncyBleHByZXNzaW9uICh7QGxpbmsgY2VsbENvbG9yR2VuZX0pLCB0aGUgY2VsbCdzXG4gICAqIHRyYW5zY3JpcHQgZGVuc2l0eSwgb25lIGZsYXQgY29sb3VyLCBvciBob3cgdGhlIGNlbGwgd2FzIHNlZ21lbnRlZC5cbiAgICovXG4gIGNlbGxDb2xvck1vZGU6ICdncm91cCcgfCAnZ2VuZScgfCAndHJhbnNjcmlwdERlbnNpdHknIHwgJ3NpbmdsZScgfCAnc2VnbWVudGF0aW9uJztcbiAgY2VsbENvbG9yR2VuZTogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIGAjcnJnZ2JiYCBmb3Ige0BsaW5rIGNlbGxDb2xvck1vZGV9IGBzaW5nbGVgLiAqL1xuICBjZWxsU2luZ2xlQ29sb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIENhdGVnb3JpZXMgb2Yge0BsaW5rIGNlbGxUeXBlQ29sdW1ufSBzd2l0Y2hlZCBvZmYgaW4gdGhlIGdyb3VwcyBsaXN0OiB0aGVpciBjZWxscyBhcmVcbiAgICogbm90IGRyYXduLCBub3IgdGhlIHRyYW5zY3JpcHRzIGluc2lkZSB0aGVtLiBDbGVhcmVkIHdoZW4gdGhlIGdyb3VwIGNvbHVtbiBjaGFuZ2VzLlxuICAgKi9cbiAgaGlkZGVuR3JvdXBzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEdlbmVzIHdob3NlIG9ic2VydmF0aW9ucyBhcmUgZHJhd246IHdpdGggYW55IHNldCwgb25seSB0aGUgb2JzZXJ2YXRpb25zIHRoYXQgZXhwcmVzc1xuICAgKiB0aGVtIChhIHZhbHVlIGFib3ZlIDApIGFyZSBkcmF3biDigJQgdGhlIG1hcmtlcnMsIHRoZSBjZWxsIG91dGxpbmVzIGFuZCB0aGUgdHJhbnNjcmlwdHNcbiAgICogaW5zaWRlIHRoZW0sIGluIDJEIGFuZCBpbiB0aGUgM0QgY2xvdWQg4oCUIGFuZCB0aGUgcmVzdCBhcmUgaGlkZGVuLiBFbXB0eSBkcmF3cyBldmVyeVxuICAgKiBvYnNlcnZhdGlvbi4gQ2xlYXJlZCB3aGVuIHRoZSBkYXRhc2V0IGNoYW5nZXMuXG4gICAqL1xuICBvYnNlcnZhdGlvbkdlbmVzOiBzdHJpbmdbXTtcbiAgLyoqIFdoZXRoZXIgYW4gb2JzZXJ2YXRpb24gbXVzdCBleHByZXNzIGFueSBvZiB7QGxpbmsgb2JzZXJ2YXRpb25HZW5lc30sIG9yIGFsbCBvZiB0aGVtLiAqL1xuICBvYnNlcnZhdGlvbkdlbmVzTWF0Y2g6ICdhbnknIHwgJ2FsbCc7XG4gIC8qKlxuICAgKiBDb2xvdXIgKGFuZCBtYXJrKSB0aGUgZmlsdGVyZWQgb2JzZXJ2YXRpb25zIGJ5IHRoZWlyIGdlbmU6IGVhY2ggZHJhd24gb2JzZXJ2YXRpb24gaW4gdGhlXG4gICAqIGNvbG91ciBhbmQgaWNvbiBvZiB0aGUgcGlja2VkIGdlbmUgaXQgZXhwcmVzc2VzIG1vc3QgKHJlbGF0aXZlIHRvIHRoYXQgZ2VuZSdzIGhpZ2hlc3RcbiAgICogdmFsdWUpLCBpbiBwbGFjZSBvZiB7QGxpbmsgY29sb3JCeX0uIE9mZiwge0BsaW5rIGNvbG9yQnl9IGNvbG91cnMgdGhlbSBhcyBiZWZvcmUuXG4gICAqL1xuICBvYnNlcnZhdGlvbkdlbmVzQ29sb3JCeTogYm9vbGVhbjtcbiAgLyoqIGAjcnJnZ2JiYCBwZXIgZ2VuZSBvZiB7QGxpbmsgb2JzZXJ2YXRpb25HZW5lc307IGEgZ2VuZSBsZWZ0IG91dCB0YWtlcyB0aGUgcGFsZXR0ZSdzIGNvbG91clxuICAgKiAgZm9yIGl0cyBwbGFjZSBpbiB0aGUgbGlzdC4gKi9cbiAgb2JzZXJ2YXRpb25HZW5lQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogVGhlIGljb24gcGVyIGdlbmUgb2Yge0BsaW5rIG9ic2VydmF0aW9uR2VuZXN9ICgyRCk7IGEgZ2VuZSBsZWZ0IG91dCBpcyBkcmF3biBhcyBhIGNpcmNsZS4gKi9cbiAgb2JzZXJ2YXRpb25HZW5lR2x5cGhzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2NyaXB0R2x5cGhOYW1lPjtcbiAgLyoqIERyYXcgdGhlIHRpc3N1ZSBpbWFnZSAodGhlIEltYWdlcyBzZWN0aW9uJ3Mgc3dpdGNoKS4gKi9cbiAgc2hvd0ltYWdlOiBib29sZWFuO1xuICAvKiogRHJhdyB0aGUgYW5ub3RhdGlvbiByZWdpb25zICh0aGUgQW5ub3RhdGlvbnMgc2VjdGlvbidzIHN3aXRjaCkuIFNlbGVjdGluZyBmcm9tIHRoZW1cbiAgICogIHN0aWxsIHdvcmtzIHdoaWxlIHRoZXkgYXJlIGhpZGRlbi4gKi9cbiAgc2hvd0Fubm90YXRpb25zOiBib29sZWFuO1xuICAvKiogRmlsbCB0aGUgY2VsbHMgd2l0aCB0aGVpciBjb2xvdXIsIG91dGxpbmUgdGhlbSwgb3IgYm90aC4gKi9cbiAgY2VsbERyYXc6ICdmaWxsJyB8ICdvdXRsaW5lJyB8ICdib3RoJztcbiAgLyoqIE9wYWNpdHkgb2YgdGhlIGNlbGwgZmlsbCAob3V0bGluZXMgZHJhdyBvcGFxdWUpLiAqL1xuICBjZWxsT3BhY2l0eTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGNhdGVnb3JpY2FsIGNvbHVtbiB0aGF0IHNheXMgd2hhdCBUWVBFIGVhY2ggY2VsbCBpczogaXQgY29sb3VycyB0aGUgY2VsbHNcbiAgICogd2hlbmV2ZXIgbm90aGluZyBlbHNlIGlzIGNob3NlbiwgYW5kIGl0IGNvbG91cnMgZXZlcnkgdHJhbnNjcmlwdCBieSB0aGUgY2VsbCBpdFxuICAgKiBmYWxscyBpbi4gTnVsbCBwaWNrcyB0aGUgZGF0YXNldCdzIGZpcnN0IGNhdGVnb3JpY2FsIGNvbHVtbi4gU3dhcHBpbmcgYmV0d2VlbiBhXG4gICAqIHBpcGVsaW5lJ3MgY2x1c3RlcmluZyBhbmQgYSBjdXJhdGVkIGFubm90YXRpb24gaXMgc3dhcHBpbmcgdGhpcy5cbiAgICovXG4gIGNlbGxUeXBlQ29sdW1uOiBzdHJpbmcgfCBudWxsO1xuICAvKiogR2VuZXMgd2hvc2UgdHJhbnNjcmlwdHMgYXJlIGRyYXduLiAqL1xuICB0cmFuc2NyaXB0R2VuZXM6IHN0cmluZ1tdO1xuICAvKiogU2VsZWN0ZWQgZ2VuZXMgc3dpdGNoZWQgb2ZmIHdpdGggdGhlaXIgZXllIHRvZ2dsZSDigJQga2VwdCBpbiB0aGUgbGlzdCwgbm90IGRyYXduLiAqL1xuICB0cmFuc2NyaXB0SGlkZGVuR2VuZXM6IHN0cmluZ1tdO1xuICAvKiogUGVyLWdlbmUgbWFya2VyIGNvbG91ciAoYCNycmdnYmJgKTsgZ2VuZXMgbm90IGxpc3RlZCB0YWtlIHRoZSBwYWxldHRlIGJ5IHBvc2l0aW9uLiAqL1xuICB0cmFuc2NyaXB0R2VuZUNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIE5hbWVkIGdlbmUgZ3JvdXBzIChlLmcuIG1hcmtlciBnZW5lcyBwZXIgY2VsbCB0eXBlKSBmb3IgdGhlIHNlbGVjdGVkLWdlbmVzIHRyZWUuICovXG4gIHRyYW5zY3JpcHRHZW5lR3JvdXBzOiB7IG5hbWU6IHN0cmluZzsgZ2VuZXM6IHN0cmluZ1tdIH1bXTtcbiAgLyoqXG4gICAqIERyYXcgRVZFUlkgZ2VuZSdzIHRyYW5zY3JpcHRzIGluc3RlYWQgb2Yge0BsaW5rIHRyYW5zY3JpcHRHZW5lc306IGdyb3VwZWQgaW50byBiaW5zXG4gICAqIHNpemVkIGJ5IGhvdyBtYW55IHRyYW5zY3JpcHRzIHRoZXkgaG9sZCwgZmluZXIgYXMgdGhlIGNhbWVyYSB6b29tcyBpbiwgZG93biB0byBvbmVcbiAgICogbWFya2VyIHBlciB0cmFuc2NyaXB0IG9uY2UgdGhvc2UgZml0IHtAbGluayB0cmFuc2NyaXB0QnVkZ2V0fS5cbiAgICovXG4gIHRyYW5zY3JpcHRBbGxHZW5lczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEdlbmVzIG9mIFwiQWxsIGdlbmVzXCIgc3dpdGNoZWQgb2ZmIHdpdGggdGhlaXIgZXllIHRvZ2dsZSDigJQgaXRzIG93biBsaXN0LCBzbyBoaWRpbmcgYSBnZW5lXG4gICAqIHRoZXJlIGxlYXZlcyB0aGUgc2VsZWN0aW9uJ3Mge0BsaW5rIHRyYW5zY3JpcHRIaWRkZW5HZW5lc30gYWxvbmUsIGFuZCB0aGUgb3RoZXIgd2F5IHJvdW5kLlxuICAgKiBMZWQgYnkgYCcqJ2AgKGBBTExfR0VORVNgKSwgaXQgbGlzdHMgdGhlIGdlbmVzIHN0aWxsIHNob3duIGluc3RlYWQ6IGBbJyonXWAgaGlkZXMgZXZlcnlcbiAgICogZ2VuZSwgYFsnKicsICdLUlQ1J11gIHNob3dzIEtSVDUgYWxvbmUsIHdpdGhvdXQgbmFtaW5nIHRoZSB0aG91c2FuZHMgb2Ygb3RoZXJzLlxuICAgKi9cbiAgdHJhbnNjcmlwdEFsbEdlbmVzSGlkZGVuOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE1vc3QgdHJhbnNjcmlwdCBtYXJrZXJzIGRyYXduIGF0IG9uY2UuIFRoZSBsZXZlbCBvZiBkZXRhaWwgaXMgY2hvc2VuIHRvIHN0YXkgdW5kZXIgaXQsXG4gICAqIHdoaWNoIGlzIHdoYXQga2VlcHMgcGFuIGFuZCB6b29tIHJlc3BvbnNpdmUgaG93ZXZlciBkZW5zZSB0aGUgZGF0YSBpcy5cbiAgICovXG4gIHRyYW5zY3JpcHRCdWRnZXQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyB0cmFuc2NyaXB0cyBhcmUgZHJhd246IGBjaXJjbGVzYCBzaXplZCBieSBob3cgbWFueSB0cmFuc2NyaXB0cyBlYWNoIHN0YW5kcyBmb3IsXG4gICAqIGBnbHlwaHNgIChvbmUgaWNvbiBzaGFwZSBwZXIgZ2VuZSksIG9yIGEgYGRlbnNpdHlgIHJhc3Rlci4gQ2lyY2xlcyBhbmQgZ2x5cGhzIGFyZVxuICAgKiBsZXZlbC1vZi1kZXRhaWwg4oCUIGFnZ3JlZ2F0ZWQgd2hlbiB6b29tZWQgb3V0LCBvbmUgcGVyIHRyYW5zY3JpcHQgYXQgdGhlIGZpbmVzdCB6b29tLlxuICAgKi9cbiAgdHJhbnNjcmlwdE1vZGU6ICdvZmYnIHwgJ2NpcmNsZXMnIHwgJ2dseXBocycgfCAnZGVuc2l0eSc7XG4gIC8qKiBDb2xvdXIgdHJhbnNjcmlwdHMgYnkgdGhlIHR5cGUgb2YgdGhlIGNlbGwgdGhleSBmYWxsIGluLCBieSBnZW5lLCBvciBieSB0aGUgZ2VuZS10cmVlXG4gICAqICBjbHVzdGVyIHRoZWlyIGdlbmUgaXMgaW4gKGluIHRoZSBjb2xvdXIgdGhhdCBjbHVzdGVyJ3MgY2VsbHMgaGF2ZSwgd2hlbiBhIGNlbGwgZ3JvdXBpbmdcbiAgICogIG5hbWVzIGl0KS4gKi9cbiAgdHJhbnNjcmlwdENvbG9yQnk6ICdjZWxsVHlwZScgfCAnZ2VuZScgfCAnY2x1c3Rlcic7XG4gIC8qKiBHbHlwaCBwZXIgZ2VuZSBmb3IgYGdseXBoc2AgbW9kZTsgZ2VuZXMgbm90IGxpc3RlZCB0YWtlIG9uZSBieSBwb3NpdGlvbi4gKi9cbiAgdHJhbnNjcmlwdEdseXBoczogUmVjb3JkPHN0cmluZywgVHJhbnNjcmlwdEdseXBoTmFtZT47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRyYW5zY3JpcHQgbWFya2VyIHNpemUuICovXG4gIHRyYW5zY3JpcHRTY2FsZTogbnVtYmVyO1xuICB0cmFuc2NyaXB0T3BhY2l0eTogbnVtYmVyO1xuICAvKiogYGhpZ2hgIGtlZXBzIG9ubHkgY29uZmlkZW50bHkgZGVjb2RlZCB0cmFuc2NyaXB0cy4gKi9cbiAgdHJhbnNjcmlwdFF1YWxpdHk6ICdoaWdoJyB8ICdhbGwnO1xuICAvKiogT3BhY2l0eSBvZiB0aGUgdHJhbnNjcmlwdCBkZW5zaXR5IHJhc3Rlci4gKi9cbiAgZGVuc2l0eU9wYWNpdHk6IG51bWJlcjtcbiAgLyoqIERlbnNpdHkgYmluIGVkZ2UgaW4gb2JzZXJ2YXRpb24gdW5pdHMgKMK1bSk6IDEwLCAyMCwgNDAgb3IgODAuICovXG4gIGRlbnNpdHlCaW46IG51bWJlcjtcbiAgLyoqIENvbG91ciB3aW5kb3cgaW4gdHJhbnNjcmlwdHMgcGVyIHVuaXTCsiAowrVtwrIpOyBudWxsIGRlcml2ZXMgaXQgZnJvbSB0aGUgZGF0YS4gKi9cbiAgZGVuc2l0eVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbDtcbiAgLyoqIENvbG9ybWFwIGZvciB0aGUgZGVuc2l0eSBiaW5zOyBudWxsIHVzZXMgSW5mZXJuby4gKi9cbiAgZGVuc2l0eUNvbG9ybWFwOiBDb2xvcm1hcFZhbHVlIHwgbnVsbDtcbn1cblxuLyoqIFRyYW5zY3JpcHQgZ2x5cGggbmFtZXMg4oCUIHNlZSBgVFJBTlNDUklQVF9HTFlQSFNgIGluIGBzcGF0aWFsL3NwYXRpYWwtdGlsZXMudHNgLiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNjcmlwdEdseXBoTmFtZSA9XG4gICdjaXJjbGUnIHwgJ3N0YXInIHwgJ3RyaWFuZ2xlJyB8ICdzcXVhcmUnIHwgJ2RpYW1vbmQnIHwgJ2Nyb3NzJyB8ICdoZXhhZ29uJyB8ICd0cmlhbmdsZS1kb3duJyB8ICdwZW50YWdvbicgfCAneCc7XG5cbi8qKlxuICogVGhlIHNwYXRpYWwgdmlldyBhIGRhdGFzZXQgb3BlbnMgd2l0aDogbm8gY29sb3VyIHNvdXJjZSwgcG9pbnRzIGFuZCB2b2x1bWUgc2hvd24sIHRoZVxuICogb3B0aW9uYWwgbGF5ZXJzIG9mZi4gQSBjb21wbGV0ZSBzdGF0ZSB0byBzcHJlYWQgcGFydGlhbCB2aWV3LXN0YXRlIHBhdGNoZXMgb3Zlci5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1BBVElBTF9WSUVXOiBTcGF0aWFsVmlld1N0YXRlID0ge1xuICBjb2xvckJ5OiBudWxsLFxuICBwb2ludFNjYWxlOiAxLFxuICBvcGFjaXR5OiAxLFxuICBsb2dTY2FsZTogZmFsc2UsXG4gIHBlcmNlbnRpbGVDbGlwOiBbMC4wMSwgMC45OV0sXG4gIGNvbnRpbnVvdXNDb2xvcm1hcDogbnVsbCxcbiAgc2hvd1ZvbHVtZTogdHJ1ZSxcbiAgdm9sdW1lT3BhY2l0eTogMC41LFxuICBzaG93UG9pbnRzOiB0cnVlLFxuICBwb2ludFNlY3Rpb246IG51bGwsXG4gIGRlbnNpdHlWb2x1bWU6IGZhbHNlLFxuICBkZW5zaXR5U21vb3RoaW5nOiAxLFxuICBnZW5lTWFwOiBmYWxzZSxcbiAgZ2VuZU1hcFNlY3Rpb246IG51bGwsXG4gIGdlbmVNYXBWb2x1bWU6IGZhbHNlLFxuICBnZW5lTWFwU21vb3RoaW5nOiAxLFxuICBnZW5lTWFwT3BhY2l0eTogMC44NSxcbiAgc2hvd0NlbGxzOiBudWxsLFxuICBjZWxsU2V0OiBudWxsLFxuICBjZWxsRHJhdzogJ2ZpbGwnLFxuICBjZWxsT3BhY2l0eTogMC41NSxcbiAgY2VsbFR5cGVDb2x1bW46IG51bGwsXG4gIHRyYW5zY3JpcHRHZW5lczogW10sXG4gIHRyYW5zY3JpcHRIaWRkZW5HZW5lczogW10sXG4gIHRyYW5zY3JpcHRHZW5lQ29sb3JzOiB7fSxcbiAgdHJhbnNjcmlwdEdlbmVHcm91cHM6IFtdLFxuICB0cmFuc2NyaXB0QWxsR2VuZXM6IGZhbHNlLFxuICB0cmFuc2NyaXB0QWxsR2VuZXNIaWRkZW46IFtdLFxuICB0cmFuc2NyaXB0QnVkZ2V0OiAxMDBfMDAwLFxuICB0cmFuc2NyaXB0TW9kZTogJ29mZicsXG4gIHRyYW5zY3JpcHRDb2xvckJ5OiAnY2VsbFR5cGUnLFxuICB0cmFuc2NyaXB0R2x5cGhzOiB7fSxcbiAgdHJhbnNjcmlwdFNjYWxlOiAxLFxuICB0cmFuc2NyaXB0T3BhY2l0eTogMC45LFxuICB0cmFuc2NyaXB0UXVhbGl0eTogJ2hpZ2gnLFxuICBkZW5zaXR5T3BhY2l0eTogMC44LFxuICBkZW5zaXR5QmluOiAxMCxcbiAgZGVuc2l0eVJhbmdlOiBudWxsLFxuICBkZW5zaXR5Q29sb3JtYXA6IG51bGwsXG4gIGNlbGxDb2xvck1vZGU6ICdncm91cCcsXG4gIGNlbGxDb2xvckdlbmU6IG51bGwsXG4gIGNlbGxTaW5nbGVDb2xvcjogJyM0ZmMzZjcnLFxuICBoaWRkZW5Hcm91cHM6IFtdLFxuICBvYnNlcnZhdGlvbkdlbmVzOiBbXSxcbiAgb2JzZXJ2YXRpb25HZW5lc01hdGNoOiAnYW55JyxcbiAgb2JzZXJ2YXRpb25HZW5lc0NvbG9yQnk6IHRydWUsXG4gIG9ic2VydmF0aW9uR2VuZUNvbG9yczoge30sXG4gIG9ic2VydmF0aW9uR2VuZUdseXBoczoge30sXG4gIHNob3dJbWFnZTogdHJ1ZSxcbiAgc2hvd0Fubm90YXRpb25zOiB0cnVlLFxufTtcbiJdfQ==
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
* structurally, so the host keeps passing its own instances unchanged.
|
|
9
9
|
*/
|
|
10
10
|
export {};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9pbWFnZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlicmFyeS1vd25lZCBkYXRhIGludGVyZmFjZXMgZm9yIHRoZSBpbWFnZSB0aGUgdmlzdWFsaXphdGlvbiByZW5kZXJzLlxuICpcbiAqIFRoZSB2aXN1YWxpemF0aW9uIHBhY2thZ2UgbXVzdCBub3QgaW1wb3J0IHRoZSBob3N0IGFwcCdzIGNvbmNyZXRlIG1vZGVsc1xuICogKGBtYWluL21vZGVscy9maWxlLWluZm9gKSwgb3IgaXQgY2FuJ3QgYmVjb21lIGEgc3RhbmRhbG9uZSBsaWJyYXJ5LiBUaGVzZVxuICogc2xpbSBpbnRlcmZhY2VzIGRlY2xhcmUgb25seSB0aGUgZmllbGRzIHRoZSBsaWJyYXJ5IHJlYWRzL3dyaXRlczsgdGhlIGhvc3Qnc1xuICogYEltYWdlSW5mb2AvYEltYWdlTWV0YWRhdGFgIGNsYXNzZXMgYXJlIHB1cmUgZGF0YSBob2xkZXJzIHRoYXQgc2F0aXNmeSB0aGVtXG4gKiBzdHJ1Y3R1cmFsbHksIHNvIHRoZSBob3N0IGtlZXBzIHBhc3NpbmcgaXRzIG93biBpbnN0YW5jZXMgdW5jaGFuZ2VkLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVnaW9uU291cmNlIH0gZnJvbSAnLi4vcmVnaW9uLXNvdXJjZS9yZWdpb24tc291cmNlJztcblxuLyoqIFBlci1jaGFubmVsIG1ldGFkYXRhIGZyb20gdGhlIHNlcnZlciBkZXNjcmlwdG9yIChpc3N1ZSAjNzYpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2hhbm5lbEluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTdWdnZXN0ZWQgZGlzcGxheSB0aW50IGFzIFwiI1JSR0dCQlwiLiAqL1xuICBjb2xvcjogc3RyaW5nO1xuICAvKiogRW1iZWRkZWQgMjU2LWVudHJ5IGRpc3BsYXkgTFVUIGFzIFwiI1JSR0dCQlwiIChpbnRlbnNpdHnihpJjb2xvciksIG9yXG4gICAqICBudWxsL3VuZGVmaW5lZCB3aGVuIHRoZSBmaWxlIGhhcyBubyBwYWxldHRlIGZvciB0aGlzIGNoYW5uZWwuICovXG4gIGx1dD86IHN0cmluZ1tdIHwgbnVsbDtcbiAgYml0RGVwdGg/
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9pbWFnZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlicmFyeS1vd25lZCBkYXRhIGludGVyZmFjZXMgZm9yIHRoZSBpbWFnZSB0aGUgdmlzdWFsaXphdGlvbiByZW5kZXJzLlxuICpcbiAqIFRoZSB2aXN1YWxpemF0aW9uIHBhY2thZ2UgbXVzdCBub3QgaW1wb3J0IHRoZSBob3N0IGFwcCdzIGNvbmNyZXRlIG1vZGVsc1xuICogKGBtYWluL21vZGVscy9maWxlLWluZm9gKSwgb3IgaXQgY2FuJ3QgYmVjb21lIGEgc3RhbmRhbG9uZSBsaWJyYXJ5LiBUaGVzZVxuICogc2xpbSBpbnRlcmZhY2VzIGRlY2xhcmUgb25seSB0aGUgZmllbGRzIHRoZSBsaWJyYXJ5IHJlYWRzL3dyaXRlczsgdGhlIGhvc3Qnc1xuICogYEltYWdlSW5mb2AvYEltYWdlTWV0YWRhdGFgIGNsYXNzZXMgYXJlIHB1cmUgZGF0YSBob2xkZXJzIHRoYXQgc2F0aXNmeSB0aGVtXG4gKiBzdHJ1Y3R1cmFsbHksIHNvIHRoZSBob3N0IGtlZXBzIHBhc3NpbmcgaXRzIG93biBpbnN0YW5jZXMgdW5jaGFuZ2VkLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVnaW9uU291cmNlIH0gZnJvbSAnLi4vcmVnaW9uLXNvdXJjZS9yZWdpb24tc291cmNlJztcblxuLyoqIFBlci1jaGFubmVsIG1ldGFkYXRhIGZyb20gdGhlIHNlcnZlciBkZXNjcmlwdG9yIChpc3N1ZSAjNzYpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2hhbm5lbEluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTdWdnZXN0ZWQgZGlzcGxheSB0aW50IGFzIFwiI1JSR0dCQlwiLiAqL1xuICBjb2xvcjogc3RyaW5nO1xuICAvKiogRW1iZWRkZWQgMjU2LWVudHJ5IGRpc3BsYXkgTFVUIGFzIFwiI1JSR0dCQlwiIChpbnRlbnNpdHnihpJjb2xvciksIG9yXG4gICAqICBudWxsL3VuZGVmaW5lZCB3aGVuIHRoZSBmaWxlIGhhcyBubyBwYWxldHRlIGZvciB0aGlzIGNoYW5uZWwuICovXG4gIGx1dD86IHN0cmluZ1tdIHwgbnVsbDtcbiAgYml0RGVwdGg/OiBudW1iZXI7XG4gIC8qKiBQaXhlbC10eXBlIG1pbmltdW0gKGUuZy4gMCBmb3IgdW5zaWduZWQpLiBOYXRpdmUtdW5pdCBmbG9vciBvZiB0aGUgd2luZG93LiAqL1xuICBtaW5BbGxvd2VkPzogbnVtYmVyO1xuICAvKiogUGl4ZWwtdHlwZSBtYXhpbXVtIChlLmcuIDY1NTM1IGZvciB1bnNpZ25lZCAxNi1iaXQpLiBOYXRpdmUtdW5pdCBjZWlsaW5nLiAqL1xuICBtYXhBbGxvd2VkPzogbnVtYmVyO1xuICAvKiogV2hldGhlciB0aGUgY2hhbm5lbCBzdGFydHMgdmlzaWJsZTsgZWxzZSB0aGUgZmlyc3QgYERFRkFVTFRfVklTSUJMRV9DSEFOTkVMU2AgZG8uICovXG4gIHZpc2libGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGdyb3VwcyB0aGUgY2hhbm5lbCBpcyBpbiwgb3V0ZXJtb3N0IGZpcnN0LCBhcyB0aGUgaW1hZ2UncyBtZXRhZGF0YSBkZXNjcmliZXMgdGhlbSAoYW5cbiAgICogaW5zdHJ1bWVudCBwYW5lbCdzIGtpbmQgb2YgdGFyZ2V0LCB0aGVuIHRoZSBwYW5lbDogYFsnUHJvdGVpbiBJRicsICdDZWxsIFNpZ25hbGluZyddYCk7IHRoZVxuICAgKiBDaGFubmVscyBwYW5lIGxpc3RzIHRoZSBjaGFubmVscyBhcyBhIHRyZWUgb2YgdGhlbS4gQWJzZW50IG9yIGVtcHR5IGZvciBhIGNoYW5uZWwgaW4gbm9uZS5cbiAgICovXG4gIGdyb3VwPzogc3RyaW5nW10gfCBudWxsO1xufVxuXG4vKiogUGVyLXNlcmllcyBpbWFnZSBtZXRhZGF0YSAocGh5c2ljYWwgc2l6ZSArIGRpbWVuc2lvbnMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW1hZ2VNZXRhZGF0YSB7XG4gIGNoYW5uZWxDb3VudDogbnVtYmVyO1xuICByZ2JDaGFubmVsczogbnVtYmVyO1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgejogbnVtYmVyO1xuICAvKiogUGh5c2ljYWwgcGl4ZWwgc2l6ZSBpbiDCtW07IG51bGwvdW5kZWZpbmVkIHdoZW4gdGhlIGZvcm1hdCByZXBvcnRzIG5vbmUuICovXG4gIG1wcFg/OiBudW1iZXIgfCBudWxsO1xuICBtcHBZPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIFBoeXNpY2FsIHNwYWNpbmcgQkVUV0VFTiBzbGljZXMgaW4gwrVtIOKAlCB0aGUgeiBjb3VudGVycGFydCBvZiBgbXBwWGAvYG1wcFlgLFxuICAgKiAgZm9yIGEgc3RhY2sgdGhhdCBrbm93cyBpdCAoYSByZXNhbXBsZWQgdm9sdW1lLCBhIGNvbmZvY2FsIHN0YWNrKS4gSXQgaXMgd2hhdFxuICAgKiAgbGV0cyB0aGUgM0Qgdm9sdW1lIHZpZXcgcmVuZGVyIHRydWUgYW5pc290cm9weTogd2l0aCBhbGwgdGhyZWUgcHJlc2VudCB0aGVcbiAgICogIHdvcmxkIGJveCBpcyB0aGUgaW1hZ2UncyByZWFsIHBoeXNpY2FsIGV4dGVudCwgc28gNDAgeCA0MCB4IDIwMCDCtW0gdm94ZWxzXG4gICAqICByZWFkIGFzIGEgYnJhaW4gYW5kIG5vdCBhcyBhIGN1YmUtYXNwZWN0IGJyaWNrLiBBYnNlbnQsIHRoZSB2aWV3IGZhbGxzIGJhY2tcbiAgICogIHRvIGl0cyByZXNvbHV0aW9uLWludmFyaWFudCByZWZlcmVuY2UgYm94LCB3aGljaCBpcyBzaGFwZS1vbmx5LiAqL1xuICBtcHBaPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIFBlci1jaGFubmVsIG5hbWUvY29sb3IvTFVUIGZvciBtdWx0aWNoYW5uZWwgKG5vbi1SR0IpIGltYWdlcywgd2hlbiBrbm93bi4gKi9cbiAgY2hhbm5lbEluZm8/OiBJQ2hhbm5lbEluZm9bXSB8IG51bGw7XG59XG5cbi8qKiBUaGUgaW1hZ2UgY3VycmVudGx5IGJlaW5nIHZpc3VhbGl6ZWQuIEZpZWxkIG9wdGlvbmFsaXR5IG1pcnJvcnMgdGhlIGhvc3Qnc1xuICogIGBJbWFnZUluZm9gIHNvIGl0cyBpbnN0YW5jZXMgYXJlIGFzc2lnbmFibGUgdG8gdGhpcyBpbnRlcmZhY2UuICovXG5leHBvcnQgaW50ZXJmYWNlIElJbWFnZUluZm8ge1xuICBpc0dyYXlzY2FsZTogYm9vbGVhbjtcbiAgdHJ1ZUltYWdlU2l6ZTogbnVtYmVyW107XG4gIHVybHM6IHN0cmluZ1tdO1xuICAvKiogT3B0aW9uYWwgc21hbGwtdGllciBVUkxzIChmYXN0IGJsdXJyeSBwbGFjZWhvbGRlciksIDE6MSB3aXRoIGB1cmxzYC4gKi9cbiAgc21hbGxVcmxzPzogc3RyaW5nW107XG4gIGlzU3RhY2s6IGJvb2xlYW47XG4gIHNob3dTdGFjazogYm9vbGVhbjtcbiAgc2NhbGVSYXRpbzogYm9vbGVhbjtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgcm9pSnNvblN0cj86IHN0cmluZztcbiAgLyoqIFBlci1zbGljZSBST0kgR2VvSlNPTiwgYWxpZ25lZCAxOjEgd2l0aCBgdXJsc2AsIGZvciBhIGZvbGRlciBzdGFjayB3aGVyZVxuICAgKiAgZWFjaCBzbGljZSBpcyBhIHNlcGFyYXRlIGZpbGUgd2l0aCBpdHMgb3duIHNpYmxpbmcgYDxzdGVtPi5nZW9qc29uYFxuICAgKiAgKGBudWxsYCBmb3Igc2xpY2VzIHdpdGhvdXQgb25lKS4gV2hlbiBwcmVzZW50LCB0aGUgY29tcG9uZW50IGFwcGxpZXNcbiAgICogIGByb2lKc29uU3Ryc1t6XWAgZm9yIHRoZSBkaXNwbGF5ZWQgc2xpY2UgYW5kIHN3YXBzIGl0IG9uIHNjcnViIOKAlCBhc1xuICAgKiAgb3Bwb3NlZCB0byB0aGUgc2NhbGFyIGByb2lKc29uU3RyYCwgd2hpY2ggaXMgb25lIFJPSSBzZXQgZm9yIHRoZSB3aG9sZVxuICAgKiAgaW1hZ2UgKGEgc2luZ2xlIGZpbGUgb3IgYSBzZXJ2ZXIgei1zdGFjaykuIChqaXQtdWkjOTMpICovXG4gIHJvaUpzb25TdHJzPzogKHN0cmluZyB8IG51bGwpW107XG4gIC8qKiBCYXNlIFVSTCBvZiBhIHNlcnZlci1zaWRlIHJlZ2lvbiBzb3VyY2UgZm9yIHRoaXMgaW1hZ2UgKHNlZSBgb3Blbkh0dHBSZWdpb25Tb3VyY2VgKTpcbiAgICogIGl0cyByZWdpb25zIGFyZSBkcmF3biBmcm9tIHRoZSBzZXJ2ZXIncyBsZXZlbC1vZi1kZXRhaWwgdGlsZXMgaW5zdGVhZCBvZiBiZWluZyBsb2FkZWRcbiAgICogIGZyb20gYHJvaUpzb25TdHJgLiBPbiBhIHN0YWNrLCBzbGljZSB6IHNob3dzIHRoZSBzb3VyY2UncyBwbGFuZSB6LiAqL1xuICByZWdpb25Tb3VyY2VVcmw/OiBzdHJpbmc7XG4gIC8qKiBUaGUgaW1hZ2UncyBvd24gcmVnaW9ucywgb25lIHJlZ2lvbiBzb3VyY2UgcGVyIHNsaWNlLCBvcGVuZWQgdGhlIGZpcnN0IHRpbWUgaXRzIHNsaWNlIGlzXG4gICAqICBzaG93bjogd2hhdCBhbiBpbWFnZSBidWlsdCBmcm9tIGFubm90YXRpb25zIGFsb25lIGNhcnJpZXMgKHNlZSBgb3BlbkFubm90YXRpb25zYDogYSBsYWJlbFxuICAgKiAgdm9sdW1lIHRyYWNlZCBzbGljZSBieSBzbGljZSwgYSBmb2xkZXIgb2YgcGVyLXNsaWNlIEdlb0pTT04pLiBBdHRhY2hlZCB3aGVuIHRoZSBpbWFnZSBsYW5kcyxcbiAgICogIHJlcGxhY2luZyBpdHMgcmVnaW9ucywgYXMgYW4gaW1wb3J0ZWQgbGFiZWwgdm9sdW1lIG9yIGZvbGRlciBpczsgdGFrZXMgcHJlY2VkZW5jZSBvdmVyXG4gICAqICBgcm9pSnNvblN0cnNgLCBgcm9pSnNvblN0cmAgYW5kIGByZWdpb25Tb3VyY2VVcmxgLiBLZXllZCBieSBzbGljZSBpbmRleC4gKi9cbiAgcmVnaW9uU2xpY2VzPzogUmVhZG9ubHlNYXA8bnVtYmVyLCAoKSA9PiBQcm9taXNlPFJlZ2lvblNvdXJjZT4+O1xuICAvKiogUGVyLXNsaWNlLCBwZXItY2hhbm5lbCBwbGFuZSBVUkxzIGZvciBhIFNFUlZFUkxFU1MgbXVsdGljaGFubmVsIGltYWdlXG4gICAqICAoYHRpbGVkOiBmYWxzZWAgKyBgaW1hZ2VNZXRhWzBdLmNoYW5uZWxDb3VudCA+IDFgKS4gYGNoYW5uZWxVcmxzW3pdW2NdYFxuICAgKiAgaXMgYSBjb21wbGV0ZSBzaW5nbGUtYmFuZCBpbWFnZSBvZiBjaGFubmVsIGMgYXQgc2xpY2Ugei4gVGhlIE9TRCBzaW1wbGVcbiAgICogIHBhdGggY29tcG9zaXRlcyB0aGVtIGNsaWVudC1zaWRlIOKAlCBwZXItY2hhbm5lbCBjb2xvdXIvd2luZG93L2dhbW1hIGZyb21cbiAgICogIHRoZSBjaGFubmVsIHBhbmUg4oCUIGluc3RlYWQgb2Ygb3BlbmluZyB0aGUgZmxhdCBgdXJsc1t6XWAuIChqaXQtdWkjNzYpICovXG4gIGNoYW5uZWxVcmxzPzogc3RyaW5nW11bXTtcbiAgaW1hZ2VNZXRhOiBJSW1hZ2VNZXRhZGF0YVtdO1xuICAvKiogSG93IHRoZSBPcGVuU2VhZHJhZ29uIGJhY2tlbmQgc2hvdWxkIHNvdXJjZSB0aGlzIGltYWdlLlxuICAgKiAgLSBgdHJ1ZWAvYWJzZW50IChkZWZhdWx0KTogc2VydmVyLXRpbGVkIOKAlCBPU0QgcG9sbHMgYC90aWxlcy9pbmZvYCBmb3IgYVxuICAgKiAgICBweXJhbWlkIGFuZCBmZXRjaGVzIHRpbGVzIGZyb20gdGhlIHNsaWRlLWNyb3Agc2VydmVyICh3aG9sZS1zbGlkZSBwYXRoKS5cbiAgICogIC0gYGZhbHNlYDogYSBzZWxmLWNvbnRhaW5lZCwgZGlyZWN0bHktbG9hZGFibGUgaW1hZ2Ug4oCUIGB1cmxzW3pJbmRleF1gIGlzIGFcbiAgICogICAgY29tcGxldGUgaW1hZ2UgKGUuZy4gYSBgYmxvYjpgIFVSTCBidWlsdCBmcm9tIGEgY2xpZW50LXNpZGUgcGl4ZWwgYnVmZmVyKSxcbiAgICogICAgb3BlbmVkIHZpYSBPU0QncyBzaW5nbGUtaW1hZ2Ugc291cmNlIHdpdGggbm8gdGlsZSBzZXJ2ZXIuIExldHMgaW4tbWVtb3J5XG4gICAqICAgIGltYWdlcyAodGhlIHByb2Nlc3NpbmcgcGlwZWxpbmUpIHVzZSB0aGUgT1NEIHZpZXdlciB3aXRob3V0IGEgcm91bmQtdHJpcC4gKi9cbiAgdGlsZWQ/OiBib29sZWFuO1xuICAvKiogT25lLXNob3QgaGludDogb3BlbiB0aGUgc3RhY2sgb24gdGhpcyBzbGljZSBpbnN0ZWFkIG9mIHNsaWNlIDAgKGUuZy4gdGhlXG4gICAqICBob3N0IGNsaWNrZWQgYSBzcGVjaWZpYyBmaWxlIHdpdGhpbiBhIG51bWJlcmVkIGltYWdlIHNlcmllcykuIFRoZVxuICAgKiAgY29tcG9uZW50IGNvbnN1bWVzIGFuZCBjbGVhcnMgdGhpcyB0aGUgZmlyc3QgdGltZSBpdCBzZWVzIHRoZSBvYmplY3QsIHNvXG4gICAqICByZS1kZWxpdmVyaW5nIHRoZSBzYW1lIEltYWdlSW5mbyAoZS5nLiBhIHBsb3QtdHlwZSBzd2l0Y2gpIGRvZXNuJ3QgcmVzZXRcbiAgICogIHRoZSB1c2VyJ3MgY3VycmVudCBzY3J1YiBwb3NpdGlvbi4gKi9cbiAgaW5pdGlhbFpJbmRleD86IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -46,4 +46,4 @@ export const NO_OBSERVATION = 0xffffffff;
|
|
|
46
46
|
export function findColumnMeta(dataset, name) {
|
|
47
47
|
return dataset.columns.find((c) => c.name === name);
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvc3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQStFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFvQmxDLG1EQUFtRDtBQUNuRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsQ0FBZ0I7SUFDbEQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUM7QUFDdkMsQ0FBQztBQUNELGtEQUFrRDtBQUNsRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsQ0FBZ0I7SUFDakQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUM7QUFDdEMsQ0FBQztBQWdPRCxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQTJJekMsNkNBQTZDO0FBQzdDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBdUIsRUFBRSxJQUFZO0lBQ2xFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFja2VuZC1uZXV0cmFsIGRhdGEgbW9kZWwgZm9yIGEgKipzcGF0aWFsLW9taWNzIGRhdGFzZXQqKjogTiBvYnNlcnZhdGlvbnNcbiAqIChWaXNpdW0gc3BvdHMsIHNlZ21lbnRlZCBjZWxscywgbnVjbGVpLCDigKYpIHBvc2l0aW9uZWQgaW4gdGhlIHBpeGVsIHNwYWNlIG9mIGFcbiAqIHRpc3N1ZSBpbWFnZSwgZWFjaCBjYXJyeWluZyBjYXRlZ29yaWNhbCBhbmQgY29udGludW91cyBhbm5vdGF0aW9ucywgcGx1cyBhblxuICogb3B0aW9uYWwgZmVhdHVyZSAoZ2VuZSkgbWF0cml4IGFuZCBvcHRpb25hbCBwZXItb2JzZXJ2YXRpb24gYm91bmRhcmllcy5cbiAqXG4gKiBERVNJR05cbiAqIC0tLS0tLVxuICogMS4gKipTdHJ1Y3Qtb2YtYXJyYXlzLCBub3Qgb2JqZWN0LXBlci1jZWxsLioqIFJlYWwgZGF0YXNldHMgcnVuIDEwXjMgKFZpc2l1bSlcbiAqICAgIHRvIDEwXjYgKFhlbml1bS9Db3NNeCkgb2JzZXJ2YXRpb25zLiBge3gsIHl9W11gIGF0IDUwMGsgY2VsbHMgaXMgfjUwMGtcbiAqICAgIG9iamVjdHMgdGhlIEdDIGhhcyB0byB3YWxrOyB0d28gYEZsb2F0MzJBcnJheWBzIGFyZSB0d28gYWxsb2NhdGlvbnMgYW5kXG4gKiAgICB1cGxvYWQgdG8gdGhlIEdQVSB3aXRob3V0IGEgY29weS5cbiAqXG4gKiAyLiAqKk1ldGFkYXRhIGlzIGVhZ2VyLCB2YWx1ZXMgYXJlIGxhenkuKiogQSBkYXRhc2V0IGFkdmVydGlzZXMgKndoaWNoKlxuICogICAgY29sdW1ucyBhbmQgZmVhdHVyZXMgZXhpc3QgKHtAbGluayBTcGF0aWFsQ29sdW1uTWV0YX0sXG4gKiAgICB7QGxpbmsgU3BhdGlhbEZlYXR1cmVNZXRhfSk7IHRoZSB2ZWN0b3JzIHRoZW1zZWx2ZXMgYXJlIGZldGNoZWQgb24gZGVtYW5kXG4gKiAgICB0aHJvdWdoIHtAbGluayBTcGF0aWFsRGF0YVBvcnR9LiBBIFZpc2l1bSB0YWJsZSBpcyB+MzBrIGdlbmVzIHdpZGUg4oCUIHRoZVxuICogICAgZGVuc2UgbWF0cml4IGlzIH44MDAgTUIg4oCUIHNvIFwibG9hZCB0aGUgZGF0YXNldFwiIGNhbiBuZXZlciBtZWFuIFwibG9hZCB0aGVcbiAqICAgIG1hdHJpeFwiLiBPbmx5IHRoZSBoYW5kZnVsIG9mIGNvbHVtbnMgYWN0dWFsbHkgYmVpbmcgZGlzcGxheWVkIGlzIHJlc2lkZW50LlxuICpcbiAqIDMuICoqRGF0YSBzdGF5cyBkYXRhLioqIE5vIEkvTywgbm8gUnhKUywgbm8gQW5ndWxhciBpbiB0aGlzIGZpbGUg4oCUIHRoZSBzYW1lXG4gKiAgICBydWxlIGBwbG90bHktdHJhY2UtYnVpbGRlcnMudHNgIGZvbGxvd3MuIEZldGNoaW5nIGxpdmVzIG9uIHRoZSBwb3J0LlxuICpcbiAqIFRoZSBzaGFwZSBtaXJyb3JzIGhvdyB0aGUgZmllbGQgYWxyZWFkeSBzdG9yZXMgdGhpcyAoU3BhdGlhbERhdGEvQW5uRGF0YTpcbiAqIGBvYnNgIGFubm90YXRpb25zLCBgdmFyYCBmZWF0dXJlcywgYG9ic20vc3BhdGlhbGAgY29vcmRpbmF0ZXMsIHNoYXBlcyB3aXRoIGFcbiAqIGNvb3JkaW5hdGUgdHJhbnNmb3JtKSBzbyBhbiBhZGFwdGVyIGlzIGEgcHJvamVjdGlvbiwgbm90IGEgdHJhbnNsYXRpb24uXG4gKi9cblxuLyoqXG4gKiBPYnNlcnZhdGlvbiBwb3NpdGlvbnMuIEV2ZXJ5IGFycmF5IGlzIGxlbmd0aCB7QGxpbmsgY291bnR9IGFuZCBpbmRleC1hbGlnbmVkOlxuICogb2JzZXJ2YXRpb24gYGlgIGlzIGF0IGAoeFtpXSwgeVtpXSlgLCBhbmQgY29sdW1uL2ZlYXR1cmUgdmVjdG9ycyBpbmRleCB0aGVcbiAqIHNhbWUgd2F5LiBUaGlzIHNoYXJlZCBpbmRleCBpcyB0aGUgam9pbiBrZXkgZm9yIHRoZSB3aG9sZSBtb2RlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsT2JzZXJ2YXRpb25zIHtcbiAgLyoqIE4g4oCUIG51bWJlciBvZiBvYnNlcnZhdGlvbnMuICovXG4gIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gIC8qKiBYIGluIHRoZSByZWZlcmVuY2UgaW1hZ2UncyBwaXhlbCBzcGFjZSAoc2VlIHtAbGluayBTcGF0aWFsSW1hZ2VSZWZ9KS4gKi9cbiAgeDogRmxvYXQzMkFycmF5O1xuICAvKiogWSBpbiB0aGUgcmVmZXJlbmNlIGltYWdlJ3MgcGl4ZWwgc3BhY2UuICovXG4gIHk6IEZsb2F0MzJBcnJheTtcbiAgLyoqIFosIGZvciBzZXJpYWwgc2VjdGlvbnMgb3IgZ2VudWluZWx5IDNEIGFzc2F5cy4gQWJzZW50IGZvciBhIHNpbmdsZSBwbGFuZS4gKi9cbiAgej86IEZsb2F0MzJBcnJheTtcbiAgLyoqIFN0YWJsZSBwZXItb2JzZXJ2YXRpb24gaWRzIChiYXJjb2RlcywgY2VsbCBpZHMpIGZvciB0b29sdGlwcyBhbmQgZXhwb3J0LlxuICAgKiAgT3B0aW9uYWwg4oCUIG9taXQgZm9yIGxhcmdlIGRhdGFzZXRzIHdoZXJlIHRoZSBzdHJpbmdzIGNvc3QgbW9yZSB0aGFuIHRoZXlcbiAgICogIGFyZSB3b3J0aC4gKi9cbiAgaWRzPzogc3RyaW5nW107XG4gIC8qKiBNYXJrZXIgUkFESVVTIGluIGltYWdlIHBpeGVsczogb25lIHZhbHVlIHNoYXJlZCBieSBhbGwgb2JzZXJ2YXRpb25zIChhXG4gICAqICBWaXNpdW0gc3BvdCBpcyBhIGZpeGVkIDU1IMK1bSDih5IgYDI3LjUgLyBtcHBYYCBweCksIG9yIG9uZSBwZXIgb2JzZXJ2YXRpb25cbiAgICogIChzZWdtZW50ZWQgY2VsbHMpLiBBYnNlbnQg4oeSIHRoZSByZW5kZXJlciBwaWNrcyBhIGRpc3BsYXkgZGVmYXVsdC4gKi9cbiAgcmFkaXVzPzogRmxvYXQzMkFycmF5IHwgbnVtYmVyO1xufVxuXG4vKiogRmllbGRzIGNvbW1vbiB0byBldmVyeSBjb2x1bW4gZGVzY3JpcHRvci4gKi9cbmludGVyZmFjZSBTcGF0aWFsQ29sdW1uTWV0YUJhc2Uge1xuICAvKiogQ29sdW1uIG5hbWUgYXMgdGhlIHVzZXIgc2VlcyBpdCAoYGxlaWRlbmAsIGB0b3RhbF9jb3VudHNgKS4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogTG9uZ2VyIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIGZvciB0b29sdGlwcy9tZW51cy4gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBkaXNjcmV0ZSBhbm5vdGF0aW9uIOKAlCBjbHVzdGVyLCBjZWxsIHR5cGUsIHJlZ2lvbiwgc2FtcGxlLiBSZW5kZXJlZCBhcyBhXG4gKiBwYWxldHRlICsgbGVnZW5kOyBhIGxlZ2VuZCBjbGljayBzZWxlY3RzIHRoZSBjYXRlZ29yeSdzIG9ic2VydmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yaWNhbENvbHVtbk1ldGEgZXh0ZW5kcyBTcGF0aWFsQ29sdW1uTWV0YUJhc2Uge1xuICBraW5kOiAnY2F0ZWdvcmljYWwnO1xuICAvKiogQ2F0ZWdvcnkgbGFiZWxzOyBhIHZhbHVlJ3MgbGFiZWwgaXMgYGNhdGVnb3JpZXNbY29kZXNbaV1dYC4gKi9cbiAgY2F0ZWdvcmllczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBIZWFkaW5nIHRoZSBjb2x1bW4gaXMgbGlzdGVkIHVuZGVyIGluIGEgZ3JvdXAgcGlja2VyIOKAlCBlLmcuIFwiWGVuaXVtIE9uYm9hcmQgQW5hbHlzaXNcbiAgICogZ3JvdXBzXCIgZm9yIGEgcGlwZWxpbmUncyBjbHVzdGVyaW5ncywgXCJJbXBvcnRlZCBncm91cHNcIiBmb3Igb25lcyBhZGRlZCBieSBhIHVzZXIuXG4gICAqL1xuICBzZWN0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29sdW1ucyB0aGF0IGFyZSB2YXJpYW50cyBvZiBvbmUgY2hvaWNlIOKAlCBrLW1lYW5zIGF0IGsgPSAy4oCmMTAg4oCUIHNoYXJlIGEgZmFtaWx5OiBhXG4gICAqIHBpY2tlciBsaXN0cyB0aGUgZmFtaWx5IG9uY2UgYW5kIG9mZmVycyB0aGUgdmFyaWFudHMgYmVzaWRlIGl0LlxuICAgKi9cbiAgZmFtaWx5PzogeyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyB2YXJpYW50OiBzdHJpbmcgfTtcbiAgLyoqIEF1dGhvcmVkIGRpc3BsYXkgY29sb3VycyBhcyBgI3JyZ2diYmAsIGluZGV4LWFsaWduZWQgd2l0aFxuICAgKiAge0BsaW5rIGNhdGVnb3JpZXN9LiBTdXBwbHkgdGhlc2UgdG8ga2VlcCB0aGUgdmlld2VyJ3MgcGFsZXR0ZSBpZGVudGljYWwgdG9cbiAgICogIHRoZSBmaWd1cmVzIHRoZSBzYW1lIGFuYWx5c2lzIHByb2R1Y2VkIGluIFIvUHl0aG9uOyBvbWl0IHRvIGxldCB0aGUgdmlld2VyXG4gICAqICBkZXJpdmUgb25lLiAqL1xuICBjb2xvcnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGNvbnRpbnVvdXMgbWVhc3VyZW1lbnQg4oCUIGV4cHJlc3Npb24sIFFDIG1ldHJpYywgYXJlYSwgZGVuc2l0eS4gUmVuZGVyZWRcbiAqIHRocm91Z2ggdGhlIHNoYXJlZCBjb2xvcm1hcC9MVVQgKyBjb250cmFzdCB3aW5kb3cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludW91c0NvbHVtbk1ldGEgZXh0ZW5kcyBTcGF0aWFsQ29sdW1uTWV0YUJhc2Uge1xuICBraW5kOiAnY29udGludW91cyc7XG4gIC8qKiBVbml0IGZvciBheGlzL3Rvb2x0aXAgbGFiZWxzIChgY291bnRzYCwgYMK1bcKyYCkuICovXG4gIHVuaXQ/OiBzdHJpbmc7XG4gIC8qKiBUcnVlIHdoZW4gdGhlIGNvbHVtbiByZWFkcyBiZXN0IGxvZy1zY2FsZWQg4oCUIGNvdW50IGRhdGEgYWxtb3N0IGFsd2F5c1xuICAgKiAgZG9lcywgYW5kIGEgbGluZWFyIHNjYWxlIGNvbGxhcHNlcyBpdCBhZ2FpbnN0IGEgZmV3IGJyaWdodCBvdXRsaWVycy4gKi9cbiAgbG9nU2NhbGVIaW50PzogYm9vbGVhbjtcbiAgLyoqIE9ic2VydmVkIGV4dHJlbWVzLCB3aGVuIHRoZSBwcm9kdWNlciBrbm93cyB0aGVtLiBMZXRzIHRoZSBVSSBzZWVkIGFcbiAgICogIGNvbnRyYXN0IHdpbmRvdyBhbmQgYXhpcyByYW5nZSB3aXRob3V0IGZpcnN0IHNjYW5uaW5nIHRoZSB2ZWN0b3IuICovXG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xufVxuXG4vKiogRGVzY3JpcHRvciBvZiBvbmUgcGVyLW9ic2VydmF0aW9uIGNvbHVtbiwgZGlzY3JpbWluYXRlZCBieSBga2luZGAuICovXG5leHBvcnQgdHlwZSBTcGF0aWFsQ29sdW1uTWV0YSA9IENhdGVnb3JpY2FsQ29sdW1uTWV0YSB8IENvbnRpbnVvdXNDb2x1bW5NZXRhO1xuXG4vKipcbiAqIENvZGUgbWVhbmluZyBcInRoaXMgb2JzZXJ2YXRpb24gaGFzIG5vIGNhdGVnb3J5XCIgKHVuYXNzaWduZWQgLyBmaWx0ZXJlZCBvdXQgL1xuICogbm90IGluIHRpc3N1ZSkuIFJlbmRlcmVycyBzaG91bGQgZHJhdyBpdCBpbiB0aGUgbXV0ZWQgYmFja2dyb3VuZCBzdHlsZSByYXRoZXJcbiAqIHRoYW4gYXMgYSByZWFsIGNhdGVnb3J5LCBhbmQgaXQgbXVzdCBuZXZlciBpbmRleCB7QGxpbmtcbiAqIENhdGVnb3JpY2FsQ29sdW1uTWV0YS5jYXRlZ29yaWVzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IE5PX0NBVEVHT1JZID0gMHhmZmZmO1xuXG4vKiogQSBsb2FkZWQgY2F0ZWdvcmljYWwgY29sdW1uOiBwZXItb2JzZXJ2YXRpb24gaW5kaWNlcyBpbnRvIGBtZXRhLmNhdGVnb3JpZXNgLFxuICogIG9yIHtAbGluayBOT19DQVRFR09SWX0uICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3JpY2FsQ29sdW1uIHtcbiAgbWV0YTogQ2F0ZWdvcmljYWxDb2x1bW5NZXRhO1xuICAvKiogTGVuZ3RoID0ge0BsaW5rIFNwYXRpYWxPYnNlcnZhdGlvbnMuY291bnR9LiAqL1xuICBjb2RlczogVWludDE2QXJyYXk7XG59XG5cbi8qKiBBIGxvYWRlZCBjb250aW51b3VzIGNvbHVtbi4gYE5hTmAgbWFya3MgYSBtaXNzaW5nIHZhbHVlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250aW51b3VzQ29sdW1uIHtcbiAgbWV0YTogQ29udGludW91c0NvbHVtbk1ldGE7XG4gIC8qKiBMZW5ndGggPSB7QGxpbmsgU3BhdGlhbE9ic2VydmF0aW9ucy5jb3VudH0uICovXG4gIHZhbHVlczogRmxvYXQzMkFycmF5O1xufVxuXG4vKiogQSBsb2FkZWQgY29sdW1uIHdpdGggaXRzIHZhbHVlcywgZGlzY3JpbWluYXRlZCBieSBgbWV0YS5raW5kYC4gKi9cbmV4cG9ydCB0eXBlIFNwYXRpYWxDb2x1bW4gPSBDYXRlZ29yaWNhbENvbHVtbiB8IENvbnRpbnVvdXNDb2x1bW47XG5cbi8qKiBOYXJyb3cgYSBsb2FkZWQgY29sdW1uIHRvIGEgY2F0ZWdvcmljYWwgb25lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2F0ZWdvcmljYWxDb2x1bW4oYzogU3BhdGlhbENvbHVtbik6IGMgaXMgQ2F0ZWdvcmljYWxDb2x1bW4ge1xuICByZXR1cm4gYy5tZXRhLmtpbmQgPT09ICdjYXRlZ29yaWNhbCc7XG59XG4vKiogTmFycm93IGEgbG9hZGVkIGNvbHVtbiB0byBhIGNvbnRpbnVvdXMgb25lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGludW91c0NvbHVtbihjOiBTcGF0aWFsQ29sdW1uKTogYyBpcyBDb250aW51b3VzQ29sdW1uIHtcbiAgcmV0dXJuIGMubWV0YS5raW5kID09PSAnY29udGludW91cyc7XG59XG5cbi8qKlxuICogVGhlIGZlYXR1cmUgKGdlbmUpIG1hdHJpeCwgZGVzY3JpYmVkIGJ1dCBuZXZlciBkZWxpdmVyZWQgd2hvbGUuIFZlY3RvcnMgY29tZVxuICogb25lIGF0IGEgdGltZSBmcm9tIHtAbGluayBTcGF0aWFsRGF0YVBvcnQuZ2V0RmVhdHVyZVZlY3Rvcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEZlYXR1cmVNZXRhIHtcbiAgLyoqIE51bWJlciBvZiBmZWF0dXJlcyBhdmFpbGFibGUuICovXG4gIGNvdW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBBbGwgZmVhdHVyZSBuYW1lcywgd2hlbiB0aGUgcHJvZHVjZXIgY2hvc2UgdG8gaW5saW5lIHRoZW0uIFByZXNlbnQgZm9yXG4gICAqIHRhcmdldGVkIHBhbmVscyAoWGVuaXVtL0Nvc014IHNoaXAgMzAw4oCTNSwwMDAgZ2VuZXMg4oeSIGEgZmV3IGRvemVuIEtCKSBhbmRcbiAgICogYWJzZW50IGZvciB3aG9sZS10cmFuc2NyaXB0b21lIGRhdGEgKFZpc2l1bSBzaGlwcyB+MzFrIOKHkiB+MzUwIEtCKSwgd2hlcmVcbiAgICogdGhlIFVJIHNob3VsZCB1c2Uge0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5zZWFyY2hGZWF0dXJlc30gZm9yIHR5cGVhaGVhZFxuICAgKiBpbnN0ZWFkIG9mIGRvd25sb2FkaW5nIHRoZSBsaXN0LiBDb25zdW1lcnMgbXVzdCBoYW5kbGUgYm90aC5cbiAgICovXG4gIG5hbWVzPzogc3RyaW5nW107XG4gIC8qKiBXaGF0IGEgZmVhdHVyZSB2YWx1ZSBtZWFucyAoYGxvZzFwIG5vcm1hbGl6ZWRgLCBgcmF3IGNvdW50c2ApLiAqL1xuICB1bml0Pzogc3RyaW5nO1xuICAvKiogVHJ1ZSB3aGVuIGZlYXR1cmUgdmVjdG9ycyByZWFkIGJlc3QgbG9nLXNjYWxlZCAocmF3IGNvdW50cykuICovXG4gIGxvZ1NjYWxlSGludD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGVyLW9ic2VydmF0aW9uIGJvdW5kYXJpZXMgKGNlbGwvbnVjbGV1cyBzZWdtZW50YXRpb24sIHNwb3Qgb3V0bGluZXMpIGFzIGZsYXRcbiAqIHJpbmdzIOKAlCBkZWxpYmVyYXRlbHkgTk9UIEdlb0pTT04gb2JqZWN0cywgd2hpY2ggY29zdCBvbmUgb2JqZWN0ICsgb25lIGFycmF5XG4gKiBwZXIgY2VsbCBhbmQgd291bGQgZG9taW5hdGUgbWVtb3J5IGF0IDEwXjUgcG9seWdvbnMuXG4gKlxuICogUmluZyBgaWAgb2NjdXBpZXMgYGNvb3Jkc1syKm9mZnNldHNbaV0gLi4gMipvZmZzZXRzW2krMV0pYCBhcyBgeDAseTAseDEseTEs4oCmYFxuICogYW5kIGlzIGltcGxpY2l0bHkgY2xvc2VkLiBgb2Zmc2V0c2AgaGFzIGxlbmd0aCBgY291bnQgKyAxYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsUG9seWdvbnMge1xuICBjb29yZHM6IEZsb2F0MzJBcnJheTtcbiAgb2Zmc2V0czogVWludDMyQXJyYXk7XG4gIC8qKiBOdW1iZXIgb2YgcmluZ3Mg4oCUIGBvZmZzZXRzLmxlbmd0aCAtIDFgLiAqL1xuICByZWFkb25seSBjb3VudDogbnVtYmVyO1xufVxuXG4vKiogUHJlc2VuY2Uvc2l6ZSBvZiB0aGUgYm91bmRhcnkgZ2VvbWV0cnksIHdpdGhvdXQgbG9hZGluZyBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25zTWV0YSB7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogSG93IG9ic2VydmF0aW9uIGNvb3JkaW5hdGVzIHJlbGF0ZSB0byB0aGUgdGlzc3VlIGltYWdlIHRoZXkgYXJlIGRyYXduIG92ZXIuXG4gKiBBcHBsaWVkIGFzIGB3b3JsZCA9IGNvb3JkICogc2NhbGUgKyB0cmFuc2xhdGVgLCBtYXRjaGluZyB0aGUgYWZmaW5lIHRoYXRcbiAqIFNwYXRpYWxEYXRhIHJlY29yZHMgcGVyIGNvb3JkaW5hdGUgc3lzdGVtIOKAlCBhbmQgdGhlIGZ1bGwtcmVzb2x1dGlvbiB3b3JsZFxuICogY29udmVudGlvbiB0aGUgbmFwYXJpLWpzIGJhY2tlbmQgYWxyZWFkeSB1c2VzIHNvIHByZS1zYXZlZCByZWdpb25zIGFsaWduIG9uXG4gKiBweXJhbWlkYWwgc2xpZGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxJbWFnZVJlZiB7XG4gIC8qKiBIb3N0LWRlZmluZWQgaWQgb2YgdGhlIGltYWdlIHRoZXNlIGNvb3JkaW5hdGVzIGxpdmUgaW4sIHNvIHRoZSBob3N0IGNhblxuICAgKiAgcmVzb2x2ZSBpdCB0byBhbiBgSUltYWdlSW5mb2AuICovXG4gIGltYWdlSWQ/OiBzdHJpbmc7XG4gIC8qKiBEYXRh4oaSd29ybGQgc2NhbGUuIERlZmF1bHRzIHRvIGBbMSwgMV1gIChjb29yZGluYXRlcyBhbHJlYWR5IGluXG4gICAqICBmdWxsLXJlc29sdXRpb24gaW1hZ2UgcGl4ZWxzKS4gKi9cbiAgc2NhbGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogRGF0YeKGkndvcmxkIHRyYW5zbGF0aW9uLCBpbiB0aGUgc2FtZSB1bml0cyBhcyB7QGxpbmsgc2NhbGV9J3Mgb3V0cHV0LiAqL1xuICB0cmFuc2xhdGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogUGh5c2ljYWwgcGl4ZWwgc2l6ZSBpbiDCtW0g4oCUIGRyaXZlcyB0aGUgc2NhbGUgYmFyIGFuZCBwaHlzaWNhbCBtYXJrZXJcbiAgICogIHNpemluZyAoYSA1NSDCtW0gVmlzaXVtIHNwb3QpLiAqL1xuICBtcHBYPzogbnVtYmVyO1xuICBtcHBZPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgcHJlY29tcHV0ZWQgbG93LWRpbWVuc2lvbmFsIGVtYmVkZGluZyBvdmVyIHRoZSBTQU1FIG9ic2VydmF0aW9ucyDigJQgVU1BUCwgdC1TTkUsIFBDQS5cbiAqXG4gKiBBbm5vdW5jZWQgaW4gdGhlIGRhdGFzZXQgYW5kIGZldGNoZWQgb24gZGVtYW5kLCBleGFjdGx5IGxpa2UgYSBjb2x1bW4gb3IgYSBnZW5lOiB0aGVcbiAqIGNvb3JkaW5hdGVzIGFyZSBhbm90aGVyIHBlci1vYnNlcnZhdGlvbiB2ZWN0b3IsIGFuZCBhIGRhdGFzZXQgbWF5IGNhcnJ5IHNldmVyYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEVtYmVkZGluZ01ldGEge1xuICAvKiogS2V5IGFzIHRoZSBzb3VyY2UgbmFtZXMgaXQsIGUuZy4gYFhfdW1hcGAuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFNob3J0IGxhYmVsIGZvciBtZW51czsgZmFsbHMgYmFjayB0byB7QGxpbmsgbmFtZX0uICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogMiBmb3IgYSBwbGFuZSwgMyBmb3IgYSBjbG91ZC4gKi9cbiAgZGltczogMiB8IDM7XG4gIC8qKlxuICAgKiBUcnVlIHdoZW4gdGhlIGNvb3JkaW5hdGVzIHdlcmUgQ09NUFVURUQgZm9yIHRoaXMgYnVuZGxlIHJhdGhlciB0aGFuIHB1Ymxpc2hlZCB3aXRoIHRoZVxuICAgKiBkYXRhc2V0LiBXb3J0aCBzdXJmYWNpbmc6IGEgVU1BUCByZWNvbXB1dGVkIHdpdGggZGlmZmVyZW50IHBhcmFtZXRlcnMgaXMgYSBkaWZmZXJlbnQgcGljdHVyZSxcbiAgICogYW5kIGEgcmVhZGVyIGNvbXBhcmluZyBhZ2FpbnN0IGEgcGFwZXIncyBmaWd1cmUgbmVlZHMgdG8ga25vdyB3aGljaCB0aGV5IGFyZSBsb29raW5nIGF0LlxuICAgKi9cbiAgZGVyaXZlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBGcmFjdGlvbiBvZiB0b3RhbCB2YXJpYW5jZSBlYWNoIGF4aXMgYWNjb3VudHMgZm9yLCBpbmRleC1hbGlnbmVkIHdpdGggdGhlIGRpbWVuc2lvbnMuXG4gICAqXG4gICAqIE9ubHkgbWVhbmluZ2Z1bCBmb3IgYSBMSU5FQVIgZW1iZWRkaW5nIOKAlCBQQ0EuIEl0cyBheGVzIGFyZSBvcmRlcmVkLCBhbmQgZWFjaCBvbmUgZXhwbGFpbnMgYVxuICAgKiBtZWFzdXJhYmxlIHNoYXJlIG9mIHRoZSB2YXJpYW5jZSwgd2hpY2ggaXMgdGhlIHdob2xlIHJlYXNvbiB0byBsb29rIGF0IGEgUENBIHJhdGhlciB0aGFuIGFcbiAgICogVU1BUDogXCJQQzEgKDIzJSlcIiBzYXlzIHNvbWV0aGluZywgd2hlcmUgXCJVTUFQIDFcIiBzYXlzIG5vdGhpbmcgYXQgYWxsLiBBIFVNQVAncyBjb29yZGluYXRlc1xuICAgKiBhcmUgYW4gYXJiaXRyYXJ5IG91dHB1dCBvZiBhbiBvcHRpbWlzYXRpb24gd2l0aCBubyB2YXJpYW5jZSB0byByZXBvcnQsIHNvIHRoaXMgc3RheXMgYWJzZW50XG4gICAqIHRoZXJlIHJhdGhlciB0aGFuIGJlaW5nIGZha2VkLlxuICAgKi9cbiAgdmFyaWFuY2VSYXRpbz86IG51bWJlcltdO1xuICAvKipcbiAgICogSG93IGEgZGVyaXZlZCBlbWJlZGRpbmcgd2FzIGNvbXB1dGVkLCBpbiBhIGZldyB3b3JkcyDigJQgZS5nLiBcIlBDQSg1MCkgdGhlbiBwZXJwbGV4aXR5IDMwLFxuICAgKiBzZWVkIDBcIi5cbiAgICpcbiAgICogTm90IGRlY29yYXRpb24uIEEgdC1TTkUgb3IgVU1BUCBpcyBzdG9jaGFzdGljLCBhbmQgaXRzIHBpY3R1cmUgY2hhbmdlcyBtYXRlcmlhbGx5IHdpdGhcbiAgICogcGVycGxleGl0eSBvciBgbl9uZWlnaGJvcnNgOyB0d28gcnVucyBhdCBkaWZmZXJlbnQgc2V0dGluZ3MgYXJlIGRpZmZlcmVudCBwaWN0dXJlcyBvZiB0aGUgc2FtZVxuICAgKiBjZWxscywgYW5kIG5laXRoZXIgaXMgbW9yZSBjb3JyZWN0LiBTYXlpbmcgXCJjb21wdXRlZCBoZXJlXCIgd2l0aG91dCBzYXlpbmcgSE9XIGxlYXZlcyBhIHJlYWRlclxuICAgKiB1bmFibGUgdG8gcmVwcm9kdWNlIG9yIGNvbXBhcmUgaXQuIEFic2VudCBmb3IgYSBwdWJsaXNoZWQgZW1iZWRkaW5nLCB3aG9zZSBwYXJhbWV0ZXJzIGJlbG9uZ1xuICAgKiB0byB3aG9ldmVyIHB1Ymxpc2hlZCBpdC5cbiAgICovXG4gIHBhcmFtcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPbmUgZW1iZWRkaW5nJ3MgY29vcmRpbmF0ZXMuXG4gKlxuICogRGVsaWJlcmF0ZWx5IHNoYXBlZCBsaWtlIHtAbGluayBTcGF0aWFsT2JzZXJ2YXRpb25zfScgYHhgL2B5YC9gemAgcmF0aGVyIHRoYW4gYW4gKE4sIEQpIG1hdHJpeDpcbiAqIHRoZSBwb2ludCBvZiBhbiBlbWJlZGRpbmcgaGVyZSBpcyB0byBiZSBzd2FwcGVkIGluIGFzIHRoZSBzY2F0dGVyJ3MgY29vcmRpbmF0ZSBzb3VyY2UsIGFuZFxuICogbWF0Y2hpbmcgdGhhdCBzaGFwZSBtZWFucyB0aGUgcmVuZGVyZXIsIHRoZSBob3ZlciBoaXQtdGVzdCBhbmQgdGhlIHNlbGVjdGlvbiBjb2RlIG5lZWQgbm9cbiAqIHZhcmlhbnQgZm9yIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxFbWJlZGRpbmcge1xuICBtZXRhOiBTcGF0aWFsRW1iZWRkaW5nTWV0YTtcbiAgeDogRmxvYXQzMkFycmF5O1xuICB5OiBGbG9hdDMyQXJyYXk7XG4gIHo/OiBGbG9hdDMyQXJyYXk7XG59XG5cbi8qKlxuICogTGV2ZWwtb2YtZGV0YWlsIGdlb21ldHJ5LCBzZXJ2ZWQgb25lIGdyaWQgdGlsZSBhdCBhIHRpbWUuXG4gKlxuICogV2hvbGUtZGF0YXNldCB2ZWN0b3JzIHN0b3Agd29ya2luZyBzb21ld2hlcmUgcGFzdCAxMF41IG9ic2VydmF0aW9uczogNzE3ayBYZW5pdW0gY2VsbFxuICogb3V0bGluZXMgYXJlIH4xNDAgTUIsIGFuZCBhIHdob2xlLXRyYW5zY3JpcHRvbWUgcnVuIGhhcyB+MTBeOSB0cmFuc2NyaXB0cy4gV2hhdCBzY2FsZXNcbiAqIGlzIHdoYXQgbWFwIHRpbGVzIGRvIOKAlCBhIHNxdWFyZSBncmlkIGluIHRoZSBvYnNlcnZhdGlvbnMnIGNvb3JkaW5hdGUgc3BhY2UsIG9uZSBncmlkXG4gKiBwZXIgbGV2ZWwsIGVhY2ggbGV2ZWwncyB0aWxlcyB0d2ljZSB0aGUgc2l6ZSBvZiB0aGUgb25lIGJlbG93IGFuZCBjYXJyeWluZyBjb2Fyc2VyXG4gKiBnZW9tZXRyeS4gVGhlIHJlbmRlcmVyIGFza3Mgb25seSBmb3IgdGhlIHRpbGVzIG9uIHNjcmVlbiwgYXQgdGhlIGxldmVsIHRoZSB6b29tIG5lZWRzLlxuICpcbiAqIFRpbGUgYChneCwgZ3kpYCBhdCBsZXZlbCBgbGAgY292ZXJzIGBbZ3jCt3MsIChneCsxKcK3cykgw5cgW2d5wrdzLCAoZ3krMSnCt3MpYCB3aXRoXG4gKiBgcyA9IGxldmVsc1tsXS50aWxlU2l6ZWAsIGluIHRoZSBzYW1lIHVuaXRzIGFzIHtAbGluayBTcGF0aWFsT2JzZXJ2YXRpb25zLnh9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUaWxlTGV2ZWwge1xuICAvKiogRWRnZSBsZW5ndGggb2Ygb25lIHRpbGUsIGluIG9ic2VydmF0aW9uIGNvb3JkaW5hdGUgdW5pdHMuICovXG4gIHRpbGVTaXplOiBudW1iZXI7XG59XG5cbi8qKiBBeGlzLWFsaWduZWQgZXh0ZW50IGBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV1gIGluIG9ic2VydmF0aW9uIGNvb3JkaW5hdGVzLiAqL1xuZXhwb3J0IHR5cGUgU3BhdGlhbEJvdW5kcyA9IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuXG4vKiogVGlsZWQgY2VsbC9udWNsZXVzIGJvdW5kYXJpZXMuIExldmVsIDAgaXMgdGhlIGZpbmVzdCAoZXZlcnkgdmVydGV4KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25UaWxlc01ldGEge1xuICBib3VuZHM6IFNwYXRpYWxCb3VuZHM7XG4gIC8qKiBCb3VuZGFyeSBzZXRzIG9uIG9mZmVyIOKAlCB0eXBpY2FsbHkgYGNlbGxgIGFuZCBgbnVjbGV1c2AuICovXG4gIHNldHM6IHsgbmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXTtcbiAgLyoqIFRoZSBzZXQgdG8gZHJhdyB3aGVuIHRoZSB1c2VyIGhhcyBub3QgY2hvc2VuLiAqL1xuICBkZWZhdWx0U2V0Pzogc3RyaW5nO1xuICBsZXZlbHM6IFNwYXRpYWxUaWxlTGV2ZWxbXTtcbn1cblxuLyoqIFRpbGVkIHRyYW5zY3JpcHRzLiBMZXZlbCAwIGlzIG9uZSBlbnRyeSBwZXIgdHJhbnNjcmlwdDsgY29hcnNlciBsZXZlbHMgYWdncmVnYXRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdFRpbGVzTWV0YSB7XG4gIGJvdW5kczogU3BhdGlhbEJvdW5kcztcbiAgLyoqIFRvdGFsIHRyYW5zY3JpcHRzLCBmb3IgZGlzcGxheS4gKi9cbiAgY291bnQ/OiBudW1iZXI7XG4gIC8qKiBSZWFsIGdlbmVzIChjb250cm9sIHByb2JlcyBleGNsdWRlZCkuIE5hbWVzIGNvbWUgZnJvbSB0aGUgZmVhdHVyZSBzZWFyY2guICovXG4gIGdlbmVDb3VudDogbnVtYmVyO1xuICBoYXNaOiBib29sZWFuO1xuICBsZXZlbHM6IChTcGF0aWFsVGlsZUxldmVsICYge1xuICAgIC8qKiBUcnVlIHdoZW4gYW4gZW50cnkgc3RhbmRzIGZvciBzZXZlcmFsIHRyYW5zY3JpcHRzIChzZWUge0BsaW5rIFNwYXRpYWxUcmFuc2NyaXB0VGlsZS53ZWlnaHR9KS4gKi9cbiAgICBhZ2dyZWdhdGVkOiBib29sZWFuO1xuICB9KVtdO1xuICAvKipcbiAgICogTGV2ZWxzIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhpcyBvbmUgYXNzaWduIGVhY2ggZW50cnkgdG8gdGhlIGNlbGwgaXQgbGllcyBpblxuICAgKiBleGFjdGx5OyBhYm92ZSBpdCB0aGUgYXNzaWdubWVudCBuYW1lcyB0aGUgY2VsbCBuZWFyZXN0IGFuIGFnZ3JlZ2F0ZSdzIGNlbnRyb2lkLlxuICAgKi9cbiAgZXhhY3RDZWxsTGV2ZWw/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGFsbC1nZW5lIHRyYW5zY3JpcHQgZ3JvdXBpbmcgcHlyYW1pZDogc3F1YXJlIGJpbnMsIGZvdXIgdGltZXMgY29hcnNlciBwZXIgbGV2ZWwsXG4gKiBlYWNoIGhvbGRpbmcgYSBjb3VudCwgYSBjZW50cm9pZCBhbmQgdGhlIGNlbGwgdGhhdCBjb250cmlidXRlZCBtb3N0IG9mIGl0cyB0cmFuc2NyaXB0cy5cbiAqIFNlcnZlZCBwZXIgdGlsZSwgaW4gdGhlIHtAbGluayBTcGF0aWFsVHJhbnNjcmlwdFRpbGV9IGxheW91dCAob25lIGVudHJ5IHBlciBiaW4pLlxuICpcbiAqIFRpbGUgYCh0eCwgdHkpYCBvZiBsZXZlbCBgbGAgY292ZXJzIGBvcmlnaW4gKyBbdHjCt3MsICh0eCsxKcK3cykgw5cgW3R5wrdzLCAodHkrMSnCt3MpYCB3aXRoXG4gKiBgcyA9IGxldmVsc1tsXS50aWxlU2l6ZWAg4oCUIG5vdGUgdGhlIG9yaWdpbiwgd2hpY2ggdGhlIHBlci1nZW5lIHRpbGVzIGRvIG5vdCBoYXZlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0Qmluc01ldGEge1xuICBib3VuZHM6IFNwYXRpYWxCb3VuZHM7XG4gIG9yaWdpbjogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqIFRyYW5zY3JpcHRzIHRoZSBweXJhbWlkIHdhcyBidWlsdCBmcm9tLiAqL1xuICBjb3VudDogbnVtYmVyO1xuICBsZXZlbHM6IHsgYmluU2l6ZTogbnVtYmVyOyB0aWxlU2l6ZTogbnVtYmVyIH1bXTtcbn1cblxuLyoqXG4gKiBBIGdyb3VwaW5nIHB5cmFtaWQgdGhlIHNlcnZlciBpcyBzdGlsbCBidWlsZGluZyAoaXQgYnVpbGRzIG9uZSBpdHNlbGYgd2hlbiBhIGRhdGFzZXRcbiAqIGFycml2ZXMgd2l0aG91dCBpdCkuIFwiQWxsIGdlbmVzXCIgYmVjb21lcyBhdmFpbGFibGUgb25jZSBpdCBpcyBkb25lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0Qmluc1N0YXR1cyB7XG4gIHN0YXRlOiAncXVldWVkJyB8ICdidWlsZGluZycgfCAnZmFpbGVkJztcbiAgLyoqIFNvdXJjZSB0aWxlcyBwcm9jZXNzZWQgc28gZmFyLCBvZiBgdG90YWxgLiAqL1xuICBkb25lPzogbnVtYmVyO1xuICB0b3RhbD86IG51bWJlcjtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqIFdoYXQgaXMgaW4gYW4gYXJlYSDigJQgdGhlIGhvdmVyIGRldGFpbHMgb2YgYSB0cmFuc2NyaXB0IG1hcmtlciBvciBncm91cGVkIGJpbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRTdW1tYXJ5IHtcbiAgLyoqIEFic2VudCBmb3IgYSBwdXJlIGNlbGwtaWQgbG9va3VwLiAqL1xuICB0cmFuc2NyaXB0cz86IG51bWJlcjtcbiAgLyoqIERpc3RpbmN0IGdlbmVzIGFtb25nIHRoZW0uICovXG4gIGdlbmVzPzogbnVtYmVyO1xuICB0b3BHZW5lcz86IHsgbmFtZTogc3RyaW5nOyBjb3VudDogbnVtYmVyIH1bXTtcbiAgLyoqIERpc3RpbmN0IGNlbGxzIHRoZXkgZmFsbCBpbiwgYW5kIGhvdyBtYW55IGZhbGwgaW4gbm9uZS4gKi9cbiAgY2VsbHM/OiBudW1iZXI7XG4gIHVuYXNzaWduZWQ/OiBudW1iZXI7XG4gIHRvcENlbGxzPzogeyBpbmRleDogbnVtYmVyOyBpZD86IHN0cmluZzsgY291bnQ6IG51bWJlciB9W107XG4gIC8qKiBEaXNwbGF5IGlkcyBvZiB0aGUgY2VsbHMgYXNrZWQgZm9yLCBieSBvYnNlcnZhdGlvbiBpbmRleC4gKi9cbiAgY2VsbElkcz86IFJlY29yZDxudW1iZXIsIHN0cmluZz47XG59XG5cbi8qKiBBIHBlci1nZW5lIHRyYW5zY3JpcHQtY291bnQgcmFzdGVyIGNvdmVyaW5nIHRoZSBzZWN0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsRGVuc2l0eU1ldGEge1xuICAvKiogU2l6ZSBvZiBvbmUgcmFzdGVyIGNlbGwsIGluIG9ic2VydmF0aW9uIHVuaXRzLCBgW3gsIHldYC4gKi9cbiAgZ3JpZFNpemU6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKiBPYnNlcnZhdGlvbi1zcGFjZSBwb3NpdGlvbiBvZiByYXN0ZXIgY2VsbCAoMCwgMCkncyBuZWFyIGNvcm5lci4gKi9cbiAgb3JpZ2luOiBbbnVtYmVyLCBudW1iZXJdO1xuICByb3dzOiBudW1iZXI7XG4gIGNvbHM6IG51bWJlcjtcbn1cblxuLyoqIFwiTm8gb2JzZXJ2YXRpb25cIiBpbiB7QGxpbmsgU3BhdGlhbFRyYW5zY3JpcHRUaWxlLm9ic2VydmF0aW9ufS4gKi9cbmV4cG9ydCBjb25zdCBOT19PQlNFUlZBVElPTiA9IDB4ZmZmZmZmZmY7XG5cbi8qKiBPbmUgdGlsZSBvZiBib3VuZGFyaWVzOiByaW5ncyBhcyBpbiB7QGxpbmsgU3BhdGlhbFBvbHlnb25zfSwgcGx1cyB3aG8gb3ducyBlYWNoIHJpbmcuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxQb2x5Z29uVGlsZSBleHRlbmRzIFNwYXRpYWxQb2x5Z29ucyB7XG4gIC8qKiBPYnNlcnZhdGlvbiBpbmRleCBvZiByaW5nIGBpYCDigJQgdGhlIGpvaW4ga2V5IHRvIGNvbHVtbnMgYW5kIGZlYXR1cmVzLiAqL1xuICBvYnNlcnZhdGlvbjogVWludDMyQXJyYXk7XG59XG5cbi8qKiBPbmUgdGlsZSBvZiB0cmFuc2NyaXB0cyAob3IgYWdncmVnYXRlcyBvZiB0aGVtKS4gRXZlcnkgYXJyYXkgaGFzIGxlbmd0aCB7QGxpbmsgY291bnR9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdFRpbGUge1xuICByZWFkb25seSBjb3VudDogbnVtYmVyO1xuICBhZ2dyZWdhdGVkOiBib29sZWFuO1xuICB4OiBGbG9hdDMyQXJyYXk7XG4gIHk6IEZsb2F0MzJBcnJheTtcbiAgejogRmxvYXQzMkFycmF5O1xuICAvKiogVHJhbnNjcmlwdHMgZWFjaCBlbnRyeSBzdGFuZHMgZm9yIOKAlCAxIGF0IGFuIHVuYWdncmVnYXRlZCBsZXZlbC4gKi9cbiAgd2VpZ2h0OiBVaW50MzJBcnJheTtcbiAgLyoqIE9ic2VydmF0aW9uIChjZWxsKSB0aGUgZW50cnkgZmFsbHMgaW4sIG9yIHtAbGluayBOT19PQlNFUlZBVElPTn0uICovXG4gIG9ic2VydmF0aW9uOiBVaW50MzJBcnJheTtcbiAgLyoqIEluZGV4IGludG8gdGhlIGBnZW5lc2AgbGlzdCB0aGUgdGlsZSB3YXMgcmVxdWVzdGVkIHdpdGguICovXG4gIGdlbmU6IFVpbnQxNkFycmF5O1xufVxuXG4vKiogVGhlIHBlci1nZW5lIGxldmVsczogZWFjaCBsZXZlbCdzIGJpbiBhbmQgdGlsZSBzaXplLCBvbiB0aGUgYWxsLWdlbmUgcHlyYW1pZCdzIGdyaWQuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0R2VuZUJpbnNNZXRhIHtcbiAgb3JpZ2luOiBbbnVtYmVyLCBudW1iZXJdO1xuICBsZXZlbHM6IHsgYmluU2l6ZTogbnVtYmVyOyB0aWxlU2l6ZTogbnVtYmVyIH1bXTtcbn1cblxuLyoqXG4gKiBNYXJrZXIgZ2VuZXMgb2YgZWFjaCBncm91cCBvZiBhIGNhdGVnb3JpY2FsIGNvbHVtbjogcGVyIGdyb3VwLCB0aGUgcmVhbCBnZW5lcyBtb3N0XG4gKiBzcGVjaWZpYyB0byBpdCwgYmVzdCBmaXJzdC4gQSBnZW5lJ3Mgc2NvcmUgaXMgaXRzIG1lYW4gYGxvZzFwKGNvdW50KWAgaW4gdGhlIGdyb3VwIG1pbnVzXG4gKiB0aGF0IGluIGV2ZXJ5IG90aGVyIGNlbGw7IGl0IG11c3QgYmUgZGV0ZWN0ZWQgaW4gYXQgbGVhc3QgMTAlIG9mIHRoZSBncm91cCdzIGNlbGxzLCBhbmRcbiAqIGluIG1vcmUgb2YgdGhlbSB0aGFuIGVsc2V3aGVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsTWFya2VyR2VuZXMge1xuICBjb2x1bW46IHN0cmluZztcbiAgZ3JvdXBzOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBDZWxscyBpbiB0aGUgZ3JvdXAuICovXG4gICAgY2VsbHM6IG51bWJlcjtcbiAgICBnZW5lczogeyBuYW1lOiBzdHJpbmc7IHNjb3JlOiBudW1iZXI7IHBjdEluOiBudW1iZXI7IHBjdE91dDogbnVtYmVyIH1bXTtcbiAgfVtdO1xufVxuXG4vKiogVHJhbnNjcmlwdCB0b3RhbHMgZm9yIGFuIGVzdGltYXRlIG9mIGhvdyBtYW55IG1hcmtlcnMgYSBzZWxlY3Rpb24gd291bGQgZHJhdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRDb3VudHMge1xuICAvKiogVG90YWwgdHJhbnNjcmlwdHMgcGVyIHJlcXVlc3RlZCBnZW5lLCBvdmVyIHRoZSB3aG9sZSBkYXRhc2V0LiAqL1xuICBjb3VudHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIC8qKiBUb3RhbCBvdmVyIGV2ZXJ5IGdlbmUuICovXG4gIHRvdGFsOiBudW1iZXI7XG4gIC8qKiBFeHRlbnQgdGhlIHRvdGFscyBhcmUgc3ByZWFkIG92ZXIgKG9ic2VydmF0aW9uIHVuaXRzKS4gKi9cbiAgYm91bmRzOiBTcGF0aWFsQm91bmRzO1xufVxuXG4vKiogQSBzdW1tZWQgZGVuc2l0eSByYXN0ZXIgZm9yIGEgbGlzdCBvZiBnZW5lczsgYHZhbHVlc2AgaXMgcm93LW1ham9yIGByb3dzIMOXIGNvbHNgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsRGVuc2l0eVJhc3RlciB7XG4gIG1ldGE6IFNwYXRpYWxEZW5zaXR5TWV0YTtcbiAgZ2VuZXM6IHN0cmluZ1tdO1xuICB2YWx1ZXM6IEZsb2F0MzJBcnJheTtcbn1cblxuLyoqXG4gKiBBIHNwYXRpYWwtb21pY3MgZGF0YXNldDogZXZlcnl0aGluZyBjaGVhcCBlbm91Z2ggdG8gaG9sZCByZXNpZGVudC4gQ29sdW1uIGFuZFxuICogZmVhdHVyZSAqdmFsdWVzKiwgYW5kIHBvbHlnb24gKmdlb21ldHJ5KiwgYXJlIGZldGNoZWQgdGhyb3VnaFxuICoge0BsaW5rIFNwYXRpYWxEYXRhUG9ydH0gYXMgdGhleSBhcmUgZGlzcGxheWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEYXRhc2V0IHtcbiAgLyoqIFN0YWJsZSBpZCDigJQgdGhlIGtleSB0aGUgcG9ydCdzIGxhenkgYWNjZXNzb3JzIGFyZSBzY29wZWQgdG8uICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lIGZvciBtZW51cy4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICBvYnNlcnZhdGlvbnM6IFNwYXRpYWxPYnNlcnZhdGlvbnM7XG4gIC8qKiBFdmVyeSBjb2x1bW4gYXZhaWxhYmxlLCB3aGV0aGVyIG9yIG5vdCBpdHMgdmFsdWVzIGFyZSBsb2FkZWQuICovXG4gIGNvbHVtbnM6IFNwYXRpYWxDb2x1bW5NZXRhW107XG4gIGZlYXR1cmVzPzogU3BhdGlhbEZlYXR1cmVNZXRhO1xuICBwb2x5Z29ucz86IFNwYXRpYWxQb2x5Z29uc01ldGE7XG4gIGltYWdlUmVmPzogU3BhdGlhbEltYWdlUmVmO1xuICAvKiogUHJlc2VuY2UgKyBnZW9tZXRyeSBvZiBhIHJlZmVyZW5jZSB2b2x1bWUgdGhlIG9ic2VydmF0aW9ucyBzaXQgaW5zaWRlLiAqL1xuICB2b2x1bWU/OiBTcGF0aWFsVm9sdW1lTWV0YTtcbiAgLyoqIEVtYmVkZGluZ3MgYXZhaWxhYmxlIGZvciB0aGVzZSBvYnNlcnZhdGlvbnMsIHdob3NlIGNvb3JkaW5hdGVzIGFyZSBmZXRjaGVkIG9uIGRlbWFuZC4gKi9cbiAgZW1iZWRkaW5ncz86IFNwYXRpYWxFbWJlZGRpbmdNZXRhW107XG4gIC8qKiBMZXZlbC1vZi1kZXRhaWwgYm91bmRhcmllcywgZmV0Y2hlZCBwZXIgdGlsZSDigJQgc2VlIHtAbGluayBTcGF0aWFsUG9seWdvblRpbGVzTWV0YX0uICovXG4gIHBvbHlnb25UaWxlcz86IFNwYXRpYWxQb2x5Z29uVGlsZXNNZXRhO1xuICAvKiogTGV2ZWwtb2YtZGV0YWlsIHRyYW5zY3JpcHRzLCBmZXRjaGVkIHBlciB0aWxlIOKAlCBzZWUge0BsaW5rIFNwYXRpYWxUcmFuc2NyaXB0VGlsZXNNZXRhfS4gKi9cbiAgdHJhbnNjcmlwdFRpbGVzPzogU3BhdGlhbFRyYW5zY3JpcHRUaWxlc01ldGE7XG4gIC8qKiBBIHNlcnZlZCBwZXItZ2VuZSB0cmFuc2NyaXB0IGRlbnNpdHkgcmFzdGVyLiAqL1xuICBkZW5zaXR5PzogU3BhdGlhbERlbnNpdHlNZXRhO1xuICAvKiogVGhlIGFsbC1nZW5lIHRyYW5zY3JpcHQgZ3JvdXBpbmcgcHlyYW1pZCwgd2hlbiBpdCBoYXMgYmVlbiBidWlsdC4gKi9cbiAgdHJhbnNjcmlwdEJpbnM/OiBTcGF0aWFsVHJhbnNjcmlwdEJpbnNNZXRhO1xuICAvKiogUGVyLWdlbmUgbGV2ZWxzIG9mIHRoZSB0cmFuc2NyaXB0IHB5cmFtaWQgKHNhbWUgYmlucyk6IGEgZ2VuZSBzZWxlY3Rpb24gYXQgYW55IHpvb20uICovXG4gIHRyYW5zY3JpcHRHZW5lQmlucz86IFNwYXRpYWxUcmFuc2NyaXB0R2VuZUJpbnNNZXRhO1xuICAvKiogUHJlc2VudCB3aGlsZSB0aGUgc2VydmVyIGlzIHN0aWxsIGJ1aWxkaW5nIHtAbGluayB0cmFuc2NyaXB0Qmluc30uICovXG4gIHRyYW5zY3JpcHRCaW5zU3RhdHVzPzogU3BhdGlhbFRyYW5zY3JpcHRCaW5zU3RhdHVzO1xuICAvKipcbiAgICogTWljcm9ucyBwZXIgb2JzZXJ2YXRpb24gY29vcmRpbmF0ZSB1bml0IOKAlCB3aGF0IG1ha2VzIGEgc2NhbGUgYmFyIHBvc3NpYmxlLlxuICAgKlxuICAgKiBUaGUgMkQgcGF0aCBnZXRzIHRoaXMgZnJvbSBgaW1hZ2VSZWYubXBwWGAsIGJlY2F1c2UgdGhlcmUgdGhlIGNvb3JkaW5hdGVzIGFyZVxuICAgKiBpbWFnZSBwaXhlbHMuIEEgM0QgY2xvdWQgaGFzIG5vIGltYWdlLCBzbyBpdCBoYXMgdG8gc2F5IGZvciBpdHNlbGY6IGAxYCBtZWFuc1xuICAgKiB0aGUgY29vcmRpbmF0ZXMgYXJlIGFscmVhZHkgbWljcm9ucy5cbiAgICpcbiAgICogQWJzZW50IG1lYW5zIHRoZSB1bml0IGlzIFVOS05PV04sIGFuZCBhIHJlbmRlcmVyIG11c3QgdGhlbiBkcmF3IG5vIHNjYWxlIGJhclxuICAgKiByYXRoZXIgdGhhbiBhc3N1bWUgb25lLiBBIGJhciBsYWJlbGxlZCBpbiBtaWNyb25zIG92ZXIgcGl4ZWwtc3BhY2VcbiAgICogY29vcmRpbmF0ZXMgaXMgd29yc2UgdGhhbiBubyBiYXI6IGl0IGxvb2tzIGxpa2UgYSBtZWFzdXJlbWVudC5cbiAgICovXG4gIG1pY3JvbnNQZXJVbml0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgM0Qgc2NhbGFyIHJlZmVyZW5jZSB2b2x1bWUgcmVnaXN0ZXJlZCB0byB0aGUgb2JzZXJ2YXRpb24gY29vcmRpbmF0ZXMg4oCUIHRoZVxuICogYW5hdG9taWNhbCBiYWNrZHJvcCBmb3IgYSBwb2ludCBjbG91ZCAoYW4gYXRsYXMgdGVtcGxhdGUsIG9yIGFuIGltYWdlIHotc3RhY2spLlxuICpcbiAqIEdlb21ldHJ5IG9ubHk7IHRoZSB2b3hlbHMgYXJlIGZldGNoZWQgdGhyb3VnaFxuICoge0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5nZXRWb2x1bWV9IHdoZW4gc29tZXRoaW5nIGlzIGdvaW5nIHRvIGRyYXcgdGhlbS4gQSBjbG91ZFxuICogd2l0aG91dCBvbmUgc3RpbGwgcmVuZGVycywganVzdCBpbiBlbXB0eSBzcGFjZS5cbiAqXG4gKiBUaGUgb2JzZXJ2YXRpb25zJyBjb29yZGluYXRlIGZyYW1lIG11c3QgYmUgdGhlIHZvbHVtZSdzIG93bjogdm94ZWwgYChpLCBqLCBrKWBcbiAqIGNvdmVycyBgW2kgKiB2b3hlbFNpemVbMF0sIChpICsgMSkgKiB2b3hlbFNpemVbMF0pYCBvbiB4LCBhbmQgc28gb24uIFRoYXQgbWVhbnNcbiAqIHRoZSB2b2x1bWUncyBuZWFyIGNvcm5lciBzaXRzIGF0IHRoZSBjb29yZGluYXRlIG9yaWdpbiwgc28gYSByZW5kZXJlciBjYW4gcGxhY2VcbiAqIHRoZSB0d28gdG9nZXRoZXIga25vd2luZyBub3RoaW5nIGVsc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFZvbHVtZU1ldGEge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgZGVwdGg6IG51bWJlcjtcbiAgLyoqIFdvcmxkIHNpemUgb2Ygb25lIHZveGVsIHBlciBheGlzLCBpbiB0aGUgb2JzZXJ2YXRpb25zJyB1bml0cy4gKi9cbiAgdm94ZWxTaXplOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG59XG5cbi8qKlxuICogQSBzZWxlY3Rpb24gb3ZlciBhIGRhdGFzZXQncyBOIG9ic2VydmF0aW9uczogYG1hc2tbaV0gPT09IDFgIHdoZW4gb2JzZXJ2YXRpb24gYGlgIGlzXG4gKiBzZWxlY3RlZCwgYW5kIGBjb3VudGAgdGhlIG51bWJlciBzZWxlY3RlZC4gUHVyZSBkYXRhLCBzbyBpdCBsaXZlcyB3aXRoIHRoZSBkYXRhc2V0XG4gKiBjb250cmFjdDsgdGhlIHNlbGVjdGlvbiBsb2dpYyB0aGF0IGJ1aWxkcyBvbmUgaXMgaW4gYHNwYXRpYWwvc3BhdGlhbC1zZWxlY3Rpb24udHNgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxTZWxlY3Rpb25NYXNrIHtcbiAgbWFzazogVWludDhBcnJheTtcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuLyoqIExvb2sgYSBjb2x1bW4ncyBkZXNjcmlwdG9yIHVwIGJ5IG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbHVtbk1ldGEoZGF0YXNldDogU3BhdGlhbERhdGFzZXQsIG5hbWU6IHN0cmluZyk6IFNwYXRpYWxDb2x1bW5NZXRhIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGFzZXQuY29sdW1ucy5maW5kKChjKSA9PiBjLm5hbWUgPT09IG5hbWUpO1xufVxuIl19
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvc3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQStFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFvQmxDLG1EQUFtRDtBQUNuRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsQ0FBZ0I7SUFDbEQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUM7QUFDdkMsQ0FBQztBQUNELGtEQUFrRDtBQUNsRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsQ0FBZ0I7SUFDakQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUM7QUFDdEMsQ0FBQztBQXVPRCxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQTJJekMsNkNBQTZDO0FBQzdDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBdUIsRUFBRSxJQUFZO0lBQ2xFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFja2VuZC1uZXV0cmFsIGRhdGEgbW9kZWwgZm9yIGEgKipzcGF0aWFsLW9taWNzIGRhdGFzZXQqKjogTiBvYnNlcnZhdGlvbnNcbiAqIChWaXNpdW0gc3BvdHMsIHNlZ21lbnRlZCBjZWxscywgbnVjbGVpLCDigKYpIHBvc2l0aW9uZWQgaW4gdGhlIHBpeGVsIHNwYWNlIG9mIGFcbiAqIHRpc3N1ZSBpbWFnZSwgZWFjaCBjYXJyeWluZyBjYXRlZ29yaWNhbCBhbmQgY29udGludW91cyBhbm5vdGF0aW9ucywgcGx1cyBhblxuICogb3B0aW9uYWwgZmVhdHVyZSAoZ2VuZSkgbWF0cml4IGFuZCBvcHRpb25hbCBwZXItb2JzZXJ2YXRpb24gYm91bmRhcmllcy5cbiAqXG4gKiBERVNJR05cbiAqIC0tLS0tLVxuICogMS4gKipTdHJ1Y3Qtb2YtYXJyYXlzLCBub3Qgb2JqZWN0LXBlci1jZWxsLioqIFJlYWwgZGF0YXNldHMgcnVuIDEwXjMgKFZpc2l1bSlcbiAqICAgIHRvIDEwXjYgKFhlbml1bS9Db3NNeCkgb2JzZXJ2YXRpb25zLiBge3gsIHl9W11gIGF0IDUwMGsgY2VsbHMgaXMgfjUwMGtcbiAqICAgIG9iamVjdHMgdGhlIEdDIGhhcyB0byB3YWxrOyB0d28gYEZsb2F0MzJBcnJheWBzIGFyZSB0d28gYWxsb2NhdGlvbnMgYW5kXG4gKiAgICB1cGxvYWQgdG8gdGhlIEdQVSB3aXRob3V0IGEgY29weS5cbiAqXG4gKiAyLiAqKk1ldGFkYXRhIGlzIGVhZ2VyLCB2YWx1ZXMgYXJlIGxhenkuKiogQSBkYXRhc2V0IGFkdmVydGlzZXMgKndoaWNoKlxuICogICAgY29sdW1ucyBhbmQgZmVhdHVyZXMgZXhpc3QgKHtAbGluayBTcGF0aWFsQ29sdW1uTWV0YX0sXG4gKiAgICB7QGxpbmsgU3BhdGlhbEZlYXR1cmVNZXRhfSk7IHRoZSB2ZWN0b3JzIHRoZW1zZWx2ZXMgYXJlIGZldGNoZWQgb24gZGVtYW5kXG4gKiAgICB0aHJvdWdoIHtAbGluayBTcGF0aWFsRGF0YVBvcnR9LiBBIFZpc2l1bSB0YWJsZSBpcyB+MzBrIGdlbmVzIHdpZGUg4oCUIHRoZVxuICogICAgZGVuc2UgbWF0cml4IGlzIH44MDAgTUIg4oCUIHNvIFwibG9hZCB0aGUgZGF0YXNldFwiIGNhbiBuZXZlciBtZWFuIFwibG9hZCB0aGVcbiAqICAgIG1hdHJpeFwiLiBPbmx5IHRoZSBoYW5kZnVsIG9mIGNvbHVtbnMgYWN0dWFsbHkgYmVpbmcgZGlzcGxheWVkIGlzIHJlc2lkZW50LlxuICpcbiAqIDMuICoqRGF0YSBzdGF5cyBkYXRhLioqIE5vIEkvTywgbm8gUnhKUywgbm8gQW5ndWxhciBpbiB0aGlzIGZpbGUg4oCUIHRoZSBzYW1lXG4gKiAgICBydWxlIGBwbG90bHktdHJhY2UtYnVpbGRlcnMudHNgIGZvbGxvd3MuIEZldGNoaW5nIGxpdmVzIG9uIHRoZSBwb3J0LlxuICpcbiAqIFRoZSBzaGFwZSBtaXJyb3JzIGhvdyB0aGUgZmllbGQgYWxyZWFkeSBzdG9yZXMgdGhpcyAoU3BhdGlhbERhdGEvQW5uRGF0YTpcbiAqIGBvYnNgIGFubm90YXRpb25zLCBgdmFyYCBmZWF0dXJlcywgYG9ic20vc3BhdGlhbGAgY29vcmRpbmF0ZXMsIHNoYXBlcyB3aXRoIGFcbiAqIGNvb3JkaW5hdGUgdHJhbnNmb3JtKSBzbyBhbiBhZGFwdGVyIGlzIGEgcHJvamVjdGlvbiwgbm90IGEgdHJhbnNsYXRpb24uXG4gKi9cblxuLyoqXG4gKiBPYnNlcnZhdGlvbiBwb3NpdGlvbnMuIEV2ZXJ5IGFycmF5IGlzIGxlbmd0aCB7QGxpbmsgY291bnR9IGFuZCBpbmRleC1hbGlnbmVkOlxuICogb2JzZXJ2YXRpb24gYGlgIGlzIGF0IGAoeFtpXSwgeVtpXSlgLCBhbmQgY29sdW1uL2ZlYXR1cmUgdmVjdG9ycyBpbmRleCB0aGVcbiAqIHNhbWUgd2F5LiBUaGlzIHNoYXJlZCBpbmRleCBpcyB0aGUgam9pbiBrZXkgZm9yIHRoZSB3aG9sZSBtb2RlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsT2JzZXJ2YXRpb25zIHtcbiAgLyoqIE4g4oCUIG51bWJlciBvZiBvYnNlcnZhdGlvbnMuICovXG4gIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gIC8qKiBYIGluIHRoZSByZWZlcmVuY2UgaW1hZ2UncyBwaXhlbCBzcGFjZSAoc2VlIHtAbGluayBTcGF0aWFsSW1hZ2VSZWZ9KS4gKi9cbiAgeDogRmxvYXQzMkFycmF5O1xuICAvKiogWSBpbiB0aGUgcmVmZXJlbmNlIGltYWdlJ3MgcGl4ZWwgc3BhY2UuICovXG4gIHk6IEZsb2F0MzJBcnJheTtcbiAgLyoqIFosIGZvciBzZXJpYWwgc2VjdGlvbnMgb3IgZ2VudWluZWx5IDNEIGFzc2F5cy4gQWJzZW50IGZvciBhIHNpbmdsZSBwbGFuZS4gKi9cbiAgej86IEZsb2F0MzJBcnJheTtcbiAgLyoqIFN0YWJsZSBwZXItb2JzZXJ2YXRpb24gaWRzIChiYXJjb2RlcywgY2VsbCBpZHMpIGZvciB0b29sdGlwcyBhbmQgZXhwb3J0LlxuICAgKiAgT3B0aW9uYWwg4oCUIG9taXQgZm9yIGxhcmdlIGRhdGFzZXRzIHdoZXJlIHRoZSBzdHJpbmdzIGNvc3QgbW9yZSB0aGFuIHRoZXlcbiAgICogIGFyZSB3b3J0aC4gKi9cbiAgaWRzPzogc3RyaW5nW107XG4gIC8qKiBNYXJrZXIgUkFESVVTIGluIGltYWdlIHBpeGVsczogb25lIHZhbHVlIHNoYXJlZCBieSBhbGwgb2JzZXJ2YXRpb25zIChhXG4gICAqICBWaXNpdW0gc3BvdCBpcyBhIGZpeGVkIDU1IMK1bSDih5IgYDI3LjUgLyBtcHBYYCBweCksIG9yIG9uZSBwZXIgb2JzZXJ2YXRpb25cbiAgICogIChzZWdtZW50ZWQgY2VsbHMpLiBBYnNlbnQg4oeSIHRoZSByZW5kZXJlciBwaWNrcyBhIGRpc3BsYXkgZGVmYXVsdC4gKi9cbiAgcmFkaXVzPzogRmxvYXQzMkFycmF5IHwgbnVtYmVyO1xufVxuXG4vKiogRmllbGRzIGNvbW1vbiB0byBldmVyeSBjb2x1bW4gZGVzY3JpcHRvci4gKi9cbmludGVyZmFjZSBTcGF0aWFsQ29sdW1uTWV0YUJhc2Uge1xuICAvKiogQ29sdW1uIG5hbWUgYXMgdGhlIHVzZXIgc2VlcyBpdCAoYGxlaWRlbmAsIGB0b3RhbF9jb3VudHNgKS4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogTG9uZ2VyIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIGZvciB0b29sdGlwcy9tZW51cy4gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBkaXNjcmV0ZSBhbm5vdGF0aW9uIOKAlCBjbHVzdGVyLCBjZWxsIHR5cGUsIHJlZ2lvbiwgc2FtcGxlLiBSZW5kZXJlZCBhcyBhXG4gKiBwYWxldHRlICsgbGVnZW5kOyBhIGxlZ2VuZCBjbGljayBzZWxlY3RzIHRoZSBjYXRlZ29yeSdzIG9ic2VydmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yaWNhbENvbHVtbk1ldGEgZXh0ZW5kcyBTcGF0aWFsQ29sdW1uTWV0YUJhc2Uge1xuICBraW5kOiAnY2F0ZWdvcmljYWwnO1xuICAvKiogQ2F0ZWdvcnkgbGFiZWxzOyBhIHZhbHVlJ3MgbGFiZWwgaXMgYGNhdGVnb3JpZXNbY29kZXNbaV1dYC4gKi9cbiAgY2F0ZWdvcmllczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBIZWFkaW5nIHRoZSBjb2x1bW4gaXMgbGlzdGVkIHVuZGVyIGluIGEgZ3JvdXAgcGlja2VyIOKAlCBlLmcuIFwiWGVuaXVtIE9uYm9hcmQgQW5hbHlzaXNcbiAgICogZ3JvdXBzXCIgZm9yIGEgcGlwZWxpbmUncyBjbHVzdGVyaW5ncywgXCJJbXBvcnRlZCBncm91cHNcIiBmb3Igb25lcyBhZGRlZCBieSBhIHVzZXIuXG4gICAqL1xuICBzZWN0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29sdW1ucyB0aGF0IGFyZSB2YXJpYW50cyBvZiBvbmUgY2hvaWNlIOKAlCBrLW1lYW5zIGF0IGsgPSAy4oCmMTAg4oCUIHNoYXJlIGEgZmFtaWx5OiBhXG4gICAqIHBpY2tlciBsaXN0cyB0aGUgZmFtaWx5IG9uY2UgYW5kIG9mZmVycyB0aGUgdmFyaWFudHMgYmVzaWRlIGl0LlxuICAgKi9cbiAgZmFtaWx5PzogeyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyB2YXJpYW50OiBzdHJpbmcgfTtcbiAgLyoqIEF1dGhvcmVkIGRpc3BsYXkgY29sb3VycyBhcyBgI3JyZ2diYmAsIGluZGV4LWFsaWduZWQgd2l0aFxuICAgKiAge0BsaW5rIGNhdGVnb3JpZXN9LiBTdXBwbHkgdGhlc2UgdG8ga2VlcCB0aGUgdmlld2VyJ3MgcGFsZXR0ZSBpZGVudGljYWwgdG9cbiAgICogIHRoZSBmaWd1cmVzIHRoZSBzYW1lIGFuYWx5c2lzIHByb2R1Y2VkIGluIFIvUHl0aG9uOyBvbWl0IHRvIGxldCB0aGUgdmlld2VyXG4gICAqICBkZXJpdmUgb25lLiAqL1xuICBjb2xvcnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGNvbnRpbnVvdXMgbWVhc3VyZW1lbnQg4oCUIGV4cHJlc3Npb24sIFFDIG1ldHJpYywgYXJlYSwgZGVuc2l0eS4gUmVuZGVyZWRcbiAqIHRocm91Z2ggdGhlIHNoYXJlZCBjb2xvcm1hcC9MVVQgKyBjb250cmFzdCB3aW5kb3cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludW91c0NvbHVtbk1ldGEgZXh0ZW5kcyBTcGF0aWFsQ29sdW1uTWV0YUJhc2Uge1xuICBraW5kOiAnY29udGludW91cyc7XG4gIC8qKiBVbml0IGZvciBheGlzL3Rvb2x0aXAgbGFiZWxzIChgY291bnRzYCwgYMK1bcKyYCkuICovXG4gIHVuaXQ/OiBzdHJpbmc7XG4gIC8qKiBUcnVlIHdoZW4gdGhlIGNvbHVtbiByZWFkcyBiZXN0IGxvZy1zY2FsZWQg4oCUIGNvdW50IGRhdGEgYWxtb3N0IGFsd2F5c1xuICAgKiAgZG9lcywgYW5kIGEgbGluZWFyIHNjYWxlIGNvbGxhcHNlcyBpdCBhZ2FpbnN0IGEgZmV3IGJyaWdodCBvdXRsaWVycy4gKi9cbiAgbG9nU2NhbGVIaW50PzogYm9vbGVhbjtcbiAgLyoqIE9ic2VydmVkIGV4dHJlbWVzLCB3aGVuIHRoZSBwcm9kdWNlciBrbm93cyB0aGVtLiBMZXRzIHRoZSBVSSBzZWVkIGFcbiAgICogIGNvbnRyYXN0IHdpbmRvdyBhbmQgYXhpcyByYW5nZSB3aXRob3V0IGZpcnN0IHNjYW5uaW5nIHRoZSB2ZWN0b3IuICovXG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xufVxuXG4vKiogRGVzY3JpcHRvciBvZiBvbmUgcGVyLW9ic2VydmF0aW9uIGNvbHVtbiwgZGlzY3JpbWluYXRlZCBieSBga2luZGAuICovXG5leHBvcnQgdHlwZSBTcGF0aWFsQ29sdW1uTWV0YSA9IENhdGVnb3JpY2FsQ29sdW1uTWV0YSB8IENvbnRpbnVvdXNDb2x1bW5NZXRhO1xuXG4vKipcbiAqIENvZGUgbWVhbmluZyBcInRoaXMgb2JzZXJ2YXRpb24gaGFzIG5vIGNhdGVnb3J5XCIgKHVuYXNzaWduZWQgLyBmaWx0ZXJlZCBvdXQgL1xuICogbm90IGluIHRpc3N1ZSkuIFJlbmRlcmVycyBzaG91bGQgZHJhdyBpdCBpbiB0aGUgbXV0ZWQgYmFja2dyb3VuZCBzdHlsZSByYXRoZXJcbiAqIHRoYW4gYXMgYSByZWFsIGNhdGVnb3J5LCBhbmQgaXQgbXVzdCBuZXZlciBpbmRleCB7QGxpbmtcbiAqIENhdGVnb3JpY2FsQ29sdW1uTWV0YS5jYXRlZ29yaWVzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IE5PX0NBVEVHT1JZID0gMHhmZmZmO1xuXG4vKiogQSBsb2FkZWQgY2F0ZWdvcmljYWwgY29sdW1uOiBwZXItb2JzZXJ2YXRpb24gaW5kaWNlcyBpbnRvIGBtZXRhLmNhdGVnb3JpZXNgLFxuICogIG9yIHtAbGluayBOT19DQVRFR09SWX0uICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3JpY2FsQ29sdW1uIHtcbiAgbWV0YTogQ2F0ZWdvcmljYWxDb2x1bW5NZXRhO1xuICAvKiogTGVuZ3RoID0ge0BsaW5rIFNwYXRpYWxPYnNlcnZhdGlvbnMuY291bnR9LiAqL1xuICBjb2RlczogVWludDE2QXJyYXk7XG59XG5cbi8qKiBBIGxvYWRlZCBjb250aW51b3VzIGNvbHVtbi4gYE5hTmAgbWFya3MgYSBtaXNzaW5nIHZhbHVlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250aW51b3VzQ29sdW1uIHtcbiAgbWV0YTogQ29udGludW91c0NvbHVtbk1ldGE7XG4gIC8qKiBMZW5ndGggPSB7QGxpbmsgU3BhdGlhbE9ic2VydmF0aW9ucy5jb3VudH0uICovXG4gIHZhbHVlczogRmxvYXQzMkFycmF5O1xufVxuXG4vKiogQSBsb2FkZWQgY29sdW1uIHdpdGggaXRzIHZhbHVlcywgZGlzY3JpbWluYXRlZCBieSBgbWV0YS5raW5kYC4gKi9cbmV4cG9ydCB0eXBlIFNwYXRpYWxDb2x1bW4gPSBDYXRlZ29yaWNhbENvbHVtbiB8IENvbnRpbnVvdXNDb2x1bW47XG5cbi8qKiBOYXJyb3cgYSBsb2FkZWQgY29sdW1uIHRvIGEgY2F0ZWdvcmljYWwgb25lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2F0ZWdvcmljYWxDb2x1bW4oYzogU3BhdGlhbENvbHVtbik6IGMgaXMgQ2F0ZWdvcmljYWxDb2x1bW4ge1xuICByZXR1cm4gYy5tZXRhLmtpbmQgPT09ICdjYXRlZ29yaWNhbCc7XG59XG4vKiogTmFycm93IGEgbG9hZGVkIGNvbHVtbiB0byBhIGNvbnRpbnVvdXMgb25lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGludW91c0NvbHVtbihjOiBTcGF0aWFsQ29sdW1uKTogYyBpcyBDb250aW51b3VzQ29sdW1uIHtcbiAgcmV0dXJuIGMubWV0YS5raW5kID09PSAnY29udGludW91cyc7XG59XG5cbi8qKlxuICogVGhlIGZlYXR1cmUgKGdlbmUpIG1hdHJpeCwgZGVzY3JpYmVkIGJ1dCBuZXZlciBkZWxpdmVyZWQgd2hvbGUuIFZlY3RvcnMgY29tZVxuICogb25lIGF0IGEgdGltZSBmcm9tIHtAbGluayBTcGF0aWFsRGF0YVBvcnQuZ2V0RmVhdHVyZVZlY3Rvcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEZlYXR1cmVNZXRhIHtcbiAgLyoqIE51bWJlciBvZiBmZWF0dXJlcyBhdmFpbGFibGUuICovXG4gIGNvdW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBBbGwgZmVhdHVyZSBuYW1lcywgd2hlbiB0aGUgcHJvZHVjZXIgY2hvc2UgdG8gaW5saW5lIHRoZW0uIFByZXNlbnQgZm9yXG4gICAqIHRhcmdldGVkIHBhbmVscyAoWGVuaXVtL0Nvc014IHNoaXAgMzAw4oCTNSwwMDAgZ2VuZXMg4oeSIGEgZmV3IGRvemVuIEtCKSBhbmRcbiAgICogYWJzZW50IGZvciB3aG9sZS10cmFuc2NyaXB0b21lIGRhdGEgKFZpc2l1bSBzaGlwcyB+MzFrIOKHkiB+MzUwIEtCKSwgd2hlcmVcbiAgICogdGhlIFVJIHNob3VsZCB1c2Uge0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5zZWFyY2hGZWF0dXJlc30gZm9yIHR5cGVhaGVhZFxuICAgKiBpbnN0ZWFkIG9mIGRvd25sb2FkaW5nIHRoZSBsaXN0LiBDb25zdW1lcnMgbXVzdCBoYW5kbGUgYm90aC5cbiAgICovXG4gIG5hbWVzPzogc3RyaW5nW107XG4gIC8qKiBXaGF0IGEgZmVhdHVyZSB2YWx1ZSBtZWFucyAoYGxvZzFwIG5vcm1hbGl6ZWRgLCBgcmF3IGNvdW50c2ApLiAqL1xuICB1bml0Pzogc3RyaW5nO1xuICAvKiogVHJ1ZSB3aGVuIGZlYXR1cmUgdmVjdG9ycyByZWFkIGJlc3QgbG9nLXNjYWxlZCAocmF3IGNvdW50cykuICovXG4gIGxvZ1NjYWxlSGludD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGVyLW9ic2VydmF0aW9uIGJvdW5kYXJpZXMgKGNlbGwvbnVjbGV1cyBzZWdtZW50YXRpb24sIHNwb3Qgb3V0bGluZXMpIGFzIGZsYXRcbiAqIHJpbmdzIOKAlCBkZWxpYmVyYXRlbHkgTk9UIEdlb0pTT04gb2JqZWN0cywgd2hpY2ggY29zdCBvbmUgb2JqZWN0ICsgb25lIGFycmF5XG4gKiBwZXIgY2VsbCBhbmQgd291bGQgZG9taW5hdGUgbWVtb3J5IGF0IDEwXjUgcG9seWdvbnMuXG4gKlxuICogUmluZyBgaWAgb2NjdXBpZXMgYGNvb3Jkc1syKm9mZnNldHNbaV0gLi4gMipvZmZzZXRzW2krMV0pYCBhcyBgeDAseTAseDEseTEs4oCmYFxuICogYW5kIGlzIGltcGxpY2l0bHkgY2xvc2VkLiBgb2Zmc2V0c2AgaGFzIGxlbmd0aCBgY291bnQgKyAxYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsUG9seWdvbnMge1xuICBjb29yZHM6IEZsb2F0MzJBcnJheTtcbiAgb2Zmc2V0czogVWludDMyQXJyYXk7XG4gIC8qKiBOdW1iZXIgb2YgcmluZ3Mg4oCUIGBvZmZzZXRzLmxlbmd0aCAtIDFgLiAqL1xuICByZWFkb25seSBjb3VudDogbnVtYmVyO1xufVxuXG4vKiogUHJlc2VuY2Uvc2l6ZSBvZiB0aGUgYm91bmRhcnkgZ2VvbWV0cnksIHdpdGhvdXQgbG9hZGluZyBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25zTWV0YSB7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogSG93IG9ic2VydmF0aW9uIGNvb3JkaW5hdGVzIHJlbGF0ZSB0byB0aGUgdGlzc3VlIGltYWdlIHRoZXkgYXJlIGRyYXduIG92ZXIuXG4gKiBBcHBsaWVkIGFzIGB3b3JsZCA9IGNvb3JkICogc2NhbGUgKyB0cmFuc2xhdGVgLCBtYXRjaGluZyB0aGUgYWZmaW5lIHRoYXRcbiAqIFNwYXRpYWxEYXRhIHJlY29yZHMgcGVyIGNvb3JkaW5hdGUgc3lzdGVtIOKAlCBhbmQgdGhlIGZ1bGwtcmVzb2x1dGlvbiB3b3JsZFxuICogY29udmVudGlvbiB0aGUgbmFwYXJpLWpzIGJhY2tlbmQgYWxyZWFkeSB1c2VzIHNvIHByZS1zYXZlZCByZWdpb25zIGFsaWduIG9uXG4gKiBweXJhbWlkYWwgc2xpZGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxJbWFnZVJlZiB7XG4gIC8qKiBIb3N0LWRlZmluZWQgaWQgb2YgdGhlIGltYWdlIHRoZXNlIGNvb3JkaW5hdGVzIGxpdmUgaW4sIHNvIHRoZSBob3N0IGNhblxuICAgKiAgcmVzb2x2ZSBpdCB0byBhbiBgSUltYWdlSW5mb2AuICovXG4gIGltYWdlSWQ/OiBzdHJpbmc7XG4gIC8qKiBEYXRh4oaSd29ybGQgc2NhbGUuIERlZmF1bHRzIHRvIGBbMSwgMV1gIChjb29yZGluYXRlcyBhbHJlYWR5IGluXG4gICAqICBmdWxsLXJlc29sdXRpb24gaW1hZ2UgcGl4ZWxzKS4gKi9cbiAgc2NhbGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogRGF0YeKGkndvcmxkIHRyYW5zbGF0aW9uLCBpbiB0aGUgc2FtZSB1bml0cyBhcyB7QGxpbmsgc2NhbGV9J3Mgb3V0cHV0LiAqL1xuICB0cmFuc2xhdGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogUGh5c2ljYWwgcGl4ZWwgc2l6ZSBpbiDCtW0g4oCUIGRyaXZlcyB0aGUgc2NhbGUgYmFyIGFuZCBwaHlzaWNhbCBtYXJrZXJcbiAgICogIHNpemluZyAoYSA1NSDCtW0gVmlzaXVtIHNwb3QpLiAqL1xuICBtcHBYPzogbnVtYmVyO1xuICBtcHBZPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgcHJlY29tcHV0ZWQgbG93LWRpbWVuc2lvbmFsIGVtYmVkZGluZyBvdmVyIHRoZSBTQU1FIG9ic2VydmF0aW9ucyDigJQgVU1BUCwgdC1TTkUsIFBDQS5cbiAqXG4gKiBBbm5vdW5jZWQgaW4gdGhlIGRhdGFzZXQgYW5kIGZldGNoZWQgb24gZGVtYW5kLCBleGFjdGx5IGxpa2UgYSBjb2x1bW4gb3IgYSBnZW5lOiB0aGVcbiAqIGNvb3JkaW5hdGVzIGFyZSBhbm90aGVyIHBlci1vYnNlcnZhdGlvbiB2ZWN0b3IsIGFuZCBhIGRhdGFzZXQgbWF5IGNhcnJ5IHNldmVyYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEVtYmVkZGluZ01ldGEge1xuICAvKiogS2V5IGFzIHRoZSBzb3VyY2UgbmFtZXMgaXQsIGUuZy4gYFhfdW1hcGAuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFNob3J0IGxhYmVsIGZvciBtZW51czsgZmFsbHMgYmFjayB0byB7QGxpbmsgbmFtZX0uICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogMiBmb3IgYSBwbGFuZSwgMyBmb3IgYSBjbG91ZC4gKi9cbiAgZGltczogMiB8IDM7XG4gIC8qKlxuICAgKiBUcnVlIHdoZW4gdGhlIGNvb3JkaW5hdGVzIHdlcmUgQ09NUFVURUQgZm9yIHRoaXMgYnVuZGxlIHJhdGhlciB0aGFuIHB1Ymxpc2hlZCB3aXRoIHRoZVxuICAgKiBkYXRhc2V0LiBXb3J0aCBzdXJmYWNpbmc6IGEgVU1BUCByZWNvbXB1dGVkIHdpdGggZGlmZmVyZW50IHBhcmFtZXRlcnMgaXMgYSBkaWZmZXJlbnQgcGljdHVyZSxcbiAgICogYW5kIGEgcmVhZGVyIGNvbXBhcmluZyBhZ2FpbnN0IGEgcGFwZXIncyBmaWd1cmUgbmVlZHMgdG8ga25vdyB3aGljaCB0aGV5IGFyZSBsb29raW5nIGF0LlxuICAgKi9cbiAgZGVyaXZlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBGcmFjdGlvbiBvZiB0b3RhbCB2YXJpYW5jZSBlYWNoIGF4aXMgYWNjb3VudHMgZm9yLCBpbmRleC1hbGlnbmVkIHdpdGggdGhlIGRpbWVuc2lvbnMuXG4gICAqXG4gICAqIE9ubHkgbWVhbmluZ2Z1bCBmb3IgYSBMSU5FQVIgZW1iZWRkaW5nIOKAlCBQQ0EuIEl0cyBheGVzIGFyZSBvcmRlcmVkLCBhbmQgZWFjaCBvbmUgZXhwbGFpbnMgYVxuICAgKiBtZWFzdXJhYmxlIHNoYXJlIG9mIHRoZSB2YXJpYW5jZSwgd2hpY2ggaXMgdGhlIHdob2xlIHJlYXNvbiB0byBsb29rIGF0IGEgUENBIHJhdGhlciB0aGFuIGFcbiAgICogVU1BUDogXCJQQzEgKDIzJSlcIiBzYXlzIHNvbWV0aGluZywgd2hlcmUgXCJVTUFQIDFcIiBzYXlzIG5vdGhpbmcgYXQgYWxsLiBBIFVNQVAncyBjb29yZGluYXRlc1xuICAgKiBhcmUgYW4gYXJiaXRyYXJ5IG91dHB1dCBvZiBhbiBvcHRpbWlzYXRpb24gd2l0aCBubyB2YXJpYW5jZSB0byByZXBvcnQsIHNvIHRoaXMgc3RheXMgYWJzZW50XG4gICAqIHRoZXJlIHJhdGhlciB0aGFuIGJlaW5nIGZha2VkLlxuICAgKi9cbiAgdmFyaWFuY2VSYXRpbz86IG51bWJlcltdO1xuICAvKipcbiAgICogSG93IGEgZGVyaXZlZCBlbWJlZGRpbmcgd2FzIGNvbXB1dGVkLCBpbiBhIGZldyB3b3JkcyDigJQgZS5nLiBcIlBDQSg1MCkgdGhlbiBwZXJwbGV4aXR5IDMwLFxuICAgKiBzZWVkIDBcIi5cbiAgICpcbiAgICogTm90IGRlY29yYXRpb24uIEEgdC1TTkUgb3IgVU1BUCBpcyBzdG9jaGFzdGljLCBhbmQgaXRzIHBpY3R1cmUgY2hhbmdlcyBtYXRlcmlhbGx5IHdpdGhcbiAgICogcGVycGxleGl0eSBvciBgbl9uZWlnaGJvcnNgOyB0d28gcnVucyBhdCBkaWZmZXJlbnQgc2V0dGluZ3MgYXJlIGRpZmZlcmVudCBwaWN0dXJlcyBvZiB0aGUgc2FtZVxuICAgKiBjZWxscywgYW5kIG5laXRoZXIgaXMgbW9yZSBjb3JyZWN0LiBTYXlpbmcgXCJjb21wdXRlZCBoZXJlXCIgd2l0aG91dCBzYXlpbmcgSE9XIGxlYXZlcyBhIHJlYWRlclxuICAgKiB1bmFibGUgdG8gcmVwcm9kdWNlIG9yIGNvbXBhcmUgaXQuIEFic2VudCBmb3IgYSBwdWJsaXNoZWQgZW1iZWRkaW5nLCB3aG9zZSBwYXJhbWV0ZXJzIGJlbG9uZ1xuICAgKiB0byB3aG9ldmVyIHB1Ymxpc2hlZCBpdC5cbiAgICovXG4gIHBhcmFtcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPbmUgZW1iZWRkaW5nJ3MgY29vcmRpbmF0ZXMuXG4gKlxuICogRGVsaWJlcmF0ZWx5IHNoYXBlZCBsaWtlIHtAbGluayBTcGF0aWFsT2JzZXJ2YXRpb25zfScgYHhgL2B5YC9gemAgcmF0aGVyIHRoYW4gYW4gKE4sIEQpIG1hdHJpeDpcbiAqIHRoZSBwb2ludCBvZiBhbiBlbWJlZGRpbmcgaGVyZSBpcyB0byBiZSBzd2FwcGVkIGluIGFzIHRoZSBzY2F0dGVyJ3MgY29vcmRpbmF0ZSBzb3VyY2UsIGFuZFxuICogbWF0Y2hpbmcgdGhhdCBzaGFwZSBtZWFucyB0aGUgcmVuZGVyZXIsIHRoZSBob3ZlciBoaXQtdGVzdCBhbmQgdGhlIHNlbGVjdGlvbiBjb2RlIG5lZWQgbm9cbiAqIHZhcmlhbnQgZm9yIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxFbWJlZGRpbmcge1xuICBtZXRhOiBTcGF0aWFsRW1iZWRkaW5nTWV0YTtcbiAgeDogRmxvYXQzMkFycmF5O1xuICB5OiBGbG9hdDMyQXJyYXk7XG4gIHo/OiBGbG9hdDMyQXJyYXk7XG59XG5cbi8qKlxuICogTGV2ZWwtb2YtZGV0YWlsIGdlb21ldHJ5LCBzZXJ2ZWQgb25lIGdyaWQgdGlsZSBhdCBhIHRpbWUuXG4gKlxuICogV2hvbGUtZGF0YXNldCB2ZWN0b3JzIHN0b3Agd29ya2luZyBzb21ld2hlcmUgcGFzdCAxMF41IG9ic2VydmF0aW9uczogNzE3ayBYZW5pdW0gY2VsbFxuICogb3V0bGluZXMgYXJlIH4xNDAgTUIsIGFuZCBhIHdob2xlLXRyYW5zY3JpcHRvbWUgcnVuIGhhcyB+MTBeOSB0cmFuc2NyaXB0cy4gV2hhdCBzY2FsZXNcbiAqIGlzIHdoYXQgbWFwIHRpbGVzIGRvIOKAlCBhIHNxdWFyZSBncmlkIGluIHRoZSBvYnNlcnZhdGlvbnMnIGNvb3JkaW5hdGUgc3BhY2UsIG9uZSBncmlkXG4gKiBwZXIgbGV2ZWwsIGVhY2ggbGV2ZWwncyB0aWxlcyB0d2ljZSB0aGUgc2l6ZSBvZiB0aGUgb25lIGJlbG93IGFuZCBjYXJyeWluZyBjb2Fyc2VyXG4gKiBnZW9tZXRyeS4gVGhlIHJlbmRlcmVyIGFza3Mgb25seSBmb3IgdGhlIHRpbGVzIG9uIHNjcmVlbiwgYXQgdGhlIGxldmVsIHRoZSB6b29tIG5lZWRzLlxuICpcbiAqIFRpbGUgYChneCwgZ3kpYCBhdCBsZXZlbCBgbGAgY292ZXJzIGBbZ3jCt3MsIChneCsxKcK3cykgw5cgW2d5wrdzLCAoZ3krMSnCt3MpYCB3aXRoXG4gKiBgcyA9IGxldmVsc1tsXS50aWxlU2l6ZWAsIGluIHRoZSBzYW1lIHVuaXRzIGFzIHtAbGluayBTcGF0aWFsT2JzZXJ2YXRpb25zLnh9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUaWxlTGV2ZWwge1xuICAvKiogRWRnZSBsZW5ndGggb2Ygb25lIHRpbGUsIGluIG9ic2VydmF0aW9uIGNvb3JkaW5hdGUgdW5pdHMuICovXG4gIHRpbGVTaXplOiBudW1iZXI7XG59XG5cbi8qKiBBeGlzLWFsaWduZWQgZXh0ZW50IGBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV1gIGluIG9ic2VydmF0aW9uIGNvb3JkaW5hdGVzLiAqL1xuZXhwb3J0IHR5cGUgU3BhdGlhbEJvdW5kcyA9IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuXG4vKiogVGlsZWQgY2VsbC9udWNsZXVzIGJvdW5kYXJpZXMuIExldmVsIDAgaXMgdGhlIGZpbmVzdCAoZXZlcnkgdmVydGV4KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25UaWxlc01ldGEge1xuICBib3VuZHM6IFNwYXRpYWxCb3VuZHM7XG4gIC8qKiBCb3VuZGFyeSBzZXRzIG9uIG9mZmVyIOKAlCB0eXBpY2FsbHkgYGNlbGxgIGFuZCBgbnVjbGV1c2AuICovXG4gIHNldHM6IHsgbmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXTtcbiAgLyoqIFRoZSBzZXQgdG8gZHJhdyB3aGVuIHRoZSB1c2VyIGhhcyBub3QgY2hvc2VuLiAqL1xuICBkZWZhdWx0U2V0Pzogc3RyaW5nO1xuICBsZXZlbHM6IFNwYXRpYWxUaWxlTGV2ZWxbXTtcbn1cblxuLyoqIFRpbGVkIHRyYW5zY3JpcHRzLiBMZXZlbCAwIGlzIG9uZSBlbnRyeSBwZXIgdHJhbnNjcmlwdDsgY29hcnNlciBsZXZlbHMgYWdncmVnYXRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdFRpbGVzTWV0YSB7XG4gIGJvdW5kczogU3BhdGlhbEJvdW5kcztcbiAgLyoqIFRvdGFsIHRyYW5zY3JpcHRzLCBmb3IgZGlzcGxheS4gKi9cbiAgY291bnQ/OiBudW1iZXI7XG4gIC8qKiBSZWFsIGdlbmVzIChjb250cm9sIHByb2JlcyBleGNsdWRlZCkuIE5hbWVzIGNvbWUgZnJvbSB0aGUgZmVhdHVyZSBzZWFyY2guICovXG4gIGdlbmVDb3VudDogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGdlbmVzIGFuIGFsbC1nZW5lIHRpbGUncyBgZ2VuZWAgY29kZXMgaW5kZXgsIGluIGNvZGUgb3JkZXIgKHRoZSBwb3J0J3NcbiAgICogYFRyYW5zY3JpcHRUaWxlUXVlcnkuZ2VuZXNgIHdpdGggYFtBTExfR0VORVNdYCk7IGFuIGVtcHR5IG5hbWUgaXMgYSBjb2RlIHRob3NlIHRpbGVzIG5ldmVyXG4gICAqIGNhcnJ5IChhIGNvbnRyb2wgcHJvYmUpLiBPcHRpb25hbDogd2l0aG91dCBpdCBcIkFsbCBnZW5lc1wiIHN0aWxsIGRyYXdzLCBidXQgY2Fubm90IGhpZGUgb25lXG4gICAqIG9mIGl0cyBnZW5lcy5cbiAgICovXG4gIGdlbmVzPzogc3RyaW5nW107XG4gIGhhc1o6IGJvb2xlYW47XG4gIGxldmVsczogKFNwYXRpYWxUaWxlTGV2ZWwgJiB7XG4gICAgLyoqIFRydWUgd2hlbiBhbiBlbnRyeSBzdGFuZHMgZm9yIHNldmVyYWwgdHJhbnNjcmlwdHMgKHNlZSB7QGxpbmsgU3BhdGlhbFRyYW5zY3JpcHRUaWxlLndlaWdodH0pLiAqL1xuICAgIGFnZ3JlZ2F0ZWQ6IGJvb2xlYW47XG4gIH0pW107XG4gIC8qKlxuICAgKiBMZXZlbHMgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGlzIG9uZSBhc3NpZ24gZWFjaCBlbnRyeSB0byB0aGUgY2VsbCBpdCBsaWVzIGluXG4gICAqIGV4YWN0bHk7IGFib3ZlIGl0IHRoZSBhc3NpZ25tZW50IG5hbWVzIHRoZSBjZWxsIG5lYXJlc3QgYW4gYWdncmVnYXRlJ3MgY2VudHJvaWQuXG4gICAqL1xuICBleGFjdENlbGxMZXZlbD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgYWxsLWdlbmUgdHJhbnNjcmlwdCBncm91cGluZyBweXJhbWlkOiBzcXVhcmUgYmlucywgZm91ciB0aW1lcyBjb2Fyc2VyIHBlciBsZXZlbCxcbiAqIGVhY2ggaG9sZGluZyBhIGNvdW50LCBhIGNlbnRyb2lkIGFuZCB0aGUgY2VsbCB0aGF0IGNvbnRyaWJ1dGVkIG1vc3Qgb2YgaXRzIHRyYW5zY3JpcHRzLlxuICogU2VydmVkIHBlciB0aWxlLCBpbiB0aGUge0BsaW5rIFNwYXRpYWxUcmFuc2NyaXB0VGlsZX0gbGF5b3V0IChvbmUgZW50cnkgcGVyIGJpbikuXG4gKlxuICogVGlsZSBgKHR4LCB0eSlgIG9mIGxldmVsIGBsYCBjb3ZlcnMgYG9yaWdpbiArIFt0eMK3cywgKHR4KzEpwrdzKSDDlyBbdHnCt3MsICh0eSsxKcK3cylgIHdpdGhcbiAqIGBzID0gbGV2ZWxzW2xdLnRpbGVTaXplYCDigJQgbm90ZSB0aGUgb3JpZ2luLCB3aGljaCB0aGUgcGVyLWdlbmUgdGlsZXMgZG8gbm90IGhhdmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRCaW5zTWV0YSB7XG4gIGJvdW5kczogU3BhdGlhbEJvdW5kcztcbiAgb3JpZ2luOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogVHJhbnNjcmlwdHMgdGhlIHB5cmFtaWQgd2FzIGJ1aWx0IGZyb20uICovXG4gIGNvdW50OiBudW1iZXI7XG4gIGxldmVsczogeyBiaW5TaXplOiBudW1iZXI7IHRpbGVTaXplOiBudW1iZXIgfVtdO1xufVxuXG4vKipcbiAqIEEgZ3JvdXBpbmcgcHlyYW1pZCB0aGUgc2VydmVyIGlzIHN0aWxsIGJ1aWxkaW5nIChpdCBidWlsZHMgb25lIGl0c2VsZiB3aGVuIGEgZGF0YXNldFxuICogYXJyaXZlcyB3aXRob3V0IGl0KS4gXCJBbGwgZ2VuZXNcIiBiZWNvbWVzIGF2YWlsYWJsZSBvbmNlIGl0IGlzIGRvbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRCaW5zU3RhdHVzIHtcbiAgc3RhdGU6ICdxdWV1ZWQnIHwgJ2J1aWxkaW5nJyB8ICdmYWlsZWQnO1xuICAvKiogU291cmNlIHRpbGVzIHByb2Nlc3NlZCBzbyBmYXIsIG9mIGB0b3RhbGAuICovXG4gIGRvbmU/OiBudW1iZXI7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG4vKiogV2hhdCBpcyBpbiBhbiBhcmVhIOKAlCB0aGUgaG92ZXIgZGV0YWlscyBvZiBhIHRyYW5zY3JpcHQgbWFya2VyIG9yIGdyb3VwZWQgYmluLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdFN1bW1hcnkge1xuICAvKiogQWJzZW50IGZvciBhIHB1cmUgY2VsbC1pZCBsb29rdXAuICovXG4gIHRyYW5zY3JpcHRzPzogbnVtYmVyO1xuICAvKiogRGlzdGluY3QgZ2VuZXMgYW1vbmcgdGhlbS4gKi9cbiAgZ2VuZXM/OiBudW1iZXI7XG4gIHRvcEdlbmVzPzogeyBuYW1lOiBzdHJpbmc7IGNvdW50OiBudW1iZXIgfVtdO1xuICAvKiogRGlzdGluY3QgY2VsbHMgdGhleSBmYWxsIGluLCBhbmQgaG93IG1hbnkgZmFsbCBpbiBub25lLiAqL1xuICBjZWxscz86IG51bWJlcjtcbiAgdW5hc3NpZ25lZD86IG51bWJlcjtcbiAgdG9wQ2VsbHM/OiB7IGluZGV4OiBudW1iZXI7IGlkPzogc3RyaW5nOyBjb3VudDogbnVtYmVyIH1bXTtcbiAgLyoqIERpc3BsYXkgaWRzIG9mIHRoZSBjZWxscyBhc2tlZCBmb3IsIGJ5IG9ic2VydmF0aW9uIGluZGV4LiAqL1xuICBjZWxsSWRzPzogUmVjb3JkPG51bWJlciwgc3RyaW5nPjtcbn1cblxuLyoqIEEgcGVyLWdlbmUgdHJhbnNjcmlwdC1jb3VudCByYXN0ZXIgY292ZXJpbmcgdGhlIHNlY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEZW5zaXR5TWV0YSB7XG4gIC8qKiBTaXplIG9mIG9uZSByYXN0ZXIgY2VsbCwgaW4gb2JzZXJ2YXRpb24gdW5pdHMsIGBbeCwgeV1gLiAqL1xuICBncmlkU2l6ZTogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqIE9ic2VydmF0aW9uLXNwYWNlIHBvc2l0aW9uIG9mIHJhc3RlciBjZWxsICgwLCAwKSdzIG5lYXIgY29ybmVyLiAqL1xuICBvcmlnaW46IFtudW1iZXIsIG51bWJlcl07XG4gIHJvd3M6IG51bWJlcjtcbiAgY29sczogbnVtYmVyO1xufVxuXG4vKiogXCJObyBvYnNlcnZhdGlvblwiIGluIHtAbGluayBTcGF0aWFsVHJhbnNjcmlwdFRpbGUub2JzZXJ2YXRpb259LiAqL1xuZXhwb3J0IGNvbnN0IE5PX09CU0VSVkFUSU9OID0gMHhmZmZmZmZmZjtcblxuLyoqIE9uZSB0aWxlIG9mIGJvdW5kYXJpZXM6IHJpbmdzIGFzIGluIHtAbGluayBTcGF0aWFsUG9seWdvbnN9LCBwbHVzIHdobyBvd25zIGVhY2ggcmluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25UaWxlIGV4dGVuZHMgU3BhdGlhbFBvbHlnb25zIHtcbiAgLyoqIE9ic2VydmF0aW9uIGluZGV4IG9mIHJpbmcgYGlgIOKAlCB0aGUgam9pbiBrZXkgdG8gY29sdW1ucyBhbmQgZmVhdHVyZXMuICovXG4gIG9ic2VydmF0aW9uOiBVaW50MzJBcnJheTtcbn1cblxuLyoqIE9uZSB0aWxlIG9mIHRyYW5zY3JpcHRzIChvciBhZ2dyZWdhdGVzIG9mIHRoZW0pLiBFdmVyeSBhcnJheSBoYXMgbGVuZ3RoIHtAbGluayBjb3VudH0uICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0VGlsZSB7XG4gIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gIGFnZ3JlZ2F0ZWQ6IGJvb2xlYW47XG4gIHg6IEZsb2F0MzJBcnJheTtcbiAgeTogRmxvYXQzMkFycmF5O1xuICB6OiBGbG9hdDMyQXJyYXk7XG4gIC8qKiBUcmFuc2NyaXB0cyBlYWNoIGVudHJ5IHN0YW5kcyBmb3Ig4oCUIDEgYXQgYW4gdW5hZ2dyZWdhdGVkIGxldmVsLiAqL1xuICB3ZWlnaHQ6IFVpbnQzMkFycmF5O1xuICAvKiogT2JzZXJ2YXRpb24gKGNlbGwpIHRoZSBlbnRyeSBmYWxscyBpbiwgb3Ige0BsaW5rIE5PX09CU0VSVkFUSU9OfS4gKi9cbiAgb2JzZXJ2YXRpb246IFVpbnQzMkFycmF5O1xuICAvKiogSW5kZXggaW50byB0aGUgYGdlbmVzYCBsaXN0IHRoZSB0aWxlIHdhcyByZXF1ZXN0ZWQgd2l0aC4gKi9cbiAgZ2VuZTogVWludDE2QXJyYXk7XG59XG5cbi8qKiBUaGUgcGVyLWdlbmUgbGV2ZWxzOiBlYWNoIGxldmVsJ3MgYmluIGFuZCB0aWxlIHNpemUsIG9uIHRoZSBhbGwtZ2VuZSBweXJhbWlkJ3MgZ3JpZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRHZW5lQmluc01ldGEge1xuICBvcmlnaW46IFtudW1iZXIsIG51bWJlcl07XG4gIGxldmVsczogeyBiaW5TaXplOiBudW1iZXI7IHRpbGVTaXplOiBudW1iZXIgfVtdO1xufVxuXG4vKipcbiAqIE1hcmtlciBnZW5lcyBvZiBlYWNoIGdyb3VwIG9mIGEgY2F0ZWdvcmljYWwgY29sdW1uOiBwZXIgZ3JvdXAsIHRoZSByZWFsIGdlbmVzIG1vc3RcbiAqIHNwZWNpZmljIHRvIGl0LCBiZXN0IGZpcnN0LiBBIGdlbmUncyBzY29yZSBpcyBpdHMgbWVhbiBgbG9nMXAoY291bnQpYCBpbiB0aGUgZ3JvdXAgbWludXNcbiAqIHRoYXQgaW4gZXZlcnkgb3RoZXIgY2VsbDsgaXQgbXVzdCBiZSBkZXRlY3RlZCBpbiBhdCBsZWFzdCAxMCUgb2YgdGhlIGdyb3VwJ3MgY2VsbHMsIGFuZFxuICogaW4gbW9yZSBvZiB0aGVtIHRoYW4gZWxzZXdoZXJlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxNYXJrZXJHZW5lcyB7XG4gIGNvbHVtbjogc3RyaW5nO1xuICBncm91cHM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIENlbGxzIGluIHRoZSBncm91cC4gKi9cbiAgICBjZWxsczogbnVtYmVyO1xuICAgIGdlbmVzOiB7IG5hbWU6IHN0cmluZzsgc2NvcmU6IG51bWJlcjsgcGN0SW46IG51bWJlcjsgcGN0T3V0OiBudW1iZXIgfVtdO1xuICB9W107XG59XG5cbi8qKiBUcmFuc2NyaXB0IHRvdGFscyBmb3IgYW4gZXN0aW1hdGUgb2YgaG93IG1hbnkgbWFya2VycyBhIHNlbGVjdGlvbiB3b3VsZCBkcmF3LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdENvdW50cyB7XG4gIC8qKiBUb3RhbCB0cmFuc2NyaXB0cyBwZXIgcmVxdWVzdGVkIGdlbmUsIG92ZXIgdGhlIHdob2xlIGRhdGFzZXQuICovXG4gIGNvdW50czogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgLyoqIFRvdGFsIG92ZXIgZXZlcnkgZ2VuZS4gKi9cbiAgdG90YWw6IG51bWJlcjtcbiAgLyoqIEV4dGVudCB0aGUgdG90YWxzIGFyZSBzcHJlYWQgb3ZlciAob2JzZXJ2YXRpb24gdW5pdHMpLiAqL1xuICBib3VuZHM6IFNwYXRpYWxCb3VuZHM7XG59XG5cbi8qKiBBIHN1bW1lZCBkZW5zaXR5IHJhc3RlciBmb3IgYSBsaXN0IG9mIGdlbmVzOyBgdmFsdWVzYCBpcyByb3ctbWFqb3IgYHJvd3Mgw5cgY29sc2AuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEZW5zaXR5UmFzdGVyIHtcbiAgbWV0YTogU3BhdGlhbERlbnNpdHlNZXRhO1xuICBnZW5lczogc3RyaW5nW107XG4gIHZhbHVlczogRmxvYXQzMkFycmF5O1xufVxuXG4vKipcbiAqIEEgc3BhdGlhbC1vbWljcyBkYXRhc2V0OiBldmVyeXRoaW5nIGNoZWFwIGVub3VnaCB0byBob2xkIHJlc2lkZW50LiBDb2x1bW4gYW5kXG4gKiBmZWF0dXJlICp2YWx1ZXMqLCBhbmQgcG9seWdvbiAqZ2VvbWV0cnkqLCBhcmUgZmV0Y2hlZCB0aHJvdWdoXG4gKiB7QGxpbmsgU3BhdGlhbERhdGFQb3J0fSBhcyB0aGV5IGFyZSBkaXNwbGF5ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbERhdGFzZXQge1xuICAvKiogU3RhYmxlIGlkIOKAlCB0aGUga2V5IHRoZSBwb3J0J3MgbGF6eSBhY2Nlc3NvcnMgYXJlIHNjb3BlZCB0by4gKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIG1lbnVzLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIG9ic2VydmF0aW9uczogU3BhdGlhbE9ic2VydmF0aW9ucztcbiAgLyoqIEV2ZXJ5IGNvbHVtbiBhdmFpbGFibGUsIHdoZXRoZXIgb3Igbm90IGl0cyB2YWx1ZXMgYXJlIGxvYWRlZC4gKi9cbiAgY29sdW1uczogU3BhdGlhbENvbHVtbk1ldGFbXTtcbiAgZmVhdHVyZXM/OiBTcGF0aWFsRmVhdHVyZU1ldGE7XG4gIHBvbHlnb25zPzogU3BhdGlhbFBvbHlnb25zTWV0YTtcbiAgaW1hZ2VSZWY/OiBTcGF0aWFsSW1hZ2VSZWY7XG4gIC8qKiBQcmVzZW5jZSArIGdlb21ldHJ5IG9mIGEgcmVmZXJlbmNlIHZvbHVtZSB0aGUgb2JzZXJ2YXRpb25zIHNpdCBpbnNpZGUuICovXG4gIHZvbHVtZT86IFNwYXRpYWxWb2x1bWVNZXRhO1xuICAvKiogRW1iZWRkaW5ncyBhdmFpbGFibGUgZm9yIHRoZXNlIG9ic2VydmF0aW9ucywgd2hvc2UgY29vcmRpbmF0ZXMgYXJlIGZldGNoZWQgb24gZGVtYW5kLiAqL1xuICBlbWJlZGRpbmdzPzogU3BhdGlhbEVtYmVkZGluZ01ldGFbXTtcbiAgLyoqIExldmVsLW9mLWRldGFpbCBib3VuZGFyaWVzLCBmZXRjaGVkIHBlciB0aWxlIOKAlCBzZWUge0BsaW5rIFNwYXRpYWxQb2x5Z29uVGlsZXNNZXRhfS4gKi9cbiAgcG9seWdvblRpbGVzPzogU3BhdGlhbFBvbHlnb25UaWxlc01ldGE7XG4gIC8qKiBMZXZlbC1vZi1kZXRhaWwgdHJhbnNjcmlwdHMsIGZldGNoZWQgcGVyIHRpbGUg4oCUIHNlZSB7QGxpbmsgU3BhdGlhbFRyYW5zY3JpcHRUaWxlc01ldGF9LiAqL1xuICB0cmFuc2NyaXB0VGlsZXM/OiBTcGF0aWFsVHJhbnNjcmlwdFRpbGVzTWV0YTtcbiAgLyoqIEEgc2VydmVkIHBlci1nZW5lIHRyYW5zY3JpcHQgZGVuc2l0eSByYXN0ZXIuICovXG4gIGRlbnNpdHk/OiBTcGF0aWFsRGVuc2l0eU1ldGE7XG4gIC8qKiBUaGUgYWxsLWdlbmUgdHJhbnNjcmlwdCBncm91cGluZyBweXJhbWlkLCB3aGVuIGl0IGhhcyBiZWVuIGJ1aWx0LiAqL1xuICB0cmFuc2NyaXB0Qmlucz86IFNwYXRpYWxUcmFuc2NyaXB0Qmluc01ldGE7XG4gIC8qKiBQZXItZ2VuZSBsZXZlbHMgb2YgdGhlIHRyYW5zY3JpcHQgcHlyYW1pZCAoc2FtZSBiaW5zKTogYSBnZW5lIHNlbGVjdGlvbiBhdCBhbnkgem9vbS4gKi9cbiAgdHJhbnNjcmlwdEdlbmVCaW5zPzogU3BhdGlhbFRyYW5zY3JpcHRHZW5lQmluc01ldGE7XG4gIC8qKiBQcmVzZW50IHdoaWxlIHRoZSBzZXJ2ZXIgaXMgc3RpbGwgYnVpbGRpbmcge0BsaW5rIHRyYW5zY3JpcHRCaW5zfS4gKi9cbiAgdHJhbnNjcmlwdEJpbnNTdGF0dXM/OiBTcGF0aWFsVHJhbnNjcmlwdEJpbnNTdGF0dXM7XG4gIC8qKlxuICAgKiBNaWNyb25zIHBlciBvYnNlcnZhdGlvbiBjb29yZGluYXRlIHVuaXQg4oCUIHdoYXQgbWFrZXMgYSBzY2FsZSBiYXIgcG9zc2libGUuXG4gICAqXG4gICAqIFRoZSAyRCBwYXRoIGdldHMgdGhpcyBmcm9tIGBpbWFnZVJlZi5tcHBYYCwgYmVjYXVzZSB0aGVyZSB0aGUgY29vcmRpbmF0ZXMgYXJlXG4gICAqIGltYWdlIHBpeGVscy4gQSAzRCBjbG91ZCBoYXMgbm8gaW1hZ2UsIHNvIGl0IGhhcyB0byBzYXkgZm9yIGl0c2VsZjogYDFgIG1lYW5zXG4gICAqIHRoZSBjb29yZGluYXRlcyBhcmUgYWxyZWFkeSBtaWNyb25zLlxuICAgKlxuICAgKiBBYnNlbnQgbWVhbnMgdGhlIHVuaXQgaXMgVU5LTk9XTiwgYW5kIGEgcmVuZGVyZXIgbXVzdCB0aGVuIGRyYXcgbm8gc2NhbGUgYmFyXG4gICAqIHJhdGhlciB0aGFuIGFzc3VtZSBvbmUuIEEgYmFyIGxhYmVsbGVkIGluIG1pY3JvbnMgb3ZlciBwaXhlbC1zcGFjZVxuICAgKiBjb29yZGluYXRlcyBpcyB3b3JzZSB0aGFuIG5vIGJhcjogaXQgbG9va3MgbGlrZSBhIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgbWljcm9uc1BlclVuaXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQSAzRCBzY2FsYXIgcmVmZXJlbmNlIHZvbHVtZSByZWdpc3RlcmVkIHRvIHRoZSBvYnNlcnZhdGlvbiBjb29yZGluYXRlcyDigJQgdGhlXG4gKiBhbmF0b21pY2FsIGJhY2tkcm9wIGZvciBhIHBvaW50IGNsb3VkIChhbiBhdGxhcyB0ZW1wbGF0ZSwgb3IgYW4gaW1hZ2Ugei1zdGFjaykuXG4gKlxuICogR2VvbWV0cnkgb25seTsgdGhlIHZveGVscyBhcmUgZmV0Y2hlZCB0aHJvdWdoXG4gKiB7QGxpbmsgU3BhdGlhbERhdGFQb3J0LmdldFZvbHVtZX0gd2hlbiBzb21ldGhpbmcgaXMgZ29pbmcgdG8gZHJhdyB0aGVtLiBBIGNsb3VkXG4gKiB3aXRob3V0IG9uZSBzdGlsbCByZW5kZXJzLCBqdXN0IGluIGVtcHR5IHNwYWNlLlxuICpcbiAqIFRoZSBvYnNlcnZhdGlvbnMnIGNvb3JkaW5hdGUgZnJhbWUgbXVzdCBiZSB0aGUgdm9sdW1lJ3Mgb3duOiB2b3hlbCBgKGksIGosIGspYFxuICogY292ZXJzIGBbaSAqIHZveGVsU2l6ZVswXSwgKGkgKyAxKSAqIHZveGVsU2l6ZVswXSlgIG9uIHgsIGFuZCBzbyBvbi4gVGhhdCBtZWFuc1xuICogdGhlIHZvbHVtZSdzIG5lYXIgY29ybmVyIHNpdHMgYXQgdGhlIGNvb3JkaW5hdGUgb3JpZ2luLCBzbyBhIHJlbmRlcmVyIGNhbiBwbGFjZVxuICogdGhlIHR3byB0b2dldGhlciBrbm93aW5nIG5vdGhpbmcgZWxzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVm9sdW1lTWV0YSB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBkZXB0aDogbnVtYmVyO1xuICAvKiogV29ybGQgc2l6ZSBvZiBvbmUgdm94ZWwgcGVyIGF4aXMsIGluIHRoZSBvYnNlcnZhdGlvbnMnIHVuaXRzLiAqL1xuICB2b3hlbFNpemU6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbn1cblxuLyoqXG4gKiBBIHNlbGVjdGlvbiBvdmVyIGEgZGF0YXNldCdzIE4gb2JzZXJ2YXRpb25zOiBgbWFza1tpXSA9PT0gMWAgd2hlbiBvYnNlcnZhdGlvbiBgaWAgaXNcbiAqIHNlbGVjdGVkLCBhbmQgYGNvdW50YCB0aGUgbnVtYmVyIHNlbGVjdGVkLiBQdXJlIGRhdGEsIHNvIGl0IGxpdmVzIHdpdGggdGhlIGRhdGFzZXRcbiAqIGNvbnRyYWN0OyB0aGUgc2VsZWN0aW9uIGxvZ2ljIHRoYXQgYnVpbGRzIG9uZSBpcyBpbiBgc3BhdGlhbC9zcGF0aWFsLXNlbGVjdGlvbi50c2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFNlbGVjdGlvbk1hc2sge1xuICBtYXNrOiBVaW50OEFycmF5O1xuICBjb3VudDogbnVtYmVyO1xufVxuXG4vKiogTG9vayBhIGNvbHVtbidzIGRlc2NyaXB0b3IgdXAgYnkgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29sdW1uTWV0YShkYXRhc2V0OiBTcGF0aWFsRGF0YXNldCwgbmFtZTogc3RyaW5nKTogU3BhdGlhbENvbHVtbk1ldGEgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YXNldC5jb2x1bW5zLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gbmFtZSk7XG59XG4iXX0=
|