@kepler.gl/components 3.3.0-alpha.7 → 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/grid.js +2 -2
- package/dist/cjs/common/data-table/index.js +3 -3
- package/dist/cjs/common/file-uploader/file-upload.js +250 -40
- package/dist/cjs/common/icons/circle.js +54 -0
- package/dist/cjs/common/icons/index.js +8 -1
- 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/editor/editor.js +2 -2
- package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/cjs/filters/time-widget.js +2 -2
- package/dist/cjs/map/layer-hover-info.js +2 -2
- package/dist/cjs/map/map-control.js +2 -2
- package/dist/cjs/map/map-draw-panel.js +10 -1
- package/dist/cjs/map-container.js +2 -2
- package/dist/cjs/map-view-state-context.js +3 -3
- package/dist/cjs/modal-container.js +2 -2
- package/dist/cjs/modals/cloud-components/cloud-storage-disclaimer.js +24 -0
- package/dist/cjs/modals/cloud-tile.js +39 -10
- 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-export-video-preview.js +2 -2
- 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-panel/custom-palette.js +2 -2
- package/dist/common/icons/circle.d.ts +10 -0
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/esm/common/data-table/grid.js +2 -2
- package/dist/esm/common/data-table/index.js +3 -3
- package/dist/esm/common/file-uploader/file-upload.js +251 -41
- package/dist/esm/common/icons/circle.js +48 -0
- package/dist/esm/common/icons/index.js +2 -1
- 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/editor/editor.js +2 -2
- package/dist/esm/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/esm/filters/time-widget.js +2 -2
- package/dist/esm/map/layer-hover-info.js +2 -2
- package/dist/esm/map/map-control.js +2 -2
- package/dist/esm/map/map-draw-panel.js +11 -2
- package/dist/esm/map-container.js +2 -2
- package/dist/esm/map-view-state-context.js +3 -3
- package/dist/esm/modal-container.js +2 -2
- package/dist/esm/modals/cloud-components/cloud-storage-disclaimer.js +19 -0
- package/dist/esm/modals/cloud-tile.js +39 -10
- 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-export-video-preview.js +2 -2
- 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-panel/custom-palette.js +2 -2
- package/dist/modals/cloud-components/cloud-storage-disclaimer.d.ts +2 -0
- package/package.json +17 -18
|
@@ -16,7 +16,7 @@ import { createPortal } from 'react-dom';
|
|
|
16
16
|
import styled from 'styled-components';
|
|
17
17
|
import Window from 'global/window';
|
|
18
18
|
import classnames from 'classnames';
|
|
19
|
-
import get from '
|
|
19
|
+
import get from 'es-toolkit/compat/get';
|
|
20
20
|
import { createSelector } from 'reselect';
|
|
21
21
|
import FeatureActionPanelFactory from './feature-action-panel';
|
|
22
22
|
import { EDITOR_AVAILABLE_LAYERS, FILTER_TYPES, EDITOR_MODES, GEOCODER_LAYER_ID, KeyEvent } from '@kepler.gl/constants';
|
|
@@ -208,4 +208,4 @@ export default function EditorFactory(FeatureActionPanel) {
|
|
|
208
208
|
Editor.displayName = 'Editor';
|
|
209
209
|
return Editor;
|
|
210
210
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsImNyZWF0ZVBvcnRhbCIsInN0eWxlZCIsIldpbmRvdyIsImNsYXNzbmFtZXMiLCJnZXQiLCJjcmVhdGVTZWxlY3RvciIsIkZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnkiLCJFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyIsIkZJTFRFUl9UWVBFUyIsIkVESVRPUl9NT0RFUyIsIkdFT0NPREVSX0xBWUVSX0lEIiwiS2V5RXZlbnQiLCJFZGl0b3JMYXllclV0aWxzIiwiUm9vdENvbnRleHQiLCJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsImRpdiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCJlZGl0b3JMYXllckZpbHRlciIsImxheWVyIiwiaW5jbHVkZXMiLCJ0eXBlIiwiRWRpdG9yRmFjdG9yeSIsImRlcHMiLCJGZWF0dXJlQWN0aW9uUGFuZWwiLCJQb3J0YWxFZGl0b3IiLCJfcmVmIiwidmlzaWJsZVBhbmVsIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJzZWxlY3RlZEZlYXR1cmUiLCJkYXRhc2V0cyIsImxheWVycyIsImN1cnJlbnRGaWx0ZXIiLCJvbkNsb3NlIiwib25EZWxldGVGZWF0dXJlIiwib25TZXRGZWF0dXJlUHJvcGVydGllcyIsIm9uVG9nZ2xlTGF5ZXIiLCJwb3NpdGlvbiIsImNyZWF0ZUVsZW1lbnQiLCJDb25zdW1lciIsImNvbnRleHQiLCJfY29udGV4dCRjdXJyZW50IiwiRnJhZ21lbnQiLCJjdXJyZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiRWRpdG9yVW5tZW1vaXplZCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2NhbGxTdXBlciIsImNvbmNhdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInByb3BzIiwiZmlsdGVycyIsImZpbHRlclNlbGVjdG9yIiwic2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkIiwiZmluZCIsImYiLCJ2YWx1ZSIsImlkIiwibGF5ZXJTZWxlY3RvciIsImZpbHRlciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJpc1Zpc2libGUiLCJlZGl0b3JGZWF0dXJlU2VsZWN0b3IiLCJlZGl0b3JGZWF0dXJlcyIsInBvbHlnb24iLCJtYXAiLCJfZG9jdW1lbnQkYWN0aXZlRWxlbWUiLCJhY3RpdmVFbGVtZW50IiwidGFyZ2V0IiwiZWxlbWVudCIsInRhZ05hbWUiLCJCb29sZWFuIiwiaXNDb250ZW50RWRpdGFibGUiLCJldmVudCIsImlzRXNjYXBlIiwia2V5Q29kZSIsIkRPTV9WS19FU0NBUEUiLCJrZXkiLCJpc1R5cGluZ1RhcmdldCIsImRyYXdpbmciLCJpc0RyYXdpbmdBY3RpdmUiLCJlZGl0b3IiLCJtb2RlIiwib25TZXRFZGl0b3JNb2RlIiwiRURJVCIsIm9uU2VsZWN0IiwiaXNJbkZvY3VzIiwiRE9NX1ZLX0RFTEVURSIsIkRPTV9WS19CQUNLX1NQQUNFIiwiX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlIiwib25Ub2dnbGVQb2x5Z29uRmlsdGVyIiwiZmVhdHVyZSIsInByb3BlcnRpZXMiLCJfaW5oZXJpdHMiLCJfY3JlYXRlQ2xhc3MiLCJjb21wb25lbnREaWRNb3VudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJfb25LZXlQcmVzc2VkIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJpbmRleCIsInNlbGVjdGlvbkNvbnRleHQiLCJjdXJyZW50RmlsdGVyU2VsZWN0b3IiLCJhdmFpbGFibGVMYXllcnMiLCJhdmFpbGFibGVMYXllcnNTZWxlY3RvciIsIl9yZWYyIiwicmlnaHRDbGljayIsIm1hcEluZGV4IiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl9vblNldEZlYXR1cmVQcm9wZXJ0aWVzIiwiX3RvZ2dsZVBvbHlnb25GaWx0ZXIiLCJFZGl0b3IiLCJtZW1vIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWRpdG9yL2VkaXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDU1NQcm9wZXJ0aWVzLCBLZXlib2FyZEV2ZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVBvcnRhbH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCBGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5LCB7RmVhdHVyZUFjdGlvblBhbmVsUHJvcHN9IGZyb20gJy4vZmVhdHVyZS1hY3Rpb24tcGFuZWwnO1xuaW1wb3J0IHtcbiAgRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMsXG4gIEZJTFRFUl9UWVBFUyxcbiAgRURJVE9SX01PREVTLFxuICBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgS2V5RXZlbnRcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllciwgRWRpdG9yTGF5ZXJVdGlsc30gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtGaWx0ZXIsIEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0LCBGZWF0dXJlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RmVhdHVyZSBhcyBFZGl0YWJsZUZlYXR1cmUsIFBvbHlnb259IGZyb20gJ0BkZWNrLmdsLWNvbW11bml0eS9lZGl0YWJsZS1sYXllcnMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuXG5jb25zdCBERUNLR0xfUkVOREVSX0xBWUVSID0gJ2RlZmF1bHQtZGVja2dsLW92ZXJsYXktd3JhcHBlcic7XG5cbmNvbnN0IFN0eWxlZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG5jb25zdCBlZGl0b3JMYXllckZpbHRlciA9IChsYXllcjogTGF5ZXIpID0+IEVESVRPUl9BVkFJTEFCTEVfTEFZRVJTLmluY2x1ZGVzKGxheWVyLnR5cGUgfHwgJycpO1xuXG5FZGl0b3JGYWN0b3J5LmRlcHMgPSBbRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeV07XG5cbmludGVyZmFjZSBFZGl0b3JQcm9wcyB7XG4gIGZpbHRlcnM6IEZpbHRlcltdO1xuICBsYXllcnM6IExheWVyW107XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgZWRpdG9yOiB7c2VsZWN0ZWRGZWF0dXJlOiBGZWF0dXJlOyBtb2RlOiBzdHJpbmc7IHNlbGVjdGlvbkNvbnRleHQ/OiBGZWF0dXJlU2VsZWN0aW9uQ29udGV4dH07XG4gIGluZGV4OiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU6IENTU1Byb3BlcnRpZXM7XG4gIG9uU2VsZWN0OiAoZjogRmVhdHVyZSB8IG51bGwpID0+IGFueTtcbiAgb25TZXRFZGl0b3JNb2RlOiAobTogYW55KSA9PiB2b2lkO1xuICBvbkRlbGV0ZUZlYXR1cmU6IChmOiBGZWF0dXJlKSA9PiBhbnk7XG4gIG9uU2V0RmVhdHVyZVByb3BlcnRpZXM6IChmOiBGZWF0dXJlLCBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gYW55O1xuICBvblRvZ2dsZVBvbHlnb25GaWx0ZXI6IChsOiBMYXllciwgZjogRmVhdHVyZSkgPT4gYW55O1xufVxuXG5leHBvcnQgdHlwZSBQb3J0YWxFZGl0b3JQcm9wcyA9IEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzICYge1xuICB2aXNpYmxlUGFuZWw6IGJvb2xlYW47XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVkaXRvckZhY3RvcnkoXG4gIEZlYXR1cmVBY3Rpb25QYW5lbDogUmVhY3QuRkM8RmVhdHVyZUFjdGlvblBhbmVsUHJvcHM+XG4pOiBSZWFjdC5Db21wb25lbnRDbGFzczxFZGl0b3JQcm9wcz4ge1xuICBjb25zdCBQb3J0YWxFZGl0b3I6IFJlYWN0LkZDPFBvcnRhbEVkaXRvclByb3BzPiA9ICh7XG4gICAgdmlzaWJsZVBhbmVsLFxuICAgIGNsYXNzTmFtZSxcbiAgICBzdHlsZSxcbiAgICBzZWxlY3RlZEZlYXR1cmUsXG4gICAgZGF0YXNldHMsXG4gICAgbGF5ZXJzLFxuICAgIGN1cnJlbnRGaWx0ZXIsXG4gICAgb25DbG9zZSxcbiAgICBvbkRlbGV0ZUZlYXR1cmUsXG4gICAgb25TZXRGZWF0dXJlUHJvcGVydGllcyxcbiAgICBvblRvZ2dsZUxheWVyLFxuICAgIHBvc2l0aW9uXG4gIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFJvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7Y29udGV4dCA9PiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHtjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICAgIDxTdHlsZWRXcmFwcGVyIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZWRpdG9yJywgY2xhc3NOYW1lKX0gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICB7dmlzaWJsZVBhbmVsID8gKFxuICAgICAgICAgICAgICAgICAgPEZlYXR1cmVBY3Rpb25QYW5lbFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEZlYXR1cmU9e3NlbGVjdGVkRmVhdHVyZSBhcyBFZGl0YWJsZUZlYXR1cmU8UG9seWdvbj59XG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWx0ZXI9e2N1cnJlbnRGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlRmVhdHVyZT17b25EZWxldGVGZWF0dXJlfVxuICAgICAgICAgICAgICAgICAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzPXtvblNldEZlYXR1cmVQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICAgICAgICBvblRvZ2dsZUxheWVyPXtvblRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb24gfHwgbnVsbH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3R5bGVkV3JhcHBlcj4sXG4gICAgICAgICAgICAgIGNvbnRleHQ/LmN1cnJlbnQgPz8gZG9jdW1lbnQuYm9keVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvUm9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgKTtcbiAgfTtcbiAgY2xhc3MgRWRpdG9yVW5tZW1vaXplZCBleHRlbmRzIENvbXBvbmVudDxFZGl0b3JQcm9wcz4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7fTtcblxuICAgIHN0YXRpYyBkaXNwbGF5TmFtZSA9ICdFZGl0b3InO1xuXG4gICAgc3RhdGUgPSB7fTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleVByZXNzZWQpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgV2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleVByZXNzZWQpO1xuICAgIH1cblxuICAgIGxheWVyU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBwcm9wcy5sYXllcnM7XG4gICAgZmlsdGVyU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBwcm9wcy5maWx0ZXJzO1xuICAgIHNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PlxuICAgICAgZ2V0KHByb3BzLCBbJ2VkaXRvcicsICdzZWxlY3RlZEZlYXR1cmUnLCAnaWQnXSk7XG4gICAgZWRpdG9yRmVhdHVyZVNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT4gZ2V0KHByb3BzLCBbJ2VkaXRvcicsICdmZWF0dXJlcyddKTtcblxuICAgIGN1cnJlbnRGaWx0ZXJTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5maWx0ZXJTZWxlY3RvcixcbiAgICAgIHRoaXMuc2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvcixcbiAgICAgIChmaWx0ZXJzLCBzZWxlY3RlZEZlYXR1cmVJZCkgPT4gZmlsdGVycy5maW5kKGYgPT4gZi52YWx1ZSAmJiBmLnZhbHVlLmlkID09PSBzZWxlY3RlZEZlYXR1cmVJZClcbiAgICApO1xuXG4gICAgYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLmxheWVyU2VsZWN0b3IsIGxheWVycyA9PlxuICAgICAgbGF5ZXJzXG4gICAgICAgIC5maWx0ZXIoZWRpdG9yTGF5ZXJGaWx0ZXIpXG4gICAgICAgIC5maWx0ZXIobGF5ZXIgPT4gbGF5ZXIuY29uZmlnPy5pc1Zpc2libGUgJiYgbGF5ZXIuaWQgIT09IEdFT0NPREVSX0xBWUVSX0lEKVxuICAgICk7XG5cbiAgICBhbGxGZWF0dXJlc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5lZGl0b3JGZWF0dXJlU2VsZWN0b3IsXG4gICAgICAoZmlsdGVycywgZWRpdG9yRmVhdHVyZXMpID0+XG4gICAgICAgIGZpbHRlcnNcbiAgICAgICAgICAuZmlsdGVyKGYgPT4gZi50eXBlID09PSBGSUxURVJfVFlQRVMucG9seWdvbilcbiAgICAgICAgICAubWFwKGYgPT4gZi52YWx1ZSlcbiAgICAgICAgICAuY29uY2F0KGVkaXRvckZlYXR1cmVzKVxuICAgICk7XG5cbiAgICBpc0luRm9jdXMgPSAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5pZCA9PT0gREVDS0dMX1JFTkRFUl9MQVlFUjtcblxuICAgIGlzVHlwaW5nVGFyZ2V0ID0gKHRhcmdldDogRXZlbnRUYXJnZXQgfCBudWxsKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBjb25zdCB0YWdOYW1lID0gZWxlbWVudC50YWdOYW1lO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGFnTmFtZSA9PT0gJ0lOUFVUJyB8fFxuICAgICAgICB0YWdOYW1lID09PSAnVEVYVEFSRUEnIHx8XG4gICAgICAgIHRhZ05hbWUgPT09ICdTRUxFQ1QnIHx8XG4gICAgICAgIEJvb2xlYW4oZWxlbWVudC5pc0NvbnRlbnRFZGl0YWJsZSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIF9vbktleVByZXNzZWQgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGlzRXNjYXBlID0gZXZlbnQua2V5Q29kZSA9PT0gS2V5RXZlbnQuRE9NX1ZLX0VTQ0FQRSB8fCBldmVudC5rZXkgPT09ICdFc2NhcGUnO1xuICAgICAgaWYgKGlzRXNjYXBlICYmICF0aGlzLmlzVHlwaW5nVGFyZ2V0KGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgZHJhd2luZyA9IEVkaXRvckxheWVyVXRpbHMuaXNEcmF3aW5nQWN0aXZlKHRydWUsIHRoaXMucHJvcHMuZWRpdG9yLm1vZGUpO1xuICAgICAgICBpZiAoZHJhd2luZykge1xuICAgICAgICAgIHRoaXMucHJvcHMub25TZXRFZGl0b3JNb2RlKEVESVRPUl9NT0RFUy5FRElUKTtcbiAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KG51bGwpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNJbkZvY3VzKCkpIHtcbiAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNJbkZvY3VzKCkpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfREVMRVRFOlxuICAgICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0JBQ0tfU1BBQ0U6XG4gICAgICAgICAgICB0aGlzLl9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHtlZGl0b3J9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gZWRpdG9yO1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uRGVsZXRlRmVhdHVyZShzZWxlY3RlZEZlYXR1cmUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfY2xvc2VGZWF0dXJlQWN0aW9uID0gKCkgPT4ge1xuICAgICAgLy8gcmVzZXQgc2VsZWN0aW9uIGNvbnRleHRcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gdGhpcy5wcm9wcy5lZGl0b3I7XG4gICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgfTtcblxuICAgIF90b2dnbGVQb2x5Z29uRmlsdGVyID0gKGxheWVyOiBMYXllcikgPT4ge1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSB0aGlzLnByb3BzLmVkaXRvcjtcbiAgICAgIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblRvZ2dsZVBvbHlnb25GaWx0ZXIobGF5ZXIsIHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vblNldEZlYXR1cmVQcm9wZXJ0aWVzID0gKGZlYXR1cmU6IEZlYXR1cmUsIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICB0aGlzLnByb3BzLm9uU2V0RmVhdHVyZVByb3BlcnRpZXMoZmVhdHVyZSwgcHJvcGVydGllcyk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtjbGFzc05hbWUsIGRhdGFzZXRzLCBlZGl0b3IsIHN0eWxlLCBpbmRleH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZSwgc2VsZWN0aW9uQ29udGV4dH0gPSBlZGl0b3I7XG4gICAgICBjb25zdCBjdXJyZW50RmlsdGVyID0gdGhpcy5jdXJyZW50RmlsdGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBhdmFpbGFibGVMYXllcnMgPSB0aGlzLmF2YWlsYWJsZUxheWVyc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB7cmlnaHRDbGljaywgcG9zaXRpb24sIG1hcEluZGV4fSA9IHNlbGVjdGlvbkNvbnRleHQgfHwge307XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxQb3J0YWxFZGl0b3JcbiAgICAgICAgICBzZWxlY3RlZEZlYXR1cmU9e3NlbGVjdGVkRmVhdHVyZSBhcyBFZGl0YWJsZUZlYXR1cmU8UG9seWdvbj59XG4gICAgICAgICAgdmlzaWJsZVBhbmVsPXtCb29sZWFuKHJpZ2h0Q2xpY2spICYmIHNlbGVjdGVkRmVhdHVyZSAmJiBpbmRleCA9PT0gbWFwSW5kZXh9XG4gICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgIGxheWVycz17YXZhaWxhYmxlTGF5ZXJzfVxuICAgICAgICAgIGN1cnJlbnRGaWx0ZXI9e2N1cnJlbnRGaWx0ZXJ9XG4gICAgICAgICAgb25DbG9zZT17dGhpcy5fY2xvc2VGZWF0dXJlQWN0aW9ufVxuICAgICAgICAgIG9uRGVsZXRlRmVhdHVyZT17dGhpcy5fb25EZWxldGVTZWxlY3RlZEZlYXR1cmV9XG4gICAgICAgICAgb25TZXRGZWF0dXJlUHJvcGVydGllcz17XG4gICAgICAgICAgICB0aGlzLl9vblNldEZlYXR1cmVQcm9wZXJ0aWVzIGFzIEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzWydvblNldEZlYXR1cmVQcm9wZXJ0aWVzJ11cbiAgICAgICAgICB9XG4gICAgICAgICAgb25Ub2dnbGVMYXllcj17dGhpcy5fdG9nZ2xlUG9seWdvbkZpbHRlcn1cbiAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb24gfHwgbnVsbH1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IEVkaXRvciA9IFJlYWN0Lm1lbW8oRWRpdG9yVW5tZW1vaXplZCkgYXMgdW5rbm93biBhcyB0eXBlb2YgRWRpdG9yVW5tZW1vaXplZDtcbiAgRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0VkaXRvcic7XG4gIHJldHVybiBFZGl0b3I7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztB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
|
|
211
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsImNyZWF0ZVBvcnRhbCIsInN0eWxlZCIsIldpbmRvdyIsImNsYXNzbmFtZXMiLCJnZXQiLCJjcmVhdGVTZWxlY3RvciIsIkZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnkiLCJFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyIsIkZJTFRFUl9UWVBFUyIsIkVESVRPUl9NT0RFUyIsIkdFT0NPREVSX0xBWUVSX0lEIiwiS2V5RXZlbnQiLCJFZGl0b3JMYXllclV0aWxzIiwiUm9vdENvbnRleHQiLCJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsImRpdiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCJlZGl0b3JMYXllckZpbHRlciIsImxheWVyIiwiaW5jbHVkZXMiLCJ0eXBlIiwiRWRpdG9yRmFjdG9yeSIsImRlcHMiLCJGZWF0dXJlQWN0aW9uUGFuZWwiLCJQb3J0YWxFZGl0b3IiLCJfcmVmIiwidmlzaWJsZVBhbmVsIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJzZWxlY3RlZEZlYXR1cmUiLCJkYXRhc2V0cyIsImxheWVycyIsImN1cnJlbnRGaWx0ZXIiLCJvbkNsb3NlIiwib25EZWxldGVGZWF0dXJlIiwib25TZXRGZWF0dXJlUHJvcGVydGllcyIsIm9uVG9nZ2xlTGF5ZXIiLCJwb3NpdGlvbiIsImNyZWF0ZUVsZW1lbnQiLCJDb25zdW1lciIsImNvbnRleHQiLCJfY29udGV4dCRjdXJyZW50IiwiRnJhZ21lbnQiLCJjdXJyZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiRWRpdG9yVW5tZW1vaXplZCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2NhbGxTdXBlciIsImNvbmNhdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInByb3BzIiwiZmlsdGVycyIsImZpbHRlclNlbGVjdG9yIiwic2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkIiwiZmluZCIsImYiLCJ2YWx1ZSIsImlkIiwibGF5ZXJTZWxlY3RvciIsImZpbHRlciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJpc1Zpc2libGUiLCJlZGl0b3JGZWF0dXJlU2VsZWN0b3IiLCJlZGl0b3JGZWF0dXJlcyIsInBvbHlnb24iLCJtYXAiLCJfZG9jdW1lbnQkYWN0aXZlRWxlbWUiLCJhY3RpdmVFbGVtZW50IiwidGFyZ2V0IiwiZWxlbWVudCIsInRhZ05hbWUiLCJCb29sZWFuIiwiaXNDb250ZW50RWRpdGFibGUiLCJldmVudCIsImlzRXNjYXBlIiwia2V5Q29kZSIsIkRPTV9WS19FU0NBUEUiLCJrZXkiLCJpc1R5cGluZ1RhcmdldCIsImRyYXdpbmciLCJpc0RyYXdpbmdBY3RpdmUiLCJlZGl0b3IiLCJtb2RlIiwib25TZXRFZGl0b3JNb2RlIiwiRURJVCIsIm9uU2VsZWN0IiwiaXNJbkZvY3VzIiwiRE9NX1ZLX0RFTEVURSIsIkRPTV9WS19CQUNLX1NQQUNFIiwiX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlIiwib25Ub2dnbGVQb2x5Z29uRmlsdGVyIiwiZmVhdHVyZSIsInByb3BlcnRpZXMiLCJfaW5oZXJpdHMiLCJfY3JlYXRlQ2xhc3MiLCJjb21wb25lbnREaWRNb3VudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJfb25LZXlQcmVzc2VkIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJpbmRleCIsInNlbGVjdGlvbkNvbnRleHQiLCJjdXJyZW50RmlsdGVyU2VsZWN0b3IiLCJhdmFpbGFibGVMYXllcnMiLCJhdmFpbGFibGVMYXllcnNTZWxlY3RvciIsIl9yZWYyIiwicmlnaHRDbGljayIsIm1hcEluZGV4IiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl9vblNldEZlYXR1cmVQcm9wZXJ0aWVzIiwiX3RvZ2dsZVBvbHlnb25GaWx0ZXIiLCJFZGl0b3IiLCJtZW1vIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWRpdG9yL2VkaXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDU1NQcm9wZXJ0aWVzLCBLZXlib2FyZEV2ZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVBvcnRhbH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGdldCBmcm9tICdlcy10b29sa2l0L2NvbXBhdC9nZXQnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IEZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnksIHtGZWF0dXJlQWN0aW9uUGFuZWxQcm9wc30gZnJvbSAnLi9mZWF0dXJlLWFjdGlvbi1wYW5lbCc7XG5pbXBvcnQge1xuICBFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyxcbiAgRklMVEVSX1RZUEVTLFxuICBFRElUT1JfTU9ERVMsXG4gIEdFT0NPREVSX0xBWUVSX0lELFxuICBLZXlFdmVudFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyLCBFZGl0b3JMYXllclV0aWxzfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0ZpbHRlciwgRmVhdHVyZVNlbGVjdGlvbkNvbnRleHQsIEZlYXR1cmV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZSwgUG9seWdvbn0gZnJvbSAnQGRlY2suZ2wtY29tbXVuaXR5L2VkaXRhYmxlLWxheWVycyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcblxuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnLi4vY29udGV4dCc7XG5cbmNvbnN0IERFQ0tHTF9SRU5ERVJfTEFZRVIgPSAnZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheS13cmFwcGVyJztcblxuY29uc3QgU3R5bGVkV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IGVkaXRvckxheWVyRmlsdGVyID0gKGxheWVyOiBMYXllcikgPT4gRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMuaW5jbHVkZXMobGF5ZXIudHlwZSB8fCAnJyk7XG5cbkVkaXRvckZhY3RvcnkuZGVwcyA9IFtGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5XTtcblxuaW50ZXJmYWNlIEVkaXRvclByb3BzIHtcbiAgZmlsdGVyczogRmlsdGVyW107XG4gIGxheWVyczogTGF5ZXJbXTtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBlZGl0b3I6IHtzZWxlY3RlZEZlYXR1cmU6IEZlYXR1cmU7IG1vZGU6IHN0cmluZzsgc2VsZWN0aW9uQ29udGV4dD86IEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0fTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzdHlsZTogQ1NTUHJvcGVydGllcztcbiAgb25TZWxlY3Q6IChmOiBGZWF0dXJlIHwgbnVsbCkgPT4gYW55O1xuICBvblNldEVkaXRvck1vZGU6IChtOiBhbnkpID0+IHZvaWQ7XG4gIG9uRGVsZXRlRmVhdHVyZTogKGY6IEZlYXR1cmUpID0+IGFueTtcbiAgb25TZXRGZWF0dXJlUHJvcGVydGllczogKGY6IEZlYXR1cmUsIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBhbnk7XG4gIG9uVG9nZ2xlUG9seWdvbkZpbHRlcjogKGw6IExheWVyLCBmOiBGZWF0dXJlKSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBvcnRhbEVkaXRvclByb3BzID0gRmVhdHVyZUFjdGlvblBhbmVsUHJvcHMgJiB7XG4gIHZpc2libGVQYW5lbDogYm9vbGVhbjtcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWRpdG9yRmFjdG9yeShcbiAgRmVhdHVyZUFjdGlvblBhbmVsOiBSZWFjdC5GQzxGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcz5cbik6IFJlYWN0LkNvbXBvbmVudENsYXNzPEVkaXRvclByb3BzPiB7XG4gIGNvbnN0IFBvcnRhbEVkaXRvcjogUmVhY3QuRkM8UG9ydGFsRWRpdG9yUHJvcHM+ID0gKHtcbiAgICB2aXNpYmxlUGFuZWwsXG4gICAgY2xhc3NOYW1lLFxuICAgIHN0eWxlLFxuICAgIHNlbGVjdGVkRmVhdHVyZSxcbiAgICBkYXRhc2V0cyxcbiAgICBsYXllcnMsXG4gICAgY3VycmVudEZpbHRlcixcbiAgICBvbkNsb3NlLFxuICAgIG9uRGVsZXRlRmVhdHVyZSxcbiAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzLFxuICAgIG9uVG9nZ2xlTGF5ZXIsXG4gICAgcG9zaXRpb25cbiAgfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8Um9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAge2NyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdlZGl0b3InLCBjbGFzc05hbWUpfSBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgIHt2aXNpYmxlUGFuZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8RmVhdHVyZUFjdGlvblBhbmVsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRmVhdHVyZT17c2VsZWN0ZWRGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZTxQb2x5Z29uPn1cbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbHRlcj17Y3VycmVudEZpbHRlcn1cbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgICAgICAgICAgICAgICAgb25EZWxldGVGZWF0dXJlPXtvbkRlbGV0ZUZlYXR1cmV9XG4gICAgICAgICAgICAgICAgICAgIG9uU2V0RmVhdHVyZVByb3BlcnRpZXM9e29uU2V0RmVhdHVyZVByb3BlcnRpZXN9XG4gICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlTGF5ZXI9e29uVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbiB8fCBudWxsfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRXcmFwcGVyPixcbiAgICAgICAgICAgICAgY29udGV4dD8uY3VycmVudCA/PyBkb2N1bWVudC5ib2R5XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9Sb290Q29udGV4dC5Db25zdW1lcj5cbiAgICApO1xuICB9O1xuICBjbGFzcyBFZGl0b3JVbm1lbW9pemVkIGV4dGVuZHMgQ29tcG9uZW50PEVkaXRvclByb3BzPiB7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHt9O1xuXG4gICAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0VkaXRvcic7XG5cbiAgICBzdGF0ZSA9IHt9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5UHJlc3NlZCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5UHJlc3NlZCk7XG4gICAgfVxuXG4gICAgbGF5ZXJTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IHByb3BzLmxheWVycztcbiAgICBmaWx0ZXJTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IHByb3BzLmZpbHRlcnM7XG4gICAgc2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+XG4gICAgICBnZXQocHJvcHMsIFsnZWRpdG9yJywgJ3NlbGVjdGVkRmVhdHVyZScsICdpZCddKTtcbiAgICBlZGl0b3JGZWF0dXJlU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBnZXQocHJvcHMsIFsnZWRpdG9yJywgJ2ZlYXR1cmVzJ10pO1xuXG4gICAgY3VycmVudEZpbHRlclNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5zZWxlY3RlZEZlYXR1cmVJZFNlbGVjdG9yLFxuICAgICAgKGZpbHRlcnMsIHNlbGVjdGVkRmVhdHVyZUlkKSA9PiBmaWx0ZXJzLmZpbmQoZiA9PiBmLnZhbHVlICYmIGYudmFsdWUuaWQgPT09IHNlbGVjdGVkRmVhdHVyZUlkKVxuICAgICk7XG5cbiAgICBhdmFpbGFibGVMYXllcnNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMubGF5ZXJTZWxlY3RvciwgbGF5ZXJzID0+XG4gICAgICBsYXllcnNcbiAgICAgICAgLmZpbHRlcihlZGl0b3JMYXllckZpbHRlcilcbiAgICAgICAgLmZpbHRlcihsYXllciA9PiBsYXllci5jb25maWc/LmlzVmlzaWJsZSAmJiBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQpXG4gICAgKTtcblxuICAgIGFsbEZlYXR1cmVzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLmVkaXRvckZlYXR1cmVTZWxlY3RvcixcbiAgICAgIChmaWx0ZXJzLCBlZGl0b3JGZWF0dXJlcykgPT5cbiAgICAgICAgZmlsdGVyc1xuICAgICAgICAgIC5maWx0ZXIoZiA9PiBmLnR5cGUgPT09IEZJTFRFUl9UWVBFUy5wb2x5Z29uKVxuICAgICAgICAgIC5tYXAoZiA9PiBmLnZhbHVlKVxuICAgICAgICAgIC5jb25jYXQoZWRpdG9yRmVhdHVyZXMpXG4gICAgKTtcblxuICAgIGlzSW5Gb2N1cyA9ICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmlkID09PSBERUNLR0xfUkVOREVSX0xBWUVSO1xuXG4gICAgaXNUeXBpbmdUYXJnZXQgPSAodGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWU7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0YWdOYW1lID09PSAnSU5QVVQnIHx8XG4gICAgICAgIHRhZ05hbWUgPT09ICdURVhUQVJFQScgfHxcbiAgICAgICAgdGFnTmFtZSA9PT0gJ1NFTEVDVCcgfHxcbiAgICAgICAgQm9vbGVhbihlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgX29uS2V5UHJlc3NlZCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgY29uc3QgaXNFc2NhcGUgPSBldmVudC5rZXlDb2RlID09PSBLZXlFdmVudC5ET01fVktfRVNDQVBFIHx8IGV2ZW50LmtleSA9PT0gJ0VzY2FwZSc7XG4gICAgICBpZiAoaXNFc2NhcGUgJiYgIXRoaXMuaXNUeXBpbmdUYXJnZXQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICBjb25zdCBkcmF3aW5nID0gRWRpdG9yTGF5ZXJVdGlscy5pc0RyYXdpbmdBY3RpdmUodHJ1ZSwgdGhpcy5wcm9wcy5lZGl0b3IubW9kZSk7XG4gICAgICAgIGlmIChkcmF3aW5nKSB7XG4gICAgICAgICAgdGhpcy5wcm9wcy5vblNldEVkaXRvck1vZGUoRURJVE9SX01PREVTLkVESVQpO1xuICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QobnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0luRm9jdXMoKSkge1xuICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0luRm9jdXMoKSkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19ERUxFVEU6XG4gICAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfQkFDS19TUEFDRTpcbiAgICAgICAgICAgIHRoaXMuX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlID0gKCkgPT4ge1xuICAgICAgY29uc3Qge2VkaXRvcn0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSBlZGl0b3I7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25EZWxldGVGZWF0dXJlKHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9jbG9zZUZlYXR1cmVBY3Rpb24gPSAoKSA9PiB7XG4gICAgICAvLyByZXNldCBzZWxlY3Rpb24gY29udGV4dFxuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSB0aGlzLnByb3BzLmVkaXRvcjtcbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3Qoc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICB9O1xuXG4gICAgX3RvZ2dsZVBvbHlnb25GaWx0ZXIgPSAobGF5ZXI6IExheWVyKSA9PiB7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlfSA9IHRoaXMucHJvcHMuZWRpdG9yO1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uVG9nZ2xlUG9seWdvbkZpbHRlcihsYXllciwgc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uU2V0RmVhdHVyZVByb3BlcnRpZXMgPSAoZmVhdHVyZTogRmVhdHVyZSwgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIHRoaXMucHJvcHMub25TZXRGZWF0dXJlUHJvcGVydGllcyhmZWF0dXJlLCBwcm9wZXJ0aWVzKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2NsYXNzTmFtZSwgZGF0YXNldHMsIGVkaXRvciwgc3R5bGUsIGluZGV4fSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlLCBzZWxlY3Rpb25Db250ZXh0fSA9IGVkaXRvcjtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSB0aGlzLmN1cnJlbnRGaWx0ZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZUxheWVycyA9IHRoaXMuYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IHtyaWdodENsaWNrLCBwb3NpdGlvbiwgbWFwSW5kZXh9ID0gc2VsZWN0aW9uQ29udGV4dCB8fCB7fTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFBvcnRhbEVkaXRvclxuICAgICAgICAgIHNlbGVjdGVkRmVhdHVyZT17c2VsZWN0ZWRGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZTxQb2x5Z29uPn1cbiAgICAgICAgICB2aXNpYmxlUGFuZWw9e0Jvb2xlYW4ocmlnaHRDbGljaykgJiYgc2VsZWN0ZWRGZWF0dXJlICYmIGluZGV4ID09PSBtYXBJbmRleH1cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgbGF5ZXJzPXthdmFpbGFibGVMYXllcnN9XG4gICAgICAgICAgY3VycmVudEZpbHRlcj17Y3VycmVudEZpbHRlcn1cbiAgICAgICAgICBvbkNsb3NlPXt0aGlzLl9jbG9zZUZlYXR1cmVBY3Rpb259XG4gICAgICAgICAgb25EZWxldGVGZWF0dXJlPXt0aGlzLl9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZX1cbiAgICAgICAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzPXtcbiAgICAgICAgICAgIHRoaXMuX29uU2V0RmVhdHVyZVByb3BlcnRpZXMgYXMgRmVhdHVyZUFjdGlvblBhbmVsUHJvcHNbJ29uU2V0RmVhdHVyZVByb3BlcnRpZXMnXVxuICAgICAgICAgIH1cbiAgICAgICAgICBvblRvZ2dsZUxheWVyPXt0aGlzLl90b2dnbGVQb2x5Z29uRmlsdGVyfVxuICAgICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbiB8fCBudWxsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgRWRpdG9yID0gUmVhY3QubWVtbyhFZGl0b3JVbm1lbW9pemVkKSBhcyB1bmtub3duIGFzIHR5cGVvZiBFZGl0b3JVbm1lbW9pemVkO1xuICBFZGl0b3IuZGlzcGxheU5hbWUgPSAnRWRpdG9yJztcbiAgcmV0dXJuIEVkaXRvcjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztB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
|
|
@@ -8,7 +8,7 @@ import PanelHeaderActionFactory from '../../side-panel/panel-header-action';
|
|
|
8
8
|
import { EyeSeen, EyeUnseen } from '../../common/icons';
|
|
9
9
|
import FilterPanelHeaderFactory from '../../side-panel/filter-panel/filter-panel-header';
|
|
10
10
|
import { StyledFilterPanel } from '../components';
|
|
11
|
-
import get from '
|
|
11
|
+
import get from 'es-toolkit/compat/get';
|
|
12
12
|
PolygonFilterPanelFactory.deps = [FilterPanelHeaderFactory, PolygonFilterFactory, PanelHeaderActionFactory];
|
|
13
13
|
function PolygonFilterPanelFactory(FilterPanelHeader, PolygonFilter, PanelHeaderAction) {
|
|
14
14
|
var PolygonFilterPanel = /*#__PURE__*/React.memo(function (_ref) {
|
|
@@ -55,4 +55,4 @@ function PolygonFilterPanelFactory(FilterPanelHeader, PolygonFilter, PanelHeader
|
|
|
55
55
|
return PolygonFilterPanel;
|
|
56
56
|
}
|
|
57
57
|
export default PolygonFilterPanelFactory;
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJ1c2VDYWxsYmFjayIsIlN0eWxlZEZpbHRlckNvbnRlbnQiLCJQb2x5Z29uRmlsdGVyRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkV5ZVNlZW4iLCJFeWVVbnNlZW4iLCJGaWx0ZXJQYW5lbEhlYWRlckZhY3RvcnkiLCJTdHlsZWRGaWx0ZXJQYW5lbCIsImdldCIsIlBvbHlnb25GaWx0ZXJQYW5lbEZhY3RvcnkiLCJkZXBzIiwiRmlsdGVyUGFuZWxIZWFkZXIiLCJQb2x5Z29uRmlsdGVyIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJQb2x5Z29uRmlsdGVyUGFuZWwiLCJtZW1vIiwiX3JlZiIsImlkeCIsImRhdGFzZXRzIiwibGF5ZXJzIiwiZmlsdGVyIiwicmVtb3ZlRmlsdGVyIiwic2V0RmlsdGVyIiwidG9nZ2xlRmlsdGVyRmVhdHVyZSIsImZpbHRlckRhdGFzZXRzIiwiZGF0YUlkIiwibWFwIiwiZCIsIm9uU2V0TGF5ZXJzIiwidmFsdWUiLCJpc1Zpc2libGUiLCJmZWF0dXJlVHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpZCIsIm9uQ2xpY2siLCJ0b29sdGlwIiwiSWNvbkNvbXBvbmVudCIsImFjdGl2ZSIsInNldExheWVycyIsImRpc3BsYXlOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZpbHRlcnMvZmlsdGVyLXBhbmVscy9wb2x5Z29uLWZpbHRlci1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtbywgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7U3R5bGVkRmlsdGVyQ29udGVudH0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBQb2x5Z29uRmlsdGVyRmFjdG9yeSBmcm9tICcuLi9wb2x5Z29uLWZpbHRlcic7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4uLy4uL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge0V5ZVNlZW4sIEV5ZVVuc2Vlbn0gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcblxuaW1wb3J0IEZpbHRlclBhbmVsSGVhZGVyRmFjdG9yeSBmcm9tICcuLi8uLi9zaWRlLXBhbmVsL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwtaGVhZGVyJztcbmltcG9ydCB7U3R5bGVkRmlsdGVyUGFuZWx9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgZ2V0IGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L2dldCc7XG5pbXBvcnQge1BvbHlnb25GaWx0ZXJQYW5lbENvbXBvbmVudH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge0tlcGxlclRhYmxlfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcblxuUG9seWdvbkZpbHRlclBhbmVsRmFjdG9yeS5kZXBzID0gW1xuICBGaWx0ZXJQYW5lbEhlYWRlckZhY3RvcnksXG4gIFBvbHlnb25GaWx0ZXJGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIFBvbHlnb25GaWx0ZXJQYW5lbEZhY3RvcnkoXG4gIEZpbHRlclBhbmVsSGVhZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBGaWx0ZXJQYW5lbEhlYWRlckZhY3Rvcnk+LFxuICBQb2x5Z29uRmlsdGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBQb2x5Z29uRmlsdGVyRmFjdG9yeT4sXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgUG9seWdvbkZpbHRlclBhbmVsOiBQb2x5Z29uRmlsdGVyUGFuZWxDb21wb25lbnQgPSBSZWFjdC5tZW1vKFxuICAgICh7aWR4LCBkYXRhc2V0cywgbGF5ZXJzLCBmaWx0ZXIsIHJlbW92ZUZpbHRlciwgc2V0RmlsdGVyLCB0b2dnbGVGaWx0ZXJGZWF0dXJlfSkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyRGF0YXNldHM6IEtlcGxlclRhYmxlW10gPSB1c2VNZW1vKFxuICAgICAgICAoKSA9PiBmaWx0ZXIuZGF0YUlkLm1hcChkID0+IGRhdGFzZXRzW2RdKSxcbiAgICAgICAgW2ZpbHRlciwgZGF0YXNldHNdXG4gICAgICApO1xuXG4gICAgICBjb25zdCBvblNldExheWVycyA9IHVzZUNhbGxiYWNrKHZhbHVlID0+IHNldEZpbHRlcihpZHgsICdsYXllcklkJywgdmFsdWUpLCBbc2V0RmlsdGVyLCBpZHhdKTtcblxuICAgICAgY29uc3QgaXNWaXNpYmxlID0gZ2V0KGZpbHRlciwgWyd2YWx1ZScsICdwcm9wZXJ0aWVzJywgJ2lzVmlzaWJsZSddLCB0cnVlKTtcbiAgICAgIGNvbnN0IGZlYXR1cmVUeXBlID0gZ2V0KGZpbHRlciwgWyd2YWx1ZScsICdnZW9tZXRyeScsICd0eXBlJ10sICdQb2x5Z29uJyk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicG9seWdvbi1maWx0ZXItcGFuZWxcIj5cbiAgICAgICAgICA8RmlsdGVyUGFuZWxIZWFkZXIgZGF0YXNldHM9e2ZpbHRlckRhdGFzZXRzfSBmaWx0ZXI9e2ZpbHRlcn0gcmVtb3ZlRmlsdGVyPXtyZW1vdmVGaWx0ZXJ9PlxuICAgICAgICAgICAgPFN0eWxlZEZpbHRlclBhbmVsPkdlbyAtIHtmZWF0dXJlVHlwZX08L1N0eWxlZEZpbHRlclBhbmVsPlxuICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgIGlkPXtmaWx0ZXIuaWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e3RvZ2dsZUZpbHRlckZlYXR1cmV9XG4gICAgICAgICAgICAgIHRvb2x0aXA9e2lzVmlzaWJsZSA/ICd0b29sdGlwLmhpZGVGZWF0dXJlJyA6ICd0b29sdGlwLnNob3dGZWF0dXJlJ31cbiAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17aXNWaXNpYmxlID8gRXllU2VlbiA6IEV5ZVVuc2Vlbn1cbiAgICAgICAgICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRmlsdGVyUGFuZWxIZWFkZXI+XG4gICAgICAgICAgPFN0eWxlZEZpbHRlckNvbnRlbnQgY2xhc3NOYW1lPVwiZmlsdGVyLXBhbmVsX19jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1wYW5lbF9fZmlsdGVyXCI+XG4gICAgICAgICAgICAgIDxQb2x5Z29uRmlsdGVyIGZpbHRlcj17ZmlsdGVyfSBsYXllcnM9e2xheWVyc30gc2V0TGF5ZXJzPXtvblNldExheWVyc30gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvU3R5bGVkRmlsdGVyQ29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgKTtcblxuICBQb2x5Z29uRmlsdGVyUGFuZWwuZGlzcGxheU5hbWUgPSAnUG9seWdvbkZpbHRlclBhbmVsJztcblxuICByZXR1cm4gUG9seWdvbkZpbHRlclBhbmVsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBQb2x5Z29uRmlsdGVyUGFuZWxGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBLE9BQU9BLEtBQUssSUFBR0MsT0FBTyxFQUFFQyxXQUFXLFFBQU8sT0FBTztBQUNqRCxTQUFRQyxtQkFBbUIsUUFBTyxnQ0FBZ0M7QUFDbEUsT0FBT0Msb0JBQW9CLE1BQU0sbUJBQW1CO0FBQ3BELE9BQU9DLHdCQUF3QixNQUFNLHNDQUFzQztBQUMzRSxTQUFRQyxPQUFPLEVBQUVDLFNBQVMsUUFBTyxvQkFBb0I7QUFFckQsT0FBT0Msd0JBQXdCLE1BQU0sbURBQW1EO0FBQ3hGLFNBQVFDLGlCQUFpQixRQUFPLGVBQWU7QUFFL0MsT0FBT0MsR0FBRyxNQUFNLHVCQUF1QjtBQUl2Q0MseUJBQXlCLENBQUNDLElBQUksR0FBRyxDQUMvQkosd0JBQXdCLEVBQ3hCSixvQkFBb0IsRUFDcEJDLHdCQUF3QixDQUN6QjtBQUVELFNBQVNNLHlCQUF5QkEsQ0FDaENFLGlCQUE4RCxFQUM5REMsYUFBc0QsRUFDdERDLGlCQUE4RCxFQUM5RDtFQUNBLElBQU1DLGtCQUErQyxnQkFBR2hCLEtBQUssQ0FBQ2lCLElBQUksQ0FDaEUsVUFBQUMsSUFBQSxFQUFtRjtJQUFBLElBQWpGQyxHQUFHLEdBQUFELElBQUEsQ0FBSEMsR0FBRztNQUFFQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtNQUFFQyxNQUFNLEdBQUFILElBQUEsQ0FBTkcsTUFBTTtNQUFFQyxNQUFNLEdBQUFKLElBQUEsQ0FBTkksTUFBTTtNQUFFQyxZQUFZLEdBQUFMLElBQUEsQ0FBWkssWUFBWTtNQUFFQyxTQUFTLEdBQUFOLElBQUEsQ0FBVE0sU0FBUztNQUFFQyxtQkFBbUIsR0FBQVAsSUFBQSxDQUFuQk8sbUJBQW1CO0lBQzNFLElBQU1DLGNBQTZCLEdBQUd6QixPQUFPLENBQzNDO01BQUEsT0FBTXFCLE1BQU0sQ0FBQ0ssTUFBTSxDQUFDQyxHQUFHLENBQUMsVUFBQUMsQ0FBQztRQUFBLE9BQUlULFFBQVEsQ0FBQ1MsQ0FBQyxDQUFDO01BQUEsRUFBQztJQUFBLEdBQ3pDLENBQUNQLE1BQU0sRUFBRUYsUUFBUSxDQUNuQixDQUFDO0lBRUQsSUFBTVUsV0FBVyxHQUFHNUIsV0FBVyxDQUFDLFVBQUE2QixLQUFLO01BQUEsT0FBSVAsU0FBUyxDQUFDTCxHQUFHLEVBQUUsU0FBUyxFQUFFWSxLQUFLLENBQUM7SUFBQSxHQUFFLENBQUNQLFNBQVMsRUFBRUwsR0FBRyxDQUFDLENBQUM7SUFFNUYsSUFBTWEsU0FBUyxHQUFHdEIsR0FBRyxDQUFDWSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUN6RSxJQUFNVyxXQUFXLEdBQUd2QixHQUFHLENBQUNZLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDO0lBRXpFLG9CQUNFdEIsS0FBQSxDQUFBa0MsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBc0IsZ0JBQ25DbkMsS0FBQSxDQUFBa0MsYUFBQSxDQUFDckIsaUJBQWlCO01BQUNPLFFBQVEsRUFBRU0sY0FBZTtNQUFDSixNQUFNLEVBQUVBLE1BQU87TUFBQ0MsWUFBWSxFQUFFQTtJQUFhLGdCQUN0RnZCLEtBQUEsQ0FBQWtDLGFBQUEsQ0FBQ3pCLGlCQUFpQixRQUFDLFFBQU0sRUFBQ3dCLFdBQStCLENBQUMsZUFDMURqQyxLQUFBLENBQUFrQyxhQUFBLENBQUNuQixpQkFBaUI7TUFDaEJxQixFQUFFLEVBQUVkLE1BQU0sQ0FBQ2MsRUFBRztNQUNkQyxPQUFPLEVBQUVaLG1CQUFvQjtNQUM3QmEsT0FBTyxFQUFFTixTQUFTLEdBQUcscUJBQXFCLEdBQUcscUJBQXNCO01BQ25FTyxhQUFhLEVBQUVQLFNBQVMsR0FBRzFCLE9BQU8sR0FBR0MsU0FBVTtNQUMvQ2lDLE1BQU0sRUFBRVI7SUFBVSxDQUNuQixDQUNnQixDQUFDLGVBQ3BCaEMsS0FBQSxDQUFBa0MsYUFBQSxDQUFDL0IsbUJBQW1CO01BQUNnQyxTQUFTLEVBQUM7SUFBdUIsZ0JBQ3BEbkMsS0FBQSxDQUFBa0MsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBc0IsZ0JBQ25DbkMsS0FBQSxDQUFBa0MsYUFBQSxDQUFDcEIsYUFBYTtNQUFDUSxNQUFNLEVBQUVBLE1BQU87TUFBQ0QsTUFBTSxFQUFFQSxNQUFPO01BQUNvQixTQUFTLEVBQUVYO0lBQVksQ0FBRSxDQUNyRSxDQUNjLENBQ2xCLENBQUM7RUFFVixDQUNGLENBQUM7RUFFRGQsa0JBQWtCLENBQUMwQixXQUFXLEdBQUcsb0JBQW9CO0VBRXJELE9BQU8xQixrQkFBa0I7QUFDM0I7QUFFQSxlQUFlTCx5QkFBeUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -7,7 +7,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
|
|
|
7
7
|
|
|
8
8
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
9
9
|
import styled from 'styled-components';
|
|
10
|
-
import throttle from '
|
|
10
|
+
import throttle from 'es-toolkit/compat/throttle';
|
|
11
11
|
import { DEFAULT_TIME_FORMAT, FILTER_VIEW_TYPES } from '@kepler.gl/constants';
|
|
12
12
|
import { clamp, datetimeFormatter } from '@kepler.gl/utils';
|
|
13
13
|
import { BottomWidgetInner, Button, PanelLabel } from '../common/styled-components';
|
|
@@ -366,4 +366,4 @@ function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop,
|
|
|
366
366
|
return /*#__PURE__*/React.memo(TimeWidget);
|
|
367
367
|
}
|
|
368
368
|
export default TimeWidgetFactory;
|
|
369
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwic3R5bGVkIiwidGhyb3R0bGUiLCJERUZBVUxUX1RJTUVfRk9STUFUIiwiRklMVEVSX1ZJRVdfVFlQRVMiLCJjbGFtcCIsImRhdGV0aW1lRm9ybWF0dGVyIiwiQm90dG9tV2lkZ2V0SW5uZXIiLCJCdXR0b24iLCJQYW5lbExhYmVsIiwiVGltZVJhbmdlU2xpZGVyRmFjdG9yeSIsIkZsb2F0aW5nVGltZURpc3BsYXlGYWN0b3J5IiwidGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3IiLCJUaW1lV2lkZ2V0VG9wRmFjdG9yeSIsIlRpbWVXaWRnZXRTZXR0aW5nc0ZhY3RvcnkiLCJyYW5nZXNFcXVhbCIsImNsYW1wUmFuZ2UiLCJjbGFtcFdpbmRvd1RvRG9tYWluIiwiVGltZUJvdHRvbVdpZGdldElubmVyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsIlRpbWVsaW5lU2VjdGlvbiIsImRpdiIsIl90ZW1wbGF0ZU9iamVjdDIiLCJUaW1lbGluZUNvbnRhaW5lciIsIl90ZW1wbGF0ZU9iamVjdDMiLCJUaW1lbGluZVN0YXR1c0JhciIsIl90ZW1wbGF0ZU9iamVjdDQiLCJwcm9wcyIsInRoZW1lIiwic3VidGV4dENvbG9yIiwiVGltZWxpbmVTdGF0dXNSYW5nZSIsInNwYW4iLCJfdGVtcGxhdGVPYmplY3Q1IiwidGV4dENvbG9ySGwiLCJ0ZXh0Q29sb3IiLCJUaW1lV2lkZ2V0RmFjdG9yeSIsImRlcHMiLCJUaW1lUmFuZ2VTbGlkZXIiLCJGbG9hdGluZ1RpbWVEaXNwbGF5IiwiVGltZVdpZGdldFRvcCIsIlRpbWVXaWRnZXRTZXR0aW5ncyIsIlRpbWVXaWRnZXQiLCJfcmVmIiwiX3JlZjIiLCJkYXRhc2V0cyIsImZpbHRlciIsImxheWVycyIsImluZGV4IiwicmVhZE9ubHkiLCJzaG93VGltZURpc3BsYXkiLCJzZXRGaWx0ZXJBbmltYXRpb25UaW1lIiwib25DbG9zZSIsIm9uVG9nZ2xlTWluaWZ5IiwicmVzZXRBbmltYXRpb24iLCJpc0FuaW1hdGFibGUiLCJ1cGRhdGVBbmltYXRpb25TcGVlZCIsInRvZ2dsZUFuaW1hdGlvbiIsImV4cG9ydEFuaW1hdGlvbiIsInNldEZpbHRlclBsb3QiLCJzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3ciLCJhbmltYXRpb25Db25maWciLCJ0aW1lbGluZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNob3dTZXR0aW5ncyIsInNldFNob3dTZXR0aW5ncyIsIl91cGRhdGVBbmltYXRpb25TcGVlZCIsInNwZWVkIiwiX3RvZ2dsZUFuaW1hdGlvbiIsIl9leHBvcnRBbmltYXRpb24iLCJpc01pbmlmaWVkIiwidmlldyIsIm1pbmlmaWVkIiwiX3NldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsImFuaW1hdGlvbldpbmRvdyIsImlkIiwidGltZVNsaWRlck9uQ2hhbmdlIiwidmFsdWUiLCJfc2V0RmlsdGVyUGxvdCIsIm5ld1Byb3AiLCJ2YWx1ZUluZGV4IiwiX29uVG9nZ2xlU2V0dGluZ3MiLCJwcmV2IiwidGltZVJhbmdlU2xpZGVQcm9wcyIsImZ1bGxEb21haW4iLCJBcnJheSIsImlzQXJyYXkiLCJkb21haW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInRpbWVsaW5lRG9tYWluIiwic2V0VGltZWxpbmVEb21haW4iLCJ0aW1lbGluZUNvbnRhaW5lclJlZiIsImNsYW1wZWQiLCJzbGlkZXJEb21haW4iLCJ1bmRlZmluZWQiLCJkaXNwbGF5ZWRUaW1lbGluZURvbWFpbiIsInRpbWVsaW5lWm9vbWVkIiwidGltZUZvcm1hdCIsImRlZmF1bHRUaW1lRm9ybWF0IiwiZm9ybWF0VGltZXN0YW1wIiwiZm9ybWF0dGVyIiwidGltZXpvbmUiLCJ0aW1lbGluZVJhbmdlTGFiZWwiLCJjb25jYXQiLCJfZmlsdGVyJHZhbHVlIiwiZmlsdGVyU3RhcnQiLCJmaWx0ZXJFbmQiLCJoYW5kbGVXaW5kb3dab29tIiwiZmFjdG9yIiwiY2VudGVyIiwiZG9tYWluUmFuZ2UiLCJkb21haW5XaWR0aCIsIndpbmRvd1dpZHRoIiwibWluV2lkdGgiLCJNYXRoIiwibWF4IiwibmV4dFdpZHRoIiwiY2xhbXBlZENlbnRlciIsInJhdGlvIiwibmV4dFN0YXJ0IiwibmV4dEVuZCIsIl9jbGFtcFdpbmRvd1RvRG9tYWluIiwiX2NsYW1wV2luZG93VG9Eb21haW4yIiwiY2xhbXBlZFN0YXJ0IiwiY2xhbXBlZEVuZCIsImhhbmRsZVRpbWVsaW5lWm9vbSIsIl9mdWxsRG9tYWluIiwiZG9tYWluU3RhcnQiLCJkb21haW5FbmQiLCJmdWxsV2lkdGgiLCJiYXNlV2lkdGgiLCJzaGlmdCIsIm5leHRSYW5nZSIsIndpbmRvd1N0YXJ0Iiwid2luZG93RW5kIiwicmFuZ2VXaWR0aCIsIndpbmRvd1JhdGlvIiwiYWRqdXN0ZWRTdGFydCIsImFkanVzdGVkRW5kIiwiX2NsYW1wV2luZG93VG9Eb21haW4zIiwiX2NsYW1wV2luZG93VG9Eb21haW40IiwiX2NsYW1wV2luZG93VG9Eb21haW41IiwiX2NsYW1wV2luZG93VG9Eb21haW42IiwidGhyb3R0bGVkV2luZG93Wm9vbSIsImxlYWRpbmciLCJ0cmFpbGluZyIsInRocm90dGxlZFRpbWVsaW5lWm9vbSIsImNhbmNlbCIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlTmF0aXZlV2hlZWwiLCJldmVudCIsIl9zbGlkZXJUcmFjayRnZXRCb3VuZCIsImlzUGluY2giLCJjdHJsS2V5IiwibWV0YUtleSIsImFicyIsImRlbHRhWiIsInpvb21GbiIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiZGVsdGFZIiwiYmFzZVN0ZXAiLCJzbGlkZXJUcmFjayIsInF1ZXJ5U2VsZWN0b3IiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJjbGllbnRYIiwibGVmdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZXIiLCJrZXkiLCJhY3RpdmVFbCIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsIkhUTUxJbnB1dEVsZW1lbnQiLCJIVE1MVGV4dEFyZWFFbGVtZW50IiwiaXNDb250ZW50RWRpdGFibGUiLCJfY2xhbXBXaW5kb3dUb0RvbWFpbjciLCJfY2xhbXBXaW5kb3dUb0RvbWFpbjgiLCJ3aW5kb3ciLCJoYW5kbGVSZXNldFRpbWVsaW5lIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIm9uVG9nZ2xlU2V0dGluZ3MiLCJzbWFsbCIsInNlY29uZGFyeSIsInR5cGUiLCJvbkNsaWNrIiwicmVmIiwiX2V4dGVuZHMiLCJvbkNoYW5nZSIsImhpZGVUaW1lVGl0bGUiLCJjdXJyZW50VGltZSIsIm1lbW8iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmlsdGVycy90aW1lLXdpZGdldC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoL3Rocm90dGxlJztcbmltcG9ydCB7REVGQVVMVF9USU1FX0ZPUk1BVCwgRklMVEVSX1ZJRVdfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Y2xhbXAsIGRhdGV0aW1lRm9ybWF0dGVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7Qm90dG9tV2lkZ2V0SW5uZXIsIEJ1dHRvbiwgUGFuZWxMYWJlbH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBUaW1lUmFuZ2VTbGlkZXJGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi90aW1lLXJhbmdlLXNsaWRlcic7XG5pbXBvcnQgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2Zsb2F0aW5nLXRpbWUtZGlzcGxheSc7XG5pbXBvcnQge3RpbWVSYW5nZVNsaWRlckZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL3RpbWUtcmFuZ2UtZmlsdGVyJztcbmltcG9ydCB7VGltZVdpZGdldFByb3BzfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBUaW1lV2lkZ2V0VG9wRmFjdG9yeSBmcm9tICcuL3RpbWUtd2lkZ2V0LXRvcCc7XG5pbXBvcnQgVGltZVdpZGdldFNldHRpbmdzRmFjdG9yeSBmcm9tICcuL3RpbWUtd2lkZ2V0LXNldHRpbmdzJztcbmltcG9ydCB7cmFuZ2VzRXF1YWwsIGNsYW1wUmFuZ2UsIGNsYW1wV2luZG93VG9Eb21haW59IGZyb20gJy4uL2NvbW1vbi90aW1lbGluZS1oZWxwZXJzJztcblxuY29uc3QgVGltZUJvdHRvbVdpZGdldElubmVyID0gc3R5bGVkKEJvdHRvbVdpZGdldElubmVyKWBcbiAgcGFkZGluZzogNnB4IDMycHggMjRweCAzMnB4O1xuYDtcblxuY29uc3QgVGltZWxpbmVTZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAyMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiAxMnB4O1xuYDtcblxuY29uc3QgVGltZWxpbmVDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB0b3VjaC1hY3Rpb246IG5vbmU7XG5gO1xuXG5jb25zdCBUaW1lbGluZVN0YXR1c0JhciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMzJweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuXG4gIC5zaWRlLXBhbmVsLXBhbmVsX19sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuYDtcblxuY29uc3QgVGltZWxpbmVTdGF0dXNSYW5nZSA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbCB8fCBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuYDtcblxuVGltZVdpZGdldEZhY3RvcnkuZGVwcyA9IFtcbiAgVGltZVJhbmdlU2xpZGVyRmFjdG9yeSxcbiAgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3RvcnksXG4gIFRpbWVXaWRnZXRUb3BGYWN0b3J5LFxuICBUaW1lV2lkZ2V0U2V0dGluZ3NGYWN0b3J5XG5dO1xuXG5mdW5jdGlvbiBUaW1lV2lkZ2V0RmFjdG9yeShcbiAgVGltZVJhbmdlU2xpZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaW1lUmFuZ2VTbGlkZXJGYWN0b3J5PixcbiAgRmxvYXRpbmdUaW1lRGlzcGxheTogUmV0dXJuVHlwZTx0eXBlb2YgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3Rvcnk+LFxuICBUaW1lV2lkZ2V0VG9wOiBSZXR1cm5UeXBlPHR5cGVvZiBUaW1lV2lkZ2V0VG9wRmFjdG9yeT4sXG4gIFRpbWVXaWRnZXRTZXR0aW5nczogUmV0dXJuVHlwZTx0eXBlb2YgVGltZVdpZGdldFNldHRpbmdzRmFjdG9yeT5cbikge1xuICBjb25zdCBUaW1lV2lkZ2V0OiBSZWFjdC5GQzxUaW1lV2lkZ2V0UHJvcHM+ID0gKHtcbiAgICBkYXRhc2V0cyxcbiAgICBmaWx0ZXIsXG4gICAgbGF5ZXJzLFxuICAgIGluZGV4LFxuICAgIHJlYWRPbmx5LFxuICAgIHNob3dUaW1lRGlzcGxheSxcbiAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lLFxuICAgIG9uQ2xvc2UsXG4gICAgb25Ub2dnbGVNaW5pZnksXG4gICAgcmVzZXRBbmltYXRpb24sXG4gICAgaXNBbmltYXRhYmxlLFxuICAgIHVwZGF0ZUFuaW1hdGlvblNwZWVkLFxuICAgIHRvZ2dsZUFuaW1hdGlvbixcbiAgICBleHBvcnRBbmltYXRpb24sXG4gICAgc2V0RmlsdGVyUGxvdCxcbiAgICBzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3csXG4gICAgYW5pbWF0aW9uQ29uZmlnLFxuICAgIHRpbWVsaW5lXG4gIH06IFRpbWVXaWRnZXRQcm9wcykgPT4ge1xuICAgIGNvbnN0IFtzaG93U2V0dGluZ3MsIHNldFNob3dTZXR0aW5nc10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBfdXBkYXRlQW5pbWF0aW9uU3BlZWQgPSB1c2VDYWxsYmFjayhcbiAgICAgIHNwZWVkID0+IHVwZGF0ZUFuaW1hdGlvblNwZWVkKGluZGV4LCBzcGVlZCksXG4gICAgICBbdXBkYXRlQW5pbWF0aW9uU3BlZWQsIGluZGV4XVxuICAgICk7XG5cbiAgICBjb25zdCBfdG9nZ2xlQW5pbWF0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4gdG9nZ2xlQW5pbWF0aW9uKGluZGV4KSwgW3RvZ2dsZUFuaW1hdGlvbiwgaW5kZXhdKTtcbiAgICBjb25zdCBfZXhwb3J0QW5pbWF0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4gZXhwb3J0QW5pbWF0aW9uPy4oKSwgW2V4cG9ydEFuaW1hdGlvbl0pO1xuXG4gICAgY29uc3QgaXNNaW5pZmllZCA9IHVzZU1lbW8oKCkgPT4gZmlsdGVyLnZpZXcgPT09IEZJTFRFUl9WSUVXX1RZUEVTLm1pbmlmaWVkLCBbZmlsdGVyXSk7XG5cbiAgICBjb25zdCBfc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93ID0gdXNlQ2FsbGJhY2soXG4gICAgICBhbmltYXRpb25XaW5kb3cgPT4gc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93KHtpZDogZmlsdGVyLmlkLCBhbmltYXRpb25XaW5kb3d9KSxcbiAgICAgIFtzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3csIGZpbHRlci5pZF1cbiAgICApO1xuXG4gICAgY29uc3QgdGltZVNsaWRlck9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICB2YWx1ZSA9PiBzZXRGaWx0ZXJBbmltYXRpb25UaW1lKGluZGV4LCAndmFsdWUnLCB2YWx1ZSksXG4gICAgICBbc2V0RmlsdGVyQW5pbWF0aW9uVGltZSwgaW5kZXhdXG4gICAgKTtcblxuICAgIGNvbnN0IF9zZXRGaWx0ZXJQbG90ID0gdXNlQ2FsbGJhY2soXG4gICAgICAobmV3UHJvcCwgdmFsdWVJbmRleCkgPT4gc2V0RmlsdGVyUGxvdChpbmRleCwgbmV3UHJvcCwgdmFsdWVJbmRleCksXG4gICAgICBbaW5kZXgsIHNldEZpbHRlclBsb3RdXG4gICAgKTtcblxuICAgIGNvbnN0IF9vblRvZ2dsZVNldHRpbmdzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0U2hvd1NldHRpbmdzKHByZXYgPT4gIXByZXYpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHRpbWVSYW5nZVNsaWRlUHJvcHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gdGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3IoZmlsdGVyLCBkYXRhc2V0cywgbGF5ZXJzKSxcbiAgICAgIFtmaWx0ZXIsIGRhdGFzZXRzLCBsYXllcnNdXG4gICAgKTtcblxuICAgIGNvbnN0IGZ1bGxEb21haW4gPSBBcnJheS5pc0FycmF5KHRpbWVSYW5nZVNsaWRlUHJvcHMuZG9tYWluKVxuICAgICAgPyAodGltZVJhbmdlU2xpZGVQcm9wcy5kb21haW4gYXMgW251bWJlciwgbnVtYmVyXSlcbiAgICAgIDogbnVsbDtcblxuICAgIGNvbnN0IFt0aW1lbGluZURvbWFpbiwgc2V0VGltZWxpbmVEb21haW5dID0gdXNlU3RhdGU8W251bWJlciwgbnVtYmVyXSB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IHRpbWVsaW5lQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCFmdWxsRG9tYWluKSB7XG4gICAgICAgIGlmICh0aW1lbGluZURvbWFpbikge1xuICAgICAgICAgIHNldFRpbWVsaW5lRG9tYWluKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aW1lbGluZURvbWFpbikge1xuICAgICAgICBjb25zdCBjbGFtcGVkID0gY2xhbXBSYW5nZSh0aW1lbGluZURvbWFpbiwgZnVsbERvbWFpbik7XG4gICAgICAgIGlmICghcmFuZ2VzRXF1YWwoY2xhbXBlZCwgdGltZWxpbmVEb21haW4pKSB7XG4gICAgICAgICAgc2V0VGltZWxpbmVEb21haW4oY2xhbXBlZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbZnVsbERvbWFpbl0pO1xuXG4gICAgY29uc3Qgc2xpZGVyRG9tYWluID0gdGltZWxpbmVEb21haW4gPz8gZnVsbERvbWFpbiA/PyB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGlzcGxheWVkVGltZWxpbmVEb21haW4gPSBzbGlkZXJEb21haW4gPz8gbnVsbDtcblxuICAgIGNvbnN0IHRpbWVsaW5lWm9vbWVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXRpbWVsaW5lRG9tYWluIHx8ICFmdWxsRG9tYWluKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhcmFuZ2VzRXF1YWwodGltZWxpbmVEb21haW4sIGZ1bGxEb21haW4pO1xuICAgIH0sIFt0aW1lbGluZURvbWFpbiwgZnVsbERvbWFpbl0pO1xuXG4gICAgY29uc3QgdGltZUZvcm1hdCA9XG4gICAgICB0aW1lUmFuZ2VTbGlkZVByb3BzLnRpbWVGb3JtYXQgfHxcbiAgICAgIGZpbHRlci50aW1lRm9ybWF0IHx8XG4gICAgICBmaWx0ZXIuZGVmYXVsdFRpbWVGb3JtYXQgfHxcbiAgICAgIERFRkFVTFRfVElNRV9GT1JNQVQ7XG4gICAgY29uc3QgZm9ybWF0VGltZXN0YW1wID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBmb3JtYXR0ZXIgPSBkYXRldGltZUZvcm1hdHRlcihmaWx0ZXIudGltZXpvbmUpO1xuICAgICAgcmV0dXJuICh2YWx1ZTogbnVtYmVyKSA9PiBmb3JtYXR0ZXIodGltZUZvcm1hdCkodmFsdWUpO1xuICAgIH0sIFtmaWx0ZXIudGltZXpvbmUsIHRpbWVGb3JtYXRdKTtcblxuICAgIGNvbnN0IHRpbWVsaW5lUmFuZ2VMYWJlbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkaXNwbGF5ZWRUaW1lbGluZURvbWFpbikge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7Zm9ybWF0VGltZXN0YW1wKGRpc3BsYXllZFRpbWVsaW5lRG9tYWluWzBdKX0g4oCTICR7Zm9ybWF0VGltZXN0YW1wKFxuICAgICAgICBkaXNwbGF5ZWRUaW1lbGluZURvbWFpblsxXVxuICAgICAgKX1gO1xuICAgIH0sIFtkaXNwbGF5ZWRUaW1lbGluZURvbWFpbiwgZm9ybWF0VGltZXN0YW1wXSk7XG5cbiAgICBjb25zdCBbZmlsdGVyU3RhcnQsIGZpbHRlckVuZF0gPSBmaWx0ZXIudmFsdWU7XG5cbiAgICBjb25zdCBoYW5kbGVXaW5kb3dab29tID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZmFjdG9yOiBudW1iZXIsIGNlbnRlcjogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmICghZnVsbERvbWFpbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb21haW5SYW5nZTogW251bWJlciwgbnVtYmVyXSA9IHRpbWVsaW5lRG9tYWluID8/IGZ1bGxEb21haW47XG4gICAgICAgIGNvbnN0IGRvbWFpbldpZHRoID0gZG9tYWluUmFuZ2VbMV0gLSBkb21haW5SYW5nZVswXTtcbiAgICAgICAgaWYgKCEoZG9tYWluV2lkdGggPiAwKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IGZpbHRlckVuZCAtIGZpbHRlclN0YXJ0O1xuICAgICAgICBpZiAoISh3aW5kb3dXaWR0aCA+IDApKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1pbldpZHRoID0gTWF0aC5tYXgoZG9tYWluV2lkdGggLyAxMDAsIDEpO1xuICAgICAgICBjb25zdCBuZXh0V2lkdGggPSBjbGFtcChbbWluV2lkdGgsIGRvbWFpbldpZHRoXSwgd2luZG93V2lkdGggLyBmYWN0b3IpO1xuICAgICAgICBjb25zdCBjbGFtcGVkQ2VudGVyID0gY2xhbXAoZG9tYWluUmFuZ2UsIGNlbnRlcik7XG4gICAgICAgIGNvbnN0IHJhdGlvID0gY2xhbXAoXG4gICAgICAgICAgWzAsIDFdLFxuICAgICAgICAgIHdpbmRvd1dpZHRoID4gMCA/IChjbGFtcGVkQ2VudGVyIC0gZmlsdGVyU3RhcnQpIC8gd2luZG93V2lkdGggOiAwLjVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV4dFN0YXJ0ID0gY2xhbXBlZENlbnRlciAtIHJhdGlvICogbmV4dFdpZHRoO1xuICAgICAgICBjb25zdCBuZXh0RW5kID0gbmV4dFN0YXJ0ICsgbmV4dFdpZHRoO1xuICAgICAgICBjb25zdCBbY2xhbXBlZFN0YXJ0LCBjbGFtcGVkRW5kXSA9IGNsYW1wV2luZG93VG9Eb21haW4obmV4dFN0YXJ0LCBuZXh0RW5kLCBkb21haW5SYW5nZSk7XG4gICAgICAgIGlmIChjbGFtcGVkU3RhcnQgIT09IGZpbHRlclN0YXJ0IHx8IGNsYW1wZWRFbmQgIT09IGZpbHRlckVuZCkge1xuICAgICAgICAgIHNldEZpbHRlckFuaW1hdGlvblRpbWUoaW5kZXgsICd2YWx1ZScsIFtjbGFtcGVkU3RhcnQsIGNsYW1wZWRFbmRdKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtcbiAgICAgICAgZmlsdGVyRW5kLFxuICAgICAgICBmaWx0ZXJTdGFydCxcbiAgICAgICAgZnVsbERvbWFpbixcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHNldEZpbHRlckFuaW1hdGlvblRpbWUsXG4gICAgICAgIHRpbWVsaW5lRG9tYWluXG4gICAgICBdXG4gICAgKTtcblxuICAgIGNvbnN0IGhhbmRsZVRpbWVsaW5lWm9vbSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGZhY3RvcjogbnVtYmVyLCBjZW50ZXI6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoIWZ1bGxEb21haW4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9tYWluUmFuZ2U6IFtudW1iZXIsIG51bWJlcl0gPSB0aW1lbGluZURvbWFpbiA/PyBmdWxsRG9tYWluO1xuICAgICAgICBjb25zdCBbZG9tYWluU3RhcnQsIGRvbWFpbkVuZF0gPSBmdWxsRG9tYWluO1xuICAgICAgICBjb25zdCBmdWxsV2lkdGggPSBkb21haW5FbmQgLSBkb21haW5TdGFydDtcbiAgICAgICAgaWYgKCEoZnVsbFdpZHRoID4gMCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmFzZVdpZHRoID0gTWF0aC5tYXgoZG9tYWluUmFuZ2VbMV0gLSBkb21haW5SYW5nZVswXSwgMSk7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRDZW50ZXIgPSBjbGFtcChkb21haW5SYW5nZSwgY2VudGVyKTtcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSBNYXRoLm1heChmdWxsV2lkdGggLyAyMCwgMSk7XG4gICAgICAgIGNvbnN0IG5leHRXaWR0aCA9IGNsYW1wKFttaW5XaWR0aCwgZnVsbFdpZHRoXSwgYmFzZVdpZHRoIC8gZmFjdG9yKTtcbiAgICAgICAgY29uc3QgcmF0aW8gPSBjbGFtcChcbiAgICAgICAgICBbMCwgMV0sXG4gICAgICAgICAgYmFzZVdpZHRoID4gMCA/IChjbGFtcGVkQ2VudGVyIC0gZG9tYWluUmFuZ2VbMF0pIC8gYmFzZVdpZHRoIDogMC41XG4gICAgICAgICk7XG5cbiAgICAgICAgbGV0IG5leHRTdGFydCA9IGNsYW1wZWRDZW50ZXIgLSByYXRpbyAqIG5leHRXaWR0aDtcbiAgICAgICAgbGV0IG5leHRFbmQgPSBuZXh0U3RhcnQgKyBuZXh0V2lkdGg7XG5cbiAgICAgICAgaWYgKG5leHRTdGFydCA8IGRvbWFpblN0YXJ0KSB7XG4gICAgICAgICAgY29uc3Qgc2hpZnQgPSBkb21haW5TdGFydCAtIG5leHRTdGFydDtcbiAgICAgICAgICBuZXh0U3RhcnQgPSBkb21haW5TdGFydDtcbiAgICAgICAgICBuZXh0RW5kICs9IHNoaWZ0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXh0RW5kID4gZG9tYWluRW5kKSB7XG4gICAgICAgICAgY29uc3Qgc2hpZnQgPSBuZXh0RW5kIC0gZG9tYWluRW5kO1xuICAgICAgICAgIG5leHRFbmQgPSBkb21haW5FbmQ7XG4gICAgICAgICAgbmV4dFN0YXJ0IC09IHNoaWZ0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRSYW5nZTogW251bWJlciwgbnVtYmVyXSA9IGNsYW1wUmFuZ2UoW25leHRTdGFydCwgbmV4dEVuZF0sIGZ1bGxEb21haW4pO1xuICAgICAgICBzZXRUaW1lbGluZURvbWFpbihwcmV2ID0+IChyYW5nZXNFcXVhbChwcmV2LCBuZXh0UmFuZ2UpID8gcHJldiA6IG5leHRSYW5nZSkpO1xuXG4gICAgICAgIGxldCB3aW5kb3dTdGFydCA9IGZpbHRlclN0YXJ0O1xuICAgICAgICBsZXQgd2luZG93RW5kID0gZmlsdGVyRW5kO1xuICAgICAgICBjb25zdCByYW5nZVdpZHRoID0gbmV4dFJhbmdlWzFdIC0gbmV4dFJhbmdlWzBdO1xuICAgICAgICBpZiAocmFuZ2VXaWR0aCA8IHdpbmRvd0VuZCAtIHdpbmRvd1N0YXJ0KSB7XG4gICAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSBNYXRoLm1heCh3aW5kb3dFbmQgLSB3aW5kb3dTdGFydCwgMSk7XG4gICAgICAgICAgY29uc3Qgd2luZG93UmF0aW8gPSBjbGFtcChbMCwgMV0sIChjbGFtcGVkQ2VudGVyIC0gd2luZG93U3RhcnQpIC8gd2luZG93V2lkdGgpO1xuICAgICAgICAgIGNvbnN0IGFkanVzdGVkU3RhcnQgPSBjbGFtcGVkQ2VudGVyIC0gd2luZG93UmF0aW8gKiByYW5nZVdpZHRoO1xuICAgICAgICAgIGNvbnN0IGFkanVzdGVkRW5kID0gY2xhbXBlZENlbnRlciArICgxIC0gd2luZG93UmF0aW8pICogcmFuZ2VXaWR0aDtcbiAgICAgICAgICBbd2luZG93U3RhcnQsIHdpbmRvd0VuZF0gPSBjbGFtcFdpbmRvd1RvRG9tYWluKGFkanVzdGVkU3RhcnQsIGFkanVzdGVkRW5kLCBuZXh0UmFuZ2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIFt3aW5kb3dTdGFydCwgd2luZG93RW5kXSA9IGNsYW1wV2luZG93VG9Eb21haW4od2luZG93U3RhcnQsIHdpbmRvd0VuZCwgbmV4dFJhbmdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2luZG93U3RhcnQgIT09IGZpbHRlclN0YXJ0IHx8IHdpbmRvd0VuZCAhPT0gZmlsdGVyRW5kKSB7XG4gICAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZShpbmRleCwgJ3ZhbHVlJywgW3dpbmRvd1N0YXJ0LCB3aW5kb3dFbmRdKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtcbiAgICAgICAgZmlsdGVyRW5kLFxuICAgICAgICBmaWx0ZXJTdGFydCxcbiAgICAgICAgZnVsbERvbWFpbixcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHNldEZpbHRlckFuaW1hdGlvblRpbWUsXG4gICAgICAgIHRpbWVsaW5lRG9tYWluXG4gICAgICBdXG4gICAgKTtcblxuICAgIGNvbnN0IHRocm90dGxlZFdpbmRvd1pvb20gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gdGhyb3R0bGUoaGFuZGxlV2luZG93Wm9vbSwgNDAsIHtsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogZmFsc2V9KSxcbiAgICAgIFtoYW5kbGVXaW5kb3dab29tXVxuICAgICk7XG5cbiAgICBjb25zdCB0aHJvdHRsZWRUaW1lbGluZVpvb20gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gdGhyb3R0bGUoaGFuZGxlVGltZWxpbmVab29tLCA0MCwge2xlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiBmYWxzZX0pLFxuICAgICAgW2hhbmRsZVRpbWVsaW5lWm9vbV1cbiAgICApO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHRocm90dGxlZFdpbmRvd1pvb20uY2FuY2VsKCksIFt0aHJvdHRsZWRXaW5kb3dab29tXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHRocm90dGxlZFRpbWVsaW5lWm9vbS5jYW5jZWwoKSwgW3Rocm90dGxlZFRpbWVsaW5lWm9vbV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSB0aW1lbGluZUNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBoYW5kbGVOYXRpdmVXaGVlbCA9IChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgICBpZiAoaXNNaW5pZmllZCB8fCAhc2xpZGVyRG9tYWluKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzUGluY2ggPVxuICAgICAgICAgIGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBNYXRoLmFicyhldmVudC5kZWx0YVogfHwgMCkgPiAwO1xuICAgICAgICBjb25zdCB6b29tRm4gPSBpc1BpbmNoID8gdGhyb3R0bGVkVGltZWxpbmVab29tIDogdGhyb3R0bGVkV2luZG93Wm9vbTtcbiAgICAgICAgaWYgKCF6b29tRm4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAoZXZlbnQuZGVsdGFZID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmFzZVN0ZXAgPSBpc1BpbmNoID8gMC4wMiA6IDAuMDg7XG4gICAgICAgIGNvbnN0IGZhY3RvciA9IGV2ZW50LmRlbHRhWSA8IDAgPyAxICsgYmFzZVN0ZXAgOiAxIC8gKDEgKyBiYXNlU3RlcCk7XG4gICAgICAgIGNvbnN0IHNsaWRlclRyYWNrID0gbm9kZS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICcua2ctcmFuZ2Utc2xpZGVyX19zbGlkZXInXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBjb25zdCByZWN0ID0gc2xpZGVyVHJhY2s/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpID8/IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmICghcmVjdCB8fCByZWN0LndpZHRoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhdGlvID0gY2xhbXAoWzAsIDFdLCAoZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCkgLyByZWN0LndpZHRoKTtcbiAgICAgICAgY29uc3QgY2VudGVyID0gc2xpZGVyRG9tYWluWzBdICsgcmF0aW8gKiAoc2xpZGVyRG9tYWluWzFdIC0gc2xpZGVyRG9tYWluWzBdKTtcbiAgICAgICAgem9vbUZuKGZhY3RvciwgY2VudGVyKTtcbiAgICAgIH07XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgaGFuZGxlTmF0aXZlV2hlZWwsIHtwYXNzaXZlOiBmYWxzZX0pO1xuICAgICAgcmV0dXJuICgpID0+IG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBoYW5kbGVOYXRpdmVXaGVlbCk7XG4gICAgfSwgW2lzTWluaWZpZWQsIHNsaWRlckRvbWFpbiwgdGhyb3R0bGVkVGltZWxpbmVab29tLCB0aHJvdHRsZWRXaW5kb3dab29tXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzTWluaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCEoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnQXJyb3dMZWZ0JyAmJiBldmVudC5rZXkgIT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVFbCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhY3RpdmVFbCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHxcbiAgICAgICAgICBhY3RpdmVFbCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQgfHxcbiAgICAgICAgICAoYWN0aXZlRWwgYXMgSFRNTEVsZW1lbnQpPy5pc0NvbnRlbnRFZGl0YWJsZVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9tYWluUmFuZ2UgPSB0aW1lbGluZURvbWFpbiA/PyBmdWxsRG9tYWluO1xuICAgICAgICBpZiAoIWRvbWFpblJhbmdlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gZmlsdGVyRW5kIC0gZmlsdGVyU3RhcnQ7XG4gICAgICAgIGlmICghKHdpbmRvd1dpZHRoID4gMCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbGV0IG5leHRTdGFydDogbnVtYmVyO1xuICAgICAgICBsZXQgbmV4dEVuZDogbnVtYmVyO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgICAgICBuZXh0U3RhcnQgPSBmaWx0ZXJFbmQ7XG4gICAgICAgICAgbmV4dEVuZCA9IGZpbHRlckVuZCArIHdpbmRvd1dpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHRTdGFydCA9IGZpbHRlclN0YXJ0IC0gd2luZG93V2lkdGg7XG4gICAgICAgICAgbmV4dEVuZCA9IGZpbHRlclN0YXJ0O1xuICAgICAgICB9XG4gICAgICAgIFtuZXh0U3RhcnQsIG5leHRFbmRdID0gY2xhbXBXaW5kb3dUb0RvbWFpbihuZXh0U3RhcnQsIG5leHRFbmQsIGRvbWFpblJhbmdlKTtcbiAgICAgICAgaWYgKG5leHRTdGFydCAhPT0gZmlsdGVyU3RhcnQgfHwgbmV4dEVuZCAhPT0gZmlsdGVyRW5kKSB7XG4gICAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZShpbmRleCwgJ3ZhbHVlJywgW25leHRTdGFydCwgbmV4dEVuZF0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyKTtcbiAgICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIpO1xuICAgIH0sIFtmaWx0ZXJFbmQsIGZpbHRlclN0YXJ0LCBmdWxsRG9tYWluLCBpbmRleCwgaXNNaW5pZmllZCwgc2V0RmlsdGVyQW5pbWF0aW9uVGltZSwgdGltZWxpbmVEb21haW5dKTtcblxuICAgIGNvbnN0IGhhbmRsZVJlc2V0VGltZWxpbmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRUaW1lbGluZURvbWFpbihudWxsKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRpbWVCb3R0b21XaWRnZXRJbm5lciBjbGFzc05hbWU9XCJib3R0b20td2lkZ2V0LS1pbm5lclwiPlxuICAgICAgICA8VGltZVdpZGdldFRvcFxuICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICBvbkNsb3NlPXtvbkNsb3NlfVxuICAgICAgICAgIG9uVG9nZ2xlTWluaWZ5PXtvblRvZ2dsZU1pbmlmeX1cbiAgICAgICAgICBvblRvZ2dsZVNldHRpbmdzPXtfb25Ub2dnbGVTZXR0aW5nc31cbiAgICAgICAgICBpc01pbmlmaWVkPXtpc01pbmlmaWVkfVxuICAgICAgICAvPlxuICAgICAgICB7c2hvd1NldHRpbmdzICYmICFpc01pbmlmaWVkID8gKFxuICAgICAgICAgIDxUaW1lV2lkZ2V0U2V0dGluZ3MgZmlsdGVyPXtmaWx0ZXJ9IGRhdGFzZXRzPXtkYXRhc2V0c30gc2V0RmlsdGVyUGxvdD17X3NldEZpbHRlclBsb3R9IC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8VGltZWxpbmVTZWN0aW9uPlxuICAgICAgICAgIHt0aW1lbGluZVpvb21lZCAmJiB0aW1lbGluZVJhbmdlTGFiZWwgPyAoXG4gICAgICAgICAgICA8VGltZWxpbmVTdGF0dXNCYXI+XG4gICAgICAgICAgICAgIDxQYW5lbExhYmVsPlNob3dpbmc8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICAgIDxUaW1lbGluZVN0YXR1c1JhbmdlPnt0aW1lbGluZVJhbmdlTGFiZWx9PC9UaW1lbGluZVN0YXR1c1JhbmdlPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVSZXNldFRpbWVsaW5lfVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZXNldCB0aW1lbGluZSBzZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwidGltZS13aWRnZXQtdGltZWxpbmUtcmVzZXRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1RpbWVsaW5lU3RhdHVzQmFyPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxUaW1lbGluZUNvbnRhaW5lciByZWY9e3RpbWVsaW5lQ29udGFpbmVyUmVmfT5cbiAgICAgICAgICAgIDxUaW1lUmFuZ2VTbGlkZXJcbiAgICAgICAgICAgICAgey4uLnRpbWVSYW5nZVNsaWRlUHJvcHN9XG4gICAgICAgICAgICAgIGRvbWFpbj17c2xpZGVyRG9tYWlufVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGltZVNsaWRlck9uQ2hhbmdlfVxuICAgICAgICAgICAgICB0b2dnbGVBbmltYXRpb249e190b2dnbGVBbmltYXRpb259XG4gICAgICAgICAgICAgIGV4cG9ydEFuaW1hdGlvbj17X2V4cG9ydEFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgdXBkYXRlQW5pbWF0aW9uU3BlZWQ9e191cGRhdGVBbmltYXRpb25TcGVlZH1cbiAgICAgICAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93PXtfc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93fVxuICAgICAgICAgICAgICBoaWRlVGltZVRpdGxlPXtzaG93VGltZURpc3BsYXl9XG4gICAgICAgICAgICAgIHJlc2V0QW5pbWF0aW9uPXtyZXNldEFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgaXNBbmltYXRhYmxlPXtpc0FuaW1hdGFibGV9XG4gICAgICAgICAgICAgIHNldEZpbHRlclBsb3Q9e19zZXRGaWx0ZXJQbG90fVxuICAgICAgICAgICAgICBhbmltYXRpb25Db25maWc9e2FuaW1hdGlvbkNvbmZpZ31cbiAgICAgICAgICAgICAgaXNNaW5pZmllZD17aXNNaW5pZmllZH1cbiAgICAgICAgICAgICAgdGltZWxpbmU9e3RpbWVsaW5lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1RpbWVsaW5lQ29udGFpbmVyPlxuICAgICAgICA8L1RpbWVsaW5lU2VjdGlvbj5cbiAgICAgICAge3Nob3dUaW1lRGlzcGxheSA/IChcbiAgICAgICAgICA8RmxvYXRpbmdUaW1lRGlzcGxheVxuICAgICAgICAgICAgY3VycmVudFRpbWU9e2ZpbHRlci52YWx1ZX1cbiAgICAgICAgICAgIGRlZmF1bHRUaW1lRm9ybWF0PXtmaWx0ZXIuZGVmYXVsdFRpbWVGb3JtYXR9XG4gICAgICAgICAgICB0aW1lRm9ybWF0PXtmaWx0ZXIudGltZUZvcm1hdH1cbiAgICAgICAgICAgIHRpbWV6b25lPXtmaWx0ZXIudGltZXpvbmV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1RpbWVCb3R0b21XaWRnZXRJbm5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBSZWFjdC5tZW1vKFRpbWVXaWRnZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBUaW1lV2lkZ2V0RmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBTyxPQUFPO0FBQzlFLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsUUFBUSxNQUFNLGlCQUFpQjtBQUN0QyxTQUFR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SUFBSU0sa0JBQWtCLGdCQUNuQzlHLEtBQUEsQ0FBQWlNLGFBQUEsQ0FBQ2xLLGlCQUFpQixxQkFDaEIvQixLQUFBLENBQUFpTSxhQUFBLENBQUNuTCxVQUFVLFFBQUMsU0FBbUIsQ0FBQyxlQUNoQ2QsS0FBQSxDQUFBaU0sYUFBQSxDQUFDN0osbUJBQW1CLFFBQUUwRSxrQkFBd0MsQ0FBQyxlQUMvRDlHLEtBQUEsQ0FBQWlNLGFBQUEsQ0FBQ3BMLE1BQU07TUFDTHVMLEtBQUs7TUFDTEMsU0FBUztNQUNUQyxJQUFJLEVBQUMsUUFBUTtNQUNiQyxPQUFPLEVBQUVQLG1CQUFvQjtNQUM3QixjQUFXLDBCQUEwQjtNQUNyQyxlQUFZO0lBQTRCLEdBQ3pDLE9BRU8sQ0FDUyxDQUFDLEdBQ2xCLElBQUksZUFDUmhNLEtBQUEsQ0FBQWlNLGFBQUEsQ0FBQ3BLLGlCQUFpQjtNQUFDMkssR0FBRyxFQUFFckc7SUFBcUIsZ0JBQzNDbkcsS0FBQSxDQUFBaU0sYUFBQSxDQUFDdEosZUFBZSxFQUFBOEosUUFBQSxLQUNWL0csbUJBQW1CO01BQ3ZCSSxNQUFNLEVBQUVPLFlBQWE7TUFDckJxRyxRQUFRLEVBQUV2SCxrQkFBbUI7TUFDN0JyQixlQUFlLEVBQUVhLGdCQUFpQjtNQUNsQ1osZUFBZSxFQUFFYSxnQkFBaUI7TUFDbENmLG9CQUFvQixFQUFFWSxxQkFBc0I7TUFDNUNSLHdCQUF3QixFQUFFZSx5QkFBMEI7TUFDcEQySCxhQUFhLEVBQUVwSixlQUFnQjtNQUMvQkksY0FBYyxFQUFFQSxjQUFlO01BQy9CQyxZQUFZLEVBQUVBLFlBQWE7TUFDM0JJLGFBQWEsRUFBRXFCLGNBQWU7TUFDOUJuQixlQUFlLEVBQUVBLGVBQWdCO01BQ2pDVyxVQUFVLEVBQUVBLFVBQVc7TUFDdkJWLFFBQVEsRUFBRUE7SUFBUyxFQUNwQixDQUNnQixDQUNKLENBQUMsRUFDakJaLGVBQWUsZ0JBQ2R2RCxLQUFBLENBQUFpTSxhQUFBLENBQUNySixtQkFBbUI7TUFDbEJnSyxXQUFXLEVBQUV6SixNQUFNLENBQUNpQyxLQUFNO01BQzFCc0IsaUJBQWlCLEVBQUV2RCxNQUFNLENBQUN1RCxpQkFBa0I7TUFDNUNELFVBQVUsRUFBRXRELE1BQU0sQ0FBQ3NELFVBQVc7TUFDOUJJLFFBQVEsRUFBRTFELE1BQU0sQ0FBQzBEO0lBQVMsQ0FDM0IsQ0FBQyxHQUNBLElBQ2lCLENBQUM7RUFFNUIsQ0FBQztFQUVELG9CQUFPN0csS0FBSyxDQUFDNk0sSUFBSSxDQUFDOUosVUFBVSxDQUFDO0FBQy9CO0FBRUEsZUFBZU4saUJBQWlCIiwiaWdub3JlTGlzdCI6W119
|
|
369
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwic3R5bGVkIiwidGhyb3R0bGUiLCJERUZBVUxUX1RJTUVfRk9STUFUIiwiRklMVEVSX1ZJRVdfVFlQRVMiLCJjbGFtcCIsImRhdGV0aW1lRm9ybWF0dGVyIiwiQm90dG9tV2lkZ2V0SW5uZXIiLCJCdXR0b24iLCJQYW5lbExhYmVsIiwiVGltZVJhbmdlU2xpZGVyRmFjdG9yeSIsIkZsb2F0aW5nVGltZURpc3BsYXlGYWN0b3J5IiwidGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3IiLCJUaW1lV2lkZ2V0VG9wRmFjdG9yeSIsIlRpbWVXaWRnZXRTZXR0aW5nc0ZhY3RvcnkiLCJyYW5nZXNFcXVhbCIsImNsYW1wUmFuZ2UiLCJjbGFtcFdpbmRvd1RvRG9tYWluIiwiVGltZUJvdHRvbVdpZGdldElubmVyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsIlRpbWVsaW5lU2VjdGlvbiIsImRpdiIsIl90ZW1wbGF0ZU9iamVjdDIiLCJUaW1lbGluZUNvbnRhaW5lciIsIl90ZW1wbGF0ZU9iamVjdDMiLCJUaW1lbGluZVN0YXR1c0JhciIsIl90ZW1wbGF0ZU9iamVjdDQiLCJwcm9wcyIsInRoZW1lIiwic3VidGV4dENvbG9yIiwiVGltZWxpbmVTdGF0dXNSYW5nZSIsInNwYW4iLCJfdGVtcGxhdGVPYmplY3Q1IiwidGV4dENvbG9ySGwiLCJ0ZXh0Q29sb3IiLCJUaW1lV2lkZ2V0RmFjdG9yeSIsImRlcHMiLCJUaW1lUmFuZ2VTbGlkZXIiLCJGbG9hdGluZ1RpbWVEaXNwbGF5IiwiVGltZVdpZGdldFRvcCIsIlRpbWVXaWRnZXRTZXR0aW5ncyIsIlRpbWVXaWRnZXQiLCJfcmVmIiwiX3JlZjIiLCJkYXRhc2V0cyIsImZpbHRlciIsImxheWVycyIsImluZGV4IiwicmVhZE9ubHkiLCJzaG93VGltZURpc3BsYXkiLCJzZXRGaWx0ZXJBbmltYXRpb25UaW1lIiwib25DbG9zZSIsIm9uVG9nZ2xlTWluaWZ5IiwicmVzZXRBbmltYXRpb24iLCJpc0FuaW1hdGFibGUiLCJ1cGRhdGVBbmltYXRpb25TcGVlZCIsInRvZ2dsZUFuaW1hdGlvbiIsImV4cG9ydEFuaW1hdGlvbiIsInNldEZpbHRlclBsb3QiLCJzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3ciLCJhbmltYXRpb25Db25maWciLCJ0aW1lbGluZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNob3dTZXR0aW5ncyIsInNldFNob3dTZXR0aW5ncyIsIl91cGRhdGVBbmltYXRpb25TcGVlZCIsInNwZWVkIiwiX3RvZ2dsZUFuaW1hdGlvbiIsIl9leHBvcnRBbmltYXRpb24iLCJpc01pbmlmaWVkIiwidmlldyIsIm1pbmlmaWVkIiwiX3NldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsImFuaW1hdGlvbldpbmRvdyIsImlkIiwidGltZVNsaWRlck9uQ2hhbmdlIiwidmFsdWUiLCJfc2V0RmlsdGVyUGxvdCIsIm5ld1Byb3AiLCJ2YWx1ZUluZGV4IiwiX29uVG9nZ2xlU2V0dGluZ3MiLCJwcmV2IiwidGltZVJhbmdlU2xpZGVQcm9wcyIsImZ1bGxEb21haW4iLCJBcnJheSIsImlzQXJyYXkiLCJkb21haW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInRpbWVsaW5lRG9tYWluIiwic2V0VGltZWxpbmVEb21haW4iLCJ0aW1lbGluZUNvbnRhaW5lclJlZiIsImNsYW1wZWQiLCJzbGlkZXJEb21haW4iLCJ1bmRlZmluZWQiLCJkaXNwbGF5ZWRUaW1lbGluZURvbWFpbiIsInRpbWVsaW5lWm9vbWVkIiwidGltZUZvcm1hdCIsImRlZmF1bHRUaW1lRm9ybWF0IiwiZm9ybWF0VGltZXN0YW1wIiwiZm9ybWF0dGVyIiwidGltZXpvbmUiLCJ0aW1lbGluZVJhbmdlTGFiZWwiLCJjb25jYXQiLCJfZmlsdGVyJHZhbHVlIiwiZmlsdGVyU3RhcnQiLCJmaWx0ZXJFbmQiLCJoYW5kbGVXaW5kb3dab29tIiwiZmFjdG9yIiwiY2VudGVyIiwiZG9tYWluUmFuZ2UiLCJkb21haW5XaWR0aCIsIndpbmRvd1dpZHRoIiwibWluV2lkdGgiLCJNYXRoIiwibWF4IiwibmV4dFdpZHRoIiwiY2xhbXBlZENlbnRlciIsInJhdGlvIiwibmV4dFN0YXJ0IiwibmV4dEVuZCIsIl9jbGFtcFdpbmRvd1RvRG9tYWluIiwiX2NsYW1wV2luZG93VG9Eb21haW4yIiwiY2xhbXBlZFN0YXJ0IiwiY2xhbXBlZEVuZCIsImhhbmRsZVRpbWVsaW5lWm9vbSIsIl9mdWxsRG9tYWluIiwiZG9tYWluU3RhcnQiLCJkb21haW5FbmQiLCJmdWxsV2lkdGgiLCJiYXNlV2lkdGgiLCJzaGlmdCIsIm5leHRSYW5nZSIsIndpbmRvd1N0YXJ0Iiwid2luZG93RW5kIiwicmFuZ2VXaWR0aCIsIndpbmRvd1JhdGlvIiwiYWRqdXN0ZWRTdGFydCIsImFkanVzdGVkRW5kIiwiX2NsYW1wV2luZG93VG9Eb21haW4zIiwiX2NsYW1wV2luZG93VG9Eb21haW40IiwiX2NsYW1wV2luZG93VG9Eb21haW41IiwiX2NsYW1wV2luZG93VG9Eb21haW42IiwidGhyb3R0bGVkV2luZG93Wm9vbSIsImxlYWRpbmciLCJ0cmFpbGluZyIsInRocm90dGxlZFRpbWVsaW5lWm9vbSIsImNhbmNlbCIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlTmF0aXZlV2hlZWwiLCJldmVudCIsIl9zbGlkZXJUcmFjayRnZXRCb3VuZCIsImlzUGluY2giLCJjdHJsS2V5IiwibWV0YUtleSIsImFicyIsImRlbHRhWiIsInpvb21GbiIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiZGVsdGFZIiwiYmFzZVN0ZXAiLCJzbGlkZXJUcmFjayIsInF1ZXJ5U2VsZWN0b3IiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJjbGllbnRYIiwibGVmdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZXIiLCJrZXkiLCJhY3RpdmVFbCIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsIkhUTUxJbnB1dEVsZW1lbnQiLCJIVE1MVGV4dEFyZWFFbGVtZW50IiwiaXNDb250ZW50RWRpdGFibGUiLCJfY2xhbXBXaW5kb3dUb0RvbWFpbjciLCJfY2xhbXBXaW5kb3dUb0RvbWFpbjgiLCJ3aW5kb3ciLCJoYW5kbGVSZXNldFRpbWVsaW5lIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIm9uVG9nZ2xlU2V0dGluZ3MiLCJzbWFsbCIsInNlY29uZGFyeSIsInR5cGUiLCJvbkNsaWNrIiwicmVmIiwiX2V4dGVuZHMiLCJvbkNoYW5nZSIsImhpZGVUaW1lVGl0bGUiLCJjdXJyZW50VGltZSIsIm1lbW8iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmlsdGVycy90aW1lLXdpZGdldC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnZXMtdG9vbGtpdC9jb21wYXQvdGhyb3R0bGUnO1xuaW1wb3J0IHtERUZBVUxUX1RJTUVfRk9STUFULCBGSUxURVJfVklFV19UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtjbGFtcCwgZGF0ZXRpbWVGb3JtYXR0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtCb3R0b21XaWRnZXRJbm5lciwgQnV0dG9uLCBQYW5lbExhYmVsfSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFRpbWVSYW5nZVNsaWRlckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL3RpbWUtcmFuZ2Utc2xpZGVyJztcbmltcG9ydCBGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeSBmcm9tICcuLi9jb21tb24vYW5pbWF0aW9uLWNvbnRyb2wvZmxvYXRpbmctdGltZS1kaXNwbGF5JztcbmltcG9ydCB7dGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3J9IGZyb20gJy4vdGltZS1yYW5nZS1maWx0ZXInO1xuaW1wb3J0IHtUaW1lV2lkZ2V0UHJvcHN9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IFRpbWVXaWRnZXRUb3BGYWN0b3J5IGZyb20gJy4vdGltZS13aWRnZXQtdG9wJztcbmltcG9ydCBUaW1lV2lkZ2V0U2V0dGluZ3NGYWN0b3J5IGZyb20gJy4vdGltZS13aWRnZXQtc2V0dGluZ3MnO1xuaW1wb3J0IHtyYW5nZXNFcXVhbCwgY2xhbXBSYW5nZSwgY2xhbXBXaW5kb3dUb0RvbWFpbn0gZnJvbSAnLi4vY29tbW9uL3RpbWVsaW5lLWhlbHBlcnMnO1xuXG5jb25zdCBUaW1lQm90dG9tV2lkZ2V0SW5uZXIgPSBzdHlsZWQoQm90dG9tV2lkZ2V0SW5uZXIpYFxuICBwYWRkaW5nOiA2cHggMzJweCAyNHB4IDMycHg7XG5gO1xuXG5jb25zdCBUaW1lbGluZVNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDIycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBnYXA6IDEycHg7XG5gO1xuXG5jb25zdCBUaW1lbGluZUNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbmA7XG5cbmNvbnN0IFRpbWVsaW5lU3RhdHVzQmFyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG5cbiAgLnNpZGUtcGFuZWwtcGFuZWxfX2xhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5gO1xuXG5jb25zdCBUaW1lbGluZVN0YXR1c1JhbmdlID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsIHx8IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gO1xuXG5UaW1lV2lkZ2V0RmFjdG9yeS5kZXBzID0gW1xuICBUaW1lUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeSxcbiAgVGltZVdpZGdldFRvcEZhY3RvcnksXG4gIFRpbWVXaWRnZXRTZXR0aW5nc0ZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIFRpbWVXaWRnZXRGYWN0b3J5KFxuICBUaW1lUmFuZ2VTbGlkZXI6IFJldHVyblR5cGU8dHlwZW9mIFRpbWVSYW5nZVNsaWRlckZhY3Rvcnk+LFxuICBGbG9hdGluZ1RpbWVEaXNwbGF5OiBSZXR1cm5UeXBlPHR5cGVvZiBGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeT4sXG4gIFRpbWVXaWRnZXRUb3A6IFJldHVyblR5cGU8dHlwZW9mIFRpbWVXaWRnZXRUb3BGYWN0b3J5PixcbiAgVGltZVdpZGdldFNldHRpbmdzOiBSZXR1cm5UeXBlPHR5cGVvZiBUaW1lV2lkZ2V0U2V0dGluZ3NGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IFRpbWVXaWRnZXQ6IFJlYWN0LkZDPFRpbWVXaWRnZXRQcm9wcz4gPSAoe1xuICAgIGRhdGFzZXRzLFxuICAgIGZpbHRlcixcbiAgICBsYXllcnMsXG4gICAgaW5kZXgsXG4gICAgcmVhZE9ubHksXG4gICAgc2hvd1RpbWVEaXNwbGF5LFxuICAgIHNldEZpbHRlckFuaW1hdGlvblRpbWUsXG4gICAgb25DbG9zZSxcbiAgICBvblRvZ2dsZU1pbmlmeSxcbiAgICByZXNldEFuaW1hdGlvbixcbiAgICBpc0FuaW1hdGFibGUsXG4gICAgdXBkYXRlQW5pbWF0aW9uU3BlZWQsXG4gICAgdG9nZ2xlQW5pbWF0aW9uLFxuICAgIGV4cG9ydEFuaW1hdGlvbixcbiAgICBzZXRGaWx0ZXJQbG90LFxuICAgIHNldEZpbHRlckFuaW1hdGlvbldpbmRvdyxcbiAgICBhbmltYXRpb25Db25maWcsXG4gICAgdGltZWxpbmVcbiAgfTogVGltZVdpZGdldFByb3BzKSA9PiB7XG4gICAgY29uc3QgW3Nob3dTZXR0aW5ncywgc2V0U2hvd1NldHRpbmdzXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IF91cGRhdGVBbmltYXRpb25TcGVlZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgc3BlZWQgPT4gdXBkYXRlQW5pbWF0aW9uU3BlZWQoaW5kZXgsIHNwZWVkKSxcbiAgICAgIFt1cGRhdGVBbmltYXRpb25TcGVlZCwgaW5kZXhdXG4gICAgKTtcblxuICAgIGNvbnN0IF90b2dnbGVBbmltYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB0b2dnbGVBbmltYXRpb24oaW5kZXgpLCBbdG9nZ2xlQW5pbWF0aW9uLCBpbmRleF0pO1xuICAgIGNvbnN0IF9leHBvcnRBbmltYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiBleHBvcnRBbmltYXRpb24/LigpLCBbZXhwb3J0QW5pbWF0aW9uXSk7XG5cbiAgICBjb25zdCBpc01pbmlmaWVkID0gdXNlTWVtbygoKSA9PiBmaWx0ZXIudmlldyA9PT0gRklMVEVSX1ZJRVdfVFlQRVMubWluaWZpZWQsIFtmaWx0ZXJdKTtcblxuICAgIGNvbnN0IF9zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3cgPSB1c2VDYWxsYmFjayhcbiAgICAgIGFuaW1hdGlvbldpbmRvdyA9PiBzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3coe2lkOiBmaWx0ZXIuaWQsIGFuaW1hdGlvbldpbmRvd30pLFxuICAgICAgW3NldEZpbHRlckFuaW1hdGlvbldpbmRvdywgZmlsdGVyLmlkXVxuICAgICk7XG5cbiAgICBjb25zdCB0aW1lU2xpZGVyT25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbHVlID0+IHNldEZpbHRlckFuaW1hdGlvblRpbWUoaW5kZXgsICd2YWx1ZScsIHZhbHVlKSxcbiAgICAgIFtzZXRGaWx0ZXJBbmltYXRpb25UaW1lLCBpbmRleF1cbiAgICApO1xuXG4gICAgY29uc3QgX3NldEZpbHRlclBsb3QgPSB1c2VDYWxsYmFjayhcbiAgICAgIChuZXdQcm9wLCB2YWx1ZUluZGV4KSA9PiBzZXRGaWx0ZXJQbG90KGluZGV4LCBuZXdQcm9wLCB2YWx1ZUluZGV4KSxcbiAgICAgIFtpbmRleCwgc2V0RmlsdGVyUGxvdF1cbiAgICApO1xuXG4gICAgY29uc3QgX29uVG9nZ2xlU2V0dGluZ3MgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRTaG93U2V0dGluZ3MocHJldiA9PiAhcHJldik7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgdGltZVJhbmdlU2xpZGVQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiB0aW1lUmFuZ2VTbGlkZXJGaWVsZHNTZWxlY3RvcihmaWx0ZXIsIGRhdGFzZXRzLCBsYXllcnMpLFxuICAgICAgW2ZpbHRlciwgZGF0YXNldHMsIGxheWVyc11cbiAgICApO1xuXG4gICAgY29uc3QgZnVsbERvbWFpbiA9IEFycmF5LmlzQXJyYXkodGltZVJhbmdlU2xpZGVQcm9wcy5kb21haW4pXG4gICAgICA/ICh0aW1lUmFuZ2VTbGlkZVByb3BzLmRvbWFpbiBhcyBbbnVtYmVyLCBudW1iZXJdKVxuICAgICAgOiBudWxsO1xuXG4gICAgY29uc3QgW3RpbWVsaW5lRG9tYWluLCBzZXRUaW1lbGluZURvbWFpbl0gPSB1c2VTdGF0ZTxbbnVtYmVyLCBudW1iZXJdIHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgdGltZWxpbmVDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIWZ1bGxEb21haW4pIHtcbiAgICAgICAgaWYgKHRpbWVsaW5lRG9tYWluKSB7XG4gICAgICAgICAgc2V0VGltZWxpbmVEb21haW4obnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHRpbWVsaW5lRG9tYWluKSB7XG4gICAgICAgIGNvbnN0IGNsYW1wZWQgPSBjbGFtcFJhbmdlKHRpbWVsaW5lRG9tYWluLCBmdWxsRG9tYWluKTtcbiAgICAgICAgaWYgKCFyYW5nZXNFcXVhbChjbGFtcGVkLCB0aW1lbGluZURvbWFpbikpIHtcbiAgICAgICAgICBzZXRUaW1lbGluZURvbWFpbihjbGFtcGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFtmdWxsRG9tYWluXSk7XG5cbiAgICBjb25zdCBzbGlkZXJEb21haW4gPSB0aW1lbGluZURvbWFpbiA/PyBmdWxsRG9tYWluID8/IHVuZGVmaW5lZDtcbiAgICBjb25zdCBkaXNwbGF5ZWRUaW1lbGluZURvbWFpbiA9IHNsaWRlckRvbWFpbiA/PyBudWxsO1xuXG4gICAgY29uc3QgdGltZWxpbmVab29tZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghdGltZWxpbmVEb21haW4gfHwgIWZ1bGxEb21haW4pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuICFyYW5nZXNFcXVhbCh0aW1lbGluZURvbWFpbiwgZnVsbERvbWFpbik7XG4gICAgfSwgW3RpbWVsaW5lRG9tYWluLCBmdWxsRG9tYWluXSk7XG5cbiAgICBjb25zdCB0aW1lRm9ybWF0ID1cbiAgICAgIHRpbWVSYW5nZVNsaWRlUHJvcHMudGltZUZvcm1hdCB8fFxuICAgICAgZmlsdGVyLnRpbWVGb3JtYXQgfHxcbiAgICAgIGZpbHRlci5kZWZhdWx0VGltZUZvcm1hdCB8fFxuICAgICAgREVGQVVMVF9USU1FX0ZPUk1BVDtcbiAgICBjb25zdCBmb3JtYXRUaW1lc3RhbXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGRhdGV0aW1lRm9ybWF0dGVyKGZpbHRlci50aW1lem9uZSk7XG4gICAgICByZXR1cm4gKHZhbHVlOiBudW1iZXIpID0+IGZvcm1hdHRlcih0aW1lRm9ybWF0KSh2YWx1ZSk7XG4gICAgfSwgW2ZpbHRlci50aW1lem9uZSwgdGltZUZvcm1hdF0pO1xuXG4gICAgY29uc3QgdGltZWxpbmVSYW5nZUxhYmVsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWRpc3BsYXllZFRpbWVsaW5lRG9tYWluKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIHJldHVybiBgJHtmb3JtYXRUaW1lc3RhbXAoZGlzcGxheWVkVGltZWxpbmVEb21haW5bMF0pfSDigJMgJHtmb3JtYXRUaW1lc3RhbXAoXG4gICAgICAgIGRpc3BsYXllZFRpbWVsaW5lRG9tYWluWzFdXG4gICAgICApfWA7XG4gICAgfSwgW2Rpc3BsYXllZFRpbWVsaW5lRG9tYWluLCBmb3JtYXRUaW1lc3RhbXBdKTtcblxuICAgIGNvbnN0IFtmaWx0ZXJTdGFydCwgZmlsdGVyRW5kXSA9IGZpbHRlci52YWx1ZTtcblxuICAgIGNvbnN0IGhhbmRsZVdpbmRvd1pvb20gPSB1c2VDYWxsYmFjayhcbiAgICAgIChmYWN0b3I6IG51bWJlciwgY2VudGVyOiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKCFmdWxsRG9tYWluKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvbWFpblJhbmdlOiBbbnVtYmVyLCBudW1iZXJdID0gdGltZWxpbmVEb21haW4gPz8gZnVsbERvbWFpbjtcbiAgICAgICAgY29uc3QgZG9tYWluV2lkdGggPSBkb21haW5SYW5nZVsxXSAtIGRvbWFpblJhbmdlWzBdO1xuICAgICAgICBpZiAoIShkb21haW5XaWR0aCA+IDApKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gZmlsdGVyRW5kIC0gZmlsdGVyU3RhcnQ7XG4gICAgICAgIGlmICghKHdpbmRvd1dpZHRoID4gMCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWluV2lkdGggPSBNYXRoLm1heChkb21haW5XaWR0aCAvIDEwMCwgMSk7XG4gICAgICAgIGNvbnN0IG5leHRXaWR0aCA9IGNsYW1wKFttaW5XaWR0aCwgZG9tYWluV2lkdGhdLCB3aW5kb3dXaWR0aCAvIGZhY3Rvcik7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRDZW50ZXIgPSBjbGFtcChkb21haW5SYW5nZSwgY2VudGVyKTtcbiAgICAgICAgY29uc3QgcmF0aW8gPSBjbGFtcChcbiAgICAgICAgICBbMCwgMV0sXG4gICAgICAgICAgd2luZG93V2lkdGggPiAwID8gKGNsYW1wZWRDZW50ZXIgLSBmaWx0ZXJTdGFydCkgLyB3aW5kb3dXaWR0aCA6IDAuNVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBuZXh0U3RhcnQgPSBjbGFtcGVkQ2VudGVyIC0gcmF0aW8gKiBuZXh0V2lkdGg7XG4gICAgICAgIGNvbnN0IG5leHRFbmQgPSBuZXh0U3RhcnQgKyBuZXh0V2lkdGg7XG4gICAgICAgIGNvbnN0IFtjbGFtcGVkU3RhcnQsIGNsYW1wZWRFbmRdID0gY2xhbXBXaW5kb3dUb0RvbWFpbihuZXh0U3RhcnQsIG5leHRFbmQsIGRvbWFpblJhbmdlKTtcbiAgICAgICAgaWYgKGNsYW1wZWRTdGFydCAhPT0gZmlsdGVyU3RhcnQgfHwgY2xhbXBlZEVuZCAhPT0gZmlsdGVyRW5kKSB7XG4gICAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZShpbmRleCwgJ3ZhbHVlJywgW2NsYW1wZWRTdGFydCwgY2xhbXBlZEVuZF0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBmaWx0ZXJFbmQsXG4gICAgICAgIGZpbHRlclN0YXJ0LFxuICAgICAgICBmdWxsRG9tYWluLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZSxcbiAgICAgICAgdGltZWxpbmVEb21haW5cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgaGFuZGxlVGltZWxpbmVab29tID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZmFjdG9yOiBudW1iZXIsIGNlbnRlcjogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmICghZnVsbERvbWFpbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb21haW5SYW5nZTogW251bWJlciwgbnVtYmVyXSA9IHRpbWVsaW5lRG9tYWluID8/IGZ1bGxEb21haW47XG4gICAgICAgIGNvbnN0IFtkb21haW5TdGFydCwgZG9tYWluRW5kXSA9IGZ1bGxEb21haW47XG4gICAgICAgIGNvbnN0IGZ1bGxXaWR0aCA9IGRvbWFpbkVuZCAtIGRvbWFpblN0YXJ0O1xuICAgICAgICBpZiAoIShmdWxsV2lkdGggPiAwKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiYXNlV2lkdGggPSBNYXRoLm1heChkb21haW5SYW5nZVsxXSAtIGRvbWFpblJhbmdlWzBdLCAxKTtcbiAgICAgICAgY29uc3QgY2xhbXBlZENlbnRlciA9IGNsYW1wKGRvbWFpblJhbmdlLCBjZW50ZXIpO1xuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IE1hdGgubWF4KGZ1bGxXaWR0aCAvIDIwLCAxKTtcbiAgICAgICAgY29uc3QgbmV4dFdpZHRoID0gY2xhbXAoW21pbldpZHRoLCBmdWxsV2lkdGhdLCBiYXNlV2lkdGggLyBmYWN0b3IpO1xuICAgICAgICBjb25zdCByYXRpbyA9IGNsYW1wKFxuICAgICAgICAgIFswLCAxXSxcbiAgICAgICAgICBiYXNlV2lkdGggPiAwID8gKGNsYW1wZWRDZW50ZXIgLSBkb21haW5SYW5nZVswXSkgLyBiYXNlV2lkdGggOiAwLjVcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgbmV4dFN0YXJ0ID0gY2xhbXBlZENlbnRlciAtIHJhdGlvICogbmV4dFdpZHRoO1xuICAgICAgICBsZXQgbmV4dEVuZCA9IG5leHRTdGFydCArIG5leHRXaWR0aDtcblxuICAgICAgICBpZiAobmV4dFN0YXJ0IDwgZG9tYWluU3RhcnQpIHtcbiAgICAgICAgICBjb25zdCBzaGlmdCA9IGRvbWFpblN0YXJ0IC0gbmV4dFN0YXJ0O1xuICAgICAgICAgIG5leHRTdGFydCA9IGRvbWFpblN0YXJ0O1xuICAgICAgICAgIG5leHRFbmQgKz0gc2hpZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5leHRFbmQgPiBkb21haW5FbmQpIHtcbiAgICAgICAgICBjb25zdCBzaGlmdCA9IG5leHRFbmQgLSBkb21haW5FbmQ7XG4gICAgICAgICAgbmV4dEVuZCA9IGRvbWFpbkVuZDtcbiAgICAgICAgICBuZXh0U3RhcnQgLT0gc2hpZnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFJhbmdlOiBbbnVtYmVyLCBudW1iZXJdID0gY2xhbXBSYW5nZShbbmV4dFN0YXJ0LCBuZXh0RW5kXSwgZnVsbERvbWFpbik7XG4gICAgICAgIHNldFRpbWVsaW5lRG9tYWluKHByZXYgPT4gKHJhbmdlc0VxdWFsKHByZXYsIG5leHRSYW5nZSkgPyBwcmV2IDogbmV4dFJhbmdlKSk7XG5cbiAgICAgICAgbGV0IHdpbmRvd1N0YXJ0ID0gZmlsdGVyU3RhcnQ7XG4gICAgICAgIGxldCB3aW5kb3dFbmQgPSBmaWx0ZXJFbmQ7XG4gICAgICAgIGNvbnN0IHJhbmdlV2lkdGggPSBuZXh0UmFuZ2VbMV0gLSBuZXh0UmFuZ2VbMF07XG4gICAgICAgIGlmIChyYW5nZVdpZHRoIDwgd2luZG93RW5kIC0gd2luZG93U3RhcnQpIHtcbiAgICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IE1hdGgubWF4KHdpbmRvd0VuZCAtIHdpbmRvd1N0YXJ0LCAxKTtcbiAgICAgICAgICBjb25zdCB3aW5kb3dSYXRpbyA9IGNsYW1wKFswLCAxXSwgKGNsYW1wZWRDZW50ZXIgLSB3aW5kb3dTdGFydCkgLyB3aW5kb3dXaWR0aCk7XG4gICAgICAgICAgY29uc3QgYWRqdXN0ZWRTdGFydCA9IGNsYW1wZWRDZW50ZXIgLSB3aW5kb3dSYXRpbyAqIHJhbmdlV2lkdGg7XG4gICAgICAgICAgY29uc3QgYWRqdXN0ZWRFbmQgPSBjbGFtcGVkQ2VudGVyICsgKDEgLSB3aW5kb3dSYXRpbykgKiByYW5nZVdpZHRoO1xuICAgICAgICAgIFt3aW5kb3dTdGFydCwgd2luZG93RW5kXSA9IGNsYW1wV2luZG93VG9Eb21haW4oYWRqdXN0ZWRTdGFydCwgYWRqdXN0ZWRFbmQsIG5leHRSYW5nZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgW3dpbmRvd1N0YXJ0LCB3aW5kb3dFbmRdID0gY2xhbXBXaW5kb3dUb0RvbWFpbih3aW5kb3dTdGFydCwgd2luZG93RW5kLCBuZXh0UmFuZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aW5kb3dTdGFydCAhPT0gZmlsdGVyU3RhcnQgfHwgd2luZG93RW5kICE9PSBmaWx0ZXJFbmQpIHtcbiAgICAgICAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lKGluZGV4LCAndmFsdWUnLCBbd2luZG93U3RhcnQsIHdpbmRvd0VuZF0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBmaWx0ZXJFbmQsXG4gICAgICAgIGZpbHRlclN0YXJ0LFxuICAgICAgICBmdWxsRG9tYWluLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZSxcbiAgICAgICAgdGltZWxpbmVEb21haW5cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgdGhyb3R0bGVkV2luZG93Wm9vbSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiB0aHJvdHRsZShoYW5kbGVXaW5kb3dab29tLCA0MCwge2xlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiBmYWxzZX0pLFxuICAgICAgW2hhbmRsZVdpbmRvd1pvb21dXG4gICAgKTtcblxuICAgIGNvbnN0IHRocm90dGxlZFRpbWVsaW5lWm9vbSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiB0aHJvdHRsZShoYW5kbGVUaW1lbGluZVpvb20sIDQwLCB7bGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IGZhbHNlfSksXG4gICAgICBbaGFuZGxlVGltZWxpbmVab29tXVxuICAgICk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4gKCkgPT4gdGhyb3R0bGVkV2luZG93Wm9vbS5jYW5jZWwoKSwgW3Rocm90dGxlZFdpbmRvd1pvb21dKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4gKCkgPT4gdGhyb3R0bGVkVGltZWxpbmVab29tLmNhbmNlbCgpLCBbdGhyb3R0bGVkVGltZWxpbmVab29tXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHRpbWVsaW5lQ29udGFpbmVyUmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhbmRsZU5hdGl2ZVdoZWVsID0gKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChpc01pbmlmaWVkIHx8ICFzbGlkZXJEb21haW4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNQaW5jaCA9XG4gICAgICAgICAgZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IE1hdGguYWJzKGV2ZW50LmRlbHRhWiB8fCAwKSA+IDA7XG4gICAgICAgIGNvbnN0IHpvb21GbiA9IGlzUGluY2ggPyB0aHJvdHRsZWRUaW1lbGluZVpvb20gOiB0aHJvdHRsZWRXaW5kb3dab29tO1xuICAgICAgICBpZiAoIXpvb21Gbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGlmIChldmVudC5kZWx0YVkgPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBiYXNlU3RlcCA9IGlzUGluY2ggPyAwLjAyIDogMC4wODtcbiAgICAgICAgY29uc3QgZmFjdG9yID0gZXZlbnQuZGVsdGFZIDwgMCA/IDEgKyBiYXNlU3RlcCA6IDEgLyAoMSArIGJhc2VTdGVwKTtcbiAgICAgICAgY29uc3Qgc2xpZGVyVHJhY2sgPSBub2RlLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgJy5rZy1yYW5nZS1zbGlkZXJfX3NsaWRlcidcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBzbGlkZXJUcmFjaz8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgPz8gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKCFyZWN0IHx8IHJlY3Qud2lkdGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmF0aW8gPSBjbGFtcChbMCwgMV0sIChldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0KSAvIHJlY3Qud2lkdGgpO1xuICAgICAgICBjb25zdCBjZW50ZXIgPSBzbGlkZXJEb21haW5bMF0gKyByYXRpbyAqIChzbGlkZXJEb21haW5bMV0gLSBzbGlkZXJEb21haW5bMF0pO1xuICAgICAgICB6b29tRm4oZmFjdG9yLCBjZW50ZXIpO1xuICAgICAgfTtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBoYW5kbGVOYXRpdmVXaGVlbCwge3Bhc3NpdmU6IGZhbHNlfSk7XG4gICAgICByZXR1cm4gKCkgPT4gbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIGhhbmRsZU5hdGl2ZVdoZWVsKTtcbiAgICB9LCBbaXNNaW5pZmllZCwgc2xpZGVyRG9tYWluLCB0aHJvdHRsZWRUaW1lbGluZVpvb20sIHRocm90dGxlZFdpbmRvd1pvb21dKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNNaW5pZmllZCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgaGFuZGxlciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIShldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgIT09ICdBcnJvd0xlZnQnICYmIGV2ZW50LmtleSAhPT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZUVsID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFjdGl2ZUVsIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fFxuICAgICAgICAgIGFjdGl2ZUVsIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCB8fFxuICAgICAgICAgIChhY3RpdmVFbCBhcyBIVE1MRWxlbWVudCk/LmlzQ29udGVudEVkaXRhYmxlXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb21haW5SYW5nZSA9IHRpbWVsaW5lRG9tYWluID8/IGZ1bGxEb21haW47XG4gICAgICAgIGlmICghZG9tYWluUmFuZ2UpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSBmaWx0ZXJFbmQgLSBmaWx0ZXJTdGFydDtcbiAgICAgICAgaWYgKCEod2luZG93V2lkdGggPiAwKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBsZXQgbmV4dFN0YXJ0OiBudW1iZXI7XG4gICAgICAgIGxldCBuZXh0RW5kOiBudW1iZXI7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgIG5leHRTdGFydCA9IGZpbHRlckVuZDtcbiAgICAgICAgICBuZXh0RW5kID0gZmlsdGVyRW5kICsgd2luZG93V2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dFN0YXJ0ID0gZmlsdGVyU3RhcnQgLSB3aW5kb3dXaWR0aDtcbiAgICAgICAgICBuZXh0RW5kID0gZmlsdGVyU3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgW25leHRTdGFydCwgbmV4dEVuZF0gPSBjbGFtcFdpbmRvd1RvRG9tYWluKG5leHRTdGFydCwgbmV4dEVuZCwgZG9tYWluUmFuZ2UpO1xuICAgICAgICBpZiAobmV4dFN0YXJ0ICE9PSBmaWx0ZXJTdGFydCB8fCBuZXh0RW5kICE9PSBmaWx0ZXJFbmQpIHtcbiAgICAgICAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lKGluZGV4LCAndmFsdWUnLCBbbmV4dFN0YXJ0LCBuZXh0RW5kXSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIpO1xuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gICAgfSwgW2ZpbHRlckVuZCwgZmlsdGVyU3RhcnQsIGZ1bGxEb21haW4sIGluZGV4LCBpc01pbmlmaWVkLCBzZXRGaWx0ZXJBbmltYXRpb25UaW1lLCB0aW1lbGluZURvbWFpbl0pO1xuXG4gICAgY29uc3QgaGFuZGxlUmVzZXRUaW1lbGluZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFRpbWVsaW5lRG9tYWluKG51bGwpO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8VGltZUJvdHRvbVdpZGdldElubmVyIGNsYXNzTmFtZT1cImJvdHRvbS13aWRnZXQtLWlubmVyXCI+XG4gICAgICAgIDxUaW1lV2lkZ2V0VG9wXG4gICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICAgICAgb25Ub2dnbGVNaW5pZnk9e29uVG9nZ2xlTWluaWZ5fVxuICAgICAgICAgIG9uVG9nZ2xlU2V0dGluZ3M9e19vblRvZ2dsZVNldHRpbmdzfVxuICAgICAgICAgIGlzTWluaWZpZWQ9e2lzTWluaWZpZWR9XG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93U2V0dGluZ3MgJiYgIWlzTWluaWZpZWQgPyAoXG4gICAgICAgICAgPFRpbWVXaWRnZXRTZXR0aW5ncyBmaWx0ZXI9e2ZpbHRlcn0gZGF0YXNldHM9e2RhdGFzZXRzfSBzZXRGaWx0ZXJQbG90PXtfc2V0RmlsdGVyUGxvdH0gLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxUaW1lbGluZVNlY3Rpb24+XG4gICAgICAgICAge3RpbWVsaW5lWm9vbWVkICYmIHRpbWVsaW5lUmFuZ2VMYWJlbCA/IChcbiAgICAgICAgICAgIDxUaW1lbGluZVN0YXR1c0Jhcj5cbiAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+U2hvd2luZzwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgPFRpbWVsaW5lU3RhdHVzUmFuZ2U+e3RpbWVsaW5lUmFuZ2VMYWJlbH08L1RpbWVsaW5lU3RhdHVzUmFuZ2U+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVJlc2V0VGltZWxpbmV9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlJlc2V0IHRpbWVsaW5lIHNlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJ0aW1lLXdpZGdldC10aW1lbGluZS1yZXNldFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBSZXNldFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVGltZWxpbmVTdGF0dXNCYXI+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPFRpbWVsaW5lQ29udGFpbmVyIHJlZj17dGltZWxpbmVDb250YWluZXJSZWZ9PlxuICAgICAgICAgICAgPFRpbWVSYW5nZVNsaWRlclxuICAgICAgICAgICAgICB7Li4udGltZVJhbmdlU2xpZGVQcm9wc31cbiAgICAgICAgICAgICAgZG9tYWluPXtzbGlkZXJEb21haW59XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aW1lU2xpZGVyT25DaGFuZ2V9XG4gICAgICAgICAgICAgIHRvZ2dsZUFuaW1hdGlvbj17X3RvZ2dsZUFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgZXhwb3J0QW5pbWF0aW9uPXtfZXhwb3J0QW5pbWF0aW9ufVxuICAgICAgICAgICAgICB1cGRhdGVBbmltYXRpb25TcGVlZD17X3VwZGF0ZUFuaW1hdGlvblNwZWVkfVxuICAgICAgICAgICAgICBzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3c9e19zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3d9XG4gICAgICAgICAgICAgIGhpZGVUaW1lVGl0bGU9e3Nob3dUaW1lRGlzcGxheX1cbiAgICAgICAgICAgICAgcmVzZXRBbmltYXRpb249e3Jlc2V0QW5pbWF0aW9ufVxuICAgICAgICAgICAgICBpc0FuaW1hdGFibGU9e2lzQW5pbWF0YWJsZX1cbiAgICAgICAgICAgICAgc2V0RmlsdGVyUGxvdD17X3NldEZpbHRlclBsb3R9XG4gICAgICAgICAgICAgIGFuaW1hdGlvbkNvbmZpZz17YW5pbWF0aW9uQ29uZmlnfVxuICAgICAgICAgICAgICBpc01pbmlmaWVkPXtpc01pbmlmaWVkfVxuICAgICAgICAgICAgICB0aW1lbGluZT17dGltZWxpbmV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVGltZWxpbmVDb250YWluZXI+XG4gICAgICAgIDwvVGltZWxpbmVTZWN0aW9uPlxuICAgICAgICB7c2hvd1RpbWVEaXNwbGF5ID8gKFxuICAgICAgICAgIDxGbG9hdGluZ1RpbWVEaXNwbGF5XG4gICAgICAgICAgICBjdXJyZW50VGltZT17ZmlsdGVyLnZhbHVlfVxuICAgICAgICAgICAgZGVmYXVsdFRpbWVGb3JtYXQ9e2ZpbHRlci5kZWZhdWx0VGltZUZvcm1hdH1cbiAgICAgICAgICAgIHRpbWVGb3JtYXQ9e2ZpbHRlci50aW1lRm9ybWF0fVxuICAgICAgICAgICAgdGltZXpvbmU9e2ZpbHRlci50aW1lem9uZX1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVGltZUJvdHRvbVdpZGdldElubmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oVGltZVdpZGdldCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRpbWVXaWRnZXRGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFPLE9BQU87QUFDOUUsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxRQUFRLE1BQU0sNEJBQTRCO0FBQ2pELFNBQVFDLG1CQUFtQixFQUFFQyxpQkFBaUIsUUFBTyxzQkFBc0I7QUFDM0UsU0FBUUMsS0FBSyxFQUFFQyxpQkFBaUIsUUFBTyxrQkFBa0I7QUFDekQsU0FBUUMsaUJBQWlCLEVBQUVDLE1BQU0sRUFBRUMsVUFBVSxRQUFPLDZCQUE2QjtBQUNqRixPQUFPQyxzQkFBc0IsTUFBTSw2QkFBNkI7QUFDaEUsT0FBT0MsMEJBQTBCLE1BQU0sbURBQW1EO0FBQzFGLFNBQVFDLDZCQUE2QixRQUFPLHFCQUFxQjtBQUVqRSxPQUFPQyxvQkFBb0IsTUFBTSxtQkFBbUI7QUFDcEQsT0FBT0MseUJBQXlCLE1BQU0sd0JBQXdCO0FBQzlELFNBQVFDLFdBQVcsRUFBRUMsVUFBVSxFQUFFQyxtQkFBbUIsUUFBTyw0QkFBNEI7QUFFdkYsSUFBTUMscUJBQXFCLEdBQUdqQixNQUFNLENBQUNNLGlCQUFpQixDQUFDLENBQUFZLGVBQUEsS0FBQUEsZUFBQSxHQUFBQyxzQkFBQSwwQ0FFdEQ7QUFFRCxJQUFNQyxlQUFlLEdBQUdwQixNQUFNLENBQUNxQixHQUFHLENBQUFDLGdCQUFBLEtBQUFBLGdCQUFBLEdBQUFILHNCQUFBLDBJQU9qQztBQUVELElBQU1JLGlCQUFpQixHQUFHdkIsTUFBTSxDQUFDcUIsR0FBRyxDQUFBRyxnQkFBQSxLQUFBQSxnQkFBQSxHQUFBTCxzQkFBQSxpQ0FFbkM7QUFFRCxJQUFNTSxpQkFBaUIsR0FBR3pCLE1BQU0sQ0FBQ3FCLEdBQUcsQ0FBQUssZ0JBQUEsS0FBQUEsZ0JBQUEsR0FBQVAsc0JBQUEsdVBBU3pCLFVBQUFRLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsWUFBWTtBQUFBLEVBSzNDO0FBRUQsSUFBTUMsbUJBQW1CLEdBQUc5QixNQUFNLENBQUMrQixJQUFJLENBQUFDLGdCQUFBLEtBQUFBLGdCQUFBLEdBQUFiLHNCQUFBLHdFQUM1QixVQUFBUSxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNLLFdBQVcsSUFBSU4sS0FBSyxDQUFDQyxLQUFLLENBQUNNLFNBQVM7QUFBQSxFQUduRTtBQUVEQyxpQkFBaUIsQ0FBQ0MsSUFBSSxHQUFHLENBQ3ZCM0Isc0JBQXNCLEVBQ3RCQywwQkFBMEIsRUFDMUJFLG9CQUFvQixFQUNwQkMseUJBQXlCLENBQzFCO0FBRUQsU0FBU3NCLGlCQUFpQkEsQ0FDeEJFLGVBQTBELEVBQzFEQyxtQkFBa0UsRUFDbEVDLGFBQXNELEVBQ3REQyxrQkFBZ0UsRUFDaEU7RUFDQSxJQUFNQyxVQUFxQyxHQUFHLFNBQXhDQSxVQUFxQ0EsQ0FBQUMsSUFBQSxFQW1CcEI7SUFBQSxJQUFBQyxLQUFBO0lBQUEsSUFsQnJCQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtNQUNSQyxNQUFNLEdBQUFILElBQUEsQ0FBTkcsTUFBTTtNQUNOQyxNQUFNLEdBQUFKLElBQUEsQ0FBTkksTUFBTTtNQUNOQyxLQUFLLEdBQUFMLElBQUEsQ0FBTEssS0FBSztNQUNMQyxRQUFRLEdBQUFOLElBQUEsQ0FBUk0sUUFBUTtNQUNSQyxlQUFlLEdBQUFQLElBQUEsQ0FBZk8sZUFBZTtNQUNmQyxzQkFBc0IsR0FBQVIsSUFBQSxDQUF0QlEsc0JBQXNCO01BQ3RCQyxPQUFPLEdBQUFULElBQUEsQ0FBUFMsT0FBTztNQUNQQyxjQUFjLEdBQUFWLElBQUEsQ0FBZFUsY0FBYztNQUNkQyxjQUFjLEdBQUFYLElBQUEsQ0FBZFcsY0FBYztNQUNkQyxZQUFZLEdBQUFaLElBQUEsQ0FBWlksWUFBWTtNQUNaQyxvQkFBb0IsR0FBQWIsSUFBQSxDQUFwQmEsb0JBQW9CO01BQ3BCQyxlQUFlLEdBQUFkLElBQUEsQ0FBZmMsZUFBZTtNQUNmQyxlQUFlLEdBQUFmLElBQUEsQ0FBZmUsZUFBZTtNQUNmQyxhQUFhLEdBQUFoQixJQUFBLENBQWJnQixhQUFhO01BQ2JDLHdCQUF3QixHQUFBakIsSUFBQSxDQUF4QmlCLHdCQUF3QjtNQUN4QkMsZUFBZSxHQUFBbEIsSUFBQSxDQUFma0IsZUFBZTtNQUNmQyxRQUFRLEdBQUFuQixJQUFBLENBQVJtQixRQUFRO0lBRVIsSUFBQUMsU0FBQSxHQUF3Qy9ELFFBQVEsQ0FBQyxLQUFLLENBQUM7TUFBQWdFLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO01BQWhERyxZQUFZLEdBQUFGLFVBQUE7TUFBRUcsZUFBZSxHQUFBSCxVQUFBO0lBRXBDLElBQU1JLHFCQUFxQixHQUFHeEUsV0FBVyxDQUN2QyxVQUFBeUUsS0FBSztNQUFBLE9BQUliLG9CQUFvQixDQUFDUixLQUFLLEVBQUVxQixLQUFLLENBQUM7SUFBQSxHQUMzQyxDQUFDYixvQkFBb0IsRUFBRVIsS0FBSyxDQUM5QixDQUFDO0lBRUQsSUFBTXNCLGdCQUFnQixHQUFHMUUsV0FBVyxDQUFDO01BQUEsT0FBTTZELGVBQWUsQ0FBQ1QsS0FBSyxDQUFDO0lBQUEsR0FBRSxDQUFDUyxlQUFlLEVBQUVULEtBQUssQ0FBQyxDQUFDO0lBQzVGLElBQU11QixnQkFBZ0IsR0FBRzNFLFdBQVcsQ0FBQztNQUFBLE9BQU04RCxlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRyxDQUFDO0lBQUEsR0FBRSxDQUFDQSxlQUFlLENBQUMsQ0FBQztJQUVsRixJQUFNYyxVQUFVLEdBQUcxRSxPQUFPLENBQUM7TUFBQSxPQUFNZ0QsTUFBTSxDQUFDMkIsSUFBSSxLQUFLckUsaUJBQWlCLENBQUNzRSxRQUFRO0lBQUEsR0FBRSxDQUFDNUIsTUFBTSxDQUFDLENBQUM7SUFFdEYsSUFBTTZCLHlCQUF5QixHQUFHL0UsV0FBVyxDQUMzQyxVQUFBZ0YsZUFBZTtNQUFBLE9BQUloQix3QkFBd0IsQ0FBQztRQUFDaUIsRUFBRSxFQUFFL0IsTUFBTSxDQUFDK0IsRUFBRTtRQUFFRCxlQUFlLEVBQWZBO01BQWUsQ0FBQyxDQUFDO0lBQUEsR0FDN0UsQ0FBQ2hCLHdCQUF3QixFQUFFZCxNQUFNLENBQUMrQixFQUFFLENBQ3RDLENBQUM7SUFFRCxJQUFNQyxrQkFBa0IsR0FBR2xGLFdBQVcsQ0FDcEMsVUFBQW1GLEtBQUs7TUFBQSxPQUFJNUIsc0JBQXNCLENBQUNILEtBQUssRUFBRSxPQUFPLEVBQUUrQixLQUFLLENBQUM7SUFBQSxHQUN0RCxDQUFDNUIsc0JBQXNCLEVBQUVILEtBQUssQ0FDaEMsQ0FBQztJQUVELElBQU1nQyxjQUFjLEdBQUdwRixXQUFXLENBQ2hDLFVBQUNxRixPQUFPLEVBQUVDLFVBQVU7TUFBQSxPQUFLdkIsYUFBYSxDQUFDWCxLQUFLLEVBQUVpQyxPQUFPLEVBQUVDLFVBQVUsQ0FBQztJQUFBLEdBQ2xFLENBQUNsQyxLQUFLLEVBQUVXLGFBQWEsQ0FDdkIsQ0FBQztJQUVELElBQU13QixpQkFBaUIsR0FBR3ZGLFdBQVcsQ0FBQyxZQUFNO01BQzFDdUUsZUFBZSxDQUFDLFVBQUFpQixJQUFJO1FBQUEsT0FBSSxDQUFDQSxJQUFJO01BQUEsRUFBQztJQUNoQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRU4sSUFBTUMsbUJBQW1CLEdBQUd2RixPQUFPLENBQ2pDO01BQUEsT0FBTWMsNkJBQTZCLENBQUNrQyxNQUFNLEVBQUVELFFBQVEsRUFBRUUsTUFBTSxDQUFDO0lBQUEsR0FDN0QsQ0FBQ0QsTUFBTSxFQUFFRCxRQUFRLEVBQUVFLE1BQU0sQ0FDM0IsQ0FBQztJQUVELElBQU11QyxVQUFVLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSCxtQkFBbUIsQ0FBQ0ksTUFBTSxDQUFDLEdBQ3ZESixtQkFBbUIsQ0FBQ0ksTUFBTSxHQUMzQixJQUFJO0lBRVIsSUFBQUMsVUFBQSxHQUE0QzFGLFFBQVEsQ0FBMEIsSUFBSSxDQUFDO01BQUEyRixVQUFBLEdBQUExQixjQUFBLENBQUF5QixVQUFBO01BQTVFRSxjQUFjLEdBQUFELFVBQUE7TUFBRUUsaUJBQWlCLEdBQUFGLFVBQUE7SUFDeEMsSUFBTUcsb0JBQW9CLEdBQUcvRixNQUFNLENBQXdCLElBQUksQ0FBQztJQUVoRUYsU0FBUyxDQUFDLFlBQU07TUFDZCxJQUFJLENBQUN5RixVQUFVLEVBQUU7UUFDZixJQUFJTSxjQUFjLEVBQUU7VUFDbEJDLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN6QjtRQUNBO01BQ0Y7TUFDQSxJQUFJRCxjQUFjLEVBQUU7UUFDbEIsSUFBTUcsT0FBTyxHQUFHL0UsVUFBVSxDQUFDNEUsY0FBYyxFQUFFTixVQUFVLENBQUM7UUFDdEQsSUFBSSxDQUFDdkUsV0FBVyxDQUFDZ0YsT0FBTyxFQUFFSCxjQUFjLENBQUMsRUFBRTtVQUN6Q0MsaUJBQWlCLENBQUNFLE9BQU8sQ0FBQztRQUM1QjtNQUNGO01BQ0E7SUFDRixDQUFDLEVBQUUsQ0FBQ1QsVUFBVSxDQUFDLENBQUM7SUFFaEIsSUFBTVUsWUFBWSxJQUFBcEQsS0FBQSxHQUFHZ0QsY0FBYyxhQUFkQSxjQUFjLGNBQWRBLGNBQWMsR0FBSU4sVUFBVSxjQUFBMUMsS0FBQSxjQUFBQSxLQUFBLEdBQUlxRCxTQUFTO0lBQzlELElBQU1DLHVCQUF1QixHQUFHRixZQUFZLGFBQVpBLFlBQVksY0FBWkEsWUFBWSxHQUFJLElBQUk7SUFFcEQsSUFBTUcsY0FBYyxHQUFHckcsT0FBTyxDQUFDLFlBQU07TUFDbkMsSUFBSSxDQUFDOEYsY0FBYyxJQUFJLENBQUNOLFVBQVUsRUFBRTtRQUNsQyxPQUFPLEtBQUs7TUFDZDtNQUNBLE9BQU8sQ0FBQ3ZFLFdBQVcsQ0FBQzZFLGNBQWMsRUFBRU4sVUFBVSxDQUFDO0lBQ2pELENBQUMsRUFBRSxDQUFDTSxjQUFjLEVBQUVOLFVBQVUsQ0FBQyxDQUFDO0lBRWhDLElBQU1jLFVBQVUsR0FDZGYsbUJBQW1CLENBQUNlLFVBQVUsSUFDOUJ0RCxNQUFNLENBQUNzRCxVQUFVLElBQ2pCdEQsTUFBTSxDQUFDdUQsaUJBQWlCLElBQ3hCbEcsbUJBQW1CO0lBQ3JCLElBQU1tRyxlQUFlLEdBQUd4RyxPQUFPLENBQUMsWUFBTTtNQUNwQyxJQUFNeUcsU0FBUyxHQUFHakcsaUJBQWlCLENBQUN3QyxNQUFNLENBQUMwRCxRQUFRLENBQUM7TUFDcEQsT0FBTyxVQUFDekIsS0FBYTtRQUFBLE9BQUt3QixTQUFTLENBQUNILFVBQVUsQ0FBQyxDQUFDckIsS0FBSyxDQUFDO01BQUE7SUFDeEQsQ0FBQyxFQUFFLENBQUNqQyxNQUFNLENBQUMwRCxRQUFRLEVBQUVKLFVBQVUsQ0FBQyxDQUFDO0lBRWpDLElBQU1LLGtCQUFrQixHQUFHM0csT0FBTyxDQUFDLFlBQU07TUFDdkMsSUFBSSxDQUFDb0csdUJBQXVCLEVBQUU7UUFDNUIsT0FBTyxFQUFFO01BQ1g7TUFDQSxVQUFBUSxNQUFBLENBQVVKLGVBQWUsQ0FBQ0osdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBQVEsTUFBQSxDQUFNSixlQUFlLENBQ3hFSix1QkFBdUIsQ0FBQyxDQUFDLENBQzNCLENBQUM7SUFDSCxDQUFDLEVBQUUsQ0FBQ0EsdUJBQXVCLEVBQUVJLGVBQWUsQ0FBQyxDQUFDO0lBRTlDLElBQUFLLGFBQUEsR0FBQTFDLGNBQUEsQ0FBaUNuQixNQUFNLENBQUNpQyxLQUFLO01BQXRDNkIsV0FBVyxHQUFBRCxhQUFBO01BQUVFLFNBQVMsR0FBQUYsYUFBQTtJQUU3QixJQUFNRyxnQkFBZ0IsR0FBR2xILFdBQVcsQ0FDbEMsVUFBQ21ILE1BQWMsRUFBRUMsTUFBYyxFQUFLO01BQ2xDLElBQUksQ0FBQzFCLFVBQVUsRUFBRTtRQUNmO01BQ0Y7TUFDQSxJQUFNMkIsV0FBNkIsR0FBR3JCLGNBQWMsYUFBZEEsY0FBYyxjQUFkQSxjQUFjLEdBQUlOLFVBQVU7TUFDbEUsSUFBTTRCLFdBQVcsR0FBR0QsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHQSxXQUFXLENBQUMsQ0FBQyxDQUFDO01BQ25ELElBQUksRUFBRUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ3RCO01BQ0Y7TUFDQSxJQUFNQyxXQUFXLEdBQUdOLFNBQVMsR0FBR0QsV0FBVztNQUMzQyxJQUFJLEVBQUVPLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUN0QjtNQUNGO01BQ0EsSUFBTUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0osV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7TUFDL0MsSUFBTUssU0FBUyxHQUFHbEgsS0FBSyxDQUFDLENBQUMrRyxRQUFRLEVBQUVGLFdBQVcsQ0FBQyxFQUFFQyxXQUFXLEdBQUdKLE1BQU0sQ0FBQztNQUN0RSxJQUFNUyxhQUFhLEdBQUduSCxLQUFLLENBQUM0RyxXQUFXLEVBQUVELE1BQU0sQ0FBQztNQUNoRCxJQUFNUyxLQUFLLEdBQUdwSCxLQUFLLENBQ2pCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNOOEcsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDSyxhQUFhLEdBQUdaLFdBQVcsSUFBSU8sV0FBVyxHQUFHLEdBQ2xFLENBQUM7TUFDRCxJQUFNTyxTQUFTLEdBQUdGLGFBQWEsR0FBR0MsS0FBSyxHQUFHRixTQUFTO01BQ25ELElBQU1JLE9BQU8sR0FBR0QsU0FBUyxHQUFHSCxTQUFTO01BQ3JDLElBQUFLLG9CQUFBLEdBQW1DM0csbUJBQW1CLENBQUN5RyxTQUFTLEVBQUVDLE9BQU8sRUFBRVYsV0FBVyxDQUFDO1FBQUFZLHFCQUFBLEdBQUE1RCxjQUFBLENBQUEyRCxvQkFBQTtRQUFoRkUsWUFBWSxHQUFBRCxxQkFBQTtRQUFFRSxVQUFVLEdBQUFGLHFCQUFBO01BQy9CLElBQUlDLFlBQVksS0FBS2xCLFdBQVcsSUFBSW1CLFVBQVUsS0FBS2xCLFNBQVMsRUFBRTtRQUM1RDFELHNCQUFzQixDQUFDSCxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM4RSxZQUFZLEVBQUVDLFVBQVUsQ0FBQyxDQUFDO01BQ3BFO0lBQ0YsQ0FBQyxFQUNELENBQ0VsQixTQUFTLEVBQ1RELFdBQVcsRUFDWHRCLFVBQVUsRUFDVnRDLEtBQUssRUFDTEcsc0JBQXNCLEVBQ3RCeUMsY0FBYyxDQUVsQixDQUFDO0lBRUQsSUFBTW9DLGtCQUFrQixHQUFHcEksV0FBVyxDQUNwQyxVQUFDbUgsTUFBYyxFQUFFQyxNQUFjLEVBQUs7TUFDbEMsSUFBSSxDQUFDMUIsVUFBVSxFQUFFO1FBQ2Y7TUFDRjtNQUNBLElBQU0yQixXQUE2QixHQUFHckIsY0FBYyxhQUFkQSxjQUFjLGNBQWRBLGNBQWMsR0FBSU4sVUFBVTtNQUNsRSxJQUFBMkMsV0FBQSxHQUFBaEUsY0FBQSxDQUFpQ3FCLFVBQVU7UUFBcEM0QyxXQUFXLEdBQUFELFdBQUE7UUFBRUUsU0FBUyxHQUFBRixXQUFBO01BQzdCLElBQU1HLFNBQVMsR0FBR0QsU0FBUyxHQUFHRCxXQUFXO01BQ3pDLElBQUksRUFBRUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ3BCO01BQ0Y7TUFDQSxJQUFNQyxTQUFTLEdBQUdoQixJQUFJLENBQUNDLEdBQUcsQ0FBQ0wsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHQSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BQzlELElBQU1PLGFBQWEsR0FBR25ILEtBQUssQ0FBQzRHLFdBQVcsRUFBRUQsTUFBTSxDQUFDO01BQ2hELElBQU1JLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUNjLFNBQVMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO01BQzVDLElBQU1iLFNBQVMsR0FBR2xILEtBQUssQ0FBQyxDQUFDK0csUUFBUSxFQUFFZ0IsU0FBUyxDQUFDLEVBQUVDLFNBQVMsR0FBR3RCLE1BQU0sQ0FBQztNQUNsRSxJQUFNVSxLQUFLLEdBQUdwSCxLQUFLLENBQ2pCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNOZ0ksU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDYixhQUFhLEdBQUdQLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSW9CLFNBQVMsR0FBRyxHQUNqRSxDQUFDO01BRUQsSUFBSVgsU0FBUyxHQUFHRixhQUFhLEdBQUdDLEtBQUssR0FBR0YsU0FBUztNQUNqRCxJQUFJSSxPQUFPLEdBQUdELFNBQVMsR0FBR0gsU0FBUztNQUVuQyxJQUFJRyxTQUFTLEdBQUdRLFdBQVcsRUFBRTtRQUMzQixJQUFNSSxLQUFLLEdBQUdKLFdBQVcsR0FBR1IsU0FBUztRQUNyQ0EsU0FBUyxHQUFHUSxXQUFXO1FBQ3ZCUCxPQUFPLElBQUlXLEtBQUs7TUFDbEI7TUFDQSxJQUFJWCxPQUFPLEdBQUdRLFNBQVMsRUFBRTtRQUN2QixJQUFNRyxNQUFLLEdBQUdYLE9BQU8sR0FBR1EsU0FBUztRQUNqQ1IsT0FBTyxHQUFHUSxTQUFTO1FBQ25CVCxTQUFTLElBQUlZLE1BQUs7TUFDcEI7TUFDQSxJQUFNQyxTQUEyQixHQUFHdkgsVUFBVSxDQUFDLENBQUMwRyxTQUFTLEVBQUVDLE9BQU8sQ0FBQyxFQUFFckMsVUFBVSxDQUFDO01BQ2hGTyxpQkFBaUIsQ0FBQyxVQUFBVCxJQUFJO1FBQUEsT0FBS3JFLFdBQVcsQ0FBQ3FFLElBQUksRUFBRW1ELFNBQVMsQ0FBQyxHQUFHbkQsSUFBSSxHQUFHbUQsU0FBUztNQUFBLENBQUMsQ0FBQztNQUU1RSxJQUFJQyxXQUFXLEdBQUc1QixXQUFXO01BQzdCLElBQUk2QixTQUFTLEdBQUc1QixTQUFTO01BQ3pCLElBQU02QixVQUFVLEdBQUdILFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBR0EsU0FBUyxDQUFDLENBQUMsQ0FBQztNQUM5QyxJQUFJRyxVQUFVLEdBQUdELFNBQVMsR0FBR0QsV0FBVyxFQUFFO1FBQ3hDLElBQU1yQixXQUFXLEdBQUdFLElBQUksQ0FBQ0MsR0FBRyxDQUFDbUIsU0FBUyxHQUFHRCxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQU1HLFdBQVcsR0FBR3RJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDbUgsYUFBYSxHQUFHZ0IsV0FBVyxJQUFJckIsV0FBVyxDQUFDO1FBQzlFLElBQU15QixhQUFhLEdBQUdwQixhQUFhLEdBQUdtQixXQUFXLEdBQUdELFVBQVU7UUFDOUQsSUFBTUcsV0FBVyxHQUFHckIsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHbUIsV0FBVyxJQUFJRCxVQUFVO1FBQUMsSUFBQUkscUJBQUEsR0FDeEM3SCxtQkFBbUIsQ0FBQzJILGFBQWEsRUFBRUMsV0FBVyxFQUFFTixTQUFTLENBQUM7UUFBQSxJQUFBUSxxQkFBQSxHQUFBOUUsY0FBQSxDQUFBNkUscUJBQUE7UUFBcEZOLFdBQVcsR0FBQU8scUJBQUE7UUFBRU4sU0FBUyxHQUFBTSxxQkFBQTtNQUN6QixDQUFDLE1BQU07UUFBQSxJQUFBQyxxQkFBQSxHQUNzQi9ILG1CQUFtQixDQUFDdUgsV0FBVyxFQUFFQyxTQUFTLEVBQUVGLFNBQVMsQ0FBQztRQUFBLElBQUFVLHFCQUFBLEdBQUFoRixjQUFBLENBQUErRSxxQkFBQTtRQUFoRlIsV0FBVyxHQUFBUyxxQkFBQTtRQUFFUixTQUFTLEdBQUFRLHFCQUFBO01BQ3pCO01BQ0EsSUFBSVQsV0FBVyxLQUFLNUIsV0FBVyxJQUFJNkIsU0FBUyxLQUFLNUIsU0FBUyxFQUFFO1FBQzFEMUQsc0JBQXNCLENBQUNILEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQ3dGLFdBQVcsRUFBRUMsU0FBUyxDQUFDLENBQUM7TUFDbEU7SUFDRixDQUFDLEVBQ0QsQ0FDRTVCLFNBQVMsRUFDVEQsV0FBVyxFQUNYdEIsVUFBVSxFQUNWdEMsS0FBSyxFQUNMRyxzQkFBc0IsRUFDdEJ5QyxjQUFjLENBRWxCLENBQUM7SUFFRCxJQUFNc0QsbUJBQW1CLEdBQUdwSixPQUFPLENBQ2pDO01BQUEsT0FBTUksUUFBUSxDQUFDNEcsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFO1FBQUNxQyxPQUFPLEVBQUUsSUFBSTtRQUFFQyxRQUFRLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFBQSxHQUN0RSxDQUFDdEMsZ0JBQWdCLENBQ25CLENBQUM7SUFFRCxJQUFNdUMscUJBQXFCLEdBQUd2SixPQUFPLENBQ25DO01BQUEsT0FBTUksUUFBUSxDQUFDOEgsa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1FBQUNtQixPQUFPLEVBQUUsSUFBSTtRQUFFQyxRQUFRLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFBQSxHQUN4RSxDQUFDcEIsa0JBQWtCLENBQ3JCLENBQUM7SUFFRG5JLFNBQVMsQ0FBQztNQUFBLE9BQU07UUFBQSxPQUFNcUosbUJBQW1CLENBQUNJLE1BQU0sQ0FBQyxDQUFDO01BQUE7SUFBQSxHQUFFLENBQUNKLG1CQUFtQixDQUFDLENBQUM7SUFDMUVySixTQUFTLENBQUM7TUFBQSxPQUFNO1FBQUEsT0FBTXdKLHFCQUFxQixDQUFDQyxNQUFNLENBQUMsQ0FBQztNQUFBO0lBQUEsR0FBRSxDQUFDRCxxQkFBcUIsQ0FBQyxDQUFDO0lBRTlFeEosU0FBUyxDQUFDLFlBQU07TUFDZCxJQUFNMEosSUFBSSxHQUFHekQsb0JBQW9CLENBQUMwRCxPQUFPO01BQ3pDLElBQUksQ0FBQ0QsSUFBSSxFQUFFO1FBQ1QsT0FBT3RELFNBQVM7TUFDbEI7TUFDQSxJQUFNd0QsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUMsS0FBaUIsRUFBSztRQUFBLElBQUFDLHFCQUFBO1FBQy9DLElBQUluRixVQUFVLElBQUksQ0FBQ3dCLFlBQVksRUFBRTtVQUMvQjtRQUNGO1FBQ0EsSUFBTTRELE9BQU8sR0FDWEYsS0FBSyxDQUFDRyxPQUFPLElBQUlILEtBQUssQ0FBQ0ksT0FBTyxJQUFJekMsSUFBSSxDQUFDMEMsR0FBRyxDQUFDTCxLQUFLLENBQUNNLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ25FLElBQU1DLE1BQU0sR0FBR0wsT0FBTyxHQUFHUCxxQkFBcUIsR0FBR0gsbUJBQW1CO1FBQ3BFLElBQUksQ0FBQ2UsTUFBTSxFQUFFO1VBQ1g7UUFDRjtRQUVBUCxLQUFLLENBQUNRLGNBQWMsQ0FBQyxDQUFDO1FBQ3RCUixLQUFLLENBQUNTLGVBQWUsQ0FBQyxDQUFDO1FBRXZCLElBQUlULEtBQUssQ0FBQ1UsTUFBTSxLQUFLLENBQUMsRUFBRTtVQUN0QjtRQUNGO1FBRUEsSUFBTUMsUUFBUSxHQUFHVCxPQUFPLEdBQUcsSUFBSSxHQUFHLElBQUk7UUFDdEMsSUFBTTdDLE1BQU0sR0FBRzJDLEtBQUssQ0FBQ1UsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUdDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHQSxRQUFRLENBQUM7UUFDbkUsSUFBTUMsV0FBVyxHQUFHZixJQUFJLENBQUNnQixhQUFhLENBQ3BDLDBCQUNGLENBQXVCO1FBQ3ZCLElBQU1DLElBQUksSUFBQWIscUJBQUEsR0FBR1csV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVHLHFCQUFxQixDQUFDLENBQUMsY0FBQWQscUJBQUEsY0FBQUEscUJBQUEsR0FBSUosSUFBSSxDQUFDa0IscUJBQXFCLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUNELElBQUksSUFBSUEsSUFBSSxDQUFDRSxLQUFLLEtBQUssQ0FBQyxFQUFFO1VBQzdCO1FBQ0Y7UUFDQSxJQUFNakQsS0FBSyxHQUFHcEgsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUNxSixLQUFLLENBQUNpQixPQUFPLEdBQUdILElBQUksQ0FBQ0ksSUFBSSxJQUFJSixJQUFJLENBQUNFLEtBQUssQ0FBQztRQUNyRSxJQUFNMUQsTUFBTSxHQUFHaEIsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHeUIsS0FBSyxJQUFJekIsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHQSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUVpRSxNQUFNLENBQUNsRCxNQUFNLEVBQUVDLE1BQU0sQ0FBQztNQUN4QixDQUFDO01BQ0R1QyxJQUFJLENBQUNzQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUVwQixpQkFBaUIsRUFBRTtRQUFDcUIsT0FBTyxFQUFFO01BQUssQ0FBQyxDQUFDO01BQ25FLE9BQU87UUFBQSxPQUFNdkIsSUFBSSxDQUFDd0IsbUJBQW1CLENBQUMsT0FBTyxFQUFFdEIsaUJBQWlCLENBQUM7TUFBQTtJQUNuRSxDQUFDLEVBQUUsQ0FBQ2pGLFVBQVUsRUFBRXdCLFlBQVksRUFBRXFELHFCQUFxQixFQUFFSCxtQkFBbUIsQ0FBQyxDQUFDO0lBRTFFckosU0FBUyxDQUFDLFlBQU07TUFDZCxJQUFJMkUsVUFBVSxFQUFFO1FBQ2QsT0FBT3lCLFNBQVM7TUFDbEI7TUFDQSxJQUFNK0UsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUl0QixLQUFvQixFQUFLO1FBQ3hDLElBQUksRUFBRUEsS0FBSyxDQUFDRyxPQUFPLElBQUlILEtBQUssQ0FBQ0ksT0FBTyxDQUFDLEVBQUU7VUFDckM7UUFDRjtRQUNBLElBQUlKLEtBQUssQ0FBQ3VCLEdBQUcsS0FBSyxXQUFXLElBQUl2QixLQUFLLENBQUN1QixHQUFHLEtBQUssWUFBWSxFQUFFO1VBQzNEO1FBQ0Y7UUFDQSxJQUFNQyxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYTtRQUN2QyxJQUNFRixRQUFRLFlBQVlHLGdCQUFnQixJQUNwQ0gsUUFBUSxZQUFZSSxtQkFBbUIsSUFDdENKLFFBQVEsYUFBUkEsUUFBUSxlQUFSQSxRQUFRLENBQWtCSyxpQkFBaUIsRUFDNUM7VUFDQTtRQUNGO1FBQ0EsSUFBTXRFLFdBQVcsR0FBR3JCLGNBQWMsYUFBZEEsY0FBYyxjQUFkQSxjQUFjLEdBQUlOLFVBQVU7UUFDaEQsSUFBSSxDQUFDMkIsV0FBVyxFQUFFO1VBQ2hCO1FBQ0Y7UUFDQSxJQUFNRSxXQUFXLEdBQUdOLFNBQVMsR0FBR0QsV0FBVztRQUMzQyxJQUFJLEVBQUVPLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRTtVQUN0QjtRQUNGO1FBQ0F1QyxLQUFLLENBQUNRLGNBQWMsQ0FBQyxDQUFDO1FBQ3RCLElBQUl4QyxTQUFpQjtRQUNyQixJQUFJQyxPQUFlO1FBQ25CLElBQUkrQixLQUFLLENBQUN1QixHQUFHLEtBQUssWUFBWSxFQUFFO1VBQzlCdkQsU0FBUyxHQUFHYixTQUFTO1VBQ3JCYyxPQUFPLEdBQUdkLFNBQVMsR0FBR00sV0FBVztRQUNuQyxDQUFDLE1BQU07VUFDTE8sU0FBUyxHQUFHZCxXQUFXLEdBQUdPLFdBQVc7VUFDckNRLE9BQU8sR0FBR2YsV0FBVztRQUN2QjtRQUFDLElBQUE0RSxxQkFBQSxHQUNzQnZLLG1CQUFtQixDQUFDeUcsU0FBUyxFQUFFQyxPQUFPLEVBQUVWLFdBQVcsQ0FBQztRQUFBLElBQUF3RSxxQkFBQSxHQUFBeEgsY0FBQSxDQUFBdUgscUJBQUE7UUFBMUU5RCxTQUFTLEdBQUErRCxxQkFBQTtRQUFFOUQsT0FBTyxHQUFBOEQscUJBQUE7UUFDbkIsSUFBSS9ELFNBQVMsS0FBS2QsV0FBVyxJQUFJZSxPQUFPLEtBQUtkLFNBQVMsRUFBRTtVQUN0RDFELHNCQUFzQixDQUFDSCxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMwRSxTQUFTLEVBQUVDLE9BQU8sQ0FBQyxDQUFDO1FBQzlEO01BQ0YsQ0FBQztNQUNEK0QsTUFBTSxDQUFDYixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUVHLE9BQU8sQ0FBQztNQUMzQyxPQUFPO1FBQUEsT0FBTVUsTUFBTSxDQUFDWCxtQkFBbUIsQ0FBQyxTQUFTLEVBQUVDLE9BQU8sQ0FBQztNQUFBO0lBQzdELENBQUMsRUFBRSxDQUFDbkUsU0FBUyxFQUFFRCxXQUFXLEVBQUV0QixVQUFVLEVBQUV0QyxLQUFLLEVBQUV3QixVQUFVLEVBQUVyQixzQkFBc0IsRUFBRXlDLGNBQWMsQ0FBQyxDQUFDO0lBRW5HLElBQU0rRixtQkFBbUIsR0FBRy9MLFdBQVcsQ0FBQyxZQUFNO01BQzVDaUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUMsRUFBRSxFQUFFLENBQUM7SUFFTixvQkFDRWxHLEtBQUEsQ0FBQWlNLGFBQUEsQ0FBQzFLLHFCQUFxQjtNQUFDMkssU0FBUyxFQUFDO0lBQXNCLGdCQUNyRGxNLEtBQUEsQ0FBQWlNLGFBQUEsQ0FBQ3BKLGFBQWE7TUFDWk0sTUFBTSxFQUFFQSxNQUFPO01BQ2ZHLFFBQVEsRUFBRUEsUUFBUztNQUNuQkcsT0FBTyxFQUFFQSxPQUFRO01BQ2pCQyxjQUFjLEVBQUVBLGNBQWU7TUFDL0J5SSxnQkFBZ0IsRUFBRTNHLGlCQUFrQjtNQUNwQ1gsVUFBVSxFQUFFQTtJQUFXLENBQ3hCLENBQUMsRUFDRE4sWUFBWSxJQUFJLENBQUNNLFVBQVUsZ0JBQzFCN0UsS0FBQSxDQUFBaU0sYUFBQSxDQUFDbkosa0JBQWtCO01BQUNLLE1BQU0sRUFBRUEsTUFBTztNQUFDRCxRQUFRLEVBQUVBLFFBQVM7TUFBQ2MsYUFBYSxFQUFFcUI7SUFBZSxDQUFFLENBQUMsR0FDdkYsSUFBSSxlQUNSckYsS0FBQSxDQUFBaU0sYUFBQSxDQUFDdkssZUFBZSxRQUNiOEUsY0FBYyxJQUFJTSxrQkFBa0IsZ0JBQ25DOUcsS0FBQSxDQUFBaU0sYUFBQSxDQUFDbEssaUJBQWlCLHFCQUNoQi9CLEtBQUEsQ0FBQWlNLGFBQUEsQ0FBQ25MLFVBQVUsUUFBQyxTQUFtQixDQUFDLGVBQ2hDZCxLQUFBLENBQUFpTSxhQUFBLENBQUM3SixtQkFBbUIsUUFBRTBFLGtCQUF3QyxDQUFDLGVBQy9EOUcsS0FBQSxDQUFBaU0sYUFBQSxDQUFDcEwsTUFBTTtNQUNMdUwsS0FBSztNQUNMQyxTQUFTO01BQ1RDLElBQUksRUFBQyxRQUFRO01BQ2JDLE9BQU8sRUFBRVAsbUJBQW9CO01BQzdCLGNBQVcsMEJBQTBCO01BQ3JDLGVBQVk7SUFBNEIsR0FDekMsT0FFTyxDQUNTLENBQUMsR0FDbEIsSUFBSSxlQUNSaE0sS0FBQSxDQUFBaU0sYUFBQSxDQUFDcEssaUJBQWlCO01BQUMySyxHQUFHLEVBQUVyRztJQUFxQixnQkFDM0NuRyxLQUFBLENBQUFpTSxhQUFBLENBQUN0SixlQUFlLEVBQUE4SixRQUFBLEtBQ1YvRyxtQkFBbUI7TUFDdkJJLE1BQU0sRUFBRU8sWUFBYTtNQUNyQnFHLFFBQVEsRUFBRXZILGtCQUFtQjtNQUM3QnJCLGVBQWUsRUFBRWEsZ0JBQWlCO01BQ2xDWixlQUFlLEVBQUVhLGdCQUFpQjtNQUNsQ2Ysb0JBQW9CLEVBQUVZLHFCQUFzQjtNQUM1Q1Isd0JBQXdCLEVBQUVlLHlCQUEwQjtNQUNwRDJILGFBQWEsRUFBRXBKLGVBQWdCO01BQy9CSSxjQUFjLEVBQUVBLGNBQWU7TUFDL0JDLFlBQVksRUFBRUEsWUFBYTtNQUMzQkksYUFBYSxFQUFFcUIsY0FBZTtNQUM5Qm5CLGVBQWUsRUFBRUEsZUFBZ0I7TUFDakNXLFVBQVUsRUFBRUEsVUFBVztNQUN2QlYsUUFBUSxFQUFFQTtJQUFTLEVBQ3BCLENBQ2dCLENBQ0osQ0FBQyxFQUNqQlosZUFBZSxnQkFDZHZELEtBQUEsQ0FBQWlNLGFBQUEsQ0FBQ3JKLG1CQUFtQjtNQUNsQmdLLFdBQVcsRUFBRXpKLE1BQU0sQ0FBQ2lDLEtBQU07TUFDMUJzQixpQkFBaUIsRUFBRXZELE1BQU0sQ0FBQ3VELGlCQUFrQjtNQUM1Q0QsVUFBVSxFQUFFdEQsTUFBTSxDQUFDc0QsVUFBVztNQUM5QkksUUFBUSxFQUFFMUQsTUFBTSxDQUFDMEQ7SUFBUyxDQUMzQixDQUFDLEdBQ0EsSUFDaUIsQ0FBQztFQUU1QixDQUFDO0VBRUQsb0JBQU83RyxLQUFLLENBQUM2TSxJQUFJLENBQUM5SixVQUFVLENBQUM7QUFDL0I7QUFFQSxlQUFlTixpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -9,7 +9,7 @@ var _templateObject, _templateObject2, _templateObject3;
|
|
|
9
9
|
|
|
10
10
|
import React, { useEffect, useRef, useMemo } from 'react';
|
|
11
11
|
import styled from 'styled-components';
|
|
12
|
-
import truncate from '
|
|
12
|
+
import truncate from 'es-toolkit/compat/truncate';
|
|
13
13
|
import { CenterFlexbox } from '../common/styled-components';
|
|
14
14
|
import { Layers } from '../common/icons';
|
|
15
15
|
import PropTypes from 'prop-types';
|
|
@@ -309,4 +309,4 @@ var LayerHoverInfoFactory = function LayerHoverInfoFactory() {
|
|
|
309
309
|
return LayerHoverInfo;
|
|
310
310
|
};
|
|
311
311
|
export default LayerHoverInfoFactory;
|
|
312
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZU1lbW8iLCJzdHlsZWQiLCJ0cnVuY2F0ZSIsIkNlbnRlckZsZXhib3giLCJMYXllcnMiLCJQcm9wVHlwZXMiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJEYXRhUm93IiwiZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlIiwiZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSIsInVzZUludGwiLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJTdHlsZWRMYXllck5hbWUiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvckhsIiwiU3R5bGVkVGFibGUiLCJ0YWJsZSIsIl90ZW1wbGF0ZU9iamVjdDIiLCJub3RpZmljYXRpb25Db2xvcnMiLCJzdWNjZXNzIiwibmVnYXRpdmVCdG5BY3RCZ2QiLCJTdHlsZWREaXZpZGVyIiwiZGl2IiwiX3RlbXBsYXRlT2JqZWN0MyIsInBhbmVsQm9yZGVyQ29sb3IiLCJUT09MVElQX1ZBTFVFX01BWF9MRU5HVEgiLCJUb29sdGlwSW1hZ2UiLCJfcmVmIiwic3JjIiwiaW1nUmVmIiwic3RhcnRzV2l0aCIsIlVSTCIsInJldm9rZU9iamVjdFVSTCIsImUiLCJjdXJyZW50IiwiY3JlYXRlRWxlbWVudCIsInJlZiIsIlJvdyIsIl9yZWYyIiwibmFtZSIsInZhbHVlIiwiZGVsdGFWYWx1ZSIsInVybCIsImlzQ29tcGFyaW5nIiwibWF0Y2giLCJkaXNwbGF5VmFsdWUiLCJsZW5ndGgiLCJhc0ltZyIsInRlc3QiLCJjbGFzc05hbWUiLCJrZXkiLCJyZXBsYWNlIiwidGFyZ2V0IiwicmVsIiwiaHJlZiIsImNvbmNhdCIsInRvU3RyaW5nIiwiY2hhckF0IiwiRW50cnlJbmZvIiwiX3JlZjMiLCJmaWVsZHNUb1Nob3ciLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJtYXAiLCJpdGVtIiwiRW50cnlJbmZvUm93IiwiX2V4dGVuZHMiLCJfcmVmNCIsImxheWVyIiwiZmllbGRzIiwiZGF0YSIsInByaW1hcnlEYXRhIiwiY29tcGFyZVR5cGUiLCJjdXJyZW50VGltZSIsImZpZWxkSWR4IiwiZmluZEluZGV4IiwiZiIsImZpZWxkIiwiZmllbGRWYWx1ZUFjY2Vzc29yIiwiYWNjZXNzVlNGaWVsZFZhbHVlIiwiaW5kZXgiLCJfcm93SW5kZXgiLCJwcmltYXJ5VmFsdWUiLCJkaXNwbGF5RGVsdGFWYWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsIl90eXBlb2YiLCJlcnJvciIsImRpc3BsYXlOYW1lIiwiQm9vbGVhbiIsIkNlbGxJbmZvIiwiX3JlZjUiLCJfcmVmNiIsImNvbmZpZyIsImNvbG9yRmllbGQiLCJzaXplRmllbGQiLCJjb2xvclZhbHVlIiwidmlzdWFsQ2hhbm5lbHMiLCJjb2xvciIsImZpbmQiLCJlbGV2YXRpb25WYWx1ZSIsInNpemUiLCJjb2xvckRlbHRhIiwiZWxldmF0aW9uRGVsdGEiLCJhZ2dyZWdhdGVkRGF0YSIsInJlZHVjZSIsImFjYyIsIl9kYXRhJGFnZ3JlZ2F0ZWREYXRhIiwiZGF0YUZvckZpZWxkIiwibWVhc3VyZSIsIl9wcmltYXJ5RGF0YSRhZ2dyZWdhdCIsInByaW1hcnlEYXRhRm9yRmllbGQiLCJ0eXBlIiwiTnVtYmVyIiwicHVzaCIsImNvbG9yTWVhc3VyZSIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsInNpemVNZWFzdXJlIiwiU3RyaW5nIiwicG9pbnRzIiwiaWR4IiwiTGF5ZXJIb3ZlckluZm9GYWN0b3J5IiwiTGF5ZXJIb3ZlckluZm8iLCJpbnRsIiwiaGFzRmllbGRzVG9TaG93IiwiZmllbGRWYWx1ZXMiLCJPYmplY3QiLCJrZXlzIiwid21zRmVhdHVyZURhdGEiLCJoZWlnaHQiLCJsYWJlbCIsInVuZGVmaW5lZCIsIl9yZWY3IiwiaSIsIl9yZWY4IiwibGFiZWxNZXNzYWdlIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiaXNBZ2dyZWdhdGVkIiwicHJvcFR5cGVzIiwiYXJyYXlPZiIsImFueSIsIm9iamVjdCIsIm9uZU9mVHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXAvbGF5ZXItaG92ZXItaW5mby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHRydW5jYXRlIGZyb20gJ2xvZGFzaC90cnVuY2F0ZSc7XG5pbXBvcnQge0NvbXBhcmVUeXBlLCBGaWVsZCwgTWVyZ2UsIFRvb2x0aXBGaWVsZH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0NlbnRlckZsZXhib3h9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0xheWVyc30gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtEYXRhUm93fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGEsXG4gIExheWVySG92ZXJQcm9wLFxuICBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUsXG4gIGdldFRvb2x0aXBEaXNwbGF5VmFsdWVcbn0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge3VzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcbmltcG9ydCB7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFN0eWxlZExheWVyTmFtZSA9IHN0eWxlZChDZW50ZXJGbGV4Ym94KWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjQzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG4gIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRhYmxlID0gc3R5bGVkLnRhYmxlYFxuICAmIC5yb3dfX2RlbHRhLXZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuXG4gICAgJi5wb3NpdGl2ZSB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ub3RpZmljYXRpb25Db2xvcnMuc3VjY2Vzc307XG4gICAgfVxuXG4gICAgJi5uZWdhdGl2ZSB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5uZWdhdGl2ZUJ0bkFjdEJnZH07XG4gICAgfVxuICB9XG4gICYgLnJvd19fbmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gICYgLnJvd19fdmFsdWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICAvLyBvZmZzZXQgZGl2aWRlciB0byByZWFjaCBwb3BvdmVyIGVkZ2VcbiAgbWFyZ2luLWxlZnQ6IC0xNHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbmA7XG5cbmludGVyZmFjZSBSb3dQcm9wcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGVsdGFWYWx1ZT86IHN0cmluZyB8IG51bGw7XG4gIHVybD86IHN0cmluZztcbiAgaXNDb21wYXJpbmc/OiBib29sZWFuO1xufVxuXG5jb25zdCBUT09MVElQX1ZBTFVFX01BWF9MRU5HVEggPSAyNTY7XG5cbi8qKlxuICogSW1hZ2UgY29tcG9uZW50IHRoYXQgY2xlYW5zIHVwIHJlc291cmNlcyBvbiB1bm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLlxuICogUmV2b2tlcyBibG9iL29iamVjdCBVUkxzIGFuZCBjbGVhcnMgdGhlIGltYWdlIHNyYyB0byByZWxlYXNlIG1lbW9yeS5cbiAqL1xuY29uc3QgVG9vbHRpcEltYWdlOiBSZWFjdC5GQzx7c3JjOiBzdHJpbmd9PiA9ICh7c3JjfSkgPT4ge1xuICBjb25zdCBpbWdSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gUmV2b2tlIGJsb2IgVVJMcyB0byBmcmVlIG1lbW9yeVxuICAgICAgaWYgKHNyYyAmJiAoc3JjLnN0YXJ0c1dpdGgoJ2Jsb2I6JykgfHwgc3JjLnN0YXJ0c1dpdGgoJ2RhdGE6JykpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChzcmMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gaWdub3JlIGVycm9ycyBmcm9tIG5vbi1vYmplY3QgVVJMc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDbGVhciB0aGUgaW1hZ2Ugc3JjIHRvIHJlbGVhc2UgdGhlIGRlY29kZWQgaW1hZ2UgZnJvbSBtZW1vcnlcbiAgICAgIGlmIChpbWdSZWYuY3VycmVudCkge1xuICAgICAgICBpbWdSZWYuY3VycmVudC5zcmMgPSAnJztcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc3JjXSk7XG5cbiAgcmV0dXJuIDxpbWcgcmVmPXtpbWdSZWZ9IHNyYz17c3JjfSAvPjtcbn07XG5cbmNvbnN0IFJvdzogUmVhY3QuRkM8Um93UHJvcHM+ID0gKHtuYW1lLCB2YWx1ZSwgZGVsdGFWYWx1ZSwgdXJsLCBpc0NvbXBhcmluZ30pID0+IHtcbiAgLy8gU2V0ICd1cmwnIHRvICd2YWx1ZScgaWYgaXQgbG9va3MgbGlrZSBhIHVybFxuICBpZiAoIXVybCAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLm1hdGNoKC9eaHR0cC8pKSB7XG4gICAgdXJsID0gdmFsdWU7XG4gIH1cblxuICBjb25zdCBkaXNwbGF5VmFsdWUgPVxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gVE9PTFRJUF9WQUxVRV9NQVhfTEVOR1RIXG4gICAgICA/IHRydW5jYXRlKHZhbHVlLCB7bGVuZ3RoOiBUT09MVElQX1ZBTFVFX01BWF9MRU5HVEh9KVxuICAgICAgOiB2YWx1ZTtcblxuICBjb25zdCBhc0ltZyA9IC88aW1nPi8udGVzdChuYW1lKTtcbiAgcmV0dXJuIChcbiAgICA8dHIgY2xhc3NOYW1lPVwibGF5ZXItaG92ZXItaW5mb19fcm93XCIga2V5PXtuYW1lfT5cbiAgICAgIDx0ZCBjbGFzc05hbWU9XCJyb3dfX25hbWVcIj57YXNJbWcgPyBuYW1lLnJlcGxhY2UoJzxpbWc+JywgJycpIDogbmFtZX08L3RkPlxuICAgICAgPHRkIGNsYXNzTmFtZT1cInJvd19fdmFsdWVcIj5cbiAgICAgICAge2FzSW1nID8gKFxuICAgICAgICAgIDxUb29sdGlwSW1hZ2Ugc3JjPXt2YWx1ZX0gLz5cbiAgICAgICAgKSA6IHVybCA/IChcbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIHtkaXNwbGF5VmFsdWV9XG4gICAgICAgICAgPC9hPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxzcGFuPntkaXNwbGF5VmFsdWV9PC9zcGFuPlxuICAgICAgICApfVxuICAgICAgPC90ZD5cbiAgICAgIHtpc0NvbXBhcmluZyA/IChcbiAgICAgICAgPHRkXG4gICAgICAgICAgY2xhc3NOYW1lPXtgcm93X19kZWx0YS12YWx1ZSAke1xuICAgICAgICAgICAgbm90TnVsbG9yVW5kZWZpbmVkKGRlbHRhVmFsdWUpXG4gICAgICAgICAgICAgID8gZGVsdGFWYWx1ZT8udG9TdHJpbmcoKS5jaGFyQXQoMCkgPT09ICcrJ1xuICAgICAgICAgICAgICAgID8gJ3Bvc2l0aXZlJ1xuICAgICAgICAgICAgICAgIDogJ25lZ2F0aXZlJ1xuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgfWB9XG4gICAgICAgID5cbiAgICAgICAgICB7ZGVsdGFWYWx1ZSA/PyAnJ31cbiAgICAgICAgPC90ZD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvdHI+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBFbnRyeUluZm9Qcm9wcyA9IE1lcmdlPExheWVySG92ZXJQcm9wLCB7ZmllbGRzVG9TaG93OiBUb29sdGlwRmllbGRbXX0+O1xuXG5jb25zdCBFbnRyeUluZm86IFJlYWN0LkZDPEVudHJ5SW5mb1Byb3BzPiA9ICh7ZmllbGRzVG9TaG93LCAuLi5wcm9wc30pID0+IChcbiAgPHRib2R5PlxuICAgIHtmaWVsZHNUb1Nob3cubWFwKGl0ZW0gPT4gKFxuICAgICAgPEVudHJ5SW5mb1JvdyBrZXk9e2l0ZW0ubmFtZX0gaXRlbT17aXRlbX0gey4uLnByb3BzfSAvPlxuICAgICkpfVxuICA8L3Rib2R5PlxuKTtcblxuZXhwb3J0IHR5cGUgRW50cnlJbmZvUm93UHJvcHMgPSB7XG4gIGRhdGE6IExheWVySG92ZXJQcm9wWydkYXRhJ107XG4gIGZpZWxkczogRmllbGRbXTtcbiAgbGF5ZXI6IExheWVyO1xuICBwcmltYXJ5RGF0YT86IExheWVySG92ZXJQcm9wWydwcmltYXJ5RGF0YSddO1xuICBjb21wYXJlVHlwZT86IENvbXBhcmVUeXBlO1xuICBjdXJyZW50VGltZT86IFZpc1N0YXRlWydhbmltYXRpb25Db25maWcnXVsnY3VycmVudFRpbWUnXTtcbiAgaXRlbTogVG9vbHRpcEZpZWxkO1xufTtcblxuY29uc3QgRW50cnlJbmZvUm93OiBSZWFjdC5GQzxFbnRyeUluZm9Sb3dQcm9wcz4gPSAoe1xuICBsYXllcixcbiAgaXRlbSxcbiAgZmllbGRzLFxuICBkYXRhLFxuICBwcmltYXJ5RGF0YSxcbiAgY29tcGFyZVR5cGUsXG4gIGN1cnJlbnRUaW1lXG59KSA9PiB7XG4gIGNvbnN0IGZpZWxkSWR4ID0gZmllbGRzLmZpbmRJbmRleChmID0+IGYubmFtZSA9PT0gaXRlbS5uYW1lKTtcbiAgaWYgKGZpZWxkSWR4IDwgMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGZpZWxkID0gZmllbGRzW2ZpZWxkSWR4XTtcbiAgY29uc3QgZmllbGRWYWx1ZUFjY2Vzc29yID0gbGF5ZXIuYWNjZXNzVlNGaWVsZFZhbHVlKGZpZWxkLCBjdXJyZW50VGltZSk7XG4gIGNvbnN0IHZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKGZpZWxkLCBkYXRhIGluc3RhbmNlb2YgRGF0YVJvdyA/IHtpbmRleDogZGF0YS5fcm93SW5kZXh9IDogZGF0YSk7XG5cbiAgbGV0IHByaW1hcnlWYWx1ZSA9IG51bGw7XG4gIGxldCBkaXNwbGF5RGVsdGFWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKHByaW1hcnlEYXRhKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChwcmltYXJ5RGF0YSBpbnN0YW5jZW9mIERhdGFSb3cpIHtcbiAgICAgICAgcHJpbWFyeVZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKGZpZWxkLCB7aW5kZXg6IHByaW1hcnlEYXRhLl9yb3dJbmRleH0pO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHByaW1hcnlEYXRhKSB8fCAodHlwZW9mIHByaW1hcnlEYXRhID09PSAnb2JqZWN0JyAmJiBwcmltYXJ5RGF0YSkpIHtcbiAgICAgICAgcHJpbWFyeVZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKGZpZWxkLCBwcmltYXJ5RGF0YSk7XG4gICAgICB9XG5cbiAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgICAgICAgZmllbGQsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBwcmltYXJ5VmFsdWUsXG4gICAgICAgIGNvbXBhcmVUeXBlXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbWFyeVZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZCwgdmFsdWV9KTtcblxuICByZXR1cm4gKFxuICAgIDxSb3dcbiAgICAgIG5hbWU9e2ZpZWxkLmRpc3BsYXlOYW1lIHx8IGZpZWxkLm5hbWV9XG4gICAgICB2YWx1ZT17ZGlzcGxheVZhbHVlfVxuICAgICAgZGVsdGFWYWx1ZT17ZGlzcGxheURlbHRhVmFsdWV9XG4gICAgICBpc0NvbXBhcmluZz17Qm9vbGVhbihwcmltYXJ5RGF0YSl9XG4gICAgLz5cbiAgKTtcbn07XG5cbmNvbnN0IENlbGxJbmZvID0gKHtcbiAgZmllbGRzVG9TaG93LFxuICBkYXRhLFxuICBsYXllcixcbiAgcHJpbWFyeURhdGEsXG4gIGNvbXBhcmVUeXBlXG59OiB7XG4gIGRhdGE6IEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGE7XG4gIGZpZWxkc1RvU2hvdzogVG9vbHRpcEZpZWxkW107XG4gIGxheWVyOiBMYXllcjtcbiAgcHJpbWFyeURhdGE/OiBBZ2dyZWdhdGlvbkxheWVySG92ZXJEYXRhIHwgbnVsbDtcbiAgY29tcGFyZVR5cGU/OiBDb21wYXJlVHlwZTtcbn0pID0+IHtcbiAgY29uc3Qge2NvbG9yRmllbGQsIHNpemVGaWVsZH0gPSBsYXllci5jb25maWcgYXMgYW55O1xuICBjb25zdCBpc0NvbXBhcmluZyA9IEJvb2xlYW4ocHJpbWFyeURhdGEpO1xuXG4gIGNvbnN0IGNvbG9yVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoY29sb3JGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5jb2xvcikge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IGNvbG9yRmllbGQubmFtZSk7XG4gICAgICByZXR1cm4gZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSh7aXRlbSwgZmllbGQ6IGNvbG9yRmllbGQsIHZhbHVlOiBkYXRhLmNvbG9yVmFsdWV9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtmaWVsZHNUb1Nob3csIGNvbG9yRmllbGQsIGxheWVyLCBkYXRhLmNvbG9yVmFsdWVdKTtcblxuICBjb25zdCBlbGV2YXRpb25WYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSkge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IHNpemVGaWVsZC5uYW1lKTtcbiAgICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZDogc2l6ZUZpZWxkLCB2YWx1ZTogZGF0YS5lbGV2YXRpb25WYWx1ZX0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2ZpZWxkc1RvU2hvdywgc2l6ZUZpZWxkLCBsYXllciwgZGF0YS5lbGV2YXRpb25WYWx1ZV0pO1xuXG4gIGNvbnN0IGNvbG9yRGVsdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIXByaW1hcnlEYXRhIHx8ICFjb2xvckZpZWxkIHx8ICEoJ2NvbG9yVmFsdWUnIGluIHByaW1hcnlEYXRhKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSh7XG4gICAgICBmaWVsZDogY29sb3JGaWVsZCxcbiAgICAgIHZhbHVlOiBkYXRhLmNvbG9yVmFsdWUsXG4gICAgICBwcmltYXJ5VmFsdWU6IHByaW1hcnlEYXRhLmNvbG9yVmFsdWUsXG4gICAgICBjb21wYXJlVHlwZVxuICAgIH0pO1xuICB9LCBbcHJpbWFyeURhdGEsIGNvbG9yRmllbGQsIGRhdGEuY29sb3JWYWx1ZSwgY29tcGFyZVR5cGVdKTtcblxuICBjb25zdCBlbGV2YXRpb25EZWx0YSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghcHJpbWFyeURhdGEgfHwgIXNpemVGaWVsZCB8fCAhKCdlbGV2YXRpb25WYWx1ZScgaW4gcHJpbWFyeURhdGEpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgICAgIGZpZWxkOiBzaXplRmllbGQsXG4gICAgICB2YWx1ZTogZGF0YS5lbGV2YXRpb25WYWx1ZSxcbiAgICAgIHByaW1hcnlWYWx1ZTogcHJpbWFyeURhdGEuZWxldmF0aW9uVmFsdWUsXG4gICAgICBjb21wYXJlVHlwZVxuICAgIH0pO1xuICB9LCBbcHJpbWFyeURhdGEsIHNpemVGaWVsZCwgZGF0YS5lbGV2YXRpb25WYWx1ZSwgY29tcGFyZVR5cGVdKTtcblxuICBjb25zdCBhZ2dyZWdhdGVkRGF0YSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChkYXRhLmFnZ3JlZ2F0ZWREYXRhICYmIGZpZWxkc1RvU2hvdykge1xuICAgICAgcmV0dXJuIGZpZWxkc1RvU2hvdy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YUZvckZpZWxkID0gZGF0YS5hZ2dyZWdhdGVkRGF0YT8uW2ZpZWxkLm5hbWVdO1xuICAgICAgICAgIGlmIChkYXRhRm9yRmllbGQ/Lm1lYXN1cmUgJiYgZmllbGQubmFtZSAhPT0gY29sb3JGaWVsZD8ubmFtZSkge1xuICAgICAgICAgICAgY29uc3QgcHJpbWFyeURhdGFGb3JGaWVsZCA9IHByaW1hcnlEYXRhPy5hZ2dyZWdhdGVkRGF0YT8uW2ZpZWxkLm5hbWVdO1xuICAgICAgICAgICAgY29uc3QgZGVsdGFWYWx1ZSA9IHByaW1hcnlEYXRhRm9yRmllbGRcbiAgICAgICAgICAgICAgPyBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgZmllbGQ6IHt0eXBlOiAncmVhbCcsIG5hbWU6IGZpZWxkLm5hbWV9IGFzIEZpZWxkLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGRhdGFGb3JGaWVsZC52YWx1ZSAhPSBudWxsID8gTnVtYmVyKGRhdGFGb3JGaWVsZC52YWx1ZSkgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgcHJpbWFyeVZhbHVlOlxuICAgICAgICAgICAgICAgICAgICBwcmltYXJ5RGF0YUZvckZpZWxkLnZhbHVlICE9IG51bGwgPyBOdW1iZXIocHJpbWFyeURhdGFGb3JGaWVsZC52YWx1ZSkgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgY29tcGFyZVR5cGVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGAke2NhcGl0YWxpemVGaXJzdExldHRlcihkYXRhRm9yRmllbGQubWVhc3VyZSl9IG9mICR7ZmllbGQubmFtZX1gLFxuICAgICAgICAgICAgICB2YWx1ZTogZGF0YUZvckZpZWxkLnZhbHVlLFxuICAgICAgICAgICAgICBkZWx0YVZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAgW10gYXMge25hbWU6IHN0cmluZzsgdmFsdWU/OiBzdHJpbmc7IGRlbHRhVmFsdWU6IHN0cmluZyB8IG51bGx9W11cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSwgW2RhdGEuYWdncmVnYXRlZERhdGEsIGZpZWxkc1RvU2hvdywgY29sb3JGaWVsZD8ubmFtZSwgcHJpbWFyeURhdGEsIGNvbXBhcmVUeXBlXSk7XG5cbiAgY29uc3QgY29sb3JNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdjb2xvcicpLm1lYXN1cmU7XG4gIGNvbnN0IHNpemVNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdzaXplJykubWVhc3VyZTtcbiAgcmV0dXJuIChcbiAgICA8dGJvZHk+XG4gICAgICA8Um93XG4gICAgICAgIG5hbWU9eyd0b3RhbCBwb2ludHMnfVxuICAgICAgICBrZXk9XCJjb3VudFwiXG4gICAgICAgIHZhbHVlPXtTdHJpbmcoZGF0YS5wb2ludHMgJiYgZGF0YS5wb2ludHMubGVuZ3RoKX1cbiAgICAgICAgaXNDb21wYXJpbmc9e2lzQ29tcGFyaW5nfVxuICAgICAgLz5cbiAgICAgIHtjb2xvckZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yICYmIGNvbG9yTWVhc3VyZSA/IChcbiAgICAgICAgPFJvd1xuICAgICAgICAgIG5hbWU9e2NvbG9yTWVhc3VyZX1cbiAgICAgICAgICBrZXk9XCJjb2xvclwiXG4gICAgICAgICAgdmFsdWU9e2NvbG9yVmFsdWUgfHwgJ04vQSd9XG4gICAgICAgICAgZGVsdGFWYWx1ZT17Y29sb3JEZWx0YX1cbiAgICAgICAgICBpc0NvbXBhcmluZz17aXNDb21wYXJpbmd9XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSAmJiBzaXplTWVhc3VyZSA/IChcbiAgICAgICAgPFJvd1xuICAgICAgICAgIG5hbWU9e3NpemVNZWFzdXJlfVxuICAgICAgICAgIGtleT1cInNpemVcIlxuICAgICAgICAgIHZhbHVlPXtlbGV2YXRpb25WYWx1ZSB8fCAnTi9BJ31cbiAgICAgICAgICBkZWx0YVZhbHVlPXtlbGV2YXRpb25EZWx0YX1cbiAgICAgICAgICBpc0NvbXBhcmluZz17aXNDb21wYXJpbmd9XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHthZ2dyZWdhdGVkRGF0YS5tYXAoKGRhdGFGb3JGaWVsZCwgaWR4KSA9PiAoXG4gICAgICAgIDxSb3dcbiAgICAgICAgICBuYW1lPXtkYXRhRm9yRmllbGQubmFtZX1cbiAgICAgICAgICBrZXk9e2BkYXRhXyR7aWR4fWB9XG4gICAgICAgICAgdmFsdWU9e2RhdGFGb3JGaWVsZC52YWx1ZSAhPSBudWxsID8gU3RyaW5nKGRhdGFGb3JGaWVsZC52YWx1ZSkgOiAnTi9BJ31cbiAgICAgICAgICBkZWx0YVZhbHVlPXtkYXRhRm9yRmllbGQuZGVsdGFWYWx1ZX1cbiAgICAgICAgICBpc0NvbXBhcmluZz17aXNDb21wYXJpbmd9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L3Rib2R5PlxuICApO1xufTtcblxuY29uc3QgTGF5ZXJIb3ZlckluZm9GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBMYXllckhvdmVySW5mbyA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7ZGF0YSwgbGF5ZXJ9ID0gcHJvcHM7XG4gICAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgICBpZiAoIWRhdGEgfHwgIWxheWVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNGaWVsZHNUb1Nob3cgPVxuICAgICAgKGRhdGEuZmllbGRWYWx1ZXMgJiYgT2JqZWN0LmtleXMoZGF0YS5maWVsZFZhbHVlcykubGVuZ3RoID4gMCkgfHxcbiAgICAgIChkYXRhLndtc0ZlYXR1cmVEYXRhICYmIGRhdGEud21zRmVhdHVyZURhdGEubGVuZ3RoID4gMCkgfHxcbiAgICAgIChwcm9wcy5maWVsZHNUb1Nob3cgJiYgcHJvcHMuZmllbGRzVG9TaG93Lmxlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLXBvcG92ZXJfX2xheWVyLWluZm9cIj5cbiAgICAgICAgPFN0eWxlZExheWVyTmFtZSBjbGFzc05hbWU9XCJtYXAtcG9wb3Zlcl9fbGF5ZXItbmFtZVwiPlxuICAgICAgICAgIDxMYXllcnMgaGVpZ2h0PVwiMTJweFwiIC8+XG4gICAgICAgICAge3Byb3BzLmxheWVyLmNvbmZpZy5sYWJlbH1cbiAgICAgICAgPC9TdHlsZWRMYXllck5hbWU+XG4gICAgICAgIHtoYXNGaWVsZHNUb1Nob3cgJiYgPFN0eWxlZERpdmlkZXIgLz59XG4gICAgICAgIDxTdHlsZWRUYWJsZSBjbGFzc05hbWU9e3Byb3BzLnByaW1hcnlEYXRhID8gJ2NvbXBhcmluZycgOiB1bmRlZmluZWR9PlxuICAgICAgICAgIHtkYXRhLndtc0ZlYXR1cmVEYXRhID8gKFxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICB7ZGF0YS53bXNGZWF0dXJlRGF0YS5tYXAoKHtuYW1lLCB2YWx1ZX0sIGkpID0+IChcbiAgICAgICAgICAgICAgICA8Um93IGtleT17aX0gbmFtZT17bmFtZX0gdmFsdWU9e3ZhbHVlfSAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgKSA6IGRhdGEuZmllbGRWYWx1ZXMgPyAoXG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtkYXRhLmZpZWxkVmFsdWVzLm1hcCgoe2xhYmVsTWVzc2FnZSwgdmFsdWV9LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPFJvdyBrZXk9e2l9IG5hbWU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IGxhYmVsTWVzc2FnZX0pfSB2YWx1ZT17dmFsdWV9IC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICApIDogcHJvcHMubGF5ZXIuaXNBZ2dyZWdhdGVkID8gKFxuICAgICAgICAgICAgPENlbGxJbmZvIHsuLi5wcm9wc30gLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPEVudHJ5SW5mbyB7Li4ucHJvcHN9IC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRUYWJsZT5cbiAgICAgICAge2hhc0ZpZWxkc1RvU2hvdyAmJiA8U3R5bGVkRGl2aWRlciAvPn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgTGF5ZXJIb3ZlckluZm8ucHJvcFR5cGVzID0ge1xuICAgIGZpZWxkczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSksXG4gICAgZmllbGRzVG9TaG93OiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBsYXllcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkYXRhOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSwgUHJvcFR5cGVzLm9iamVjdF0pXG4gIH07XG4gIHJldHVybiBMYXllckhvdmVySW5mbztcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExheWVySG92ZXJJbmZvRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxPQUFPLFFBQU8sT0FBTztBQUN2RCxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLFFBQVEsTUFBTSxpQkFBaUI7QUFFdEMsU0FBUUMsYUFBYSxRQUFPLDZCQUE2QjtBQUN6RCxTQUFRQyxNQUFNLFFBQU8saUJBQWlCO0FBQ3RDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLFNBQVFDLGtCQUFrQixRQUFPLHlCQUF5QjtBQUMx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
|
|
312
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZU1lbW8iLCJzdHlsZWQiLCJ0cnVuY2F0ZSIsIkNlbnRlckZsZXhib3giLCJMYXllcnMiLCJQcm9wVHlwZXMiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJEYXRhUm93IiwiZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlIiwiZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSIsInVzZUludGwiLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJTdHlsZWRMYXllck5hbWUiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvckhsIiwiU3R5bGVkVGFibGUiLCJ0YWJsZSIsIl90ZW1wbGF0ZU9iamVjdDIiLCJub3RpZmljYXRpb25Db2xvcnMiLCJzdWNjZXNzIiwibmVnYXRpdmVCdG5BY3RCZ2QiLCJTdHlsZWREaXZpZGVyIiwiZGl2IiwiX3RlbXBsYXRlT2JqZWN0MyIsInBhbmVsQm9yZGVyQ29sb3IiLCJUT09MVElQX1ZBTFVFX01BWF9MRU5HVEgiLCJUb29sdGlwSW1hZ2UiLCJfcmVmIiwic3JjIiwiaW1nUmVmIiwic3RhcnRzV2l0aCIsIlVSTCIsInJldm9rZU9iamVjdFVSTCIsImUiLCJjdXJyZW50IiwiY3JlYXRlRWxlbWVudCIsInJlZiIsIlJvdyIsIl9yZWYyIiwibmFtZSIsInZhbHVlIiwiZGVsdGFWYWx1ZSIsInVybCIsImlzQ29tcGFyaW5nIiwibWF0Y2giLCJkaXNwbGF5VmFsdWUiLCJsZW5ndGgiLCJhc0ltZyIsInRlc3QiLCJjbGFzc05hbWUiLCJrZXkiLCJyZXBsYWNlIiwidGFyZ2V0IiwicmVsIiwiaHJlZiIsImNvbmNhdCIsInRvU3RyaW5nIiwiY2hhckF0IiwiRW50cnlJbmZvIiwiX3JlZjMiLCJmaWVsZHNUb1Nob3ciLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJtYXAiLCJpdGVtIiwiRW50cnlJbmZvUm93IiwiX2V4dGVuZHMiLCJfcmVmNCIsImxheWVyIiwiZmllbGRzIiwiZGF0YSIsInByaW1hcnlEYXRhIiwiY29tcGFyZVR5cGUiLCJjdXJyZW50VGltZSIsImZpZWxkSWR4IiwiZmluZEluZGV4IiwiZiIsImZpZWxkIiwiZmllbGRWYWx1ZUFjY2Vzc29yIiwiYWNjZXNzVlNGaWVsZFZhbHVlIiwiaW5kZXgiLCJfcm93SW5kZXgiLCJwcmltYXJ5VmFsdWUiLCJkaXNwbGF5RGVsdGFWYWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsIl90eXBlb2YiLCJlcnJvciIsImRpc3BsYXlOYW1lIiwiQm9vbGVhbiIsIkNlbGxJbmZvIiwiX3JlZjUiLCJfcmVmNiIsImNvbmZpZyIsImNvbG9yRmllbGQiLCJzaXplRmllbGQiLCJjb2xvclZhbHVlIiwidmlzdWFsQ2hhbm5lbHMiLCJjb2xvciIsImZpbmQiLCJlbGV2YXRpb25WYWx1ZSIsInNpemUiLCJjb2xvckRlbHRhIiwiZWxldmF0aW9uRGVsdGEiLCJhZ2dyZWdhdGVkRGF0YSIsInJlZHVjZSIsImFjYyIsIl9kYXRhJGFnZ3JlZ2F0ZWREYXRhIiwiZGF0YUZvckZpZWxkIiwibWVhc3VyZSIsIl9wcmltYXJ5RGF0YSRhZ2dyZWdhdCIsInByaW1hcnlEYXRhRm9yRmllbGQiLCJ0eXBlIiwiTnVtYmVyIiwicHVzaCIsImNvbG9yTWVhc3VyZSIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsInNpemVNZWFzdXJlIiwiU3RyaW5nIiwicG9pbnRzIiwiaWR4IiwiTGF5ZXJIb3ZlckluZm9GYWN0b3J5IiwiTGF5ZXJIb3ZlckluZm8iLCJpbnRsIiwiaGFzRmllbGRzVG9TaG93IiwiZmllbGRWYWx1ZXMiLCJPYmplY3QiLCJrZXlzIiwid21zRmVhdHVyZURhdGEiLCJoZWlnaHQiLCJsYWJlbCIsInVuZGVmaW5lZCIsIl9yZWY3IiwiaSIsIl9yZWY4IiwibGFiZWxNZXNzYWdlIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiaXNBZ2dyZWdhdGVkIiwicHJvcFR5cGVzIiwiYXJyYXlPZiIsImFueSIsIm9iamVjdCIsIm9uZU9mVHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXAvbGF5ZXItaG92ZXItaW5mby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHRydW5jYXRlIGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L3RydW5jYXRlJztcbmltcG9ydCB7Q29tcGFyZVR5cGUsIEZpZWxkLCBNZXJnZSwgVG9vbHRpcEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Q2VudGVyRmxleGJveH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7TGF5ZXJzfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkfSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge0RhdGFSb3d9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtcbiAgQWdncmVnYXRpb25MYXllckhvdmVyRGF0YSxcbiAgTGF5ZXJIb3ZlclByb3AsXG4gIGdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSxcbiAgZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZVxufSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7dXNlSW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuaW1wb3J0IHtjYXBpdGFsaXplRmlyc3RMZXR0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkTGF5ZXJOYW1lID0gc3R5bGVkKENlbnRlckZsZXhib3gpYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNDNweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkVGFibGUgPSBzdHlsZWQudGFibGVgXG4gICYgLnJvd19fZGVsdGEtdmFsdWUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG5cbiAgICAmLnBvc2l0aXZlIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm5vdGlmaWNhdGlvbkNvbG9ycy5zdWNjZXNzfTtcbiAgICB9XG5cbiAgICAmLm5lZ2F0aXZlIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm5lZ2F0aXZlQnRuQWN0QmdkfTtcbiAgICB9XG4gIH1cbiAgJiAucm93X19uYW1lIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgJiAucm93X192YWx1ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRGl2aWRlciA9IHN0eWxlZC5kaXZgXG4gIC8vIG9mZnNldCBkaXZpZGVyIHRvIHJlYWNoIHBvcG92ZXIgZWRnZVxuICBtYXJnaW4tbGVmdDogLTE0cHg7XG4gIG1hcmdpbi1yaWdodDogLTE0cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQm9yZGVyQ29sb3J9O1xuYDtcblxuaW50ZXJmYWNlIFJvd1Byb3BzIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBkZWx0YVZhbHVlPzogc3RyaW5nIHwgbnVsbDtcbiAgdXJsPzogc3RyaW5nO1xuICBpc0NvbXBhcmluZz86IGJvb2xlYW47XG59XG5cbmNvbnN0IFRPT0xUSVBfVkFMVUVfTUFYX0xFTkdUSCA9IDI1NjtcblxuLyoqXG4gKiBJbWFnZSBjb21wb25lbnQgdGhhdCBjbGVhbnMgdXAgcmVzb3VyY2VzIG9uIHVubW91bnQgdG8gcHJldmVudCBtZW1vcnkgbGVha3MuXG4gKiBSZXZva2VzIGJsb2Ivb2JqZWN0IFVSTHMgYW5kIGNsZWFycyB0aGUgaW1hZ2Ugc3JjIHRvIHJlbGVhc2UgbWVtb3J5LlxuICovXG5jb25zdCBUb29sdGlwSW1hZ2U6IFJlYWN0LkZDPHtzcmM6IHN0cmluZ30+ID0gKHtzcmN9KSA9PiB7XG4gIGNvbnN0IGltZ1JlZiA9IHVzZVJlZjxIVE1MSW1hZ2VFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAvLyBSZXZva2UgYmxvYiBVUkxzIHRvIGZyZWUgbWVtb3J5XG4gICAgICBpZiAoc3JjICYmIChzcmMuc3RhcnRzV2l0aCgnYmxvYjonKSB8fCBzcmMuc3RhcnRzV2l0aCgnZGF0YTonKSkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHNyYyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBpZ25vcmUgZXJyb3JzIGZyb20gbm9uLW9iamVjdCBVUkxzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIENsZWFyIHRoZSBpbWFnZSBzcmMgdG8gcmVsZWFzZSB0aGUgZGVjb2RlZCBpbWFnZSBmcm9tIG1lbW9yeVxuICAgICAgaWYgKGltZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgIGltZ1JlZi5jdXJyZW50LnNyYyA9ICcnO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtzcmNdKTtcblxuICByZXR1cm4gPGltZyByZWY9e2ltZ1JlZn0gc3JjPXtzcmN9IC8+O1xufTtcblxuY29uc3QgUm93OiBSZWFjdC5GQzxSb3dQcm9wcz4gPSAoe25hbWUsIHZhbHVlLCBkZWx0YVZhbHVlLCB1cmwsIGlzQ29tcGFyaW5nfSkgPT4ge1xuICAvLyBTZXQgJ3VybCcgdG8gJ3ZhbHVlJyBpZiBpdCBsb29rcyBsaWtlIGEgdXJsXG4gIGlmICghdXJsICYmIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubWF0Y2goL15odHRwLykpIHtcbiAgICB1cmwgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9XG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPiBUT09MVElQX1ZBTFVFX01BWF9MRU5HVEhcbiAgICAgID8gdHJ1bmNhdGUodmFsdWUsIHtsZW5ndGg6IFRPT0xUSVBfVkFMVUVfTUFYX0xFTkdUSH0pXG4gICAgICA6IHZhbHVlO1xuXG4gIGNvbnN0IGFzSW1nID0gLzxpbWc+Ly50ZXN0KG5hbWUpO1xuICByZXR1cm4gKFxuICAgIDx0ciBjbGFzc05hbWU9XCJsYXllci1ob3Zlci1pbmZvX19yb3dcIiBrZXk9e25hbWV9PlxuICAgICAgPHRkIGNsYXNzTmFtZT1cInJvd19fbmFtZVwiPnthc0ltZyA/IG5hbWUucmVwbGFjZSgnPGltZz4nLCAnJykgOiBuYW1lfTwvdGQ+XG4gICAgICA8dGQgY2xhc3NOYW1lPVwicm93X192YWx1ZVwiPlxuICAgICAgICB7YXNJbWcgPyAoXG4gICAgICAgICAgPFRvb2x0aXBJbWFnZSBzcmM9e3ZhbHVlfSAvPlxuICAgICAgICApIDogdXJsID8gKFxuICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAge2Rpc3BsYXlWYWx1ZX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHNwYW4+e2Rpc3BsYXlWYWx1ZX08L3NwYW4+XG4gICAgICAgICl9XG4gICAgICA8L3RkPlxuICAgICAge2lzQ29tcGFyaW5nID8gKFxuICAgICAgICA8dGRcbiAgICAgICAgICBjbGFzc05hbWU9e2Byb3dfX2RlbHRhLXZhbHVlICR7XG4gICAgICAgICAgICBub3ROdWxsb3JVbmRlZmluZWQoZGVsdGFWYWx1ZSlcbiAgICAgICAgICAgICAgPyBkZWx0YVZhbHVlPy50b1N0cmluZygpLmNoYXJBdCgwKSA9PT0gJysnXG4gICAgICAgICAgICAgICAgPyAncG9zaXRpdmUnXG4gICAgICAgICAgICAgICAgOiAnbmVnYXRpdmUnXG4gICAgICAgICAgICAgIDogJydcbiAgICAgICAgICB9YH1cbiAgICAgICAgPlxuICAgICAgICAgIHtkZWx0YVZhbHVlID8/ICcnfVxuICAgICAgICA8L3RkPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC90cj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudHJ5SW5mb1Byb3BzID0gTWVyZ2U8TGF5ZXJIb3ZlclByb3AsIHtmaWVsZHNUb1Nob3c6IFRvb2x0aXBGaWVsZFtdfT47XG5cbmNvbnN0IEVudHJ5SW5mbzogUmVhY3QuRkM8RW50cnlJbmZvUHJvcHM+ID0gKHtmaWVsZHNUb1Nob3csIC4uLnByb3BzfSkgPT4gKFxuICA8dGJvZHk+XG4gICAge2ZpZWxkc1RvU2hvdy5tYXAoaXRlbSA9PiAoXG4gICAgICA8RW50cnlJbmZvUm93IGtleT17aXRlbS5uYW1lfSBpdGVtPXtpdGVtfSB7Li4ucHJvcHN9IC8+XG4gICAgKSl9XG4gIDwvdGJvZHk+XG4pO1xuXG5leHBvcnQgdHlwZSBFbnRyeUluZm9Sb3dQcm9wcyA9IHtcbiAgZGF0YTogTGF5ZXJIb3ZlclByb3BbJ2RhdGEnXTtcbiAgZmllbGRzOiBGaWVsZFtdO1xuICBsYXllcjogTGF5ZXI7XG4gIHByaW1hcnlEYXRhPzogTGF5ZXJIb3ZlclByb3BbJ3ByaW1hcnlEYXRhJ107XG4gIGNvbXBhcmVUeXBlPzogQ29tcGFyZVR5cGU7XG4gIGN1cnJlbnRUaW1lPzogVmlzU3RhdGVbJ2FuaW1hdGlvbkNvbmZpZyddWydjdXJyZW50VGltZSddO1xuICBpdGVtOiBUb29sdGlwRmllbGQ7XG59O1xuXG5jb25zdCBFbnRyeUluZm9Sb3c6IFJlYWN0LkZDPEVudHJ5SW5mb1Jvd1Byb3BzPiA9ICh7XG4gIGxheWVyLFxuICBpdGVtLFxuICBmaWVsZHMsXG4gIGRhdGEsXG4gIHByaW1hcnlEYXRhLFxuICBjb21wYXJlVHlwZSxcbiAgY3VycmVudFRpbWVcbn0pID0+IHtcbiAgY29uc3QgZmllbGRJZHggPSBmaWVsZHMuZmluZEluZGV4KGYgPT4gZi5uYW1lID09PSBpdGVtLm5hbWUpO1xuICBpZiAoZmllbGRJZHggPCAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgZmllbGQgPSBmaWVsZHNbZmllbGRJZHhdO1xuICBjb25zdCBmaWVsZFZhbHVlQWNjZXNzb3IgPSBsYXllci5hY2Nlc3NWU0ZpZWxkVmFsdWUoZmllbGQsIGN1cnJlbnRUaW1lKTtcbiAgY29uc3QgdmFsdWUgPSBmaWVsZFZhbHVlQWNjZXNzb3IoZmllbGQsIGRhdGEgaW5zdGFuY2VvZiBEYXRhUm93ID8ge2luZGV4OiBkYXRhLl9yb3dJbmRleH0gOiBkYXRhKTtcblxuICBsZXQgcHJpbWFyeVZhbHVlID0gbnVsbDtcbiAgbGV0IGRpc3BsYXlEZWx0YVZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBpZiAocHJpbWFyeURhdGEpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHByaW1hcnlEYXRhIGluc3RhbmNlb2YgRGF0YVJvdykge1xuICAgICAgICBwcmltYXJ5VmFsdWUgPSBmaWVsZFZhbHVlQWNjZXNzb3IoZmllbGQsIHtpbmRleDogcHJpbWFyeURhdGEuX3Jvd0luZGV4fSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJpbWFyeURhdGEpIHx8ICh0eXBlb2YgcHJpbWFyeURhdGEgPT09ICdvYmplY3QnICYmIHByaW1hcnlEYXRhKSkge1xuICAgICAgICBwcmltYXJ5VmFsdWUgPSBmaWVsZFZhbHVlQWNjZXNzb3IoZmllbGQsIHByaW1hcnlEYXRhKTtcbiAgICAgIH1cblxuICAgICAgZGlzcGxheURlbHRhVmFsdWUgPSBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUoe1xuICAgICAgICBmaWVsZCxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHByaW1hcnlWYWx1ZSxcbiAgICAgICAgY29tcGFyZVR5cGVcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBwcmltYXJ5VmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGdldFRvb2x0aXBEaXNwbGF5VmFsdWUoe2l0ZW0sIGZpZWxkLCB2YWx1ZX0pO1xuXG4gIHJldHVybiAoXG4gICAgPFJvd1xuICAgICAgbmFtZT17ZmllbGQuZGlzcGxheU5hbWUgfHwgZmllbGQubmFtZX1cbiAgICAgIHZhbHVlPXtkaXNwbGF5VmFsdWV9XG4gICAgICBkZWx0YVZhbHVlPXtkaXNwbGF5RGVsdGFWYWx1ZX1cbiAgICAgIGlzQ29tcGFyaW5nPXtCb29sZWFuKHByaW1hcnlEYXRhKX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgQ2VsbEluZm8gPSAoe1xuICBmaWVsZHNUb1Nob3csXG4gIGRhdGEsXG4gIGxheWVyLFxuICBwcmltYXJ5RGF0YSxcbiAgY29tcGFyZVR5cGVcbn06IHtcbiAgZGF0YTogQWdncmVnYXRpb25MYXllckhvdmVyRGF0YTtcbiAgZmllbGRzVG9TaG93OiBUb29sdGlwRmllbGRbXTtcbiAgbGF5ZXI6IExheWVyO1xuICBwcmltYXJ5RGF0YT86IEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGEgfCBudWxsO1xuICBjb21wYXJlVHlwZT86IENvbXBhcmVUeXBlO1xufSkgPT4ge1xuICBjb25zdCB7Y29sb3JGaWVsZCwgc2l6ZUZpZWxkfSA9IGxheWVyLmNvbmZpZyBhcyBhbnk7XG4gIGNvbnN0IGlzQ29tcGFyaW5nID0gQm9vbGVhbihwcmltYXJ5RGF0YSk7XG5cbiAgY29uc3QgY29sb3JWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChjb2xvckZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yKSB7XG4gICAgICBjb25zdCBpdGVtID0gZmllbGRzVG9TaG93LmZpbmQoZmllbGQgPT4gZmllbGQubmFtZSA9PT0gY29sb3JGaWVsZC5uYW1lKTtcbiAgICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZDogY29sb3JGaWVsZCwgdmFsdWU6IGRhdGEuY29sb3JWYWx1ZX0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2ZpZWxkc1RvU2hvdywgY29sb3JGaWVsZCwgbGF5ZXIsIGRhdGEuY29sb3JWYWx1ZV0pO1xuXG4gIGNvbnN0IGVsZXZhdGlvblZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNpemVGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5zaXplKSB7XG4gICAgICBjb25zdCBpdGVtID0gZmllbGRzVG9TaG93LmZpbmQoZmllbGQgPT4gZmllbGQubmFtZSA9PT0gc2l6ZUZpZWxkLm5hbWUpO1xuICAgICAgcmV0dXJuIGdldFRvb2x0aXBEaXNwbGF5VmFsdWUoe2l0ZW0sIGZpZWxkOiBzaXplRmllbGQsIHZhbHVlOiBkYXRhLmVsZXZhdGlvblZhbHVlfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9LCBbZmllbGRzVG9TaG93LCBzaXplRmllbGQsIGxheWVyLCBkYXRhLmVsZXZhdGlvblZhbHVlXSk7XG5cbiAgY29uc3QgY29sb3JEZWx0YSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghcHJpbWFyeURhdGEgfHwgIWNvbG9yRmllbGQgfHwgISgnY29sb3JWYWx1ZScgaW4gcHJpbWFyeURhdGEpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgICAgIGZpZWxkOiBjb2xvckZpZWxkLFxuICAgICAgdmFsdWU6IGRhdGEuY29sb3JWYWx1ZSxcbiAgICAgIHByaW1hcnlWYWx1ZTogcHJpbWFyeURhdGEuY29sb3JWYWx1ZSxcbiAgICAgIGNvbXBhcmVUeXBlXG4gICAgfSk7XG4gIH0sIFtwcmltYXJ5RGF0YSwgY29sb3JGaWVsZCwgZGF0YS5jb2xvclZhbHVlLCBjb21wYXJlVHlwZV0pO1xuXG4gIGNvbnN0IGVsZXZhdGlvbkRlbHRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFwcmltYXJ5RGF0YSB8fCAhc2l6ZUZpZWxkIHx8ICEoJ2VsZXZhdGlvblZhbHVlJyBpbiBwcmltYXJ5RGF0YSkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUoe1xuICAgICAgZmllbGQ6IHNpemVGaWVsZCxcbiAgICAgIHZhbHVlOiBkYXRhLmVsZXZhdGlvblZhbHVlLFxuICAgICAgcHJpbWFyeVZhbHVlOiBwcmltYXJ5RGF0YS5lbGV2YXRpb25WYWx1ZSxcbiAgICAgIGNvbXBhcmVUeXBlXG4gICAgfSk7XG4gIH0sIFtwcmltYXJ5RGF0YSwgc2l6ZUZpZWxkLCBkYXRhLmVsZXZhdGlvblZhbHVlLCBjb21wYXJlVHlwZV0pO1xuXG4gIGNvbnN0IGFnZ3JlZ2F0ZWREYXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGRhdGEuYWdncmVnYXRlZERhdGEgJiYgZmllbGRzVG9TaG93KSB7XG4gICAgICByZXR1cm4gZmllbGRzVG9TaG93LnJlZHVjZShcbiAgICAgICAgKGFjYywgZmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBkYXRhRm9yRmllbGQgPSBkYXRhLmFnZ3JlZ2F0ZWREYXRhPy5bZmllbGQubmFtZV07XG4gICAgICAgICAgaWYgKGRhdGFGb3JGaWVsZD8ubWVhc3VyZSAmJiBmaWVsZC5uYW1lICE9PSBjb2xvckZpZWxkPy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBwcmltYXJ5RGF0YUZvckZpZWxkID0gcHJpbWFyeURhdGE/LmFnZ3JlZ2F0ZWREYXRhPy5bZmllbGQubmFtZV07XG4gICAgICAgICAgICBjb25zdCBkZWx0YVZhbHVlID0gcHJpbWFyeURhdGFGb3JGaWVsZFxuICAgICAgICAgICAgICA/IGdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICBmaWVsZDoge3R5cGU6ICdyZWFsJywgbmFtZTogZmllbGQubmFtZX0gYXMgRmllbGQsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogZGF0YUZvckZpZWxkLnZhbHVlICE9IG51bGwgPyBOdW1iZXIoZGF0YUZvckZpZWxkLnZhbHVlKSA6IG51bGwsXG4gICAgICAgICAgICAgICAgICBwcmltYXJ5VmFsdWU6XG4gICAgICAgICAgICAgICAgICAgIHByaW1hcnlEYXRhRm9yRmllbGQudmFsdWUgIT0gbnVsbCA/IE51bWJlcihwcmltYXJ5RGF0YUZvckZpZWxkLnZhbHVlKSA6IG51bGwsXG4gICAgICAgICAgICAgICAgICBjb21wYXJlVHlwZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogYCR7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGRhdGFGb3JGaWVsZC5tZWFzdXJlKX0gb2YgJHtmaWVsZC5uYW1lfWAsXG4gICAgICAgICAgICAgIHZhbHVlOiBkYXRhRm9yRmllbGQudmFsdWUsXG4gICAgICAgICAgICAgIGRlbHRhVmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICBbXSBhcyB7bmFtZTogc3RyaW5nOyB2YWx1ZT86IHN0cmluZzsgZGVsdGFWYWx1ZTogc3RyaW5nIHwgbnVsbH1bXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9LCBbZGF0YS5hZ2dyZWdhdGVkRGF0YSwgZmllbGRzVG9TaG93LCBjb2xvckZpZWxkPy5uYW1lLCBwcmltYXJ5RGF0YSwgY29tcGFyZVR5cGVdKTtcblxuICBjb25zdCBjb2xvck1lYXN1cmUgPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24oJ2NvbG9yJykubWVhc3VyZTtcbiAgY29uc3Qgc2l6ZU1lYXN1cmUgPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24oJ3NpemUnKS5tZWFzdXJlO1xuICByZXR1cm4gKFxuICAgIDx0Ym9keT5cbiAgICAgIDxSb3dcbiAgICAgICAgbmFtZT17J3RvdGFsIHBvaW50cyd9XG4gICAgICAgIGtleT1cImNvdW50XCJcbiAgICAgICAgdmFsdWU9e1N0cmluZyhkYXRhLnBvaW50cyAmJiBkYXRhLnBvaW50cy5sZW5ndGgpfVxuICAgICAgICBpc0NvbXBhcmluZz17aXNDb21wYXJpbmd9XG4gICAgICAvPlxuICAgICAge2NvbG9yRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3IgJiYgY29sb3JNZWFzdXJlID8gKFxuICAgICAgICA8Um93XG4gICAgICAgICAgbmFtZT17Y29sb3JNZWFzdXJlfVxuICAgICAgICAgIGtleT1cImNvbG9yXCJcbiAgICAgICAgICB2YWx1ZT17Y29sb3JWYWx1ZSB8fCAnTi9BJ31cbiAgICAgICAgICBkZWx0YVZhbHVlPXtjb2xvckRlbHRhfVxuICAgICAgICAgIGlzQ29tcGFyaW5nPXtpc0NvbXBhcmluZ31cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAge3NpemVGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5zaXplICYmIHNpemVNZWFzdXJlID8gKFxuICAgICAgICA8Um93XG4gICAgICAgICAgbmFtZT17c2l6ZU1lYXN1cmV9XG4gICAgICAgICAga2V5PVwic2l6ZVwiXG4gICAgICAgICAgdmFsdWU9e2VsZXZhdGlvblZhbHVlIHx8ICdOL0EnfVxuICAgICAgICAgIGRlbHRhVmFsdWU9e2VsZXZhdGlvbkRlbHRhfVxuICAgICAgICAgIGlzQ29tcGFyaW5nPXtpc0NvbXBhcmluZ31cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2FnZ3JlZ2F0ZWREYXRhLm1hcCgoZGF0YUZvckZpZWxkLCBpZHgpID0+IChcbiAgICAgICAgPFJvd1xuICAgICAgICAgIG5hbWU9e2RhdGFGb3JGaWVsZC5uYW1lfVxuICAgICAgICAgIGtleT17YGRhdGFfJHtpZHh9YH1cbiAgICAgICAgICB2YWx1ZT17ZGF0YUZvckZpZWxkLnZhbHVlICE9IG51bGwgPyBTdHJpbmcoZGF0YUZvckZpZWxkLnZhbHVlKSA6ICdOL0EnfVxuICAgICAgICAgIGRlbHRhVmFsdWU9e2RhdGFGb3JGaWVsZC5kZWx0YVZhbHVlfVxuICAgICAgICAgIGlzQ29tcGFyaW5nPXtpc0NvbXBhcmluZ31cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvdGJvZHk+XG4gICk7XG59O1xuXG5jb25zdCBMYXllckhvdmVySW5mb0ZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IExheWVySG92ZXJJbmZvID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtkYXRhLCBsYXllcn0gPSBwcm9wcztcbiAgICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICAgIGlmICghZGF0YSB8fCAhbGF5ZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0ZpZWxkc1RvU2hvdyA9XG4gICAgICAoZGF0YS5maWVsZFZhbHVlcyAmJiBPYmplY3Qua2V5cyhkYXRhLmZpZWxkVmFsdWVzKS5sZW5ndGggPiAwKSB8fFxuICAgICAgKGRhdGEud21zRmVhdHVyZURhdGEgJiYgZGF0YS53bXNGZWF0dXJlRGF0YS5sZW5ndGggPiAwKSB8fFxuICAgICAgKHByb3BzLmZpZWxkc1RvU2hvdyAmJiBwcm9wcy5maWVsZHNUb1Nob3cubGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXAtcG9wb3Zlcl9fbGF5ZXItaW5mb1wiPlxuICAgICAgICA8U3R5bGVkTGF5ZXJOYW1lIGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyX19sYXllci1uYW1lXCI+XG4gICAgICAgICAgPExheWVycyBoZWlnaHQ9XCIxMnB4XCIgLz5cbiAgICAgICAgICB7cHJvcHMubGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICA8L1N0eWxlZExheWVyTmFtZT5cbiAgICAgICAge2hhc0ZpZWxkc1RvU2hvdyAmJiA8U3R5bGVkRGl2aWRlciAvPn1cbiAgICAgICAgPFN0eWxlZFRhYmxlIGNsYXNzTmFtZT17cHJvcHMucHJpbWFyeURhdGEgPyAnY29tcGFyaW5nJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAge2RhdGEud21zRmVhdHVyZURhdGEgPyAoXG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtkYXRhLndtc0ZlYXR1cmVEYXRhLm1hcCgoe25hbWUsIHZhbHVlfSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgIDxSb3cga2V5PXtpfSBuYW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9IC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICApIDogZGF0YS5maWVsZFZhbHVlcyA/IChcbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAge2RhdGEuZmllbGRWYWx1ZXMubWFwKCh7bGFiZWxNZXNzYWdlLCB2YWx1ZX0sIGkpID0+IChcbiAgICAgICAgICAgICAgICA8Um93IGtleT17aX0gbmFtZT17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogbGFiZWxNZXNzYWdlfSl9IHZhbHVlPXt2YWx1ZX0gLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICkgOiBwcm9wcy5sYXllci5pc0FnZ3JlZ2F0ZWQgPyAoXG4gICAgICAgICAgICA8Q2VsbEluZm8gey4uLnByb3BzfSAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8RW50cnlJbmZvIHsuLi5wcm9wc30gLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZFRhYmxlPlxuICAgICAgICB7aGFzRmllbGRzVG9TaG93ICYmIDxTdHlsZWREaXZpZGVyIC8+fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBMYXllckhvdmVySW5mby5wcm9wVHlwZXMgPSB7XG4gICAgZmllbGRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBmaWVsZHNUb1Nob3c6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGxheWVyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRhdGE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLCBQcm9wVHlwZXMub2JqZWN0XSlcbiAgfTtcbiAgcmV0dXJuIExheWVySG92ZXJJbmZvO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJIb3ZlckluZm9GYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLEtBQUssSUFBR0MsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sUUFBTyxPQUFPO0FBQ3ZELE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsUUFBUSxNQUFNLDRCQUE0QjtBQUVqRCxTQUFRQyxhQUFhLFFBQU8sNkJBQTZCO0FBQ3pELFNBQVFDLE1BQU0sUUFBTyxpQkFBaUI7QUFDdEMsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsU0FBUUMsa0JBQWtCLFFBQU8seUJBQXlCO0FBQzFELFNBQVFDLE9BQU8sUUFBTyxrQkFBa0I7QUFFeEMsU0FHRUMsMkJBQTJCLEVBQzNCQyxzQkFBc0IsUUFDakIscUJBQXFCO0FBQzVCLFNBQVFDLE9BQU8sUUFBTyxZQUFZO0FBRWxDLFNBQVFDLHFCQUFxQixRQUFPLGtCQUFrQjtBQUV0RCxPQUFPLElBQU1DLGVBQWUsR0FBR1gsTUFBTSxDQUFDRSxhQUFhLENBQUMsQ0FBQVUsZUFBQSxLQUFBQSxlQUFBLEdBQUFDLHNCQUFBLGlKQUN6QyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLFdBQVc7QUFBQSxFQVExQztBQUVELElBQU1DLFdBQVcsR0FBR2pCLE1BQU0sQ0FBQ2tCLEtBQUssQ0FBQUMsZ0JBQUEsS0FBQUEsZ0JBQUEsR0FBQU4sc0JBQUEsNFpBTWpCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ssa0JBQWtCLENBQUNDLE9BQU87QUFBQSxHQUkvQyxVQUFBUCxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNPLGlCQUFpQjtBQUFBLEVBY3BEO0FBRUQsSUFBTUMsYUFBYSxHQUFHdkIsTUFBTSxDQUFDd0IsR0FBRyxDQUFBQyxnQkFBQSxLQUFBQSxnQkFBQSxHQUFBWixzQkFBQSx1SUFJSCxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNXLGdCQUFnQjtBQUFBLEVBQ2pFO0FBVUQsSUFBTUMsd0JBQXdCLEdBQUcsR0FBRzs7QUFFcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxZQUFxQyxHQUFHLFNBQXhDQSxZQUFxQ0EsQ0FBQUMsSUFBQSxFQUFjO0VBQUEsSUFBVEMsR0FBRyxHQUFBRCxJQUFBLENBQUhDLEdBQUc7RUFDakQsSUFBTUMsTUFBTSxHQUFHakMsTUFBTSxDQUFtQixJQUFJLENBQUM7RUFFN0NELFNBQVMsQ0FBQyxZQUFNO0lBQ2QsT0FBTyxZQUFNO01BQ1g7TUFDQSxJQUFJaUMsR0FBRyxLQUFLQSxHQUFHLENBQUNFLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSUYsR0FBRyxDQUFDRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtRQUMvRCxJQUFJO1VBQ0ZDLEdBQUcsQ0FBQ0MsZUFBZSxDQUFDSixHQUFHLENBQUM7UUFDMUIsQ0FBQyxDQUFDLE9BQU9LLENBQUMsRUFBRTtVQUNWO1FBQUE7TUFFSjtNQUNBO01BQ0EsSUFBSUosTUFBTSxDQUFDSyxPQUFPLEVBQUU7UUFDbEJMLE1BQU0sQ0FBQ0ssT0FBTyxDQUFDTixHQUFHLEdBQUcsRUFBRTtNQUN6QjtJQUNGLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0EsR0FBRyxDQUFDLENBQUM7RUFFVCxvQkFBT2xDLEtBQUEsQ0FBQXlDLGFBQUE7SUFBS0MsR0FBRyxFQUFFUCxNQUFPO0lBQUNELEdBQUcsRUFBRUE7RUFBSSxDQUFFLENBQUM7QUFDdkMsQ0FBQztBQUVELElBQU1TLEdBQXVCLEdBQUcsU0FBMUJBLEdBQXVCQSxDQUFBQyxLQUFBLEVBQW9EO0VBQUEsSUFBL0NDLElBQUksR0FBQUQsS0FBQSxDQUFKQyxJQUFJO0lBQUVDLEtBQUssR0FBQUYsS0FBQSxDQUFMRSxLQUFLO0lBQUVDLFVBQVUsR0FBQUgsS0FBQSxDQUFWRyxVQUFVO0lBQUVDLEdBQUcsR0FBQUosS0FBQSxDQUFISSxHQUFHO0lBQUVDLFdBQVcsR0FBQUwsS0FBQSxDQUFYSyxXQUFXO0VBQ3pFO0VBQ0EsSUFBSSxDQUFDRCxHQUFHLElBQUlGLEtBQUssSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxJQUFJQSxLQUFLLENBQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtJQUN0RUYsR0FBRyxHQUFHRixLQUFLO0VBQ2I7RUFFQSxJQUFNSyxZQUFZLEdBQ2hCLE9BQU9MLEtBQUssS0FBSyxRQUFRLElBQUlBLEtBQUssQ0FBQ00sTUFBTSxHQUFHckIsd0JBQXdCLEdBQ2hFMUIsUUFBUSxDQUFDeUMsS0FBSyxFQUFFO0lBQUNNLE1BQU0sRUFBRXJCO0VBQXdCLENBQUMsQ0FBQyxHQUNuRGUsS0FBSztFQUVYLElBQU1PLEtBQUssR0FBRyxPQUFPLENBQUNDLElBQUksQ0FBQ1QsSUFBSSxDQUFDO0VBQ2hDLG9CQUNFN0MsS0FBQSxDQUFBeUMsYUFBQTtJQUFJYyxTQUFTLEVBQUMsdUJBQXVCO0lBQUNDLEdBQUcsRUFBRVg7RUFBSyxnQkFDOUM3QyxLQUFBLENBQUF5QyxhQUFBO0lBQUljLFNBQVMsRUFBQztFQUFXLEdBQUVGLEtBQUssR0FBR1IsSUFBSSxDQUFDWSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHWixJQUFTLENBQUMsZUFDekU3QyxLQUFBLENBQUF5QyxhQUFBO0lBQUljLFNBQVMsRUFBQztFQUFZLEdBQ3ZCRixLQUFLLGdCQUNKckQsS0FBQSxDQUFBeUMsYUFBQSxDQUFDVCxZQUFZO0lBQUNFLEdBQUcsRUFBRVk7RUFBTSxDQUFFLENBQUMsR0FDMUJFLEdBQUcsZ0JBQ0xoRCxLQUFBLENBQUF5QyxhQUFBO0lBQUdpQixNQUFNLEVBQUMsUUFBUTtJQUFDQyxHQUFHLEVBQUMscUJBQXFCO0lBQUNDLElBQUksRUFBRVo7RUFBSSxHQUNwREcsWUFDQSxDQUFDLGdCQUVKbkQsS0FBQSxDQUFBeUMsYUFBQSxlQUFPVSxZQUFtQixDQUUxQixDQUFDLEVBQ0pGLFdBQVcsZ0JBQ1ZqRCxLQUFBLENBQUF5QyxhQUFBO0lBQ0VjLFNBQVMsc0JBQUFNLE1BQUEsQ0FDUHBELGtCQUFrQixDQUFDc0MsVUFBVSxDQUFDLEdBQzFCLENBQUFBLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFZSxRQUFRLENBQUMsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQUssR0FBRyxHQUN0QyxVQUFVLEdBQ1YsVUFBVSxHQUNaLEVBQUU7RUFDTCxHQUVGaEIsVUFBVSxhQUFWQSxVQUFVLGNBQVZBLFVBQVUsR0FBSSxFQUNiLENBQUMsR0FDSCxJQUNGLENBQUM7QUFFVCxDQUFDO0FBSUQsSUFBTWlCLFNBQW1DLEdBQUcsU0FBdENBLFNBQW1DQSxDQUFBQyxLQUFBO0VBQUEsSUFBS0MsWUFBWSxHQUFBRCxLQUFBLENBQVpDLFlBQVk7SUFBS2hELEtBQUssR0FBQWlELHdCQUFBLENBQUFGLEtBQUEsRUFBQUcsU0FBQTtFQUFBLG9CQUNsRXBFLEtBQUEsQ0FBQXlDLGFBQUEsZ0JBQ0d5QixZQUFZLENBQUNHLEdBQUcsQ0FBQyxVQUFBQyxJQUFJO0lBQUEsb0JBQ3BCdEUsS0FBQSxDQUFBeUMsYUFBQSxDQUFDOEIsWUFBWSxFQUFBQyxRQUFBO01BQUNoQixHQUFHLEVBQUVjLElBQUksQ0FBQ3pCLElBQUs7TUFBQ3lCLElBQUksRUFBRUE7SUFBSyxHQUFLcEQsS0FBSyxDQUFHLENBQUM7RUFBQSxDQUN4RCxDQUNJLENBQUM7QUFBQSxDQUNUO0FBWUQsSUFBTXFELFlBQXlDLEdBQUcsU0FBNUNBLFlBQXlDQSxDQUFBRSxLQUFBLEVBUXpDO0VBQUEsSUFQSkMsS0FBSyxHQUFBRCxLQUFBLENBQUxDLEtBQUs7SUFDTEosSUFBSSxHQUFBRyxLQUFBLENBQUpILElBQUk7SUFDSkssTUFBTSxHQUFBRixLQUFBLENBQU5FLE1BQU07SUFDTkMsSUFBSSxHQUFBSCxLQUFBLENBQUpHLElBQUk7SUFDSkMsV0FBVyxHQUFBSixLQUFBLENBQVhJLFdBQVc7SUFDWEMsV0FBVyxHQUFBTCxLQUFBLENBQVhLLFdBQVc7SUFDWEMsV0FBVyxHQUFBTixLQUFBLENBQVhNLFdBQVc7RUFFWCxJQUFNQyxRQUFRLEdBQUdMLE1BQU0sQ0FBQ00sU0FBUyxDQUFDLFVBQUFDLENBQUM7SUFBQSxPQUFJQSxDQUFDLENBQUNyQyxJQUFJLEtBQUt5QixJQUFJLENBQUN6QixJQUFJO0VBQUEsRUFBQztFQUM1RCxJQUFJbUMsUUFBUSxHQUFHLENBQUMsRUFBRTtJQUNoQixPQUFPLElBQUk7RUFDYjtFQUNBLElBQU1HLEtBQUssR0FBR1IsTUFBTSxDQUFDSyxRQUFRLENBQUM7RUFDOUIsSUFBTUksa0JBQWtCLEdBQUdWLEtBQUssQ0FBQ1csa0JBQWtCLENBQUNGLEtBQUssRUFBRUosV0FBVyxDQUFDO0VBQ3ZFLElBQU1qQyxLQUFLLEdBQUdzQyxrQkFBa0IsQ0FBQ0QsS0FBSyxFQUFFUCxJQUFJLFlBQVlsRSxPQUFPLEdBQUc7SUFBQzRFLEtBQUssRUFBRVYsSUFBSSxDQUFDVztFQUFTLENBQUMsR0FBR1gsSUFBSSxDQUFDO0VBRWpHLElBQUlZLFlBQVksR0FBRyxJQUFJO0VBQ3ZCLElBQUlDLGlCQUFnQyxHQUFHLElBQUk7RUFFM0MsSUFBSVosV0FBVyxFQUFFO0lBQ2YsSUFBSTtNQUNGLElBQUlBLFdBQVcsWUFBWW5FLE9BQU8sRUFBRTtRQUNsQzhFLFlBQVksR0FBR0osa0JBQWtCLENBQUNELEtBQUssRUFBRTtVQUFDRyxLQUFLLEVBQUVULFdBQVcsQ0FBQ1U7UUFBUyxDQUFDLENBQUM7TUFDMUUsQ0FBQyxNQUFNLElBQUlHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDZCxXQUFXLENBQUMsSUFBS2UsT0FBQSxDQUFPZixXQUFXLE1BQUssUUFBUSxJQUFJQSxXQUFZLEVBQUU7UUFDekZXLFlBQVksR0FBR0osa0JBQWtCLENBQUNELEtBQUssRUFBRU4sV0FBVyxDQUFDO01BQ3ZEO01BRUFZLGlCQUFpQixHQUFHOUUsMkJBQTJCLENBQUM7UUFDOUN3RSxLQUFLLEVBQUxBLEtBQUs7UUFDTHJDLEtBQUssRUFBTEEsS0FBSztRQUNMMEMsWUFBWSxFQUFaQSxZQUFZO1FBQ1pWLFdBQVcsRUFBWEE7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsT0FBT2UsS0FBSyxFQUFFO01BQ2RMLFlBQVksR0FBRyxJQUFJO0lBQ3JCO0VBQ0Y7RUFFQSxJQUFNckMsWUFBWSxHQUFHdkMsc0JBQXNCLENBQUM7SUFBQzBELElBQUksRUFBSkEsSUFBSTtJQUFFYSxLQUFLLEVBQUxBLEtBQUs7SUFBRXJDLEtBQUssRUFBTEE7RUFBSyxDQUFDLENBQUM7RUFFakUsb0JBQ0U5QyxLQUFBLENBQUF5QyxhQUFBLENBQUNFLEdBQUc7SUFDRkUsSUFBSSxFQUFFc0MsS0FBSyxDQUFDVyxXQUFXLElBQUlYLEtBQUssQ0FBQ3RDLElBQUs7SUFDdENDLEtBQUssRUFBRUssWUFBYTtJQUNwQkosVUFBVSxFQUFFMEMsaUJBQWtCO0lBQzlCeEMsV0FBVyxFQUFFOEMsT0FBTyxDQUFDbEIsV0FBVztFQUFFLENBQ25DLENBQUM7QUFFTixDQUFDO0FBRUQsSUFBTW1CLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFBQyxLQUFBLEVBWVI7RUFBQSxJQVhKL0IsWUFBWSxHQUFBK0IsS0FBQSxDQUFaL0IsWUFBWTtJQUNaVSxJQUFJLEdBQUFxQixLQUFBLENBQUpyQixJQUFJO0lBQ0pGLEtBQUssR0FBQXVCLEtBQUEsQ0FBTHZCLEtBQUs7SUFDTEcsV0FBVyxHQUFBb0IsS0FBQSxDQUFYcEIsV0FBVztJQUNYQyxXQUFXLEdBQUFtQixLQUFBLENBQVhuQixXQUFXO0VBUVgsSUFBQW9CLEtBQUEsR0FBZ0N4QixLQUFLLENBQUN5QixNQUFNO0lBQXJDQyxVQUFVLEdBQUFGLEtBQUEsQ0FBVkUsVUFBVTtJQUFFQyxTQUFTLEdBQUFILEtBQUEsQ0FBVEcsU0FBUztFQUM1QixJQUFNcEQsV0FBVyxHQUFHOEMsT0FBTyxDQUFDbEIsV0FBVyxDQUFDO0VBRXhDLElBQU15QixVQUFVLEdBQUduRyxPQUFPLENBQUMsWUFBTTtJQUMvQixJQUFJaUcsVUFBVSxJQUFJMUIsS0FBSyxDQUFDNkIsY0FBYyxDQUFDQyxLQUFLLEVBQUU7TUFDNUMsSUFBTWxDLElBQUksR0FBR0osWUFBWSxDQUFDdUMsSUFBSSxDQUFDLFVBQUF0QixLQUFLO1FBQUEsT0FBSUEsS0FBSyxDQUFDdEMsSUFBSSxLQUFLdUQsVUFBVSxDQUFDdkQsSUFBSTtNQUFBLEVBQUM7TUFDdkUsT0FBT2pDLHNCQUFzQixDQUFDO1FBQUMwRCxJQUFJLEVBQUpBLElBQUk7UUFBRWEsS0FBSyxFQUFFaUIsVUFBVTtRQUFFdEQsS0FBSyxFQUFFOEIsSUFBSSxDQUFDMEI7TUFBVSxDQUFDLENBQUM7SUFDbEY7SUFDQSxPQUFPLElBQUk7RUFDYixDQUFDLEVBQUUsQ0FBQ3BDLFlBQVksRUFBRWtDLFVBQVUsRUFBRTFCLEtBQUssRUFBRUUsSUFBSSxDQUFDMEIsVUFBVSxDQUFDLENBQUM7RUFFdEQsSUFBTUksY0FBYyxHQUFHdkcsT0FBTyxDQUFDLFlBQU07SUFDbkMsSUFBSWtHLFNBQVMsSUFBSTNCLEtBQUssQ0FBQzZCLGNBQWMsQ0FBQ0ksSUFBSSxFQUFFO01BQzFDLElBQU1yQyxJQUFJLEdBQUdKLFlBQVksQ0FBQ3VDLElBQUksQ0FBQyxVQUFBdEIsS0FBSztRQUFBLE9BQUlBLEtBQUssQ0FBQ3RDLElBQUksS0FBS3dELFNBQVMsQ0FBQ3hELElBQUk7TUFBQSxFQUFDO01BQ3RFLE9BQU9qQyxzQkFBc0IsQ0FBQztRQUFDMEQsSUFBSSxFQUFKQSxJQUFJO1FBQUVhLEtBQUssRUFBRWtCLFNBQVM7UUFBRXZELEtBQUssRUFBRThCLElBQUksQ0FBQzhCO01BQWMsQ0FBQyxDQUFDO0lBQ3JGO0lBQ0EsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxFQUFFLENBQUN4QyxZQUFZLEVBQUVtQyxTQUFTLEVBQUUzQixLQUFLLEVBQUVFLElBQUksQ0FBQzhCLGNBQWMsQ0FBQyxDQUFDO0VBRXpELElBQU1FLFVBQVUsR0FBR3pHLE9BQU8sQ0FBQyxZQUFNO0lBQy9CLElBQUksQ0FBQzBFLFdBQVcsSUFBSSxDQUFDdUIsVUFBVSxJQUFJLEVBQUUsWUFBWSxJQUFJdkIsV0FBVyxDQUFDLEVBQUUsT0FBTyxJQUFJO0lBQzlFLE9BQU9sRSwyQkFBMkIsQ0FBQztNQUNqQ3dFLEtBQUssRUFBRWlCLFVBQVU7TUFDakJ0RCxLQUFLLEVBQUU4QixJQUFJLENBQUMwQixVQUFVO01BQ3RCZCxZQUFZLEVBQUVYLFdBQVcsQ0FBQ3lCLFVBQVU7TUFDcEN4QixXQUFXLEVBQVhBO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLENBQUNELFdBQVcsRUFBRXVCLFVBQVUsRUFBRXhCLElBQUksQ0FBQzBCLFVBQVUsRUFBRXhCLFdBQVcsQ0FBQyxDQUFDO0VBRTNELElBQU0rQixjQUFjLEdBQUcxRyxPQUFPLENBQUMsWUFBTTtJQUNuQyxJQUFJLENBQUMwRSxXQUFXLElBQUksQ0FBQ3dCLFNBQVMsSUFBSSxFQUFFLGdCQUFnQixJQUFJeEIsV0FBVyxDQUFDLEVBQUUsT0FBTyxJQUFJO0lBQ2pGLE9BQU9sRSwyQkFBMkIsQ0FBQztNQUNqQ3dFLEtBQUssRUFBRWtCLFNBQVM7TUFDaEJ2RCxLQUFLLEVBQUU4QixJQUFJLENBQUM4QixjQUFjO01BQzFCbEIsWUFBWSxFQUFFWCxXQUFXLENBQUM2QixjQUFjO01BQ3hDNUIsV0FBVyxFQUFYQTtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUMsRUFBRSxDQUFDRCxXQUFXLEVBQUV3QixTQUFTLEVBQUV6QixJQUFJLENBQUM4QixjQUFjLEVBQUU1QixXQUFXLENBQUMsQ0FBQztFQUU5RCxJQUFNZ0MsY0FBYyxHQUFHM0csT0FBTyxDQUFDLFlBQU07SUFDbkMsSUFBSXlFLElBQUksQ0FBQ2tDLGNBQWMsSUFBSTVDLFlBQVksRUFBRTtNQUN2QyxPQUFPQSxZQUFZLENBQUM2QyxNQUFNLENBQ3hCLFVBQUNDLEdBQUcsRUFBRTdCLEtBQUssRUFBSztRQUFBLElBQUE4QixvQkFBQTtRQUNkLElBQU1DLFlBQVksSUFBQUQsb0JBQUEsR0FBR3JDLElBQUksQ0FBQ2tDLGNBQWMsY0FBQUcsb0JBQUEsdUJBQW5CQSxvQkFBQSxDQUFzQjlCLEtBQUssQ0FBQ3RDLElBQUksQ0FBQztRQUN0RCxJQUFJcUUsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsT0FBTyxJQUFJaEMsS0FBSyxDQUFDdEMsSUFBSSxNQUFLdUQsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUV2RCxJQUFJLEdBQUU7VUFBQSxJQUFBdUUscUJBQUE7VUFDNUQsSUFBTUMsbUJBQW1CLEdBQUd4QyxXQUFXLGFBQVhBLFdBQVcsZ0JBQUF1QyxxQkFBQSxHQUFYdkMsV0FBVyxDQUFFaUMsY0FBYyxjQUFBTSxxQkFBQSx1QkFBM0JBLHFCQUFBLENBQThCakMsS0FBSyxDQUFDdEMsSUFBSSxDQUFDO1VBQ3JFLElBQU1FLFVBQVUsR0FBR3NFLG1CQUFtQixHQUNsQzFHLDJCQUEyQixDQUFDO1lBQzFCd0UsS0FBSyxFQUFFO2NBQUNtQyxJQUFJLEVBQUUsTUFBTTtjQUFFekUsSUFBSSxFQUFFc0MsS0FBSyxDQUFDdEM7WUFBSSxDQUFVO1lBQ2hEQyxLQUFLLEVBQUVvRSxZQUFZLENBQUNwRSxLQUFLLElBQUksSUFBSSxHQUFHeUUsTUFBTSxDQUFDTCxZQUFZLENBQUNwRSxLQUFLLENBQUMsR0FBRyxJQUFJO1lBQ3JFMEMsWUFBWSxFQUNWNkIsbUJBQW1CLENBQUN2RSxLQUFLLElBQUksSUFBSSxHQUFHeUUsTUFBTSxDQUFDRixtQkFBbUIsQ0FBQ3ZFLEtBQUssQ0FBQyxHQUFHLElBQUk7WUFDOUVnQyxXQUFXLEVBQVhBO1VBQ0YsQ0FBQyxDQUFDLEdBQ0YsSUFBSTtVQUNSa0MsR0FBRyxDQUFDUSxJQUFJLENBQUM7WUFDUDNFLElBQUksS0FBQWdCLE1BQUEsQ0FBSy9DLHFCQUFxQixDQUFDb0csWUFBWSxDQUFDQyxPQUFPLENBQUMsVUFBQXRELE1BQUEsQ0FBT3NCLEtBQUssQ0FBQ3RDLElBQUksQ0FBRTtZQUN2RUMsS0FBSyxFQUFFb0UsWUFBWSxDQUFDcEUsS0FBSztZQUN6QkMsVUFBVSxFQUFWQTtVQUNGLENBQUMsQ0FBQztRQUNKO1FBQ0EsT0FBT2lFLEdBQUc7TUFDWixDQUFDLEVBQ0QsRUFDRixDQUFDO0lBQ0g7SUFDQSxPQUFPLEVBQUU7RUFDWCxDQUFDLEVBQUUsQ0FBQ3BDLElBQUksQ0FBQ2tDLGNBQWMsRUFBRTVDLFlBQVksRUFBRWtDLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFdkQsSUFBSSxFQUFFZ0MsV0FBVyxFQUFFQyxXQUFXLENBQUMsQ0FBQztFQUVuRixJQUFNMkMsWUFBWSxHQUFHL0MsS0FBSyxDQUFDZ0QsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUNQLE9BQU87RUFDdkUsSUFBTVEsV0FBVyxHQUFHakQsS0FBSyxDQUFDZ0QsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUNQLE9BQU87RUFDckUsb0JBQ0VuSCxLQUFBLENBQUF5QyxhQUFBLDZCQUNFekMsS0FBQSxDQUFBeUMsYUFBQSxDQUFDRSxHQUFHO0lBQ0ZFLElBQUksRUFBRSxjQUFlO0lBQ3JCVyxHQUFHLEVBQUMsT0FBTztJQUNYVixLQUFLLEVBQUU4RSxNQUFNLENBQUNoRCxJQUFJLENBQUNpRCxNQUFNLElBQUlqRCxJQUFJLENBQUNpRCxNQUFNLENBQUN6RSxNQUFNLENBQUU7SUFDakRILFdBQVcsRUFBRUE7RUFBWSxDQUMxQixDQUFDLEVBQ0RtRCxVQUFVLElBQUkxQixLQUFLLENBQUM2QixjQUFjLENBQUNDLEtBQUssSUFBSWlCLFlBQVksZ0JBQ3ZEekgsS0FBQSxDQUFBeUMsYUFBQSxDQUFDRSxHQUFHO0lBQ0ZFLElBQUksRUFBRTRFLFlBQWE7SUFDbkJqRSxHQUFHLEVBQUMsT0FBTztJQUNYVixLQUFLLEVBQUV3RCxVQUFVLElBQUksS0FBTTtJQUMzQnZELFVBQVUsRUFBRTZELFVBQVc7SUFDdkIzRCxXQUFXLEVBQUVBO0VBQVksQ0FDMUIsQ0FBQyxHQUNBLElBQUksRUFDUG9ELFNBQVMsSUFBSTNCLEtBQUssQ0FBQzZCLGNBQWMsQ0FBQ0ksSUFBSSxJQUFJZ0IsV0FBVyxnQkFDcEQzSCxLQUFBLENBQUF5QyxhQUFBLENBQUNFLEdBQUc7SUFDRkUsSUFBSSxFQUFFOEUsV0FBWTtJQUNsQm5FLEdBQUcsRUFBQyxNQUFNO0lBQ1ZWLEtBQUssRUFBRTRELGNBQWMsSUFBSSxLQUFNO0lBQy9CM0QsVUFBVSxFQUFFOEQsY0FBZTtJQUMzQjVELFdBQVcsRUFBRUE7RUFBWSxDQUMxQixDQUFDLEdBQ0EsSUFBSSxFQUNQNkQsY0FBYyxDQUFDekMsR0FBRyxDQUFDLFVBQUM2QyxZQUFZLEVBQUVZLEdBQUc7SUFBQSxvQkFDcEM5SCxLQUFBLENBQUF5QyxhQUFBLENBQUNFLEdBQUc7TUFDRkUsSUFBSSxFQUFFcUUsWUFBWSxDQUFDckUsSUFBSztNQUN4QlcsR0FBRyxVQUFBSyxNQUFBLENBQVVpRSxHQUFHLENBQUc7TUFDbkJoRixLQUFLLEVBQUVvRSxZQUFZLENBQUNwRSxLQUFLLElBQUksSUFBSSxHQUFHOEUsTUFBTSxDQUFDVixZQUFZLENBQUNwRSxLQUFLLENBQUMsR0FBRyxLQUFNO01BQ3ZFQyxVQUFVLEVBQUVtRSxZQUFZLENBQUNuRSxVQUFXO01BQ3BDRSxXQUFXLEVBQUVBO0lBQVksQ0FDMUIsQ0FBQztFQUFBLENBQ0gsQ0FDSSxDQUFDO0FBRVosQ0FBQztBQUVELElBQU04RSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBLEVBQVM7RUFDbEMsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFHOUcsS0FBSyxFQUFJO0lBQzlCLElBQU8wRCxJQUFJLEdBQVcxRCxLQUFLLENBQXBCMEQsSUFBSTtNQUFFRixLQUFLLEdBQUl4RCxLQUFLLENBQWR3RCxLQUFLO0lBQ2xCLElBQU11RCxJQUFJLEdBQUdwSCxPQUFPLENBQUMsQ0FBQztJQUN0QixJQUFJLENBQUMrRCxJQUFJLElBQUksQ0FBQ0YsS0FBSyxFQUFFO01BQ25CLE9BQU8sSUFBSTtJQUNiO0lBRUEsSUFBTXdELGVBQWUsR0FDbEJ0RCxJQUFJLENBQUN1RCxXQUFXLElBQUlDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDekQsSUFBSSxDQUFDdUQsV0FBVyxDQUFDLENBQUMvRSxNQUFNLEdBQUcsQ0FBQyxJQUM1RHdCLElBQUksQ0FBQzBELGNBQWMsSUFBSTFELElBQUksQ0FBQzBELGNBQWMsQ0FBQ2xGLE1BQU0sR0FBRyxDQUFFLElBQ3REbEMsS0FBSyxDQUFDZ0QsWUFBWSxJQUFJaEQsS0FBSyxDQUFDZ0QsWUFBWSxDQUFDZCxNQUFNLEdBQUcsQ0FBRTtJQUV2RCxvQkFDRXBELEtBQUEsQ0FBQXlDLGFBQUE7TUFBS2MsU0FBUyxFQUFDO0lBQXlCLGdCQUN0Q3ZELEtBQUEsQ0FBQXlDLGFBQUEsQ0FBQzFCLGVBQWU7TUFBQ3dDLFNBQVMsRUFBQztJQUF5QixnQkFDbER2RCxLQUFBLENBQUF5QyxhQUFBLENBQUNsQyxNQUFNO01BQUNnSSxNQUFNLEVBQUM7SUFBTSxDQUFFLENBQUMsRUFDdkJySCxLQUFLLENBQUN3RCxLQUFLLENBQUN5QixNQUFNLENBQUNxQyxLQUNMLENBQUMsRUFDakJOLGVBQWUsaUJBQUlsSSxLQUFBLENBQUF5QyxhQUFBLENBQUNkLGFBQWEsTUFBRSxDQUFDLGVBQ3JDM0IsS0FBQSxDQUFBeUMsYUFBQSxDQUFDcEIsV0FBVztNQUFDa0MsU0FBUyxFQUFFckMsS0FBSyxDQUFDMkQsV0FBVyxHQUFHLFdBQVcsR0FBRzREO0lBQVUsR0FDakU3RCxJQUFJLENBQUMwRCxjQUFjLGdCQUNsQnRJLEtBQUEsQ0FBQXlDLGFBQUEsZ0JBQ0dtQyxJQUFJLENBQUMwRCxjQUFjLENBQUNqRSxHQUFHLENBQUMsVUFBQXFFLEtBQUEsRUFBZ0JDLENBQUM7TUFBQSxJQUFmOUYsSUFBSSxHQUFBNkYsS0FBQSxDQUFKN0YsSUFBSTtRQUFFQyxLQUFLLEdBQUE0RixLQUFBLENBQUw1RixLQUFLO01BQUEsb0JBQ3BDOUMsS0FBQSxDQUFBeUMsYUFBQSxDQUFDRSxHQUFHO1FBQUNhLEdBQUcsRUFBRW1GLENBQUU7UUFBQzlGLElBQUksRUFBRUEsSUFBSztRQUFDQyxLQUFLLEVBQUVBO01BQU0sQ0FBRSxDQUFDO0lBQUEsQ0FDMUMsQ0FDSSxDQUFDLEdBQ044QixJQUFJLENBQUN1RCxXQUFXLGdCQUNsQm5JLEtBQUEsQ0FBQXlDLGFBQUEsZ0JBQ0dtQyxJQUFJLENBQUN1RCxXQUFXLENBQUM5RCxHQUFHLENBQUMsVUFBQXVFLEtBQUEsRUFBd0JELENBQUM7TUFBQSxJQUF2QkUsWUFBWSxHQUFBRCxLQUFBLENBQVpDLFlBQVk7UUFBRS9GLEtBQUssR0FBQThGLEtBQUEsQ0FBTDlGLEtBQUs7TUFBQSxvQkFDekM5QyxLQUFBLENBQUF5QyxhQUFBLENBQUNFLEdBQUc7UUFBQ2EsR0FBRyxFQUFFbUYsQ0FBRTtRQUFDOUYsSUFBSSxFQUFFb0YsSUFBSSxDQUFDYSxhQUFhLENBQUM7VUFBQ0MsRUFBRSxFQUFFRjtRQUFZLENBQUMsQ0FBRTtRQUFDL0YsS0FBSyxFQUFFQTtNQUFNLENBQUUsQ0FBQztJQUFBLENBQzVFLENBQ0ksQ0FBQyxHQUNONUIsS0FBSyxDQUFDd0QsS0FBSyxDQUFDc0UsWUFBWSxnQkFDMUJoSixLQUFBLENBQUF5QyxhQUFBLENBQUN1RCxRQUFRLEVBQUs5RSxLQUFRLENBQUMsZ0JBRXZCbEIsS0FBQSxDQUFBeUMsYUFBQSxDQUFDdUIsU0FBUyxFQUFLOUMsS0FBUSxDQUVkLENBQUMsRUFDYmdILGVBQWUsaUJBQUlsSSxLQUFBLENBQUF5QyxhQUFBLENBQUNkLGFBQWEsTUFBRSxDQUNqQyxDQUFDO0VBRVYsQ0FBQztFQUVEcUcsY0FBYyxDQUFDaUIsU0FBUyxHQUFHO0lBQ3pCdEUsTUFBTSxFQUFFbkUsU0FBUyxDQUFDMEksT0FBTyxDQUFDMUksU0FBUyxDQUFDMkksR0FBRyxDQUFDO0lBQ3hDakYsWUFBWSxFQUFFMUQsU0FBUyxDQUFDMEksT0FBTyxDQUFDMUksU0FBUyxDQUFDMkksR0FBRyxDQUFDO0lBQzlDekUsS0FBSyxFQUFFbEUsU0FBUyxDQUFDNEksTUFBTTtJQUN2QnhFLElBQUksRUFBRXBFLFNBQVMsQ0FBQzZJLFNBQVMsQ0FBQyxDQUFDN0ksU0FBUyxDQUFDMEksT0FBTyxDQUFDMUksU0FBUyxDQUFDMkksR0FBRyxDQUFDLEVBQUUzSSxTQUFTLENBQUM0SSxNQUFNLENBQUM7RUFDaEYsQ0FBQztFQUNELE9BQU9wQixjQUFjO0FBQ3ZCLENBQUM7QUFFRCxlQUFlRCxxQkFBcUIiLCJpZ25vcmVMaXN0IjpbXX0=
|