@1money/component-ui 0.0.99 → 0.0.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/business/Dialog/VerificationDialog/VerificationDialog.js +38 -39
- package/es/business/Dialog/variants/LoadingDialog.js +17 -17
- package/es/business/Filter/DateRange/DateRange.js +14 -14
- package/es/business/Select/Country/CountrySelect.js +71 -40
- package/es/business/Select/Country/interface.d.ts +31 -15
- package/es/business/Select/Country/style/CountrySelect.css +33 -0
- package/es/business/Select/Country/style/css.js +2 -0
- package/es/business/Select/Country/style/index.d.ts +1 -0
- package/es/business/Select/Country/style/index.js +2 -0
- package/es/business/shared/formCore/useSubmitAction.js +19 -19
- package/es/components/Icons/Illustrations.js +15 -15
- package/es/components/Notification/NotificationStatic.js +27 -32
- package/es/components/ProForm/ProForm.js +47 -51
- package/es/components/ProForm/Submitter.js +8 -8
- package/es/components/ProForm/core/hooks/useForm.js +77 -88
- package/es/components/ProForm/core/runRules.js +56 -61
- package/es/components/ProForm/hooks/useFieldRequest.js +19 -19
- package/es/components/ProForm/layouts/useOverlayForm.js +9 -11
- package/es/components/ProTable/ProTable.js +8 -8
- package/es/components/ProTable/useFetchData.js +23 -23
- package/es/components/Select/SelectOptionContent.js +8 -1
- package/es/components/Select/interface.d.ts +9 -0
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +7 -0
- package/es/components/Spinner/Spinner.js +11 -11
- package/es/components/Table/internal/kernel/Table.js +8 -8
- package/es/index.css +1 -1
- package/lib/business/Dialog/BaseDialog/BaseDialog.js +2 -3
- package/lib/business/Dialog/Descriptions/Descriptions.js +2 -3
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +2 -3
- package/lib/business/Dialog/FormDialog/FormDialog.js +2 -3
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +39 -41
- package/lib/business/Dialog/variants/LoadingDialog.js +18 -19
- package/lib/business/FieldList/index.js +2 -3
- package/lib/business/Filter/DateRange/DateRange.js +14 -14
- package/lib/business/Select/Country/CountrySelect.js +71 -40
- package/lib/business/Select/Country/interface.d.ts +31 -15
- package/lib/business/Select/Country/style/CountrySelect.css +33 -0
- package/lib/business/Select/Country/style/css.js +4 -0
- package/lib/business/Select/Country/style/index.d.ts +1 -0
- package/lib/business/Select/Country/style/index.js +4 -0
- package/lib/business/shared/formCore/useSubmitAction.js +19 -19
- package/lib/components/Accordion/Accordion.js +2 -3
- package/lib/components/Accordion/index.js +2 -3
- package/lib/components/ActionBar/ActionBar.js +2 -3
- package/lib/components/Alert/Alert.js +2 -3
- package/lib/components/Alert/index.js +2 -3
- package/lib/components/Button/Button.js +2 -3
- package/lib/components/Button/index.js +2 -3
- package/lib/components/Calendar/Calendar.js +2 -3
- package/lib/components/Calendar/index.js +2 -3
- package/lib/components/Carousel/Carousel.js +2 -3
- package/lib/components/Carousel/index.js +2 -3
- package/lib/components/Cell/Cell.js +2 -3
- package/lib/components/Cell/index.js +2 -3
- package/lib/components/Checkbox/BaseCheckbox.js +2 -3
- package/lib/components/Checkbox/Checkbox.js +2 -3
- package/lib/components/Checkbox/CheckboxGroup.js +2 -3
- package/lib/components/Checkbox/index.js +2 -3
- package/lib/components/CoachMark/CoachMark.js +2 -3
- package/lib/components/CoachMark/index.js +2 -3
- package/lib/components/Copy/Clipboard.js +2 -3
- package/lib/components/Copy/Copy.js +2 -3
- package/lib/components/Copy/index.js +2 -3
- package/lib/components/Dialog/index.js +2 -3
- package/lib/components/Divider/Divider.js +2 -3
- package/lib/components/Drawer/Drawer.js +2 -3
- package/lib/components/Empty/Empty.js +2 -3
- package/lib/components/Empty/index.js +2 -3
- package/lib/components/Flex/Flex.js +2 -3
- package/lib/components/FormLayout/FormLayout.js +2 -3
- package/lib/components/Grid/Col.js +2 -3
- package/lib/components/Grid/Row.js +2 -3
- package/lib/components/Icons/Illustrations.js +15 -15
- package/lib/components/Icons/Logo.js +2 -3
- package/lib/components/Icons/Wrapper.js +2 -3
- package/lib/components/Icons/index.js +2 -3
- package/lib/components/Input/Amount/Amount.js +2 -3
- package/lib/components/Input/Amount/index.js +2 -3
- package/lib/components/Input/FieldShell/FieldShell.js +2 -3
- package/lib/components/Input/FieldShell/index.js +2 -3
- package/lib/components/Input/Input/Input.js +2 -3
- package/lib/components/Input/Input/index.js +2 -3
- package/lib/components/Input/Mask/Mask.js +2 -3
- package/lib/components/Input/Mask/index.js +2 -3
- package/lib/components/Input/OTP/index.js +2 -3
- package/lib/components/Input/Password/Password.js +2 -3
- package/lib/components/Input/Password/index.js +2 -3
- package/lib/components/Input/Search/Search.js +2 -3
- package/lib/components/Input/Search/index.js +2 -3
- package/lib/components/Input/TextArea/TextArea.js +2 -3
- package/lib/components/Input/TextArea/index.js +2 -3
- package/lib/components/Input/Trade/Trade.js +2 -3
- package/lib/components/Input/Trade/index.js +2 -3
- package/lib/components/Input/index.js +2 -3
- package/lib/components/Link/Link.js +2 -3
- package/lib/components/Link/index.js +2 -3
- package/lib/components/Navigation/Nav.js +2 -3
- package/lib/components/Navigation/Navigation.js +2 -3
- package/lib/components/Navigation/NavigationStepper.js +2 -3
- package/lib/components/Navigation/index.js +2 -3
- package/lib/components/Notification/Notification.js +2 -3
- package/lib/components/Notification/NotificationStatic.js +28 -34
- package/lib/components/Notification/index.js +2 -3
- package/lib/components/Pagination/Pagination.js +2 -3
- package/lib/components/Pagination/index.js +2 -3
- package/lib/components/PanelLayout/PanelLayout.js +2 -3
- package/lib/components/Popconfirm/Popconfirm.js +2 -3
- package/lib/components/Popconfirm/index.js +2 -3
- package/lib/components/Portal/index.js +2 -3
- package/lib/components/ProForm/ProForm.js +48 -53
- package/lib/components/ProForm/ProFormDependency.js +2 -3
- package/lib/components/ProForm/ProFormItem.js +2 -3
- package/lib/components/ProForm/Submitter.js +8 -8
- package/lib/components/ProForm/core/devWarning.js +2 -3
- package/lib/components/ProForm/core/hooks/useForm.js +78 -90
- package/lib/components/ProForm/core/runRules.js +56 -61
- package/lib/components/ProForm/core/useFormItem.js +2 -3
- package/lib/components/ProForm/fields/ProFormFieldSet.js +2 -3
- package/lib/components/ProForm/hooks/useFieldRequest.js +19 -19
- package/lib/components/ProForm/layouts/QueryFilter.js +2 -3
- package/lib/components/ProForm/layouts/useOverlayForm.js +10 -13
- package/lib/components/ProTable/ProTable.js +8 -8
- package/lib/components/ProTable/index.js +2 -3
- package/lib/components/ProTable/useFetchData.js +23 -23
- package/lib/components/Progress/Progress.js +2 -3
- package/lib/components/Progress/index.js +2 -3
- package/lib/components/Radio/Radio.js +2 -3
- package/lib/components/Radio/RadioGroup.js +2 -3
- package/lib/components/Radio/index.js +2 -3
- package/lib/components/ResizeObserver/Collection.js +2 -3
- package/lib/components/ResizeObserver/ResizeObserver.js +2 -3
- package/lib/components/ResizeObserver/SingleObserver/index.js +2 -3
- package/lib/components/ResizeObserver/useResizeObserver.js +2 -3
- package/lib/components/ResizeObserver/utils/reactUtil.js +2 -3
- package/lib/components/Segment/Segment.js +2 -3
- package/lib/components/Segment/index.js +2 -3
- package/lib/components/Select/Select.js +2 -3
- package/lib/components/Select/SelectCustom.js +2 -3
- package/lib/components/Select/SelectOptionContent.js +8 -1
- package/lib/components/Select/interface.d.ts +9 -0
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +7 -0
- package/lib/components/Skeleton/Skeleton.js +2 -3
- package/lib/components/Skeleton/index.js +2 -3
- package/lib/components/Slider/Slider.js +2 -3
- package/lib/components/Slider/index.js +2 -3
- package/lib/components/Space/Space.js +2 -3
- package/lib/components/Spinner/Spinner.js +12 -13
- package/lib/components/Spinner/index.js +2 -3
- package/lib/components/Step/Step.js +2 -3
- package/lib/components/Step/index.js +2 -3
- package/lib/components/Switch/Switch.js +2 -3
- package/lib/components/Switch/index.js +2 -3
- package/lib/components/Table/core/useTableSetup.js +2 -3
- package/lib/components/Table/internal/index.js +2 -3
- package/lib/components/Table/internal/kernel/Body/BodyRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/ExpandedRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/MeasureCell.js +2 -3
- package/lib/components/Table/internal/kernel/Body/MeasureRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/index.js +2 -3
- package/lib/components/Table/internal/kernel/Cell/index.js +2 -3
- package/lib/components/Table/internal/kernel/Cell/useCellRender.js +2 -3
- package/lib/components/Table/internal/kernel/ColGroup.js +2 -3
- package/lib/components/Table/internal/kernel/FixedHolder/index.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/Cell.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/Row.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/SummaryContext.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/index.js +2 -3
- package/lib/components/Table/internal/kernel/Header/Header.js +2 -3
- package/lib/components/Table/internal/kernel/Header/HeaderRow.js +2 -3
- package/lib/components/Table/internal/kernel/Panel/index.js +2 -3
- package/lib/components/Table/internal/kernel/Table.js +9 -10
- package/lib/components/Table/internal/kernel/VirtualTable/BodyGrid.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/BodyLine.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/VirtualCell.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +2 -3
- package/lib/components/Table/internal/kernel/context/PerfContext.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useColumns/index.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useColumns/useWidthColumns.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useExpand.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useFixedInfo.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useFlattenRecords.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useHover.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useRenderTimes.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useSticky.js +2 -3
- package/lib/components/Table/internal/kernel/index.js +2 -3
- package/lib/components/Table/internal/kernel/selector-context/Immutable.js +2 -3
- package/lib/components/Table/internal/kernel/selector-context/context.js +2 -3
- package/lib/components/Table/internal/kernel/stickyScrollBar.js +2 -3
- package/lib/components/Table/internal/kernel/utils/expandUtil.js +2 -3
- package/lib/components/Table/internal/kernel/utils/useMemo.js +2 -3
- package/lib/components/Tabs/Tabs.js +2 -3
- package/lib/components/Tabs/index.js +2 -3
- package/lib/components/Tag/Tag.js +2 -3
- package/lib/components/Tag/index.js +2 -3
- package/lib/components/Tooltip/Tooltip.js +2 -3
- package/lib/components/Tooltip/index.js +2 -3
- package/lib/components/Tour/index.js +2 -3
- package/lib/components/Trigger/Trigger.js +2 -3
- package/lib/components/Typography/index.js +2 -3
- package/lib/components/Typography/utils.js +2 -3
- package/lib/components/Upload/Upload.js +2 -3
- package/lib/components/Upload/UploadFileBar.js +2 -3
- package/lib/components/Upload/index.js +2 -3
- package/lib/components/VirtualList/Filler.js +2 -3
- package/lib/components/VirtualList/Item.js +2 -3
- package/lib/components/VirtualList/ScrollBar.js +2 -3
- package/lib/components/VirtualList/VirtualList.js +2 -3
- package/lib/components/VirtualList/hooks/useChildren.js +2 -3
- package/lib/components/VirtualList/hooks/useDiffItem.js +2 -3
- package/lib/components/VirtualList/hooks/useGetSize.js +2 -3
- package/lib/components/VirtualList/hooks/useHeights.js +2 -3
- package/lib/components/VirtualList/hooks/useScrollDrag.js +2 -3
- package/lib/components/VirtualList/hooks/useScrollTo.js +2 -3
- package/lib/index.css +1 -1
- package/lib/stories/docs/ComponentDocsPage.js +2 -3
- package/package.json +23 -17
|
@@ -40,8 +40,7 @@ var _valueUtil = require("./utils/valueUtil");
|
|
|
40
40
|
var _reactUtil = require("../../../ResizeObserver/utils/reactUtil");
|
|
41
41
|
var _isEqual = _interopRequireDefault(require("./selector-context/isEqual"));
|
|
42
42
|
var _useLayoutEffect = _interopRequireDefault(require("@1money/hooks/useLayoutEffect"));
|
|
43
|
-
function
|
|
44
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
43
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
45
44
|
var DEFAULT_PREFIX = exports.DEFAULT_PREFIX = 'om-table';
|
|
46
45
|
// Used for conditions cache
|
|
47
46
|
var EMPTY_DATA = [];
|
|
@@ -303,9 +302,9 @@ var Table = function Table(tableProps, ref) {
|
|
|
303
302
|
}
|
|
304
303
|
}
|
|
305
304
|
var _React$useState9 = React.useState([0, 0]),
|
|
306
|
-
_React$
|
|
307
|
-
scrollInfo = _React$
|
|
308
|
-
setScrollInfo = _React$
|
|
305
|
+
_React$useState0 = (0, _slicedToArray2["default"])(_React$useState9, 2),
|
|
306
|
+
scrollInfo = _React$useState0[0],
|
|
307
|
+
setScrollInfo = _React$useState0[1];
|
|
309
308
|
var onInternalScroll = (0, _useEventCallback["default"])(function (_ref2) {
|
|
310
309
|
var currentTarget = _ref2.currentTarget,
|
|
311
310
|
scrollLeft = _ref2.scrollLeft;
|
|
@@ -386,10 +385,10 @@ var Table = function Table(tableProps, ref) {
|
|
|
386
385
|
mounted.current = true;
|
|
387
386
|
}, []);
|
|
388
387
|
// ===================== Effects ======================
|
|
389
|
-
var _React$
|
|
390
|
-
_React$
|
|
391
|
-
scrollbarSize = _React$
|
|
392
|
-
setScrollbarSize = _React$
|
|
388
|
+
var _React$useState1 = React.useState(0),
|
|
389
|
+
_React$useState10 = (0, _slicedToArray2["default"])(_React$useState1, 2),
|
|
390
|
+
scrollbarSize = _React$useState10[0],
|
|
391
|
+
setScrollbarSize = _React$useState10[1];
|
|
393
392
|
(0, _useLayoutEffect["default"])(function () {
|
|
394
393
|
if (!tailor || !useInternalHooks) {
|
|
395
394
|
if (scrollBodyRef.current instanceof Element) {
|
|
@@ -693,4 +692,4 @@ ImmutableTable.Column = _Column["default"];
|
|
|
693
692
|
ImmutableTable.ColumnGroup = _ColumnGroup["default"];
|
|
694
693
|
ImmutableTable.Summary = _Footer.FooterComponents;
|
|
695
694
|
var _default = exports["default"] = ImmutableTable;
|
|
696
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1RhYmxlLmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9zcmMvY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9jbHN4MiIsIl9SZXNpemVPYnNlcnZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0U2Nyb2xsQmFyU2l6ZSIsIl91c2VFdmVudENhbGxiYWNrIiwiX3BpY2tBdHRycyIsIl9nZXQiLCJfd2FybmluZyIsIlJlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfQm9keSIsIl9Db2xHcm91cCIsIl9jb25zdGFudCIsIl9UYWJsZUNvbnRleHQiLCJfRml4ZWRIb2xkZXIiLCJfRm9vdGVyIiwiX1N1bW1hcnkiLCJfSGVhZGVyIiwiX3VzZUNvbHVtbnMzIiwiX3VzZUV4cGFuZDMiLCJfdXNlRml4ZWRJbmZvIiwiX3VzZUZyYW1lIiwiX3VzZUhvdmVyMyIsIl91c2VTdGlja3kyIiwiX3VzZVN0aWNreU9mZnNldHMiLCJfUGFuZWwiLCJfc3RpY2t5U2Nyb2xsQmFyIiwiX0NvbHVtbiIsIl9Db2x1bW5Hcm91cCIsIl92YWx1ZVV0aWwiLCJfcmVhY3RVdGlsIiwiX2lzRXF1YWwiLCJfdXNlTGF5b3V0RWZmZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiREVGQVVMVF9QUkVGSVgiLCJleHBvcnRzIiwiRU1QVFlfREFUQSIsIkVNUFRZX1NDUk9MTF9UQVJHRVQiLCJkZWZhdWx0RW1wdHkiLCJUYWJsZSIsInRhYmxlUHJvcHMiLCJyZWYiLCJfY2xzeCIsIl9hIiwiX2IiLCJwcm9wcyIsImFzc2lnbiIsInJvd0tleSIsInByZWZpeENscyIsImVtcHR5VGV4dCIsImNsYXNzTmFtZSIsInJvd0NsYXNzTmFtZSIsInN0eWxlIiwiY2xhc3NOYW1lcyIsInN0eWxlcyIsImRhdGEiLCJzY3JvbGwiLCJ0YWJsZUxheW91dCIsImRpcmVjdGlvbiIsInRpdGxlIiwiZm9vdGVyIiwic3VtbWFyeSIsImNhcHRpb24iLCJpZCIsInNob3dIZWFkZXIiLCJjb21wb25lbnRzIiwib25Sb3ciLCJvbkhlYWRlclJvdyIsIm1lYXN1cmVSb3dSZW5kZXIiLCJvblNjcm9sbCIsImludGVybmFsSG9va3MiLCJ0cmFuc2Zvcm1Db2x1bW5zIiwiaW50ZXJuYWxSZWZzIiwidGFpbG9yIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJzdGlja3kiLCJfcHJvcHMkcm93SG92ZXJhYmxlIiwicm93SG92ZXJhYmxlIiwibWVyZ2VkRGF0YSIsImhhc0RhdGEiLCJsZW5ndGgiLCJ1c2VJbnRlcm5hbEhvb2tzIiwiSU5URVJOQUxfSE9PS1MiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmb3JFYWNoIiwibmFtZSIsIndhcm5pbmciLCJ1bmRlZmluZWQiLCJjb25jYXQiLCJnZXRDb21wb25lbnQiLCJ1c2VDYWxsYmFjayIsInBhdGgiLCJkZWZhdWx0Q29tcG9uZW50IiwiZ2V0VmFsdWUiLCJnZXRSb3dLZXkiLCJ1c2VNZW1vIiwicmVjb3JkIiwia2V5IiwiY3VzdG9taXplU2Nyb2xsQm9keSIsIl91c2VIb3ZlciIsInVzZUhvdmVyIiwiX3VzZUhvdmVyMiIsIl9zbGljZWRUb0FycmF5MiIsInN0YXJ0Um93IiwiZW5kUm93Iiwib25Ib3ZlciIsIl91c2VFeHBhbmQiLCJ1c2VFeHBhbmQiLCJfdXNlRXhwYW5kMiIsImV4cGFuZGFibGVDb25maWciLCJleHBhbmRhYmxlVHlwZSIsIm1lcmdlZEV4cGFuZGVkS2V5cyIsIm1lcmdlZEV4cGFuZEljb24iLCJtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUiLCJvblRyaWdnZXJFeHBhbmQiLCJzY3JvbGxYIiwieCIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiX1JlYWN0JHVzZVN0YXRlMiIsImNvbXBvbmVudFdpZHRoIiwic2V0Q29tcG9uZW50V2lkdGgiLCJfdXNlQ29sdW1ucyIsInVzZUNvbHVtbnMiLCJleHBhbmRhYmxlIiwiZXhwYW5kZWRSb3dSZW5kZXIiLCJjb2x1bW5UaXRsZSIsImV4cGFuZGVkS2V5cyIsImV4cGFuZEljb24iLCJleHBhbmRJY29uQ29sdW1uSW5kZXgiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwiX3VzZUNvbHVtbnMyIiwiY29sdW1ucyIsImZsYXR0ZW5Db2x1bW5zIiwiZmxhdHRlblNjcm9sbFgiLCJtZXJnZWRTY3JvbGxYIiwiY29sdW1uQ29udGV4dCIsImZ1bGxUYWJsZVJlZiIsInVzZVJlZiIsInNjcm9sbEhlYWRlclJlZiIsInNjcm9sbEJvZHlSZWYiLCJzY3JvbGxCb2R5Q29udGFpbmVyUmVmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsIm5hdGl2ZUVsZW1lbnQiLCJjdXJyZW50Iiwic2Nyb2xsVG8iLCJjb25maWciLCJIVE1MRWxlbWVudCIsImluZGV4IiwidG9wIiwib2Zmc2V0IiwidmFsaWROdW1iZXJWYWx1ZSIsIm1lcmdlZEtleSIsInRhcmdldEVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwic2Nyb2xsSW50b1ZpZXciLCJlbGVtZW50VG9wIiwib2Zmc2V0VG9wIiwic2Nyb2xsU3VtbWFyeVJlZiIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0Iiwic2hhZG93U3RhcnQiLCJzZXRTaGFkb3dTdGFydCIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2Iiwic2hhZG93RW5kIiwic2V0U2hhZG93RW5kIiwiX1JlYWN0JHVzZVN0YXRlNyIsIk1hcCIsIl9SZWFjdCR1c2VTdGF0ZTgiLCJjb2xzV2lkdGhzIiwidXBkYXRlQ29sc1dpZHRocyIsImNvbHNLZXlzIiwiZ2V0Q29sdW1uc0tleSIsInB1cmVDb2xXaWR0aHMiLCJtYXAiLCJjb2x1bW5LZXkiLCJjb2xXaWR0aHMiLCJqb2luIiwic3RpY2t5T2Zmc2V0cyIsInVzZVN0aWNreU9mZnNldHMiLCJmaXhIZWFkZXIiLCJ2YWxpZGF0ZVZhbHVlIiwieSIsImhvcml6b25TY3JvbGwiLCJCb29sZWFuIiwiZml4ZWQiLCJmaXhDb2x1bW4iLCJzb21lIiwiX3JlZiIsInN0aWNreVJlZiIsIl91c2VTdGlja3kiLCJ1c2VTdGlja3kiLCJpc1N0aWNreSIsIm9mZnNldEhlYWRlciIsIm9mZnNldFN1bW1hcnkiLCJvZmZzZXRTY3JvbGwiLCJzdGlja3lDbGFzc05hbWUiLCJjb250YWluZXIiLCJzdW1tYXJ5Tm9kZSIsImZpeEZvb3RlciIsImlzVmFsaWRFbGVtZW50IiwidHlwZSIsIlN1bW1hcnkiLCJzY3JvbGxYU3R5bGUiLCJzY3JvbGxZU3R5bGUiLCJzY3JvbGxUYWJsZVN0eWxlIiwib3ZlcmZsb3dZIiwibWF4SGVpZ2h0Iiwib3ZlcmZsb3dYIiwid2lkdGgiLCJtaW5XaWR0aCIsIm9uQ29sdW1uUmVzaXplIiwid2lkdGhzIiwibmV3V2lkdGhzIiwiX3VzZVRpbWVvdXRMb2NrIiwidXNlVGltZW91dExvY2siLCJfdXNlVGltZW91dExvY2syIiwic2V0U2Nyb2xsVGFyZ2V0IiwiZ2V0U2Nyb2xsVGFyZ2V0IiwiZm9yY2VTY3JvbGwiLCJzY3JvbGxMZWZ0IiwidGFyZ2V0Iiwic2V0VGltZW91dCIsIl9SZWFjdCR1c2VTdGF0ZTkiLCJfUmVhY3QkdXNlU3RhdGUxMCIsInNjcm9sbEluZm8iLCJzZXRTY3JvbGxJbmZvIiwib25JbnRlcm5hbFNjcm9sbCIsInVzZUV2ZW50IiwiX3JlZjIiLCJjdXJyZW50VGFyZ2V0IiwibWVyZ2VkU2Nyb2xsTGVmdCIsImNvbXBhcmVUYXJnZXQiLCJzZXRTY3JvbGxMZWZ0IiwibWVhc3VyZVRhcmdldCIsImFic1Njcm9sbFN0YXJ0IiwiTWF0aCIsImFicyIsIm9yaSIsIm5leHRTY3JvbGxJbmZvIiwiaXNFcXVhbCIsIm9uQm9keVNjcm9sbCIsInRyaWdnZXJPblNjcm9sbCIsImdldERPTSIsIm9uRnVsbFRhYmxlUmVzaXplIiwib2Zmc2V0V2lkdGgiLCJfYyIsImNoZWNrU2Nyb2xsQmFyVmlzaWJsZSIsIm1lcmdlZFdpZHRoIiwidXNlTGF5b3V0RWZmZWN0IiwibW91bnRlZCIsInVzZUVmZmVjdCIsIl9SZWFjdCR1c2VTdGF0ZTExIiwiX1JlYWN0JHVzZVN0YXRlMTIiLCJzY3JvbGxiYXJTaXplIiwic2V0U2Nyb2xsYmFyU2l6ZSIsIkVsZW1lbnQiLCJnZXRUYXJnZXRTY3JvbGxCYXJTaXplIiwiYm9keSIsInJlbmRlckZpeGVkSGVhZGVyVGFibGUiLCJmaXhlZEhvbGRlclBhc3NQcm9wcyIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiY2hpbGRyZW4iLCJfanN4IiwiSGVhZGVyIiwiRm9vdGVyIiwicmVuZGVyRml4ZWRGb290ZXJUYWJsZSIsIlRhYmxlQ29tcG9uZW50IiwibWVyZ2VkVGFibGVMYXlvdXQiLCJfcmVmMyIsImVsbGlwc2lzIiwiZ3JvdXBUYWJsZU5vZGUiLCJoZWFkZXJQcm9wcyIsImNvbHVtQ291bnQiLCJlbXB0eU5vZGUiLCJib2R5VGFibGUiLCJCb2R5IiwibWVhc3VyZUNvbHVtbldpZHRoIiwiYm9keUNvbEdyb3VwIiwiQ29sR3JvdXAiLCJfcmVmNCIsImNhcHRpb25FbGVtZW50IiwiZGF0YVByb3BzIiwicGlja0F0dHJzIiwiYXJpYVByb3BzIiwiYXJpYSIsImJvZHlDb250ZW50IiwiX3JlZjUiLCJjb2xXaWR0aCIsIk51bWJlciIsImlzTmFOIiwiZml4ZWRIb2xkZXJQcm9wcyIsIm5vRGF0YSIsIm1heENvbnRlbnRTY3JvbGwiLCJGaXhlZEhvbGRlciIsInN0aWNreVRvcE9mZnNldCIsImNvbEdyb3VwIiwic3RpY2t5Qm90dG9tT2Zmc2V0IiwiU3RpY2t5U2Nyb2xsQmFyIiwiY29udGVudCIsImNsc3giLCJ0YWJsZVN0eWxlIiwiZnVsbFRhYmxlIiwiX2RlZmluZVByb3BlcnR5MiIsIlBhbmVsIiwic2VjdGlvbiIsIlJlc2l6ZU9ic2VydmVyIiwib25SZXNpemUiLCJfcmVmNiIsImZpeGVkSW5mb0xpc3QiLCJ1c2VGaXhlZEluZm8iLCJUYWJsZUNvbnRleHRWYWx1ZSIsImV4cGFuZGVkUm93Q2xhc3NOYW1lIiwiZXhwYW5kUm93QnlDbGljayIsImV4cGFuZGVkUm93T2Zmc2V0IiwiaW5kZW50U2l6ZSIsImFsbENvbHVtbnNGaXhlZExlZnQiLCJldmVyeSIsImNvbCIsImhvdmVyU3RhcnRSb3ciLCJob3ZlckVuZFJvdyIsInJvd0V4cGFuZGFibGUiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJUYWJsZUNvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwiUmVmVGFibGUiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJnZW5UYWJsZSIsInNob3VsZFRyaWdnZXJSZW5kZXIiLCJtYWtlSW1tdXRhYmxlIiwiSW1tdXRhYmxlVGFibGUiLCJFWFBBTkRfQ09MVU1OIiwiQ29sdW1uIiwiQ29sdW1uR3JvdXAiLCJGb290ZXJDb21wb25lbnRzIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUM0QkEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxJQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFDLHVCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBVyxLQUFBLEdBQUFSLHNC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QixFQUV4QnRDLFlBQVksRUFFWlQsZ0JBQWdCLENBQ2pCLENBQ0Y7RUFFRCxPQUFPLElBQUF3TSxlQUFBLEVBQUM0RCx3QkFBWSxDQUFDQyxRQUFRLEVBQUE7SUFBQ0MsS0FBSyxFQUFFZCxpQkFBaUI7SUFBQWpELFFBQUEsRUFBR3dDO0VBQVMsQ0FBQSxDQUF5QjtBQUM3RixDQUFDO0FBTUQsSUFBTXdCLFFBQVEsZ0JBQUd0VixLQUFLLENBQUN1VixVQUFVLENBQUNyUyxLQUFLLENBQXdCO0FBRS9ELElBQUk0QyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUN6Q3NQLFFBQVEsQ0FBQ0UsV0FBVyxHQUFHLE9BQU87QUFDaEM7QUFFTyxJQUFNQyxRQUFRLEdBQUEzUyxPQUFBLENBQUEyUyxRQUFBLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsbUJBQXVELEVBQUk7RUFDbEYsT0FBTyxJQUFBQywyQkFBYSxFQUFDTCxRQUFRLEVBQUVJLG1CQUFtQixDQUFDO0FBQ3JELENBQUM7QUFFRCxJQUFNRSxjQUFjLEdBQUdILFFBQVEsQ0FBQSxDQUFFO0FBVWhDRyxjQUFxQyxDQUFDQyxhQUFhLEdBQUdBLHVCQUFhO0FBRW5FRCxjQUFxQyxDQUFDL1AsY0FBYyxHQUFHQSx3QkFBYztBQUVyRStQLGNBQXFDLENBQUNFLE1BQU0sR0FBR0Esa0JBQU07QUFFckRGLGNBQXFDLENBQUNHLFdBQVcsR0FBR0EsdUJBQVc7QUFFL0RILGNBQXFDLENBQUNuSSxPQUFPLEdBQUd1SSx3QkFBZ0I7QUFBQyxJQUFBQyxRQUFBLEdBQUFuVCxPQUFBLGNBRW5EOFMsY0FBb0MiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgUmVzaXplT2JzZXJ2ZXIgZnJvbSAnLi4vLi4vLi4vUmVzaXplT2JzZXJ2ZXInO1xuaW1wb3J0IHsgZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZSB9IGZyb20gJy4vdXRpbHMvZ2V0U2Nyb2xsQmFyU2l6ZSc7XG5pbXBvcnQgdXNlRXZlbnQgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCBwaWNrQXR0cnMgZnJvbSAnLi91dGlscy9waWNrQXR0cnMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vdXRpbHMvZ2V0JztcbmltcG9ydCB3YXJuaW5nIGZyb20gJy4vdXRpbHMvd2FybmluZyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQm9keSBmcm9tICcuL0JvZHknO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4vQ29sR3JvdXAnO1xuaW1wb3J0IHsgRVhQQU5EX0NPTFVNTiwgSU5URVJOQUxfSE9PS1MgfSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCBUYWJsZUNvbnRleHQsIHsgbWFrZUltbXV0YWJsZSB9IGZyb20gJy4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IEZpeGVkSG9sZGVyIGZyb20gJy4vRml4ZWRIb2xkZXInO1xuaW1wb3J0IEZvb3RlciwgeyBGb290ZXJDb21wb25lbnRzIH0gZnJvbSAnLi9Gb290ZXInO1xuaW1wb3J0IFN1bW1hcnkgZnJvbSAnLi9Gb290ZXIvU3VtbWFyeSc7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyL0hlYWRlcic7XG5pbXBvcnQgdXNlQ29sdW1ucyBmcm9tICcuL2hvb2tzL3VzZUNvbHVtbnMnO1xuaW1wb3J0IHVzZUV4cGFuZCBmcm9tICcuL2hvb2tzL3VzZUV4cGFuZCc7XG5pbXBvcnQgdXNlRml4ZWRJbmZvIGZyb20gJy4vaG9va3MvdXNlRml4ZWRJbmZvJztcbmltcG9ydCB7IHVzZVRpbWVvdXRMb2NrIH0gZnJvbSAnLi9ob29rcy91c2VGcmFtZSc7XG5pbXBvcnQgdXNlSG92ZXIgZnJvbSAnLi9ob29rcy91c2VIb3Zlcic7XG5pbXBvcnQgdXNlU3RpY2t5IGZyb20gJy4vaG9va3MvdXNlU3RpY2t5JztcbmltcG9ydCB1c2VTdGlja3lPZmZzZXRzIGZyb20gJy4vaG9va3MvdXNlU3RpY2t5T2Zmc2V0cyc7XG5pbXBvcnQgUGFuZWwgZnJvbSAnLi9QYW5lbCc7XG5pbXBvcnQgU3RpY2t5U2Nyb2xsQmFyIGZyb20gJy4vc3RpY2t5U2Nyb2xsQmFyJztcbmltcG9ydCBDb2x1bW4gZnJvbSAnLi9zdWdhci9Db2x1bW4nO1xuaW1wb3J0IENvbHVtbkdyb3VwIGZyb20gJy4vc3VnYXIvQ29sdW1uR3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q29sdW1uc0tleSwgdmFsaWRhdGVWYWx1ZSwgdmFsaWROdW1iZXJWYWx1ZSB9IGZyb20gJy4vdXRpbHMvdmFsdWVVdGlsJztcbmltcG9ydCB7IGdldERPTSB9IGZyb20gJy4uLy4uLy4uL1Jlc2l6ZU9ic2VydmVyL3V0aWxzL3JlYWN0VXRpbCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICcuL3NlbGVjdG9yLWNvbnRleHQvaXNFcXVhbCc7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF5b3V0RWZmZWN0JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BSRUZJWCA9ICdvbS10YWJsZSc7XG4vLyBVc2VkIGZvciBjb25kaXRpb25zIGNhY2hlXG5jb25zdCBFTVBUWV9EQVRBID0gW107XG4vLyBVc2VkIGZvciBjdXN0b21pemUgc2Nyb2xsXG5jb25zdCBFTVBUWV9TQ1JPTExfVEFSR0VUID0ge307XG5mdW5jdGlvbiBkZWZhdWx0RW1wdHkoKSB7XG4gICAgcmV0dXJuICdObyBEYXRhJztcbn1cbmNvbnN0IFRhYmxlID0gKHRhYmxlUHJvcHMsIHJlZikgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgcHJvcHMgPSBPYmplY3QuYXNzaWduKHsgcm93S2V5OiAna2V5JywgcHJlZml4Q2xzOiBERUZBVUxUX1BSRUZJWCwgZW1wdHlUZXh0OiBkZWZhdWx0RW1wdHkgfSwgdGFibGVQcm9wcyk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIGNsYXNzTmFtZSwgcm93Q2xhc3NOYW1lLCBzdHlsZSwgY2xhc3NOYW1lcywgc3R5bGVzLCBkYXRhLCByb3dLZXksIHNjcm9sbCwgdGFibGVMYXlvdXQsIGRpcmVjdGlvbiwgXG4gICAgLy8gQWRkaXRpb25hbCBQYXJ0XG4gICAgdGl0bGUsIGZvb3Rlciwgc3VtbWFyeSwgY2FwdGlvbiwgXG4gICAgLy8gQ3VzdG9taXplXG4gICAgaWQsIHNob3dIZWFkZXIsIGNvbXBvbmVudHMsIGVtcHR5VGV4dCwgb25Sb3csIG9uSGVhZGVyUm93LCBcbiAgICAvLyBNZWFzdXJlIFJvd1xuICAgIG1lYXN1cmVSb3dSZW5kZXIsIFxuICAgIC8vIEV2ZW50c1xuICAgIG9uU2Nyb2xsLCBcbiAgICAvLyBJbnRlcm5hbFxuICAgIGludGVybmFsSG9va3MsIHRyYW5zZm9ybUNvbHVtbnMsIGludGVybmFsUmVmcywgdGFpbG9yLCBnZXRDb250YWluZXJXaWR0aCwgc3RpY2t5LCByb3dIb3ZlcmFibGUgPSB0cnVlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkRGF0YSA9IGRhdGEgfHwgRU1QVFlfREFUQTtcbiAgICBjb25zdCBoYXNEYXRhID0gISFtZXJnZWREYXRhLmxlbmd0aDtcbiAgICBjb25zdCB1c2VJbnRlcm5hbEhvb2tzID0gaW50ZXJuYWxIb29rcyA9PT0gSU5URVJOQUxfSE9PS1M7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IFdhcm5pbmcgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIFtcbiAgICAgICAgICAgICdvblJvd0NsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0RvdWJsZUNsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0NvbnRleHRNZW51JyxcbiAgICAgICAgICAgICdvblJvd01vdXNlRW50ZXInLFxuICAgICAgICAgICAgJ29uUm93TW91c2VMZWF2ZScsXG4gICAgICAgIF0uZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgICAgIHdhcm5pbmcocHJvcHNbbmFtZV0gPT09IHVuZGVmaW5lZCwgYFxcYCR7bmFtZX1cXGAgaXMgcmVtb3ZlZCwgcGxlYXNlIHVzZSBcXGBvblJvd1xcYCBpbnN0ZWFkLmApO1xuICAgICAgICB9KTtcbiAgICAgICAgd2FybmluZyghKCdnZXRCb2R5V3JhcHBlcicgaW4gcHJvcHMpLCAnYGdldEJvZHlXcmFwcGVyYCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGN1c3RvbSBgY29tcG9uZW50c2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ3VzdG9taXplID09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdldENvbXBvbmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKChwYXRoLCBkZWZhdWx0Q29tcG9uZW50KSA9PiBnZXRWYWx1ZShjb21wb25lbnRzLCBwYXRoKSB8fCBkZWZhdWx0Q29tcG9uZW50LCBbY29tcG9uZW50c10pO1xuICAgIGNvbnN0IGdldFJvd0tleSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJvd0tleSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHJvd0tleTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHJlY29yZCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVjb3JkICYmIHJlY29yZFtyb3dLZXldO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKGtleSAhPT0gdW5kZWZpbmVkLCAnRWFjaCByZWNvcmQgaW4gdGFibGUgc2hvdWxkIGhhdmUgYSB1bmlxdWUgYGtleWAgcHJvcCwgb3Igc2V0IGByb3dLZXlgIHRvIGFuIHVuaXF1ZSBwcmltYXJ5IGtleS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH07XG4gICAgfSwgW3Jvd0tleV0pO1xuICAgIGNvbnN0IGN1c3RvbWl6ZVNjcm9sbEJvZHkgPSBnZXRDb21wb25lbnQoWydib2R5J10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gSG92ZXIgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc3RhcnRSb3csIGVuZFJvdywgb25Ib3Zlcl0gPSB1c2VIb3ZlcigpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gRXhwYW5kID09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbZXhwYW5kYWJsZUNvbmZpZywgZXhwYW5kYWJsZVR5cGUsIG1lcmdlZEV4cGFuZGVkS2V5cywgbWVyZ2VkRXhwYW5kSWNvbiwgbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lLCBvblRyaWdnZXJFeHBhbmQsXSA9IHVzZUV4cGFuZChwcm9wcywgbWVyZ2VkRGF0YSwgZ2V0Um93S2V5KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IENvbHVtbiA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsWCA9IHNjcm9sbCA9PT0gbnVsbCB8fCBzY3JvbGwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbC54O1xuICAgIGNvbnN0IFtjb21wb25lbnRXaWR0aCwgc2V0Q29tcG9uZW50V2lkdGhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zLCBmbGF0dGVuU2Nyb2xsWF0gPSB1c2VDb2x1bW5zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcm9wcyksIGV4cGFuZGFibGVDb25maWcpLCB7IGV4cGFuZGFibGU6ICEhZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlciwgY29sdW1uVGl0bGU6IGV4cGFuZGFibGVDb25maWcuY29sdW1uVGl0bGUsIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLCBnZXRSb3dLZXksXG4gICAgICAgIG9uVHJpZ2dlckV4cGFuZCwgZXhwYW5kSWNvbjogbWVyZ2VkRXhwYW5kSWNvbiwgZXhwYW5kSWNvbkNvbHVtbkluZGV4OiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCwgZGlyZWN0aW9uLCBzY3JvbGxXaWR0aDogdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIHNjcm9sbFggPT09ICdudW1iZXInID8gc2Nyb2xsWCA6IG51bGwsIGNsaWVudFdpZHRoOiBjb21wb25lbnRXaWR0aCB9KSwgdXNlSW50ZXJuYWxIb29rcyA/IHRyYW5zZm9ybUNvbHVtbnMgOiBudWxsKTtcbiAgICBjb25zdCBtZXJnZWRTY3JvbGxYID0gZmxhdHRlblNjcm9sbFggIT09IG51bGwgJiYgZmxhdHRlblNjcm9sbFggIT09IHZvaWQgMCA/IGZsYXR0ZW5TY3JvbGxYIDogc2Nyb2xsWDtcbiAgICBjb25zdCBjb2x1bW5Db250ZXh0ID0gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucyB9KSwgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGZ1bGxUYWJsZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxIZWFkZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2Nyb2xsQm9keVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxCb2R5Q29udGFpbmVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiBmdWxsVGFibGVSZWYuY3VycmVudCxcbiAgICAgICAgICAgIHNjcm9sbFRvOiBjb25maWcgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbEJvZHlSZWYuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5hdGl2ZSBzY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbmRleCwgdG9wLCBrZXksIG9mZnNldCB9ID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWROdW1iZXJWYWx1ZSh0b3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0b3AgbW9kZSwgb2Zmc2V0IGlzIGlnbm9yZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKHsgdG9wIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVyZ2VkS2V5ID0ga2V5ICE9PSBudWxsICYmIGtleSAhPT0gdm9pZCAwID8ga2V5IDogZ2V0Um93S2V5KG1lcmdlZERhdGFbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtcm93LWtleT1cIiR7bWVyZ2VkS2V5fVwiXWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvZmZzZXQsIHVzZSBzY3JvbGxJbnRvVmlldyBmb3IgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIG9mZnNldCwgdXNlIGVsZW1lbnQncyBvZmZzZXRUb3AgKyBvZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvcCA9IHRhcmdldEVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxCb2R5UmVmLmN1cnJlbnQuc2Nyb2xsVG8oeyB0b3A6IGVsZW1lbnRUb3AgKyBvZmZzZXQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKChfYiA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNjcm9sbFRvKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdG8gcHJveHlcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQm9keVJlZi5jdXJyZW50LnNjcm9sbFRvKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IFNjcm9sbCA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsU3VtbWFyeVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbc2hhZG93U3RhcnQsIHNldFNoYWRvd1N0YXJ0XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hhZG93RW5kLCBzZXRTaGFkb3dFbmRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb2xzV2lkdGhzLCB1cGRhdGVDb2xzV2lkdGhzXSA9IFJlYWN0LnVzZVN0YXRlKG5ldyBNYXAoKSk7XG4gICAgLy8gQ29udmVydCBtYXAgdG8gbnVtYmVyIHdpZHRoXG4gICAgY29uc3QgY29sc0tleXMgPSBnZXRDb2x1bW5zS2V5KGZsYXR0ZW5Db2x1bW5zKTtcbiAgICBjb25zdCBwdXJlQ29sV2lkdGhzID0gY29sc0tleXMubWFwKGNvbHVtbktleSA9PiBjb2xzV2lkdGhzLmdldChjb2x1bW5LZXkpKTtcbiAgICBjb25zdCBjb2xXaWR0aHMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHB1cmVDb2xXaWR0aHMsIFtwdXJlQ29sV2lkdGhzLmpvaW4oJ18nKV0pO1xuICAgIGNvbnN0IHN0aWNreU9mZnNldHMgPSB1c2VTdGlja3lPZmZzZXRzKGNvbFdpZHRocywgZmxhdHRlbkNvbHVtbnMpO1xuICAgIGNvbnN0IGZpeEhlYWRlciA9IHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKHNjcm9sbC55KTtcbiAgICBjb25zdCBob3Jpem9uU2Nyb2xsID0gKHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKG1lcmdlZFNjcm9sbFgpKSB8fCBCb29sZWFuKGV4cGFuZGFibGVDb25maWcuZml4ZWQpO1xuICAgIGNvbnN0IGZpeENvbHVtbiA9IGhvcml6b25TY3JvbGwgJiYgZmxhdHRlbkNvbHVtbnMuc29tZSgoeyBmaXhlZCB9KSA9PiBmaXhlZCk7XG4gICAgLy8gU3RpY2t5XG4gICAgY29uc3Qgc3RpY2t5UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHsgaXNTdGlja3ksIG9mZnNldEhlYWRlciwgb2Zmc2V0U3VtbWFyeSwgb2Zmc2V0U2Nyb2xsLCBzdGlja3lDbGFzc05hbWUsIGNvbnRhaW5lciB9ID0gdXNlU3RpY2t5KHN0aWNreSwgcHJlZml4Q2xzKTtcbiAgICAvLyBGb290ZXIgKEZpeCBmb290ZXIgbXVzdCBmaXhlZCBoZWFkZXIpXG4gICAgY29uc3Qgc3VtbWFyeU5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHN1bW1hcnkgPT09IG51bGwgfHwgc3VtbWFyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VtbWFyeShtZXJnZWREYXRhKSwgW3N1bW1hcnksIG1lcmdlZERhdGFdKTtcbiAgICBjb25zdCBmaXhGb290ZXIgPSAoZml4SGVhZGVyIHx8IGlzU3RpY2t5KSAmJlxuICAgICAgICBSZWFjdC5pc1ZhbGlkRWxlbWVudChzdW1tYXJ5Tm9kZSkgJiZcbiAgICAgICAgc3VtbWFyeU5vZGUudHlwZSA9PT0gU3VtbWFyeSAmJlxuICAgICAgICBzdW1tYXJ5Tm9kZS5wcm9wcy5maXhlZDtcbiAgICAvLyBTY3JvbGxcbiAgICBsZXQgc2Nyb2xsWFN0eWxlO1xuICAgIGxldCBzY3JvbGxZU3R5bGU7XG4gICAgbGV0IHNjcm9sbFRhYmxlU3R5bGU7XG4gICAgaWYgKGZpeEhlYWRlcikge1xuICAgICAgICBzY3JvbGxZU3R5bGUgPSB7XG4gICAgICAgICAgICBvdmVyZmxvd1k6IGhhc0RhdGEgPyAnc2Nyb2xsJyA6ICdhdXRvJyxcbiAgICAgICAgICAgIG1heEhlaWdodDogc2Nyb2xsLnksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIHNjcm9sbFhTdHlsZSA9IHsgb3ZlcmZsb3dYOiAnYXV0bycgfTtcbiAgICAgICAgLy8gV2hlbiBubyB2ZXJ0aWNhbCBzY3JvbGxiYXIsIHNob3VsZCBoaWRlIGl0XG4gICAgICAgIGlmICghZml4SGVhZGVyKSB7XG4gICAgICAgICAgICBzY3JvbGxZU3R5bGUgPSB7IG92ZXJmbG93WTogJ2hpZGRlbicgfTtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxUYWJsZVN0eWxlID0ge1xuICAgICAgICAgICAgd2lkdGg6IG1lcmdlZFNjcm9sbFggPT09IHRydWUgPyAnYXV0bycgOiBtZXJnZWRTY3JvbGxYLFxuICAgICAgICAgICAgbWluV2lkdGg6ICcxMDAlJyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgb25Db2x1bW5SZXNpemUgPSBSZWFjdC51c2VDYWxsYmFjaygoY29sdW1uS2V5LCB3aWR0aCkgPT4ge1xuICAgICAgICB1cGRhdGVDb2xzV2lkdGhzKHdpZHRocyA9PiB7XG4gICAgICAgICAgICBpZiAod2lkdGhzLmdldChjb2x1bW5LZXkpICE9PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpZHRocyA9IG5ldyBNYXAod2lkdGhzKTtcbiAgICAgICAgICAgICAgICBuZXdXaWR0aHMuc2V0KGNvbHVtbktleSwgd2lkdGgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdXaWR0aHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd2lkdGhzO1xuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgW3NldFNjcm9sbFRhcmdldCwgZ2V0U2Nyb2xsVGFyZ2V0XSA9IHVzZVRpbWVvdXRMb2NrKG51bGwpO1xuICAgIGZ1bmN0aW9uIGZvcmNlU2Nyb2xsKHNjcm9sbExlZnQsIHRhcmdldCkge1xuICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQoc2Nyb2xsTGVmdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGFyZ2V0LnNjcm9sbExlZnQgIT09IHNjcm9sbExlZnQpIHtcbiAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgIC8vIERlbGF5IHRvIGZvcmNlIHNjcm9sbCBwb3NpdGlvbiBpZiBub3Qgc3luY1xuICAgICAgICAgICAgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBbc2Nyb2xsSW5mbywgc2V0U2Nyb2xsSW5mb10gPSBSZWFjdC51c2VTdGF0ZShbMCwgMF0pO1xuICAgIGNvbnN0IG9uSW50ZXJuYWxTY3JvbGwgPSB1c2VFdmVudCgoeyBjdXJyZW50VGFyZ2V0LCBzY3JvbGxMZWZ0IH0pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBtZXJnZWRTY3JvbGxMZWZ0ID0gdHlwZW9mIHNjcm9sbExlZnQgPT09ICdudW1iZXInID8gc2Nyb2xsTGVmdCA6IGN1cnJlbnRUYXJnZXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3QgY29tcGFyZVRhcmdldCA9IGN1cnJlbnRUYXJnZXQgfHwgRU1QVFlfU0NST0xMX1RBUkdFVDtcbiAgICAgICAgaWYgKCFnZXRTY3JvbGxUYXJnZXQoKSB8fCBnZXRTY3JvbGxUYXJnZXQoKSA9PT0gY29tcGFyZVRhcmdldCkge1xuICAgICAgICAgICAgc2V0U2Nyb2xsVGFyZ2V0KGNvbXBhcmVUYXJnZXQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsSGVhZGVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsQm9keVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbFN1bW1hcnlSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBmb3JjZVNjcm9sbChtZXJnZWRTY3JvbGxMZWZ0LCAoX2EgPSBzdGlja3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldFNjcm9sbExlZnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lYXN1cmVUYXJnZXQgPSBjdXJyZW50VGFyZ2V0IHx8IHNjcm9sbEhlYWRlclJlZi5jdXJyZW50O1xuICAgICAgICBpZiAobWVhc3VyZVRhcmdldCkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsV2lkdGggPSBcbiAgICAgICAgICAgIC8vIFNob3VsZCB1c2UgbWVyZ2VkU2Nyb2xsWCBpbiB2aXJ0dWFsIHRhYmxlKHVzZUludGVybmFsSG9va3MgJiYgdGFpbG9yID09PSB0cnVlKVxuICAgICAgICAgICAgdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIG1lcmdlZFNjcm9sbFggPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBtZXJnZWRTY3JvbGxYXG4gICAgICAgICAgICAgICAgOiBtZWFzdXJlVGFyZ2V0LnNjcm9sbFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgY2xpZW50V2lkdGggPSBtZWFzdXJlVGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgYWJzU2Nyb2xsU3RhcnQgPSBNYXRoLmFicyhtZXJnZWRTY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgIHNldFNjcm9sbEluZm8ob3JpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsSW5mbyA9IFthYnNTY3JvbGxTdGFydCwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRXF1YWwob3JpLCBuZXh0U2Nyb2xsSW5mbykgPyBvcmkgOiBuZXh0U2Nyb2xsSW5mbztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gc3BhY2UgdG8gc2Nyb2xsXG4gICAgICAgICAgICBpZiAoc2Nyb2xsV2lkdGggPT09IGNsaWVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHNldFNoYWRvd0VuZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoYWJzU2Nyb2xsU3RhcnQgPiAwKTtcbiAgICAgICAgICAgIHNldFNoYWRvd0VuZChhYnNTY3JvbGxTdGFydCA8IHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGggLSAxKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uQm9keVNjcm9sbCA9IHVzZUV2ZW50KChlKSA9PiB7XG4gICAgICAgIG9uSW50ZXJuYWxTY3JvbGwoZSk7XG4gICAgICAgIG9uU2Nyb2xsID09PSBudWxsIHx8IG9uU2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNjcm9sbChlKTtcbiAgICB9KTtcbiAgICBjb25zdCB0cmlnZ2VyT25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwgJiYgc2Nyb2xsQm9keVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBvbkludGVybmFsU2Nyb2xsKHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBnZXRET00oc2Nyb2xsQm9keVJlZi5jdXJyZW50KSxcbiAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiAoX2EgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZXRTaGFkb3dTdGFydChmYWxzZSk7XG4gICAgICAgICAgICBzZXRTaGFkb3dFbmQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbkZ1bGxUYWJsZVJlc2l6ZSA9IChvZmZzZXRXaWR0aCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgKF9hID0gc3RpY2t5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jaGVja1Njcm9sbEJhclZpc2libGUoKTtcbiAgICAgICAgbGV0IG1lcmdlZFdpZHRoID0gKF9jID0gb2Zmc2V0V2lkdGggIT09IG51bGwgJiYgb2Zmc2V0V2lkdGggIT09IHZvaWQgMCA/IG9mZnNldFdpZHRoIDogKF9iID0gZnVsbFRhYmxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgZ2V0Q29udGFpbmVyV2lkdGggJiYgZnVsbFRhYmxlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lcmdlZFdpZHRoID0gZ2V0Q29udGFpbmVyV2lkdGgoZnVsbFRhYmxlUmVmLmN1cnJlbnQsIG1lcmdlZFdpZHRoKSB8fCBtZXJnZWRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVyZ2VkV2lkdGggIT09IGNvbXBvbmVudFdpZHRoKSB7XG4gICAgICAgICAgICB0cmlnZ2VyT25TY3JvbGwoKTtcbiAgICAgICAgICAgIHNldENvbXBvbmVudFdpZHRoKG1lcmdlZFdpZHRoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwpIHtcbiAgICAgICAgICAgIG9uRnVsbFRhYmxlUmVzaXplKCk7XG4gICAgICAgIH1cbiAgICB9LCBbaG9yaXpvblNjcm9sbF0pO1xuICAgIC8vIFN5bmMgc2Nyb2xsIGJhciB3aGVuIGluaXQgb3IgYGhvcml6b25TY3JvbGxgLCBgZGF0YWAgYW5kIGBjb2x1bW5zLmxlbmd0aGAgY2hhbmdlZFxuICAgIGNvbnN0IG1vdW50ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIG9uRnVsbFRhYmxlUmVzaXplIHdpbGwgYmUgdHJpZ2dlciBvbmNlIHdoZW4gUmVzaXplT2JzZXJ2ZXIgaXMgbW91bnRlZFxuICAgICAgICAvLyBUaGlzIHdpbGwgcmVkdWNlIG9uZSBkdXBsaWNhdGVkIHRyaWdnZXJPblNjcm9sbCB0aW1lXG4gICAgICAgIGlmIChtb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHRyaWdnZXJPblNjcm9sbCgpO1xuICAgICAgICB9XG4gICAgfSwgW2hvcml6b25TY3JvbGwsIGRhdGEsIGNvbHVtbnMubGVuZ3RoXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IEVmZmVjdHMgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IFtzY3JvbGxiYXJTaXplLCBzZXRTY3JvbGxiYXJTaXplXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdGFpbG9yIHx8ICF1c2VJbnRlcm5hbEhvb2tzKSB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsQm9keVJlZi5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5UmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5Q29udGFpbmVyUmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT0gSU5URVJOQUwgSE9PS1MgPT09PT09PT09PT09PT09PT09XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgaW50ZXJuYWxSZWZzKSB7XG4gICAgICAgICAgICBpbnRlcm5hbFJlZnMuYm9keS5jdXJyZW50ID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PSBSZW5kZXI6IEZ1bmMgPT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgPSBSZWFjdC51c2VDYWxsYmFjayhmaXhlZEhvbGRlclBhc3NQcm9wcyA9PiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbX2pzeChIZWFkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzKSksIGZpeEZvb3RlciA9PT0gJ3RvcCcgJiYgX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSwgW2ZpeEZvb3Rlciwgc3VtbWFyeU5vZGVdKTtcbiAgICBjb25zdCByZW5kZXJGaXhlZEZvb3RlclRhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soZml4ZWRIb2xkZXJQYXNzUHJvcHMgPT4gX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSksIFtzdW1tYXJ5Tm9kZV0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT0gUmVuZGVyOiBOb2RlID09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBUYWJsZUNvbXBvbmVudCA9IGdldENvbXBvbmVudChbJ3RhYmxlJ10sICd0YWJsZScpO1xuICAgIC8vIFRhYmxlIGxheW91dFxuICAgIGNvbnN0IG1lcmdlZFRhYmxlTGF5b3V0ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICh0YWJsZUxheW91dCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYmxlTGF5b3V0O1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gc2Nyb2xsLnggaXMgbWF4LWNvbnRlbnQsIG5vIG5lZWQgdG8gZml4IHRhYmxlIGxheW91dFxuICAgICAgICAvLyBpdCdzIHdpZHRoIHNob3VsZCBzdHJldGNoIG91dCB0byBmaXQgY29udGVudFxuICAgICAgICBpZiAoZml4Q29sdW1uKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyA/ICdhdXRvJyA6ICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSB8fCBmbGF0dGVuQ29sdW1ucy5zb21lKCh7IGVsbGlwc2lzIH0pID0+IGVsbGlwc2lzKSkge1xuICAgICAgICAgICAgcmV0dXJuICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICB9LCBbZml4SGVhZGVyLCBmaXhDb2x1bW4sIGZsYXR0ZW5Db2x1bW5zLCB0YWJsZUxheW91dCwgaXNTdGlja3ldKTtcbiAgICBsZXQgZ3JvdXBUYWJsZU5vZGU7XG4gICAgLy8gSGVhZGVyIHByb3BzXG4gICAgY29uc3QgaGVhZGVyUHJvcHMgPSB7XG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgY29sdW1Db3VudDogZmxhdHRlbkNvbHVtbnMubGVuZ3RoLFxuICAgICAgICBzdGlja3lPZmZzZXRzLFxuICAgICAgICBvbkhlYWRlclJvdyxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBzY3JvbGwsXG4gICAgfTtcbiAgICAvLyBFbXB0eVxuICAgIGNvbnN0IGVtcHR5Tm9kZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoaGFzRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBlbXB0eVRleHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBlbXB0eVRleHQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW1wdHlUZXh0O1xuICAgIH0sIFtoYXNEYXRhLCBlbXB0eVRleHRdKTtcbiAgICAvLyBCb2R5XG4gICAgY29uc3QgYm9keVRhYmxlID0gKF9qc3goQm9keSwgeyBkYXRhOiBtZXJnZWREYXRhLCBtZWFzdXJlQ29sdW1uV2lkdGg6IGZpeEhlYWRlciB8fCBob3Jpem9uU2Nyb2xsIHx8IGlzU3RpY2t5IH0pKTtcbiAgICBjb25zdCBib2R5Q29sR3JvdXAgPSAoX2pzeChDb2xHcm91cCwgeyBjb2xXaWR0aHM6IGZsYXR0ZW5Db2x1bW5zLm1hcCgoeyB3aWR0aCB9KSA9PiB3aWR0aCksIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zIH0pKTtcbiAgICBjb25zdCBjYXB0aW9uRWxlbWVudCA9IGNhcHRpb24gIT09IG51bGwgJiYgY2FwdGlvbiAhPT0gdW5kZWZpbmVkID8gKF9qc3goXCJjYXB0aW9uXCIsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LWNhcHRpb25gLCBjaGlsZHJlbjogY2FwdGlvbiB9KSkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGF0YVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGRhdGE6IHRydWUgfSk7XG4gICAgY29uc3QgYXJpYVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGFyaWE6IHRydWUgfSk7XG4gICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSkge1xuICAgICAgICAvLyA+Pj4+Pj4gRml4ZWQgSGVhZGVyXG4gICAgICAgIGxldCBib2R5Q29udGVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXN0b21pemVTY3JvbGxCb2R5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBib2R5Q29udGVudCA9IGN1c3RvbWl6ZVNjcm9sbEJvZHkobWVyZ2VkRGF0YSwge1xuICAgICAgICAgICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgICAgICAgICAgcmVmOiBzY3JvbGxCb2R5UmVmLFxuICAgICAgICAgICAgICAgIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBoZWFkZXJQcm9wcy5jb2xXaWR0aHMgPSBmbGF0dGVuQ29sdW1ucy5tYXAoKHsgd2lkdGggfSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xXaWR0aCA9IGluZGV4ID09PSBmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxID8gd2lkdGggLSBzY3JvbGxiYXJTaXplIDogd2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xXaWR0aCA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTihjb2xXaWR0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbFdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5nKHByb3BzLmNvbHVtbnMubGVuZ3RoID09PSAwLCAnV2hlbiB1c2UgYGNvbXBvbmVudHMuYm9keWAgd2l0aCByZW5kZXIgcHJvcHMuIEVhY2ggY29sdW1uIHNob3VsZCBoYXZlIGEgZml4ZWQgYHdpZHRoYCB2YWx1ZS4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGJvZHlDb250ZW50ID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY3JvbGxYU3R5bGUpLCBzY3JvbGxZU3R5bGUpLCBvblNjcm9sbDogb25Cb2R5U2Nyb2xsLCByZWY6IHNjcm9sbEJvZHlSZWYsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1ib2R5YCwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIGJvZHlUYWJsZSwgIWZpeEZvb3RlciAmJiBzdW1tYXJ5Tm9kZSAmJiAoX2pzeChGb290ZXIsIHsgc3RpY2t5T2Zmc2V0czogc3RpY2t5T2Zmc2V0cywgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zLCBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSkgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZpeGVkIGhvbGRlciBzaGFyZSB0aGUgcHJvcHNcbiAgICAgICAgY29uc3QgZml4ZWRIb2xkZXJQcm9wcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgbm9EYXRhOiAhbWVyZ2VkRGF0YS5sZW5ndGgsIG1heENvbnRlbnRTY3JvbGw6IGhvcml6b25TY3JvbGwgJiYgbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyB9LCBoZWFkZXJQcm9wcyksIGNvbHVtbkNvbnRleHQpLCB7IGRpcmVjdGlvbixcbiAgICAgICAgICAgIHN0aWNreUNsYXNzTmFtZSwgc2Nyb2xsWDogbWVyZ2VkU2Nyb2xsWCwgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0LCBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCB9KTtcbiAgICAgICAgZ3JvdXBUYWJsZU5vZGUgPSAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc2hvd0hlYWRlciAhPT0gZmFsc2UgJiYgKF9qc3goRml4ZWRIb2xkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUHJvcHMsIHsgc3RpY2t5VG9wT2Zmc2V0OiBvZmZzZXRIZWFkZXIsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1oZWFkZXJgLCByZWY6IHNjcm9sbEhlYWRlclJlZiwgY29sR3JvdXA6IGJvZHlDb2xHcm91cCwgY2hpbGRyZW46IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgfSkpKSwgYm9keUNvbnRlbnQsIGZpeEZvb3RlciAmJiBmaXhGb290ZXIgIT09ICd0b3AnICYmIChfanN4KEZpeGVkSG9sZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclByb3BzLCB7IHN0aWNreUJvdHRvbU9mZnNldDogb2Zmc2V0U3VtbWFyeSwgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LXN1bW1hcnlgLCByZWY6IHNjcm9sbFN1bW1hcnlSZWYsIGNvbEdyb3VwOiBib2R5Q29sR3JvdXAsIGNoaWxkcmVuOiByZW5kZXJGaXhlZEZvb3RlclRhYmxlIH0pKSksIGlzU3RpY2t5ICYmIHNjcm9sbEJvZHlSZWYuY3VycmVudCAmJiBzY3JvbGxCb2R5UmVmLmN1cnJlbnQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIChfanN4KFN0aWNreVNjcm9sbEJhciwgeyByZWY6IHN0aWNreVJlZiwgb2Zmc2V0U2Nyb2xsOiBvZmZzZXRTY3JvbGwsIHNjcm9sbEJvZHlSZWY6IHNjcm9sbEJvZHlSZWYsIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLCBjb250YWluZXI6IGNvbnRhaW5lciwgZGlyZWN0aW9uOiBkaXJlY3Rpb24gfSkpXSB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyA+Pj4+Pj4gVW5pcXVlIHRhYmxlXG4gICAgICAgIGdyb3VwVGFibGVOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFhTdHlsZSksIHNjcm9sbFlTdHlsZSksIHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5jb250ZW50KSwgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tY29udGVudGAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5jb250ZW50KSwgb25TY3JvbGw6IG9uSW50ZXJuYWxTY3JvbGwsIHJlZjogc2Nyb2xsQm9keVJlZiwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIHNob3dIZWFkZXIgIT09IGZhbHNlICYmIF9qc3goSGVhZGVyLCBPYmplY3QuYXNzaWduKHt9LCBoZWFkZXJQcm9wcywgY29sdW1uQ29udGV4dCkpLCBib2R5VGFibGUsIHN1bW1hcnlOb2RlICYmIChfanN4KEZvb3RlciwgeyBzdGlja3lPZmZzZXRzOiBzdGlja3lPZmZzZXRzLCBmbGF0dGVuQ29sdW1uczogZmxhdHRlbkNvbHVtbnMsIGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSB9KSk7XG4gICAgfVxuICAgIGNvbnN0IHRhYmxlU3R5bGUgPSBPYmplY3QuYXNzaWduKHt9LCBzdHlsZSk7XG4gICAgLy8gQWRkIGNzcyB2YXIgZm9yIHN0aWNreSBoZWFkZXIgYHpJbmRleGAgY2FsY1xuICAgIGlmIChpc1N0aWNreSkge1xuICAgICAgICB0YWJsZVN0eWxlWyctLWNvbHVtbnMtY291bnQnXSA9IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aDtcbiAgICB9XG4gICAgbGV0IGZ1bGxUYWJsZSA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBjbHN4KHByZWZpeENscywgY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1ydGxgXTogZGlyZWN0aW9uID09PSAncnRsJyxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1zdGFydC1zaGFkb3dgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93YF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtc3RhcnQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dTdGFydCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dFbmQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1sYXlvdXQtZml4ZWRgXTogdGFibGVMYXlvdXQgPT09ICdmaXhlZCcsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1oZWFkZXJgXTogZml4SGVhZGVyLFxuICAgICAgICAgICAgLyoqIE5vIHVzZWQgYnV0IGZvciBjb21wYXRpYmxlICovXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1jb2x1bW5gXTogZml4Q29sdW1uLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tc2Nyb2xsLWhvcml6b250YWxgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtc3RhcnRgXTogKF9hID0gZmxhdHRlbkNvbHVtbnNbMF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maXhlZCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtZW5kYF06ICgoX2IgPSBmbGF0dGVuQ29sdW1uc1tmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZpeGVkKSA9PT0gJ2VuZCcsXG4gICAgICAgIH0pLCBzdHlsZTogdGFibGVTdHlsZSwgaWQ6IGlkLCByZWY6IGZ1bGxUYWJsZVJlZiB9LCBkYXRhUHJvcHMsIHsgY2hpbGRyZW46IFt0aXRsZSAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS10aXRsZWAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy50aXRsZSksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMudGl0bGUsIGNoaWxkcmVuOiB0aXRsZShtZXJnZWREYXRhKSB9KSksIF9qc3goXCJkaXZcIiwgeyByZWY6IHNjcm9sbEJvZHlDb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xzeChgJHtwcmVmaXhDbHN9LWNvbnRhaW5lcmAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5zZWN0aW9uKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5zZWN0aW9uLCBjaGlsZHJlbjogZ3JvdXBUYWJsZU5vZGUgfSksIGZvb3RlciAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS1mb290ZXJgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuZm9vdGVyKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5mb290ZXIsIGNoaWxkcmVuOiBmb290ZXIobWVyZ2VkRGF0YSkgfSkpXSB9KSkpO1xuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIGZ1bGxUYWJsZSA9IChfanN4KFJlc2l6ZU9ic2VydmVyLCB7IG9uUmVzaXplOiAoeyBvZmZzZXRXaWR0aCB9KSA9PiBvbkZ1bGxUYWJsZVJlc2l6ZShvZmZzZXRXaWR0aCksIGNoaWxkcmVuOiBmdWxsVGFibGUgfSkpO1xuICAgIH1cbiAgICBjb25zdCBmaXhlZEluZm9MaXN0ID0gdXNlRml4ZWRJbmZvKGZsYXR0ZW5Db2x1bW5zLCBzdGlja3lPZmZzZXRzKTtcbiAgICBjb25zdCBUYWJsZUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgLy8gU2Nyb2xsXG4gICAgICAgIHNjcm9sbFg6IG1lcmdlZFNjcm9sbFgsXG4gICAgICAgIHNjcm9sbEluZm8sXG4gICAgICAgIGNsYXNzTmFtZXMsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgLy8gVGFibGVcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBnZXRDb21wb25lbnQsXG4gICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgZml4ZWRJbmZvTGlzdCxcbiAgICAgICAgaXNTdGlja3ksXG4gICAgICAgIGNvbXBvbmVudFdpZHRoLFxuICAgICAgICBmaXhIZWFkZXIsXG4gICAgICAgIGZpeENvbHVtbixcbiAgICAgICAgaG9yaXpvblNjcm9sbCxcbiAgICAgICAgLy8gQm9keVxuICAgICAgICB0YWJsZUxheW91dDogbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kZWRSb3dDbGFzc05hbWU6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dDbGFzc05hbWUsXG4gICAgICAgIGV4cGFuZEljb246IG1lcmdlZEV4cGFuZEljb24sXG4gICAgICAgIGV4cGFuZGFibGVUeXBlLFxuICAgICAgICBleHBhbmRSb3dCeUNsaWNrOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZFJvd0J5Q2xpY2ssXG4gICAgICAgIGV4cGFuZGVkUm93UmVuZGVyOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93UmVuZGVyLFxuICAgICAgICBleHBhbmRlZFJvd09mZnNldDogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRJY29uQ29sdW1uSW5kZXg6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kSWNvbkNvbHVtbkluZGV4LFxuICAgICAgICBpbmRlbnRTaXplOiBleHBhbmRhYmxlQ29uZmlnLmluZGVudFNpemUsXG4gICAgICAgIGFsbENvbHVtbnNGaXhlZExlZnQ6IGZsYXR0ZW5Db2x1bW5zLmV2ZXJ5KGNvbCA9PiBjb2wuZml4ZWQgPT09ICdzdGFydCcpLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIGhvdmVyU3RhcnRSb3c6IHN0YXJ0Um93LFxuICAgICAgICBob3ZlckVuZFJvdzogZW5kUm93LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICByb3dFeHBhbmRhYmxlOiBleHBhbmRhYmxlQ29uZmlnLnJvd0V4cGFuZGFibGUsXG4gICAgICAgIG9uUm93LFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgICAgIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU6IG1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSxcbiAgICAgICAgcm93SG92ZXJhYmxlLFxuICAgICAgICAvLyBNZWFzdXJlIFJvd1xuICAgICAgICBtZWFzdXJlUm93UmVuZGVyLFxuICAgIH0pLCBbXG4gICAgICAgIC8vIFNjcm9sbFxuICAgICAgICBtZXJnZWRTY3JvbGxYLFxuICAgICAgICBzY3JvbGxJbmZvLFxuICAgICAgICBjbGFzc05hbWVzLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgIC8vIFRhYmxlXG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgICBzY3JvbGxiYXJTaXplLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGZpeGVkSW5mb0xpc3QsXG4gICAgICAgIGlzU3RpY2t5LFxuICAgICAgICBjb21wb25lbnRXaWR0aCxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBmaXhDb2x1bW4sXG4gICAgICAgIGhvcml6b25TY3JvbGwsXG4gICAgICAgIC8vIEJvZHlcbiAgICAgICAgbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd0NsYXNzTmFtZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kSWNvbixcbiAgICAgICAgZXhwYW5kYWJsZVR5cGUsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kUm93QnlDbGljayxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlcixcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5pbmRlbnRTaXplLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIHN0YXJ0Um93LFxuICAgICAgICBlbmRSb3csXG4gICAgICAgIG9uSG92ZXIsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcucm93RXhwYW5kYWJsZSxcbiAgICAgICAgb25Sb3csXG4gICAgICAgIGdldFJvd0tleSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICAgIHJvd0hvdmVyYWJsZSxcbiAgICAgICAgbWVhc3VyZVJvd1JlbmRlcixcbiAgICBdKTtcbiAgICByZXR1cm4gX2pzeChUYWJsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IFRhYmxlQ29udGV4dFZhbHVlLCBjaGlsZHJlbjogZnVsbFRhYmxlIH0pO1xufTtcbmNvbnN0IFJlZlRhYmxlID0gUmVhY3QuZm9yd2FyZFJlZihUYWJsZSk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFJlZlRhYmxlLmRpc3BsYXlOYW1lID0gJ1RhYmxlJztcbn1cbmV4cG9ydCBjb25zdCBnZW5UYWJsZSA9IChzaG91bGRUcmlnZ2VyUmVuZGVyKSA9PiB7XG4gICAgcmV0dXJuIG1ha2VJbW11dGFibGUoUmVmVGFibGUsIHNob3VsZFRyaWdnZXJSZW5kZXIpO1xufTtcbmNvbnN0IEltbXV0YWJsZVRhYmxlID0gZ2VuVGFibGUoKTtcbkltbXV0YWJsZVRhYmxlLkVYUEFORF9DT0xVTU4gPSBFWFBBTkRfQ09MVU1OO1xuSW1tdXRhYmxlVGFibGUuSU5URVJOQUxfSE9PS1MgPSBJTlRFUk5BTF9IT09LUztcbkltbXV0YWJsZVRhYmxlLkNvbHVtbiA9IENvbHVtbjtcbkltbXV0YWJsZVRhYmxlLkNvbHVtbkdyb3VwID0gQ29sdW1uR3JvdXA7XG5JbW11dGFibGVUYWJsZS5TdW1tYXJ5ID0gRm9vdGVyQ29tcG9uZW50cztcbmV4cG9ydCBkZWZhdWx0IEltbXV0YWJsZVRhYmxlOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
695
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1RhYmxlLmpzIiwiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9zcmMvY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9jbHN4MiIsIl9SZXNpemVPYnNlcnZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0U2Nyb2xsQmFyU2l6ZSIsIl91c2VFdmVudENhbGxiYWNrIiwiX3BpY2tBdHRycyIsIl9nZXQiLCJfd2FybmluZyIsIlJlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfQm9keSIsIl9Db2xHcm91cCIsIl9jb25zdGFudCIsIl9UYWJsZUNvbnRleHQiLCJfRml4ZWRIb2xkZXIiLCJfRm9vdGVyIiwiX1N1bW1hcnkiLCJfSGVhZGVyIiwiX3VzZUNvbHVtbnMzIiwiX3VzZUV4cGFuZDMiLCJfdXNlRml4ZWRJbmZvIiwiX3VzZUZyYW1lIiwiX3VzZUhvdmVyMyIsIl91c2VTdGlja3kyIiwiX3VzZVN0aWNreU9mZnNldHMiLCJfUGFuZWwiLCJfc3RpY2t5U2Nyb2xsQmFyIiwiX0NvbHVtbiIsIl9Db2x1bW5Hcm91cCIsIl92YWx1ZVV0aWwiLCJfcmVhY3RVdGlsIiwiX2lzRXF1YWwiLCJfdXNlTGF5b3V0RWZmZWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJERUZBVUxUX1BSRUZJWCIsImV4cG9ydHMiLCJFTVBUWV9EQVRBIiwiRU1QVFlfU0NST0xMX1RBUkdFVCIsImRlZmF1bHRFbXB0eSIsIlRhYmxlIiwidGFibGVQcm9wcyIsInJlZiIsIl9jbHN4IiwiX2EiLCJfYiIsInByb3BzIiwiYXNzaWduIiwicm93S2V5IiwicHJlZml4Q2xzIiwiZW1wdHlUZXh0IiwiY2xhc3NOYW1lIiwicm93Q2xhc3NOYW1lIiwic3R5bGUiLCJjbGFzc05hbWVzIiwic3R5bGVzIiwiZGF0YSIsInNjcm9sbCIsInRhYmxlTGF5b3V0IiwiZGlyZWN0aW9uIiwidGl0bGUiLCJmb290ZXIiLCJzdW1tYXJ5IiwiY2FwdGlvbiIsImlkIiwic2hvd0hlYWRlciIsImNvbXBvbmVudHMiLCJvblJvdyIsIm9uSGVhZGVyUm93IiwibWVhc3VyZVJvd1JlbmRlciIsIm9uU2Nyb2xsIiwiaW50ZXJuYWxIb29rcyIsInRyYW5zZm9ybUNvbHVtbnMiLCJpbnRlcm5hbFJlZnMiLCJ0YWlsb3IiLCJnZXRDb250YWluZXJXaWR0aCIsInN0aWNreSIsIl9wcm9wcyRyb3dIb3ZlcmFibGUiLCJyb3dIb3ZlcmFibGUiLCJtZXJnZWREYXRhIiwiaGFzRGF0YSIsImxlbmd0aCIsInVzZUludGVybmFsSG9va3MiLCJJTlRFUk5BTF9IT09LUyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZvckVhY2giLCJuYW1lIiwid2FybmluZyIsInVuZGVmaW5lZCIsImNvbmNhdCIsImdldENvbXBvbmVudCIsInVzZUNhbGxiYWNrIiwicGF0aCIsImRlZmF1bHRDb21wb25lbnQiLCJnZXRWYWx1ZSIsImdldFJvd0tleSIsInVzZU1lbW8iLCJyZWNvcmQiLCJrZXkiLCJjdXN0b21pemVTY3JvbGxCb2R5IiwiX3VzZUhvdmVyIiwidXNlSG92ZXIiLCJfdXNlSG92ZXIyIiwiX3NsaWNlZFRvQXJyYXkyIiwic3RhcnRSb3ciLCJlbmRSb3ciLCJvbkhvdmVyIiwiX3VzZUV4cGFuZCIsInVzZUV4cGFuZCIsIl91c2VFeHBhbmQyIiwiZXhwYW5kYWJsZUNvbmZpZyIsImV4cGFuZGFibGVUeXBlIiwibWVyZ2VkRXhwYW5kZWRLZXlzIiwibWVyZ2VkRXhwYW5kSWNvbiIsIm1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSIsIm9uVHJpZ2dlckV4cGFuZCIsInNjcm9sbFgiLCJ4IiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiY29tcG9uZW50V2lkdGgiLCJzZXRDb21wb25lbnRXaWR0aCIsIl91c2VDb2x1bW5zIiwidXNlQ29sdW1ucyIsImV4cGFuZGFibGUiLCJleHBhbmRlZFJvd1JlbmRlciIsImNvbHVtblRpdGxlIiwiZXhwYW5kZWRLZXlzIiwiZXhwYW5kSWNvbiIsImV4cGFuZEljb25Db2x1bW5JbmRleCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJfdXNlQ29sdW1uczIiLCJjb2x1bW5zIiwiZmxhdHRlbkNvbHVtbnMiLCJmbGF0dGVuU2Nyb2xsWCIsIm1lcmdlZFNjcm9sbFgiLCJjb2x1bW5Db250ZXh0IiwiZnVsbFRhYmxlUmVmIiwidXNlUmVmIiwic2Nyb2xsSGVhZGVyUmVmIiwic2Nyb2xsQm9keVJlZiIsInNjcm9sbEJvZHlDb250YWluZXJSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwibmF0aXZlRWxlbWVudCIsImN1cnJlbnQiLCJzY3JvbGxUbyIsImNvbmZpZyIsIkhUTUxFbGVtZW50IiwiaW5kZXgiLCJ0b3AiLCJvZmZzZXQiLCJ2YWxpZE51bWJlclZhbHVlIiwibWVyZ2VkS2V5IiwidGFyZ2V0RWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JvbGxJbnRvVmlldyIsImVsZW1lbnRUb3AiLCJvZmZzZXRUb3AiLCJzY3JvbGxTdW1tYXJ5UmVmIiwiX1JlYWN0JHVzZVN0YXRlMyIsIl9SZWFjdCR1c2VTdGF0ZTQiLCJzaGFkb3dTdGFydCIsInNldFNoYWRvd1N0YXJ0IiwiX1JlYWN0JHVzZVN0YXRlNSIsIl9SZWFjdCR1c2VTdGF0ZTYiLCJzaGFkb3dFbmQiLCJzZXRTaGFkb3dFbmQiLCJfUmVhY3QkdXNlU3RhdGU3IiwiTWFwIiwiX1JlYWN0JHVzZVN0YXRlOCIsImNvbHNXaWR0aHMiLCJ1cGRhdGVDb2xzV2lkdGhzIiwiY29sc0tleXMiLCJnZXRDb2x1bW5zS2V5IiwicHVyZUNvbFdpZHRocyIsIm1hcCIsImNvbHVtbktleSIsImNvbFdpZHRocyIsImpvaW4iLCJzdGlja3lPZmZzZXRzIiwidXNlU3RpY2t5T2Zmc2V0cyIsImZpeEhlYWRlciIsInZhbGlkYXRlVmFsdWUiLCJ5IiwiaG9yaXpvblNjcm9sbCIsIkJvb2xlYW4iLCJmaXhlZCIsImZpeENvbHVtbiIsInNvbWUiLCJfcmVmIiwic3RpY2t5UmVmIiwiX3VzZVN0aWNreSIsInVzZVN0aWNreSIsImlzU3RpY2t5Iiwib2Zmc2V0SGVhZGVyIiwib2Zmc2V0U3VtbWFyeSIsIm9mZnNldFNjcm9sbCIsInN0aWNreUNsYXNzTmFtZSIsImNvbnRhaW5lciIsInN1bW1hcnlOb2RlIiwiZml4Rm9vdGVyIiwiaXNWYWxpZEVsZW1lbnQiLCJ0eXBlIiwiU3VtbWFyeSIsInNjcm9sbFhTdHlsZSIsInNjcm9sbFlTdHlsZSIsInNjcm9sbFRhYmxlU3R5bGUiLCJvdmVyZmxvd1kiLCJtYXhIZWlnaHQiLCJvdmVyZmxvd1giLCJ3aWR0aCIsIm1pbldpZHRoIiwib25Db2x1bW5SZXNpemUiLCJ3aWR0aHMiLCJuZXdXaWR0aHMiLCJfdXNlVGltZW91dExvY2siLCJ1c2VUaW1lb3V0TG9jayIsIl91c2VUaW1lb3V0TG9jazIiLCJzZXRTY3JvbGxUYXJnZXQiLCJnZXRTY3JvbGxUYXJnZXQiLCJmb3JjZVNjcm9sbCIsInNjcm9sbExlZnQiLCJ0YXJnZXQiLCJzZXRUaW1lb3V0IiwiX1JlYWN0JHVzZVN0YXRlOSIsIl9SZWFjdCR1c2VTdGF0ZTAiLCJzY3JvbGxJbmZvIiwic2V0U2Nyb2xsSW5mbyIsIm9uSW50ZXJuYWxTY3JvbGwiLCJ1c2VFdmVudCIsIl9yZWYyIiwiY3VycmVudFRhcmdldCIsIm1lcmdlZFNjcm9sbExlZnQiLCJjb21wYXJlVGFyZ2V0Iiwic2V0U2Nyb2xsTGVmdCIsIm1lYXN1cmVUYXJnZXQiLCJhYnNTY3JvbGxTdGFydCIsIk1hdGgiLCJhYnMiLCJvcmkiLCJuZXh0U2Nyb2xsSW5mbyIsImlzRXF1YWwiLCJvbkJvZHlTY3JvbGwiLCJ0cmlnZ2VyT25TY3JvbGwiLCJnZXRET00iLCJvbkZ1bGxUYWJsZVJlc2l6ZSIsIm9mZnNldFdpZHRoIiwiX2MiLCJjaGVja1Njcm9sbEJhclZpc2libGUiLCJtZXJnZWRXaWR0aCIsInVzZUxheW91dEVmZmVjdCIsIm1vdW50ZWQiLCJ1c2VFZmZlY3QiLCJfUmVhY3QkdXNlU3RhdGUxIiwiX1JlYWN0JHVzZVN0YXRlMTAiLCJzY3JvbGxiYXJTaXplIiwic2V0U2Nyb2xsYmFyU2l6ZSIsIkVsZW1lbnQiLCJnZXRUYXJnZXRTY3JvbGxCYXJTaXplIiwiYm9keSIsInJlbmRlckZpeGVkSGVhZGVyVGFibGUiLCJmaXhlZEhvbGRlclBhc3NQcm9wcyIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiY2hpbGRyZW4iLCJfanN4IiwiSGVhZGVyIiwiRm9vdGVyIiwicmVuZGVyRml4ZWRGb290ZXJUYWJsZSIsIlRhYmxlQ29tcG9uZW50IiwibWVyZ2VkVGFibGVMYXlvdXQiLCJfcmVmMyIsImVsbGlwc2lzIiwiZ3JvdXBUYWJsZU5vZGUiLCJoZWFkZXJQcm9wcyIsImNvbHVtQ291bnQiLCJlbXB0eU5vZGUiLCJib2R5VGFibGUiLCJCb2R5IiwibWVhc3VyZUNvbHVtbldpZHRoIiwiYm9keUNvbEdyb3VwIiwiQ29sR3JvdXAiLCJfcmVmNCIsImNhcHRpb25FbGVtZW50IiwiZGF0YVByb3BzIiwicGlja0F0dHJzIiwiYXJpYVByb3BzIiwiYXJpYSIsImJvZHlDb250ZW50IiwiX3JlZjUiLCJjb2xXaWR0aCIsIk51bWJlciIsImlzTmFOIiwiZml4ZWRIb2xkZXJQcm9wcyIsIm5vRGF0YSIsIm1heENvbnRlbnRTY3JvbGwiLCJGaXhlZEhvbGRlciIsInN0aWNreVRvcE9mZnNldCIsImNvbEdyb3VwIiwic3RpY2t5Qm90dG9tT2Zmc2V0IiwiU3RpY2t5U2Nyb2xsQmFyIiwiY29udGVudCIsImNsc3giLCJ0YWJsZVN0eWxlIiwiZnVsbFRhYmxlIiwiX2RlZmluZVByb3BlcnR5MiIsIlBhbmVsIiwic2VjdGlvbiIsIlJlc2l6ZU9ic2VydmVyIiwib25SZXNpemUiLCJfcmVmNiIsImZpeGVkSW5mb0xpc3QiLCJ1c2VGaXhlZEluZm8iLCJUYWJsZUNvbnRleHRWYWx1ZSIsImV4cGFuZGVkUm93Q2xhc3NOYW1lIiwiZXhwYW5kUm93QnlDbGljayIsImV4cGFuZGVkUm93T2Zmc2V0IiwiaW5kZW50U2l6ZSIsImFsbENvbHVtbnNGaXhlZExlZnQiLCJldmVyeSIsImNvbCIsImhvdmVyU3RhcnRSb3ciLCJob3ZlckVuZFJvdyIsInJvd0V4cGFuZGFibGUiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJUYWJsZUNvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwiUmVmVGFibGUiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJnZW5UYWJsZSIsInNob3VsZFRyaWdnZXJSZW5kZXIiLCJtYWtlSW1tdXRhYmxlIiwiSW1tdXRhYmxlVGFibGUiLCJFWFBBTkRfQ09MVU1OIiwiQ29sdW1uIiwiQ29sdW1uR3JvdXAiLCJGb290ZXJDb21wb25lbnRzIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUM0QkEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxJQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFDLHVCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBVyxLQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFB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QUM3RixDQUFDO0FBTUQsSUFBTXdCLFFBQVEsZ0JBQUd0VixLQUFLLENBQUN1VixVQUFVLENBQUNyUyxLQUFLLENBQXdCO0FBRS9ELElBQUk0QyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUN6Q3NQLFFBQVEsQ0FBQ0UsV0FBVyxHQUFHLE9BQU87QUFDaEM7QUFFTyxJQUFNQyxRQUFRLEdBQUEzUyxPQUFBLENBQUEyUyxRQUFBLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsbUJBQXVELEVBQUk7RUFDbEYsT0FBTyxJQUFBQywyQkFBYSxFQUFDTCxRQUFRLEVBQUVJLG1CQUFtQixDQUFDO0FBQ3JELENBQUM7QUFFRCxJQUFNRSxjQUFjLEdBQUdILFFBQVEsQ0FBQSxDQUFFO0FBVWhDRyxjQUFxQyxDQUFDQyxhQUFhLEdBQUdBLHVCQUFhO0FBRW5FRCxjQUFxQyxDQUFDL1AsY0FBYyxHQUFHQSx3QkFBYztBQUVyRStQLGNBQXFDLENBQUNFLE1BQU0sR0FBR0Esa0JBQU07QUFFckRGLGNBQXFDLENBQUNHLFdBQVcsR0FBR0EsdUJBQVc7QUFFL0RILGNBQXFDLENBQUNuSSxPQUFPLEdBQUd1SSx3QkFBZ0I7QUFBQyxJQUFBQyxRQUFBLEdBQUFuVCxPQUFBLGNBRW5EOFMsY0FBb0MiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9pbnRlcm5hbC9rZXJuZWwvVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgUmVzaXplT2JzZXJ2ZXIgZnJvbSAnLi4vLi4vLi4vUmVzaXplT2JzZXJ2ZXInO1xuaW1wb3J0IHsgZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZSB9IGZyb20gJy4vdXRpbHMvZ2V0U2Nyb2xsQmFyU2l6ZSc7XG5pbXBvcnQgdXNlRXZlbnQgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCBwaWNrQXR0cnMgZnJvbSAnLi91dGlscy9waWNrQXR0cnMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vdXRpbHMvZ2V0JztcbmltcG9ydCB3YXJuaW5nIGZyb20gJy4vdXRpbHMvd2FybmluZyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQm9keSBmcm9tICcuL0JvZHknO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4vQ29sR3JvdXAnO1xuaW1wb3J0IHsgRVhQQU5EX0NPTFVNTiwgSU5URVJOQUxfSE9PS1MgfSBmcm9tICcuL2NvbnN0YW50JztcbmltcG9ydCBUYWJsZUNvbnRleHQsIHsgbWFrZUltbXV0YWJsZSB9IGZyb20gJy4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IEZpeGVkSG9sZGVyIGZyb20gJy4vRml4ZWRIb2xkZXInO1xuaW1wb3J0IEZvb3RlciwgeyBGb290ZXJDb21wb25lbnRzIH0gZnJvbSAnLi9Gb290ZXInO1xuaW1wb3J0IFN1bW1hcnkgZnJvbSAnLi9Gb290ZXIvU3VtbWFyeSc7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyL0hlYWRlcic7XG5pbXBvcnQgdXNlQ29sdW1ucyBmcm9tICcuL2hvb2tzL3VzZUNvbHVtbnMnO1xuaW1wb3J0IHVzZUV4cGFuZCBmcm9tICcuL2hvb2tzL3VzZUV4cGFuZCc7XG5pbXBvcnQgdXNlRml4ZWRJbmZvIGZyb20gJy4vaG9va3MvdXNlRml4ZWRJbmZvJztcbmltcG9ydCB7IHVzZVRpbWVvdXRMb2NrIH0gZnJvbSAnLi9ob29rcy91c2VGcmFtZSc7XG5pbXBvcnQgdXNlSG92ZXIgZnJvbSAnLi9ob29rcy91c2VIb3Zlcic7XG5pbXBvcnQgdXNlU3RpY2t5IGZyb20gJy4vaG9va3MvdXNlU3RpY2t5JztcbmltcG9ydCB1c2VTdGlja3lPZmZzZXRzIGZyb20gJy4vaG9va3MvdXNlU3RpY2t5T2Zmc2V0cyc7XG5pbXBvcnQgUGFuZWwgZnJvbSAnLi9QYW5lbCc7XG5pbXBvcnQgU3RpY2t5U2Nyb2xsQmFyIGZyb20gJy4vc3RpY2t5U2Nyb2xsQmFyJztcbmltcG9ydCBDb2x1bW4gZnJvbSAnLi9zdWdhci9Db2x1bW4nO1xuaW1wb3J0IENvbHVtbkdyb3VwIGZyb20gJy4vc3VnYXIvQ29sdW1uR3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q29sdW1uc0tleSwgdmFsaWRhdGVWYWx1ZSwgdmFsaWROdW1iZXJWYWx1ZSB9IGZyb20gJy4vdXRpbHMvdmFsdWVVdGlsJztcbmltcG9ydCB7IGdldERPTSB9IGZyb20gJy4uLy4uLy4uL1Jlc2l6ZU9ic2VydmVyL3V0aWxzL3JlYWN0VXRpbCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICcuL3NlbGVjdG9yLWNvbnRleHQvaXNFcXVhbCc7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF5b3V0RWZmZWN0JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BSRUZJWCA9ICdvbS10YWJsZSc7XG4vLyBVc2VkIGZvciBjb25kaXRpb25zIGNhY2hlXG5jb25zdCBFTVBUWV9EQVRBID0gW107XG4vLyBVc2VkIGZvciBjdXN0b21pemUgc2Nyb2xsXG5jb25zdCBFTVBUWV9TQ1JPTExfVEFSR0VUID0ge307XG5mdW5jdGlvbiBkZWZhdWx0RW1wdHkoKSB7XG4gICAgcmV0dXJuICdObyBEYXRhJztcbn1cbmNvbnN0IFRhYmxlID0gKHRhYmxlUHJvcHMsIHJlZikgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgcHJvcHMgPSBPYmplY3QuYXNzaWduKHsgcm93S2V5OiAna2V5JywgcHJlZml4Q2xzOiBERUZBVUxUX1BSRUZJWCwgZW1wdHlUZXh0OiBkZWZhdWx0RW1wdHkgfSwgdGFibGVQcm9wcyk7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIGNsYXNzTmFtZSwgcm93Q2xhc3NOYW1lLCBzdHlsZSwgY2xhc3NOYW1lcywgc3R5bGVzLCBkYXRhLCByb3dLZXksIHNjcm9sbCwgdGFibGVMYXlvdXQsIGRpcmVjdGlvbiwgXG4gICAgLy8gQWRkaXRpb25hbCBQYXJ0XG4gICAgdGl0bGUsIGZvb3Rlciwgc3VtbWFyeSwgY2FwdGlvbiwgXG4gICAgLy8gQ3VzdG9taXplXG4gICAgaWQsIHNob3dIZWFkZXIsIGNvbXBvbmVudHMsIGVtcHR5VGV4dCwgb25Sb3csIG9uSGVhZGVyUm93LCBcbiAgICAvLyBNZWFzdXJlIFJvd1xuICAgIG1lYXN1cmVSb3dSZW5kZXIsIFxuICAgIC8vIEV2ZW50c1xuICAgIG9uU2Nyb2xsLCBcbiAgICAvLyBJbnRlcm5hbFxuICAgIGludGVybmFsSG9va3MsIHRyYW5zZm9ybUNvbHVtbnMsIGludGVybmFsUmVmcywgdGFpbG9yLCBnZXRDb250YWluZXJXaWR0aCwgc3RpY2t5LCByb3dIb3ZlcmFibGUgPSB0cnVlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkRGF0YSA9IGRhdGEgfHwgRU1QVFlfREFUQTtcbiAgICBjb25zdCBoYXNEYXRhID0gISFtZXJnZWREYXRhLmxlbmd0aDtcbiAgICBjb25zdCB1c2VJbnRlcm5hbEhvb2tzID0gaW50ZXJuYWxIb29rcyA9PT0gSU5URVJOQUxfSE9PS1M7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IFdhcm5pbmcgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIFtcbiAgICAgICAgICAgICdvblJvd0NsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0RvdWJsZUNsaWNrJyxcbiAgICAgICAgICAgICdvblJvd0NvbnRleHRNZW51JyxcbiAgICAgICAgICAgICdvblJvd01vdXNlRW50ZXInLFxuICAgICAgICAgICAgJ29uUm93TW91c2VMZWF2ZScsXG4gICAgICAgIF0uZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgICAgIHdhcm5pbmcocHJvcHNbbmFtZV0gPT09IHVuZGVmaW5lZCwgYFxcYCR7bmFtZX1cXGAgaXMgcmVtb3ZlZCwgcGxlYXNlIHVzZSBcXGBvblJvd1xcYCBpbnN0ZWFkLmApO1xuICAgICAgICB9KTtcbiAgICAgICAgd2FybmluZyghKCdnZXRCb2R5V3JhcHBlcicgaW4gcHJvcHMpLCAnYGdldEJvZHlXcmFwcGVyYCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGN1c3RvbSBgY29tcG9uZW50c2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ3VzdG9taXplID09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdldENvbXBvbmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKChwYXRoLCBkZWZhdWx0Q29tcG9uZW50KSA9PiBnZXRWYWx1ZShjb21wb25lbnRzLCBwYXRoKSB8fCBkZWZhdWx0Q29tcG9uZW50LCBbY29tcG9uZW50c10pO1xuICAgIGNvbnN0IGdldFJvd0tleSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJvd0tleSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHJvd0tleTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHJlY29yZCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVjb3JkICYmIHJlY29yZFtyb3dLZXldO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKGtleSAhPT0gdW5kZWZpbmVkLCAnRWFjaCByZWNvcmQgaW4gdGFibGUgc2hvdWxkIGhhdmUgYSB1bmlxdWUgYGtleWAgcHJvcCwgb3Igc2V0IGByb3dLZXlgIHRvIGFuIHVuaXF1ZSBwcmltYXJ5IGtleS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH07XG4gICAgfSwgW3Jvd0tleV0pO1xuICAgIGNvbnN0IGN1c3RvbWl6ZVNjcm9sbEJvZHkgPSBnZXRDb21wb25lbnQoWydib2R5J10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gSG92ZXIgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc3RhcnRSb3csIGVuZFJvdywgb25Ib3Zlcl0gPSB1c2VIb3ZlcigpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gRXhwYW5kID09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbZXhwYW5kYWJsZUNvbmZpZywgZXhwYW5kYWJsZVR5cGUsIG1lcmdlZEV4cGFuZGVkS2V5cywgbWVyZ2VkRXhwYW5kSWNvbiwgbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lLCBvblRyaWdnZXJFeHBhbmQsXSA9IHVzZUV4cGFuZChwcm9wcywgbWVyZ2VkRGF0YSwgZ2V0Um93S2V5KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IENvbHVtbiA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsWCA9IHNjcm9sbCA9PT0gbnVsbCB8fCBzY3JvbGwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjcm9sbC54O1xuICAgIGNvbnN0IFtjb21wb25lbnRXaWR0aCwgc2V0Q29tcG9uZW50V2lkdGhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zLCBmbGF0dGVuU2Nyb2xsWF0gPSB1c2VDb2x1bW5zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcm9wcyksIGV4cGFuZGFibGVDb25maWcpLCB7IGV4cGFuZGFibGU6ICEhZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlciwgY29sdW1uVGl0bGU6IGV4cGFuZGFibGVDb25maWcuY29sdW1uVGl0bGUsIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLCBnZXRSb3dLZXksXG4gICAgICAgIG9uVHJpZ2dlckV4cGFuZCwgZXhwYW5kSWNvbjogbWVyZ2VkRXhwYW5kSWNvbiwgZXhwYW5kSWNvbkNvbHVtbkluZGV4OiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCwgZGlyZWN0aW9uLCBzY3JvbGxXaWR0aDogdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIHNjcm9sbFggPT09ICdudW1iZXInID8gc2Nyb2xsWCA6IG51bGwsIGNsaWVudFdpZHRoOiBjb21wb25lbnRXaWR0aCB9KSwgdXNlSW50ZXJuYWxIb29rcyA/IHRyYW5zZm9ybUNvbHVtbnMgOiBudWxsKTtcbiAgICBjb25zdCBtZXJnZWRTY3JvbGxYID0gZmxhdHRlblNjcm9sbFggIT09IG51bGwgJiYgZmxhdHRlblNjcm9sbFggIT09IHZvaWQgMCA/IGZsYXR0ZW5TY3JvbGxYIDogc2Nyb2xsWDtcbiAgICBjb25zdCBjb2x1bW5Db250ZXh0ID0gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBjb2x1bW5zLCBmbGF0dGVuQ29sdW1ucyB9KSwgW2NvbHVtbnMsIGZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGZ1bGxUYWJsZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxIZWFkZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2Nyb2xsQm9keVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzY3JvbGxCb2R5Q29udGFpbmVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiBmdWxsVGFibGVSZWYuY3VycmVudCxcbiAgICAgICAgICAgIHNjcm9sbFRvOiBjb25maWcgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbEJvZHlSZWYuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5hdGl2ZSBzY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpbmRleCwgdG9wLCBrZXksIG9mZnNldCB9ID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWROdW1iZXJWYWx1ZSh0b3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0b3AgbW9kZSwgb2Zmc2V0IGlzIGlnbm9yZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKHsgdG9wIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVyZ2VkS2V5ID0ga2V5ICE9PSBudWxsICYmIGtleSAhPT0gdm9pZCAwID8ga2V5IDogZ2V0Um93S2V5KG1lcmdlZERhdGFbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtcm93LWtleT1cIiR7bWVyZ2VkS2V5fVwiXWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvZmZzZXQsIHVzZSBzY3JvbGxJbnRvVmlldyBmb3IgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIG9mZnNldCwgdXNlIGVsZW1lbnQncyBvZmZzZXRUb3AgKyBvZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvcCA9IHRhcmdldEVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxCb2R5UmVmLmN1cnJlbnQuc2Nyb2xsVG8oeyB0b3A6IGVsZW1lbnRUb3AgKyBvZmZzZXQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKChfYiA9IHNjcm9sbEJvZHlSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNjcm9sbFRvKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdG8gcHJveHlcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQm9keVJlZi5jdXJyZW50LnNjcm9sbFRvKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IFNjcm9sbCA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3Qgc2Nyb2xsU3VtbWFyeVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbc2hhZG93U3RhcnQsIHNldFNoYWRvd1N0YXJ0XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hhZG93RW5kLCBzZXRTaGFkb3dFbmRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb2xzV2lkdGhzLCB1cGRhdGVDb2xzV2lkdGhzXSA9IFJlYWN0LnVzZVN0YXRlKG5ldyBNYXAoKSk7XG4gICAgLy8gQ29udmVydCBtYXAgdG8gbnVtYmVyIHdpZHRoXG4gICAgY29uc3QgY29sc0tleXMgPSBnZXRDb2x1bW5zS2V5KGZsYXR0ZW5Db2x1bW5zKTtcbiAgICBjb25zdCBwdXJlQ29sV2lkdGhzID0gY29sc0tleXMubWFwKGNvbHVtbktleSA9PiBjb2xzV2lkdGhzLmdldChjb2x1bW5LZXkpKTtcbiAgICBjb25zdCBjb2xXaWR0aHMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHB1cmVDb2xXaWR0aHMsIFtwdXJlQ29sV2lkdGhzLmpvaW4oJ18nKV0pO1xuICAgIGNvbnN0IHN0aWNreU9mZnNldHMgPSB1c2VTdGlja3lPZmZzZXRzKGNvbFdpZHRocywgZmxhdHRlbkNvbHVtbnMpO1xuICAgIGNvbnN0IGZpeEhlYWRlciA9IHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKHNjcm9sbC55KTtcbiAgICBjb25zdCBob3Jpem9uU2Nyb2xsID0gKHNjcm9sbCAmJiB2YWxpZGF0ZVZhbHVlKG1lcmdlZFNjcm9sbFgpKSB8fCBCb29sZWFuKGV4cGFuZGFibGVDb25maWcuZml4ZWQpO1xuICAgIGNvbnN0IGZpeENvbHVtbiA9IGhvcml6b25TY3JvbGwgJiYgZmxhdHRlbkNvbHVtbnMuc29tZSgoeyBmaXhlZCB9KSA9PiBmaXhlZCk7XG4gICAgLy8gU3RpY2t5XG4gICAgY29uc3Qgc3RpY2t5UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHsgaXNTdGlja3ksIG9mZnNldEhlYWRlciwgb2Zmc2V0U3VtbWFyeSwgb2Zmc2V0U2Nyb2xsLCBzdGlja3lDbGFzc05hbWUsIGNvbnRhaW5lciB9ID0gdXNlU3RpY2t5KHN0aWNreSwgcHJlZml4Q2xzKTtcbiAgICAvLyBGb290ZXIgKEZpeCBmb290ZXIgbXVzdCBmaXhlZCBoZWFkZXIpXG4gICAgY29uc3Qgc3VtbWFyeU5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHN1bW1hcnkgPT09IG51bGwgfHwgc3VtbWFyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VtbWFyeShtZXJnZWREYXRhKSwgW3N1bW1hcnksIG1lcmdlZERhdGFdKTtcbiAgICBjb25zdCBmaXhGb290ZXIgPSAoZml4SGVhZGVyIHx8IGlzU3RpY2t5KSAmJlxuICAgICAgICBSZWFjdC5pc1ZhbGlkRWxlbWVudChzdW1tYXJ5Tm9kZSkgJiZcbiAgICAgICAgc3VtbWFyeU5vZGUudHlwZSA9PT0gU3VtbWFyeSAmJlxuICAgICAgICBzdW1tYXJ5Tm9kZS5wcm9wcy5maXhlZDtcbiAgICAvLyBTY3JvbGxcbiAgICBsZXQgc2Nyb2xsWFN0eWxlO1xuICAgIGxldCBzY3JvbGxZU3R5bGU7XG4gICAgbGV0IHNjcm9sbFRhYmxlU3R5bGU7XG4gICAgaWYgKGZpeEhlYWRlcikge1xuICAgICAgICBzY3JvbGxZU3R5bGUgPSB7XG4gICAgICAgICAgICBvdmVyZmxvd1k6IGhhc0RhdGEgPyAnc2Nyb2xsJyA6ICdhdXRvJyxcbiAgICAgICAgICAgIG1heEhlaWdodDogc2Nyb2xsLnksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIHNjcm9sbFhTdHlsZSA9IHsgb3ZlcmZsb3dYOiAnYXV0bycgfTtcbiAgICAgICAgLy8gV2hlbiBubyB2ZXJ0aWNhbCBzY3JvbGxiYXIsIHNob3VsZCBoaWRlIGl0XG4gICAgICAgIGlmICghZml4SGVhZGVyKSB7XG4gICAgICAgICAgICBzY3JvbGxZU3R5bGUgPSB7IG92ZXJmbG93WTogJ2hpZGRlbicgfTtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxUYWJsZVN0eWxlID0ge1xuICAgICAgICAgICAgd2lkdGg6IG1lcmdlZFNjcm9sbFggPT09IHRydWUgPyAnYXV0bycgOiBtZXJnZWRTY3JvbGxYLFxuICAgICAgICAgICAgbWluV2lkdGg6ICcxMDAlJyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgb25Db2x1bW5SZXNpemUgPSBSZWFjdC51c2VDYWxsYmFjaygoY29sdW1uS2V5LCB3aWR0aCkgPT4ge1xuICAgICAgICB1cGRhdGVDb2xzV2lkdGhzKHdpZHRocyA9PiB7XG4gICAgICAgICAgICBpZiAod2lkdGhzLmdldChjb2x1bW5LZXkpICE9PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpZHRocyA9IG5ldyBNYXAod2lkdGhzKTtcbiAgICAgICAgICAgICAgICBuZXdXaWR0aHMuc2V0KGNvbHVtbktleSwgd2lkdGgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdXaWR0aHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd2lkdGhzO1xuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgW3NldFNjcm9sbFRhcmdldCwgZ2V0U2Nyb2xsVGFyZ2V0XSA9IHVzZVRpbWVvdXRMb2NrKG51bGwpO1xuICAgIGZ1bmN0aW9uIGZvcmNlU2Nyb2xsKHNjcm9sbExlZnQsIHRhcmdldCkge1xuICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQoc2Nyb2xsTGVmdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGFyZ2V0LnNjcm9sbExlZnQgIT09IHNjcm9sbExlZnQpIHtcbiAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgIC8vIERlbGF5IHRvIGZvcmNlIHNjcm9sbCBwb3NpdGlvbiBpZiBub3Qgc3luY1xuICAgICAgICAgICAgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBbc2Nyb2xsSW5mbywgc2V0U2Nyb2xsSW5mb10gPSBSZWFjdC51c2VTdGF0ZShbMCwgMF0pO1xuICAgIGNvbnN0IG9uSW50ZXJuYWxTY3JvbGwgPSB1c2VFdmVudCgoeyBjdXJyZW50VGFyZ2V0LCBzY3JvbGxMZWZ0IH0pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBtZXJnZWRTY3JvbGxMZWZ0ID0gdHlwZW9mIHNjcm9sbExlZnQgPT09ICdudW1iZXInID8gc2Nyb2xsTGVmdCA6IGN1cnJlbnRUYXJnZXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3QgY29tcGFyZVRhcmdldCA9IGN1cnJlbnRUYXJnZXQgfHwgRU1QVFlfU0NST0xMX1RBUkdFVDtcbiAgICAgICAgaWYgKCFnZXRTY3JvbGxUYXJnZXQoKSB8fCBnZXRTY3JvbGxUYXJnZXQoKSA9PT0gY29tcGFyZVRhcmdldCkge1xuICAgICAgICAgICAgc2V0U2Nyb2xsVGFyZ2V0KGNvbXBhcmVUYXJnZXQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsSGVhZGVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsQm9keVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIHNjcm9sbFN1bW1hcnlSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBmb3JjZVNjcm9sbChtZXJnZWRTY3JvbGxMZWZ0LCAoX2EgPSBzdGlja3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldFNjcm9sbExlZnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lYXN1cmVUYXJnZXQgPSBjdXJyZW50VGFyZ2V0IHx8IHNjcm9sbEhlYWRlclJlZi5jdXJyZW50O1xuICAgICAgICBpZiAobWVhc3VyZVRhcmdldCkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsV2lkdGggPSBcbiAgICAgICAgICAgIC8vIFNob3VsZCB1c2UgbWVyZ2VkU2Nyb2xsWCBpbiB2aXJ0dWFsIHRhYmxlKHVzZUludGVybmFsSG9va3MgJiYgdGFpbG9yID09PSB0cnVlKVxuICAgICAgICAgICAgdXNlSW50ZXJuYWxIb29rcyAmJiB0YWlsb3IgJiYgdHlwZW9mIG1lcmdlZFNjcm9sbFggPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyBtZXJnZWRTY3JvbGxYXG4gICAgICAgICAgICAgICAgOiBtZWFzdXJlVGFyZ2V0LnNjcm9sbFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgY2xpZW50V2lkdGggPSBtZWFzdXJlVGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgYWJzU2Nyb2xsU3RhcnQgPSBNYXRoLmFicyhtZXJnZWRTY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgIHNldFNjcm9sbEluZm8ob3JpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0U2Nyb2xsSW5mbyA9IFthYnNTY3JvbGxTdGFydCwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRXF1YWwob3JpLCBuZXh0U2Nyb2xsSW5mbykgPyBvcmkgOiBuZXh0U2Nyb2xsSW5mbztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gc3BhY2UgdG8gc2Nyb2xsXG4gICAgICAgICAgICBpZiAoc2Nyb2xsV2lkdGggPT09IGNsaWVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHNldFNoYWRvd0VuZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0U2hhZG93U3RhcnQoYWJzU2Nyb2xsU3RhcnQgPiAwKTtcbiAgICAgICAgICAgIHNldFNoYWRvd0VuZChhYnNTY3JvbGxTdGFydCA8IHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGggLSAxKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uQm9keVNjcm9sbCA9IHVzZUV2ZW50KChlKSA9PiB7XG4gICAgICAgIG9uSW50ZXJuYWxTY3JvbGwoZSk7XG4gICAgICAgIG9uU2Nyb2xsID09PSBudWxsIHx8IG9uU2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNjcm9sbChlKTtcbiAgICB9KTtcbiAgICBjb25zdCB0cmlnZ2VyT25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwgJiYgc2Nyb2xsQm9keVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBvbkludGVybmFsU2Nyb2xsKHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBnZXRET00oc2Nyb2xsQm9keVJlZi5jdXJyZW50KSxcbiAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiAoX2EgPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZXRTaGFkb3dTdGFydChmYWxzZSk7XG4gICAgICAgICAgICBzZXRTaGFkb3dFbmQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbkZ1bGxUYWJsZVJlc2l6ZSA9IChvZmZzZXRXaWR0aCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgKF9hID0gc3RpY2t5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jaGVja1Njcm9sbEJhclZpc2libGUoKTtcbiAgICAgICAgbGV0IG1lcmdlZFdpZHRoID0gKF9jID0gb2Zmc2V0V2lkdGggIT09IG51bGwgJiYgb2Zmc2V0V2lkdGggIT09IHZvaWQgMCA/IG9mZnNldFdpZHRoIDogKF9iID0gZnVsbFRhYmxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgZ2V0Q29udGFpbmVyV2lkdGggJiYgZnVsbFRhYmxlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lcmdlZFdpZHRoID0gZ2V0Q29udGFpbmVyV2lkdGgoZnVsbFRhYmxlUmVmLmN1cnJlbnQsIG1lcmdlZFdpZHRoKSB8fCBtZXJnZWRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVyZ2VkV2lkdGggIT09IGNvbXBvbmVudFdpZHRoKSB7XG4gICAgICAgICAgICB0cmlnZ2VyT25TY3JvbGwoKTtcbiAgICAgICAgICAgIHNldENvbXBvbmVudFdpZHRoKG1lcmdlZFdpZHRoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGhvcml6b25TY3JvbGwpIHtcbiAgICAgICAgICAgIG9uRnVsbFRhYmxlUmVzaXplKCk7XG4gICAgICAgIH1cbiAgICB9LCBbaG9yaXpvblNjcm9sbF0pO1xuICAgIC8vIFN5bmMgc2Nyb2xsIGJhciB3aGVuIGluaXQgb3IgYGhvcml6b25TY3JvbGxgLCBgZGF0YWAgYW5kIGBjb2x1bW5zLmxlbmd0aGAgY2hhbmdlZFxuICAgIGNvbnN0IG1vdW50ZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIG9uRnVsbFRhYmxlUmVzaXplIHdpbGwgYmUgdHJpZ2dlciBvbmNlIHdoZW4gUmVzaXplT2JzZXJ2ZXIgaXMgbW91bnRlZFxuICAgICAgICAvLyBUaGlzIHdpbGwgcmVkdWNlIG9uZSBkdXBsaWNhdGVkIHRyaWdnZXJPblNjcm9sbCB0aW1lXG4gICAgICAgIGlmIChtb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHRyaWdnZXJPblNjcm9sbCgpO1xuICAgICAgICB9XG4gICAgfSwgW2hvcml6b25TY3JvbGwsIGRhdGEsIGNvbHVtbnMubGVuZ3RoXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09IEVmZmVjdHMgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IFtzY3JvbGxiYXJTaXplLCBzZXRTY3JvbGxiYXJTaXplXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdGFpbG9yIHx8ICF1c2VJbnRlcm5hbEhvb2tzKSB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsQm9keVJlZi5jdXJyZW50IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5UmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFNjcm9sbGJhclNpemUoZ2V0VGFyZ2V0U2Nyb2xsQmFyU2l6ZShzY3JvbGxCb2R5Q29udGFpbmVyUmVmLmN1cnJlbnQpLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT0gSU5URVJOQUwgSE9PS1MgPT09PT09PT09PT09PT09PT09XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHVzZUludGVybmFsSG9va3MgJiYgaW50ZXJuYWxSZWZzKSB7XG4gICAgICAgICAgICBpbnRlcm5hbFJlZnMuYm9keS5jdXJyZW50ID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PSBSZW5kZXI6IEZ1bmMgPT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgPSBSZWFjdC51c2VDYWxsYmFjayhmaXhlZEhvbGRlclBhc3NQcm9wcyA9PiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbX2pzeChIZWFkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzKSksIGZpeEZvb3RlciA9PT0gJ3RvcCcgJiYgX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSwgW2ZpeEZvb3Rlciwgc3VtbWFyeU5vZGVdKTtcbiAgICBjb25zdCByZW5kZXJGaXhlZEZvb3RlclRhYmxlID0gUmVhY3QudXNlQ2FsbGJhY2soZml4ZWRIb2xkZXJQYXNzUHJvcHMgPT4gX2pzeChGb290ZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUGFzc1Byb3BzLCB7IGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSksIFtzdW1tYXJ5Tm9kZV0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT0gUmVuZGVyOiBOb2RlID09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBUYWJsZUNvbXBvbmVudCA9IGdldENvbXBvbmVudChbJ3RhYmxlJ10sICd0YWJsZScpO1xuICAgIC8vIFRhYmxlIGxheW91dFxuICAgIGNvbnN0IG1lcmdlZFRhYmxlTGF5b3V0ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmICh0YWJsZUxheW91dCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYmxlTGF5b3V0O1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gc2Nyb2xsLnggaXMgbWF4LWNvbnRlbnQsIG5vIG5lZWQgdG8gZml4IHRhYmxlIGxheW91dFxuICAgICAgICAvLyBpdCdzIHdpZHRoIHNob3VsZCBzdHJldGNoIG91dCB0byBmaXQgY29udGVudFxuICAgICAgICBpZiAoZml4Q29sdW1uKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyA/ICdhdXRvJyA6ICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSB8fCBmbGF0dGVuQ29sdW1ucy5zb21lKCh7IGVsbGlwc2lzIH0pID0+IGVsbGlwc2lzKSkge1xuICAgICAgICAgICAgcmV0dXJuICdmaXhlZCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICB9LCBbZml4SGVhZGVyLCBmaXhDb2x1bW4sIGZsYXR0ZW5Db2x1bW5zLCB0YWJsZUxheW91dCwgaXNTdGlja3ldKTtcbiAgICBsZXQgZ3JvdXBUYWJsZU5vZGU7XG4gICAgLy8gSGVhZGVyIHByb3BzXG4gICAgY29uc3QgaGVhZGVyUHJvcHMgPSB7XG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgY29sdW1Db3VudDogZmxhdHRlbkNvbHVtbnMubGVuZ3RoLFxuICAgICAgICBzdGlja3lPZmZzZXRzLFxuICAgICAgICBvbkhlYWRlclJvdyxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBzY3JvbGwsXG4gICAgfTtcbiAgICAvLyBFbXB0eVxuICAgIGNvbnN0IGVtcHR5Tm9kZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoaGFzRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBlbXB0eVRleHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBlbXB0eVRleHQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW1wdHlUZXh0O1xuICAgIH0sIFtoYXNEYXRhLCBlbXB0eVRleHRdKTtcbiAgICAvLyBCb2R5XG4gICAgY29uc3QgYm9keVRhYmxlID0gKF9qc3goQm9keSwgeyBkYXRhOiBtZXJnZWREYXRhLCBtZWFzdXJlQ29sdW1uV2lkdGg6IGZpeEhlYWRlciB8fCBob3Jpem9uU2Nyb2xsIHx8IGlzU3RpY2t5IH0pKTtcbiAgICBjb25zdCBib2R5Q29sR3JvdXAgPSAoX2pzeChDb2xHcm91cCwgeyBjb2xXaWR0aHM6IGZsYXR0ZW5Db2x1bW5zLm1hcCgoeyB3aWR0aCB9KSA9PiB3aWR0aCksIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zIH0pKTtcbiAgICBjb25zdCBjYXB0aW9uRWxlbWVudCA9IGNhcHRpb24gIT09IG51bGwgJiYgY2FwdGlvbiAhPT0gdW5kZWZpbmVkID8gKF9qc3goXCJjYXB0aW9uXCIsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LWNhcHRpb25gLCBjaGlsZHJlbjogY2FwdGlvbiB9KSkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGF0YVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGRhdGE6IHRydWUgfSk7XG4gICAgY29uc3QgYXJpYVByb3BzID0gcGlja0F0dHJzKHByb3BzLCB7IGFyaWE6IHRydWUgfSk7XG4gICAgaWYgKGZpeEhlYWRlciB8fCBpc1N0aWNreSkge1xuICAgICAgICAvLyA+Pj4+Pj4gRml4ZWQgSGVhZGVyXG4gICAgICAgIGxldCBib2R5Q29udGVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXN0b21pemVTY3JvbGxCb2R5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBib2R5Q29udGVudCA9IGN1c3RvbWl6ZVNjcm9sbEJvZHkobWVyZ2VkRGF0YSwge1xuICAgICAgICAgICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgICAgICAgICAgcmVmOiBzY3JvbGxCb2R5UmVmLFxuICAgICAgICAgICAgICAgIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBoZWFkZXJQcm9wcy5jb2xXaWR0aHMgPSBmbGF0dGVuQ29sdW1ucy5tYXAoKHsgd2lkdGggfSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xXaWR0aCA9IGluZGV4ID09PSBmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxID8gd2lkdGggLSBzY3JvbGxiYXJTaXplIDogd2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xXaWR0aCA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTihjb2xXaWR0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbFdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5nKHByb3BzLmNvbHVtbnMubGVuZ3RoID09PSAwLCAnV2hlbiB1c2UgYGNvbXBvbmVudHMuYm9keWAgd2l0aCByZW5kZXIgcHJvcHMuIEVhY2ggY29sdW1uIHNob3VsZCBoYXZlIGEgZml4ZWQgYHdpZHRoYCB2YWx1ZS4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGJvZHlDb250ZW50ID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY3JvbGxYU3R5bGUpLCBzY3JvbGxZU3R5bGUpLCBvblNjcm9sbDogb25Cb2R5U2Nyb2xsLCByZWY6IHNjcm9sbEJvZHlSZWYsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1ib2R5YCwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIGJvZHlUYWJsZSwgIWZpeEZvb3RlciAmJiBzdW1tYXJ5Tm9kZSAmJiAoX2pzeChGb290ZXIsIHsgc3RpY2t5T2Zmc2V0czogc3RpY2t5T2Zmc2V0cywgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zLCBjaGlsZHJlbjogc3VtbWFyeU5vZGUgfSkpXSB9KSkgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZpeGVkIGhvbGRlciBzaGFyZSB0aGUgcHJvcHNcbiAgICAgICAgY29uc3QgZml4ZWRIb2xkZXJQcm9wcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgbm9EYXRhOiAhbWVyZ2VkRGF0YS5sZW5ndGgsIG1heENvbnRlbnRTY3JvbGw6IGhvcml6b25TY3JvbGwgJiYgbWVyZ2VkU2Nyb2xsWCA9PT0gJ21heC1jb250ZW50JyB9LCBoZWFkZXJQcm9wcyksIGNvbHVtbkNvbnRleHQpLCB7IGRpcmVjdGlvbixcbiAgICAgICAgICAgIHN0aWNreUNsYXNzTmFtZSwgc2Nyb2xsWDogbWVyZ2VkU2Nyb2xsWCwgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0LCBvblNjcm9sbDogb25JbnRlcm5hbFNjcm9sbCB9KTtcbiAgICAgICAgZ3JvdXBUYWJsZU5vZGUgPSAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbc2hvd0hlYWRlciAhPT0gZmFsc2UgJiYgKF9qc3goRml4ZWRIb2xkZXIsIE9iamVjdC5hc3NpZ24oe30sIGZpeGVkSG9sZGVyUHJvcHMsIHsgc3RpY2t5VG9wT2Zmc2V0OiBvZmZzZXRIZWFkZXIsIGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1oZWFkZXJgLCByZWY6IHNjcm9sbEhlYWRlclJlZiwgY29sR3JvdXA6IGJvZHlDb2xHcm91cCwgY2hpbGRyZW46IHJlbmRlckZpeGVkSGVhZGVyVGFibGUgfSkpKSwgYm9keUNvbnRlbnQsIGZpeEZvb3RlciAmJiBmaXhGb290ZXIgIT09ICd0b3AnICYmIChfanN4KEZpeGVkSG9sZGVyLCBPYmplY3QuYXNzaWduKHt9LCBmaXhlZEhvbGRlclByb3BzLCB7IHN0aWNreUJvdHRvbU9mZnNldDogb2Zmc2V0U3VtbWFyeSwgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LXN1bW1hcnlgLCByZWY6IHNjcm9sbFN1bW1hcnlSZWYsIGNvbEdyb3VwOiBib2R5Q29sR3JvdXAsIGNoaWxkcmVuOiByZW5kZXJGaXhlZEZvb3RlclRhYmxlIH0pKSksIGlzU3RpY2t5ICYmIHNjcm9sbEJvZHlSZWYuY3VycmVudCAmJiBzY3JvbGxCb2R5UmVmLmN1cnJlbnQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIChfanN4KFN0aWNreVNjcm9sbEJhciwgeyByZWY6IHN0aWNreVJlZiwgb2Zmc2V0U2Nyb2xsOiBvZmZzZXRTY3JvbGwsIHNjcm9sbEJvZHlSZWY6IHNjcm9sbEJvZHlSZWYsIG9uU2Nyb2xsOiBvbkludGVybmFsU2Nyb2xsLCBjb250YWluZXI6IGNvbnRhaW5lciwgZGlyZWN0aW9uOiBkaXJlY3Rpb24gfSkpXSB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyA+Pj4+Pj4gVW5pcXVlIHRhYmxlXG4gICAgICAgIGdyb3VwVGFibGVOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjcm9sbFhTdHlsZSksIHNjcm9sbFlTdHlsZSksIHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5jb250ZW50KSwgY2xhc3NOYW1lOiBjbHN4KGAke3ByZWZpeENsc30tY29udGVudGAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5jb250ZW50KSwgb25TY3JvbGw6IG9uSW50ZXJuYWxTY3JvbGwsIHJlZjogc2Nyb2xsQm9keVJlZiwgY2hpbGRyZW46IF9qc3hzKFRhYmxlQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2Nyb2xsVGFibGVTdHlsZSksIHsgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0IH0pIH0sIGFyaWFQcm9wcywgeyBjaGlsZHJlbjogW2NhcHRpb25FbGVtZW50LCBib2R5Q29sR3JvdXAsIHNob3dIZWFkZXIgIT09IGZhbHNlICYmIF9qc3goSGVhZGVyLCBPYmplY3QuYXNzaWduKHt9LCBoZWFkZXJQcm9wcywgY29sdW1uQ29udGV4dCkpLCBib2R5VGFibGUsIHN1bW1hcnlOb2RlICYmIChfanN4KEZvb3RlciwgeyBzdGlja3lPZmZzZXRzOiBzdGlja3lPZmZzZXRzLCBmbGF0dGVuQ29sdW1uczogZmxhdHRlbkNvbHVtbnMsIGNoaWxkcmVuOiBzdW1tYXJ5Tm9kZSB9KSldIH0pKSB9KSk7XG4gICAgfVxuICAgIGNvbnN0IHRhYmxlU3R5bGUgPSBPYmplY3QuYXNzaWduKHt9LCBzdHlsZSk7XG4gICAgLy8gQWRkIGNzcyB2YXIgZm9yIHN0aWNreSBoZWFkZXIgYHpJbmRleGAgY2FsY1xuICAgIGlmIChpc1N0aWNreSkge1xuICAgICAgICB0YWJsZVN0eWxlWyctLWNvbHVtbnMtY291bnQnXSA9IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aDtcbiAgICB9XG4gICAgbGV0IGZ1bGxUYWJsZSA9IChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBjbHN4KHByZWZpeENscywgY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1ydGxgXTogZGlyZWN0aW9uID09PSAncnRsJyxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1zdGFydC1zaGFkb3dgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93YF06IGhvcml6b25TY3JvbGwsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXgtc3RhcnQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dTdGFydCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWZpeC1lbmQtc2hhZG93LXNob3dgXTogaG9yaXpvblNjcm9sbCAmJiBzaGFkb3dFbmQsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1sYXlvdXQtZml4ZWRgXTogdGFibGVMYXlvdXQgPT09ICdmaXhlZCcsXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1oZWFkZXJgXTogZml4SGVhZGVyLFxuICAgICAgICAgICAgLyoqIE5vIHVzZWQgYnV0IGZvciBjb21wYXRpYmxlICovXG4gICAgICAgICAgICBbYCR7cHJlZml4Q2xzfS1maXhlZC1jb2x1bW5gXTogZml4Q29sdW1uLFxuICAgICAgICAgICAgW2Ake3ByZWZpeENsc30tc2Nyb2xsLWhvcml6b250YWxgXTogaG9yaXpvblNjcm9sbCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtc3RhcnRgXTogKF9hID0gZmxhdHRlbkNvbHVtbnNbMF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maXhlZCxcbiAgICAgICAgICAgIFtgJHtwcmVmaXhDbHN9LWhhcy1maXgtZW5kYF06ICgoX2IgPSBmbGF0dGVuQ29sdW1uc1tmbGF0dGVuQ29sdW1ucy5sZW5ndGggLSAxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZpeGVkKSA9PT0gJ2VuZCcsXG4gICAgICAgIH0pLCBzdHlsZTogdGFibGVTdHlsZSwgaWQ6IGlkLCByZWY6IGZ1bGxUYWJsZVJlZiB9LCBkYXRhUHJvcHMsIHsgY2hpbGRyZW46IFt0aXRsZSAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS10aXRsZWAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy50aXRsZSksIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMudGl0bGUsIGNoaWxkcmVuOiB0aXRsZShtZXJnZWREYXRhKSB9KSksIF9qc3goXCJkaXZcIiwgeyByZWY6IHNjcm9sbEJvZHlDb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xzeChgJHtwcmVmaXhDbHN9LWNvbnRhaW5lcmAsIGNsYXNzTmFtZXMgPT09IG51bGwgfHwgY2xhc3NOYW1lcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xhc3NOYW1lcy5zZWN0aW9uKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5zZWN0aW9uLCBjaGlsZHJlbjogZ3JvdXBUYWJsZU5vZGUgfSksIGZvb3RlciAmJiAoX2pzeChQYW5lbCwgeyBjbGFzc05hbWU6IGNsc3goYCR7cHJlZml4Q2xzfS1mb290ZXJgLCBjbGFzc05hbWVzID09PSBudWxsIHx8IGNsYXNzTmFtZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsYXNzTmFtZXMuZm9vdGVyKSwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5mb290ZXIsIGNoaWxkcmVuOiBmb290ZXIobWVyZ2VkRGF0YSkgfSkpXSB9KSkpO1xuICAgIGlmIChob3Jpem9uU2Nyb2xsKSB7XG4gICAgICAgIGZ1bGxUYWJsZSA9IChfanN4KFJlc2l6ZU9ic2VydmVyLCB7IG9uUmVzaXplOiAoeyBvZmZzZXRXaWR0aCB9KSA9PiBvbkZ1bGxUYWJsZVJlc2l6ZShvZmZzZXRXaWR0aCksIGNoaWxkcmVuOiBmdWxsVGFibGUgfSkpO1xuICAgIH1cbiAgICBjb25zdCBmaXhlZEluZm9MaXN0ID0gdXNlRml4ZWRJbmZvKGZsYXR0ZW5Db2x1bW5zLCBzdGlja3lPZmZzZXRzKTtcbiAgICBjb25zdCBUYWJsZUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgLy8gU2Nyb2xsXG4gICAgICAgIHNjcm9sbFg6IG1lcmdlZFNjcm9sbFgsXG4gICAgICAgIHNjcm9sbEluZm8sXG4gICAgICAgIGNsYXNzTmFtZXMsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgLy8gVGFibGVcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBnZXRDb21wb25lbnQsXG4gICAgICAgIHNjcm9sbGJhclNpemUsXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgZml4ZWRJbmZvTGlzdCxcbiAgICAgICAgaXNTdGlja3ksXG4gICAgICAgIGNvbXBvbmVudFdpZHRoLFxuICAgICAgICBmaXhIZWFkZXIsXG4gICAgICAgIGZpeENvbHVtbixcbiAgICAgICAgaG9yaXpvblNjcm9sbCxcbiAgICAgICAgLy8gQm9keVxuICAgICAgICB0YWJsZUxheW91dDogbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kZWRSb3dDbGFzc05hbWU6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dDbGFzc05hbWUsXG4gICAgICAgIGV4cGFuZEljb246IG1lcmdlZEV4cGFuZEljb24sXG4gICAgICAgIGV4cGFuZGFibGVUeXBlLFxuICAgICAgICBleHBhbmRSb3dCeUNsaWNrOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZFJvd0J5Q2xpY2ssXG4gICAgICAgIGV4cGFuZGVkUm93UmVuZGVyOiBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93UmVuZGVyLFxuICAgICAgICBleHBhbmRlZFJvd09mZnNldDogZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRJY29uQ29sdW1uSW5kZXg6IGV4cGFuZGFibGVDb25maWcuZXhwYW5kSWNvbkNvbHVtbkluZGV4LFxuICAgICAgICBpbmRlbnRTaXplOiBleHBhbmRhYmxlQ29uZmlnLmluZGVudFNpemUsXG4gICAgICAgIGFsbENvbHVtbnNGaXhlZExlZnQ6IGZsYXR0ZW5Db2x1bW5zLmV2ZXJ5KGNvbCA9PiBjb2wuZml4ZWQgPT09ICdzdGFydCcpLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIGhvdmVyU3RhcnRSb3c6IHN0YXJ0Um93LFxuICAgICAgICBob3ZlckVuZFJvdzogZW5kUm93LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICByb3dFeHBhbmRhYmxlOiBleHBhbmRhYmxlQ29uZmlnLnJvd0V4cGFuZGFibGUsXG4gICAgICAgIG9uUm93LFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgICAgIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU6IG1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSxcbiAgICAgICAgcm93SG92ZXJhYmxlLFxuICAgICAgICAvLyBNZWFzdXJlIFJvd1xuICAgICAgICBtZWFzdXJlUm93UmVuZGVyLFxuICAgIH0pLCBbXG4gICAgICAgIC8vIFNjcm9sbFxuICAgICAgICBtZXJnZWRTY3JvbGxYLFxuICAgICAgICBzY3JvbGxJbmZvLFxuICAgICAgICBjbGFzc05hbWVzLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgIC8vIFRhYmxlXG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAgZ2V0Q29tcG9uZW50LFxuICAgICAgICBzY3JvbGxiYXJTaXplLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGZpeGVkSW5mb0xpc3QsXG4gICAgICAgIGlzU3RpY2t5LFxuICAgICAgICBjb21wb25lbnRXaWR0aCxcbiAgICAgICAgZml4SGVhZGVyLFxuICAgICAgICBmaXhDb2x1bW4sXG4gICAgICAgIGhvcml6b25TY3JvbGwsXG4gICAgICAgIC8vIEJvZHlcbiAgICAgICAgbWVyZ2VkVGFibGVMYXlvdXQsXG4gICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd0NsYXNzTmFtZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kSWNvbixcbiAgICAgICAgZXhwYW5kYWJsZVR5cGUsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcuZXhwYW5kUm93QnlDbGljayxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd1JlbmRlcixcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRlZFJvd09mZnNldCxcbiAgICAgICAgb25UcmlnZ2VyRXhwYW5kLFxuICAgICAgICBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICAgICAgZXhwYW5kYWJsZUNvbmZpZy5pbmRlbnRTaXplLFxuICAgICAgICBlbXB0eU5vZGUsXG4gICAgICAgIC8vIENvbHVtblxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmbGF0dGVuQ29sdW1ucyxcbiAgICAgICAgb25Db2x1bW5SZXNpemUsXG4gICAgICAgIGNvbFdpZHRocyxcbiAgICAgICAgLy8gUm93XG4gICAgICAgIHN0YXJ0Um93LFxuICAgICAgICBlbmRSb3csXG4gICAgICAgIG9uSG92ZXIsXG4gICAgICAgIGV4cGFuZGFibGVDb25maWcucm93RXhwYW5kYWJsZSxcbiAgICAgICAgb25Sb3csXG4gICAgICAgIGdldFJvd0tleSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgICAgICBtZXJnZWRDaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICAgIHJvd0hvdmVyYWJsZSxcbiAgICAgICAgbWVhc3VyZVJvd1JlbmRlcixcbiAgICBdKTtcbiAgICByZXR1cm4gX2pzeChUYWJsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IFRhYmxlQ29udGV4dFZhbHVlLCBjaGlsZHJlbjogZnVsbFRhYmxlIH0pO1xufTtcbmNvbnN0IFJlZlRhYmxlID0gUmVhY3QuZm9yd2FyZFJlZihUYWJsZSk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFJlZlRhYmxlLmRpc3BsYXlOYW1lID0gJ1RhYmxlJztcbn1cbmV4cG9ydCBjb25zdCBnZW5UYWJsZSA9IChzaG91bGRUcmlnZ2VyUmVuZGVyKSA9PiB7XG4gICAgcmV0dXJuIG1ha2VJbW11dGFibGUoUmVmVGFibGUsIHNob3VsZFRyaWdnZXJSZW5kZXIpO1xufTtcbmNvbnN0IEltbXV0YWJsZVRhYmxlID0gZ2VuVGFibGUoKTtcbkltbXV0YWJsZVRhYmxlLkVYUEFORF9DT0xVTU4gPSBFWFBBTkRfQ09MVU1OO1xuSW1tdXRhYmxlVGFibGUuSU5URVJOQUxfSE9PS1MgPSBJTlRFUk5BTF9IT09LUztcbkltbXV0YWJsZVRhYmxlLkNvbHVtbiA9IENvbHVtbjtcbkltbXV0YWJsZVRhYmxlLkNvbHVtbkdyb3VwID0gQ29sdW1uR3JvdXA7XG5JbW11dGFibGVUYWJsZS5TdW1tYXJ5ID0gRm9vdGVyQ29tcG9uZW50cztcbmV4cG9ydCBkZWZhdWx0IEltbXV0YWJsZVRhYmxlOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -16,8 +16,7 @@ var _TableContext = _interopRequireWildcard(require("../context/TableContext"));
|
|
|
16
16
|
var _useFlattenRecords = _interopRequireDefault(require("../hooks/useFlattenRecords"));
|
|
17
17
|
var _BodyLine = _interopRequireDefault(require("./BodyLine"));
|
|
18
18
|
var _context = require("./context");
|
|
19
|
-
function
|
|
20
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
21
20
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
22
21
|
var t = {};
|
|
23
22
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -295,4 +294,4 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
295
294
|
ResponseGrid.displayName = 'ResponseGrid';
|
|
296
295
|
}
|
|
297
296
|
var _default = exports["default"] = ResponseGrid;
|
|
298
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1ZpcnR1YWxUYWJsZS9Cb2R5R3JpZC5qcyIsImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL3NyYy9jb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC9WaXJ0dWFsVGFibGUvQm9keUdyaWQudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9zZWxlY3RvckNvbnRleHQiLCJfVmlydHVhbExpc3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiUmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9UYWJsZUNvbnRleHQiLCJfdXNlRmxhdHRlblJlY29yZHMiLCJfQm9keUxpbmUiLCJfY29udGV4dCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIkdyaWQiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJkYXRhIiwib25TY3JvbGwiLCJfdXNlQ29udGV4dCIsInVzZUNvbnRleHQiLCJUYWJsZUNvbnRleHQiLCJmbGF0dGVuQ29sdW1ucyIsIm9uQ29sdW1uUmVzaXplIiwiZ2V0Um93S2V5IiwiZXhwYW5kZWRLZXlzIiwicHJlZml4Q2xzIiwiY2hpbGRyZW5Db2x1bW5OYW1lIiwic2Nyb2xsWCIsImRpcmVjdGlvbiIsIl91c2VDb250ZXh0MiIsIlN0YXRpY0NvbnRleHQiLCJzdGlja3kiLCJzY3JvbGxZIiwibGlzdEl0ZW1IZWlnaHQiLCJnZXRDb21wb25lbnQiLCJvblRhYmxlUHJvcFNjcm9sbCIsImxpc3RSZWYiLCJ1c2VSZWYiLCJmbGF0dGVuRGF0YSIsInVzZUZsYXR0ZW5SZWNvcmRzIiwiY29sdW1uc1dpZHRoIiwidXNlTWVtbyIsInRvdGFsIiwibWFwIiwiX3JlZiIsIndpZHRoIiwibWluV2lkdGgiLCJrZXkiLCJmaW5hbFdpZHRoIiwiTWF0aCIsIm1heCIsImNvbHVtbnNPZmZzZXQiLCJjb2xXaWR0aCIsInVzZUVmZmVjdCIsImZvckVhY2giLCJfcmVmMiIsIl9yZWYzIiwiX3NsaWNlZFRvQXJyYXkyIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsIl9hIiwib2JqIiwic2Nyb2xsVG8iLCJjb25maWciLCJfYiIsIm9mZnNldCIsInJlc3RDb25maWciLCJjdXJyZW50IiwiYXNzaWduIiwiYWxpZ24iLCJuYXRpdmVFbGVtZW50IiwiZ2V0U2Nyb2xsSW5mbyIsIngiLCJ2YWx1ZSIsImxlZnQiLCJ5IiwidG9wIiwiZ2V0Um93U3BhbiIsImNvbHVtbiIsImluZGV4IiwicmVjb3JkIiwib25DZWxsIiwiY2VsbFByb3BzIiwicm93U3BhbiIsImV4dHJhUmVuZGVyIiwiaW5mbyIsInN0YXJ0IiwiZW5kIiwiZ2V0U2l6ZSIsIm9mZnNldFkiLCJmaXJzdFJvd1NwYW5Db2x1bW5zIiwiZmlsdGVyIiwic3RhcnRJbmRleCIsIl9sb29wIiwibGFzdFJvd1NwYW5Db2x1bW5zIiwiZW5kSW5kZXgiLCJfbG9vcDIiLCJfaSIsInNwYW5MaW5lcyIsIl9sb29wMyIsIl9pMiIsIml0ZW0iLCJzb21lIiwicHVzaCIsIm5vZGVzIiwicm93S2V5IiwiZ2V0SGVpZ2h0IiwiZW5kSXRlbUluZGV4IiwiZW5kSXRlbSIsInNhZmVFbmRJbmRleCIsIm1pbiIsInNhZmVFbmRJdGVtIiwiZW5kSXRlbUtleSIsInNpemVJbmZvIiwiYm90dG9tIiwiX2pzeCIsIkJvZHlMaW5lIiwic3R5bGUiLCJleHRyYSIsImdyaWRDb250ZXh0IiwidGJsUHJlZml4Q2xzIiwiY29uY2F0Iiwid3JhcHBlckNvbXBvbmVudCIsImhvcml6b250YWxTY3JvbGxCYXJTdHlsZSIsInBvc2l0aW9uIiwiX3R5cGVvZjIiLCJvZmZzZXRTY3JvbGwiLCJHcmlkQ29udGV4dCIsIlByb3ZpZGVyIiwiY2hpbGRyZW4iLCJWaXJ0dWFsTGlzdCIsImZ1bGxIZWlnaHQiLCJzdHlsZXMiLCJob3Jpem9udGFsU2Nyb2xsQmFyIiwiY2xhc3NOYW1lIiwiaGVpZ2h0IiwiaXRlbUhlaWdodCIsIml0ZW1LZXkiLCJjb21wb25lbnQiLCJzY3JvbGxXaWR0aCIsIm9uVmlydHVhbFNjcm9sbCIsIl9yZWY0IiwiY3VycmVudFRhcmdldCIsInNjcm9sbExlZnQiLCJpdGVtUHJvcHMiLCJSZXNwb25zZUdyaWQiLCJyZXNwb25zZUltbXV0YWJsZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDVkEsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQUQsdUJBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFPLGtCQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFBUSxTQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFBdUQsU0FBQVUseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYs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bnRlcm5hbC9rZXJuZWwvVmlydHVhbFRhYmxlL0JvZHlHcmlkLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAnLi4vc2VsZWN0b3ItY29udGV4dCc7XG5pbXBvcnQgVmlydHVhbExpc3QgZnJvbSAnLi4vLi4vLi4vLi4vVmlydHVhbExpc3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRhYmxlQ29udGV4dCwgeyByZXNwb25zZUltbXV0YWJsZSB9IGZyb20gJy4uL2NvbnRleHQvVGFibGVDb250ZXh0JztcbmltcG9ydCB1c2VGbGF0dGVuUmVjb3JkcyBmcm9tICcuLi9ob29rcy91c2VGbGF0dGVuUmVjb3Jkcyc7XG5pbXBvcnQgQm9keUxpbmUgZnJvbSAnLi9Cb2R5TGluZSc7XG5pbXBvcnQgeyBHcmlkQ29udGV4dCwgU3RhdGljQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5jb25zdCBHcmlkID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgZGF0YSwgb25TY3JvbGwgfSA9IHByb3BzO1xuICAgIGNvbnN0IHsgZmxhdHRlbkNvbHVtbnMsIG9uQ29sdW1uUmVzaXplLCBnZXRSb3dLZXksIGV4cGFuZGVkS2V5cywgcHJlZml4Q2xzLCBjaGlsZHJlbkNvbHVtbk5hbWUsIHNjcm9sbFgsIGRpcmVjdGlvbiwgfSA9IHVzZUNvbnRleHQoVGFibGVDb250ZXh0LCBbXG4gICAgICAgICdmbGF0dGVuQ29sdW1ucycsXG4gICAgICAgICdvbkNvbHVtblJlc2l6ZScsXG4gICAgICAgICdnZXRSb3dLZXknLFxuICAgICAgICAncHJlZml4Q2xzJyxcbiAgICAgICAgJ2V4cGFuZGVkS2V5cycsXG4gICAgICAgICdjaGlsZHJlbkNvbHVtbk5hbWUnLFxuICAgICAgICAnc2Nyb2xsWCcsXG4gICAgICAgICdkaXJlY3Rpb24nLFxuICAgIF0pO1xuICAgIGNvbnN0IHsgc3RpY2t5LCBzY3JvbGxZLCBsaXN0SXRlbUhlaWdodCwgZ2V0Q29tcG9uZW50LCBvblNjcm9sbDogb25UYWJsZVByb3BTY3JvbGwsIH0gPSB1c2VDb250ZXh0KFN0YXRpY0NvbnRleHQpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBSZWYgPT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGxpc3RSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IERhdGEgPT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgZmxhdHRlbkRhdGEgPSB1c2VGbGF0dGVuUmVjb3JkcyhkYXRhLCBjaGlsZHJlbkNvbHVtbk5hbWUsIGV4cGFuZGVkS2V5cywgZ2V0Um93S2V5KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBDb2x1bW4gPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBjb2x1bW5zV2lkdGggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcbiAgICAgICAgcmV0dXJuIGZsYXR0ZW5Db2x1bW5zLm1hcCgoeyB3aWR0aCwgbWluV2lkdGgsIGtleSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaW5hbFdpZHRoID0gTWF0aC5tYXgod2lkdGggfHwgMCwgbWluV2lkdGggfHwgMCk7XG4gICAgICAgICAgICB0b3RhbCArPSBmaW5hbFdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIFtrZXksIGZpbmFsV2lkdGgsIHRvdGFsXTtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZsYXR0ZW5Db2x1bW5zXSk7XG4gICAgY29uc3QgY29sdW1uc09mZnNldCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gY29sdW1uc1dpZHRoLm1hcChjb2xXaWR0aCA9PiBjb2xXaWR0aFsyXSksIFtjb2x1bW5zV2lkdGhdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb2x1bW5zV2lkdGguZm9yRWFjaCgoW2tleSwgd2lkdGhdKSA9PiB7XG4gICAgICAgICAgICBvbkNvbHVtblJlc2l6ZShrZXksIHdpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW2NvbHVtbnNXaWR0aF0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBSZWYgPT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgb2JqID0ge1xuICAgICAgICAgICAgc2Nyb2xsVG86IChjb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBjb25maWcsIHJlc3RDb25maWcgPSBfX3Jlc3QoY29uZmlnLCBbXCJvZmZzZXRcIl0pO1xuICAgICAgICAgICAgICAgIC8vIElmIG9mZnNldCBpcyBwcm92aWRlZCwgZm9yY2UgYWxpZ24gdG8gJ3RvcCcgZm9yIGNvbnNpc3RlbnQgYmVoYXZpb3JcbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcmVzdENvbmZpZyksIHsgb2Zmc2V0LCBhbGlnbjogJ3RvcCcgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgKF9iID0gbGlzdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc2Nyb2xsVG8oY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmF0aXZlRWxlbWVudDogKF9hID0gbGlzdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmF0aXZlRWxlbWVudCxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgJ3Njcm9sbExlZnQnLCB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+IHsgdmFyIF9hOyByZXR1cm4gKChfYSA9IGxpc3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldFNjcm9sbEluZm8oKS54KSB8fCAwOyB9LFxuICAgICAgICAgICAgc2V0OiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2Nyb2xsVG8oe1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAnc2Nyb2xsVG9wJywge1xuICAgICAgICAgICAgZ2V0OiAoKSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBsaXN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRTY3JvbGxJbmZvKCkueSkgfHwgMDsgfSxcbiAgICAgICAgICAgIHNldDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09IENvbC9Sb3cgU3BhbiA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdldFJvd1NwYW4gPSAoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCByZWNvcmQgPSAoX2EgPSBmbGF0dGVuRGF0YVtpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZWNvcmQ7XG4gICAgICAgIGNvbnN0IHsgb25DZWxsIH0gPSBjb2x1bW47XG4gICAgICAgIGlmIChvbkNlbGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxQcm9wcyA9IG9uQ2VsbChyZWNvcmQsIGluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiAoX2IgPSBjZWxsUHJvcHMgPT09IG51bGwgfHwgY2VsbFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjZWxsUHJvcHMucm93U3BhbikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhUmVuZGVyID0gaW5mbyA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCwgZ2V0U2l6ZSwgb2Zmc2V0WSB9ID0gaW5mbztcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBubyBkYXRhXG4gICAgICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaW5kIGZpcnN0IHJvd1NwYW4gY29sdW1uXG4gICAgICAgIGxldCBmaXJzdFJvd1NwYW5Db2x1bW5zID0gZmxhdHRlbkNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAvLyByb3dTcGFuIGlzIDBcbiAgICAgICAgY29sdW1uID0+IGdldFJvd1NwYW4oY29sdW1uLCBzdGFydCkgPT09IDApO1xuICAgICAgICBsZXQgc3RhcnRJbmRleCA9IHN0YXJ0O1xuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgICAgICAgICBmaXJzdFJvd1NwYW5Db2x1bW5zID0gZmlyc3RSb3dTcGFuQ29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGdldFJvd1NwYW4oY29sdW1uLCBpKSA9PT0gMCk7XG4gICAgICAgICAgICBpZiAoIWZpcnN0Um93U3BhbkNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmluZCBsYXN0IHJvd1NwYW4gY29sdW1uXG4gICAgICAgIGxldCBsYXN0Um93U3BhbkNvbHVtbnMgPSBmbGF0dGVuQ29sdW1ucy5maWx0ZXIoXG4gICAgICAgIC8vIHJvd1NwYW4gaXMgbm90IDFcbiAgICAgICAgY29sdW1uID0+IGdldFJvd1NwYW4oY29sdW1uLCBlbmQpICE9PSAxKTtcbiAgICAgICAgbGV0IGVuZEluZGV4ID0gZW5kO1xuICAgICAgICBmb3IgKGxldCBpID0gZW5kOyBpIDwgZmxhdHRlbkRhdGEubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGxhc3RSb3dTcGFuQ29sdW1ucyA9IGxhc3RSb3dTcGFuQ29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGdldFJvd1NwYW4oY29sdW1uLCBpKSAhPT0gMSk7XG4gICAgICAgICAgICBpZiAoIWxhc3RSb3dTcGFuQ29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBlbmRJbmRleCA9IE1hdGgubWF4KGkgLSAxLCBlbmQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIENvbGxlY3QgdGhlIGxpbmUgd2hvIGhhcyByb3dTcGFuXG4gICAgICAgIGNvbnN0IHNwYW5MaW5lcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleDsgaSA8PSBlbmRJbmRleDsgaSArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gZmxhdHRlbkRhdGFbaV07XG4gICAgICAgICAgICAvLyBUaGlzIGNvZGUgd2lsbCBuZXZlciByZWFjaCwganVzdCBpbmNhc2VcbiAgICAgICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZsYXR0ZW5Db2x1bW5zLnNvbWUoY29sdW1uID0+IGdldFJvd1NwYW4oY29sdW1uLCBpKSA+IDEpKSB7XG4gICAgICAgICAgICAgICAgc3BhbkxpbmVzLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGF0Y2ggZXh0cmEgbGluZSBvbiB0aGUgcGFnZVxuICAgICAgICBjb25zdCBub2RlcyA9IHNwYW5MaW5lcy5tYXAoaW5kZXggPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZsYXR0ZW5EYXRhW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0tleSA9IGdldFJvd0tleShpdGVtLnJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgZ2V0SGVpZ2h0ID0gKHJvd1NwYW4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJdGVtSW5kZXggPSBpbmRleCArIHJvd1NwYW4gLSAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZEl0ZW0gPSBmbGF0dGVuRGF0YVtlbmRJdGVtSW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmICghZW5kSXRlbSB8fCAhZW5kSXRlbS5yZWNvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xhbXAg5Yiw5b2T5YmN5Y+v55So55qE5pyA5ZCO5LiA6KGM77yM5oiW6YCA5YyW5Li66buY6K6k6auY5bqmXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhZmVFbmRJbmRleCA9IE1hdGgubWluKGVuZEl0ZW1JbmRleCwgZmxhdHRlbkRhdGEubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhZmVFbmRJdGVtID0gZmxhdHRlbkRhdGFbc2FmZUVuZEluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kSXRlbUtleSA9IGdldFJvd0tleShzYWZlRW5kSXRlbS5yZWNvcmQsIHNhZmVFbmRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVJbmZvID0gZ2V0U2l6ZShyb3dLZXksIGVuZEl0ZW1LZXkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZUluZm8uYm90dG9tIC0gc2l6ZUluZm8udG9wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJdGVtS2V5ID0gZ2V0Um93S2V5KGVuZEl0ZW0ucmVjb3JkLCBlbmRJdGVtSW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpemVJbmZvID0gZ2V0U2l6ZShyb3dLZXksIGVuZEl0ZW1LZXkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzaXplSW5mby5ib3R0b20gLSBzaXplSW5mby50b3A7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgc2l6ZUluZm8gPSBnZXRTaXplKHJvd0tleSk7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3goQm9keUxpbmUsIHsgZGF0YTogaXRlbSwgcm93S2V5OiByb3dLZXksIGluZGV4OiBpbmRleCwgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtb2Zmc2V0WSArIHNpemVJbmZvLnRvcCxcbiAgICAgICAgICAgICAgICB9LCBleHRyYTogdHJ1ZSwgZ2V0SGVpZ2h0OiBnZXRIZWlnaHQgfSwgaW5kZXgpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBub2RlcztcbiAgICB9O1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gQ29udGV4dCA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdyaWRDb250ZXh0ID0gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBjb2x1bW5zT2Zmc2V0IH0pLCBbY29sdW1uc09mZnNldF0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHRibFByZWZpeENscyA9IGAke3ByZWZpeENsc30tdGJvZHlgO1xuICAgIC8vIGRlZmF1bHQgJ2RpdicgaW4gVmlydHVhbExpc3RcbiAgICBjb25zdCB3cmFwcGVyQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnYm9keScsICd3cmFwcGVyJ10pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IFN0aWNreSBTY3JvbGwgQmFyID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgaG9yaXpvbnRhbFNjcm9sbEJhclN0eWxlID0ge307XG4gICAgaWYgKHN0aWNreSkge1xuICAgICAgICBob3Jpem9udGFsU2Nyb2xsQmFyU3R5bGUucG9zaXRpb24gPSAnc3RpY2t5JztcbiAgICAgICAgaG9yaXpvbnRhbFNjcm9sbEJhclN0eWxlLmJvdHRvbSA9IDA7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RpY2t5ID09PSAnb2JqZWN0JyAmJiBzdGlja3kub2Zmc2V0U2Nyb2xsKSB7XG4gICAgICAgICAgICBob3Jpem9udGFsU2Nyb2xsQmFyU3R5bGUuYm90dG9tID0gc3RpY2t5Lm9mZnNldFNjcm9sbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKF9qc3goR3JpZENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGdyaWRDb250ZXh0LCBjaGlsZHJlbjogX2pzeChWaXJ0dWFsTGlzdCwgeyBmdWxsSGVpZ2h0OiBmYWxzZSwgcmVmOiBsaXN0UmVmLCBwcmVmaXhDbHM6IGAke3RibFByZWZpeENsc30tdmlydHVhbGAsIHN0eWxlczogeyBob3Jpem9udGFsU2Nyb2xsQmFyOiBob3Jpem9udGFsU2Nyb2xsQmFyU3R5bGUgfSwgY2xhc3NOYW1lOiB0YmxQcmVmaXhDbHMsIGhlaWdodDogc2Nyb2xsWSwgaXRlbUhlaWdodDogbGlzdEl0ZW1IZWlnaHQgfHwgMjQsIGRhdGE6IGZsYXR0ZW5EYXRhLCBpdGVtS2V5OiBpdGVtID0+IGdldFJvd0tleShpdGVtLnJlY29yZCksIGNvbXBvbmVudDogd3JhcHBlckNvbXBvbmVudCwgc2Nyb2xsV2lkdGg6IHNjcm9sbFgsIGRpcmVjdGlvbjogZGlyZWN0aW9uLCBvblZpcnR1YWxTY3JvbGw6ICh7IHggfSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBvblNjcm9sbCh7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQ6IChfYSA9IGxpc3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IHgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBvblNjcm9sbDogb25UYWJsZVByb3BTY3JvbGwsIGV4dHJhUmVuZGVyOiBleHRyYVJlbmRlciwgY2hpbGRyZW46IChpdGVtLCBpbmRleCwgaXRlbVByb3BzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93S2V5ID0gZ2V0Um93S2V5KGl0ZW0ucmVjb3JkLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3goQm9keUxpbmUsIHsgZGF0YTogaXRlbSwgcm93S2V5OiByb3dLZXksIGluZGV4OiBpbmRleCwgc3R5bGU6IGl0ZW1Qcm9wcy5zdHlsZSB9KTtcbiAgICAgICAgICAgIH0gfSkgfSkpO1xufSk7XG5jb25zdCBSZXNwb25zZUdyaWQgPSByZXNwb25zZUltbXV0YWJsZShHcmlkKTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgUmVzcG9uc2VHcmlkLmRpc3BsYXlOYW1lID0gJ1Jlc3BvbnNlR3JpZCc7XG59XG5leHBvcnQgZGVmYXVsdCBSZXNwb25zZUdyaWQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
297
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1ZpcnR1YWxUYWJsZS9Cb2R5R3JpZC5qcyIsImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL3NyYy9jb21wb25lbnRzL1RhYmxlL2ludGVybmFsL2tlcm5lbC9WaXJ0dWFsVGFibGUvQm9keUdyaWQudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9zZWxlY3RvckNvbnRleHQiLCJfVmlydHVhbExpc3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiUmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9UYWJsZUNvbnRleHQiLCJfdXNlRmxhdHRlblJlY29yZHMiLCJfQm9keUxpbmUiLCJfY29udGV4dCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiR3JpZCIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsImRhdGEiLCJvblNjcm9sbCIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIlRhYmxlQ29udGV4dCIsImZsYXR0ZW5Db2x1bW5zIiwib25Db2x1bW5SZXNpemUiLCJnZXRSb3dLZXkiLCJleHBhbmRlZEtleXMiLCJwcmVmaXhDbHMiLCJjaGlsZHJlbkNvbHVtbk5hbWUiLCJzY3JvbGxYIiwiZGlyZWN0aW9uIiwiX3VzZUNvbnRleHQyIiwiU3RhdGljQ29udGV4dCIsInN0aWNreSIsInNjcm9sbFkiLCJsaXN0SXRlbUhlaWdodCIsImdldENvbXBvbmVudCIsIm9uVGFibGVQcm9wU2Nyb2xsIiwibGlzdFJlZiIsInVzZVJlZiIsImZsYXR0ZW5EYXRhIiwidXNlRmxhdHRlblJlY29yZHMiLCJjb2x1bW5zV2lkdGgiLCJ1c2VNZW1vIiwidG90YWwiLCJtYXAiLCJfcmVmIiwid2lkdGgiLCJtaW5XaWR0aCIsImtleSIsImZpbmFsV2lkdGgiLCJNYXRoIiwibWF4IiwiY29sdW1uc09mZnNldCIsImNvbFdpZHRoIiwidXNlRWZmZWN0IiwiZm9yRWFjaCIsIl9yZWYyIiwiX3JlZjMiLCJfc2xpY2VkVG9BcnJheTIiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiX2EiLCJvYmoiLCJzY3JvbGxUbyIsImNvbmZpZyIsIl9iIiwib2Zmc2V0IiwicmVzdENvbmZpZyIsImN1cnJlbnQiLCJhc3NpZ24iLCJhbGlnbiIsIm5hdGl2ZUVsZW1lbnQiLCJnZXRTY3JvbGxJbmZvIiwieCIsInZhbHVlIiwibGVmdCIsInkiLCJ0b3AiLCJnZXRSb3dTcGFuIiwiY29sdW1uIiwiaW5kZXgiLCJyZWNvcmQiLCJvbkNlbGwiLCJjZWxsUHJvcHMiLCJyb3dTcGFuIiwiZXh0cmFSZW5kZXIiLCJpbmZvIiwic3RhcnQiLCJlbmQiLCJnZXRTaXplIiwib2Zmc2V0WSIsImZpcnN0Um93U3BhbkNvbHVtbnMiLCJmaWx0ZXIiLCJzdGFydEluZGV4IiwiX2xvb3AiLCJsYXN0Um93U3BhbkNvbHVtbnMiLCJlbmRJbmRleCIsIl9sb29wMiIsIl9pIiwic3BhbkxpbmVzIiwiX2xvb3AzIiwiX2kyIiwiaXRlbSIsInNvbWUiLCJwdXNoIiwibm9kZXMiLCJyb3dLZXkiLCJnZXRIZWlnaHQiLCJlbmRJdGVtSW5kZXgiLCJlbmRJdGVtIiwic2FmZUVuZEluZGV4IiwibWluIiwic2FmZUVuZEl0ZW0iLCJlbmRJdGVtS2V5Iiwic2l6ZUluZm8iLCJib3R0b20iLCJfanN4IiwiQm9keUxpbmUiLCJzdHlsZSIsImV4dHJhIiwiZ3JpZENvbnRleHQiLCJ0YmxQcmVmaXhDbHMiLCJjb25jYXQiLCJ3cmFwcGVyQ29tcG9uZW50IiwiaG9yaXpvbnRhbFNjcm9sbEJhclN0eWxlIiwicG9zaXRpb24iLCJfdHlwZW9mMiIsIm9mZnNldFNjcm9sbCIsIkdyaWRDb250ZXh0IiwiUHJvdmlkZXIiLCJjaGlsZHJlbiIsIlZpcnR1YWxMaXN0IiwiZnVsbEhlaWdodCIsInN0eWxlcyIsImhvcml6b250YWxTY3JvbGxCYXIiLCJjbGFzc05hbWUiLCJoZWlnaHQiLCJpdGVtSGVpZ2h0IiwiaXRlbUtleSIsImNvbXBvbmVudCIsInNjcm9sbFdpZHRoIiwib25WaXJ0dWFsU2Nyb2xsIiwiX3JlZjQiLCJjdXJyZW50VGFyZ2V0Iiwic2Nyb2xsTGVmdCIsIml0ZW1Qcm9wcyIsIlJlc3BvbnNlR3JpZCIsInJlc3BvbnNlSW1tdXRhYmxlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNWQSxJQUFBQyxnQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBQyx1QkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBRCx1QkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU8sa0JBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFRLFNBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLFFBQUEsR0FBQVQsT0FBQTtBQUF1RCxTQUFBSyx3QkFBQUssQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVAsdUJBQUEsWUFBQUEsd0JBQUFLLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxV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LFFBQVEsQ0FBQztVQUNQNEgsYUFBYSxFQUFFLENBQUFsRixFQUFBLEdBQUF2QixPQUFPLENBQUM4QixPQUFPLE1BQUEsSUFBQSxJQUFBUCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRVUsYUFBYTtVQUM3Q3lFLFVBQVUsRUFBRXZFO1FEakZSLENDa0ZMLENBQUM7TUFDSixDQUFDO01BQ0R0RCxRQUFRLEVBQUVrQixpQkFBaUI7TUFDM0JnRCxXQUFXLEVBQUVBLFdBQVc7TUFBQTZDLFFBQUEsRUFFdkIsU0FGdUJBLFFBQUFBLENBRXRCNUIsSUFBSSxFQUFFdEIsS0FBSyxFQUFFaUUsU0FBUyxFQUFJO1FBQzFCLElBQU12QyxNQUFNLEdBQUdqRixTQUFTLENBQUM2RSxJQUFJLENBQUNyQixNQUFNLEVBQUVELEtBQUssQ0FBQztRQUM1QyxPQUFPLElBQUFvQyxlQUFBLEVBQUNDLG9CQUFRLEVBQUE7VUFBQ25HLElBQUksRUFBRW9GLElBQUk7VUFBRUksTUFBTSxFQUFFQSxNQUFNO1VBQUUxQixLQUFLLEVBQUVBLEtBQUs7VUFBRXNDLEtBQUssRUFBRTJCLFNBQVMsQ0FBQzNCO1FBQUssQ0FBQSxDQUFJO01BQ3ZGO0lBQUMsQ0FBQTtFQUNXLENBQUEsQ0FDTztBQUUzQixDQUFDLENBQUM7QUFFRixJQUFNNEIsWUFBWSxHQUFHLElBQUFDLCtCQUFpQixFQUFDckksSUFBSSxDQUFDO0FBRTVDLElBQUlzSSxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUN6Q0osWUFBWSxDQUFDSyxXQUFXLEdBQUcsY0FBYztBQUMzQztBQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxjQUVjUCxZQUFZIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvaW50ZXJuYWwva2VybmVsL1ZpcnR1YWxUYWJsZS9Cb2R5R3JpZC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJy4uL3NlbGVjdG9yLWNvbnRleHQnO1xuaW1wb3J0IFZpcnR1YWxMaXN0IGZyb20gJy4uLy4uLy4uLy4uL1ZpcnR1YWxMaXN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUYWJsZUNvbnRleHQsIHsgcmVzcG9uc2VJbW11dGFibGUgfSBmcm9tICcuLi9jb250ZXh0L1RhYmxlQ29udGV4dCc7XG5pbXBvcnQgdXNlRmxhdHRlblJlY29yZHMgZnJvbSAnLi4vaG9va3MvdXNlRmxhdHRlblJlY29yZHMnO1xuaW1wb3J0IEJvZHlMaW5lIGZyb20gJy4vQm9keUxpbmUnO1xuaW1wb3J0IHsgR3JpZENvbnRleHQsIFN0YXRpY0NvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuY29uc3QgR3JpZCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB7IGRhdGEsIG9uU2Nyb2xsIH0gPSBwcm9wcztcbiAgICBjb25zdCB7IGZsYXR0ZW5Db2x1bW5zLCBvbkNvbHVtblJlc2l6ZSwgZ2V0Um93S2V5LCBleHBhbmRlZEtleXMsIHByZWZpeENscywgY2hpbGRyZW5Db2x1bW5OYW1lLCBzY3JvbGxYLCBkaXJlY3Rpb24sIH0gPSB1c2VDb250ZXh0KFRhYmxlQ29udGV4dCwgW1xuICAgICAgICAnZmxhdHRlbkNvbHVtbnMnLFxuICAgICAgICAnb25Db2x1bW5SZXNpemUnLFxuICAgICAgICAnZ2V0Um93S2V5JyxcbiAgICAgICAgJ3ByZWZpeENscycsXG4gICAgICAgICdleHBhbmRlZEtleXMnLFxuICAgICAgICAnY2hpbGRyZW5Db2x1bW5OYW1lJyxcbiAgICAgICAgJ3Njcm9sbFgnLFxuICAgICAgICAnZGlyZWN0aW9uJyxcbiAgICBdKTtcbiAgICBjb25zdCB7IHN0aWNreSwgc2Nyb2xsWSwgbGlzdEl0ZW1IZWlnaHQsIGdldENvbXBvbmVudCwgb25TY3JvbGw6IG9uVGFibGVQcm9wU2Nyb2xsLCB9ID0gdXNlQ29udGV4dChTdGF0aWNDb250ZXh0KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmVmID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBsaXN0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBEYXRhID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGZsYXR0ZW5EYXRhID0gdXNlRmxhdHRlblJlY29yZHMoZGF0YSwgY2hpbGRyZW5Db2x1bW5OYW1lLCBleHBhbmRlZEtleXMsIGdldFJvd0tleSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gQ29sdW1uID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgY29sdW1uc1dpZHRoID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCB0b3RhbCA9IDA7XG4gICAgICAgIHJldHVybiBmbGF0dGVuQ29sdW1ucy5tYXAoKHsgd2lkdGgsIG1pbldpZHRoLCBrZXkgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmluYWxXaWR0aCA9IE1hdGgubWF4KHdpZHRoIHx8IDAsIG1pbldpZHRoIHx8IDApO1xuICAgICAgICAgICAgdG90YWwgKz0gZmluYWxXaWR0aDtcbiAgICAgICAgICAgIHJldHVybiBba2V5LCBmaW5hbFdpZHRoLCB0b3RhbF07XG4gICAgICAgIH0pO1xuICAgIH0sIFtmbGF0dGVuQ29sdW1uc10pO1xuICAgIGNvbnN0IGNvbHVtbnNPZmZzZXQgPSBSZWFjdC51c2VNZW1vKCgpID0+IGNvbHVtbnNXaWR0aC5tYXAoY29sV2lkdGggPT4gY29sV2lkdGhbMl0pLCBbY29sdW1uc1dpZHRoXSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29sdW1uc1dpZHRoLmZvckVhY2goKFtrZXksIHdpZHRoXSkgPT4ge1xuICAgICAgICAgICAgb25Db2x1bW5SZXNpemUoa2V5LCB3aWR0aCk7XG4gICAgICAgIH0pO1xuICAgIH0sIFtjb2x1bW5zV2lkdGhdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmVmID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgICAgIHNjcm9sbFRvOiAoY29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG9mZnNldCB9ID0gY29uZmlnLCByZXN0Q29uZmlnID0gX19yZXN0KGNvbmZpZywgW1wib2Zmc2V0XCJdKTtcbiAgICAgICAgICAgICAgICAvLyBJZiBvZmZzZXQgaXMgcHJvdmlkZWQsIGZvcmNlIGFsaWduIHRvICd0b3AnIGZvciBjb25zaXN0ZW50IGJlaGF2aW9yXG4gICAgICAgICAgICAgICAgaWYgKG9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY3JvbGxUbyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3RDb25maWcpLCB7IG9mZnNldCwgYWxpZ246ICd0b3AnIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIChfYiA9IGxpc3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNjcm9sbFRvKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQ6IChfYSA9IGxpc3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICdzY3JvbGxMZWZ0Jywge1xuICAgICAgICAgICAgZ2V0OiAoKSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBsaXN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRTY3JvbGxJbmZvKCkueCkgfHwgMDsgfSxcbiAgICAgICAgICAgIHNldDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogdmFsdWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgJ3Njcm9sbFRvcCcsIHtcbiAgICAgICAgICAgIGdldDogKCkgPT4geyB2YXIgX2E7IHJldHVybiAoKF9hID0gbGlzdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0U2Nyb2xsSW5mbygpLnkpIHx8IDA7IH0sXG4gICAgICAgICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY3JvbGxUbyh7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdmFsdWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PSBDb2wvUm93IFNwYW4gPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBnZXRSb3dTcGFuID0gKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gKF9hID0gZmxhdHRlbkRhdGFbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVjb3JkO1xuICAgICAgICBjb25zdCB7IG9uQ2VsbCB9ID0gY29sdW1uO1xuICAgICAgICBpZiAob25DZWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjZWxsUHJvcHMgPSBvbkNlbGwocmVjb3JkLCBpbmRleCk7XG4gICAgICAgICAgICByZXR1cm4gKF9iID0gY2VsbFByb3BzID09PSBudWxsIHx8IGNlbGxQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2VsbFByb3BzLnJvd1NwYW4pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfTtcbiAgICBjb25zdCBleHRyYVJlbmRlciA9IGluZm8gPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXJ0LCBlbmQsIGdldFNpemUsIG9mZnNldFkgfSA9IGluZm87XG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgbm8gZGF0YVxuICAgICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmluZCBmaXJzdCByb3dTcGFuIGNvbHVtblxuICAgICAgICBsZXQgZmlyc3RSb3dTcGFuQ29sdW1ucyA9IGZsYXR0ZW5Db2x1bW5zLmZpbHRlcihcbiAgICAgICAgLy8gcm93U3BhbiBpcyAwXG4gICAgICAgIGNvbHVtbiA9PiBnZXRSb3dTcGFuKGNvbHVtbiwgc3RhcnQpID09PSAwKTtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSBzdGFydDtcbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgICAgICAgZmlyc3RSb3dTcGFuQ29sdW1ucyA9IGZpcnN0Um93U3BhbkNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBnZXRSb3dTcGFuKGNvbHVtbiwgaSkgPT09IDApO1xuICAgICAgICAgICAgaWYgKCFmaXJzdFJvd1NwYW5Db2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEZpbmQgbGFzdCByb3dTcGFuIGNvbHVtblxuICAgICAgICBsZXQgbGFzdFJvd1NwYW5Db2x1bW5zID0gZmxhdHRlbkNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAvLyByb3dTcGFuIGlzIG5vdCAxXG4gICAgICAgIGNvbHVtbiA9PiBnZXRSb3dTcGFuKGNvbHVtbiwgZW5kKSAhPT0gMSk7XG4gICAgICAgIGxldCBlbmRJbmRleCA9IGVuZDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGVuZDsgaSA8IGZsYXR0ZW5EYXRhLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBsYXN0Um93U3BhbkNvbHVtbnMgPSBsYXN0Um93U3BhbkNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBnZXRSb3dTcGFuKGNvbHVtbiwgaSkgIT09IDEpO1xuICAgICAgICAgICAgaWYgKCFsYXN0Um93U3BhbkNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZW5kSW5kZXggPSBNYXRoLm1heChpIC0gMSwgZW5kKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBDb2xsZWN0IHRoZSBsaW5lIHdobyBoYXMgcm93U3BhblxuICAgICAgICBjb25zdCBzcGFuTGluZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPD0gZW5kSW5kZXg7IGkgKz0gMSkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZsYXR0ZW5EYXRhW2ldO1xuICAgICAgICAgICAgLy8gVGhpcyBjb2RlIHdpbGwgbmV2ZXIgcmVhY2gsIGp1c3QgaW5jYXNlXG4gICAgICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmbGF0dGVuQ29sdW1ucy5zb21lKGNvbHVtbiA9PiBnZXRSb3dTcGFuKGNvbHVtbiwgaSkgPiAxKSkge1xuICAgICAgICAgICAgICAgIHNwYW5MaW5lcy5wdXNoKGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFBhdGNoIGV4dHJhIGxpbmUgb24gdGhlIHBhZ2VcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBzcGFuTGluZXMubWFwKGluZGV4ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBmbGF0dGVuRGF0YVtpbmRleF07XG4gICAgICAgICAgICBjb25zdCByb3dLZXkgPSBnZXRSb3dLZXkoaXRlbS5yZWNvcmQsIGluZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IGdldEhlaWdodCA9IChyb3dTcGFuKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSXRlbUluZGV4ID0gaW5kZXggKyByb3dTcGFuIC0gMTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJdGVtID0gZmxhdHRlbkRhdGFbZW5kSXRlbUluZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAoIWVuZEl0ZW0gfHwgIWVuZEl0ZW0ucmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsYW1wIOWIsOW9k+WJjeWPr+eUqOeahOacgOWQjuS4gOihjO+8jOaIlumAgOWMluS4uum7mOiupOmrmOW6plxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzYWZlRW5kSW5kZXggPSBNYXRoLm1pbihlbmRJdGVtSW5kZXgsIGZsYXR0ZW5EYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzYWZlRW5kSXRlbSA9IGZsYXR0ZW5EYXRhW3NhZmVFbmRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZEl0ZW1LZXkgPSBnZXRSb3dLZXkoc2FmZUVuZEl0ZW0ucmVjb3JkLCBzYWZlRW5kSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplSW5mbyA9IGdldFNpemUocm93S2V5LCBlbmRJdGVtS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNpemVJbmZvLmJvdHRvbSAtIHNpemVJbmZvLnRvcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSXRlbUtleSA9IGdldFJvd0tleShlbmRJdGVtLnJlY29yZCwgZW5kSXRlbUluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplSW5mbyA9IGdldFNpemUocm93S2V5LCBlbmRJdGVtS2V5KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZUluZm8uYm90dG9tIC0gc2l6ZUluZm8udG9wO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHNpemVJbmZvID0gZ2V0U2l6ZShyb3dLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KEJvZHlMaW5lLCB7IGRhdGE6IGl0ZW0sIHJvd0tleTogcm93S2V5LCBpbmRleDogaW5kZXgsIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogLW9mZnNldFkgKyBzaXplSW5mby50b3AsXG4gICAgICAgICAgICAgICAgfSwgZXh0cmE6IHRydWUsIGdldEhlaWdodDogZ2V0SGVpZ2h0IH0sIGluZGV4KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbm9kZXM7XG4gICAgfTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IENvbnRleHQgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBncmlkQ29udGV4dCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgY29sdW1uc09mZnNldCB9KSwgW2NvbHVtbnNPZmZzZXRdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBSZW5kZXIgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCB0YmxQcmVmaXhDbHMgPSBgJHtwcmVmaXhDbHN9LXRib2R5YDtcbiAgICAvLyBkZWZhdWx0ICdkaXYnIGluIFZpcnR1YWxMaXN0XG4gICAgY29uc3Qgd3JhcHBlckNvbXBvbmVudCA9IGdldENvbXBvbmVudChbJ2JvZHknLCAnd3JhcHBlciddKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBTdGlja3kgU2Nyb2xsIEJhciA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGhvcml6b250YWxTY3JvbGxCYXJTdHlsZSA9IHt9O1xuICAgIGlmIChzdGlja3kpIHtcbiAgICAgICAgaG9yaXpvbnRhbFNjcm9sbEJhclN0eWxlLnBvc2l0aW9uID0gJ3N0aWNreSc7XG4gICAgICAgIGhvcml6b250YWxTY3JvbGxCYXJTdHlsZS5ib3R0b20gPSAwO1xuICAgICAgICBpZiAodHlwZW9mIHN0aWNreSA9PT0gJ29iamVjdCcgJiYgc3RpY2t5Lm9mZnNldFNjcm9sbCkge1xuICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbEJhclN0eWxlLmJvdHRvbSA9IHN0aWNreS5vZmZzZXRTY3JvbGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChfanN4KEdyaWRDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBncmlkQ29udGV4dCwgY2hpbGRyZW46IF9qc3goVmlydHVhbExpc3QsIHsgZnVsbEhlaWdodDogZmFsc2UsIHJlZjogbGlzdFJlZiwgcHJlZml4Q2xzOiBgJHt0YmxQcmVmaXhDbHN9LXZpcnR1YWxgLCBzdHlsZXM6IHsgaG9yaXpvbnRhbFNjcm9sbEJhcjogaG9yaXpvbnRhbFNjcm9sbEJhclN0eWxlIH0sIGNsYXNzTmFtZTogdGJsUHJlZml4Q2xzLCBoZWlnaHQ6IHNjcm9sbFksIGl0ZW1IZWlnaHQ6IGxpc3RJdGVtSGVpZ2h0IHx8IDI0LCBkYXRhOiBmbGF0dGVuRGF0YSwgaXRlbUtleTogaXRlbSA9PiBnZXRSb3dLZXkoaXRlbS5yZWNvcmQpLCBjb21wb25lbnQ6IHdyYXBwZXJDb21wb25lbnQsIHNjcm9sbFdpZHRoOiBzY3JvbGxYLCBkaXJlY3Rpb246IGRpcmVjdGlvbiwgb25WaXJ0dWFsU2Nyb2xsOiAoeyB4IH0pID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgb25TY3JvbGwoe1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiAoX2EgPSBsaXN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiB4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgb25TY3JvbGw6IG9uVGFibGVQcm9wU2Nyb2xsLCBleHRyYVJlbmRlcjogZXh0cmFSZW5kZXIsIGNoaWxkcmVuOiAoaXRlbSwgaW5kZXgsIGl0ZW1Qcm9wcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd0tleSA9IGdldFJvd0tleShpdGVtLnJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBfanN4KEJvZHlMaW5lLCB7IGRhdGE6IGl0ZW0sIHJvd0tleTogcm93S2V5LCBpbmRleDogaW5kZXgsIHN0eWxlOiBpdGVtUHJvcHMuc3R5bGUgfSk7XG4gICAgICAgICAgICB9IH0pIH0pKTtcbn0pO1xuY29uc3QgUmVzcG9uc2VHcmlkID0gcmVzcG9uc2VJbW11dGFibGUoR3JpZCk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFJlc3BvbnNlR3JpZC5kaXNwbGF5TmFtZSA9ICdSZXNwb25zZUdyaWQnO1xufVxuZXhwb3J0IGRlZmF1bHQgUmVzcG9uc2VHcmlkOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|