@1money/react-ui 1.12.3 → 1.12.4-alpha.1

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.
@@ -8,7 +8,7 @@ var __rest = this && this.__rest || function (s, e) {
8
8
  return t;
9
9
  };
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- import { memo, useRef, useState, useEffect, useImperativeHandle } from 'react';
11
+ import { memo, useRef, useState, useEffect, useCallback, useImperativeHandle } from 'react';
12
12
  import { OverlayPanel } from 'primereact/overlaypanel';
13
13
  import debounce from 'lodash.debounce';
14
14
  import classnames from '../../utils/classnames';
@@ -31,12 +31,14 @@ export var Dropdown = function Dropdown(props) {
31
31
  listCls = props.listCls,
32
32
  itemCls = props.itemCls,
33
33
  itemActiveCls = props.itemActiveCls,
34
+ _onShow = props.onShow,
34
35
  _onScroll = props.onScroll,
35
36
  _props$refreshAfterSh = props.refreshAfterShow,
36
37
  refreshAfterShow = _props$refreshAfterSh === void 0 ? true : _props$refreshAfterSh,
37
- rest = __rest(props, ["ref", "prefixEle", "suffixEle", "items", "renderList", "width", "height", "maxWidth", "maxHeight", "prefixCls", "className", "wrapperCls", "listCls", "itemCls", "itemActiveCls", "onScroll", "refreshAfterShow"]);
38
+ rest = __rest(props, ["ref", "prefixEle", "suffixEle", "items", "renderList", "width", "height", "maxWidth", "maxHeight", "prefixCls", "className", "wrapperCls", "listCls", "itemCls", "itemActiveCls", "onShow", "onScroll", "refreshAfterShow"]);
38
39
  var classes = classnames(prefixCls);
39
40
  var overlayRef = useRef(null);
41
+ var handlerCalledRef = useRef(false);
40
42
  var _useState = useState(false),
41
43
  _useState2 = _slicedToArray(_useState, 2),
42
44
  isHover = _useState2[0],
@@ -48,6 +50,19 @@ export var Dropdown = function Dropdown(props) {
48
50
  var debouncedHandleScroll = debounce(function () {
49
51
  return setIsScrolling(false);
50
52
  }, 500);
53
+ var refreshDOM = useCallback(function () {
54
+ var _a, _b, _c, _d;
55
+ var ele = (_b = (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.getElement) === null || _b === void 0 ? void 0 : _b.call(_a);
56
+ var visible = (_d = (_c = overlayRef.current) === null || _c === void 0 ? void 0 : _c.isVisible) === null || _d === void 0 ? void 0 : _d.call(_c);
57
+ if (!visible || !ele) return;
58
+ var originZIndex = ele.style.zIndex;
59
+ if (originZIndex != undefined) {
60
+ ele.style.zIndex = "".concat(parseInt(originZIndex) + 1);
61
+ setTimeout(function () {
62
+ ele.style.zIndex = originZIndex;
63
+ }, 0);
64
+ }
65
+ }, []);
51
66
  // @ts-expect-error
52
67
  useImperativeHandle(ref, function () {
53
68
  var _a;
@@ -73,29 +88,18 @@ export var Dropdown = function Dropdown(props) {
73
88
  var _a, _b;
74
89
  (_b = (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a, event, target);
75
90
  if (!refreshAfterShow) return;
91
+ handlerCalledRef.current = true;
76
92
  setTimeout(function () {
77
- var _a, _b;
78
- var ele = (_b = (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.getElement) === null || _b === void 0 ? void 0 : _b.call(_a);
79
- if (!ele) return;
80
- var originZIndex = ele.style.zIndex;
81
- if (originZIndex != undefined) {
82
- ele.style.zIndex = "".concat(parseInt(originZIndex) + 1);
83
- }
93
+ return refreshDOM();
84
94
  }, 0);
85
95
  },
86
96
  toggle: function toggle(event, target) {
87
97
  var _a, _b;
88
98
  (_b = (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.toggle) === null || _b === void 0 ? void 0 : _b.call(_a, event, target);
89
99
  if (!refreshAfterShow) return;
100
+ handlerCalledRef.current = true;
90
101
  setTimeout(function () {
91
- var _a, _b, _c, _d;
92
- var ele = (_b = (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.getElement) === null || _b === void 0 ? void 0 : _b.call(_a);
93
- var visible = (_d = (_c = overlayRef.current) === null || _c === void 0 ? void 0 : _c.isVisible) === null || _d === void 0 ? void 0 : _d.call(_c);
94
- if (!visible || !ele) return;
95
- var originZIndex = ele.style.zIndex;
96
- if (originZIndex != undefined) {
97
- ele.style.zIndex = "".concat(parseInt(originZIndex) + 1);
98
- }
102
+ return refreshDOM();
99
103
  }, 0);
100
104
  }
101
105
  };
@@ -138,6 +142,17 @@ export var Dropdown = function Dropdown(props) {
138
142
  setIsScrolling(true);
139
143
  debouncedHandleScroll();
140
144
  },
145
+ onShow: function onShow() {
146
+ _onShow === null || _onShow === void 0 ? void 0 : _onShow();
147
+ if (!refreshAfterShow) return;
148
+ if (handlerCalledRef.current) {
149
+ handlerCalledRef.current = false;
150
+ } else {
151
+ setTimeout(function () {
152
+ return refreshDOM();
153
+ }, 0);
154
+ }
155
+ },
141
156
  children: _jsxs("div", {
142
157
  className: classes('wrapper', wrapperCls),
143
158
  children: [prefixEle, (_a = renderList === null || renderList === void 0 ? void 0 : renderList(items)) !== null && _a !== void 0 ? _a : _jsx("ul", {
@@ -154,4 +169,4 @@ export var Dropdown = function Dropdown(props) {
154
169
  }));
155
170
  };
156
171
  export default /*#__PURE__*/memo(Dropdown);
157
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd24uanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0Ryb3Bkb3duL0Ryb3Bkb3duLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiT3ZlcmxheVBhbmVsIiwiZGVib3VuY2UiLCJjbGFzc25hbWVzIiwiRHJvcGRvd24iLCJwcm9wcyIsIl9hIiwicmVmIiwicHJlZml4RWxlIiwic3VmZml4RWxlIiwiX3Byb3BzJGl0ZW1zIiwiaXRlbXMiLCJyZW5kZXJMaXN0Iiwid2lkdGgiLCJoZWlnaHQiLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJ3cmFwcGVyQ2xzIiwibGlzdENscyIsIml0ZW1DbHMiLCJpdGVtQWN0aXZlQ2xzIiwib25TY3JvbGwiLCJfcHJvcHMkcmVmcmVzaEFmdGVyU2giLCJyZWZyZXNoQWZ0ZXJTaG93IiwicmVzdCIsImNsYXNzZXMiLCJvdmVybGF5UmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNIb3ZlciIsInNldElzSG92ZXIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzU2Nyb2xsaW5nIiwic2V0SXNTY3JvbGxpbmciLCJkZWJvdW5jZWRIYW5kbGVTY3JvbGwiLCJjdXJyZW50IiwiaGlkZSIsIl9iIiwiZ2V0RWxlbWVudCIsImlzVmlzaWJsZSIsIl9jIiwiYWxpZ24iLCJzaG93IiwiZXZlbnQiLCJ0YXJnZXQiLCJzZXRUaW1lb3V0IiwiZWxlIiwib3JpZ2luWkluZGV4Iiwic3R5bGUiLCJ6SW5kZXgiLCJ1bmRlZmluZWQiLCJjb25jYXQiLCJwYXJzZUludCIsInRvZ2dsZSIsIl9kIiwidmlzaWJsZSIsImhhbmRsZVJlc2l6ZSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYXNzaWduIiwiam9pbiIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hFbmQiLCJjYW5jZWwiLCJjaGlsZHJlbiIsIm1hcCIsIml0ZW0iLCJpbmQiLCJhY3RpdmUiLCJrZXkiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ1g5RCxTQUFTQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLG1CQUFtQixRQUFRLE9BQU87QUFDOUUsU0FBU0MsWUFBWSxRQUFRLHlCQUF5QjtBQUN0RCxPQUFPQyxRQUFRLE1BQU0saUJBQWlCO0FBQ3RDLE9BQU9DLFVBQVUsTUFBTSx3QkFBd0I7QUFLL0MsT0FBTyxJQUFNQyxRQUFRLEdBQXlDLFNBQWpEQSxRQUFRQSxDQUF5Q0MsS0FBSyxFQUFHO0VEU2xFLElBQUlDLEVBQUU7RUNSUixJQUNFQyxHQUFHLEdBaUJERixLQUFLLENBakJQRSxHQUFHO0lBQ0hDLFNBQVMsR0FnQlBILEtBQUssQ0FoQlBHLFNBQVM7SUFDVEMsU0FBUyxHQWVQSixLQUFLLENBZlBJLFNBQVM7SUFBQUMsWUFBQSxHQWVQTCxLQUFLLENBZFBNLEtBQUs7SUFBTEEsS0FBSyxHQUFBRCxZQUFBLGNBQUcsRUFBRSxHQUFBQSxZQUFBO0lBQ1ZFLFVBQVUsR0FhUlAsS0FBSyxDQWJQTyxVQUFVO0lBQ1ZDLEtBQUssR0FZSFIsS0FBSyxDQVpQUSxLQUFLO0lBQ0xDLE1BQU0sR0FXSlQsS0FBSyxDQVhQUyxNQUFNO0lBQ05DLFFBQVEsR0FVTlYsS0FBSyxDQVZQVSxRQUFRO0lBQ1JDLFNBQVMsR0FTUFgsS0FBSyxDQVRQVyxTQUFTO0lBQUFDLGdCQUFBLEdBU1BaLEtBQUssQ0FSUGEsU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsVUFBVSxHQUFBQSxnQkFBQTtJQUN0QkUsU0FBUyxHQU9QZCxLQUFLLENBUFBjLFNBQVM7SUFBRUMsVUFBVSxHQU9uQmYsS0FBSyxDQVBJZSxVQUFVO0lBQ3JCQyxPQUFPLEdBTUxoQixLQUFLLENBTlBnQixPQUFPO0lBQ1BDLE9BQU8sR0FLTGpCLEtBQUssQ0FMUGlCLE9BQU87SUFDUEMsYUFBYSxHQUlYbEIsS0FBSyxDQUpQa0IsYUFBYTtJQUNiQyxTQUFRLEdBR05uQixLQUFLLENBSFBtQixRQUFRO0lBQUFDLHFCQUFBLEdBR05wQixLQUFLLENBRlBxQixnQkFBZ0I7SUFBaEJBLGdCQUFnQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDcEJFLElBQUksR0FBQWpELE1BQUEsQ0FDTDJCLEtBQUssRUFsQkgsQ0FBQSxLQUFBLEVBQUEsV0FBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsWUFBQSxFQUFBLE9BQUEsRUFBQSxRQUFBLEVBQUEsVUFBQSxFQUFBLFdBQUEsRUFBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxTQUFBLEVBQUEsU0FBQSxFQUFBLGVBQUEsRUFBQSxVQUFBLEVBQUEsa0JBQUEsQ0FrQkwsQ0FBUTtFQUNULElBQU11QixPQUFPLEdBQUd6QixVQUFVLENBQUNlLFNBQVMsQ0FBQztFQUVyQyxJQUFNVyxVQUFVLEdBQUdoQyxNQUFNLENBQXNCLElBQUksQ0FBQztFQUVwRCxJQUFBaUMsU0FBQSxHQUE4QmhDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQWlDLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQXRDRyxPQUFPLEdBQUFGLFVBQUE7SUFBRUcsVUFBVSxHQUFBSCxVQUFBO0VBQzFCLElBQUFJLFVBQUEsR0FBc0NyQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFzQyxVQUFBLEdBQUFKLGNBQUEsQ0FBQUcsVUFBQTtJQUE5Q0UsV0FBVyxHQUFBRCxVQUFBO0lBQUVFLGNBQWMsR0FBQUYsVUFBQTtFQUNsQyxJQUFNRyxxQkFBcUIsR0FBR3JDLFFBQVEsQ0FBQztJQUFBLE9BQU1vQyxjQUFjLENBQUMsS0FBSyxDQUFDO0VBQUEsR0FBRSxHQUFHLENBQUM7RUFFeEU7RUFDQXRDLG1CQUFtQixDQUFDTyxHQUFHLEVBQUUsWUFBSztJRFh4QixJQUFJRCxFQUFFO0lDV21CLE9BQUM7TUFDOUJELEtBQUssRUFBRSxDQUFBQyxFQUFBLEdBQUF1QixVQUFVLENBQUNXLE9BQU8sTUFBQSxJQUFBLElBQUFsQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUQsS0FBTTtNQUNqQ29DLElBQUksRUFBRSxTQUFOQSxJQUFJQSxDQUFBLEVBQU87UUFBQSxJQUFBbkMsRUFBQSxFQUFBb0MsRUFBQTtRQUFDLE9BQUEsQ0FBQUEsRUFBQSxHQUFBLENBQUFwQyxFQUFBLEdBQUF1QixVQUFVLENBQUNXLE9BQU8sTUFBQSxJQUFBLElBQUFsQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRW1DLElBQUksTUFBQSxJQUFBLElBQUFDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBeEQsSUFBQSxDQUFBb0IsRUFBQSxDQUFJO01BQUEsQ0FBQTtNQUN4Q3FDLFVBQVUsRUFBRSxTQUFaQSxVQUFVQSxDQUFBLEVBQU87UUFBQSxJQUFBckMsRUFBQSxFQUFBb0MsRUFBQTtRQUFDLE9BQUEsQ0FBQUEsRUFBQSxHQUFBLENBQUFwQyxFQUFBLEdBQUF1QixVQUFVLENBQUNXLE9BQU8sTUFBQSxJQUFBLElBQUFsQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXFDLFVBQVUsTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBeEQsSUFBQSxDQUFBb0IsRUFBQSxDQUFzQjtNQUFBLENBQUE7TUFDdEVzQyxTQUFTLEVBQUUsU0FBWEEsU0FBU0EsQ0FBQSxFQUFPO1FBQUEsSUFBQXRDLEVBQUEsRUFBQW9DLEVBQUEsRUFBQUcsRUFBQTtRQUFDLE9BQUEsQ0FBQUEsRUFBQSxHQUFBLENBQUFILEVBQUEsR0FBQSxDQUFBcEMsRUFBQSxHQUFBdUIsVUFBVSxDQUFDVyxPQUFPLE1BQUEsSUFBQSxJQUFBbEMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVzQyxTQUFTLE1BQUEsSUFBQSxJQUFBRixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQXhELElBQUEsQ0FBQW9CLEVBQUEsQ0FBSSxNQUFBLElBQUEsSUFBQXVDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLEtBQUs7TUFBQSxDQUFBO01BQzNEQyxLQUFLLEVBQUUsU0FBUEEsS0FBS0EsQ0FBQSxFQUFPO1FBQUEsSUFBQXhDLEVBQUEsRUFBQW9DLEVBQUE7UUFBQyxPQUFBLENBQUFBLEVBQUEsR0FBQSxDQUFBcEMsRUFBQSxHQUFBdUIsVUFBVSxDQUFDVyxPQUFPLE1BQUEsSUFBQSxJQUFBbEMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUV3QyxLQUFLLE1BQUEsSUFBQSxJQUFBSixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQXhELElBQUEsQ0FBQW9CLEVBQUEsQ0FBSTtNQUFBLENBQUE7TUFDMUN5QyxJQUFJLEVBQUUsU0FBTkEsSUFBSUEsQ0FDRkMsS0FBd0MsRUFDeENDLE1BQXFELEVBQ25EO1FEWlEsSUFBSTNDLEVBQUUsRUFBRW9DLEVBQUU7UUNhcEIsQ0FBQUEsRUFBQSxHQUFBLENBQUFwQyxFQUFBLEdBQUF1QixVQUFVLENBQUNXLE9BQU8sTUFBQSxJQUFBLElBQUFsQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXlDLElBQUksTUFBQSxJQUFBLElBQUFMLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBeEQsSUFBQSxDQUFBb0IsRUFBQSxFQUFHMEMsS0FBSyxFQUFFQyxNQUFNLENBQUM7UUFDekMsSUFBSSxDQUFDdkIsZ0JBQWdCLEVBQUU7UUFDdkJ3QixVQUFVLENBQUMsWUFBSztVRFZGLElBQUk1QyxFQUFFLEVBQUVvQyxFQUFFO1VDV3RCLElBQU1TLEdBQUcsR0FBRyxDQUFBVCxFQUFBLEdBQUEsQ0FBQXBDLEVBQUEsR0FBQXVCLFVBQVUsQ0FBQ1csT0FBTyxNQUFBLElBQUEsSUFBQWxDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFcUMsVUFBVSxNQUFBLElBQUEsSUFBQUQsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUF4RCxJQUFBLENBQUFvQixFQUFBLENBQUk7VUFDOUMsSUFBSSxDQUFDNkMsR0FBRyxFQUFFO1VBQ1YsSUFBTUMsWUFBWSxHQUFHRCxHQUFHLENBQUNFLEtBQUssQ0FBQ0MsTUFBTTtVQUNyQyxJQUFJRixZQUFZLElBQUlHLFNBQVMsRUFBRTtZQUM3QkosR0FBRyxDQUFDRSxLQUFLLENBQUNDLE1BQU0sTUFBQUUsTUFBQSxDQUFNQyxRQUFRLENBQUNMLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBRTtVQUNwRDtRQUNGLENBQUMsRUFBRSxDQUFDLENBQUM7TUFDUCxDQUFDO01BQ0RNLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUNKVixLQUF3QyxFQUN4Q0MsTUFBcUQsRUFDbkQ7UURYUSxJQUFJM0MsRUFBRSxFQUFFb0MsRUFBRTtRQ1lwQixDQUFBQSxFQUFBLEdBQUEsQ0FBQXBDLEVBQUEsR0FBQXVCLFVBQVUsQ0FBQ1csT0FBTyxNQUFBLElBQUEsSUFBQWxDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFb0QsTUFBTSxNQUFBLElBQUEsSUFBQWhCLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBeEQsSUFBQSxDQUFBb0IsRUFBQSxFQUFHMEMsS0FBSyxFQUFFQyxNQUFNLENBQUM7UUFDM0MsSUFBSSxDQUFDdkIsZ0JBQWdCLEVBQUU7UUFDdkJ3QixVQUFVLENBQUMsWUFBSztVRFRGLElBQUk1QyxFQUFFLEVBQUVvQyxFQUFFLEVBQUVHLEVBQUUsRUFBRWMsRUFBRTtVQ1U5QixJQUFNUixHQUFHLEdBQUcsQ0FBQVQsRUFBQSxHQUFBLENBQUFwQyxFQUFBLEdBQUF1QixVQUFVLENBQUNXLE9BQU8sTUFBQSxJQUFBLElBQUFsQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXFDLFVBQVUsTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBeEQsSUFBQSxDQUFBb0IsRUFBQSxDQUFJO1VBQzlDLElBQU1zRCxPQUFPLEdBQUcsQ0FBQUQsRUFBQSxHQUFBLENBQUFkLEVBQUEsR0FBQWhCLFVBQVUsQ0FBQ1csT0FBTyxNQUFBLElBQUEsSUFBQUssRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVELFNBQVMsTUFBQSxJQUFBLElBQUFlLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBekUsSUFBQSxDQUFBMkQsRUFBQSxDQUFJO1VBQ2pELElBQUksQ0FBQ2UsT0FBTyxJQUFJLENBQUNULEdBQUcsRUFBRTtVQUN0QixJQUFNQyxZQUFZLEdBQUdELEdBQUcsQ0FBQ0UsS0FBSyxDQUFDQyxNQUFNO1VBQ3JDLElBQUlGLFlBQVksSUFBSUcsU0FBUyxFQUFFO1lBQzdCSixHQUFHLENBQUNFLEtBQUssQ0FBQ0MsTUFBTSxNQUFBRSxNQUFBLENBQU1DLFFBQVEsQ0FBQ0wsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFFO1VBQ3BEO1FBQ0YsQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUNQO0lEUEksQ0NRTDtFRFBDLENDT0EsRUFBRSxDQUFDMUIsZ0JBQWdCLENBQUMsQ0FBQztFQUV2QjNCLFNBQVMsQ0FBQyxZQUFLO0lBQ2IsSUFBTThELFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVE7TURQbEIsSUFBSXZELEVBQUUsRUFBRW9DLEVBQUU7TUNRaEIsSUFBSSxDQUFDYixVQUFVLENBQUNXLE9BQU8sSUFBSSxDQUFDWCxVQUFVLENBQUNXLE9BQU8sQ0FBQ0ksU0FBUyxDQUFBLENBQUUsRUFBRTtNQUM1RCxDQUFBRixFQUFBLEdBQUEsQ0FBQXBDLEVBQUEsR0FBQXVCLFVBQVUsQ0FBQ1csT0FBTyxFQUFDTSxLQUFLLE1BQUEsSUFBQSxJQUFBSixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQXhELElBQUEsQ0FBQW9CLEVBQUEsQ0FBSTtJQUM5QixDQUFDO0lBQ0R3RCxNQUFNLENBQUNDLGdCQUFnQixDQUFDLFFBQVEsRUFBRUYsWUFBWSxDQUFDO0lBQy9DLE9BQU87TUFBQSxPQUFNQyxNQUFNLENBQUNFLG1CQUFtQixDQUFDLFFBQVEsRUFBRUgsWUFBWSxDQUFDO0lBQUE7RUFDakUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQ0VwRSxJQUFBLENBQUNRLFlBQVksRUFBQWxCLE1BQUEsQ0FBQWtGLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDUHRDLElBQUksRUFBQTtJQUNScEIsR0FBRyxFQUFFc0IsVUFBVTtJQUNmVixTQUFTLEVBQUVTLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUN6QlQsU0FBUyxFQUNUYyxPQUFPLElBQUlMLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDM0JTLFdBQVcsSUFBSVQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUNwQyxDQUFDc0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1piLEtBQUssRUFBRTtNQUNMLGtCQUFrQixFQUFFeEMsS0FBSyxJQUFJLE1BQU07TUFDbkMsbUJBQW1CLEVBQUVDLE1BQU0sSUFBSSxNQUFNO01BQ3JDLHNCQUFzQixFQUFFQyxRQUFRLElBQUksb0JBQW9CO01BQ3hELHVCQUF1QixFQUFFQyxTQUFTLElBQUk7SURYdEMsQ0NZZ0I7SUFDbEJtRCxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtNQUFBLE9BQVFqQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQUE7SUFDcENrQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtNQUFBLE9BQVFsQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQUE7SUFDckNtQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtNQUFBLE9BQVFuQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQUE7SUFDcENvQyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBQTtNQUFBLE9BQVFwQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQUE7SUFDbkNWLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHNUMsQ0FBQyxFQUFJO01BQ2Q0QyxTQUFRLEtBQUEsSUFBQSxJQUFSQSxTQUFRLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVJBLFNBQVEsQ0FBRzVDLENBQUMsQ0FBQztNQUNiMkQscUJBQXFCLENBQUNnQyxNQUFNLENBQUEsQ0FBRTtNQUM5QmpDLGNBQWMsQ0FBQyxJQUFJLENBQUM7TUFDcEJDLHFCQUFxQixDQUFBLENBQUU7SUFDekIsQ0FBQztJQUFBaUMsUUFBQSxFQUVEN0UsS0FBQSxDQUFBLEtBQUEsRUFBQTtNQUFLd0IsU0FBUyxFQUFFUyxPQUFPLENBQUMsU0FBUyxFQUFFUixVQUFVLENBQUM7TUFBQW9ELFFBQUEsRUFBQSxDQUMzQ2hFLFNBQVMsRUFFUixDQUFBRixFQUFBLEdBQUFNLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFHRCxLQUFLLENBQUMsTUFBQSxJQUFBLElBQUFMLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJYixJQUFBLENBQUEsSUFBQSxFQUFBO1FBQUkwQixTQUFTLEVBQUVTLE9BQU8sQ0FBQyxNQUFNLEVBQUVQLE9BQU8sQ0FBQztRQUFBbUQsUUFBQSxFQUUxRDdELEtBQUssQ0FBQzhELEdBQUcsQ0FBQyxVQUFDQyxJQUFJLEVBQUVDLEdBQUcsRUFBSTtVRHZCZCxJQUFJckUsRUFBRTtVQ3VCUyxPQUN2QmIsSUFBQSxDQUFBLElBQUEsRUFBQTtZQUEwQjBCLFNBQVMsRUFBRVMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDTixPQUFPLEVBQUVvRCxJQUFJLENBQUNFLE1BQU0sR0FBR3JELGFBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDMkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUFNLFFBQUEsRUFDakhFLElBQUksQ0FBQ0Y7VUFBUSxDQUFBLEVBRFAsQ0FBQWxFLEVBQUEsR0FBQW9FLElBQUksQ0FBQ0csR0FBRyxNQUFBLElBQUEsSUFBQXZFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJcUUsR0FBRyxDQUVuQjtRRHhCRCxDQ3lCTDtNQUFDLENBQUEsQ0FFRCxFQUVObEUsU0FBUztJQUFBLENBQUE7RUFDTixDQUFBLENBQUEsQ0FDTztBQUVuQixDQUFDO0FBRUQsNEJBQWViLElBQUksQ0FBQ1EsUUFBUSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVyZWFjdC9vdmVybGF5cGFuZWwnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC5kZWJvdW5jZSc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmV4cG9ydCBjb25zdCBEcm9wZG93biA9IHByb3BzID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyByZWYsIHByZWZpeEVsZSwgc3VmZml4RWxlLCBpdGVtcyA9IFtdLCByZW5kZXJMaXN0LCB3aWR0aCwgaGVpZ2h0LCBtYXhXaWR0aCwgbWF4SGVpZ2h0LCBwcmVmaXhDbHMgPSAnZHJvcGRvd24nLCBjbGFzc05hbWUsIHdyYXBwZXJDbHMsIGxpc3RDbHMsIGl0ZW1DbHMsIGl0ZW1BY3RpdmVDbHMsIG9uU2Nyb2xsLCByZWZyZXNoQWZ0ZXJTaG93ID0gdHJ1ZSB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInJlZlwiLCBcInByZWZpeEVsZVwiLCBcInN1ZmZpeEVsZVwiLCBcIml0ZW1zXCIsIFwicmVuZGVyTGlzdFwiLCBcIndpZHRoXCIsIFwiaGVpZ2h0XCIsIFwibWF4V2lkdGhcIiwgXCJtYXhIZWlnaHRcIiwgXCJwcmVmaXhDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJ3cmFwcGVyQ2xzXCIsIFwibGlzdENsc1wiLCBcIml0ZW1DbHNcIiwgXCJpdGVtQWN0aXZlQ2xzXCIsIFwib25TY3JvbGxcIiwgXCJyZWZyZXNoQWZ0ZXJTaG93XCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW2lzSG92ZXIsIHNldElzSG92ZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGRlYm91bmNlZEhhbmRsZVNjcm9sbCA9IGRlYm91bmNlKCgpID0+IHNldElzU2Nyb2xsaW5nKGZhbHNlKSwgNTAwKTtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgIHByb3BzOiAoX2EgPSBvdmVybGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5wcm9wcyxcbiAgICAgICAgICAgIGhpZGU6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldEVsZW1lbnQ6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEVsZW1lbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGlzVmlzaWJsZTogKCkgPT4geyB2YXIgX2EsIF9iLCBfYzsgcmV0dXJuIChfYyA9IChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmlzVmlzaWJsZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBmYWxzZTsgfSxcbiAgICAgICAgICAgIGFsaWduOiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBvdmVybGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hbGlnbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgc2hvdzogKGV2ZW50LCB0YXJnZXQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNob3cpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBldmVudCwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlZnJlc2hBZnRlclNob3cpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlID0gKF9iID0gKF9hID0gb3ZlcmxheVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWVsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luWkluZGV4ID0gZWxlLnN0eWxlLnpJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWdpblpJbmRleCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZS5zdHlsZS56SW5kZXggPSBgJHtwYXJzZUludChvcmlnaW5aSW5kZXgpICsgMX1gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9nZ2xlOiAoZXZlbnQsIHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgKF9iID0gKF9hID0gb3ZlcmxheVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9nZ2xlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZXZlbnQsIHRhcmdldCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWZyZXNoQWZ0ZXJTaG93KVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlID0gKF9iID0gKF9hID0gb3ZlcmxheVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2aXNpYmxlID0gKF9kID0gKF9jID0gb3ZlcmxheVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuaXNWaXNpYmxlKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbChfYyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmlzaWJsZSB8fCAhZWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5aSW5kZXggPSBlbGUuc3R5bGUuekluZGV4O1xuICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2luWkluZGV4ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlLnN0eWxlLnpJbmRleCA9IGAke3BhcnNlSW50KG9yaWdpblpJbmRleCkgKyAxfWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0sIFtyZWZyZXNoQWZ0ZXJTaG93XSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaGFuZGxlUmVzaXplID0gKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGlmICghb3ZlcmxheVJlZi5jdXJyZW50IHx8ICFvdmVybGF5UmVmLmN1cnJlbnQuaXNWaXNpYmxlKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgKF9iID0gKF9hID0gb3ZlcmxheVJlZi5jdXJyZW50KS5hbGlnbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVzaXplKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVSZXNpemUpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gKF9qc3goT3ZlcmxheVBhbmVsLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogb3ZlcmxheVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgW1xuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgaXNIb3ZlciAmJiBjbGFzc2VzKCdob3ZlcicpLFxuICAgICAgICAgICAgaXNTY3JvbGxpbmcgJiYgY2xhc3Nlcygnc2Nyb2xsaW5nJyksXG4gICAgICAgIF0uam9pbignICcpKSwgc3R5bGU6IHtcbiAgICAgICAgICAgICctLWRyb3Bkb3duLXdpZHRoJzogd2lkdGggfHwgJ2F1dG8nLFxuICAgICAgICAgICAgJy0tZHJvcGRvd24taGVpZ2h0JzogaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICAgICAgICAgICctLWRyb3Bkb3duLW1heC13aWR0aCc6IG1heFdpZHRoIHx8ICdjYWxjKDEwMHZ3IC0gNDhweCknLFxuICAgICAgICAgICAgJy0tZHJvcGRvd24tbWF4LWhlaWdodCc6IG1heEhlaWdodCB8fCAnY2FsYygxMDB2aCAtIDQ4cHgpJyxcbiAgICAgICAgfSwgb25Nb3VzZUVudGVyOiAoKSA9PiBzZXRJc0hvdmVyKHRydWUpLCBvbk1vdXNlTGVhdmU6ICgpID0+IHNldElzSG92ZXIoZmFsc2UpLCBvblRvdWNoU3RhcnQ6ICgpID0+IHNldElzSG92ZXIodHJ1ZSksIG9uVG91Y2hFbmQ6ICgpID0+IHNldElzSG92ZXIoZmFsc2UpLCBvblNjcm9sbDogKGUpID0+IHtcbiAgICAgICAgICAgIG9uU2Nyb2xsID09PSBudWxsIHx8IG9uU2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNjcm9sbChlKTtcbiAgICAgICAgICAgIGRlYm91bmNlZEhhbmRsZVNjcm9sbC5jYW5jZWwoKTtcbiAgICAgICAgICAgIHNldElzU2Nyb2xsaW5nKHRydWUpO1xuICAgICAgICAgICAgZGVib3VuY2VkSGFuZGxlU2Nyb2xsKCk7XG4gICAgICAgIH0sIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIHdyYXBwZXJDbHMpLCBjaGlsZHJlbjogW3ByZWZpeEVsZSwgKF9hID0gcmVuZGVyTGlzdCA9PT0gbnVsbCB8fCByZW5kZXJMaXN0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZW5kZXJMaXN0KGl0ZW1zKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogX2pzeChcInVsXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsaXN0JywgbGlzdENscyksIGNoaWxkcmVuOiBpdGVtcy5tYXAoKGl0ZW0sIGluZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwibGlcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xpc3QtaXRlbScsIFtpdGVtQ2xzLCBpdGVtLmFjdGl2ZSA/IGl0ZW1BY3RpdmVDbHMgOiB2b2lkIDBdLmpvaW4oJyAnKSksIGNoaWxkcmVuOiBpdGVtLmNoaWxkcmVuIH0sIChfYSA9IGl0ZW0ua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmQpKTtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSksIHN1ZmZpeEVsZV0gfSkgfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKERyb3Bkb3duKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
172
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd24uanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0Ryb3Bkb3duL0Ryb3Bkb3duLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJPdmVybGF5UGFuZWwiLCJkZWJvdW5jZSIsImNsYXNzbmFtZXMiLCJEcm9wZG93biIsInByb3BzIiwiX2EiLCJyZWYiLCJwcmVmaXhFbGUiLCJzdWZmaXhFbGUiLCJfcHJvcHMkaXRlbXMiLCJpdGVtcyIsInJlbmRlckxpc3QiLCJ3aWR0aCIsImhlaWdodCIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsImNsYXNzTmFtZSIsIndyYXBwZXJDbHMiLCJsaXN0Q2xzIiwiaXRlbUNscyIsIml0ZW1BY3RpdmVDbHMiLCJvblNob3ciLCJvblNjcm9sbCIsIl9wcm9wcyRyZWZyZXNoQWZ0ZXJTaCIsInJlZnJlc2hBZnRlclNob3ciLCJyZXN0IiwiY2xhc3NlcyIsIm92ZXJsYXlSZWYiLCJoYW5kbGVyQ2FsbGVkUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNIb3ZlciIsInNldElzSG92ZXIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzU2Nyb2xsaW5nIiwic2V0SXNTY3JvbGxpbmciLCJkZWJvdW5jZWRIYW5kbGVTY3JvbGwiLCJyZWZyZXNoRE9NIiwiX2IiLCJfYyIsIl9kIiwiZWxlIiwiY3VycmVudCIsImdldEVsZW1lbnQiLCJ2aXNpYmxlIiwiaXNWaXNpYmxlIiwib3JpZ2luWkluZGV4Iiwic3R5bGUiLCJ6SW5kZXgiLCJ1bmRlZmluZWQiLCJjb25jYXQiLCJwYXJzZUludCIsInNldFRpbWVvdXQiLCJoaWRlIiwiYWxpZ24iLCJzaG93IiwiZXZlbnQiLCJ0YXJnZXQiLCJ0b2dnbGUiLCJoYW5kbGVSZXNpemUiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFzc2lnbiIsImpvaW4iLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJvblRvdWNoU3RhcnQiLCJvblRvdWNoRW5kIiwiY2FuY2VsIiwiY2hpbGRyZW4iLCJtYXAiLCJpdGVtIiwiaW5kIiwiYWN0aXZlIiwia2V5Il0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQs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ZCxJQUFJLENBQUNTLFFBQVEsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0Ryb3Bkb3duL0Ryb3Bkb3duLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2ssIHVzZUltcGVyYXRpdmVIYW5kbGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZXJlYWN0L292ZXJsYXlwYW5lbCc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoLmRlYm91bmNlJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duID0gcHJvcHMgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IHJlZiwgcHJlZml4RWxlLCBzdWZmaXhFbGUsIGl0ZW1zID0gW10sIHJlbmRlckxpc3QsIHdpZHRoLCBoZWlnaHQsIG1heFdpZHRoLCBtYXhIZWlnaHQsIHByZWZpeENscyA9ICdkcm9wZG93bicsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGlzdENscywgaXRlbUNscywgaXRlbUFjdGl2ZUNscywgb25TaG93LCBvblNjcm9sbCwgcmVmcmVzaEFmdGVyU2hvdyA9IHRydWUgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJyZWZcIiwgXCJwcmVmaXhFbGVcIiwgXCJzdWZmaXhFbGVcIiwgXCJpdGVtc1wiLCBcInJlbmRlckxpc3RcIiwgXCJ3aWR0aFwiLCBcImhlaWdodFwiLCBcIm1heFdpZHRoXCIsIFwibWF4SGVpZ2h0XCIsIFwicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcImxpc3RDbHNcIiwgXCJpdGVtQ2xzXCIsIFwiaXRlbUFjdGl2ZUNsc1wiLCBcIm9uU2hvd1wiLCBcIm9uU2Nyb2xsXCIsIFwicmVmcmVzaEFmdGVyU2hvd1wiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBvdmVybGF5UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZXJDYWxsZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0hvdmVyLCBzZXRJc0hvdmVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNTY3JvbGxpbmcsIHNldElzU2Nyb2xsaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBkZWJvdW5jZWRIYW5kbGVTY3JvbGwgPSBkZWJvdW5jZSgoKSA9PiBzZXRJc1Njcm9sbGluZyhmYWxzZSksIDUwMCk7XG4gICAgY29uc3QgcmVmcmVzaERPTSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBjb25zdCBlbGUgPSAoX2IgPSAoX2EgPSBvdmVybGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRFbGVtZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIGNvbnN0IHZpc2libGUgPSAoX2QgPSAoX2MgPSBvdmVybGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5pc1Zpc2libGUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5jYWxsKF9jKTtcbiAgICAgICAgaWYgKCF2aXNpYmxlIHx8ICFlbGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG9yaWdpblpJbmRleCA9IGVsZS5zdHlsZS56SW5kZXg7XG4gICAgICAgIGlmIChvcmlnaW5aSW5kZXggIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlbGUuc3R5bGUuekluZGV4ID0gYCR7cGFyc2VJbnQob3JpZ2luWkluZGV4KSArIDF9YDtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGVsZS5zdHlsZS56SW5kZXggPSBvcmlnaW5aSW5kZXg7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgIHByb3BzOiAoX2EgPSBvdmVybGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5wcm9wcyxcbiAgICAgICAgICAgIGhpZGU6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldEVsZW1lbnQ6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEVsZW1lbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGlzVmlzaWJsZTogKCkgPT4geyB2YXIgX2EsIF9iLCBfYzsgcmV0dXJuIChfYyA9IChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmlzVmlzaWJsZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBmYWxzZTsgfSxcbiAgICAgICAgICAgIGFsaWduOiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBvdmVybGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hbGlnbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgc2hvdzogKGV2ZW50LCB0YXJnZXQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIChfYiA9IChfYSA9IG92ZXJsYXlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNob3cpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBldmVudCwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlZnJlc2hBZnRlclNob3cpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBoYW5kbGVyQ2FsbGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVmcmVzaERPTSgpLCAwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0b2dnbGU6IChldmVudCwgdGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAoX2IgPSAoX2EgPSBvdmVybGF5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b2dnbGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBldmVudCwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlZnJlc2hBZnRlclNob3cpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBoYW5kbGVyQ2FsbGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVmcmVzaERPTSgpLCAwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0sIFtyZWZyZXNoQWZ0ZXJTaG93XSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaGFuZGxlUmVzaXplID0gKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGlmICghb3ZlcmxheVJlZi5jdXJyZW50IHx8ICFvdmVybGF5UmVmLmN1cnJlbnQuaXNWaXNpYmxlKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgKF9iID0gKF9hID0gb3ZlcmxheVJlZi5jdXJyZW50KS5hbGlnbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVzaXplKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVSZXNpemUpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gKF9qc3goT3ZlcmxheVBhbmVsLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogb3ZlcmxheVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgW1xuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgaXNIb3ZlciAmJiBjbGFzc2VzKCdob3ZlcicpLFxuICAgICAgICAgICAgaXNTY3JvbGxpbmcgJiYgY2xhc3Nlcygnc2Nyb2xsaW5nJyksXG4gICAgICAgIF0uam9pbignICcpKSwgc3R5bGU6IHtcbiAgICAgICAgICAgICctLWRyb3Bkb3duLXdpZHRoJzogd2lkdGggfHwgJ2F1dG8nLFxuICAgICAgICAgICAgJy0tZHJvcGRvd24taGVpZ2h0JzogaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICAgICAgICAgICctLWRyb3Bkb3duLW1heC13aWR0aCc6IG1heFdpZHRoIHx8ICdjYWxjKDEwMHZ3IC0gNDhweCknLFxuICAgICAgICAgICAgJy0tZHJvcGRvd24tbWF4LWhlaWdodCc6IG1heEhlaWdodCB8fCAnY2FsYygxMDB2aCAtIDQ4cHgpJyxcbiAgICAgICAgfSwgb25Nb3VzZUVudGVyOiAoKSA9PiBzZXRJc0hvdmVyKHRydWUpLCBvbk1vdXNlTGVhdmU6ICgpID0+IHNldElzSG92ZXIoZmFsc2UpLCBvblRvdWNoU3RhcnQ6ICgpID0+IHNldElzSG92ZXIodHJ1ZSksIG9uVG91Y2hFbmQ6ICgpID0+IHNldElzSG92ZXIoZmFsc2UpLCBvblNjcm9sbDogKGUpID0+IHtcbiAgICAgICAgICAgIG9uU2Nyb2xsID09PSBudWxsIHx8IG9uU2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNjcm9sbChlKTtcbiAgICAgICAgICAgIGRlYm91bmNlZEhhbmRsZVNjcm9sbC5jYW5jZWwoKTtcbiAgICAgICAgICAgIHNldElzU2Nyb2xsaW5nKHRydWUpO1xuICAgICAgICAgICAgZGVib3VuY2VkSGFuZGxlU2Nyb2xsKCk7XG4gICAgICAgIH0sIG9uU2hvdzogKCkgPT4ge1xuICAgICAgICAgICAgb25TaG93ID09PSBudWxsIHx8IG9uU2hvdyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TaG93KCk7XG4gICAgICAgICAgICBpZiAoIXJlZnJlc2hBZnRlclNob3cpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGhhbmRsZXJDYWxsZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXJDYWxsZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWZyZXNoRE9NKCksIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3dyYXBwZXInLCB3cmFwcGVyQ2xzKSwgY2hpbGRyZW46IFtwcmVmaXhFbGUsIChfYSA9IHJlbmRlckxpc3QgPT09IG51bGwgfHwgcmVuZGVyTGlzdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyTGlzdChpdGVtcykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IF9qc3goXCJ1bFwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGlzdCcsIGxpc3RDbHMpLCBjaGlsZHJlbjogaXRlbXMubWFwKChpdGVtLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChcImxpXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsaXN0LWl0ZW0nLCBbaXRlbUNscywgaXRlbS5hY3RpdmUgPyBpdGVtQWN0aXZlQ2xzIDogdm9pZCAwXS5qb2luKCcgJykpLCBjaGlsZHJlbjogaXRlbS5jaGlsZHJlbiB9LCAoX2EgPSBpdGVtLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW5kKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pIH0pLCBzdWZmaXhFbGVdIH0pIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhEcm9wZG93bik7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -237,6 +237,18 @@ export var Select = function Select(props) {
237
237
  var debouncedHandleScroll = debounce(function () {
238
238
  return setIsScrolling(false);
239
239
  }, 500);
240
+ var refreshDOM = useCallback(function () {
241
+ var _a, _b;
242
+ var ele = (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getOverlay) === null || _b === void 0 ? void 0 : _b.call(_a);
243
+ if (!ele) return;
244
+ var originZIndex = ele.style.zIndex;
245
+ if (originZIndex != undefined) {
246
+ ele.style.zIndex = "".concat(parseInt(originZIndex) + 1);
247
+ setTimeout(function () {
248
+ ele.style.zIndex = originZIndex;
249
+ }, 0);
250
+ }
251
+ }, []);
240
252
  var SelectComponent = useCallback(function (props) {
241
253
  return multiple ? _jsx(MultiSelect, Object.assign({
242
254
  unselectable: unselectable,
@@ -305,9 +317,75 @@ export var Select = function Select(props) {
305
317
  setSelected(value);
306
318
  }
307
319
  }, [value]);
320
+ // @ts-expect-error
308
321
  useImperativeHandle(ref !== null && ref !== void 0 ? ref : _ref, function () {
309
- return selectRef.current;
310
- });
322
+ var _a, _b;
323
+ return multiple ? {
324
+ props: (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.props,
325
+ focus: function focus() {
326
+ var _a, _b;
327
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
328
+ },
329
+ hide: function hide() {
330
+ var _a, _b;
331
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.hide) === null || _b === void 0 ? void 0 : _b.call(_a);
332
+ },
333
+ show: function show() {
334
+ var _a, _b;
335
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a);
336
+ },
337
+ getElement: function getElement() {
338
+ var _a, _b;
339
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getElement) === null || _b === void 0 ? void 0 : _b.call(_a);
340
+ },
341
+ getInput: function getInput() {
342
+ var _a, _b;
343
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getInput) === null || _b === void 0 ? void 0 : _b.call(_a);
344
+ },
345
+ getOverlay: function getOverlay() {
346
+ var _a, _b;
347
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getOverlay) === null || _b === void 0 ? void 0 : _b.call(_a);
348
+ }
349
+ } : {
350
+ props: (_b = selectRef.current) === null || _b === void 0 ? void 0 : _b.props,
351
+ clear: function clear() {
352
+ var _a, _b;
353
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.clear) === null || _b === void 0 ? void 0 : _b.call(_a);
354
+ },
355
+ focus: function focus() {
356
+ var _a, _b;
357
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
358
+ },
359
+ hide: function hide() {
360
+ var _a, _b;
361
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.hide) === null || _b === void 0 ? void 0 : _b.call(_a);
362
+ },
363
+ show: function show() {
364
+ var _a, _b;
365
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a);
366
+ },
367
+ getElement: function getElement() {
368
+ var _a, _b;
369
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getElement) === null || _b === void 0 ? void 0 : _b.call(_a);
370
+ },
371
+ getInput: function getInput() {
372
+ var _a, _b;
373
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getInput) === null || _b === void 0 ? void 0 : _b.call(_a);
374
+ },
375
+ getOverlay: function getOverlay() {
376
+ var _a, _b;
377
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getOverlay) === null || _b === void 0 ? void 0 : _b.call(_a);
378
+ },
379
+ getFocusInput: function getFocusInput() {
380
+ var _a, _b;
381
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getFocusInput) === null || _b === void 0 ? void 0 : _b.call(_a);
382
+ },
383
+ getVirtualScroller: function getVirtualScroller() {
384
+ var _a, _b;
385
+ return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getVirtualScroller) === null || _b === void 0 ? void 0 : _b.call(_a);
386
+ }
387
+ };
388
+ }, [multiple]);
311
389
  return _jsx(SelectWrapper, {
312
390
  label: label,
313
391
  message: message,
@@ -369,6 +447,9 @@ export var Select = function Select(props) {
369
447
  onShow: function onShow() {
370
448
  setIsOpen(true);
371
449
  _onShow === null || _onShow === void 0 ? void 0 : _onShow();
450
+ setTimeout(function () {
451
+ return refreshDOM();
452
+ }, 0);
372
453
  },
373
454
  dropdownIcon: function dropdownIcon() {
374
455
  return _jsx(Icons, {
@@ -405,4 +486,4 @@ export var Select = function Select(props) {
405
486
  };
406
487
  Select.CustomDropdown = CustomDropdown;
407
488
  export default /*#__PURE__*/memo(Select);
408
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsImlzRXF1YWwiLCJkZWJvdW5jZSIsIkRyb3Bkb3duIiwiTXVsdGlTZWxlY3QiLCJjbGFzc25hbWVzIiwiSWNvbnMiLCJTZWxlY3RXcmFwcGVyIiwicHJvcHMiLCJsYWJlbCIsIm1lc3NhZ2UiLCJyZXF1aXJlZCIsInByZWZpeENscyIsIndyYXBwZXJDbHMiLCJsYWJlbENscyIsIm1lc3NhZ2VDbHMiLCJzdWNjZXNzIiwiaW52YWxpZCIsImRpc2FibGVkIiwiY2hpbGRyZW4iLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiam9pbiIsInRyaW0iLCJDdXN0b21Ecm9wZG93biIsInJlZiIsImRhdGFJZCIsIl9wcm9wcyRwcmVmaXhDbHMiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJlZGl0YWJsZSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJGNsYXNzTmFtZSIsInNlbGVjdGVkVGVtcGxhdGUiLCJ0YWlsVGVtcGxhdGUiLCJvbkNsaWNrIiwib25Gb2N1cyIsIm9uQmx1ciIsImlzQ2xpY2tJbnNpZGUiLCJkYXRhSWRSZWYiLCJsYXN0Rm9jdXNSZWYiLCJzZWxlY3RSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ2YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc0ZvY3VzIiwic2V0SXNGb2N1cyIsInNlbGVjdENscyIsImZvY3VzIiwiYmx1ciIsImdldERPTU5vZGUiLCJjdXJyZW50IiwiZmluZEN1c3RvbURyb3Bkb3duRGF0YUlkIiwidGFyZ2V0IiwiX2EiLCJkYXRhc2V0Iiwic2VsZWN0Q3VzdG9tRHJvcGRvd25JZCIsImRvY3VtZW50IiwiYm9keSIsInBhcmVudCIsInBhcmVudE5vZGUiLCJwYXJlbnRFbGVtZW50IiwicmVtb3ZlRm9jdXMiLCJwcmV2IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250ZW50RWRpdGFibGUiLCJhdXRvRm9jdXMiLCJvbklucHV0IiwidmFsIiwiY3VycmVudFRhcmdldCIsImlubmVyVGV4dCIsIm5hbWUiLCJjb2xvciIsIlNlbGVjdCIsImlkIiwiX3Byb3BzJHByZWZpeENsczIiLCJfcHJvcHMkc2l6ZTIiLCJfcHJvcHMkY2xhc3NOYW1lMiIsIm11bHRpcGxlIiwib3B0aW9ucyIsInBhbmVsQ2xhc3NOYW1lIiwiZGVmYXVsdFZhbHVlIiwiaXRlbVRlbXBsYXRlIiwib25DaGFuZ2UiLCJvbkhpZGUiLCJvblNob3ciLCJ1bnNlbGVjdGFibGUiLCJyZXN0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZWxlY3RlZCIsInNldFNlbGVjdGVkIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJpc0hvdmVyIiwic2V0SXNIb3ZlciIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1Njcm9sbGluZyIsInNldElzU2Nyb2xsaW5nIiwiX3JlZiIsIkFycmF5IiwiaXNBcnJheSIsImRlYm91bmNlZEhhbmRsZVNjcm9sbCIsIlNlbGVjdENvbXBvbmVudCIsImFzc2lnbiIsInNob3dTZWxlY3RBbGwiLCJjaGVja2JveEljb24iLCJyZW1vdmVJY29uIiwiX3Byb3BzJGljb25Qcm9wcyIsImljb25Qcm9wcyIsIm9uS2V5RG93biIsInRhYkluZGV4IiwicGFuZWxIZWFkZXJUZW1wbGF0ZSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiZmlsdGVyRWxlbWVudCIsInNlbGVjdGVkTnVtIiwibWV0YURhdGEiLCJ1cGRhdGVNb2RlbCIsImNvbGxhcHNlSWNvbiIsInVuZGVmaW5lZCIsImZpbHRlclBsYWNlaG9sZGVyIiwib3B0aW9uIiwiY2xlYXIiLCJmaWx0ZXJJY29uIiwiYXBwZW5kVG8iLCJkcm9wZG93bkljb24iLCJwdCIsIndyYXBwZXIiLCJvblNjcm9sbCIsImNhbmNlbCIsInBhbmVsIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwib25Ub3VjaFN0YXJ0Iiwib25Ub3VjaEVuZCJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVE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UUFDRCtCLEtBQUssRUFBRTtVQUNMQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtZQUFBLE9BQVF4QyxVQUFVLENBQUMsSUFBSSxDQUFDO1VBQUE7VUFDcEN5QyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtZQUFBLE9BQVF6QyxVQUFVLENBQUMsS0FBSyxDQUFDO1VBQUE7VUFDckMwQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtZQUFBLE9BQVExQyxVQUFVLENBQUMsSUFBSSxDQUFDO1VBQUE7VUFDcEMyQyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBQTtZQUFBLE9BQVEzQyxVQUFVLENBQUMsS0FBSyxDQUFDO1VBQUE7UURsTC9CO01BQ0o7SUNtTEgsQ0FBQSxDQUFBO0VBQ0QsQ0FBQSxDQUNZO0FBRXBCLENBQUM7QUFFRDFCLE1BQU0sQ0FBQ3ZELGNBQWMsR0FBR0EsY0FBYztBQUV0Qyw0QkFBZTlCLElBQUksQ0FBQ3FGLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlUmVmLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC5pc2VxdWFsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IHsgRHJvcGRvd24gfSBmcm9tICdwcmltZXJlYWN0L2Ryb3Bkb3duJztcbmltcG9ydCB7IE11bHRpU2VsZWN0IH0gZnJvbSAncHJpbWVyZWFjdC9tdWx0aXNlbGVjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuY29uc3QgU2VsZWN0V3JhcHBlciA9IG1lbW8ocHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBtZXNzYWdlQ2xzLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgY2hpbGRyZW4sIH0gPSBwcm9wcztcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIHdyYXBwZXJDbHMpLCBjaGlsZHJlbjogW2xhYmVsICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIFtyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENsc10uam9pbignICcpKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBjaGlsZHJlbiwgbWVzc2FnZSAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIFtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA/IGNsYXNzZXMoJ21lc3NhZ2Utc3VjY2VzcycpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGludmFsaWQgPyBjbGFzc2VzKCdtZXNzYWdlLWVycm9yJykgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUNsc1xuICAgICAgICAgICAgICAgIF0uam9pbignICcpLnRyaW0oKSksIGNoaWxkcmVuOiBtZXNzYWdlIH0pXSB9KTtcbn0pO1xuY29uc3QgQ3VzdG9tRHJvcGRvd24gPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyByZWYsIGRhdGFJZCwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgd3JhcHBlckNscywgbGFiZWxDbHMsIG1lc3NhZ2VDbHMsIHNpemUgPSAnbGFyZ2UnLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgZWRpdGFibGUsIHBsYWNlaG9sZGVyID0gJycsIGNsYXNzTmFtZSA9ICcnLCBzZWxlY3RlZFRlbXBsYXRlLCB0YWlsVGVtcGxhdGUsIG9uQ2xpY2ssIG9uRm9jdXMsIG9uQmx1ciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgaXNDbGlja0luc2lkZSA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZGF0YUlkUmVmID0gdXNlUmVmKGRhdGFJZCk7XG4gICAgY29uc3QgbGFzdEZvY3VzUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBzZWxlY3RSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2lzRm9jdXMsIHNldElzRm9jdXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHNlbGVjdENscyA9IHVzZU1lbW8oKCkgPT4gY2xhc3Nlcyh2b2lkIDAsIFtcbiAgICAgICAgY2xhc3NlcyhzaXplKSxcbiAgICAgICAgY2xhc3NlcygnY3VzdG9tJyksXG4gICAgICAgIGlzRm9jdXMgPyBjbGFzc2VzKCdmb2N1cycpIDogJycsXG4gICAgICAgIHN1Y2Nlc3MgPyBjbGFzc2VzKCdzdWNjZXNzJykgOiAnJyxcbiAgICAgICAgaW52YWxpZCA/IGNsYXNzZXMoJ2ludmFsaWQnKSA6ICcnLFxuICAgICAgICBkaXNhYmxlZCA/IGNsYXNzZXMoJ2Rpc2FibGVkJykgOiAnJyxcbiAgICAgICAgZWRpdGFibGUgPyBjbGFzc2VzKCdlZGl0YWJsZScpIDogJycsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgIF0uam9pbignICcpKSwgW3NpemUsIGlzRm9jdXMsIHN1Y2Nlc3MsIGludmFsaWQsIGRpc2FibGVkLCBlZGl0YWJsZSwgY2xhc3NOYW1lXSk7XG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XG4gICAgICAgIGZvY3VzOiAoKSA9PiBzZXRJc0ZvY3VzKHRydWUpLFxuICAgICAgICBibHVyOiAoKSA9PiBzZXRJc0ZvY3VzKGZhbHNlKSxcbiAgICAgICAgZ2V0RE9NTm9kZTogKCkgPT4gc2VsZWN0UmVmLmN1cnJlbnRcbiAgICB9KSwgW3JlZl0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGRhdGFJZFJlZi5jdXJyZW50ID0gZGF0YUlkO1xuICAgIH0sIFtkYXRhSWRdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoaXNGb2N1cyAhPT0gbGFzdEZvY3VzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGxhc3RGb2N1c1JlZi5jdXJyZW50ID0gaXNGb2N1cztcbiAgICAgICAgICAgIGlmIChpc0ZvY3VzKSB7XG4gICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtpc0ZvY3VzLCBvbkZvY3VzLCBvbkJsdXJdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaW5kQ3VzdG9tRHJvcGRvd25EYXRhSWQgPSAodGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIWRhdGFJZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGlmICgoKF9hID0gdGFyZ2V0ID09PSBudWxsIHx8IHRhcmdldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0LmRhdGFzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZWxlY3RDdXN0b21Ecm9wZG93bklkKSA9PT0gZGF0YUlkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICBpZiAodGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5IHx8IHRhcmdldCA9PT0gZG9jdW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGFyZ2V0LnBhcmVudE5vZGUgfHwgdGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoIXBhcmVudClcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gZmluZEN1c3RvbURyb3Bkb3duRGF0YUlkKHBhcmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlbW92ZUZvY3VzID0gKGUpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0NsaWNrSW5zaWRlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBpc0NsaWNrSW5zaWRlLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRJc0ZvY3VzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcHJldilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaW5kQ3VzdG9tRHJvcGRvd25EYXRhSWQoZS50YXJnZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVtb3ZlRm9jdXMpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZW1vdmVGb2N1cyk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBfanN4KFNlbGVjdFdyYXBwZXIsIHsgbGFiZWw6IGxhYmVsLCBtZXNzYWdlOiBtZXNzYWdlLCByZXF1aXJlZDogcmVxdWlyZWQsIHByZWZpeENsczogcHJlZml4Q2xzLCB3cmFwcGVyQ2xzOiB3cmFwcGVyQ2xzLCBsYWJlbENsczogbGFiZWxDbHMsIG1lc3NhZ2VDbHM6IG1lc3NhZ2VDbHMsIHN1Y2Nlc3M6IHN1Y2Nlc3MsIGludmFsaWQ6IGludmFsaWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBzZWxlY3RSZWYsIGNsYXNzTmFtZTogc2VsZWN0Q2xzLCBjb250ZW50RWRpdGFibGU6ICFkaXNhYmxlZCA/IGVkaXRhYmxlIDogZmFsc2UsIGF1dG9Gb2N1czogZWRpdGFibGUsIFwiZGF0YS1wbGFjZWhvbGRlclwiOiBwbGFjZWhvbGRlciwgXCJkYXRhLXZhbHVlXCI6IHZhbHVlLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmICghZWRpdGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNDbGlja0luc2lkZS5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhwcmV2ID0+ICFwcmV2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25DbGljayA9PT0gbnVsbCB8fCBvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsaWNrKGUpO1xuICAgICAgICAgICAgfSwgb25JbnB1dDogZSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGUuY3VycmVudFRhcmdldC5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5pbm5lclRleHQgPSAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUodmFsKTtcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbIWRpc2FibGVkICYmIGVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiBzZWxlY3RlZFRlbXBsYXRlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlbGVjdGVkVGVtcGxhdGUoaXNGb2N1cylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1c3RvbS1wbGFjZWhvbGRlcicpLCBjaGlsZHJlbjogcGxhY2Vob2xkZXIgfSksIGVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiB0YWlsVGVtcGxhdGUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGFpbFRlbXBsYXRlKGlzRm9jdXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZXZyb25Eb3duJywgY29sb3I6ICcjMTMxMzEzJywgc2l6ZTogMjAsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ2N1c3RvbS10YWlsJywgaXNGb2N1cyA/IGNsYXNzZXMoJ2N1c3RvbS10YWlsLWZvY3VzJykgOiAnJykgfSldIH0pIH0pO1xufTtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSBwcm9wcyA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgaWQsIHJlZiwgbmFtZSwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgd3JhcHBlckNscywgbGFiZWxDbHMsIG1lc3NhZ2VDbHMsIHZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3VjY2VzcywgaW52YWxpZCwgZGlzYWJsZWQsIHBsYWNlaG9sZGVyLCBjbGFzc05hbWUgPSAnJywgbXVsdGlwbGUsIG9wdGlvbnMsIHBhbmVsQ2xhc3NOYW1lLCBkZWZhdWx0VmFsdWUsIGl0ZW1UZW1wbGF0ZSwgb25DaGFuZ2UsIG9uSGlkZSwgb25TaG93LCB1bnNlbGVjdGFibGUgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJpZFwiLCBcInJlZlwiLCBcIm5hbWVcIiwgXCJsYWJlbFwiLCBcIm1lc3NhZ2VcIiwgXCJyZXF1aXJlZFwiLCBcInByZWZpeENsc1wiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJ2YWx1ZVwiLCBcInNpemVcIiwgXCJzdWNjZXNzXCIsIFwiaW52YWxpZFwiLCBcImRpc2FibGVkXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJjbGFzc05hbWVcIiwgXCJtdWx0aXBsZVwiLCBcIm9wdGlvbnNcIiwgXCJwYW5lbENsYXNzTmFtZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIml0ZW1UZW1wbGF0ZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25IaWRlXCIsIFwib25TaG93XCIsIFwidW5zZWxlY3RhYmxlXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGUoKF9hID0gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCA/IHZhbHVlIDogZGVmYXVsdFZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsKTtcbiAgICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0hvdmVyLCBzZXRJc0hvdmVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNTY3JvbGxpbmcsIHNldElzU2Nyb2xsaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzZWxlY3RSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgX3JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWxlY3RDbHMgPSB1c2VNZW1vKCgpID0+IGNsYXNzZXModm9pZCAwLCBbXG4gICAgICAgIGNsYXNzZXMoc2l6ZSksXG4gICAgICAgIGlzT3BlbiA/IGNsYXNzZXMoJ3Nob3cnKSA6ICcnLFxuICAgICAgICBzdWNjZXNzID8gY2xhc3Nlcygnc3VjY2VzcycpIDogJycsXG4gICAgICAgIGludmFsaWQgPyBjbGFzc2VzKCdpbnZhbGlkJykgOiAnJyxcbiAgICAgICAgZGlzYWJsZWQgPyBjbGFzc2VzKCdkaXNhYmxlZCcpIDogJycsXG4gICAgICAgIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSA/IHNlbGVjdGVkLmxlbmd0aCA6IHNlbGVjdGVkKSA/IGNsYXNzZXMoJ2ZpbGxlZCcpIDogJycsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgIF0uam9pbignICcpKSwgW3NpemUsIGlzT3Blbiwgc3VjY2Vzcywgc2VsZWN0ZWQsIGludmFsaWQsIGRpc2FibGVkLCBjbGFzc05hbWVdKTtcbiAgICBjb25zdCBkZWJvdW5jZWRIYW5kbGVTY3JvbGwgPSBkZWJvdW5jZSgoKSA9PiBzZXRJc1Njcm9sbGluZyhmYWxzZSksIDUwMCk7XG4gICAgY29uc3QgU2VsZWN0Q29tcG9uZW50ID0gdXNlQ2FsbGJhY2soKHByb3BzKSA9PiBtdWx0aXBsZVxuICAgICAgICA/IF9qc3goTXVsdGlTZWxlY3QsIE9iamVjdC5hc3NpZ24oeyB1bnNlbGVjdGFibGU6IHVuc2VsZWN0YWJsZSwgc2hvd1NlbGVjdEFsbDogZmFsc2UsIGNoZWNrYm94SWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnY2hlY2snLCBzaXplOiAxMiwgY29sb3I6ICcjRkVGRUZFJyB9KSwgcmVtb3ZlSWNvbjogcHJvcHMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgb25DbGljaywgb25LZXlEb3duLCB0YWJJbmRleCB9ID0gcHJvcHMuaWNvblByb3BzO1xuICAgICAgICAgICAgICAgIHJldHVybiBfanN4KEljb25zLCB7IG5hbWU6ICdjbG9zZScsIHNpemU6IDE2LCBjb2xvcjogJyMxMzEzMTMnLCB0YWJJbmRleDogdGFiSW5kZXgsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ3Rva2VuLXJlbW92ZS1pY29uJyksIG9uQ2xpY2s6IG9uQ2xpY2ssIG9uS2V5RG93bjogb25LZXlEb3duIH0pO1xuICAgICAgICAgICAgfSwgcGFuZWxIZWFkZXJUZW1wbGF0ZTogb3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlckVsZW1lbnQsIHByb3BzIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE51bSA9IChfZCA9IChfYyA9IChfYiA9IChfYSA9IHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5tZXRhRGF0YSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnByb3BzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudmFsdWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5sZW5ndGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXInKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaGVhZGVyLWluZm8nKSwgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlci1pbmZvLWNvdW50JyksIGNoaWxkcmVuOiBbc2VsZWN0ZWROdW0sIFwiIHNlbGVjdGVkXCJdIH0pLCBfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlci1pbmZvLWNsZWFyJyksIG9uQ2xpY2s6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy51cGRhdGVNb2RlbChlLCBbXSwgW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtfanN4KEljb25zLCB7IG5hbWU6ICdjbG9zZScsIHNpemU6IDE2LCBjb2xvcjogJyNBRTAwMDAnLCB3cmFwcGVyQ2xzOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXItaW5mby1jbGVhci1pY29uJykgfSksIFwiQ2xlYXIgYWxsXCJdIH0pXSB9KSwgKF9lID0gZmlsdGVyRWxlbWVudCA9PT0gbnVsbCB8fCBmaWx0ZXJFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWx0ZXJFbGVtZW50LnByb3BzKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UuY2hpbGRyZW5dIH0pO1xuICAgICAgICAgICAgfSB9LCBwcm9wcykpXG4gICAgICAgIDogX2pzeChEcm9wZG93biwgT2JqZWN0LmFzc2lnbih7IGNvbGxhcHNlSWNvbjogbXVsdGlwbGUgPyB2b2lkIDAgOiAoKSA9PiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uVXAnLCBjb2xvcjogJyMxMzEzMTMnLCBzaXplOiAyMCB9KSB9LCBwcm9wcykpLCBbbXVsdGlwbGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhaXNFcXVhbChzZWxlY3RlZCwgdmFsdWUpKSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWVdKTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiAhPT0gbnVsbCAmJiByZWYgIT09IHZvaWQgMCA/IHJlZiA6IF9yZWYsICgpID0+IHNlbGVjdFJlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0V3JhcHBlciwgeyBsYWJlbDogbGFiZWwsIG1lc3NhZ2U6IG1lc3NhZ2UsIHJlcXVpcmVkOiByZXF1aXJlZCwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHdyYXBwZXJDbHM6IHdyYXBwZXJDbHMsIGxhYmVsQ2xzOiBsYWJlbENscywgbWVzc2FnZUNsczogbWVzc2FnZUNscywgc3VjY2Vzczogc3VjY2VzcywgaW52YWxpZDogaW52YWxpZCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBjaGlsZHJlbjogX2pzeChTZWxlY3RDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgaWQ6IGlkLCByZWY6IHNlbGVjdFJlZiwgbmFtZTogbmFtZSwgZmlsdGVyUGxhY2Vob2xkZXI6ICdTZWFyY2gnLCByZXF1aXJlZDogcmVxdWlyZWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgaW52YWxpZDogaW52YWxpZCwgb3B0aW9uczogb3B0aW9ucywgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCB2YWx1ZTogc2VsZWN0ZWQgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHNlbGVjdGVkLCBjbGFzc05hbWU6IHNlbGVjdENscywgaXRlbVRlbXBsYXRlOiAob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1pdGVtJyksIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbXVsdGlwbGUgJiYgdW5zZWxlY3RhYmxlID09PSAnb24nICYmIG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogaXRlbVRlbXBsYXRlID8gaXRlbVRlbXBsYXRlKG9wdGlvbikgOiBvcHRpb24ubGFiZWwgfSksIF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZWNrJywgc2l6ZTogMTYsIGNvbG9yOiAnIzA3MzM4NycgfSldIH0pO1xuICAgICAgICAgICAgfSwgZmlsdGVySWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnc2VhcmNoJywgc2l6ZTogMjAsIGNvbG9yOiAnIzEzMTMxMycsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ2ZpbHRlci1pY29uJykgfSksIHBhbmVsQ2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbCcsIFtcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBpc0hvdmVyICYmIGNsYXNzZXMoJ3BhbmVsLWhvdmVyJyksXG4gICAgICAgICAgICAgICAgaXNTY3JvbGxpbmcgJiYgY2xhc3NlcygncGFuZWwtc2Nyb2xsaW5nJyksXG4gICAgICAgICAgICAgICAgcmVzdC5hcHBlbmRUbyA9PT0gJ3NlbGYnICYmIGNsYXNzZXMoJ3BhbmVsLWFwcGVuZC1zZWxmJyksXG4gICAgICAgICAgICBdLmpvaW4oJyAnKSksIG9uQ2hhbmdlOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkKGUudmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgICAgICAgICB9LCBvbkhpZGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uSGlkZSA9PT0gbnVsbCB8fCBvbkhpZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uSGlkZSgpO1xuICAgICAgICAgICAgfSwgb25TaG93OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXNPcGVuKHRydWUpO1xuICAgICAgICAgICAgICAgIG9uU2hvdyA9PT0gbnVsbCB8fCBvblNob3cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2hvdygpO1xuICAgICAgICAgICAgfSwgZHJvcGRvd25JY29uOiAoKSA9PiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uRG93bicsIGNvbG9yOiAnIzEzMTMxMycsIHNpemU6IDIwIH0pLCBwdDoge1xuICAgICAgICAgICAgICAgIHdyYXBwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlZEhhbmRsZVNjcm9sbC5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldElzU2Nyb2xsaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VkSGFuZGxlU2Nyb2xsKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBhbmVsOiB7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gc2V0SXNIb3Zlcih0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlOiAoKSA9PiBzZXRJc0hvdmVyKGZhbHNlKSxcbiAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFN0YXJ0OiAoKSA9PiBzZXRJc0hvdmVyKHRydWUpLFxuICAgICAgICAgICAgICAgICAgICBvblRvdWNoRW5kOiAoKSA9PiBzZXRJc0hvdmVyKGZhbHNlKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IH0pKSB9KSk7XG59O1xuU2VsZWN0LkN1c3RvbURyb3Bkb3duID0gQ3VzdG9tRHJvcGRvd247XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
489
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsImlzRXF1YWwiLCJkZWJvdW5jZSIsIkRyb3Bkb3duIiwiTXVsdGlTZWxlY3QiLCJjbGFzc25hbWVzIiwiSWNvbnMiLCJTZWxlY3RXcmFwcGVyIiwicHJvcHMiLCJsYWJlbCIsIm1lc3NhZ2UiLCJyZXF1aXJlZCIsInByZWZpeENscyIsIndyYXBwZXJDbHMiLCJsYWJlbENscyIsIm1lc3NhZ2VDbHMiLCJzdWNjZXNzIiwiaW52YWxpZCIsImRpc2FibGVkIiwiY2hpbGRyZW4iLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiam9pbiIsInRyaW0iLCJDdXN0b21Ecm9wZG93biIsInJlZiIsImRhdGFJZCIsIl9wcm9wcyRwcmVmaXhDbHMiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJlZGl0YWJsZSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJGNsYXNzTmFtZSIsInNlbGVjdGVkVGVtcGxhdGUiLCJ0YWlsVGVtcGxhdGUiLCJvbkNsaWNrIiwib25Gb2N1cyIsIm9uQmx1ciIsImlzQ2xpY2tJbnNpZGUiLCJkYXRhSWRSZWYiLCJsYXN0Rm9jdXNSZWYiLCJzZWxlY3RSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ2YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc0ZvY3VzIiwic2V0SXNGb2N1cyIsInNlbGVjdENscyIsImZvY3VzIiwiYmx1ciIsImdldERPTU5vZGUiLCJjdXJyZW50IiwiZmluZEN1c3RvbURyb3Bkb3duRGF0YUlkIiwidGFyZ2V0IiwiX2EiLCJkYXRhc2V0Iiwic2VsZWN0Q3VzdG9tRHJvcGRvd25JZCIsImRvY3VtZW50IiwiYm9keSIsInBhcmVudCIsInBhcmVudE5vZGUiLCJwYXJlbnRFbGVtZW50IiwicmVtb3ZlRm9jdXMiLCJwcmV2IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250ZW50RWRpdGFibGUiLCJhdXRvRm9jdXMiLCJvbklucHV0IiwidmFsIiwiY3VycmVudFRhcmdldCIsImlubmVyVGV4dCIsIm5hbWUiLCJjb2xvciIsIlNlbGVjdCIsImlkIiwiX3Byb3BzJHByZWZpeENsczIiLCJfcHJvcHMkc2l6ZTIiLCJfcHJvcHMkY2xhc3NOYW1lMiIsIm11bHRpcGxlIiwib3B0aW9ucyIsInBhbmVsQ2xhc3NOYW1lIiwiZGVmYXVsdFZhbHVlIiwiaXRlbVRlbXBsYXRlIiwib25DaGFuZ2UiLCJvbkhpZGUiLCJvblNob3ciLCJ1bnNlbGVjdGFibGUiLCJyZXN0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZWxlY3RlZCIsInNldFNlbGVjdGVkIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJpc0hvdmVyIiwic2V0SXNIb3ZlciIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc1Njcm9sbGluZyIsInNldElzU2Nyb2xsaW5nIiwiX3JlZiIsIkFycmF5IiwiaXNBcnJheSIsImRlYm91bmNlZEhhbmRsZVNjcm9sbCIsInJlZnJlc2hET00iLCJfYiIsImVsZSIsImdldE92ZXJsYXkiLCJvcmlnaW5aSW5kZXgiLCJzdHlsZSIsInpJbmRleCIsInVuZGVmaW5lZCIsImNvbmNhdCIsInBhcnNlSW50Iiwic2V0VGltZW91dCIsIlNlbGVjdENvbXBvbmVudCIsImFzc2lnbiIsInNob3dTZWxlY3RBbGwiLCJjaGVja2JveEljb24iLCJyZW1vdmVJY29uIiwiX3Byb3BzJGljb25Qcm9wcyIsImljb25Qcm9wcyIsIm9uS2V5RG93biIsInRhYkluZGV4IiwicGFuZWxIZWFkZXJUZW1wbGF0ZSIsIl9jIiwiX2QiLCJfZSIsImZpbHRlckVsZW1lbnQiLCJzZWxlY3RlZE51bSIsIm1ldGFEYXRhIiwidXBkYXRlTW9kZWwiLCJjb2xsYXBzZUljb24iLCJoaWRlIiwic2hvdyIsImdldEVsZW1lbnQiLCJnZXRJbnB1dCIsImNsZWFyIiwiZ2V0Rm9jdXNJbnB1dCIsImdldFZpcnR1YWxTY3JvbGxlciIsImZpbHRlclBsYWNlaG9sZGVyIiwib3B0aW9uIiwiZmlsdGVySWNvbiIsImFwcGVuZFRvIiwiZHJvcGRvd25JY29uIiwicHQiLCJ3cmFwcGVyIiwib25TY3JvbGwiLCJjYW5jZWwiLCJwYW5lbCIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hFbmQiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FB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S0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQW5JLElBQUEsQ0FBQTJFLEVBQUEsQ0FBSTtNQUFBLENBQUE7TUFDekNvRixJQUFJLEVBQUUsU0FBTkEsSUFBSUEsQ0FBQSxFQUFPO1FBQUEsSUFBQXBGLEVBQUEsRUFBQXdELEVBQUE7UUFBQyxPQUFBLENBQUFBLEVBQUEsR0FBQSxDQUFBeEQsRUFBQSxHQUFBakIsU0FBUyxDQUFDYyxPQUFPLE1BQUEsSUFBQSxJQUFBRyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRW9GLElBQUksTUFBQSxJQUFBLElBQUE1QixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQW5JLElBQUEsQ0FBQTJFLEVBQUEsQ0FBSTtNQUFBLENBQUE7TUFDdkNxRixJQUFJLEVBQUUsU0FBTkEsSUFBSUEsQ0FBQSxFQUFPO1FBQUEsSUFBQXJGLEVBQUEsRUFBQXdELEVBQUE7UUFBQyxPQUFBLENBQUFBLEVBQUEsR0FBQSxDQUFBeEQsRUFBQSxHQUFBakIsU0FBUyxDQUFDYyxPQUFPLE1BQUEsSUFBQSxJQUFBRyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXFGLElBQUksTUFBQSxJQUFBLElBQUE3QixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQW5JLElBQUEsQ0FBQTJFLEVBQUEsQ0FBSTtNQUFBLENBQUE7TUFDdkNzRixVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBQSxFQUFPO1FBQUEsSUFBQXRGLEVBQUEsRUFBQXdELEVBQUE7UUFBQyxPQUFBLENBQUFBLEVBQUEsR0FBQSxDQUFBeEQsRUFBQSxHQUFBakIsU0FBUyxDQUFDYyxPQUFPLE1BQUEsSUFBQSxJQUFBRyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXNGLFVBQVUsTUFBQSxJQUFBLElBQUE5QixFQUFBLEtB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Q1ZpQyxVQUFVLENBQUM7VUFBQSxPQUFNVixVQUFVLENBQUEsQ0FBRTtRQUFBLEdBQUUsQ0FBQyxDQUFDO01BQ25DLENBQUM7TUFDRHdDLFlBQVksRUFBRSxTQUFkQSxZQUFZQSxDQUFBO1FBQUEsT0FBUW5LLElBQUEsQ0FBQ2UsS0FBSyxFQUFBO1VBQUN1RSxJQUFJLEVBQUMsYUFBYTtVQUFDQyxLQUFLLEVBQUMsU0FBUztVQUFDakQsSUFBSSxFQUFFO1FBQUUsQ0FBQSxDQUFJO01BQUE7TUFDMUU4SCxFQUFFLEVBQUU7UUFDRkMsT0FBTyxFQUFFO1VBQ1BDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFBLEVBQU87WUFDYjVDLHFCQUFxQixDQUFDNkMsTUFBTSxDQUFBLENBQUU7WUFDOUJqRCxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3BCSSxxQkFBcUIsQ0FBQSxDQUFFO1VBQ3pCO1FEOUtJLENDK0tMO1FBQ0Q4QyxLQUFLLEVBQUU7VUFDTEMsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7WUFBQSxPQUFRdkQsVUFBVSxDQUFDLElBQUksQ0FBQztVQUFBO1VBQ3BDd0QsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7WUFBQSxPQUFReEQsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUFBO1VBQ3JDeUQsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7WUFBQSxPQUFRekQsVUFBVSxDQUFDLElBQUksQ0FBQztVQUFBO1VBQ3BDMEQsVUFBVSxFQUFFLFNBQVpBLFVBQVVBLENBQUE7WUFBQSxPQUFRMUQsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUFBO1FEOUsvQjtNQUNKO0lDK0tILENBQUEsQ0FBQTtFQUNELENBQUEsQ0FDWTtBQUVwQixDQUFDO0FBRUQxQixNQUFNLENBQUN2RCxjQUFjLEdBQUdBLGNBQWM7QUFFdEMsNEJBQWU5QixJQUFJLENBQUNxRixNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZVJlZiwgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2ssIHVzZUltcGVyYXRpdmVIYW5kbGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2guaXNlcXVhbCc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoLmRlYm91bmNlJztcbmltcG9ydCB7IERyb3Bkb3duIH0gZnJvbSAncHJpbWVyZWFjdC9kcm9wZG93bic7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdCB9IGZyb20gJ3ByaW1lcmVhY3QvbXVsdGlzZWxlY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmNvbnN0IFNlbGVjdFdyYXBwZXIgPSBtZW1vKHByb3BzID0+IHtcbiAgICBjb25zdCB7IGxhYmVsLCBtZXNzYWdlLCByZXF1aXJlZCwgcHJlZml4Q2xzLCB3cmFwcGVyQ2xzLCBsYWJlbENscywgbWVzc2FnZUNscywgc3VjY2VzcywgaW52YWxpZCwgZGlzYWJsZWQsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICByZXR1cm4gX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3dyYXBwZXInLCB3cmFwcGVyQ2xzKSwgY2hpbGRyZW46IFtsYWJlbCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnLCBbcmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHNdLmpvaW4oJyAnKSksIGNoaWxkcmVuOiBsYWJlbCB9KSwgY2hpbGRyZW4sIG1lc3NhZ2UgJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBbXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPyBjbGFzc2VzKCdtZXNzYWdlLXN1Y2Nlc3MnKSA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkID8gY2xhc3NlcygnbWVzc2FnZS1lcnJvcicpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VDbHNcbiAgICAgICAgICAgICAgICBdLmpvaW4oJyAnKS50cmltKCkpLCBjaGlsZHJlbjogbWVzc2FnZSB9KV0gfSk7XG59KTtcbmNvbnN0IEN1c3RvbURyb3Bkb3duID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgcmVmLCBkYXRhSWQsIGxhYmVsLCBtZXNzYWdlLCByZXF1aXJlZCwgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBtZXNzYWdlQ2xzLCBzaXplID0gJ2xhcmdlJywgc3VjY2VzcywgaW52YWxpZCwgZGlzYWJsZWQsIGVkaXRhYmxlLCBwbGFjZWhvbGRlciA9ICcnLCBjbGFzc05hbWUgPSAnJywgc2VsZWN0ZWRUZW1wbGF0ZSwgdGFpbFRlbXBsYXRlLCBvbkNsaWNrLCBvbkZvY3VzLCBvbkJsdXIsIH0gPSBwcm9wcztcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGlzQ2xpY2tJbnNpZGUgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGRhdGFJZFJlZiA9IHVzZVJlZihkYXRhSWQpO1xuICAgIGNvbnN0IGxhc3RGb2N1c1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3Qgc2VsZWN0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzZWxlY3RDbHMgPSB1c2VNZW1vKCgpID0+IGNsYXNzZXModm9pZCAwLCBbXG4gICAgICAgIGNsYXNzZXMoc2l6ZSksXG4gICAgICAgIGNsYXNzZXMoJ2N1c3RvbScpLFxuICAgICAgICBpc0ZvY3VzID8gY2xhc3NlcygnZm9jdXMnKSA6ICcnLFxuICAgICAgICBzdWNjZXNzID8gY2xhc3Nlcygnc3VjY2VzcycpIDogJycsXG4gICAgICAgIGludmFsaWQgPyBjbGFzc2VzKCdpbnZhbGlkJykgOiAnJyxcbiAgICAgICAgZGlzYWJsZWQgPyBjbGFzc2VzKCdkaXNhYmxlZCcpIDogJycsXG4gICAgICAgIGVkaXRhYmxlID8gY2xhc3NlcygnZWRpdGFibGUnKSA6ICcnLFxuICAgICAgICBjbGFzc05hbWVcbiAgICBdLmpvaW4oJyAnKSksIFtzaXplLCBpc0ZvY3VzLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgZWRpdGFibGUsIGNsYXNzTmFtZV0pO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBmb2N1czogKCkgPT4gc2V0SXNGb2N1cyh0cnVlKSxcbiAgICAgICAgYmx1cjogKCkgPT4gc2V0SXNGb2N1cyhmYWxzZSksXG4gICAgICAgIGdldERPTU5vZGU6ICgpID0+IHNlbGVjdFJlZi5jdXJyZW50XG4gICAgfSksIFtyZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkYXRhSWRSZWYuY3VycmVudCA9IGRhdGFJZDtcbiAgICB9LCBbZGF0YUlkXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGlzRm9jdXMgIT09IGxhc3RGb2N1c1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBsYXN0Rm9jdXNSZWYuY3VycmVudCA9IGlzRm9jdXM7XG4gICAgICAgICAgICBpZiAoaXNGb2N1cykge1xuICAgICAgICAgICAgICAgIG9uRm9jdXMgPT09IG51bGwgfHwgb25Gb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Gb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbaXNGb2N1cywgb25Gb2N1cywgb25CbHVyXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZmluZEN1c3RvbURyb3Bkb3duRGF0YUlkID0gKHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgaWYgKCFkYXRhSWRSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBpZiAoKChfYSA9IHRhcmdldCA9PT0gbnVsbCB8fCB0YXJnZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRhcmdldC5kYXRhc2V0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2VsZWN0Q3VzdG9tRHJvcGRvd25JZCkgPT09IGRhdGFJZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSB8fCB0YXJnZXQgPT09IGRvY3VtZW50KVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRhcmdldC5wYXJlbnROb2RlIHx8IHRhcmdldC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgaWYgKCFwYXJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIGZpbmRDdXN0b21Ecm9wZG93bkRhdGFJZChwYXJlbnQpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZW1vdmVGb2N1cyA9IChlKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNDbGlja0luc2lkZS5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgaXNDbGlja0luc2lkZS5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0SXNGb2N1cyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXByZXYpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmluZEN1c3RvbURyb3Bkb3duRGF0YUlkKGUudGFyZ2V0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlbW92ZUZvY3VzKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVtb3ZlRm9jdXMpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gX2pzeChTZWxlY3RXcmFwcGVyLCB7IGxhYmVsOiBsYWJlbCwgbWVzc2FnZTogbWVzc2FnZSwgcmVxdWlyZWQ6IHJlcXVpcmVkLCBwcmVmaXhDbHM6IHByZWZpeENscywgd3JhcHBlckNsczogd3JhcHBlckNscywgbGFiZWxDbHM6IGxhYmVsQ2xzLCBtZXNzYWdlQ2xzOiBtZXNzYWdlQ2xzLCBzdWNjZXNzOiBzdWNjZXNzLCBpbnZhbGlkOiBpbnZhbGlkLCBkaXNhYmxlZDogZGlzYWJsZWQsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IHJlZjogc2VsZWN0UmVmLCBjbGFzc05hbWU6IHNlbGVjdENscywgY29udGVudEVkaXRhYmxlOiAhZGlzYWJsZWQgPyBlZGl0YWJsZSA6IGZhbHNlLCBhdXRvRm9jdXM6IGVkaXRhYmxlLCBcImRhdGEtcGxhY2Vob2xkZXJcIjogcGxhY2Vob2xkZXIsIFwiZGF0YS12YWx1ZVwiOiB2YWx1ZSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzQ2xpY2tJbnNpZGUuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXMocHJldiA9PiAhcHJldik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2sgPT09IG51bGwgfHwgb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbGljayhlKTtcbiAgICAgICAgICAgIH0sIG9uSW5wdXQ6IGUgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB2YWwgPSBlLmN1cnJlbnRUYXJnZXQuaW5uZXJUZXh0O1xuICAgICAgICAgICAgICAgIGlmICh2YWwgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuaW5uZXJUZXh0ID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKHZhbCk7XG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogWyFkaXNhYmxlZCAmJiBlZGl0YWJsZVxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2Ygc2VsZWN0ZWRUZW1wbGF0ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWxlY3RlZFRlbXBsYXRlKGlzRm9jdXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXN0b20tcGxhY2Vob2xkZXInKSwgY2hpbGRyZW46IHBsYWNlaG9sZGVyIH0pLCBlZGl0YWJsZVxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgdGFpbFRlbXBsYXRlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRhaWxUZW1wbGF0ZShpc0ZvY3VzKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uRG93bicsIGNvbG9yOiAnIzEzMTMxMycsIHNpemU6IDIwLCB3cmFwcGVyQ2xzOiBjbGFzc2VzKCdjdXN0b20tdGFpbCcsIGlzRm9jdXMgPyBjbGFzc2VzKCdjdXN0b20tdGFpbC1mb2N1cycpIDogJycpIH0pXSB9KSB9KTtcbn07XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gcHJvcHMgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IGlkLCByZWYsIG5hbWUsIGxhYmVsLCBtZXNzYWdlLCByZXF1aXJlZCwgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBtZXNzYWdlQ2xzLCB2YWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN1Y2Nlc3MsIGludmFsaWQsIGRpc2FibGVkLCBwbGFjZWhvbGRlciwgY2xhc3NOYW1lID0gJycsIG11bHRpcGxlLCBvcHRpb25zLCBwYW5lbENsYXNzTmFtZSwgZGVmYXVsdFZhbHVlLCBpdGVtVGVtcGxhdGUsIG9uQ2hhbmdlLCBvbkhpZGUsIG9uU2hvdywgdW5zZWxlY3RhYmxlIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiaWRcIiwgXCJyZWZcIiwgXCJuYW1lXCIsIFwibGFiZWxcIiwgXCJtZXNzYWdlXCIsIFwicmVxdWlyZWRcIiwgXCJwcmVmaXhDbHNcIiwgXCJ3cmFwcGVyQ2xzXCIsIFwibGFiZWxDbHNcIiwgXCJtZXNzYWdlQ2xzXCIsIFwidmFsdWVcIiwgXCJzaXplXCIsIFwic3VjY2Vzc1wiLCBcImludmFsaWRcIiwgXCJkaXNhYmxlZFwiLCBcInBsYWNlaG9sZGVyXCIsIFwiY2xhc3NOYW1lXCIsIFwibXVsdGlwbGVcIiwgXCJvcHRpb25zXCIsIFwicGFuZWxDbGFzc05hbWVcIiwgXCJkZWZhdWx0VmFsdWVcIiwgXCJpdGVtVGVtcGxhdGVcIiwgXCJvbkNoYW5nZVwiLCBcIm9uSGlkZVwiLCBcIm9uU2hvd1wiLCBcInVuc2VsZWN0YWJsZVwiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZVN0YXRlKChfYSA9IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCk7XG4gICAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNIb3Zlciwgc2V0SXNIb3Zlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2VsZWN0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IF9yZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VsZWN0Q2xzID0gdXNlTWVtbygoKSA9PiBjbGFzc2VzKHZvaWQgMCwgW1xuICAgICAgICBjbGFzc2VzKHNpemUpLFxuICAgICAgICBpc09wZW4gPyBjbGFzc2VzKCdzaG93JykgOiAnJyxcbiAgICAgICAgc3VjY2VzcyA/IGNsYXNzZXMoJ3N1Y2Nlc3MnKSA6ICcnLFxuICAgICAgICBpbnZhbGlkID8gY2xhc3NlcygnaW52YWxpZCcpIDogJycsXG4gICAgICAgIGRpc2FibGVkID8gY2xhc3NlcygnZGlzYWJsZWQnKSA6ICcnLFxuICAgICAgICAoQXJyYXkuaXNBcnJheShzZWxlY3RlZCkgPyBzZWxlY3RlZC5sZW5ndGggOiBzZWxlY3RlZCkgPyBjbGFzc2VzKCdmaWxsZWQnKSA6ICcnLFxuICAgICAgICBjbGFzc05hbWVcbiAgICBdLmpvaW4oJyAnKSksIFtzaXplLCBpc09wZW4sIHN1Y2Nlc3MsIHNlbGVjdGVkLCBpbnZhbGlkLCBkaXNhYmxlZCwgY2xhc3NOYW1lXSk7XG4gICAgY29uc3QgZGVib3VuY2VkSGFuZGxlU2Nyb2xsID0gZGVib3VuY2UoKCkgPT4gc2V0SXNTY3JvbGxpbmcoZmFsc2UpLCA1MDApO1xuICAgIGNvbnN0IHJlZnJlc2hET00gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGVsZSA9IChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0T3ZlcmxheSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICBpZiAoIWVsZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgb3JpZ2luWkluZGV4ID0gZWxlLnN0eWxlLnpJbmRleDtcbiAgICAgICAgaWYgKG9yaWdpblpJbmRleCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVsZS5zdHlsZS56SW5kZXggPSBgJHtwYXJzZUludChvcmlnaW5aSW5kZXgpICsgMX1gO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZWxlLnN0eWxlLnpJbmRleCA9IG9yaWdpblpJbmRleDtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IFNlbGVjdENvbXBvbmVudCA9IHVzZUNhbGxiYWNrKChwcm9wcykgPT4gbXVsdGlwbGVcbiAgICAgICAgPyBfanN4KE11bHRpU2VsZWN0LCBPYmplY3QuYXNzaWduKHsgdW5zZWxlY3RhYmxlOiB1bnNlbGVjdGFibGUsIHNob3dTZWxlY3RBbGw6IGZhbHNlLCBjaGVja2JveEljb246IF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZWNrJywgc2l6ZTogMTIsIGNvbG9yOiAnI0ZFRkVGRScgfSksIHJlbW92ZUljb246IHByb3BzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG9uQ2xpY2ssIG9uS2V5RG93biwgdGFiSW5kZXggfSA9IHByb3BzLmljb25Qcm9wcztcbiAgICAgICAgICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiAnY2xvc2UnLCBzaXplOiAxNiwgY29sb3I6ICcjMTMxMzEzJywgdGFiSW5kZXg6IHRhYkluZGV4LCB3cmFwcGVyQ2xzOiBjbGFzc2VzKCd0b2tlbi1yZW1vdmUtaWNvbicpLCBvbkNsaWNrOiBvbkNsaWNrLCBvbktleURvd246IG9uS2V5RG93biB9KTtcbiAgICAgICAgICAgIH0sIHBhbmVsSGVhZGVyVGVtcGxhdGU6IG9wdGlvbnMgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJFbGVtZW50LCBwcm9wcyB9ID0gb3B0aW9ucztcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROdW0gPSAoX2QgPSAoX2MgPSAoX2IgPSAoX2EgPSBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMubWV0YURhdGEpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5wcm9wcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnZhbHVlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubGVuZ3RoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICAgICAgICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaGVhZGVyJyksIGNoaWxkcmVuOiBbX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlci1pbmZvJyksIGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXItaW5mby1jb3VudCcpLCBjaGlsZHJlbjogW3NlbGVjdGVkTnVtLCBcIiBzZWxlY3RlZFwiXSB9KSwgX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXItaW5mby1jbGVhcicpLCBvbkNsaWNrOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMudXBkYXRlTW9kZWwoZSwgW10sIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbX2pzeChJY29ucywgeyBuYW1lOiAnY2xvc2UnLCBzaXplOiAxNiwgY29sb3I6ICcjQUUwMDAwJywgd3JhcHBlckNsczogY2xhc3NlcygncGFuZWwtaGVhZGVyLWluZm8tY2xlYXItaWNvbicpIH0pLCBcIkNsZWFyIGFsbFwiXSB9KV0gfSksIChfZSA9IGZpbHRlckVsZW1lbnQgPT09IG51bGwgfHwgZmlsdGVyRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlsdGVyRWxlbWVudC5wcm9wcykgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLmNoaWxkcmVuXSB9KTtcbiAgICAgICAgICAgIH0gfSwgcHJvcHMpKVxuICAgICAgICA6IF9qc3goRHJvcGRvd24sIE9iamVjdC5hc3NpZ24oeyBjb2xsYXBzZUljb246IG11bHRpcGxlID8gdm9pZCAwIDogKCkgPT4gX2pzeChJY29ucywgeyBuYW1lOiAnY2hldnJvblVwJywgY29sb3I6ICcjMTMxMzEzJywgc2l6ZTogMjAgfSkgfSwgcHJvcHMpKSwgW211bHRpcGxlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWlzRXF1YWwoc2VsZWN0ZWQsIHZhbHVlKSkge1xuICAgICAgICAgICAgc2V0U2VsZWN0ZWQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfSwgW3ZhbHVlXSk7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdm9pZCAwID8gcmVmIDogX3JlZiwgKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gKG11bHRpcGxlID8ge1xuICAgICAgICAgICAgcHJvcHM6IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucHJvcHMsXG4gICAgICAgICAgICBmb2N1czogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgaGlkZTogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oaWRlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBzaG93OiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNob3cpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldEVsZW1lbnQ6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgZ2V0SW5wdXQ6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0SW5wdXQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldE92ZXJsYXk6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0T3ZlcmxheSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgcHJvcHM6IChfYiA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucHJvcHMsXG4gICAgICAgICAgICBjbGVhcjogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbGVhcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgZm9jdXM6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGhpZGU6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaGlkZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgc2hvdzogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zaG93KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBnZXRFbGVtZW50OiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEVsZW1lbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldElucHV0OiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldElucHV0KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBnZXRPdmVybGF5OiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldE92ZXJsYXkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldEZvY3VzSW5wdXQ6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0Rm9jdXNJbnB1dCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgZ2V0VmlydHVhbFNjcm9sbGVyOiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldFZpcnR1YWxTY3JvbGxlcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICB9KTtcbiAgICB9LCBbbXVsdGlwbGVdKTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0V3JhcHBlciwgeyBsYWJlbDogbGFiZWwsIG1lc3NhZ2U6IG1lc3NhZ2UsIHJlcXVpcmVkOiByZXF1aXJlZCwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHdyYXBwZXJDbHM6IHdyYXBwZXJDbHMsIGxhYmVsQ2xzOiBsYWJlbENscywgbWVzc2FnZUNsczogbWVzc2FnZUNscywgc3VjY2Vzczogc3VjY2VzcywgaW52YWxpZDogaW52YWxpZCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBjaGlsZHJlbjogX2pzeChTZWxlY3RDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgaWQ6IGlkLCByZWY6IHNlbGVjdFJlZiwgbmFtZTogbmFtZSwgZmlsdGVyUGxhY2Vob2xkZXI6ICdTZWFyY2gnLCByZXF1aXJlZDogcmVxdWlyZWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgaW52YWxpZDogaW52YWxpZCwgb3B0aW9uczogb3B0aW9ucywgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCB2YWx1ZTogc2VsZWN0ZWQgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHNlbGVjdGVkLCBjbGFzc05hbWU6IHNlbGVjdENscywgaXRlbVRlbXBsYXRlOiAob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1pdGVtJyksIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbXVsdGlwbGUgJiYgdW5zZWxlY3RhYmxlID09PSAnb24nICYmIG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogaXRlbVRlbXBsYXRlID8gaXRlbVRlbXBsYXRlKG9wdGlvbikgOiBvcHRpb24ubGFiZWwgfSksIF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZWNrJywgc2l6ZTogMTYsIGNvbG9yOiAnIzA3MzM4NycgfSldIH0pO1xuICAgICAgICAgICAgfSwgZmlsdGVySWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnc2VhcmNoJywgc2l6ZTogMjAsIGNvbG9yOiAnIzEzMTMxMycsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ2ZpbHRlci1pY29uJykgfSksIHBhbmVsQ2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbCcsIFtcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBpc0hvdmVyICYmIGNsYXNzZXMoJ3BhbmVsLWhvdmVyJyksXG4gICAgICAgICAgICAgICAgaXNTY3JvbGxpbmcgJiYgY2xhc3NlcygncGFuZWwtc2Nyb2xsaW5nJyksXG4gICAgICAgICAgICAgICAgcmVzdC5hcHBlbmRUbyA9PT0gJ3NlbGYnICYmIGNsYXNzZXMoJ3BhbmVsLWFwcGVuZC1zZWxmJyksXG4gICAgICAgICAgICBdLmpvaW4oJyAnKSksIG9uQ2hhbmdlOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkKGUudmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgICAgICAgICB9LCBvbkhpZGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uSGlkZSA9PT0gbnVsbCB8fCBvbkhpZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uSGlkZSgpO1xuICAgICAgICAgICAgfSwgb25TaG93OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXNPcGVuKHRydWUpO1xuICAgICAgICAgICAgICAgIG9uU2hvdyA9PT0gbnVsbCB8fCBvblNob3cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2hvdygpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVmcmVzaERPTSgpLCAwKTtcbiAgICAgICAgICAgIH0sIGRyb3Bkb3duSWNvbjogKCkgPT4gX2pzeChJY29ucywgeyBuYW1lOiAnY2hldnJvbkRvd24nLCBjb2xvcjogJyMxMzEzMTMnLCBzaXplOiAyMCB9KSwgcHQ6IHtcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiB7XG4gICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZWRIYW5kbGVTY3JvbGwuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Njcm9sbGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlZEhhbmRsZVNjcm9sbCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYW5lbDoge1xuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IHNldElzSG92ZXIodHJ1ZSksXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZTogKCkgPT4gc2V0SXNIb3ZlcihmYWxzZSksXG4gICAgICAgICAgICAgICAgICAgIG9uVG91Y2hTdGFydDogKCkgPT4gc2V0SXNIb3Zlcih0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgb25Ub3VjaEVuZDogKCkgPT4gc2V0SXNIb3ZlcihmYWxzZSksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB9KSkgfSkpO1xufTtcblNlbGVjdC5DdXN0b21Ecm9wZG93biA9IEN1c3RvbURyb3Bkb3duO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3QpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==