@kepler.gl/components 3.3.0-alpha.6 → 3.3.0-alpha.8
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/dist/cjs/common/data-table/cell-size.js +40 -23
- package/dist/cjs/common/data-table/column-statistics-categoric.js +40 -0
- package/dist/cjs/common/data-table/column-statistics-components.js +65 -0
- package/dist/cjs/common/data-table/column-statistics-numeric.js +87 -0
- package/dist/cjs/common/data-table/column-statistics-time.js +69 -0
- package/dist/cjs/common/data-table/grid.js +2 -2
- package/dist/cjs/common/data-table/header-cell.js +123 -44
- package/dist/cjs/common/data-table/index.js +104 -31
- package/dist/cjs/common/file-uploader/file-upload.js +250 -40
- package/dist/cjs/common/histogram-plot.js +1 -1
- package/dist/cjs/common/icons/circle.js +54 -0
- package/dist/cjs/common/icons/{arrow-down-solid.js → draw-point.js} +21 -11
- package/dist/cjs/common/icons/index.js +22 -1
- package/dist/cjs/common/icons/line-string.js +60 -0
- package/dist/cjs/common/item-selector/item-selector.js +2 -2
- package/dist/cjs/common/portaled.js +3 -3
- package/dist/cjs/common/time-range-slider.js +2 -2
- package/dist/cjs/common/timeline-slider.js +2 -2
- package/dist/cjs/common/toolbar-item.js +24 -3
- package/dist/cjs/editor/editor.js +27 -9
- package/dist/cjs/editor/feature-action-panel.js +34 -12
- package/dist/cjs/editor/feature-properties-editor.js +215 -0
- package/dist/cjs/editor/filter-feature-badges.js +92 -0
- package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/cjs/filters/time-widget.js +2 -2
- package/dist/cjs/index.js +33 -1
- package/dist/cjs/kepler-gl.js +20 -3
- package/dist/cjs/map/layer-hover-info.js +2 -2
- package/dist/cjs/map/map-control-toolbar.js +2 -2
- package/dist/cjs/map/map-control.js +14 -8
- package/dist/cjs/map/map-draw-panel.js +74 -15
- package/dist/cjs/map/theme-toggle-button.js +64 -0
- package/dist/cjs/map-container.js +17 -6
- package/dist/cjs/map-view-state-context.js +3 -3
- package/dist/cjs/modal-container.js +3 -2
- package/dist/cjs/modals/cloud-components/cloud-item.js +55 -7
- package/dist/cjs/modals/cloud-components/cloud-item.spec.js +75 -3
- package/dist/cjs/modals/cloud-components/cloud-maps.js +2 -1
- package/dist/cjs/modals/cloud-components/cloud-storage-disclaimer.js +24 -0
- package/dist/cjs/modals/cloud-tile.js +82 -39
- package/dist/cjs/modals/data-table-modal.js +37 -25
- package/dist/cjs/modals/export-video-modal.js +28 -1
- package/dist/cjs/modals/export-video-modal.spec.js +56 -10
- package/dist/cjs/modals/globe-export-video-container.js +19 -3
- package/dist/cjs/modals/globe-export-video-preview.js +25 -7
- package/dist/cjs/modals/hubble-utils.js +8 -3
- package/dist/cjs/modals/image-modal-container.js +2 -2
- package/dist/cjs/modals/load-data-modal.js +3 -3
- package/dist/cjs/modals/load-storage-map.js +9 -6
- package/dist/cjs/modals/save-map-modal.js +4 -3
- package/dist/cjs/modals/share-map-modal.js +5 -4
- package/dist/cjs/modals/swipe-composite-utils.js +9 -1
- package/dist/cjs/modals/swipe-composite-utils.spec.js +69 -0
- package/dist/cjs/modals/swipe-export-video-preview.js +9 -5
- package/dist/cjs/plot-container.js +12 -5
- package/dist/cjs/side-panel/common/dataset-info.js +2 -2
- package/dist/cjs/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/cjs/side-panel/layer-manager.js +11 -3
- package/dist/cjs/side-panel/layer-panel/custom-palette.js +2 -2
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +11 -3
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +74 -31
- package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +90 -25
- package/dist/common/data-table/column-statistics-categoric.d.ts +9 -0
- package/dist/common/data-table/column-statistics-components.d.ts +31 -0
- package/dist/common/data-table/column-statistics-numeric.d.ts +18 -0
- package/dist/common/data-table/column-statistics-time.d.ts +19 -0
- package/dist/common/data-table/header-cell.d.ts +7 -5
- package/dist/common/data-table/index.d.ts +7 -24
- package/dist/common/histogram-plot.d.ts +24 -1
- package/dist/common/icons/{arrow-down-solid.d.ts → circle.d.ts} +2 -1
- package/dist/common/icons/draw-point.d.ts +10 -0
- package/dist/common/icons/index.d.ts +3 -0
- package/dist/common/icons/line-string.d.ts +10 -0
- package/dist/common/toolbar-item.d.ts +2 -0
- package/dist/editor/editor.d.ts +1 -0
- package/dist/editor/feature-action-panel.d.ts +1 -0
- package/dist/editor/feature-properties-editor.d.ts +8 -0
- package/dist/editor/filter-feature-badges.d.ts +12 -0
- package/dist/esm/common/data-table/cell-size.js +40 -23
- package/dist/esm/common/data-table/column-statistics-categoric.js +33 -0
- package/dist/esm/common/data-table/column-statistics-components.js +59 -0
- package/dist/esm/common/data-table/column-statistics-numeric.js +78 -0
- package/dist/esm/common/data-table/column-statistics-time.js +60 -0
- package/dist/esm/common/data-table/grid.js +2 -2
- package/dist/esm/common/data-table/header-cell.js +125 -46
- package/dist/esm/common/data-table/index.js +104 -31
- package/dist/esm/common/file-uploader/file-upload.js +251 -41
- package/dist/esm/common/histogram-plot.js +1 -1
- package/dist/esm/common/icons/circle.js +48 -0
- package/dist/esm/common/icons/draw-point.js +44 -0
- package/dist/esm/common/icons/index.js +4 -1
- package/dist/esm/common/icons/line-string.js +54 -0
- package/dist/esm/common/item-selector/item-selector.js +2 -2
- package/dist/esm/common/portaled.js +3 -3
- package/dist/esm/common/time-range-slider.js +2 -2
- package/dist/esm/common/timeline-slider.js +2 -2
- package/dist/esm/common/toolbar-item.js +24 -3
- package/dist/esm/editor/editor.js +27 -9
- package/dist/esm/editor/feature-action-panel.js +37 -15
- package/dist/esm/editor/feature-properties-editor.js +208 -0
- package/dist/esm/editor/filter-feature-badges.js +85 -0
- package/dist/esm/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/esm/filters/time-widget.js +2 -2
- package/dist/esm/index.js +5 -1
- package/dist/esm/kepler-gl.js +20 -3
- package/dist/esm/map/layer-hover-info.js +2 -2
- package/dist/esm/map/map-control-toolbar.js +2 -2
- package/dist/esm/map/map-control.js +14 -8
- package/dist/esm/map/map-draw-panel.js +72 -11
- package/dist/esm/map/theme-toggle-button.js +55 -0
- package/dist/esm/map-container.js +17 -6
- package/dist/esm/map-view-state-context.js +3 -3
- package/dist/esm/modal-container.js +3 -2
- package/dist/esm/modals/cloud-components/cloud-item.js +53 -7
- package/dist/esm/modals/cloud-components/cloud-item.spec.js +76 -4
- package/dist/esm/modals/cloud-components/cloud-maps.js +2 -1
- package/dist/esm/modals/cloud-components/cloud-storage-disclaimer.js +19 -0
- package/dist/esm/modals/cloud-tile.js +82 -39
- package/dist/esm/modals/data-table-modal.js +38 -26
- package/dist/esm/modals/export-video-modal.js +29 -2
- package/dist/esm/modals/export-video-modal.spec.js +56 -10
- package/dist/esm/modals/globe-export-video-container.js +20 -4
- package/dist/esm/modals/globe-export-video-preview.js +26 -8
- package/dist/esm/modals/hubble-utils.js +8 -3
- package/dist/esm/modals/image-modal-container.js +2 -2
- package/dist/esm/modals/load-data-modal.js +3 -3
- package/dist/esm/modals/load-storage-map.js +8 -3
- package/dist/esm/modals/save-map-modal.js +4 -3
- package/dist/esm/modals/share-map-modal.js +5 -4
- package/dist/esm/modals/swipe-composite-utils.js +9 -1
- package/dist/esm/modals/swipe-composite-utils.spec.js +67 -0
- package/dist/esm/modals/swipe-export-video-preview.js +8 -4
- package/dist/esm/plot-container.js +12 -5
- package/dist/esm/side-panel/common/dataset-info.js +2 -2
- package/dist/esm/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/esm/side-panel/layer-manager.js +11 -3
- package/dist/esm/side-panel/layer-panel/custom-palette.js +2 -2
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +11 -3
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +74 -31
- package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +90 -25
- package/dist/index.d.ts +8 -0
- package/dist/kepler-gl.d.ts +3 -0
- package/dist/map/map-control.d.ts +6 -2
- package/dist/map/map-draw-panel.d.ts +1 -0
- package/dist/map/theme-toggle-button.d.ts +18 -0
- package/dist/map-container.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-item.d.ts +2 -1
- package/dist/modals/cloud-components/cloud-storage-disclaimer.d.ts +2 -0
- package/dist/modals/data-table-modal.d.ts +1 -0
- package/dist/modals/globe-export-video-container.d.ts +2 -0
- package/dist/modals/globe-export-video-preview.d.ts +3 -0
- package/dist/modals/hubble-utils.d.ts +2 -1
- package/dist/modals/swipe-composite-utils.d.ts +1 -1
- package/dist/modals/swipe-composite-utils.spec.d.ts +1 -0
- package/package.json +20 -21
- package/dist/cjs/modals/cloud-components/provider-loading.js +0 -20
- package/dist/cjs/modals/storage-map-viewer.js +0 -98
- package/dist/cjs/side-panel/cloud-storage-dropdown.js +0 -40
- package/dist/esm/common/icons/arrow-down-solid.js +0 -34
- package/dist/esm/modals/cloud-components/provider-loading.js +0 -15
- package/dist/esm/modals/storage-map-viewer.js +0 -93
- package/dist/esm/side-panel/cloud-storage-dropdown.js +0 -33
- package/dist/modals/cloud-components/provider-loading.d.ts +0 -2
- package/dist/modals/storage-map-viewer.d.ts +0 -21
- package/dist/side-panel/cloud-storage-dropdown.d.ts +0 -6
|
@@ -9,8 +9,8 @@ exports.MapViewStateContextProvider = exports.MapViewStateContext = void 0;
|
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _isEqual = _interopRequireDefault(require("
|
|
13
|
-
var _pick = _interopRequireDefault(require("
|
|
12
|
+
var _isEqual = _interopRequireDefault(require("es-toolkit/compat/isEqual"));
|
|
13
|
+
var _pick = _interopRequireDefault(require("es-toolkit/compat/pick"));
|
|
14
14
|
var _reducers = require("@kepler.gl/reducers");
|
|
15
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
16
|
// SPDX-License-Identifier: MIT
|
|
@@ -95,4 +95,4 @@ var MapViewStateContextProvider = exports.MapViewStateContextProvider = function
|
|
|
95
95
|
value: value
|
|
96
96
|
}, children);
|
|
97
97
|
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfaXNFcXVhbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcGljayIsIl9yZWR1Y2VycyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiTWFwVmlld1N0YXRlQ29udGV4dCIsImV4cG9ydHMiLCJjcmVhdGVDb250ZXh0IiwiZ2V0SW50ZXJuYWxWaWV3U3RhdGUiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInpvb20iLCJzZXRJbnRlcm5hbFZpZXdTdGF0ZSIsIk1hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlciIsIl9yZWYiLCJtYXBTdGF0ZSIsImNoaWxkcmVuIiwiX3JlZjIiLCJpc1NwbGl0IiwiaXNWaWV3cG9ydFN5bmNlZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInZpZXdTdGF0ZXMiLCJzZXRWaWV3U3RhdGVzIiwidXNlRWZmZWN0IiwicHJpbWFyeVN0YXRlIiwicHJvcHMiLCJrZXlzIiwiZmlsdGVyIiwia2V5Iiwic3RhcnRzV2l0aCIsImhhc0NoYW5nZWQiLCJhIiwiYiIsImlzRXF1YWwiLCJwaWNrIiwiX21hcFN0YXRlJHNwbGl0TWFwVmllIiwic3BsaXRNYXBWaWV3cG9ydHMiLCJzb21lIiwicyIsInBpY2tWaWV3cG9ydFByb3BzRnJvbU1hcFN0YXRlIiwidmFsdWUiLCJfdmlld1N0YXRlcyRpbmRleCIsImluZGV4IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwibmV3Vmlld1N0YXRlIiwicHJldlZpZXdTdGF0ZXMiLCJuZXh0Vmlld1N0YXRlcyIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwLXZpZXctc3RhdGUtY29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUVmZmVjdCwgY3JlYXRlQ29udGV4dH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnZXMtdG9vbGtpdC9jb21wYXQvaXNFcXVhbCc7XG5pbXBvcnQgcGljayBmcm9tICdlcy10b29sa2l0L2NvbXBhdC9waWNrJztcbnR5cGUgTWFwVmlld1N0YXRlID0ge1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xuICBiZWFyaW5nPzogbnVtYmVyO1xuICBwaXRjaD86IG51bWJlcjtcbiAgbWF4UGl0Y2g/OiBudW1iZXI7XG4gIG1pblpvb20/OiBudW1iZXI7XG4gIG1heFpvb20/OiBudW1iZXI7XG59O1xuaW1wb3J0IHtwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5cbmltcG9ydCB7TWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBNYXBWaWV3U3RhdGVDb250ZXh0VHlwZSA9IHtcbiAgZ2V0SW50ZXJuYWxWaWV3U3RhdGU6IChpbmRleD86IG51bWJlcikgPT4gTWFwVmlld1N0YXRlO1xuICBzZXRJbnRlcm5hbFZpZXdTdGF0ZTogKHZpZXdTdGF0ZT86IE1hcFZpZXdTdGF0ZSwgaW5kZXg/OiBudW1iZXIpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTWFwVmlld1N0YXRlQ29udGV4dDogUmVhY3QuQ29udGV4dDxNYXBWaWV3U3RhdGVDb250ZXh0VHlwZT4gPSBjcmVhdGVDb250ZXh0KHtcbiAgZ2V0SW50ZXJuYWxWaWV3U3RhdGU6ICgpID0+ICh7bGF0aXR1ZGU6IDAsIGxvbmdpdHVkZTogMCwgem9vbTogMH0pLFxuICBzZXRJbnRlcm5hbFZpZXdTdGF0ZTogKCkgPT4ge1xuICAgIHJldHVybjtcbiAgfVxufSk7XG5cbi8qKlxuICogVGhpcyBjb250ZXh0IHByb3ZpZGVyIGlzIHVzZWQgdG8gbG9jYWxpemUgdGhlIG1hcCB2aWV3IHN0YXRlIHNvXG4gKiB0aGF0IGNoYW5nZXMgdG8gdGhlIG1hcCB2aWV3IHN0YXRlIGRvIG5vdCBhZmZlY3QgdGhlIHJlc3Qgb2YgdGhlIGFwcCxcbiAqIG1haW5seSB0byBwcmV2ZW50IGlzc3VlcyB3ZSBleHBlcmllbmNlZCB3aXRoIGJhc2VtYXAvZGVjayB2aWV3cG9ydCBzeW5jaW5nLlxuICovXG5cbmV4cG9ydCBjb25zdCBNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIgPSAoe1xuICBtYXBTdGF0ZSxcbiAgY2hpbGRyZW5cbn06IHtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufSkgPT4ge1xuICBjb25zdCB7aXNTcGxpdCwgaXNWaWV3cG9ydFN5bmNlZH0gPSBtYXBTdGF0ZSB8fCB7fTtcblxuICAvLyBTdG9yZSBsb2NhbGx5IG1hcCB2aWV3IHN0YXRlcyBieSBtYXBJbmRleFxuICBjb25zdCBbdmlld1N0YXRlcywgc2V0Vmlld1N0YXRlc10gPSB1c2VTdGF0ZShbbWFwU3RhdGVdKTtcblxuICAvLyBEZXRlY3QgYW5kIGFwcGx5IG91dHNpZGUgdmlld3BvcnQgY2hhbmdlc1xuICAvLyAoZS5nLiBmcm9tIGdlb2NvZGVyIG9yIHdoZW4gc3dpdGNoaW5nIHRvIDNkIG1vZGUpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBTdGF0ZSkgcmV0dXJuO1xuICAgIGNvbnN0IHByaW1hcnlTdGF0ZSA9IHZpZXdTdGF0ZXNbMF07XG4gICAgaWYgKHByaW1hcnlTdGF0ZSA9PT0gbWFwU3RhdGUpIHJldHVybjtcbiAgICBjb25zdCBwcm9wcyA9IE9iamVjdC5rZXlzKHByaW1hcnlTdGF0ZSkuZmlsdGVyKGtleSA9PiAha2V5LnN0YXJ0c1dpdGgoJ3RyYW5zaXRpb24nKSk7XG4gICAgY29uc3QgaGFzQ2hhbmdlZCA9IChhLCBiKSA9PiAhaXNFcXVhbChwaWNrKGEsIHByb3BzKSwgcGljayhiLCBwcm9wcykpO1xuICAgIGlmIChpc1NwbGl0ICYmICFpc1ZpZXdwb3J0U3luY2VkKSB7XG4gICAgICBpZiAobWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHM/LnNvbWUoKHMsIGkpID0+IGhhc0NoYW5nZWQocywgdmlld1N0YXRlc1tpXSkpKSB7XG4gICAgICAgIHNldFZpZXdTdGF0ZXMobWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgYXMgTWFwU3RhdGVbXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChoYXNDaGFuZ2VkKHByaW1hcnlTdGF0ZSwgbWFwU3RhdGUpKSB7XG4gICAgICBzZXRWaWV3U3RhdGVzKFtwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZShtYXBTdGF0ZSldIGFzIE1hcFN0YXRlW10pO1xuICAgIH1cbiAgICAvLyBPbmx5IHVwZGF0ZSBpbnRlcm5hbFZpZXdTdGF0ZSB3aGVuIHZpZXdTdGF0ZSBjaGFuZ2VzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbbWFwU3RhdGVdKTtcblxuICBjb25zdCB2YWx1ZSA9IHtcbiAgICBnZXRJbnRlcm5hbFZpZXdTdGF0ZTogKGluZGV4ID0gMCkgPT4gdmlld1N0YXRlc1tpbmRleF0gPz8gdmlld1N0YXRlc1swXSxcbiAgICBzZXRJbnRlcm5hbFZpZXdTdGF0ZTogKG5ld1ZpZXdTdGF0ZSwgaW5kZXggPSAwKSA9PiB7XG4gICAgICBzZXRWaWV3U3RhdGVzKHByZXZWaWV3U3RhdGVzID0+IHtcbiAgICAgICAgaWYgKGlzU3BsaXQgJiYgIWlzVmlld3BvcnRTeW5jZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXh0Vmlld1N0YXRlcyA9IFsuLi5wcmV2Vmlld1N0YXRlc107XG4gICAgICAgICAgbmV4dFZpZXdTdGF0ZXNbaW5kZXhdID0gbmV3Vmlld1N0YXRlIGFzIE1hcFN0YXRlO1xuICAgICAgICAgIHJldHVybiBuZXh0Vmlld1N0YXRlcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW25ld1ZpZXdTdGF0ZV0gYXMgTWFwU3RhdGVbXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBhcyBNYXBWaWV3U3RhdGVDb250ZXh0VHlwZTtcbiAgcmV0dXJuIDxNYXBWaWV3U3RhdGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvTWFwVmlld1N0YXRlQ29udGV4dC5Qcm92aWRlcj47XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBV0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQWtFLFNBQUFELHdCQUFBTSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBUix1QkFBQSxZQUFBQSx3QkFBQU0sQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixD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QUNDLENBQUMsRUFBRWpELENBQUM7UUFBQSxPQUFLeUMsVUFBVSxDQUFDUSxDQUFDLEVBQUVqQixVQUFVLENBQUNoQyxDQUFDLENBQUMsQ0FBQztNQUFBLEVBQUMsRUFBRTtRQUM1RWlDLGFBQWEsQ0FBQ1YsUUFBUSxDQUFDd0IsaUJBQStCLENBQUM7TUFDekQ7SUFDRixDQUFDLE1BQU0sSUFBSU4sVUFBVSxDQUFDTixZQUFZLEVBQUVaLFFBQVEsQ0FBQyxFQUFFO01BQzdDVSxhQUFhLENBQUMsQ0FBQyxJQUFBaUIsdUNBQTZCLEVBQUMzQixRQUFRLENBQUMsQ0FBZSxDQUFDO0lBQ3hFO0lBQ0E7SUFDQTtFQUNGLENBQUMsRUFBRSxDQUFDQSxRQUFRLENBQUMsQ0FBQztFQUVkLElBQU00QixLQUFLLEdBQUc7SUFDWm5DLG9CQUFvQixFQUFFLFNBQXRCQSxvQkFBb0JBLENBQUE7TUFBQSxJQUFBb0MsaUJBQUE7TUFBQSxJQUFHQyxLQUFLLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUM7TUFBQSxRQUFBRixpQkFBQSxHQUFLcEIsVUFBVSxDQUFDcUIsS0FBSyxDQUFDLGNBQUFELGlCQUFBLGNBQUFBLGlCQUFBLEdBQUlwQixVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQUE7SUFDdkVaLG9CQUFvQixFQUFFLFNBQXRCQSxvQkFBb0JBLENBQUdxQyxZQUFZLEVBQWdCO01BQUEsSUFBZEosS0FBSyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO01BQzVDckIsYUFBYSxDQUFDLFVBQUF5QixjQUFjLEVBQUk7UUFDOUIsSUFBSWhDLE9BQU8sSUFBSSxDQUFDQyxnQkFBZ0IsRUFBRTtVQUNoQyxJQUFNZ0MsY0FBYyxPQUFBQyxtQkFBQSxhQUFPRixjQUFjLENBQUM7VUFDMUNDLGNBQWMsQ0FBQ04sS0FBSyxDQUFDLEdBQUdJLFlBQXdCO1VBQ2hELE9BQU9FLGNBQWM7UUFDdkI7UUFDQSxPQUFPLENBQUNGLFlBQVksQ0FBQztNQUN2QixDQUFDLENBQUM7SUFDSjtFQUNGLENBQTRCO0VBQzVCLG9CQUFPdkUsTUFBQSxZQUFBMkUsYUFBQSxDQUFDaEQsbUJBQW1CLENBQUNpRCxRQUFRO0lBQUNYLEtBQUssRUFBRUE7RUFBTSxHQUFFM0IsUUFBdUMsQ0FBQztBQUM5RixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -16,7 +16,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
16
16
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
17
17
|
var _react = _interopRequireWildcard(require("react"));
|
|
18
18
|
var _styledComponents = require("styled-components");
|
|
19
|
-
var _get = _interopRequireDefault(require("
|
|
19
|
+
var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
|
|
20
20
|
var _document = _interopRequireDefault(require("global/document"));
|
|
21
21
|
var _constants = require("@kepler.gl/constants");
|
|
22
22
|
var _reducers = require("@kepler.gl/reducers");
|
|
@@ -225,6 +225,7 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
225
225
|
pinTableColumn: visStateActions.pinTableColumn,
|
|
226
226
|
copyTableColumn: visStateActions.copyTableColumn,
|
|
227
227
|
setColumnDisplayFormat: visStateActions.setColumnDisplayFormat,
|
|
228
|
+
loadColumnStats: visStateActions.loadColumnStats,
|
|
228
229
|
uiStateActions: uiStateActions,
|
|
229
230
|
uiState: uiState
|
|
230
231
|
});
|
|
@@ -453,4 +454,4 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
453
454
|
}(_react.Component);
|
|
454
455
|
return ModalContainer;
|
|
455
456
|
}
|
|
456
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9nZXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RvY3VtZW50IiwiX2NvbnN0YW50cyIsIl9yZWR1Y2VycyIsIl91dGlscyIsIl9tb2RhbERpYWxvZyIsIl9kZWxldGVEYXRhTW9kYWwiLCJfb3ZlcndyaXRlTWFwTW9kYWwiLCJfZGF0YVRhYmxlTW9kYWwiLCJfbG9hZERhdGFNb2RhbCIsIl9leHBvcnRJbWFnZU1vZGFsIiwiX2V4cG9ydERhdGFNb2RhbCIsIl9leHBvcnRNYXBNb2RhbCIsIl9leHBvcnRWaWRlb01vZGFsIiwiX2FkZE1hcFN0eWxlTW9kYWwiLCJfc2F2ZU1hcE1vZGFsIiwiX3NoYXJlTWFwTW9kYWwiLCJfc3R5bGVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl90ZW1wbGF0ZU9iamVjdDkiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJEYXRhVGFibGVNb2RhbFN0eWxlIiwiY3NzIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJtZWRpYSIsInBvcnRhYmxlIiwicGFsbSIsInNtYWxsTW9kYWxDc3MiLCJMb2FkRGF0YU1vZGFsU3R5bGUiLCJFeHBvcnRWaWRlb01vZGFsU3R5bGUiLCJEZWZhdWx0U3R5bGUiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSIsIk92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeSIsIkRhdGFUYWJsZU1vZGFsRmFjdG9yeSIsIkxvYWREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0TWFwTW9kYWxGYWN0b3J5IiwiRXhwb3J0VmlkZW9Nb2RhbEZhY3RvcnkiLCJBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeSIsIk1vZGFsRGlhbG9nRmFjdG9yeSIsIlNhdmVNYXBNb2RhbEZhY3RvcnkiLCJTaGFyZU1hcE1vZGFsRmFjdG9yeSIsIkRlbGV0ZURhdGFzZXRNb2RhbCIsIk92ZXJXcml0ZU1hcE1vZGFsIiwiRGF0YVRhYmxlTW9kYWwiLCJMb2FkRGF0YU1vZGFsIiwiRXhwb3J0SW1hZ2VNb2RhbCIsIkV4cG9ydERhdGFNb2RhbCIsIkV4cG9ydE1hcE1vZGFsIiwiRXhwb3J0VmlkZW9Nb2RhbCIsIkFkZE1hcFN0eWxlTW9kYWwiLCJNb2RhbERpYWxvZyIsIlNhdmVNYXBNb2RhbCIsIlNoYXJlTWFwTW9kYWwiLCJNb2RhbENvbnRhaW5lciIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbktleVVwIiwiZXZlbnQiLCJrZXlDb2RlIiwiS2V5RXZlbnQiLCJET01fVktfRVNDQVBFIiwiX2Nsb3NlTW9kYWwiLCJwcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidG9nZ2xlTW9kYWwiLCJrZXkiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJyZW1vdmVEYXRhc2V0IiwibWFwU3R5bGVBY3Rpb25zIiwiYWRkQ3VzdG9tTWFwU3R5bGUiLCJmaWxlTGlzdCIsImxvYWRGaWxlcyIsInRpbGVzZXQiLCJwcm9jZXNzZWRNZXRhZGF0YSIsInVwZGF0ZVZpc0RhdGEiLCJpbmZvIiwibGFiZWwiLCJuYW1lIiwidHlwZSIsImZvcm1hdCIsImRhdGEiLCJmaWVsZHMiLCJyb3dzIiwibWV0YWRhdGEiLCJzdXBwb3J0ZWRGaWx0ZXJUeXBlcyIsIkFMTF9GSUVMRF9UWVBFUyIsInJlYWwiLCJpbnRlZ2VyIiwiZGlzYWJsZURhdGFPcGVyYXRpb24iLCJhdXRvQ3JlYXRlTGF5ZXJzIiwiY2VudGVyTWFwIiwidWlTdGF0ZSIsImV4cG9ydEltYWdlIiwicHJvY2Vzc2luZyIsImFwcE5hbWUiLCJjbGVhbnVwRXhwb3J0SW1hZ2UiLCJleHBvcnREYXRhIiwiZXhwb3J0TWFwIiwiRVhQT1JUX01BUF9GT1JNQVRTIiwiSFRNTCIsImV4cG9ydEh0bWwiLCJleHBvcnRKc29uIiwiX3JlZiIsInByb3ZpZGVyIiwiaXNQdWJsaWMiLCJvdmVyd3JpdGUiLCJjbG9zZU1vZGFsIiwidG9TYXZlIiwicHJvdmlkZXJBY3Rpb25zIiwiZXhwb3J0RmlsZVRvQ2xvdWQiLCJtYXBEYXRhIiwib3B0aW9ucyIsIm1hcElkVG9PdmVyd3JpdGUiLCJwcm92aWRlclN0YXRlIiwic2F2ZWRNYXBJZCIsIm9uU3VjY2VzcyIsIm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MiLCJvbkVycm9yIiwib25FeHBvcnRUb0Nsb3VkRXJyb3IiLCJ1bmRlZmluZWQiLCJfZXhwb3J0RmlsZVRvQ2xvdWQiLCJfb25TYXZlTWFwIiwicmVzZXRQcm92aWRlclN0YXR1cyIsInBheWxvYWQiLCJsb2FkQ2xvdWRNYXAiLCJvbkxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcEVycm9yIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJ2YWx1ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlciIsIl90aGlzMiIsIl90aGlzJHByb3BzIiwiY29udGFpbmVyVyIsImNvbnRhaW5lckgiLCJtYXBTdHlsZSIsIm1hcFN0YXRlIiwidmlzU3RhdGUiLCJyb290Tm9kZSIsImN1cnJlbnRNb2RhbCIsImRhdGFzZXRLZXlUb1JlbW92ZSIsImRhdGFzZXRzIiwibGF5ZXJzIiwiZWRpdGluZ0RhdGFzZXQiLCJ0ZW1wbGF0ZSIsIm1vZGFsUHJvcHMiLCJpZCIsImNyZWF0ZUVsZW1lbnQiLCJEQVRBX1RBQkxFX0lEIiwid2lkdGgiLCJkYXRhSWQiLCJzaG93RGF0YXNldFRhYmxlIiwic29ydFRhYmxlQ29sdW1uIiwicGluVGFibGVDb2x1bW4iLCJjb3B5VGFibGVDb2x1bW4iLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0IiwiY3NzU3R5bGUiLCJERUxFVEVfREFUQV9JRCIsImRhdGFzZXQiLCJ0aXRsZSIsImZvb3RlciIsIm9uQ29uZmlybSIsIl9kZWxldGVEYXRhc2V0Iiwib25DYW5jZWwiLCJjb25maXJtQnV0dG9uIiwibmVnYXRpdmUiLCJsYXJnZSIsImNoaWxkcmVuIiwiQUREX0RBVEFfSUQiLCJfZXh0ZW5kczIiLCJvbkNsb3NlIiwib25GaWxlVXBsb2FkIiwiX29uRmlsZVVwbG9hZCIsIm9uVGlsZXNldEFkZGVkIiwiX29uVGlsZXNldEFkZGVkIiwib25Mb2FkQ2xvdWRNYXAiLCJfb25Mb2FkQ2xvdWRNYXAiLCJmaWxlTG9hZGluZyIsImZpbGVMb2FkaW5nUHJvZ3Jlc3MiLCJmaWxlRm9ybWF0TmFtZXMiLCJnZXRGaWxlRm9ybWF0TmFtZXMiLCJmaWxlRXh0ZW5zaW9ucyIsImdldEZpbGVFeHRlbnNpb25zIiwiRVhQT1JUX0lNQUdFX0lEIiwibWFwVyIsIm1hcEgiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsIl9vbkV4cG9ydEltYWdlIiwiZGlzYWJsZWQiLCJFWFBPUlRfREFUQV9JRCIsInN1cHBvcnRlZERhdGFUeXBlcyIsIkVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyIsImFwcGx5Q1BVRmlsdGVyIiwib25DaGFuZ2VFeHBvcnREYXRhVHlwZSIsInNldEV4cG9ydERhdGFUeXBlIiwib25DaGFuZ2VFeHBvcnRTZWxlY3RlZERhdGFzZXQiLCJzZXRFeHBvcnRTZWxlY3RlZERhdGFzZXQiLCJvbkNoYW5nZUV4cG9ydEZpbHRlcmVkIiwic2V0RXhwb3J0RmlsdGVyZWQiLCJfb25FeHBvcnREYXRhIiwiRVhQT1JUX01BUF9JRCIsImtlcGxlckdsQ29uZmlnIiwic2NoZW1hIiwiZ2V0Q29uZmlnVG9TYXZlIiwiY29uZmlnIiwib25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQiLCJzZXRFeHBvcnRNYXBGb3JtYXQiLCJvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlIiwic2V0RXhwb3J0SFRNTE1hcE1vZGUiLCJfb25FeHBvcnRNYXAiLCJFWFBPUlRfVklERU9fSUQiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsImV4cG9ydFZpZGVvIiwiQUREX01BUF9TVFlMRV9JRCIsImlucHV0U3R5bGUiLCJpbnB1dE1hcFN0eWxlIiwibG9hZEN1c3RvbU1hcFN0eWxlIiwiX29uQWRkQ3VzdG9tTWFwU3R5bGUiLCJlcnJvciIsInVybCIsIlNBVkVfTUFQX0lEIiwibWFwSW5mbyIsIm9uU2V0TWFwSW5mbyIsInNldE1hcEluZm8iLCJPVkVSV1JJVEVfTUFQX0lEIiwiX29uT3ZlcndyaXRlTWFwIiwiU0hBUkVfTUFQX0lEIiwib25FeHBvcnQiLCJfb25TaGFyZU1hcFVybCIsIl9vbkNsb3NlU2F2ZU1hcCIsInBhcmVudFNlbGVjdG9yIiwiaXNPcGVuIiwiQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGFsLWNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nzc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBkb2N1bWVudCBmcm9tICdnbG9iYWwvZG9jdW1lbnQnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgZXhwb3J0RGF0YSxcbiAgZ2V0RmlsZUZvcm1hdE5hbWVzLFxuICBnZXRGaWxlRXh0ZW5zaW9ucyxcbiAgTWFwU3R5bGUsXG4gIFByb3ZpZGVyU3RhdGVcbn0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge2V4cG9ydEh0bWwsIGV4cG9ydE1hcCwgZXhwb3J0SnNvbiwgZXhwb3J0SW1hZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQgTW9kYWxEaWFsb2dGYWN0b3J5IGZyb20gJy4vbW9kYWxzL21vZGFsLWRpYWxvZyc7XG5cbi8vIG1vZGFsc1xuaW1wb3J0IERlbGV0ZURhdGFzZXRNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZGVsZXRlLWRhdGEtbW9kYWwnO1xuaW1wb3J0IE92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9vdmVyd3JpdGUtbWFwLW1vZGFsJztcbmltcG9ydCBEYXRhVGFibGVNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZGF0YS10YWJsZS1tb2RhbCc7XG5pbXBvcnQgTG9hZERhdGFNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvbG9hZC1kYXRhLW1vZGFsJztcbmltcG9ydCBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtaW1hZ2UtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydERhdGFNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZXhwb3J0LWRhdGEtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydE1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1tYXAtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydFZpZGVvTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2V4cG9ydC12aWRlby1tb2RhbCc7XG5pbXBvcnQgQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvYWRkLW1hcC1zdHlsZS1tb2RhbCc7XG5pbXBvcnQgU2F2ZU1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9zYXZlLW1hcC1tb2RhbCc7XG5pbXBvcnQgU2hhcmVNYXBNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvc2hhcmUtbWFwLW1vZGFsJztcblxuLy8gQnJlYWtwb2ludHNcbmltcG9ydCB7bWVkaWF9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcblxuLy8gVGVtcGxhdGVcbmltcG9ydCB7XG4gIEVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyxcbiAgRVhQT1JUX01BUF9GT1JNQVRTLFxuICBLZXlFdmVudCxcbiAgQUREX0RBVEFfSUQsXG4gIERBVEFfVEFCTEVfSUQsXG4gIERFTEVURV9EQVRBX0lELFxuICBFWFBPUlRfREFUQV9JRCxcbiAgRVhQT1JUX0lNQUdFX0lELFxuICBFWFBPUlRfTUFQX0lELFxuICBFWFBPUlRfVklERU9fSUQsXG4gIEFERF9NQVBfU1RZTEVfSUQsXG4gIFNBVkVfTUFQX0lELFxuICBTSEFSRV9NQVBfSUQsXG4gIE9WRVJXUklURV9NQVBfSURcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQge01hcFN0YXRlLCBVaVN0YXRlLCBPblN1Y2Nlc3NDYWxsQmFjaywgT25FcnJvckNhbGxCYWNrfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtcbiAgVmlzU3RhdGVBY3Rpb25zLFxuICBVSVN0YXRlQWN0aW9ucyxcbiAgTWFwU3R5bGVBY3Rpb25zLFxuICBQcm92aWRlckFjdGlvbnNcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TW9kYWxEaWFsb2dQcm9wc30gZnJvbSAnLi9jb21tb24vbW9kYWwnO1xuaW1wb3J0IHtQcm92aWRlcn0gZnJvbSAnQGtlcGxlci5nbC9jbG91ZC1wcm92aWRlcnMnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcblxuY29uc3QgRGF0YVRhYmxlTW9kYWxTdHlsZSA9IGNzc2BcbiAgdG9wOiA3MHB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogOTB2dztcbiAgbWF4LXdpZHRoOiA5MHZ3O1xuXG4gICR7bWVkaWEucG9ydGFibGVgXG4gICAgcGFkZGluZzogMDtcbiAgYH0gJHttZWRpYS5wYWxtYFxuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIGB9O1xuYDtcbmNvbnN0IHNtYWxsTW9kYWxDc3MgPSBjc3NgXG4gIHdpZHRoOiA0MCU7XG4gIHBhZGRpbmc6IDQwcHggNDBweCAzMnB4IDQwcHg7XG5gO1xuXG5jb25zdCBMb2FkRGF0YU1vZGFsU3R5bGUgPSBjc3NgXG4gIHRvcDogNjBweDtcbmA7XG5cbmNvbnN0IEV4cG9ydFZpZGVvTW9kYWxTdHlsZSA9IGNzc2BcbiAgbWF4LXdpZHRoOiA5NjBweDtcbmA7XG5cbmNvbnN0IERlZmF1bHRTdHlsZSA9IGNzc2BcbiAgbWF4LXdpZHRoOiA5NjBweDtcbmA7XG5cbmV4cG9ydCB0eXBlIE1vZGFsQ29udGFpbmVyUHJvcHMgPSB7XG4gIGFwcE5hbWU6IHN0cmluZztcbiAgcm9vdE5vZGU6IFJlYWN0LlJlYWN0SW5zdGFuY2UgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb250YWluZXJXOiBudW1iZXI7XG4gIGNvbnRhaW5lckg6IG51bWJlcjtcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHN0cmluZztcbiAgbWFwYm94QXBpVXJsPzogc3RyaW5nO1xuICBtYXBTdGF0ZTogTWFwU3RhdGU7XG4gIG1hcFN0eWxlOiBNYXBTdHlsZTtcbiAgdWlTdGF0ZTogVWlTdGF0ZTtcbiAgdmlzU3RhdGU6IFZpc1N0YXRlO1xuICBwcm92aWRlclN0YXRlOiBQcm92aWRlclN0YXRlO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0eWxlQWN0aW9uczogdHlwZW9mIE1hcFN0eWxlQWN0aW9ucztcbiAgcHJvdmlkZXJBY3Rpb25zOiB0eXBlb2YgUHJvdmlkZXJBY3Rpb25zO1xuICBvblNhdmVUb1N0b3JhZ2U/OiAoKSA9PiB2b2lkO1xuICBjbG91ZFByb3ZpZGVyczogUHJvdmlkZXJbXTtcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uTG9hZENsb3VkTWFwRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIG9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG59O1xuXG5Nb2RhbENvbnRhaW5lckZhY3RvcnkuZGVwcyA9IFtcbiAgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSxcbiAgT3ZlcldyaXRlTWFwTW9kYWxGYWN0b3J5LFxuICBEYXRhVGFibGVNb2RhbEZhY3RvcnksXG4gIExvYWREYXRhTW9kYWxGYWN0b3J5LFxuICBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSxcbiAgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeSxcbiAgRXhwb3J0TWFwTW9kYWxGYWN0b3J5LFxuICBFeHBvcnRWaWRlb01vZGFsRmFjdG9yeSxcbiAgQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnksXG4gIE1vZGFsRGlhbG9nRmFjdG9yeSxcbiAgU2F2ZU1hcE1vZGFsRmFjdG9yeSxcbiAgU2hhcmVNYXBNb2RhbEZhY3Rvcnlcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1vZGFsQ29udGFpbmVyRmFjdG9yeShcbiAgRGVsZXRlRGF0YXNldE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5PixcbiAgT3ZlcldyaXRlTWFwTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIE92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeT4sXG4gIERhdGFUYWJsZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBEYXRhVGFibGVNb2RhbEZhY3Rvcnk+LFxuICBMb2FkRGF0YU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBMb2FkRGF0YU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydEltYWdlTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5PixcbiAgRXhwb3J0RGF0YU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnREYXRhTW9kYWxGYWN0b3J5PixcbiAgRXhwb3J0TWFwTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIEV4cG9ydE1hcE1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydFZpZGVvTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIEV4cG9ydFZpZGVvTW9kYWxGYWN0b3J5PixcbiAgQWRkTWFwU3R5bGVNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgQWRkTWFwU3R5bGVNb2RhbEZhY3Rvcnk+LFxuICBNb2RhbERpYWxvZzogUmV0dXJuVHlwZTx0eXBlb2YgTW9kYWxEaWFsb2dGYWN0b3J5PixcbiAgU2F2ZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBTYXZlTWFwTW9kYWxGYWN0b3J5PixcbiAgU2hhcmVNYXBNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgU2hhcmVNYXBNb2RhbEZhY3Rvcnk+XG4pOiBSZWFjdC5FbGVtZW50VHlwZTxNb2RhbENvbnRhaW5lclByb3BzPiB7XG4gIC8qKiBAYXVnbWVudHMgUmVhY3QuQ29tcG9uZW50PE1vZGFsQ29udGFpbmVyUHJvcHM+ICovXG4gIGNsYXNzIE1vZGFsQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50PE1vZGFsQ29udGFpbmVyUHJvcHM+IHtcbiAgICAvLyBUT0RPIC0gcmVtb3ZlIHdoZW4gcHJvcCB0eXBlcyBhcmUgZnVsbHkgZXhwb3J0ZWRcbiAgICBjb21wb25lbnREaWRNb3VudCA9ICgpID0+IHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fb25LZXlVcCk7XG4gICAgfTtcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fb25LZXlVcCk7XG4gICAgfVxuXG4gICAgX29uS2V5VXAgPSBldmVudCA9PiB7XG4gICAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICAgIGlmIChrZXlDb2RlID09PSBLZXlFdmVudC5ET01fVktfRVNDQVBFKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX2Nsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1vZGFsKG51bGwpO1xuICAgIH07XG5cbiAgICBfZGVsZXRlRGF0YXNldCA9IGtleSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZW1vdmVEYXRhc2V0KGtleSk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9vbkFkZEN1c3RvbU1hcFN0eWxlID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMuYWRkQ3VzdG9tTWFwU3R5bGUoKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uRmlsZVVwbG9hZCA9IGZpbGVMaXN0ID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLmxvYWRGaWxlcyhmaWxlTGlzdCk7XG4gICAgfTtcblxuICAgIF9vblRpbGVzZXRBZGRlZCA9IChcbiAgICAgIHRpbGVzZXQ6IHtuYW1lOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT59LFxuICAgICAgcHJvY2Vzc2VkTWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy51cGRhdGVWaXNEYXRhKFxuICAgICAgICB7XG4gICAgICAgICAgaW5mbzoge2xhYmVsOiB0aWxlc2V0Lm5hbWUsIHR5cGU6IHRpbGVzZXQudHlwZSwgZm9ybWF0OiAncm93cyd9LFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGZpZWxkczogcHJvY2Vzc2VkTWV0YWRhdGE/LmZpZWxkcyB8fCBbXSxcbiAgICAgICAgICAgIHJvd3M6IFtdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgLi4ucHJvY2Vzc2VkTWV0YWRhdGEsXG4gICAgICAgICAgICAuLi50aWxlc2V0Lm1ldGFkYXRhXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBWZWN0b3IgdGlsZSBsYXllciBzdXBwb3J0cyBHUFUgZmlsdGVyaW5nIGZvciBudW1lcmljIGFuZCBib29sZWFuIGZpZWxkc1xuICAgICAgICAgIHN1cHBvcnRlZEZpbHRlclR5cGVzOiBbXG4gICAgICAgICAgICBBTExfRklFTERfVFlQRVMucmVhbCxcbiAgICAgICAgICAgIEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyLFxuICAgICAgICAgICAgQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW5cbiAgICAgICAgICBdLFxuICAgICAgICAgIGRpc2FibGVEYXRhT3BlcmF0aW9uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBhdXRvQ3JlYXRlTGF5ZXJzOiB0cnVlLFxuICAgICAgICAgIGNlbnRlck1hcDogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25FeHBvcnRJbWFnZSA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLnByb2Nlc3NpbmcpIHtcbiAgICAgICAgZXhwb3J0SW1hZ2UodGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLCBgJHt0aGlzLnByb3BzLmFwcE5hbWV9LnBuZ2ApO1xuICAgICAgICB0aGlzLnByb3BzLnVpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZSgpO1xuICAgICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkV4cG9ydERhdGEgPSAoKSA9PiB7XG4gICAgICBleHBvcnREYXRhKHRoaXMucHJvcHMsIHRoaXMucHJvcHMudWlTdGF0ZS5leHBvcnREYXRhKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uRXhwb3J0TWFwID0gKCkgPT4ge1xuICAgICAgY29uc3Qge3VpU3RhdGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtmb3JtYXR9ID0gdWlTdGF0ZS5leHBvcnRNYXA7XG4gICAgICAoZm9ybWF0ID09PSBFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTCA/IGV4cG9ydEh0bWwgOiBleHBvcnRKc29uKShcbiAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICAgdGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydE1hcFtmb3JtYXRdIHx8IHt9XG4gICAgICApO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfZXhwb3J0RmlsZVRvQ2xvdWQgPSAoe3Byb3ZpZGVyLCBpc1B1YmxpYywgb3ZlcndyaXRlLCBjbG9zZU1vZGFsfSkgPT4ge1xuICAgICAgY29uc3QgdG9TYXZlID0gZXhwb3J0TWFwKHRoaXMucHJvcHMpO1xuXG4gICAgICB0aGlzLnByb3BzLnByb3ZpZGVyQWN0aW9ucy5leHBvcnRGaWxlVG9DbG91ZCh7XG4gICAgICAgIG1hcERhdGE6IHRvU2F2ZSxcbiAgICAgICAgcHJvdmlkZXIsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICBvdmVyd3JpdGUsXG4gICAgICAgICAgbWFwSWRUb092ZXJ3cml0ZTogdGhpcy5wcm9wcy5wcm92aWRlclN0YXRlLnNhdmVkTWFwSWRcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2VNb2RhbCxcbiAgICAgICAgb25TdWNjZXNzOiB0aGlzLnByb3BzLm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MsXG4gICAgICAgIG9uRXJyb3I6IHRoaXMucHJvcHMub25FeHBvcnRUb0Nsb3VkRXJyb3JcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25TYXZlTWFwID0gKHByb3ZpZGVyLCBvdmVyd3JpdGUgPSBmYWxzZSkgPT4ge1xuICAgICAgdGhpcy5fZXhwb3J0RmlsZVRvQ2xvdWQoe1xuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICBvdmVyd3JpdGUsXG4gICAgICAgIGNsb3NlTW9kYWw6IHRydWVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25PdmVyd3JpdGVNYXAgPSBwcm92aWRlciA9PiB7XG4gICAgICB0aGlzLl9vblNhdmVNYXAocHJvdmlkZXIsIHRydWUpO1xuICAgIH07XG5cbiAgICBfb25TaGFyZU1hcFVybCA9IHByb3ZpZGVyID0+IHtcbiAgICAgIHRoaXMuX2V4cG9ydEZpbGVUb0Nsb3VkKHtwcm92aWRlciwgaXNQdWJsaWM6IHRydWUsIG92ZXJ3cml0ZTogZmFsc2UsIGNsb3NlTW9kYWw6IGZhbHNlfSk7XG4gICAgfTtcblxuICAgIF9vbkNsb3NlU2F2ZU1hcCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLnJlc2V0UHJvdmlkZXJTdGF0dXMoKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uTG9hZENsb3VkTWFwID0gcGF5bG9hZCA9PiB7XG4gICAgICB0aGlzLnByb3BzLnByb3ZpZGVyQWN0aW9ucy5sb2FkQ2xvdWRNYXAoe1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICBvblN1Y2Nlc3M6IHRoaXMucHJvcHMub25Mb2FkQ2xvdWRNYXBTdWNjZXNzLFxuICAgICAgICBvbkVycm9yOiB0aGlzLnByb3BzLm9uTG9hZENsb3VkTWFwRXJyb3JcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjb250YWluZXJXLFxuICAgICAgICBjb250YWluZXJILFxuICAgICAgICBtYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIHVpU3RhdGUsXG4gICAgICAgIHZpc1N0YXRlLFxuICAgICAgICByb290Tm9kZSxcbiAgICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgICAgcHJvdmlkZXJTdGF0ZVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7Y3VycmVudE1vZGFsLCBkYXRhc2V0S2V5VG9SZW1vdmV9ID0gdWlTdGF0ZTtcbiAgICAgIGNvbnN0IHtkYXRhc2V0cywgbGF5ZXJzLCBlZGl0aW5nRGF0YXNldH0gPSB2aXNTdGF0ZTtcblxuICAgICAgbGV0IHRlbXBsYXRlOiBKU1guRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgICAgbGV0IG1vZGFsUHJvcHM6IFBhcnRpYWw8TW9kYWxEaWFsb2dQcm9wcz4gPSB7fTtcblxuICAgICAgLy8gVE9ETyAtIGN1cnJlbnRNb2RhbCBpcyBhIHN0cmluZ1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKGN1cnJlbnRNb2RhbCAmJiBjdXJyZW50TW9kYWwuaWQgJiYgY3VycmVudE1vZGFsLnRlbXBsYXRlKSB7XG4gICAgICAgIC8vIGlmIGN1cnJlbnRNZG9hbCB0ZW1wbGF0ZSBpcyBhbHJlYWR5IHByb3ZpZGVkXG4gICAgICAgIC8vIFRPRE86IG5lZWQgdG8gY2hlY2sgd2hldGhlciB0ZW1wbGF0ZSBpcyB2YWxpZFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRlbXBsYXRlID0gPGN1cnJlbnRNb2RhbC50ZW1wbGF0ZSAvPjtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBtb2RhbFByb3BzID0gY3VycmVudE1vZGFsLm1vZGFsUHJvcHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGN1cnJlbnRNb2RhbCkge1xuICAgICAgICAgIGNhc2UgREFUQV9UQUJMRV9JRDoge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBjb250YWluZXJXICogMC45O1xuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxEYXRhVGFibGVNb2RhbFxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICBkYXRhSWQ9e2VkaXRpbmdEYXRhc2V0fVxuICAgICAgICAgICAgICAgIHNob3dEYXRhc2V0VGFibGU9e3Zpc1N0YXRlQWN0aW9ucy5zaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgICAgIHNvcnRUYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLnNvcnRUYWJsZUNvbHVtbn1cbiAgICAgICAgICAgICAgICBwaW5UYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLnBpblRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIGNvcHlUYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLmNvcHlUYWJsZUNvbHVtbn1cbiAgICAgICAgICAgICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PXt2aXNTdGF0ZUFjdGlvbnMuc2V0Q29sdW1uRGlzcGxheUZvcm1hdH1cbiAgICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgdWlTdGF0ZT17dWlTdGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IHdlIG5lZWQgdG8gbWFrZSB0aGlzIHdpZHRoIGNvbnNpc3RlbnQgd2l0aCB0aGUgY3NzIHJ1bGUgZGVmaW5lZCBtb2RhbC5qczozMiBtYXgtd2lkdGg6IDcwdndcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLy8gVE9ETyBmaXggdGhpcyBhZnRlciBhZGQgdHlwZXMgdG8gVGhlbWVcbiAgICAgICAgICAgIG1vZGFsUHJvcHMuY3NzU3R5bGUgPSBjc3NgXG4gICAgICAgICAgICAgICR7RGF0YVRhYmxlTW9kYWxTdHlsZX07XG4gICAgICAgICAgICAgICR7bWVkaWEucGFsbWBcbiAgICAgICAgICAgICAgICB3aWR0aDogJHt3aWR0aH1weDtcbiAgICAgICAgICAgICAgYH07XG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgREVMRVRFX0RBVEFfSUQ6IHtcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlIG9wdGlvbnNcbiAgICAgICAgICAgIGlmIChkYXRhc2V0S2V5VG9SZW1vdmUgJiYgZGF0YXNldHMgJiYgZGF0YXNldHNbZGF0YXNldEtleVRvUmVtb3ZlXSkge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgICA8RGVsZXRlRGF0YXNldE1vZGFsIGRhdGFzZXQ9e2RhdGFzZXRzW2RhdGFzZXRLZXlUb1JlbW92ZV19IGxheWVycz17bGF5ZXJzfSAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZGVsZXRlRGF0YXNldCcsXG4gICAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9uQ29uZmlybTogKCkgPT4gdGhpcy5fZGVsZXRlRGF0YXNldChkYXRhc2V0S2V5VG9SZW1vdmUpLFxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kZWxldGUnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7IC8vIGluIGNhc2Ugd2UgYWRkIGEgbmV3IGNhc2UgYWZ0ZXIgdGhpcyBvbmVcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBBRERfREFUQV9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8TG9hZERhdGFNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuX2Nsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgb25GaWxlVXBsb2FkPXt0aGlzLl9vbkZpbGVVcGxvYWR9XG4gICAgICAgICAgICAgICAgb25UaWxlc2V0QWRkZWQ9e3RoaXMuX29uVGlsZXNldEFkZGVkfVxuICAgICAgICAgICAgICAgIG9uTG9hZENsb3VkTWFwPXt0aGlzLl9vbkxvYWRDbG91ZE1hcH1cbiAgICAgICAgICAgICAgICBsb2FkRmlsZXM9e3VpU3RhdGUubG9hZEZpbGVzfVxuICAgICAgICAgICAgICAgIGZpbGVMb2FkaW5nPXt2aXNTdGF0ZS5maWxlTG9hZGluZ31cbiAgICAgICAgICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzPXt2aXNTdGF0ZS5maWxlTG9hZGluZ1Byb2dyZXNzfVxuICAgICAgICAgICAgICAgIGZpbGVGb3JtYXROYW1lcz17Z2V0RmlsZUZvcm1hdE5hbWVzKHRoaXMucHJvcHMudmlzU3RhdGUpfVxuICAgICAgICAgICAgICAgIGZpbGVFeHRlbnNpb25zPXtnZXRGaWxlRXh0ZW5zaW9ucyh0aGlzLnByb3BzLnZpc1N0YXRlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZERhdGFUb01hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiBMb2FkRGF0YU1vZGFsU3R5bGUsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2UsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fY2xvc2VNb2RhbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0lNQUdFX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnRJbWFnZU1vZGFsXG4gICAgICAgICAgICAgICAgZXhwb3J0SW1hZ2U9e3VpU3RhdGUuZXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgbWFwVz17Y29udGFpbmVyV31cbiAgICAgICAgICAgICAgICBtYXBIPXtjb250YWluZXJIfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5leHBvcnRJbWFnZScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydEltYWdlLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHVpU3RhdGUuZXhwb3J0SW1hZ2UucHJvY2Vzc2luZyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kb3dubG9hZCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0RBVEFfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEV4cG9ydERhdGFNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi51aVN0YXRlLmV4cG9ydERhdGF9XG4gICAgICAgICAgICAgICAgc3VwcG9ydGVkRGF0YVR5cGVzPXtFWFBPUlRfREFUQV9UWVBFX09QVElPTlN9XG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIGFwcGx5Q1BVRmlsdGVyPXt0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5hcHBseUNQVUZpbHRlcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydERhdGFUeXBlPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnREYXRhVHlwZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydFNlbGVjdGVkRGF0YXNldD17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEZpbHRlcmVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZXhwb3J0RGF0YScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydERhdGEsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5leHBvcnQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVYUE9SVF9NQVBfSUQ6IHtcbiAgICAgICAgICAgIGNvbnN0IGtlcGxlckdsQ29uZmlnID0gdmlzU3RhdGUuc2NoZW1hLmdldENvbmZpZ1RvU2F2ZSh7XG4gICAgICAgICAgICAgIG1hcFN0eWxlLFxuICAgICAgICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgICAgICAgIHVpU3RhdGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnRNYXBNb2RhbFxuICAgICAgICAgICAgICAgIGNvbmZpZz17a2VwbGVyR2xDb25maWd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17dWlTdGF0ZS5leHBvcnRNYXB9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydE1hcEZvcm1hdH1cbiAgICAgICAgICAgICAgICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW49e3VpU3RhdGVBY3Rpb25zLnNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRIVE1MTWFwTW9kZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmV4cG9ydE1hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydE1hcCxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGxhcmdlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmV4cG9ydCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEVYUE9SVF9WSURFT19JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8RXhwb3J0VmlkZW9Nb2RhbFxuICAgICAgICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuPXt0aGlzLnByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VufVxuICAgICAgICAgICAgICAgIG1hcGJveEFwaVVybD17dGhpcy5wcm9wcy5tYXBib3hBcGlVcmx9XG4gICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgIG1hcFN0eWxlPXttYXBTdHlsZX1cbiAgICAgICAgICAgICAgICB2aXNTdGF0ZT17dmlzU3RhdGV9XG4gICAgICAgICAgICAgICAgZXhwb3J0VmlkZW89e3VpU3RhdGUuZXhwb3J0VmlkZW99XG4gICAgICAgICAgICAgICAgY29udGFpbmVyVz17Y29udGFpbmVyV31cbiAgICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmV4cG9ydFZpZGVvJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6IEV4cG9ydFZpZGVvTW9kYWxTdHlsZSxcbiAgICAgICAgICAgICAgZm9vdGVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEFERF9NQVBfU1RZTEVfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEFkZE1hcFN0eWxlTW9kYWxcbiAgICAgICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbj17dGhpcy5wcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBtYXBib3hBcGlVcmw9e3RoaXMucHJvcHMubWFwYm94QXBpVXJsfVxuICAgICAgICAgICAgICAgIG1hcFN0YXRlPXt0aGlzLnByb3BzLm1hcFN0YXRlfVxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGU9e21hcFN0eWxlLmlucHV0U3R5bGV9XG4gICAgICAgICAgICAgICAgaW5wdXRNYXBTdHlsZT17dGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMuaW5wdXRNYXBTdHlsZX1cbiAgICAgICAgICAgICAgICBsb2FkQ3VzdG9tTWFwU3R5bGU9e3RoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRDdXN0b21NYXBTdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZEN1c3RvbU1hcGJveFN0eWxlJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uQWRkQ3VzdG9tTWFwU3R5bGUsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDpcbiAgICAgICAgICAgICAgICAgIG1hcFN0eWxlLmlucHV0U3R5bGUuZXJyb3IgfHxcbiAgICAgICAgICAgICAgICAgICFtYXBTdHlsZS5pbnB1dFN0eWxlLnVybCB8fFxuICAgICAgICAgICAgICAgICAgIW1hcFN0eWxlLmlucHV0U3R5bGUubGFiZWwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uYWRkU3R5bGUnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNBVkVfTUFQX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxTYXZlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICBleHBvcnRJbWFnZT17dWlTdGF0ZS5leHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBtYXBJbmZvPXt2aXNTdGF0ZS5tYXBJbmZvfVxuICAgICAgICAgICAgICAgIG9uU2V0TWFwSW5mbz17dmlzU3RhdGVBY3Rpb25zLnNldE1hcEluZm99XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e3Byb3ZpZGVyID0+IHRoaXMuX29uU2F2ZU1hcChwcm92aWRlciwgZmFsc2UpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuc2F2ZU1hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgT1ZFUldSSVRFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8T3ZlcldyaXRlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICB0aXRsZT17Z2V0KHZpc1N0YXRlLCBbJ21hcEluZm8nLCAndGl0bGUnXSl9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e3VpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e3RoaXMuX29uT3ZlcndyaXRlTWFwfVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnT3ZlcndyaXRlIEV4aXN0aW5nIEZpbGU/JyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNIQVJFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8U2hhcmVNYXBNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIG9uRXhwb3J0PXt0aGlzLl9vblNoYXJlTWFwVXJsfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5zaGFyZVVSTCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX29uQ2xvc2VTYXZlTWFwXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb290Tm9kZSA/IChcbiAgICAgICAgPE1vZGFsRGlhbG9nXG4gICAgICAgICAgcGFyZW50U2VsZWN0b3I9eygpID0+IHJvb3ROb2RlIGFzIEhUTUxFbGVtZW50fVxuICAgICAgICAgIGlzT3Blbj17Qm9vbGVhbihjdXJyZW50TW9kYWwpfVxuICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgIHsuLi5tb2RhbFByb3BzfVxuICAgICAgICAgIGNzc1N0eWxlPXtEZWZhdWx0U3R5bGUuY29uY2F0KG1vZGFsUHJvcHMuY3NzU3R5bGUpfVxuICAgICAgICA+XG4gICAgICAgICAge3RlbXBsYXRlfVxuICAgICAgICA8L01vZGFsRGlhbG9nPlxuICAgICAgKSA6IG51bGw7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuICB9XG5cbiAgcmV0dXJuIE1vZGFsQ29udGFpbmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLElBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUws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
|
|
457
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9nZXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RvY3VtZW50IiwiX2NvbnN0YW50cyIsIl9yZWR1Y2VycyIsIl91dGlscyIsIl9tb2RhbERpYWxvZyIsIl9kZWxldGVEYXRhTW9kYWwiLCJfb3ZlcndyaXRlTWFwTW9kYWwiLCJfZGF0YVRhYmxlTW9kYWwiLCJfbG9hZERhdGFNb2RhbCIsIl9leHBvcnRJbWFnZU1vZGFsIiwiX2V4cG9ydERhdGFNb2RhbCIsIl9leHBvcnRNYXBNb2RhbCIsIl9leHBvcnRWaWRlb01vZGFsIiwiX2FkZE1hcFN0eWxlTW9kYWwiLCJfc2F2ZU1hcE1vZGFsIiwiX3NoYXJlTWFwTW9kYWwiLCJfc3R5bGVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl90ZW1wbGF0ZU9iamVjdDkiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJEYXRhVGFibGVNb2RhbFN0eWxlIiwiY3NzIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJtZWRpYSIsInBvcnRhYmxlIiwicGFsbSIsInNtYWxsTW9kYWxDc3MiLCJMb2FkRGF0YU1vZGFsU3R5bGUiLCJFeHBvcnRWaWRlb01vZGFsU3R5bGUiLCJEZWZhdWx0U3R5bGUiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSIsIk92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeSIsIkRhdGFUYWJsZU1vZGFsRmFjdG9yeSIsIkxvYWREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0TWFwTW9kYWxGYWN0b3J5IiwiRXhwb3J0VmlkZW9Nb2RhbEZhY3RvcnkiLCJBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeSIsIk1vZGFsRGlhbG9nRmFjdG9yeSIsIlNhdmVNYXBNb2RhbEZhY3RvcnkiLCJTaGFyZU1hcE1vZGFsRmFjdG9yeSIsIkRlbGV0ZURhdGFzZXRNb2RhbCIsIk92ZXJXcml0ZU1hcE1vZGFsIiwiRGF0YVRhYmxlTW9kYWwiLCJMb2FkRGF0YU1vZGFsIiwiRXhwb3J0SW1hZ2VNb2RhbCIsIkV4cG9ydERhdGFNb2RhbCIsIkV4cG9ydE1hcE1vZGFsIiwiRXhwb3J0VmlkZW9Nb2RhbCIsIkFkZE1hcFN0eWxlTW9kYWwiLCJNb2RhbERpYWxvZyIsIlNhdmVNYXBNb2RhbCIsIlNoYXJlTWFwTW9kYWwiLCJNb2RhbENvbnRhaW5lciIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbktleVVwIiwiZXZlbnQiLCJrZXlDb2RlIiwiS2V5RXZlbnQiLCJET01fVktfRVNDQVBFIiwiX2Nsb3NlTW9kYWwiLCJwcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidG9nZ2xlTW9kYWwiLCJrZXkiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJyZW1vdmVEYXRhc2V0IiwibWFwU3R5bGVBY3Rpb25zIiwiYWRkQ3VzdG9tTWFwU3R5bGUiLCJmaWxlTGlzdCIsImxvYWRGaWxlcyIsInRpbGVzZXQiLCJwcm9jZXNzZWRNZXRhZGF0YSIsInVwZGF0ZVZpc0RhdGEiLCJpbmZvIiwibGFiZWwiLCJuYW1lIiwidHlwZSIsImZvcm1hdCIsImRhdGEiLCJmaWVsZHMiLCJyb3dzIiwibWV0YWRhdGEiLCJzdXBwb3J0ZWRGaWx0ZXJUeXBlcyIsIkFMTF9GSUVMRF9UWVBFUyIsInJlYWwiLCJpbnRlZ2VyIiwiZGlzYWJsZURhdGFPcGVyYXRpb24iLCJhdXRvQ3JlYXRlTGF5ZXJzIiwiY2VudGVyTWFwIiwidWlTdGF0ZSIsImV4cG9ydEltYWdlIiwicHJvY2Vzc2luZyIsImFwcE5hbWUiLCJjbGVhbnVwRXhwb3J0SW1hZ2UiLCJleHBvcnREYXRhIiwiZXhwb3J0TWFwIiwiRVhQT1JUX01BUF9GT1JNQVRTIiwiSFRNTCIsImV4cG9ydEh0bWwiLCJleHBvcnRKc29uIiwiX3JlZiIsInByb3ZpZGVyIiwiaXNQdWJsaWMiLCJvdmVyd3JpdGUiLCJjbG9zZU1vZGFsIiwidG9TYXZlIiwicHJvdmlkZXJBY3Rpb25zIiwiZXhwb3J0RmlsZVRvQ2xvdWQiLCJtYXBEYXRhIiwib3B0aW9ucyIsIm1hcElkVG9PdmVyd3JpdGUiLCJwcm92aWRlclN0YXRlIiwic2F2ZWRNYXBJZCIsIm9uU3VjY2VzcyIsIm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MiLCJvbkVycm9yIiwib25FeHBvcnRUb0Nsb3VkRXJyb3IiLCJ1bmRlZmluZWQiLCJfZXhwb3J0RmlsZVRvQ2xvdWQiLCJfb25TYXZlTWFwIiwicmVzZXRQcm92aWRlclN0YXR1cyIsInBheWxvYWQiLCJsb2FkQ2xvdWRNYXAiLCJvbkxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcEVycm9yIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJ2YWx1ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlciIsIl90aGlzMiIsIl90aGlzJHByb3BzIiwiY29udGFpbmVyVyIsImNvbnRhaW5lckgiLCJtYXBTdHlsZSIsIm1hcFN0YXRlIiwidmlzU3RhdGUiLCJyb290Tm9kZSIsImN1cnJlbnRNb2RhbCIsImRhdGFzZXRLZXlUb1JlbW92ZSIsImRhdGFzZXRzIiwibGF5ZXJzIiwiZWRpdGluZ0RhdGFzZXQiLCJ0ZW1wbGF0ZSIsIm1vZGFsUHJvcHMiLCJpZCIsImNyZWF0ZUVsZW1lbnQiLCJEQVRBX1RBQkxFX0lEIiwid2lkdGgiLCJkYXRhSWQiLCJzaG93RGF0YXNldFRhYmxlIiwic29ydFRhYmxlQ29sdW1uIiwicGluVGFibGVDb2x1bW4iLCJjb3B5VGFibGVDb2x1bW4iLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0IiwibG9hZENvbHVtblN0YXRzIiwiY3NzU3R5bGUiLCJERUxFVEVfREFUQV9JRCIsImRhdGFzZXQiLCJ0aXRsZSIsImZvb3RlciIsIm9uQ29uZmlybSIsIl9kZWxldGVEYXRhc2V0Iiwib25DYW5jZWwiLCJjb25maXJtQnV0dG9uIiwibmVnYXRpdmUiLCJsYXJnZSIsImNoaWxkcmVuIiwiQUREX0RBVEFfSUQiLCJfZXh0ZW5kczIiLCJvbkNsb3NlIiwib25GaWxlVXBsb2FkIiwiX29uRmlsZVVwbG9hZCIsIm9uVGlsZXNldEFkZGVkIiwiX29uVGlsZXNldEFkZGVkIiwib25Mb2FkQ2xvdWRNYXAiLCJfb25Mb2FkQ2xvdWRNYXAiLCJmaWxlTG9hZGluZyIsImZpbGVMb2FkaW5nUHJvZ3Jlc3MiLCJmaWxlRm9ybWF0TmFtZXMiLCJnZXRGaWxlRm9ybWF0TmFtZXMiLCJmaWxlRXh0ZW5zaW9ucyIsImdldEZpbGVFeHRlbnNpb25zIiwiRVhQT1JUX0lNQUdFX0lEIiwibWFwVyIsIm1hcEgiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsIl9vbkV4cG9ydEltYWdlIiwiZGlzYWJsZWQiLCJFWFBPUlRfREFUQV9JRCIsInN1cHBvcnRlZERhdGFUeXBlcyIsIkVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyIsImFwcGx5Q1BVRmlsdGVyIiwib25DaGFuZ2VFeHBvcnREYXRhVHlwZSIsInNldEV4cG9ydERhdGFUeXBlIiwib25DaGFuZ2VFeHBvcnRTZWxlY3RlZERhdGFzZXQiLCJzZXRFeHBvcnRTZWxlY3RlZERhdGFzZXQiLCJvbkNoYW5nZUV4cG9ydEZpbHRlcmVkIiwic2V0RXhwb3J0RmlsdGVyZWQiLCJfb25FeHBvcnREYXRhIiwiRVhQT1JUX01BUF9JRCIsImtlcGxlckdsQ29uZmlnIiwic2NoZW1hIiwiZ2V0Q29uZmlnVG9TYXZlIiwiY29uZmlnIiwib25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQiLCJzZXRFeHBvcnRNYXBGb3JtYXQiLCJvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlIiwic2V0RXhwb3J0SFRNTE1hcE1vZGUiLCJfb25FeHBvcnRNYXAiLCJFWFBPUlRfVklERU9fSUQiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsImV4cG9ydFZpZGVvIiwiQUREX01BUF9TVFlMRV9JRCIsImlucHV0U3R5bGUiLCJpbnB1dE1hcFN0eWxlIiwibG9hZEN1c3RvbU1hcFN0eWxlIiwiX29uQWRkQ3VzdG9tTWFwU3R5bGUiLCJlcnJvciIsInVybCIsIlNBVkVfTUFQX0lEIiwibWFwSW5mbyIsIm9uU2V0TWFwSW5mbyIsInNldE1hcEluZm8iLCJPVkVSV1JJVEVfTUFQX0lEIiwiX29uT3ZlcndyaXRlTWFwIiwiU0hBUkVfTUFQX0lEIiwib25FeHBvcnQiLCJfb25TaGFyZU1hcFVybCIsIl9vbkNsb3NlU2F2ZU1hcCIsInBhcmVudFNlbGVjdG9yIiwiaXNPcGVuIiwiQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGFsLWNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nzc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGdldCBmcm9tICdlcy10b29sa2l0L2NvbXBhdC9nZXQnO1xuaW1wb3J0IGRvY3VtZW50IGZyb20gJ2dsb2JhbC9kb2N1bWVudCc7XG5cbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBleHBvcnREYXRhLFxuICBnZXRGaWxlRm9ybWF0TmFtZXMsXG4gIGdldEZpbGVFeHRlbnNpb25zLFxuICBNYXBTdHlsZSxcbiAgUHJvdmlkZXJTdGF0ZVxufSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7ZXhwb3J0SHRtbCwgZXhwb3J0TWFwLCBleHBvcnRKc29uLCBleHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCBNb2RhbERpYWxvZ0ZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvbW9kYWwtZGlhbG9nJztcblxuLy8gbW9kYWxzXG5pbXBvcnQgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9kZWxldGUtZGF0YS1tb2RhbCc7XG5pbXBvcnQgT3ZlcldyaXRlTWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL292ZXJ3cml0ZS1tYXAtbW9kYWwnO1xuaW1wb3J0IERhdGFUYWJsZU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9kYXRhLXRhYmxlLW1vZGFsJztcbmltcG9ydCBMb2FkRGF0YU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9sb2FkLWRhdGEtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1pbWFnZS1tb2RhbCc7XG5pbXBvcnQgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtZGF0YS1tb2RhbCc7XG5pbXBvcnQgRXhwb3J0TWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1tYXAtbW9kYWwvZXhwb3J0LW1hcC1tb2RhbCc7XG5pbXBvcnQgRXhwb3J0VmlkZW9Nb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZXhwb3J0LXZpZGVvLW1vZGFsJztcbmltcG9ydCBBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9hZGQtbWFwLXN0eWxlLW1vZGFsJztcbmltcG9ydCBTYXZlTWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL3NhdmUtbWFwLW1vZGFsJztcbmltcG9ydCBTaGFyZU1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9zaGFyZS1tYXAtbW9kYWwnO1xuXG4vLyBCcmVha3BvaW50c1xuaW1wb3J0IHttZWRpYX0gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuXG4vLyBUZW1wbGF0ZVxuaW1wb3J0IHtcbiAgRVhQT1JUX0RBVEFfVFlQRV9PUFRJT05TLFxuICBFWFBPUlRfTUFQX0ZPUk1BVFMsXG4gIEtleUV2ZW50LFxuICBBRERfREFUQV9JRCxcbiAgREFUQV9UQUJMRV9JRCxcbiAgREVMRVRFX0RBVEFfSUQsXG4gIEVYUE9SVF9EQVRBX0lELFxuICBFWFBPUlRfSU1BR0VfSUQsXG4gIEVYUE9SVF9NQVBfSUQsXG4gIEVYUE9SVF9WSURFT19JRCxcbiAgQUREX01BUF9TVFlMRV9JRCxcbiAgU0FWRV9NQVBfSUQsXG4gIFNIQVJFX01BUF9JRCxcbiAgT1ZFUldSSVRFX01BUF9JRFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7TWFwU3RhdGUsIFVpU3RhdGUsIE9uU3VjY2Vzc0NhbGxCYWNrLCBPbkVycm9yQ2FsbEJhY2t9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBWaXNTdGF0ZUFjdGlvbnMsXG4gIFVJU3RhdGVBY3Rpb25zLFxuICBNYXBTdHlsZUFjdGlvbnMsXG4gIFByb3ZpZGVyQWN0aW9uc1xufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNb2RhbERpYWxvZ1Byb3BzfSBmcm9tICcuL2NvbW1vbi9tb2RhbCc7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuXG5jb25zdCBEYXRhVGFibGVNb2RhbFN0eWxlID0gY3NzYFxuICB0b3A6IDcwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiA5MHZ3O1xuICBtYXgtd2lkdGg6IDkwdnc7XG5cbiAgJHttZWRpYS5wb3J0YWJsZWBcbiAgICBwYWRkaW5nOiAwO1xuICBgfSAke21lZGlhLnBhbG1gXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgYH07XG5gO1xuY29uc3Qgc21hbGxNb2RhbENzcyA9IGNzc2BcbiAgd2lkdGg6IDQwJTtcbiAgcGFkZGluZzogNDBweCA0MHB4IDMycHggNDBweDtcbmA7XG5cbmNvbnN0IExvYWREYXRhTW9kYWxTdHlsZSA9IGNzc2BcbiAgdG9wOiA2MHB4O1xuYDtcblxuY29uc3QgRXhwb3J0VmlkZW9Nb2RhbFN0eWxlID0gY3NzYFxuICBtYXgtd2lkdGg6IDk2MHB4O1xuYDtcblxuY29uc3QgRGVmYXVsdFN0eWxlID0gY3NzYFxuICBtYXgtd2lkdGg6IDk2MHB4O1xuYDtcblxuZXhwb3J0IHR5cGUgTW9kYWxDb250YWluZXJQcm9wcyA9IHtcbiAgYXBwTmFtZTogc3RyaW5nO1xuICByb290Tm9kZTogUmVhY3QuUmVhY3RJbnN0YW5jZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbnRhaW5lclc6IG51bWJlcjtcbiAgY29udGFpbmVySDogbnVtYmVyO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgbWFwU3R5bGVBY3Rpb25zOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zO1xuICBwcm92aWRlckFjdGlvbnM6IHR5cGVvZiBQcm92aWRlckFjdGlvbnM7XG4gIG9uU2F2ZVRvU3RvcmFnZT86ICgpID0+IHZvaWQ7XG4gIGNsb3VkUHJvdmlkZXJzOiBQcm92aWRlcltdO1xuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2Vzcz86IE9uU3VjY2Vzc0NhbGxCYWNrO1xuICBvbkV4cG9ydFRvQ2xvdWRFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbn07XG5cbk1vZGFsQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW1xuICBEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5LFxuICBPdmVyV3JpdGVNYXBNb2RhbEZhY3RvcnksXG4gIERhdGFUYWJsZU1vZGFsRmFjdG9yeSxcbiAgTG9hZERhdGFNb2RhbEZhY3RvcnksXG4gIEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5LFxuICBFeHBvcnREYXRhTW9kYWxGYWN0b3J5LFxuICBFeHBvcnRNYXBNb2RhbEZhY3RvcnksXG4gIEV4cG9ydFZpZGVvTW9kYWxGYWN0b3J5LFxuICBBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeSxcbiAgTW9kYWxEaWFsb2dGYWN0b3J5LFxuICBTYXZlTWFwTW9kYWxGYWN0b3J5LFxuICBTaGFyZU1hcE1vZGFsRmFjdG9yeVxuXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW9kYWxDb250YWluZXJGYWN0b3J5KFxuICBEZWxldGVEYXRhc2V0TW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIERlbGV0ZURhdGFzZXRNb2RhbEZhY3Rvcnk+LFxuICBPdmVyV3JpdGVNYXBNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgT3ZlcldyaXRlTWFwTW9kYWxGYWN0b3J5PixcbiAgRGF0YVRhYmxlTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIERhdGFUYWJsZU1vZGFsRmFjdG9yeT4sXG4gIExvYWREYXRhTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIExvYWREYXRhTW9kYWxGYWN0b3J5PixcbiAgRXhwb3J0SW1hZ2VNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0SW1hZ2VNb2RhbEZhY3Rvcnk+LFxuICBFeHBvcnREYXRhTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIEV4cG9ydERhdGFNb2RhbEZhY3Rvcnk+LFxuICBFeHBvcnRNYXBNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0TWFwTW9kYWxGYWN0b3J5PixcbiAgRXhwb3J0VmlkZW9Nb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0VmlkZW9Nb2RhbEZhY3Rvcnk+LFxuICBBZGRNYXBTdHlsZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeT4sXG4gIE1vZGFsRGlhbG9nOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbERpYWxvZ0ZhY3Rvcnk+LFxuICBTYXZlTWFwTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIFNhdmVNYXBNb2RhbEZhY3Rvcnk+LFxuICBTaGFyZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBTaGFyZU1hcE1vZGFsRmFjdG9yeT5cbik6IFJlYWN0LkVsZW1lbnRUeXBlPE1vZGFsQ29udGFpbmVyUHJvcHM+IHtcbiAgLyoqIEBhdWdtZW50cyBSZWFjdC5Db21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4gKi9cbiAgY2xhc3MgTW9kYWxDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4ge1xuICAgIC8vIFRPRE8gLSByZW1vdmUgd2hlbiBwcm9wIHR5cGVzIGFyZSBmdWxseSBleHBvcnRlZFxuICAgIGNvbXBvbmVudERpZE1vdW50ID0gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9O1xuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9XG5cbiAgICBfb25LZXlVcCA9IGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgICAgaWYgKGtleUNvZGUgPT09IEtleUV2ZW50LkRPTV9WS19FU0NBUEUpIHtcbiAgICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfY2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMudWlTdGF0ZUFjdGlvbnMudG9nZ2xlTW9kYWwobnVsbCk7XG4gICAgfTtcblxuICAgIF9kZWxldGVEYXRhc2V0ID0ga2V5ID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQoa2V5KTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uQWRkQ3VzdG9tTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5hZGRDdXN0b21NYXBTdHlsZSgpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25GaWxlVXBsb2FkID0gZmlsZUxpc3QgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMubG9hZEZpbGVzKGZpbGVMaXN0KTtcbiAgICB9O1xuXG4gICAgX29uVGlsZXNldEFkZGVkID0gKFxuICAgICAgdGlsZXNldDoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55Pn0sXG4gICAgICBwcm9jZXNzZWRNZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICApID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVZpc0RhdGEoXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiB7bGFiZWw6IHRpbGVzZXQubmFtZSwgdHlwZTogdGlsZXNldC50eXBlLCBmb3JtYXQ6ICdyb3dzJ30sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZmllbGRzOiBwcm9jZXNzZWRNZXRhZGF0YT8uZmllbGRzIHx8IFtdLFxuICAgICAgICAgICAgcm93czogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAuLi5wcm9jZXNzZWRNZXRhZGF0YSxcbiAgICAgICAgICAgIC4uLnRpbGVzZXQubWV0YWRhdGFcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIFZlY3RvciB0aWxlIGxheWVyIHN1cHBvcnRzIEdQVSBmaWx0ZXJpbmcgZm9yIG51bWVyaWMgYW5kIGJvb2xlYW4gZmllbGRzXG4gICAgICAgICAgc3VwcG9ydGVkRmlsdGVyVHlwZXM6IFtcbiAgICAgICAgICAgIEFMTF9GSUVMRF9UWVBFUy5yZWFsLFxuICAgICAgICAgICAgQUxMX0ZJRUxEX1RZUEVTLmludGVnZXIsXG4gICAgICAgICAgICBBTExfRklFTERfVFlQRVMuYm9vbGVhblxuICAgICAgICAgIF0sXG4gICAgICAgICAgZGlzYWJsZURhdGFPcGVyYXRpb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGF1dG9DcmVhdGVMYXllcnM6IHRydWUsXG4gICAgICAgICAgY2VudGVyTWFwOiB0cnVlXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9vbkV4cG9ydEltYWdlID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UucHJvY2Vzc2luZykge1xuICAgICAgICBleHBvcnRJbWFnZSh0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UsIGAke3RoaXMucHJvcHMuYXBwTmFtZX0ucG5nYCk7XG4gICAgICAgIHRoaXMucHJvcHMudWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlKCk7XG4gICAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uRXhwb3J0RGF0YSA9ICgpID0+IHtcbiAgICAgIGV4cG9ydERhdGEodGhpcy5wcm9wcywgdGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydERhdGEpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25FeHBvcnRNYXAgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7dWlTdGF0ZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2Zvcm1hdH0gPSB1aVN0YXRlLmV4cG9ydE1hcDtcbiAgICAgIChmb3JtYXQgPT09IEVYUE9SVF9NQVBfRk9STUFUUy5IVE1MID8gZXhwb3J0SHRtbCA6IGV4cG9ydEpzb24pKFxuICAgICAgICB0aGlzLnByb3BzLFxuICAgICAgICB0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0TWFwW2Zvcm1hdF0gfHwge31cbiAgICAgICk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9leHBvcnRGaWxlVG9DbG91ZCA9ICh7cHJvdmlkZXIsIGlzUHVibGljLCBvdmVyd3JpdGUsIGNsb3NlTW9kYWx9KSA9PiB7XG4gICAgICBjb25zdCB0b1NhdmUgPSBleHBvcnRNYXAodGhpcy5wcm9wcyk7XG5cbiAgICAgIHRoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLmV4cG9ydEZpbGVUb0Nsb3VkKHtcbiAgICAgICAgbWFwRGF0YTogdG9TYXZlLFxuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGlzUHVibGljLFxuICAgICAgICAgIG92ZXJ3cml0ZSxcbiAgICAgICAgICBtYXBJZFRvT3ZlcndyaXRlOiB0aGlzLnByb3BzLnByb3ZpZGVyU3RhdGUuc2F2ZWRNYXBJZFxuICAgICAgICB9LFxuICAgICAgICBjbG9zZU1vZGFsLFxuICAgICAgICBvblN1Y2Nlc3M6IHRoaXMucHJvcHMub25FeHBvcnRUb0Nsb3VkU3VjY2VzcyxcbiAgICAgICAgb25FcnJvcjogdGhpcy5wcm9wcy5vbkV4cG9ydFRvQ2xvdWRFcnJvclxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vblNhdmVNYXAgPSAocHJvdmlkZXIsIG92ZXJ3cml0ZSA9IGZhbHNlKSA9PiB7XG4gICAgICB0aGlzLl9leHBvcnRGaWxlVG9DbG91ZCh7XG4gICAgICAgIHByb3ZpZGVyLFxuICAgICAgICBpc1B1YmxpYzogZmFsc2UsXG4gICAgICAgIG92ZXJ3cml0ZSxcbiAgICAgICAgY2xvc2VNb2RhbDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vbk92ZXJ3cml0ZU1hcCA9IHByb3ZpZGVyID0+IHtcbiAgICAgIHRoaXMuX29uU2F2ZU1hcChwcm92aWRlciwgdHJ1ZSk7XG4gICAgfTtcblxuICAgIF9vblNoYXJlTWFwVXJsID0gcHJvdmlkZXIgPT4ge1xuICAgICAgdGhpcy5fZXhwb3J0RmlsZVRvQ2xvdWQoe3Byb3ZpZGVyLCBpc1B1YmxpYzogdHJ1ZSwgb3ZlcndyaXRlOiBmYWxzZSwgY2xvc2VNb2RhbDogZmFsc2V9KTtcbiAgICB9O1xuXG4gICAgX29uQ2xvc2VTYXZlTWFwID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5wcm92aWRlckFjdGlvbnMucmVzZXRQcm92aWRlclN0YXR1cygpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25Mb2FkQ2xvdWRNYXAgPSBwYXlsb2FkID0+IHtcbiAgICAgIHRoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLmxvYWRDbG91ZE1hcCh7XG4gICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgIG9uU3VjY2VzczogdGhpcy5wcm9wcy5vbkxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gICAgICAgIG9uRXJyb3I6IHRoaXMucHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvclxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvbnRhaW5lclcsXG4gICAgICAgIGNvbnRhaW5lckgsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgdWlTdGF0ZSxcbiAgICAgICAgdmlzU3RhdGUsXG4gICAgICAgIHJvb3ROb2RlLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgICBwcm92aWRlclN0YXRlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtjdXJyZW50TW9kYWwsIGRhdGFzZXRLZXlUb1JlbW92ZX0gPSB1aVN0YXRlO1xuICAgICAgY29uc3Qge2RhdGFzZXRzLCBsYXllcnMsIGVkaXRpbmdEYXRhc2V0fSA9IHZpc1N0YXRlO1xuXG4gICAgICBsZXQgdGVtcGxhdGU6IEpTWC5FbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgICBsZXQgbW9kYWxQcm9wczogUGFydGlhbDxNb2RhbERpYWxvZ1Byb3BzPiA9IHt9O1xuXG4gICAgICAvLyBUT0RPIC0gY3VycmVudE1vZGFsIGlzIGEgc3RyaW5nXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAoY3VycmVudE1vZGFsICYmIGN1cnJlbnRNb2RhbC5pZCAmJiBjdXJyZW50TW9kYWwudGVtcGxhdGUpIHtcbiAgICAgICAgLy8gaWYgY3VycmVudE1kb2FsIHRlbXBsYXRlIGlzIGFscmVhZHkgcHJvdmlkZWRcbiAgICAgICAgLy8gVE9ETzogbmVlZCB0byBjaGVjayB3aGV0aGVyIHRlbXBsYXRlIGlzIHZhbGlkXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGVtcGxhdGUgPSA8Y3VycmVudE1vZGFsLnRlbXBsYXRlIC8+O1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG1vZGFsUHJvcHMgPSBjdXJyZW50TW9kYWwubW9kYWxQcm9wcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoY3VycmVudE1vZGFsKSB7XG4gICAgICAgICAgY2FzZSBEQVRBX1RBQkxFX0lEOiB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGNvbnRhaW5lclcgKiAwLjk7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPERhdGFUYWJsZU1vZGFsXG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17ZWRpdGluZ0RhdGFzZXR9XG4gICAgICAgICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17dmlzU3RhdGVBY3Rpb25zLnNob3dEYXRhc2V0VGFibGV9XG4gICAgICAgICAgICAgICAgc29ydFRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMuc29ydFRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIHBpblRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMucGluVGFibGVDb2x1bW59XG4gICAgICAgICAgICAgICAgY29weVRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMuY29weVRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ9e3Zpc1N0YXRlQWN0aW9ucy5zZXRDb2x1bW5EaXNwbGF5Rm9ybWF0fVxuICAgICAgICAgICAgICAgIGxvYWRDb2x1bW5TdGF0cz17dmlzU3RhdGVBY3Rpb25zLmxvYWRDb2x1bW5TdGF0c31cbiAgICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgdWlTdGF0ZT17dWlTdGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IHdlIG5lZWQgdG8gbWFrZSB0aGlzIHdpZHRoIGNvbnNpc3RlbnQgd2l0aCB0aGUgY3NzIHJ1bGUgZGVmaW5lZCBtb2RhbC5qczozMiBtYXgtd2lkdGg6IDcwdndcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLy8gVE9ETyBmaXggdGhpcyBhZnRlciBhZGQgdHlwZXMgdG8gVGhlbWVcbiAgICAgICAgICAgIG1vZGFsUHJvcHMuY3NzU3R5bGUgPSBjc3NgXG4gICAgICAgICAgICAgICR7RGF0YVRhYmxlTW9kYWxTdHlsZX07XG4gICAgICAgICAgICAgICR7bWVkaWEucGFsbWBcbiAgICAgICAgICAgICAgICB3aWR0aDogJHt3aWR0aH1weDtcbiAgICAgICAgICAgICAgYH07XG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgREVMRVRFX0RBVEFfSUQ6IHtcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlIG9wdGlvbnNcbiAgICAgICAgICAgIGlmIChkYXRhc2V0S2V5VG9SZW1vdmUgJiYgZGF0YXNldHMgJiYgZGF0YXNldHNbZGF0YXNldEtleVRvUmVtb3ZlXSkge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgICA8RGVsZXRlRGF0YXNldE1vZGFsIGRhdGFzZXQ9e2RhdGFzZXRzW2RhdGFzZXRLZXlUb1JlbW92ZV19IGxheWVycz17bGF5ZXJzfSAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZGVsZXRlRGF0YXNldCcsXG4gICAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9uQ29uZmlybTogKCkgPT4gdGhpcy5fZGVsZXRlRGF0YXNldChkYXRhc2V0S2V5VG9SZW1vdmUpLFxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kZWxldGUnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7IC8vIGluIGNhc2Ugd2UgYWRkIGEgbmV3IGNhc2UgYWZ0ZXIgdGhpcyBvbmVcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBBRERfREFUQV9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8TG9hZERhdGFNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuX2Nsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgb25GaWxlVXBsb2FkPXt0aGlzLl9vbkZpbGVVcGxvYWR9XG4gICAgICAgICAgICAgICAgb25UaWxlc2V0QWRkZWQ9e3RoaXMuX29uVGlsZXNldEFkZGVkfVxuICAgICAgICAgICAgICAgIG9uTG9hZENsb3VkTWFwPXt0aGlzLl9vbkxvYWRDbG91ZE1hcH1cbiAgICAgICAgICAgICAgICBsb2FkRmlsZXM9e3VpU3RhdGUubG9hZEZpbGVzfVxuICAgICAgICAgICAgICAgIGZpbGVMb2FkaW5nPXt2aXNTdGF0ZS5maWxlTG9hZGluZ31cbiAgICAgICAgICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzPXt2aXNTdGF0ZS5maWxlTG9hZGluZ1Byb2dyZXNzfVxuICAgICAgICAgICAgICAgIGZpbGVGb3JtYXROYW1lcz17Z2V0RmlsZUZvcm1hdE5hbWVzKHRoaXMucHJvcHMudmlzU3RhdGUpfVxuICAgICAgICAgICAgICAgIGZpbGVFeHRlbnNpb25zPXtnZXRGaWxlRXh0ZW5zaW9ucyh0aGlzLnByb3BzLnZpc1N0YXRlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZERhdGFUb01hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiBMb2FkRGF0YU1vZGFsU3R5bGUsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2UsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fY2xvc2VNb2RhbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0lNQUdFX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnRJbWFnZU1vZGFsXG4gICAgICAgICAgICAgICAgZXhwb3J0SW1hZ2U9e3VpU3RhdGUuZXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgbWFwVz17Y29udGFpbmVyV31cbiAgICAgICAgICAgICAgICBtYXBIPXtjb250YWluZXJIfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5leHBvcnRJbWFnZScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydEltYWdlLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHVpU3RhdGUuZXhwb3J0SW1hZ2UucHJvY2Vzc2luZyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kb3dubG9hZCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0RBVEFfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEV4cG9ydERhdGFNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi51aVN0YXRlLmV4cG9ydERhdGF9XG4gICAgICAgICAgICAgICAgc3VwcG9ydGVkRGF0YVR5cGVzPXtFWFBPUlRfREFUQV9UWVBFX09QVElPTlN9XG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIGFwcGx5Q1BVRmlsdGVyPXt0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5hcHBseUNQVUZpbHRlcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydERhdGFUeXBlPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnREYXRhVHlwZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydFNlbGVjdGVkRGF0YXNldD17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEZpbHRlcmVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZXhwb3J0RGF0YScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydERhdGEsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5leHBvcnQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVYUE9SVF9NQVBfSUQ6IHtcbiAgICAgICAgICAgIGNvbnN0IGtlcGxlckdsQ29uZmlnID0gdmlzU3RhdGUuc2NoZW1hLmdldENvbmZpZ1RvU2F2ZSh7XG4gICAgICAgICAgICAgIG1hcFN0eWxlLFxuICAgICAgICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgICAgICAgIHVpU3RhdGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnRNYXBNb2RhbFxuICAgICAgICAgICAgICAgIGNvbmZpZz17a2VwbGVyR2xDb25maWd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17dWlTdGF0ZS5leHBvcnRNYXB9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydE1hcEZvcm1hdH1cbiAgICAgICAgICAgICAgICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW49e3VpU3RhdGVBY3Rpb25zLnNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRIVE1MTWFwTW9kZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmV4cG9ydE1hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydE1hcCxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGxhcmdlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmV4cG9ydCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEVYUE9SVF9WSURFT19JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8RXhwb3J0VmlkZW9Nb2RhbFxuICAgICAgICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuPXt0aGlzLnByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VufVxuICAgICAgICAgICAgICAgIG1hcGJveEFwaVVybD17dGhpcy5wcm9wcy5tYXBib3hBcGlVcmx9XG4gICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgIG1hcFN0eWxlPXttYXBTdHlsZX1cbiAgICAgICAgICAgICAgICB2aXNTdGF0ZT17dmlzU3RhdGV9XG4gICAgICAgICAgICAgICAgZXhwb3J0VmlkZW89e3VpU3RhdGUuZXhwb3J0VmlkZW99XG4gICAgICAgICAgICAgICAgY29udGFpbmVyVz17Y29udGFpbmVyV31cbiAgICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmV4cG9ydFZpZGVvJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6IEV4cG9ydFZpZGVvTW9kYWxTdHlsZSxcbiAgICAgICAgICAgICAgZm9vdGVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEFERF9NQVBfU1RZTEVfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEFkZE1hcFN0eWxlTW9kYWxcbiAgICAgICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbj17dGhpcy5wcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBtYXBib3hBcGlVcmw9e3RoaXMucHJvcHMubWFwYm94QXBpVXJsfVxuICAgICAgICAgICAgICAgIG1hcFN0YXRlPXt0aGlzLnByb3BzLm1hcFN0YXRlfVxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGU9e21hcFN0eWxlLmlucHV0U3R5bGV9XG4gICAgICAgICAgICAgICAgaW5wdXRNYXBTdHlsZT17dGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMuaW5wdXRNYXBTdHlsZX1cbiAgICAgICAgICAgICAgICBsb2FkQ3VzdG9tTWFwU3R5bGU9e3RoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRDdXN0b21NYXBTdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZEN1c3RvbU1hcGJveFN0eWxlJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uQWRkQ3VzdG9tTWFwU3R5bGUsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDpcbiAgICAgICAgICAgICAgICAgIG1hcFN0eWxlLmlucHV0U3R5bGUuZXJyb3IgfHxcbiAgICAgICAgICAgICAgICAgICFtYXBTdHlsZS5pbnB1dFN0eWxlLnVybCB8fFxuICAgICAgICAgICAgICAgICAgIW1hcFN0eWxlLmlucHV0U3R5bGUubGFiZWwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uYWRkU3R5bGUnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNBVkVfTUFQX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxTYXZlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICBleHBvcnRJbWFnZT17dWlTdGF0ZS5leHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBtYXBJbmZvPXt2aXNTdGF0ZS5tYXBJbmZvfVxuICAgICAgICAgICAgICAgIG9uU2V0TWFwSW5mbz17dmlzU3RhdGVBY3Rpb25zLnNldE1hcEluZm99XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e3Byb3ZpZGVyID0+IHRoaXMuX29uU2F2ZU1hcChwcm92aWRlciwgZmFsc2UpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuc2F2ZU1hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgT1ZFUldSSVRFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8T3ZlcldyaXRlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICB0aXRsZT17Z2V0KHZpc1N0YXRlLCBbJ21hcEluZm8nLCAndGl0bGUnXSl9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e3VpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e3RoaXMuX29uT3ZlcndyaXRlTWFwfVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnT3ZlcndyaXRlIEV4aXN0aW5nIEZpbGU/JyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNIQVJFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8U2hhcmVNYXBNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIG9uRXhwb3J0PXt0aGlzLl9vblNoYXJlTWFwVXJsfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5zaGFyZVVSTCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX29uQ2xvc2VTYXZlTWFwXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb290Tm9kZSA/IChcbiAgICAgICAgPE1vZGFsRGlhbG9nXG4gICAgICAgICAgcGFyZW50U2VsZWN0b3I9eygpID0+IHJvb3ROb2RlIGFzIEhUTUxFbGVtZW50fVxuICAgICAgICAgIGlzT3Blbj17Qm9vbGVhbihjdXJyZW50TW9kYWwpfVxuICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgIHsuLi5tb2RhbFByb3BzfVxuICAgICAgICAgIGNzc1N0eWxlPXtEZWZhdWx0U3R5bGUuY29uY2F0KG1vZGFsUHJvcHMuY3NzU3R5bGUpfVxuICAgICAgICA+XG4gICAgICAgICAge3RlbXBsYXRlfVxuICAgICAgICA8L01vZGFsRGlhbG9nPlxuICAgICAgKSA6IG51bGw7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuICB9XG5cbiAgcmV0dXJuIE1vZGFsQ29udGFpbmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNB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
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.CloudItem = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
11
|
var _moment = _interopRequireDefault(require("moment/moment"));
|
|
10
|
-
var _react =
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
13
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
14
|
var _icons = require("../../common/icons");
|
|
13
15
|
var _templateObject; // SPDX-License-Identifier: MIT
|
|
14
16
|
// Copyright contributors to the kepler.gl project
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
18
|
var MapIcon = function MapIcon(props) {
|
|
16
19
|
return /*#__PURE__*/_react["default"].createElement("div", props, props.children, /*#__PURE__*/_react["default"].createElement(_icons.Base, {
|
|
17
20
|
height: "32px",
|
|
@@ -31,13 +34,58 @@ var StyledVisualizationItem = _styledComponents["default"].div(_templateObject |
|
|
|
31
34
|
var CloudItem = exports.CloudItem = function CloudItem(_ref2) {
|
|
32
35
|
var _vis$description;
|
|
33
36
|
var vis = _ref2.vis,
|
|
34
|
-
onClick = _ref2.onClick
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
onClick = _ref2.onClick,
|
|
38
|
+
provider = _ref2.provider;
|
|
39
|
+
var _useState = (0, _react.useState)(vis.thumbnail),
|
|
40
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
41
|
+
thumbnail = _useState2[0],
|
|
42
|
+
setThumbnail = _useState2[1];
|
|
43
|
+
var rootRef = (0, _react.useRef)(null);
|
|
44
|
+
var loadingRef = (0, _react.useRef)(false);
|
|
45
|
+
(0, _react.useEffect)(function () {
|
|
46
|
+
setThumbnail(vis.thumbnail);
|
|
47
|
+
loadingRef.current = false;
|
|
48
|
+
}, [vis.id, vis.thumbnail]);
|
|
49
|
+
(0, _react.useEffect)(function () {
|
|
50
|
+
var _provider$hasLazyThum;
|
|
51
|
+
if (thumbnail || !(provider !== null && provider !== void 0 && (_provider$hasLazyThum = provider.hasLazyThumbnails) !== null && _provider$hasLazyThum !== void 0 && _provider$hasLazyThum.call(provider)) || !(provider !== null && provider !== void 0 && provider.getMapThumbnail) || !rootRef.current) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
var cancelled = false;
|
|
55
|
+
var el = rootRef.current;
|
|
56
|
+
var observer = new IntersectionObserver(function (entries) {
|
|
57
|
+
var entry = entries[0];
|
|
58
|
+
if (!(entry !== null && entry !== void 0 && entry.isIntersecting) || loadingRef.current || cancelled) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
loadingRef.current = true;
|
|
62
|
+
Promise.resolve(provider.getMapThumbnail(vis)).then(function (url) {
|
|
63
|
+
if (!cancelled && url) {
|
|
64
|
+
setThumbnail(url);
|
|
65
|
+
}
|
|
66
|
+
})["catch"](function () {
|
|
67
|
+
// Keep placeholder icon on failure
|
|
68
|
+
})["finally"](function () {
|
|
69
|
+
observer.disconnect();
|
|
70
|
+
});
|
|
71
|
+
}, {
|
|
72
|
+
root: null,
|
|
73
|
+
rootMargin: '100px',
|
|
74
|
+
threshold: 0.01
|
|
75
|
+
});
|
|
76
|
+
observer.observe(el);
|
|
77
|
+
return function () {
|
|
78
|
+
cancelled = true;
|
|
79
|
+
observer.disconnect();
|
|
80
|
+
};
|
|
81
|
+
}, [thumbnail, provider, vis]);
|
|
82
|
+
var thumbnailStyle = thumbnail ? {
|
|
83
|
+
backgroundImage: "url(".concat(thumbnail, ")")
|
|
84
|
+
} : undefined;
|
|
38
85
|
return /*#__PURE__*/_react["default"].createElement(StyledVisualizationItem, {
|
|
86
|
+
ref: rootRef,
|
|
39
87
|
onClick: onClick
|
|
40
|
-
},
|
|
88
|
+
}, thumbnail ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
41
89
|
role: "thumbnail-wrapper",
|
|
42
90
|
className: "vis_item-thumb",
|
|
43
91
|
style: thumbnailStyle
|
|
@@ -56,4 +104,4 @@ var CloudItem = exports.CloudItem = function CloudItem(_ref2) {
|
|
|
56
104
|
className: "vis_item-modification-date"
|
|
57
105
|
}, "Last modified ", _moment["default"].utc(vis.updatedAt).fromNow()));
|
|
58
106
|
};
|
|
59
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl90ZW1wbGF0ZU9iamVjdCIsIk1hcEljb24iLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZHJlbiIsIkJhc2UiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsImQiLCJQcml2YWN5QmFkZ2UiLCJfcmVmIiwicHJpdmF0ZU1hcCIsImNsYXNzTmFtZSIsIlN0eWxlZFZpc3VhbGl6YXRpb25JdGVtIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJDbG91ZEl0ZW0iLCJleHBvcnRzIiwiX3JlZjIiLCJfdmlzJGRlc2NyaXB0aW9uIiwidmlzIiwib25DbGljayIsInRodW1ibmFpbFN0eWxlIiwiYmFja2dyb3VuZEltYWdlIiwiY29uY2F0IiwidGh1bWJuYWlsIiwicm9sZSIsInN0eWxlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImxlbmd0aCIsIm1vbWVudCIsInV0YyIsInVwZGF0ZWRBdCIsImZyb21Ob3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kYWxzL2Nsb3VkLWNvbXBvbmVudHMvY2xvdWQtaXRlbS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7QmFzZX0gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcblxuY29uc3QgTWFwSWNvbiA9IHByb3BzID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHsuLi5wcm9wc30+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8QmFzZSBoZWlnaHQ9XCIzMnB4XCIgdmlld0JveD17JzAgMCAxNiAxNid9PlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGw9XCIjZDNkOGQ2XCJcbiAgICAgICAgICBkPVwibTEzLjYgMTEuNTcyLTMuMiAyLjEzMzZ2LTkuMjc3NmwzLjItMi4xMzM2em0tMTItNy4xNDQgMy4yLTIuMTMzNnY5LjI3NzZsLTMuMiAyLjEzMzZ6bTEzLjI0NCA4LjIzNzZjMC4yMjI0LTAuMTQ4IDAuMzU2LTAuMzk4NCAwLjM1Ni0wLjY2NTZ2LTExLjJjMC0wLjI5NTItMC4xNjI0LTAuNTY2NC0wLjQyMjQtMC43MDQ4LTAuMjYtMC4xNC0wLjU3Ni0wLjEyNDgtMC44MjE2IDAuMDM5MmwtNC4zMTI4IDIuODc2LTMuNTQzMi0yLjgzNTJjLTAuMTIwOC0wLjA5MzYtMC4yOTUyLTAuMTYyNC0wLjQ3Mi0wLjE2ODgtMC4xNjQ4LTAuMDA2NC0wLjM0OCAwLjA0NjQtMC40NzIgMC4xMjhsLTQuOCAzLjJjLTAuMjIyNCAwLjE0ODgtMC4zNTYgMC4zOTg0LTAuMzU2IDAuNjY1NnYxMS4yYzAgMC4yOTUyIDAuMTYyNCAwLjU2NjQgMC40MjI0IDAuNzA1NiAwLjExODQgMC4wNjMyIDAuMjQ4IDAuMDk0NCAwLjM3NzYgMC4wOTQ0IDAuMTU1MiAwIDAuMzA5Ni0wLjA0NDggMC40NDQtMC4xMzQ0bDQuMzEyOC0yLjg3NiAzLjU0MzIgMi44MzUyYzAuMTQ0OCAwLjExNiAwLjMyMTYgMC4xNzUyIDAuNSAwLjE3NTIgMC4xMTg0IDAgMC4yMzYtMC4wMjQ4IDAuMzQ2NC0wLjA3ODR6XCJcbiAgICAgICAgLz5cbiAgICAgIDwvQmFzZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IFByaXZhY3lCYWRnZSA9ICh7cHJpdmF0ZU1hcH0pID0+IChcbiAgPHNwYW4gY2xhc3NOYW1lPVwidmlzX2l0ZW0tcHJpdmFjeVwiPntwcml2YXRlTWFwID8gJ1ByaXZhdGUnIDogJ1B1YmxpYyd9PC9zcGFuPlxuKTtcblxuY29uc3QgU3R5bGVkVmlzdWFsaXphdGlvbkl0ZW0gPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDIwOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAxNnB4IDhweDtcbiAgY29sb3I6ICMzYTQxNGM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgJjpob3ZlciB7XG4gICAgLnZpc19pdGVtLWljb24sXG4gICAgLnZpc19pdGVtLXRodW1iLFxuICAgIC52aXNfaXRlbS1kZXNjcmlwdGlvbixcbiAgICAudmlzX2l0ZW0tbW9kaWZpY2F0aW9uLWRhdGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYmJiYjtcbiAgfVxuXG4gIC52aXNfaXRlbS1pY29uLFxuICAudmlzX2l0ZW0tdGh1bWIsXG4gIC52aXNfaXRlbS1kZXNjcmlwdGlvbixcbiAgLnZpc19pdGVtLW1vZGlmaWNhdGlvbi1kYXRlIHtcbiAgICBvcGFjaXR5OiAwLjk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2U7XG4gIH1cblxuICAudmlzX2l0ZW0taWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCAxMDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmE3NDg0O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC52aXNfaXRlbS10aHVtYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCAxMDhweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAudmlzX2l0ZW0tcHJpdmFjeSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OCwgNjUsIDc2LCAwLjcpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgfVxuXG4gIC52aXNfaXRlbS10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC52aXNfaXRlbS1kZXNjcmlwdGlvbiB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICB9XG5cbiAgLnZpc19pdGVtLW1vZGlmaWNhdGlvbi1kYXRlIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGNvbG9yOiAjNmE3NDg0O1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ2xvdWRJdGVtID0gKHt2aXMsIG9uQ2xpY2t9KSA9PiB7XG4gIGNvbnN0IHRodW1ibmFpbFN0eWxlID0ge2JhY2tncm91bmRJbWFnZTogYHVybCgke3Zpcy50aHVtYm5haWx9KWB9O1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWRWaXN1YWxpemF0aW9uSXRlbSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIHt2aXMudGh1bWJuYWlsID8gKFxuICAgICAgICA8ZGl2IHJvbGU9XCJ0aHVtYm5haWwtd3JhcHBlclwiIGNsYXNzTmFtZT1cInZpc19pdGVtLXRodW1iXCIgc3R5bGU9e3RodW1ibmFpbFN0eWxlfT5cbiAgICAgICAgICB7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZpcywgJ3ByaXZhdGVNYXAnKSA/IChcbiAgICAgICAgICAgIDxQcml2YWN5QmFkZ2UgcHJpdmF0ZU1hcD17dmlzLnByaXZhdGVNYXB9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPE1hcEljb24gcm9sZT1cIm1hcC1pY29uXCIgY2xhc3NOYW1lPVwidmlzX2l0ZW0taWNvblwiPlxuICAgICAgICAgIHtPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmlzLCAncHJpdmF0ZU1hcCcpID8gKFxuICAgICAgICAgICAgPFByaXZhY3lCYWRnZSBwcml2YXRlTWFwPXt2aXMucHJpdmF0ZU1hcH0gLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9NYXBJY29uPlxuICAgICAgKX1cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInZpc19pdGVtLXRpdGxlXCI+e3Zpcy50aXRsZX08L3NwYW4+XG4gICAgICB7dmlzLmRlc2NyaXB0aW9uPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidmlzX2l0ZW0tZGVzY3JpcHRpb25cIj57dmlzLmRlc2NyaXB0aW9ufTwvc3Bhbj5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2aXNfaXRlbS1tb2RpZmljYXRpb24tZGF0ZVwiPlxuICAgICAgICBMYXN0IG1vZGlmaWVkIHttb21lbnQudXRjKHZpcy51cGRhdGVkQXQpLmZyb21Ob3coKX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L1N0eWxlZFZpc3VhbGl6YXRpb25JdGVtPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQXdDLElBQUFJLGVBQUEsRUFOeEM7QUFDQTtBQU9BLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFHQyxLQUFLLEVBQUk7RUFDdkIsb0JBQ0VMLE1BQUEsWUFBQU0sYUFBQSxRQUFTRCxLQUFLLEVBQ1hBLEtBQUssQ0FBQ0UsUUFBUSxlQUNmUCxNQUFBLFlBQUFNLGFBQUEsQ0FBQ0osTUFBQSxDQUFBTSxJQUFJO0lBQUNDLE1BQU0sRUFBQyxNQUFNO0lBQUNDLE9BQU8sRUFBRTtFQUFZLGdCQUN2Q1YsTUFBQSxZQUFBTSxhQUFBO0lBQ0VLLElBQUksRUFBQyxTQUFTO0lBQ2RDLENBQUMsRUFBQztFQUF1bEIsQ0FDMWxCLENBQ0csQ0FDSCxDQUFDO0FBRVYsQ0FBQztBQUVELElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBQyxJQUFBO0VBQUEsSUFBS0MsVUFBVSxHQUFBRCxJQUFBLENBQVZDLFVBQVU7RUFBQSxvQkFDL0JmLE1BQUEsWUFBQU0sYUFBQTtJQUFNVSxTQUFTLEVBQUM7RUFBa0IsR0FBRUQsVUFBVSxHQUFHLFNBQVMsR0FBRyxRQUFlLENBQUM7QUFBQSxDQUM5RTtBQUVELElBQU1FLHVCQUF1QixHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUFoQixlQUFBLEtBQUFBLGVBQUEsT0FBQWlCLHVCQUFBLDZpREFnRnpDO0FBRU0sSUFBTUMsU0FBUyxHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBRyxTQUFaQSxTQUFTQSxDQUFBRSxLQUFBLEVBQXVCO0VBQUEsSUFBQUMsZ0JBQUE7RUFBQSxJQUFsQkMsR0FBRyxHQUFBRixLQUFBLENBQUhFLEdBQUc7SUFBRUMsT0FBTyxHQUFBSCxLQUFBLENBQVBHLE9BQU87RUFDckMsSUFBTUMsY0FBYyxHQUFHO0lBQUNDLGVBQWUsU0FBQUMsTUFBQSxDQUFTSixHQUFHLENBQUNLLFNBQVM7RUFBRyxDQUFDO0VBQ2pFLG9CQUNFOUIsTUFBQSxZQUFBTSxhQUFBLENBQUNXLHVCQUF1QjtJQUFDUyxPQUFPLEVBQUVBO0VBQVEsR0FDdkNELEdBQUcsQ0FBQ0ssU0FBUyxnQkFDWjlCLE1BQUEsWUFBQU0sYUFBQTtJQUFLeUIsSUFBSSxFQUFDLG1CQUFtQjtJQUFDZixTQUFTLEVBQUMsZ0JBQWdCO0lBQUNnQixLQUFLLEVBQUVMO0VBQWUsR0FDNUVNLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1gsR0FBRyxFQUFFLFlBQVksQ0FBQyxnQkFDdER6QixNQUFBLFlBQUFNLGFBQUEsQ0FBQ08sWUFBWTtJQUFDRSxVQUFVLEVBQUVVLEdBQUcsQ0FBQ1Y7RUFBVyxDQUFFLENBQUMsR0FDMUMsSUFDRCxDQUFDLGdCQUVOZixNQUFBLFlBQUFNLGFBQUEsQ0FBQ0YsT0FBTztJQUFDMkIsSUFBSSxFQUFDLFVBQVU7SUFBQ2YsU0FBUyxFQUFDO0VBQWUsR0FDL0NpQixNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNYLEdBQUcsRUFBRSxZQUFZLENBQUMsZ0JBQ3REekIsTUFBQSxZQUFBTSxhQUFBLENBQUNPLFlBQVk7SUFBQ0UsVUFBVSxFQUFFVSxHQUFHLENBQUNWO0VBQVcsQ0FBRSxDQUFDLEdBQzFDLElBQ0csQ0FDVixlQUNEZixNQUFBLFlBQUFNLGFBQUE7SUFBTVUsU0FBUyxFQUFDO0VBQWdCLEdBQUVTLEdBQUcsQ0FBQ1ksS0FBWSxDQUFDLEVBQ2xELEVBQUFiLGdCQUFBLEdBQUFDLEdBQUcsQ0FBQ2EsV0FBVyxjQUFBZCxnQkFBQSx1QkFBZkEsZ0JBQUEsQ0FBaUJlLE1BQU0sSUFBRyxDQUFDLGlCQUMxQnZDLE1BQUEsWUFBQU0sYUFBQTtJQUFNVSxTQUFTLEVBQUM7RUFBc0IsR0FBRVMsR0FBRyxDQUFDYSxXQUFrQixDQUMvRCxlQUNEdEMsTUFBQSxZQUFBTSxhQUFBO0lBQU1VLFNBQVMsRUFBQztFQUE0QixHQUFDLGdCQUM3QixFQUFDd0Isa0JBQU0sQ0FBQ0MsR0FBRyxDQUFDaEIsR0FBRyxDQUFDaUIsU0FBUyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxDQUM3QyxDQUNpQixDQUFDO0FBRTlCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
107
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ljb25zIiwiX3RlbXBsYXRlT2JqZWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJNYXBJY29uIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiY2hpbGRyZW4iLCJCYXNlIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJkIiwiUHJpdmFjeUJhZGdlIiwiX3JlZiIsInByaXZhdGVNYXAiLCJjbGFzc05hbWUiLCJTdHlsZWRWaXN1YWxpemF0aW9uSXRlbSIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiQ2xvdWRJdGVtIiwiZXhwb3J0cyIsIl9yZWYyIiwiX3ZpcyRkZXNjcmlwdGlvbiIsInZpcyIsIm9uQ2xpY2siLCJwcm92aWRlciIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwidGh1bWJuYWlsIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFRodW1ibmFpbCIsInJvb3RSZWYiLCJ1c2VSZWYiLCJsb2FkaW5nUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImlkIiwiX3Byb3ZpZGVyJGhhc0xhenlUaHVtIiwiaGFzTGF6eVRodW1ibmFpbHMiLCJnZXRNYXBUaHVtYm5haWwiLCJjYW5jZWxsZWQiLCJlbCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZW50cnkiLCJpc0ludGVyc2VjdGluZyIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInVybCIsImRpc2Nvbm5lY3QiLCJyb290Iiwicm9vdE1hcmdpbiIsInRocmVzaG9sZCIsIm9ic2VydmUiLCJ0aHVtYm5haWxTdHlsZSIsImJhY2tncm91bmRJbWFnZSIsImNvbmNhdCIsInVuZGVmaW5lZCIsInJlZiIsInJvbGUiLCJzdHlsZSIsInByb3RvdHlwZSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJsZW5ndGgiLCJtb21lbnQiLCJ1dGMiLCJ1cGRhdGVkQXQiLCJmcm9tTm93Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGFscy9jbG91ZC1jb21wb25lbnRzL2Nsb3VkLWl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtCYXNlfSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuXG5jb25zdCBNYXBJY29uID0gcHJvcHMgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgey4uLnByb3BzfT5cbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDxCYXNlIGhlaWdodD1cIjMycHhcIiB2aWV3Qm94PXsnMCAwIDE2IDE2J30+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZmlsbD1cIiNkM2Q4ZDZcIlxuICAgICAgICAgIGQ9XCJtMTMuNiAxMS41NzItMy4yIDIuMTMzNnYtOS4yNzc2bDMuMi0yLjEzMzZ6bS0xMi03LjE0NCAzLjItMi4xMzM2djkuMjc3NmwtMy4yIDIuMTMzNnptMTMuMjQ0IDguMjM3NmMwLjIyMjQtMC4xNDggMC4zNTYtMC4zOTg0IDAuMzU2LTAuNjY1NnYtMTEuMmMwLTAuMjk1Mi0wLjE2MjQtMC41NjY0LTAuNDIyNC0wLjcwNDgtMC4yNi0wLjE0LTAuNTc2LTAuMTI0OC0wLjgyMTYgMC4wMzkybC00LjMxMjggMi44NzYtMy41NDMyLTIuODM1MmMtMC4xMjA4LTAuMDkzNi0wLjI5NTItMC4xNjI0LTAuNDcyLTAuMTY4OC0wLjE2NDgtMC4wMDY0LTAuMzQ4IDAuMDQ2NC0wLjQ3MiAwLjEyOGwtNC44IDMuMmMtMC4yMjI0IDAuMTQ4OC0wLjM1NiAwLjM5ODQtMC4zNTYgMC42NjU2djExLjJjMCAwLjI5NTIgMC4xNjI0IDAuNTY2NCAwLjQyMjQgMC43MDU2IDAuMTE4NCAwLjA2MzIgMC4yNDggMC4wOTQ0IDAuMzc3NiAwLjA5NDQgMC4xNTUyIDAgMC4zMDk2LTAuMDQ0OCAwLjQ0NC0wLjEzNDRsNC4zMTI4LTIuODc2IDMuNTQzMiAyLjgzNTJjMC4xNDQ4IDAuMTE2IDAuMzIxNiAwLjE3NTIgMC41IDAuMTc1MiAwLjExODQgMCAwLjIzNi0wLjAyNDggMC4zNDY0LTAuMDc4NHpcIlxuICAgICAgICAvPlxuICAgICAgPC9CYXNlPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgUHJpdmFjeUJhZGdlID0gKHtwcml2YXRlTWFwfSkgPT4gKFxuICA8c3BhbiBjbGFzc05hbWU9XCJ2aXNfaXRlbS1wcml2YWN5XCI+e3ByaXZhdGVNYXAgPyAnUHJpdmF0ZScgOiAnUHVibGljJ308L3NwYW4+XG4pO1xuXG5jb25zdCBTdHlsZWRWaXN1YWxpemF0aW9uSXRlbSA9IHN0eWxlZC5kaXZgXG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMjA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDE2cHggOHB4O1xuICBjb2xvcjogIzNhNDE0YztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAmOmhvdmVyIHtcbiAgICAudmlzX2l0ZW0taWNvbixcbiAgICAudmlzX2l0ZW0tdGh1bWIsXG4gICAgLnZpc19pdGVtLWRlc2NyaXB0aW9uLFxuICAgIC52aXNfaXRlbS1tb2RpZmljYXRpb24tZGF0ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiYmJiO1xuICB9XG5cbiAgLnZpc19pdGVtLWljb24sXG4gIC52aXNfaXRlbS10aHVtYixcbiAgLnZpc19pdGVtLWRlc2NyaXB0aW9uLFxuICAudmlzX2l0ZW0tbW9kaWZpY2F0aW9uLWRhdGUge1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZTtcbiAgfVxuXG4gIC52aXNfaXRlbS1pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIDEwOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2YTc0ODQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLnZpc19pdGVtLXRodW1iIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIDEwOHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gIC52aXNfaXRlbS1wcml2YWN5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU4LCA2NSwgNzYsIDAuNyk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB9XG5cbiAgLnZpc19pdGVtLXRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5cbiAgLnZpc19pdGVtLWRlc2NyaXB0aW9uIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cblxuICAudmlzX2l0ZW0tbW9kaWZpY2F0aW9uLWRhdGUge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgZmxleDogMSAwIGF1dG87XG4gICAgY29sb3I6ICM2YTc0ODQ7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDbG91ZEl0ZW0gPSAoe3Zpcywgb25DbGljaywgcHJvdmlkZXJ9KSA9PiB7XG4gIGNvbnN0IFt0aHVtYm5haWwsIHNldFRodW1ibmFpbF0gPSB1c2VTdGF0ZSh2aXMudGh1bWJuYWlsKTtcbiAgY29uc3Qgcm9vdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbG9hZGluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRUaHVtYm5haWwodmlzLnRodW1ibmFpbCk7XG4gICAgbG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gIH0sIFt2aXMuaWQsIHZpcy50aHVtYm5haWxdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIHRodW1ibmFpbCB8fFxuICAgICAgIXByb3ZpZGVyPy5oYXNMYXp5VGh1bWJuYWlscz8uKCkgfHxcbiAgICAgICFwcm92aWRlcj8uZ2V0TWFwVGh1bWJuYWlsIHx8XG4gICAgICAhcm9vdFJlZi5jdXJyZW50XG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGVsID0gcm9vdFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgZW50cmllcyA9PiB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgaWYgKCFlbnRyeT8uaXNJbnRlcnNlY3RpbmcgfHwgbG9hZGluZ1JlZi5jdXJyZW50IHx8IGNhbmNlbGxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsb2FkaW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBQcm9taXNlLnJlc29sdmUocHJvdmlkZXIuZ2V0TWFwVGh1bWJuYWlsKHZpcykpXG4gICAgICAgICAgLnRoZW4odXJsID0+IHtcbiAgICAgICAgICAgIGlmICghY2FuY2VsbGVkICYmIHVybCkge1xuICAgICAgICAgICAgICBzZXRUaHVtYm5haWwodXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBLZWVwIHBsYWNlaG9sZGVyIGljb24gb24gZmFpbHVyZVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHtyb290OiBudWxsLCByb290TWFyZ2luOiAnMTAwcHgnLCB0aHJlc2hvbGQ6IDAuMDF9XG4gICAgKTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUoZWwpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH07XG4gIH0sIFt0aHVtYm5haWwsIHByb3ZpZGVyLCB2aXNdKTtcblxuICBjb25zdCB0aHVtYm5haWxTdHlsZSA9IHRodW1ibmFpbCA/IHtiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHt0aHVtYm5haWx9KWB9IDogdW5kZWZpbmVkO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWRWaXN1YWxpemF0aW9uSXRlbSByZWY9e3Jvb3RSZWZ9IG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAge3RodW1ibmFpbCA/IChcbiAgICAgICAgPGRpdiByb2xlPVwidGh1bWJuYWlsLXdyYXBwZXJcIiBjbGFzc05hbWU9XCJ2aXNfaXRlbS10aHVtYlwiIHN0eWxlPXt0aHVtYm5haWxTdHlsZX0+XG4gICAgICAgICAge09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2aXMsICdwcml2YXRlTWFwJykgPyAoXG4gICAgICAgICAgICA8UHJpdmFjeUJhZGdlIHByaXZhdGVNYXA9e3Zpcy5wcml2YXRlTWFwfSAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxNYXBJY29uIHJvbGU9XCJtYXAtaWNvblwiIGNsYXNzTmFtZT1cInZpc19pdGVtLWljb25cIj5cbiAgICAgICAgICB7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZpcywgJ3ByaXZhdGVNYXAnKSA/IChcbiAgICAgICAgICAgIDxQcml2YWN5QmFkZ2UgcHJpdmF0ZU1hcD17dmlzLnByaXZhdGVNYXB9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvTWFwSWNvbj5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2aXNfaXRlbS10aXRsZVwiPnt2aXMudGl0bGV9PC9zcGFuPlxuICAgICAge3Zpcy5kZXNjcmlwdGlvbj8ubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInZpc19pdGVtLWRlc2NyaXB0aW9uXCI+e3Zpcy5kZXNjcmlwdGlvbn08L3NwYW4+XG4gICAgICApfVxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidmlzX2l0ZW0tbW9kaWZpY2F0aW9uLWRhdGVcIj5cbiAgICAgICAgTGFzdCBtb2RpZmllZCB7bW9tZW50LnV0Yyh2aXMudXBkYXRlZEF0KS5mcm9tTm93KCl9XG4gICAgICA8L3NwYW4+XG4gICAgPC9TdHlsZWRWaXN1YWxpemF0aW9uSXRlbT5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQXdDLElBQUFLLGVBQUEsRUFOeEM7QUFDQTtBQUFBLFNBQUFILHdCQUFBSSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTix1QkFBQSxZQUFBQSx3QkFBQUksQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQU0sRUFBQSxJQUFBZCxDQUFBLGdCQUFB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
|