nsc-react-component 2.14.1 → 2.14.4

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.
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ interface SliderProps {
3
+ data: Array<Object>;
4
+ itemWidth: number;
5
+ translateStep: number;
6
+ children?: React.ReactNode;
7
+ onStateChange?: Function;
8
+ }
9
+ declare function SliderMenu(props: SliderProps): React.JSX.Element;
10
+ declare namespace SliderMenu {
11
+ var LeftArrow: (props: any) => React.JSX.Element;
12
+ var RightArrow: (props: any) => React.JSX.Element;
13
+ var Content: (props: any) => React.JSX.Element;
14
+ }
15
+ export default SliderMenu;
@@ -0,0 +1,100 @@
1
+ import React, { useEffect, useMemo, useState } from "react";
2
+ import styles from "./index.less";
3
+ import { getLess } from "../../utils";
4
+ function LeftArrow(props) {
5
+ return /*#__PURE__*/React.createElement("div", null, props.children);
6
+ }
7
+ function RightArrow(props) {
8
+ return /*#__PURE__*/React.createElement("div", null, props.children);
9
+ }
10
+ function Content(props) {
11
+ console.log("props.translateX", props.translateX);
12
+ return /*#__PURE__*/React.createElement("div", {
13
+ className: getLess(styles, "nsc-slidermenu-tab-nav"),
14
+ id: "nsc-slidermenu-total-list"
15
+ }, /*#__PURE__*/React.createElement("div", {
16
+ className: getLess(styles, "nsc-slidermenu-nav-list"),
17
+ style: {
18
+ transform: "translateX(".concat(props.translateX, "px)")
19
+ }
20
+ }, props.children));
21
+ }
22
+ function SliderMenu(props) {
23
+ const {
24
+ children,
25
+ data,
26
+ translateStep = 100,
27
+ itemWidth = 40
28
+ } = props;
29
+ const [listWidth, setListWidth] = useState(0);
30
+ const [translateX, setTranslateX] = useState(0);
31
+ const [leftIconClick, rightIconClick] = useMemo(() => {
32
+ const listItemWidth = data.length * itemWidth;
33
+ const leftIconClick = translateX < 0;
34
+ const rightIconClick = translateX == 0 ? listItemWidth > listWidth : listItemWidth + translateX > listWidth;
35
+ return [leftIconClick, rightIconClick];
36
+ }, [data.length, translateX, listWidth]);
37
+ const [leftIconVisible, rightIconVisible] = useMemo(() => {
38
+ const listItemWidth = data.length * itemWidth;
39
+ const isLeftIconVisible = listItemWidth > listWidth;
40
+ const isRightIconVisible = listItemWidth > listWidth;
41
+ return [isLeftIconVisible, isRightIconVisible];
42
+ }, [data, translateX, listWidth]);
43
+ console.log("leftIconVisible", leftIconVisible);
44
+ console.log("rightIconVisible", rightIconVisible);
45
+ useEffect(() => {
46
+ const totallist = document.getElementById("nsc-slidermenu-total-list");
47
+ console.log("totallist.clientWidth", totallist.clientWidth);
48
+ setListWidth(totallist.clientWidth);
49
+ }, [data]);
50
+ const onIconClick = direaction => {
51
+ let newTranslateX = translateX;
52
+ const translateDistance = translateStep * (direaction === "left" ? 1 : -1);
53
+ // 点击箭头
54
+ if (translateDistance > 0) {
55
+ if (!leftIconClick) return;else {
56
+ newTranslateX += translateDistance;
57
+ }
58
+ } else if (translateDistance < 0) {
59
+ if (!rightIconClick) return;else {
60
+ newTranslateX += translateDistance;
61
+ }
62
+ }
63
+ setTranslateX(newTranslateX);
64
+ };
65
+ useEffect(() => {
66
+ const {
67
+ onStateChange
68
+ } = props;
69
+ onStateChange && onStateChange({
70
+ leftClick: leftIconClick,
71
+ rightClick: rightIconClick
72
+ });
73
+ }, [rightIconClick, leftIconClick]);
74
+ return /*#__PURE__*/React.createElement("div", {
75
+ className: getLess(styles, "nsc-slidermenu-total-nav")
76
+ }, children && Array.isArray(children) && children.length > 0 ? children.map(item => {
77
+ if (item.type.name === "LeftArrow" && leftIconVisible) {
78
+ return /*#__PURE__*/React.createElement("div", {
79
+ onClick: () => {
80
+ onIconClick("left");
81
+ }
82
+ }, item);
83
+ } else if (item.type.name === "RightArrow" && rightIconVisible) {
84
+ return /*#__PURE__*/React.createElement("div", {
85
+ onClick: () => {
86
+ onIconClick("right");
87
+ }
88
+ }, item);
89
+ } else if (item.type.name === "Content") {
90
+ return /*#__PURE__*/React.createElement(Content, {
91
+ translateX: translateX
92
+ }, item.props.children);
93
+ }
94
+ }) : children);
95
+ }
96
+ SliderMenu.LeftArrow = LeftArrow;
97
+ SliderMenu.RightArrow = RightArrow;
98
+ SliderMenu.Content = Content;
99
+ export default SliderMenu;
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInN0eWxlcyIsImdldExlc3MiLCJMZWZ0QXJyb3ciLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZHJlbiIsIlJpZ2h0QXJyb3ciLCJDb250ZW50IiwiY29uc29sZSIsImxvZyIsInRyYW5zbGF0ZVgiLCJjbGFzc05hbWUiLCJpZCIsInN0eWxlIiwidHJhbnNmb3JtIiwiY29uY2F0IiwiU2xpZGVyTWVudSIsImRhdGEiLCJ0cmFuc2xhdGVTdGVwIiwiaXRlbVdpZHRoIiwibGlzdFdpZHRoIiwic2V0TGlzdFdpZHRoIiwic2V0VHJhbnNsYXRlWCIsImxlZnRJY29uQ2xpY2siLCJyaWdodEljb25DbGljayIsImxpc3RJdGVtV2lkdGgiLCJsZW5ndGgiLCJsZWZ0SWNvblZpc2libGUiLCJyaWdodEljb25WaXNpYmxlIiwiaXNMZWZ0SWNvblZpc2libGUiLCJpc1JpZ2h0SWNvblZpc2libGUiLCJ0b3RhbGxpc3QiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY2xpZW50V2lkdGgiLCJvbkljb25DbGljayIsImRpcmVhY3Rpb24iLCJuZXdUcmFuc2xhdGVYIiwidHJhbnNsYXRlRGlzdGFuY2UiLCJvblN0YXRlQ2hhbmdlIiwibGVmdENsaWNrIiwicmlnaHRDbGljayIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsIml0ZW0iLCJ0eXBlIiwibmFtZSIsIm9uQ2xpY2siXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3NsaWRlcm1lbnUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcblxyXG5pbnRlcmZhY2UgU2xpZGVyUHJvcHMge1xyXG4gIGRhdGE6IEFycmF5PE9iamVjdD47XHJcbiAgaXRlbVdpZHRoOiBudW1iZXI7XHJcbiAgdHJhbnNsYXRlU3RlcDogbnVtYmVyO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uU3RhdGVDaGFuZ2U/OiBGdW5jdGlvbjtcclxufVxyXG5mdW5jdGlvbiBMZWZ0QXJyb3cocHJvcHM6IGFueSkge1xyXG4gIHJldHVybiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFJpZ2h0QXJyb3cocHJvcHM6IGFueSkge1xyXG4gIHJldHVybiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIENvbnRlbnQocHJvcHM6IGFueSkge1xyXG4gIGNvbnNvbGUubG9nKFwicHJvcHMudHJhbnNsYXRlWFwiLCBwcm9wcy50cmFuc2xhdGVYKTtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1zbGlkZXJtZW51LXRhYi1uYXZcIil9XHJcbiAgICAgIGlkPVwibnNjLXNsaWRlcm1lbnUtdG90YWwtbGlzdFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1zbGlkZXJtZW51LW5hdi1saXN0XCIpfVxyXG4gICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoJHtwcm9wcy50cmFuc2xhdGVYfXB4KWAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBTbGlkZXJNZW51KHByb3BzOiBTbGlkZXJQcm9wcykge1xyXG4gIGNvbnN0IHsgY2hpbGRyZW4sIGRhdGEsIHRyYW5zbGF0ZVN0ZXAgPSAxMDAsIGl0ZW1XaWR0aCA9IDQwIH0gPSBwcm9wcztcclxuICBjb25zdCBbbGlzdFdpZHRoLCBzZXRMaXN0V2lkdGhdID0gdXNlU3RhdGUoMCk7XHJcbiAgY29uc3QgW3RyYW5zbGF0ZVgsIHNldFRyYW5zbGF0ZVhdID0gdXNlU3RhdGUoMCk7XHJcbiAgY29uc3QgW2xlZnRJY29uQ2xpY2ssIHJpZ2h0SWNvbkNsaWNrXSA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgbGlzdEl0ZW1XaWR0aCA9IGRhdGEubGVuZ3RoICogaXRlbVdpZHRoO1xyXG4gICAgY29uc3QgbGVmdEljb25DbGljayA9IHRyYW5zbGF0ZVggPCAwO1xyXG4gICAgY29uc3QgcmlnaHRJY29uQ2xpY2sgPVxyXG4gICAgICB0cmFuc2xhdGVYID09IDBcclxuICAgICAgICA/IGxpc3RJdGVtV2lkdGggPiBsaXN0V2lkdGhcclxuICAgICAgICA6IGxpc3RJdGVtV2lkdGggKyB0cmFuc2xhdGVYID4gbGlzdFdpZHRoO1xyXG4gICAgcmV0dXJuIFtsZWZ0SWNvbkNsaWNrLCByaWdodEljb25DbGlja107XHJcbiAgfSwgW2RhdGEubGVuZ3RoLCB0cmFuc2xhdGVYLCBsaXN0V2lkdGhdKTtcclxuICBjb25zdCBbbGVmdEljb25WaXNpYmxlLCByaWdodEljb25WaXNpYmxlXSA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgbGlzdEl0ZW1XaWR0aCA9IGRhdGEubGVuZ3RoICogaXRlbVdpZHRoO1xyXG4gICAgY29uc3QgaXNMZWZ0SWNvblZpc2libGUgPSBsaXN0SXRlbVdpZHRoID4gbGlzdFdpZHRoO1xyXG4gICAgY29uc3QgaXNSaWdodEljb25WaXNpYmxlID0gbGlzdEl0ZW1XaWR0aCA+IGxpc3RXaWR0aDtcclxuICAgIHJldHVybiBbaXNMZWZ0SWNvblZpc2libGUsIGlzUmlnaHRJY29uVmlzaWJsZV07XHJcbiAgfSwgW2RhdGEsIHRyYW5zbGF0ZVgsIGxpc3RXaWR0aF0pO1xyXG5cclxuICBjb25zb2xlLmxvZyhcImxlZnRJY29uVmlzaWJsZVwiLCBsZWZ0SWNvblZpc2libGUpO1xyXG5cclxuICBjb25zb2xlLmxvZyhcInJpZ2h0SWNvblZpc2libGVcIiwgcmlnaHRJY29uVmlzaWJsZSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCB0b3RhbGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgXCJuc2Mtc2xpZGVybWVudS10b3RhbC1saXN0XCJcclxuICAgICkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zb2xlLmxvZyhcInRvdGFsbGlzdC5jbGllbnRXaWR0aFwiLCB0b3RhbGxpc3QuY2xpZW50V2lkdGgpO1xyXG4gICAgc2V0TGlzdFdpZHRoKHRvdGFsbGlzdC5jbGllbnRXaWR0aCk7XHJcbiAgfSwgW2RhdGFdKTtcclxuXHJcbiAgY29uc3Qgb25JY29uQ2xpY2sgPSAoZGlyZWFjdGlvbjogc3RyaW5nKSA9PiB7XHJcbiAgICBsZXQgbmV3VHJhbnNsYXRlWDogbnVtYmVyID0gdHJhbnNsYXRlWDtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZURpc3RhbmNlOiBudW1iZXIgPVxyXG4gICAgICB0cmFuc2xhdGVTdGVwICogKGRpcmVhY3Rpb24gPT09IFwibGVmdFwiID8gMSA6IC0xKTtcclxuICAgIC8vIOeCueWHu+eureWktFxyXG4gICAgaWYgKHRyYW5zbGF0ZURpc3RhbmNlID4gMCkge1xyXG4gICAgICBpZiAoIWxlZnRJY29uQ2xpY2spIHJldHVybjtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbmV3VHJhbnNsYXRlWCArPSB0cmFuc2xhdGVEaXN0YW5jZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0cmFuc2xhdGVEaXN0YW5jZSA8IDApIHtcclxuICAgICAgaWYgKCFyaWdodEljb25DbGljaykgcmV0dXJuO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBuZXdUcmFuc2xhdGVYICs9IHRyYW5zbGF0ZURpc3RhbmNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzZXRUcmFuc2xhdGVYKG5ld1RyYW5zbGF0ZVgpO1xyXG4gIH07XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHsgb25TdGF0ZUNoYW5nZSB9ID0gcHJvcHM7XHJcbiAgICBvblN0YXRlQ2hhbmdlICYmXHJcbiAgICAgIG9uU3RhdGVDaGFuZ2UoeyBsZWZ0Q2xpY2s6IGxlZnRJY29uQ2xpY2ssIHJpZ2h0Q2xpY2s6IHJpZ2h0SWNvbkNsaWNrIH0pO1xyXG4gIH0sIFtyaWdodEljb25DbGljaywgbGVmdEljb25DbGlja10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXNsaWRlcm1lbnUtdG90YWwtbmF2XCIpfT5cclxuICAgICAge2NoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmIGNoaWxkcmVuLmxlbmd0aCA+IDBcclxuICAgICAgICA/IGNoaWxkcmVuLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS50eXBlLm5hbWUgPT09IFwiTGVmdEFycm93XCIgJiYgbGVmdEljb25WaXNpYmxlKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uSWNvbkNsaWNrKFwibGVmdFwiKTtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZS5uYW1lID09PSBcIlJpZ2h0QXJyb3dcIiAmJiByaWdodEljb25WaXNpYmxlKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uSWNvbkNsaWNrKFwicmlnaHRcIik7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUubmFtZSA9PT0gXCJDb250ZW50XCIpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPENvbnRlbnQgdHJhbnNsYXRlWD17dHJhbnNsYXRlWH0+e2l0ZW0ucHJvcHMuY2hpbGRyZW59PC9Db250ZW50PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgOiBjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuU2xpZGVyTWVudS5MZWZ0QXJyb3cgPSBMZWZ0QXJyb3c7XHJcblNsaWRlck1lbnUuUmlnaHRBcnJvdyA9IFJpZ2h0QXJyb3c7XHJcblNsaWRlck1lbnUuQ29udGVudCA9IENvbnRlbnQ7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTbGlkZXJNZW51O1xyXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzNELE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLFNBQVNDLE9BQU8sUUFBUSxhQUFhO0FBU3JDLFNBQVNDLFNBQVNBLENBQUNDLEtBQVUsRUFBRTtFQUM3QixvQkFBT1AsS0FBQSxDQUFBUSxhQUFBLGNBQU1ELEtBQUssQ0FBQ0UsUUFBYyxDQUFDO0FBQ3BDO0FBRUEsU0FBU0MsVUFBVUEsQ0FBQ0gsS0FBVSxF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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","useEffect","useMemo","useState","styles","getLess","LeftArrow","props","createElement","children","RightArrow","Content","console","log","translateX","className","id","style","transform","concat","SliderMenu","data","translateStep","itemWidth","listWidth","setListWidth","setTranslateX","leftIconClick","rightIconClick","listItemWidth","length","leftIconVisible","rightIconVisible","isLeftIconVisible","isRightIconVisible","totallist","document","getElementById","clientWidth","onIconClick","direaction","newTranslateX","translateDistance","onStateChange","leftClick","rightClick","Array","isArray","map","item","type","name","onClick"],"sources":["../../../src/components/base/slidermenu/index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\r\nimport styles from \"./index.less\";\r\nimport { getLess } from \"../../utils\";\r\n\r\ninterface SliderProps {\r\n data: Array<Object>;\r\n itemWidth: number;\r\n translateStep: number;\r\n children?: React.ReactNode;\r\n onStateChange?: Function;\r\n}\r\nfunction LeftArrow(props: any) {\r\n return <div>{props.children}</div>;\r\n}\r\n\r\nfunction RightArrow(props: any) {\r\n return <div>{props.children}</div>;\r\n}\r\n\r\nfunction Content(props: any) {\r\n console.log(\"props.translateX\", props.translateX);\r\n return (\r\n <div\r\n className={getLess(styles, \"nsc-slidermenu-tab-nav\")}\r\n id=\"nsc-slidermenu-total-list\"\r\n >\r\n <div\r\n className={getLess(styles, \"nsc-slidermenu-nav-list\")}\r\n style={{ transform: `translateX(${props.translateX}px)` }}\r\n >\r\n {props.children}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SliderMenu(props: SliderProps) {\r\n const { children, data, translateStep = 100, itemWidth = 40 } = props;\r\n const [listWidth, setListWidth] = useState(0);\r\n const [translateX, setTranslateX] = useState(0);\r\n const [leftIconClick, rightIconClick] = useMemo(() => {\r\n const listItemWidth = data.length * itemWidth;\r\n const leftIconClick = translateX < 0;\r\n const rightIconClick =\r\n translateX == 0\r\n ? listItemWidth > listWidth\r\n : listItemWidth + translateX > listWidth;\r\n return [leftIconClick, rightIconClick];\r\n }, [data.length, translateX, listWidth]);\r\n const [leftIconVisible, rightIconVisible] = useMemo(() => {\r\n const listItemWidth = data.length * itemWidth;\r\n const isLeftIconVisible = listItemWidth > listWidth;\r\n const isRightIconVisible = listItemWidth > listWidth;\r\n return [isLeftIconVisible, isRightIconVisible];\r\n }, [data, translateX, listWidth]);\r\n\r\n console.log(\"leftIconVisible\", leftIconVisible);\r\n\r\n console.log(\"rightIconVisible\", rightIconVisible);\r\n\r\n useEffect(() => {\r\n const totallist = document.getElementById(\r\n \"nsc-slidermenu-total-list\"\r\n ) as HTMLElement;\r\n console.log(\"totallist.clientWidth\", totallist.clientWidth);\r\n setListWidth(totallist.clientWidth);\r\n }, [data]);\r\n\r\n const onIconClick = (direaction: string) => {\r\n let newTranslateX: number = translateX;\r\n const translateDistance: number =\r\n translateStep * (direaction === \"left\" ? 1 : -1);\r\n // 点击箭头\r\n if (translateDistance > 0) {\r\n if (!leftIconClick) return;\r\n else {\r\n newTranslateX += translateDistance;\r\n }\r\n } else if (translateDistance < 0) {\r\n if (!rightIconClick) return;\r\n else {\r\n newTranslateX += translateDistance;\r\n }\r\n }\r\n setTranslateX(newTranslateX);\r\n };\r\n useEffect(() => {\r\n const { onStateChange } = props;\r\n onStateChange &&\r\n onStateChange({ leftClick: leftIconClick, rightClick: rightIconClick });\r\n }, [rightIconClick, leftIconClick]);\r\n return (\r\n <div className={getLess(styles, \"nsc-slidermenu-total-nav\")}>\r\n {children && Array.isArray(children) && children.length > 0\r\n ? children.map((item) => {\r\n if (item.type.name === \"LeftArrow\" && leftIconVisible) {\r\n return (\r\n <div\r\n onClick={() => {\r\n onIconClick(\"left\");\r\n }}\r\n >\r\n {item}\r\n </div>\r\n );\r\n } else if (item.type.name === \"RightArrow\" && rightIconVisible) {\r\n return (\r\n <div\r\n onClick={() => {\r\n onIconClick(\"right\");\r\n }}\r\n >\r\n {item}\r\n </div>\r\n );\r\n } else if (item.type.name === \"Content\") {\r\n return (\r\n <Content translateX={translateX}>{item.props.children}</Content>\r\n );\r\n }\r\n })\r\n : children}\r\n </div>\r\n );\r\n}\r\nSliderMenu.LeftArrow = LeftArrow;\r\nSliderMenu.RightArrow = RightArrow;\r\nSliderMenu.Content = Content;\r\n\r\nexport default SliderMenu;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ .nsc-slidermenu-total-nav {
2
+ width: 100%;
3
+ display: flex;
4
+ }
5
+
6
+ .nsc-slidermenu-tab-nav {
7
+ height: 100%;
8
+ overflow-x: hidden;
9
+ // width: calc(100% - 80px);
10
+ .nsc-slidermenu-nav-list {
11
+ // width: 100%;
12
+ white-space: nowrap;
13
+ display: flex;
14
+ }
15
+ }
package/lib/index.d.ts CHANGED
@@ -62,6 +62,7 @@ export { default as Timeline } from "./base/timeline";
62
62
  export { default as Tooltip } from "./base/tooltip";
63
63
  export { default as Typography } from "./base/typography";
64
64
  export { default as Popover } from "./base/popover";
65
+ export { default as SliderMenu } from "./base/slidermenu";
65
66
  export type { default as InputEamilInstance } from "./base/input/Email";
66
67
  export { default as BasePage } from "./page/BasePage";
67
68
  export { default as Iframe } from "./base/iframe";
package/lib/index.js CHANGED
@@ -72,6 +72,7 @@ export { default as Timeline } from "./base/timeline";
72
72
  export { default as Tooltip } from "./base/tooltip";
73
73
  export { default as Typography } from "./base/typography";
74
74
  export { default as Popover } from "./base/popover";
75
+ export { default as SliderMenu } from "./base/slidermenu";
75
76
  export { default as BasePage } from "./page/BasePage";
76
77
  export { default as Iframe } from "./base/iframe";
77
78
  export { default as ErrorBoundary } from "./base/errorboundary";
@@ -88,4 +89,4 @@ export { default as TreeSelect } from "./base/treeselect";
88
89
  export { default as HeaderSearch } from "./page/HeaderSearch";
89
90
  export { default as Carousel } from "./base/carousel";
90
91
  export { default as EllipseCell } from "./base/common/EllipseCell";
91
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0IiwiQnV0dG9uIiwiQ2FzY2FkZXIiLCJDaGVja2JveCIsIkJvZHlSb3ciLCJJY29uIiwiVHJlZVBhbmVsIiwiRGF0ZVBpY2tlciIsIkZvcm0iLCJJbnB1dCIsIlRleHRBcmVhIiwiTWVudSIsIlJhZGlvIiwiU2VsZWN0IiwiVGFibGUiLCJEbmRDb250ZXh0VHlwZSIsIklCb2R5Um93UHJvcHMiLCJJTlNDVGFibGVQcm9wcyIsIlRhYnMiLCJUcmVlIiwiTnNjVHJlZVByb3BzIiwiU3RvcmUiLCJTdG9yZUNvbmZpZ1R5cGUiLCJnZXREZWZhdWx0Q29uZmlnIiwic2V0Q29uZmlnIiwiVGFnU2VsZWN0IiwiTm9EYXRhIiwiTm9NZXNzYWdlIiwiTm9OZXRXb3JrIiwiUGFnZTQwNCIsIk5vQXV0aG9yaXR5IiwiUmFuZ2VQaWNrZXIiLCJNb2RhbCIsIkNoYXJ0IiwibWVzc2FnZSIsIkFmZml4IiwiQWxlcnQiLCJBbmNob3IiLCJBdmF0YXIiLCJCYWNrVG9wIiwiQmFkZ2UiLCJCcmVhZGNydW1iIiwiQ2FsZW5kYXIiLCJDYXJkIiwiQ29sbGFwc2UiLCJDb21tZW50IiwiQ29uZmlnUHJvdmlkZXIiLCJEZXNjcmlwdGlvbnMiLCJEaXZpZGVyIiwiRHJhd2VyIiwiRHJvcGRvd24iLCJSb3ciLCJDb2wiLCJJbWFnZSIsIkxheW91dCIsIkxpc3QiLCJub3RpZmljYXRpb24iLCJQYWdlSGVhZGVyIiwiUGFnaW5hdGlvbiIsIlBvcGNvbmZpcm0iLCJQcm9ncmVzcyIsIlJlc3VsdCIsIlNrZWxldG9uIiwiU3BhY2UiLCJTdGF0aXN0aWMiLCJTdGVwcyIsIlRpbWVsaW5lIiwiVG9vbHRpcCIsIlR5cG9ncmFwaHkiLCJQb3BvdmVyIiwiQmFzZVBhZ2UiLCJJZnJhbWUiLCJFcnJvckJvdW5kYXJ5IiwiRWRpdG9yIiwiVXBsb2FkIiwiRG93bmxvYWQiLCJUcmFuc2ZlciIsIlNwaW4iLCJQYXNzV29yZENoZWNrIiwiUGRmVmlld2VyIiwiRmlsZUljb24iLCJTd2l0Y2giLCJUcmVlU2VsZWN0IiwiSGVhZGVyU2VhcmNoIiwiQ2Fyb3VzZWwiLCJFbGxpcHNlQ2VsbCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDMtMjIgMDk6MDQ6MTlcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTE2IDE0OjQzOjE1XHJcbiAqL1xyXG4vLyBleHBvcnQgeyBGb3JtSW5zdGFuY2UgfSBmcm9tIFwiYW50ZC9saWIvZm9ybVwiO1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9iYXNlL2J1dHRvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhc2NhZGVyIH0gZnJvbSBcIi4vYmFzZS9jYXNjYWRlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vYmFzZS9jaGVja2JveFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvZHlSb3cgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Cb2R5Um93XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbiB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL0ljb25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVlUGFuZWwgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9UcmVlUGFuZWxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEYXRlUGlja2VyIH0gZnJvbSBcIi4vYmFzZS9kYXRlcGlja1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcm0gfSBmcm9tIFwiLi9iYXNlL2Zvcm1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbnB1dCB9IGZyb20gXCIuL2Jhc2UvaW5wdXRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0QXJlYSB9IGZyb20gXCIuL2Jhc2UvaW5wdXQvVGV4dEFyZWFcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51IH0gZnJvbSBcIi4vYmFzZS9tZW51XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaW8gfSBmcm9tIFwiLi9iYXNlL3JhZGlvXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0IH0gZnJvbSBcIi4vYmFzZS9zZWxlY3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZSB9IGZyb20gXCIuL2Jhc2UvdGFibGVcIjtcclxuZXhwb3J0IHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMsIElOU0NUYWJsZVByb3BzIH0gZnJvbSBcIi4vYmFzZS90YWJsZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYnMgfSBmcm9tIFwiLi9iYXNlL3RhYnNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVlIH0gZnJvbSBcIi4vYmFzZS90cmVlXCI7XHJcbmV4cG9ydCB7IE5zY1RyZWVQcm9wcywgU3RvcmUsIFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCIuL2Jhc2UvdHJlZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIGdldERlZmF1bHRDb25maWcsIHNldENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhZ1NlbGVjdCB9IGZyb20gXCIuL2Jhc2UvdGFnU2VsZWN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9EYXRhIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9EYXRhXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9NZXNzYWdlIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9NZXNzYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9OZXRXb3JrIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9OZXRXb3JrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFnZTQwNCB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL1BhZ2U0MDRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb0F1dGhvcml0eSB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vQXV0aG9yaXR5XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFuZ2VQaWNrZXIgfSBmcm9tIFwiLi9iYXNlL2RhdGVwaWNrL1JhbmdlcGlja2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9kYWwgfSBmcm9tIFwiLi9iYXNlL21vZGFsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnQgfSBmcm9tIFwiLi9iYXNlL2NoYXJ0XCI7XHJcblxyXG5leHBvcnQgeyBkZWZhdWx0IGFzIG1lc3NhZ2UgfSBmcm9tIFwiLi9iYXNlL21lc3NhZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBZmZpeCB9IGZyb20gXCIuL2Jhc2UvYWZmaXhcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGVydCB9IGZyb20gXCIuL2Jhc2UvYWxlcnRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbmNob3IgfSBmcm9tIFwiLi9iYXNlL2FuY2hvclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEF2YXRhciB9IGZyb20gXCIuL2Jhc2UvYXZhdGFyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFja1RvcCB9IGZyb20gXCIuL2Jhc2UvYmFja1RvcFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhZGdlIH0gZnJvbSBcIi4vYmFzZS9iYWRnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJyZWFkY3J1bWIgfSBmcm9tIFwiLi9iYXNlL2JyZWFkY3J1bWJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhciB9IGZyb20gXCIuL2Jhc2UvY2FsZW5kYXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXJkIH0gZnJvbSBcIi4vYmFzZS9jYXJkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sbGFwc2UgfSBmcm9tIFwiLi9iYXNlL2NvbGxhcHNlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29tbWVudCB9IGZyb20gXCIuL2Jhc2UvY29tbWVudFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbmZpZ1Byb3ZpZGVyIH0gZnJvbSBcIi4vYmFzZS9jb25maWdQcm92aWRlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERlc2NyaXB0aW9ucyB9IGZyb20gXCIuL2Jhc2UvZGVzY3JpcHRpb25zXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGl2aWRlciB9IGZyb20gXCIuL2Jhc2UvZGl2aWRlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERyYXdlciB9IGZyb20gXCIuL2Jhc2UvZHJhd2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRHJvcGRvd24gfSBmcm9tIFwiLi9iYXNlL2Ryb3Bkb3duXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm93IH0gZnJvbSBcIi4vYmFzZS9ncmlkL1Jvd1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbCB9IGZyb20gXCIuL2Jhc2UvZ3JpZC9Db2xcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZSB9IGZyb20gXCIuL2Jhc2UvaW1hZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXlvdXQgfSBmcm9tIFwiLi9iYXNlL2xheW91dFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3QgfSBmcm9tIFwiLi9iYXNlL2xpc3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub3RpZmljYXRpb24gfSBmcm9tIFwiLi9iYXNlL25vdGlmaWNhdGlvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhZ2VIZWFkZXIgfSBmcm9tIFwiLi9iYXNlL3BhZ2VIZWFkZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWdpbmF0aW9uIH0gZnJvbSBcIi4vYmFzZS9wYWdpbmF0aW9uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9wY29uZmlybSB9IGZyb20gXCIuL2Jhc2UvcG9wY29uZmlybVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFByb2dyZXNzIH0gZnJvbSBcIi4vYmFzZS9wcm9ncmVzc1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlc3VsdCB9IGZyb20gXCIuL2Jhc2UvcmVzdWx0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2tlbGV0b24gfSBmcm9tIFwiLi9iYXNlL3NrZWxldG9uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BhY2UgfSBmcm9tIFwiLi9iYXNlL3NwYWNlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RhdGlzdGljIH0gZnJvbSBcIi4vYmFzZS9zdGF0aXN0aWNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdGVwcyB9IGZyb20gXCIuL2Jhc2Uvc3RlcHNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaW1lbGluZSB9IGZyb20gXCIuL2Jhc2UvdGltZWxpbmVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb29sdGlwIH0gZnJvbSBcIi4vYmFzZS90b29sdGlwXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHlwb2dyYXBoeSB9IGZyb20gXCIuL2Jhc2UvdHlwb2dyYXBoeVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvcG92ZXIgfSBmcm9tIFwiLi9iYXNlL3BvcG92ZXJcIjtcclxuXHJcbmV4cG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBJbnB1dEVhbWlsSW5zdGFuY2UgfSBmcm9tIFwiLi9iYXNlL2lucHV0L0VtYWlsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFzZVBhZ2UgfSBmcm9tIFwiLi9wYWdlL0Jhc2VQYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWZyYW1lIH0gZnJvbSBcIi4vYmFzZS9pZnJhbWVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vYmFzZS9lcnJvcmJvdW5kYXJ5XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWRpdG9yIH0gZnJvbSBcIi4vYmFzZS9lZGl0b3JcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBVcGxvYWQgfSBmcm9tIFwiLi9iYXNlL3VwbG9hZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERvd25sb2FkIH0gZnJvbSBcIi4vYmFzZS9kb3dubG9hZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyYW5zZmVyIH0gZnJvbSBcIi4vYmFzZS90cmFuc2ZlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwaW4gfSBmcm9tIFwiLi9iYXNlL3NwaW5cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXNzV29yZENoZWNrIH0gZnJvbSBcIi4vcGFnZS9QYXNzd29yZENoZWNrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGRmVmlld2VyIH0gZnJvbSBcIi4vYmFzZS9wZGZ2aXdlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVJY29uIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vRmlsZUljb25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTd2l0Y2ggfSBmcm9tIFwiLi9iYXNlL3N3aXRjaFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyZWVTZWxlY3QgfSBmcm9tIFwiLi9iYXNlL3RyZWVzZWxlY3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFkZXJTZWFyY2ggfSBmcm9tIFwiLi9wYWdlL0hlYWRlclNlYXJjaFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhcm91c2VsIH0gZnJvbSBcIi4vYmFzZS9jYXJvdXNlbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEVsbGlwc2VDZWxsIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vRWxsaXBzZUNlbGxcIjtcclxuXHJcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLE9BQU8sSUFBSUMsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU0QsT0FBTyxJQUFJRSxRQUFRLFFB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
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0IiwiQnV0dG9uIiwiQ2FzY2FkZXIiLCJDaGVja2JveCIsIkJvZHlSb3ciLCJJY29uIiwiVHJlZVBhbmVsIiwiRGF0ZVBpY2tlciIsIkZvcm0iLCJJbnB1dCIsIlRleHRBcmVhIiwiTWVudSIsIlJhZGlvIiwiU2VsZWN0IiwiVGFibGUiLCJEbmRDb250ZXh0VHlwZSIsIklCb2R5Um93UHJvcHMiLCJJTlNDVGFibGVQcm9wcyIsIlRhYnMiLCJUcmVlIiwiTnNjVHJlZVByb3BzIiwiU3RvcmUiLCJTdG9yZUNvbmZpZ1R5cGUiLCJnZXREZWZhdWx0Q29uZmlnIiwic2V0Q29uZmlnIiwiVGFnU2VsZWN0IiwiTm9EYXRhIiwiTm9NZXNzYWdlIiwiTm9OZXRXb3JrIiwiUGFnZTQwNCIsIk5vQXV0aG9yaXR5IiwiUmFuZ2VQaWNrZXIiLCJNb2RhbCIsIkNoYXJ0IiwibWVzc2FnZSIsIkFmZml4IiwiQWxlcnQiLCJBbmNob3IiLCJBdmF0YXIiLCJCYWNrVG9wIiwiQmFkZ2UiLCJCcmVhZGNydW1iIiwiQ2FsZW5kYXIiLCJDYXJkIiwiQ29sbGFwc2UiLCJDb21tZW50IiwiQ29uZmlnUHJvdmlkZXIiLCJEZXNjcmlwdGlvbnMiLCJEaXZpZGVyIiwiRHJhd2VyIiwiRHJvcGRvd24iLCJSb3ciLCJDb2wiLCJJbWFnZSIsIkxheW91dCIsIkxpc3QiLCJub3RpZmljYXRpb24iLCJQYWdlSGVhZGVyIiwiUGFnaW5hdGlvbiIsIlBvcGNvbmZpcm0iLCJQcm9ncmVzcyIsIlJlc3VsdCIsIlNrZWxldG9uIiwiU3BhY2UiLCJTdGF0aXN0aWMiLCJTdGVwcyIsIlRpbWVsaW5lIiwiVG9vbHRpcCIsIlR5cG9ncmFwaHkiLCJQb3BvdmVyIiwiU2xpZGVyTWVudSIsIkJhc2VQYWdlIiwiSWZyYW1lIiwiRXJyb3JCb3VuZGFyeSIsIkVkaXRvciIsIlVwbG9hZCIsIkRvd25sb2FkIiwiVHJhbnNmZXIiLCJTcGluIiwiUGFzc1dvcmRDaGVjayIsIlBkZlZpZXdlciIsIkZpbGVJY29uIiwiU3dpdGNoIiwiVHJlZVNlbGVjdCIsIkhlYWRlclNlYXJjaCIsIkNhcm91c2VsIiwiRWxsaXBzZUNlbGwiXSwic291cmNlcyI6WyIuLi9zcmMvY29tcG9uZW50cy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIyIDA5OjA0OjE5XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0xNiAxNDo0MzoxNVxyXG4gKi9cclxuLy8gZXhwb3J0IHsgRm9ybUluc3RhbmNlIH0gZnJvbSBcImFudGQvbGliL2Zvcm1cIjtcclxuXHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uIH0gZnJvbSBcIi4vYmFzZS9idXR0b25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXNjYWRlciB9IGZyb20gXCIuL2Jhc2UvY2FzY2FkZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL2Jhc2UvY2hlY2tib3hcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb2R5Um93IH0gZnJvbSBcIi4vYmFzZS9jb21tb24vQm9keVJvd1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb24gfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9JY29uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZVBhbmVsIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vVHJlZVBhbmVsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGF0ZVBpY2tlciB9IGZyb20gXCIuL2Jhc2UvZGF0ZXBpY2tcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JtIH0gZnJvbSBcIi4vYmFzZS9mb3JtXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5wdXQgfSBmcm9tIFwiLi9iYXNlL2lucHV0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dEFyZWEgfSBmcm9tIFwiLi9iYXNlL2lucHV0L1RleHRBcmVhXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudSB9IGZyb20gXCIuL2Jhc2UvbWVudVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlvIH0gZnJvbSBcIi4vYmFzZS9yYWRpb1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdCB9IGZyb20gXCIuL2Jhc2Uvc2VsZWN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFibGUgfSBmcm9tIFwiLi9iYXNlL3RhYmxlXCI7XHJcbmV4cG9ydCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzLCBJTlNDVGFibGVQcm9wcyB9IGZyb20gXCIuL2Jhc2UvdGFibGVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJzIH0gZnJvbSBcIi4vYmFzZS90YWJzXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZSB9IGZyb20gXCIuL2Jhc2UvdHJlZVwiO1xyXG5leHBvcnQgeyBOc2NUcmVlUHJvcHMsIFN0b3JlLCBTdG9yZUNvbmZpZ1R5cGUgfSBmcm9tIFwiLi9iYXNlL3RyZWVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBnZXREZWZhdWx0Q29uZmlnLCBzZXRDb25maWcgfSBmcm9tIFwiLi9jb25maWdcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWdTZWxlY3QgfSBmcm9tIFwiLi9iYXNlL3RhZ1NlbGVjdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vRGF0YSB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vRGF0YVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vTWVzc2FnZSB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vTWVzc2FnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vTmV0V29yayB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vTmV0V29ya1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhZ2U0MDQgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9QYWdlNDA0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9BdXRob3JpdHkgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Ob0F1dGhvcml0eVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhbmdlUGlja2VyIH0gZnJvbSBcIi4vYmFzZS9kYXRlcGljay9SYW5nZXBpY2tlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vZGFsIH0gZnJvbSBcIi4vYmFzZS9tb2RhbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENoYXJ0IH0gZnJvbSBcIi4vYmFzZS9jaGFydFwiO1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBtZXNzYWdlIH0gZnJvbSBcIi4vYmFzZS9tZXNzYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWZmaXggfSBmcm9tIFwiLi9iYXNlL2FmZml4XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxlcnQgfSBmcm9tIFwiLi9iYXNlL2FsZXJ0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQW5jaG9yIH0gZnJvbSBcIi4vYmFzZS9hbmNob3JcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBdmF0YXIgfSBmcm9tIFwiLi9iYXNlL2F2YXRhclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhY2tUb3AgfSBmcm9tIFwiLi9iYXNlL2JhY2tUb3BcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWRnZSB9IGZyb20gXCIuL2Jhc2UvYmFkZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcmVhZGNydW1iIH0gZnJvbSBcIi4vYmFzZS9icmVhZGNydW1iXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FsZW5kYXIgfSBmcm9tIFwiLi9iYXNlL2NhbGVuZGFyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FyZCB9IGZyb20gXCIuL2Jhc2UvY2FyZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbGxhcHNlIH0gZnJvbSBcIi4vYmFzZS9jb2xsYXBzZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbW1lbnQgfSBmcm9tIFwiLi9iYXNlL2NvbW1lbnRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb25maWdQcm92aWRlciB9IGZyb20gXCIuL2Jhc2UvY29uZmlnUHJvdmlkZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEZXNjcmlwdGlvbnMgfSBmcm9tIFwiLi9iYXNlL2Rlc2NyaXB0aW9uc1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERpdmlkZXIgfSBmcm9tIFwiLi9iYXNlL2RpdmlkZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcmF3ZXIgfSBmcm9tIFwiLi9iYXNlL2RyYXdlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERyb3Bkb3duIH0gZnJvbSBcIi4vYmFzZS9kcm9wZG93blwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvdyB9IGZyb20gXCIuL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2wgfSBmcm9tIFwiLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW1hZ2UgfSBmcm9tIFwiLi9iYXNlL2ltYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGF5b3V0IH0gZnJvbSBcIi4vYmFzZS9sYXlvdXRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0IH0gZnJvbSBcIi4vYmFzZS9saXN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbm90aWZpY2F0aW9uIH0gZnJvbSBcIi4vYmFzZS9ub3RpZmljYXRpb25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWdlSGVhZGVyIH0gZnJvbSBcIi4vYmFzZS9wYWdlSGVhZGVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFnaW5hdGlvbiB9IGZyb20gXCIuL2Jhc2UvcGFnaW5hdGlvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvcGNvbmZpcm0gfSBmcm9tIFwiLi9iYXNlL3BvcGNvbmZpcm1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcm9ncmVzcyB9IGZyb20gXCIuL2Jhc2UvcHJvZ3Jlc3NcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXN1bHQgfSBmcm9tIFwiLi9iYXNlL3Jlc3VsdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNrZWxldG9uIH0gZnJvbSBcIi4vYmFzZS9za2VsZXRvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwYWNlIH0gZnJvbSBcIi4vYmFzZS9zcGFjZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0YXRpc3RpYyB9IGZyb20gXCIuL2Jhc2Uvc3RhdGlzdGljXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RlcHMgfSBmcm9tIFwiLi9iYXNlL3N0ZXBzXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGltZWxpbmUgfSBmcm9tIFwiLi9iYXNlL3RpbWVsaW5lXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9vbHRpcCB9IGZyb20gXCIuL2Jhc2UvdG9vbHRpcFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFR5cG9ncmFwaHkgfSBmcm9tIFwiLi9iYXNlL3R5cG9ncmFwaHlcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3BvdmVyIH0gZnJvbSBcIi4vYmFzZS9wb3BvdmVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2xpZGVyTWVudSB9IGZyb20gXCIuL2Jhc2Uvc2xpZGVybWVudVwiO1xyXG5cclxuZXhwb3J0IHR5cGUgeyBkZWZhdWx0IGFzIElucHV0RWFtaWxJbnN0YW5jZSB9IGZyb20gXCIuL2Jhc2UvaW5wdXQvRW1haWxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYXNlUGFnZSB9IGZyb20gXCIuL3BhZ2UvQmFzZVBhZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJZnJhbWUgfSBmcm9tIFwiLi9iYXNlL2lmcmFtZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9iYXNlL2Vycm9yYm91bmRhcnlcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZGl0b3IgfSBmcm9tIFwiLi9iYXNlL2VkaXRvclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFVwbG9hZCB9IGZyb20gXCIuL2Jhc2UvdXBsb2FkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRG93bmxvYWQgfSBmcm9tIFwiLi9iYXNlL2Rvd25sb2FkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhbnNmZXIgfSBmcm9tIFwiLi9iYXNlL3RyYW5zZmVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BpbiB9IGZyb20gXCIuL2Jhc2Uvc3BpblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhc3NXb3JkQ2hlY2sgfSBmcm9tIFwiLi9wYWdlL1Bhc3N3b3JkQ2hlY2tcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQZGZWaWV3ZXIgfSBmcm9tIFwiLi9iYXNlL3BkZnZpd2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUljb24gfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN3aXRjaCB9IGZyb20gXCIuL2Jhc2Uvc3dpdGNoXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZVNlbGVjdCB9IGZyb20gXCIuL2Jhc2UvdHJlZXNlbGVjdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYWRlclNlYXJjaCB9IGZyb20gXCIuL3BhZ2UvSGVhZGVyU2VhcmNoXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2Fyb3VzZWwgfSBmcm9tIFwiLi9iYXNlL2Nhcm91c2VsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxsaXBzZUNlbGwgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9FbGxpcHNlQ2VsbFwiO1xyXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxPQUFPLElBQUlDLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNELE9BQU8sSUFBSUUsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTRixPQUFPLElBQUlHLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU0gsT0FBTyxJQUFJSSxPQUFPLFFBQVEsdUJBQXVCO0FBQzFELFNBQVNKLE9BQU8sSUFBSUssSUFBSSxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTTCxPQUFPLElBQUlNLFNBQVMsUUFBUSx5QkFBeUI7QUFDOUQsU0FBU04sT0FBTyxJQUFJTyxVQUFVLFFBQVEsaUJBQWlCO0FBQ3ZELFNBQVNQLE9BQU8sSUFBSVEsSUFBSSxRQUFRLGFBQWE7QUFDN0MsU0FBU1IsT0FBTyxJQUFJUyxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTVCxPQUFPLElBQUlVLFFBQVEsUUFBUSx1QkFBdUI7QUFDM0QsU0FBU1YsT0FBTyxJQUFJVyxJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTWCxPQUFPLElBQUlZLEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVNaLE9BQU8sSUFBSWEsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU2IsT0FBTyxJQUFJYyxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTQyxjQUFjLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxRQUFRLGNBQWM7QUFDNUUsU0FBU2pCLE9BQU8sSUFBSWtCLElBQUksUUFBUSxhQUFhO0FBQzdDLFNBQVNsQixPQUFPLElBQUltQixJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTQyxZQUFZLEVBQUVDLEtBQUssRUFBRUMsZUFBZSxRQUFRLGFBQWE7QUFDbEUsU0FBU3RCLE9BQU8sSUFBSXVCLGdCQUFnQixFQUFFQyxTQUFTLFFBQVEsVUFBVTtBQUNqRSxTQUFTeEIsT0FBTyxJQUFJeUIsU0FBUyxRQUFRLGtCQUFrQjtBQUN2RCxTQUFTekIsT0FBTyxJQUFJMEIsTUFBTSxRQUFRLHNCQUFzQjtBQUN4RCxTQUFTMUIsT0FBTyxJQUFJMkIsU0FBUyxRQUFRLHlCQUF5QjtBQUM5RCxTQUFTM0IsT0FBTyxJQUFJNEIsU0FBUyxRQUFRLHlCQUF5QjtBQUM5RCxTQUFTNUIsT0FBTyxJQUFJNkIsT0FBTyxRQUFRLHVCQUF1QjtBQUMxRCxTQUFTN0IsT0FBTyxJQUFJOEIsV0FBVyxRQUFRLDJCQUEyQjtBQUNsRSxTQUFTOUIsT0FBTyxJQUFJK0IsV0FBVyxRQUFRLDZCQUE2QjtBQUNwRSxTQUFTL0IsT0FBTyxJQUFJZ0MsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU2hDLE9BQU8sSUFBSWlDLEtBQUssUUFBUSxjQUFjO0FBRS9DLFNBQVNqQyxPQUFPLElBQUlrQyxPQUFPLFFBQVEsZ0JBQWdCO0FBQ25ELFNBQVNsQyxPQUFPLElBQUltQyxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTbkMsT0FBTyxJQUFJb0MsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU3BDLE9BQU8sSUFBSXFDLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNyQyxPQUFPLElBQUlzQyxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTdEMsT0FBTyxJQUFJdUMsT0FBTyxRQUFRLGdCQUFnQjtBQUNuRCxTQUFTdkMsT0FBTyxJQUFJd0MsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU3hDLE9BQU8sSUFBSXlDLFVBQVUsUUFBUSxtQkFBbUI7QUFDekQsU0FBU3pDLE9BQU8sSUFBSTBDLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBUzFDLE9BQU8sSUFBSTJDLElBQUksUUFBUSxhQUFhO0FBQzdDLFNBQVMzQyxPQUFPLElBQUk0QyxRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVM1QyxPQUFPLElBQUk2QyxPQUFPLFFBQVEsZ0JBQWdCO0FBQ25ELFNBQVM3QyxPQUFPLElBQUk4QyxjQUFjLFFBQVEsdUJBQXVCO0FBQ2pFLFNBQVM5QyxPQUFPLElBQUkrQyxZQUFZLFFBQVEscUJBQXFCO0FBQzdELFNBQVMvQyxPQUFPLElBQUlnRCxPQUFPLFFBQVEsZ0JBQWdCO0FBQ25ELFNBQVNoRCxPQUFPLElBQUlpRCxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTakQsT0FBTyxJQUFJa0QsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTbEQsT0FBTyxJQUFJbUQsR0FBRyxRQUFRLGlCQUFpQjtBQUNoRCxTQUFTbkQsT0FBTyxJQUFJb0QsR0FBRyxRQUFRLGlCQUFpQjtBQUNoRCxTQUFTcEQsT0FBTyxJQUFJcUQsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU3JELE9BQU8sSUFBSXNELE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVN0RCxPQUFPLElBQUl1RCxJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTdkQsT0FBTyxJQUFJd0QsWUFBWSxRQUFRLHFCQUFxQjtBQUM3RCxTQUFTeEQsT0FBTyxJQUFJeUQsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTekQsT0FBTyxJQUFJMEQsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTMUQsT0FBTyxJQUFJMkQsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTM0QsT0FBTyxJQUFJNEQsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTNUQsT0FBTyxJQUFJNkQsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBUzdELE9BQU8sSUFBSThELFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBUzlELE9BQU8sSUFBSStELEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVMvRCxPQUFPLElBQUlnRSxTQUFTLFFBQVEsa0JBQWtCO0FBQ3ZELFNBQVNoRSxPQUFPLElBQUlpRSxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTakUsT0FBTyxJQUFJa0UsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTbEUsT0FBTyxJQUFJbUUsT0FBTyxRQUFRLGdCQUFnQjtBQUNuRCxTQUFTbkUsT0FBTyxJQUFJb0UsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTcEUsT0FBTyxJQUFJcUUsT0FBTyxRQUFRLGdCQUFnQjtBQUNuRCxTQUFTckUsT0FBTyxJQUFJc0UsVUFBVSxRQUFRLG1CQUFtQjtBQUd6RCxTQUFTdEUsT0FBTyxJQUFJdUUsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTdkUsT0FBTyxJQUFJd0UsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU3hFLE9BQU8sSUFBSXlFLGFBQWEsUUFBUSxzQkFBc0I7QUFDL0QsU0FBU3pFLE9BQU8sSUFBSTBFLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVMxRSxPQUFPLElBQUkyRSxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTM0UsT0FBTyxJQUFJNEUsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTNUUsT0FBTyxJQUFJNkUsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTN0UsT0FBTyxJQUFJOEUsSUFBSSxRQUFRLGFBQWE7QUFDN0MsU0FBUzlFLE9BQU8sSUFBSStFLGFBQWEsUUFBUSxzQkFBc0I7QUFDL0QsU0FBUy9FLE9BQU8sSUFBSWdGLFNBQVMsUUFBUSxpQkFBaUI7QUFDdEQsU0FBU2hGLE9BQU8sSUFBSWlGLFFBQVEsUUFBUSx3QkFBd0I7QUFDNUQsU0FBU2pGLE9BQU8sSUFBSWtGLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNsRixPQUFPLElBQUltRixVQUFVLFFBQVEsbUJBQW1CO0FBQ3pELFNBQVNuRixPQUFPLElBQUlvRixZQUFZLFFBQVEscUJBQXFCO0FBQzdELFNBQVNwRixPQUFPLElBQUlxRixRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVNyRixPQUFPLElBQUlzRixXQUFXLFFBQVEsMkJBQTJCIiwiaWdub3JlTGlzdCI6W119
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Button","Cascader","Checkbox","BodyRow","Icon","TreePanel","DatePicker","Form","Input","TextArea","Menu","Radio","Select","Table","DndContextType","IBodyRowProps","INSCTableProps","Tabs","Tree","NscTreeProps","Store","StoreConfigType","getDefaultConfig","setConfig","TagSelect","NoData","NoMessage","NoNetWork","Page404","NoAuthority","RangePicker","Modal","Chart","message","Affix","Alert","Anchor","Avatar","BackTop","Badge","Breadcrumb","Calendar","Card","Collapse","Comment","ConfigProvider","Descriptions","Divider","Drawer","Dropdown","Row","Col","Image","Layout","List","notification","PageHeader","Pagination","Popconfirm","Progress","Result","Skeleton","Space","Statistic","Steps","Timeline","Tooltip","Typography","Popover","BasePage","Iframe","ErrorBoundary","Editor","Upload","Download","Transfer","Spin","PassWordCheck","PdfViewer","FileIcon","Switch","TreeSelect","HeaderSearch","Carousel","EllipseCell"],"sources":["../src/components/index.tsx"],"sourcesContent":["/*\r\n * @Descripttion:\r\n * @version:\r\n * @Author: rxzhu\r\n * @Date: 2021-03-22 09:04:19\r\n * @LastEditors: rxzhu\r\n * @LastEditTime: 2021-04-16 14:43:15\r\n */\r\n// export { FormInstance } from \"antd/lib/form\";\r\n\r\nexport { default as Button } from \"./base/button\";\r\nexport { default as Cascader } from \"./base/cascader\";\r\nexport { default as Checkbox } from \"./base/checkbox\";\r\nexport { default as BodyRow } from \"./base/common/BodyRow\";\r\nexport { default as Icon } from \"./base/common/Icon\";\r\nexport { default as TreePanel } from \"./base/common/TreePanel\";\r\nexport { default as DatePicker } from \"./base/datepick\";\r\nexport { default as Form } from \"./base/form\";\r\nexport { default as Input } from \"./base/input\";\r\nexport { default as TextArea } from \"./base/input/TextArea\";\r\nexport { default as Menu } from \"./base/menu\";\r\nexport { default as Radio } from \"./base/radio\";\r\nexport { default as Select } from \"./base/select\";\r\nexport { default as Table } from \"./base/table\";\r\nexport { DndContextType, IBodyRowProps, INSCTableProps } from \"./base/table\";\r\nexport { default as Tabs } from \"./base/tabs\";\r\nexport { default as Tree } from \"./base/tree\";\r\nexport { NscTreeProps, Store, StoreConfigType } from \"./base/tree\";\r\nexport { default as getDefaultConfig, setConfig } from \"./config\";\r\nexport { default as TagSelect } from \"./base/tagSelect\";\r\nexport { default as NoData } from \"./base/common/NoData\";\r\nexport { default as NoMessage } from \"./base/common/NoMessage\";\r\nexport { default as NoNetWork } from \"./base/common/NoNetWork\";\r\nexport { default as Page404 } from \"./base/common/Page404\";\r\nexport { default as NoAuthority } from \"./base/common/NoAuthority\";\r\nexport { default as RangePicker } from \"./base/datepick/Rangepicker\";\r\nexport { default as Modal } from \"./base/modal\";\r\nexport { default as Chart } from \"./base/chart\";\r\n\r\nexport { default as message } from \"./base/message\";\r\nexport { default as Affix } from \"./base/affix\";\r\nexport { default as Alert } from \"./base/alert\";\r\nexport { default as Anchor } from \"./base/anchor\";\r\nexport { default as Avatar } from \"./base/avatar\";\r\nexport { default as BackTop } from \"./base/backTop\";\r\nexport { default as Badge } from \"./base/badge\";\r\nexport { default as Breadcrumb } from \"./base/breadcrumb\";\r\nexport { default as Calendar } from \"./base/calendar\";\r\nexport { default as Card } from \"./base/card\";\r\nexport { default as Collapse } from \"./base/collapse\";\r\nexport { default as Comment } from \"./base/comment\";\r\nexport { default as ConfigProvider } from \"./base/configProvider\";\r\nexport { default as Descriptions } from \"./base/descriptions\";\r\nexport { default as Divider } from \"./base/divider\";\r\nexport { default as Drawer } from \"./base/drawer\";\r\nexport { default as Dropdown } from \"./base/dropdown\";\r\nexport { default as Row } from \"./base/grid/Row\";\r\nexport { default as Col } from \"./base/grid/Col\";\r\nexport { default as Image } from \"./base/image\";\r\nexport { default as Layout } from \"./base/layout\";\r\nexport { default as List } from \"./base/list\";\r\nexport { default as notification } from \"./base/notification\";\r\nexport { default as PageHeader } from \"./base/pageHeader\";\r\nexport { default as Pagination } from \"./base/pagination\";\r\nexport { default as Popconfirm } from \"./base/popconfirm\";\r\nexport { default as Progress } from \"./base/progress\";\r\nexport { default as Result } from \"./base/result\";\r\nexport { default as Skeleton } from \"./base/skeleton\";\r\nexport { default as Space } from \"./base/space\";\r\nexport { default as Statistic } from \"./base/statistic\";\r\nexport { default as Steps } from \"./base/steps\";\r\nexport { default as Timeline } from \"./base/timeline\";\r\nexport { default as Tooltip } from \"./base/tooltip\";\r\nexport { default as Typography } from \"./base/typography\";\r\nexport { default as Popover } from \"./base/popover\";\r\n\r\nexport type { default as InputEamilInstance } from \"./base/input/Email\";\r\nexport { default as BasePage } from \"./page/BasePage\";\r\nexport { default as Iframe } from \"./base/iframe\";\r\nexport { default as ErrorBoundary } from \"./base/errorboundary\";\r\nexport { default as Editor } from \"./base/editor\";\r\nexport { default as Upload } from \"./base/upload\";\r\nexport { default as Download } from \"./base/download\";\r\nexport { default as Transfer } from \"./base/transfer\";\r\nexport { default as Spin } from \"./base/spin\";\r\nexport { default as PassWordCheck } from \"./page/PasswordCheck\";\r\nexport { default as PdfViewer } from \"./base/pdfviwer\";\r\nexport { default as FileIcon } from \"./base/common/FileIcon\";\r\nexport { default as Switch } from \"./base/switch\";\r\nexport { default as TreeSelect } from \"./base/treeselect\";\r\nexport { default as HeaderSearch } from \"./page/HeaderSearch\";\r\nexport { default as Carousel } from \"./base/carousel\";\r\nexport { default as EllipseCell } from \"./base/common/EllipseCell\";\r\n\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","Button","Cascader","Checkbox","BodyRow","Icon","TreePanel","DatePicker","Form","Input","TextArea","Menu","Radio","Select","Table","DndContextType","IBodyRowProps","INSCTableProps","Tabs","Tree","NscTreeProps","Store","StoreConfigType","getDefaultConfig","setConfig","TagSelect","NoData","NoMessage","NoNetWork","Page404","NoAuthority","RangePicker","Modal","Chart","message","Affix","Alert","Anchor","Avatar","BackTop","Badge","Breadcrumb","Calendar","Card","Collapse","Comment","ConfigProvider","Descriptions","Divider","Drawer","Dropdown","Row","Col","Image","Layout","List","notification","PageHeader","Pagination","Popconfirm","Progress","Result","Skeleton","Space","Statistic","Steps","Timeline","Tooltip","Typography","Popover","SliderMenu","BasePage","Iframe","ErrorBoundary","Editor","Upload","Download","Transfer","Spin","PassWordCheck","PdfViewer","FileIcon","Switch","TreeSelect","HeaderSearch","Carousel","EllipseCell"],"sources":["../src/components/index.tsx"],"sourcesContent":["/*\r\n * @Descripttion:\r\n * @version:\r\n * @Author: rxzhu\r\n * @Date: 2021-03-22 09:04:19\r\n * @LastEditors: rxzhu\r\n * @LastEditTime: 2021-04-16 14:43:15\r\n */\r\n// export { FormInstance } from \"antd/lib/form\";\r\n\r\nexport { default as Button } from \"./base/button\";\r\nexport { default as Cascader } from \"./base/cascader\";\r\nexport { default as Checkbox } from \"./base/checkbox\";\r\nexport { default as BodyRow } from \"./base/common/BodyRow\";\r\nexport { default as Icon } from \"./base/common/Icon\";\r\nexport { default as TreePanel } from \"./base/common/TreePanel\";\r\nexport { default as DatePicker } from \"./base/datepick\";\r\nexport { default as Form } from \"./base/form\";\r\nexport { default as Input } from \"./base/input\";\r\nexport { default as TextArea } from \"./base/input/TextArea\";\r\nexport { default as Menu } from \"./base/menu\";\r\nexport { default as Radio } from \"./base/radio\";\r\nexport { default as Select } from \"./base/select\";\r\nexport { default as Table } from \"./base/table\";\r\nexport { DndContextType, IBodyRowProps, INSCTableProps } from \"./base/table\";\r\nexport { default as Tabs } from \"./base/tabs\";\r\nexport { default as Tree } from \"./base/tree\";\r\nexport { NscTreeProps, Store, StoreConfigType } from \"./base/tree\";\r\nexport { default as getDefaultConfig, setConfig } from \"./config\";\r\nexport { default as TagSelect } from \"./base/tagSelect\";\r\nexport { default as NoData } from \"./base/common/NoData\";\r\nexport { default as NoMessage } from \"./base/common/NoMessage\";\r\nexport { default as NoNetWork } from \"./base/common/NoNetWork\";\r\nexport { default as Page404 } from \"./base/common/Page404\";\r\nexport { default as NoAuthority } from \"./base/common/NoAuthority\";\r\nexport { default as RangePicker } from \"./base/datepick/Rangepicker\";\r\nexport { default as Modal } from \"./base/modal\";\r\nexport { default as Chart } from \"./base/chart\";\r\n\r\nexport { default as message } from \"./base/message\";\r\nexport { default as Affix } from \"./base/affix\";\r\nexport { default as Alert } from \"./base/alert\";\r\nexport { default as Anchor } from \"./base/anchor\";\r\nexport { default as Avatar } from \"./base/avatar\";\r\nexport { default as BackTop } from \"./base/backTop\";\r\nexport { default as Badge } from \"./base/badge\";\r\nexport { default as Breadcrumb } from \"./base/breadcrumb\";\r\nexport { default as Calendar } from \"./base/calendar\";\r\nexport { default as Card } from \"./base/card\";\r\nexport { default as Collapse } from \"./base/collapse\";\r\nexport { default as Comment } from \"./base/comment\";\r\nexport { default as ConfigProvider } from \"./base/configProvider\";\r\nexport { default as Descriptions } from \"./base/descriptions\";\r\nexport { default as Divider } from \"./base/divider\";\r\nexport { default as Drawer } from \"./base/drawer\";\r\nexport { default as Dropdown } from \"./base/dropdown\";\r\nexport { default as Row } from \"./base/grid/Row\";\r\nexport { default as Col } from \"./base/grid/Col\";\r\nexport { default as Image } from \"./base/image\";\r\nexport { default as Layout } from \"./base/layout\";\r\nexport { default as List } from \"./base/list\";\r\nexport { default as notification } from \"./base/notification\";\r\nexport { default as PageHeader } from \"./base/pageHeader\";\r\nexport { default as Pagination } from \"./base/pagination\";\r\nexport { default as Popconfirm } from \"./base/popconfirm\";\r\nexport { default as Progress } from \"./base/progress\";\r\nexport { default as Result } from \"./base/result\";\r\nexport { default as Skeleton } from \"./base/skeleton\";\r\nexport { default as Space } from \"./base/space\";\r\nexport { default as Statistic } from \"./base/statistic\";\r\nexport { default as Steps } from \"./base/steps\";\r\nexport { default as Timeline } from \"./base/timeline\";\r\nexport { default as Tooltip } from \"./base/tooltip\";\r\nexport { default as Typography } from \"./base/typography\";\r\nexport { default as Popover } from \"./base/popover\";\r\nexport { default as SliderMenu } from \"./base/slidermenu\";\r\n\r\nexport type { default as InputEamilInstance } from \"./base/input/Email\";\r\nexport { default as BasePage } from \"./page/BasePage\";\r\nexport { default as Iframe } from \"./base/iframe\";\r\nexport { default as ErrorBoundary } from \"./base/errorboundary\";\r\nexport { default as Editor } from \"./base/editor\";\r\nexport { default as Upload } from \"./base/upload\";\r\nexport { default as Download } from \"./base/download\";\r\nexport { default as Transfer } from \"./base/transfer\";\r\nexport { default as Spin } from \"./base/spin\";\r\nexport { default as PassWordCheck } from \"./page/PasswordCheck\";\r\nexport { default as PdfViewer } from \"./base/pdfviwer\";\r\nexport { default as FileIcon } from \"./base/common/FileIcon\";\r\nexport { default as Switch } from \"./base/switch\";\r\nexport { default as TreeSelect } from \"./base/treeselect\";\r\nexport { default as HeaderSearch } from \"./page/HeaderSearch\";\r\nexport { default as Carousel } from \"./base/carousel\";\r\nexport { default as EllipseCell } from \"./base/common/EllipseCell\";\r\n"],"mappings":"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","ignoreList":[]}
@@ -385,7 +385,7 @@ class BasePage extends PureComponent {
385
385
  className: getLess(styles, "icon")
386
386
  }, icon), /*#__PURE__*/React.createElement("span", {
387
387
  className: getLess(styles, "text")
388
- }, children, "1"));
388
+ }, children));
389
389
  }
390
390
  });
391
391
  return newButtons.map((item, index) => {
@@ -400,7 +400,6 @@ class BasePage extends PureComponent {
400
400
  params = _objectWithoutProperties(_item$props4, _excluded4);
401
401
  if (flag) {
402
402
  if (index < 3) {
403
- console.log("aaa");
404
403
  return /*#__PURE__*/React.createElement(Button, _extends({
405
404
  className: cls(getLess(styles, "editor"), {
406
405
  [getLess(styles, "editor_first")]: index === 0
@@ -823,18 +822,19 @@ class BasePage extends PureComponent {
823
822
  columns: tableColumn,
824
823
  expandable: _objectSpread({
825
824
  expandIcon: _ref => {
825
+ var _record$childNodes, _record$childNodes2;
826
826
  let {
827
827
  expanded,
828
828
  onExpand,
829
829
  record
830
830
  } = _ref;
831
- return /*#__PURE__*/React.createElement(React.Fragment, null, expanded ? /*#__PURE__*/React.createElement(DownOutlined, {
831
+ return /*#__PURE__*/React.createElement(React.Fragment, null, expanded && record.childNodes && ((_record$childNodes = record.childNodes) === null || _record$childNodes === void 0 ? void 0 : _record$childNodes.length) > 0 ? /*#__PURE__*/React.createElement(DownOutlined, {
832
832
  onClick: e => onExpand(record, e),
833
833
  className: getLess(styles, "expand-icon")
834
- }) : record.childNodes && /*#__PURE__*/React.createElement(RightOutlined, {
834
+ }) : record.childNodes && ((_record$childNodes2 = record.childNodes) === null || _record$childNodes2 === void 0 ? void 0 : _record$childNodes2.length) > 0 ? /*#__PURE__*/React.createElement(RightOutlined, {
835
835
  onClick: e => onExpand(record, e),
836
836
  className: getLess(styles, "expand-icon")
837
- }));
837
+ }) : null);
838
838
  }
839
839
  }, expandable),
840
840
  columnOrder: true,
@@ -878,4 +878,4 @@ class BasePage extends PureComponent {
878
878
  }
879
879
  }
880
880
  export default BasePage;
881
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJCdXR0b24iLCJNb2RhbCIsIlBvcG92ZXIiLCJtZXNzYWdlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsInV0aWxzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsIkRlbGV0ZU91dGxpbmVkIiwiZ2V0TGVzcyIsInJlcXVlc3QiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX3R5cGUiLCJfc2l6ZSIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJzdGF0ZSIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsInBvcG9wZW5zIiwiY29tcG9uZW50RGlkTW91bnQiLCJpbml0RGF0YSIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiX3RoaXMkZWRpdG9yUmVmJGN1cnJlIiwiZWRpdG9yZmxhZyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTIiLCJzZXRMb2FkaW5nIiwibG9hZGluZyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTMiLCJzZXRFZGl0Rm9ybVZhbHVlcyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTQiLCJzZXRGaWVsZHNWYWx1ZSIsImdldEVkaXRGb3JtVmFsdWVzIiwiX3RoaXMkZWRpdG9yUmVmJGN1cnJlNSIsImdldEZpZWxkc1ZhbHVlIiwib25EZWxldGUiLCJkYXRhIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuIiwiZGVsZXRlVXJsIiwiZGVsZXRlUGFyYW1zIiwiZGVsZXRlUG9zaXRpb24iLCJfdGhpcyIsInRhYmxlUmVmIiwiZ2V0U2VsZWN0ZWRSb3dLZXlzIiwid2FybmluZyIsImNvbmZpcm0iLCJvbk9rIiwiRXJyb3IiLCJkZWZhdWx0UGFyYW1zIiwibWV0aG9kIiwiYXV0b1ByZWZpeCIsImlkcyIsImpvaW4iLCJpZCIsInJlcXVlc3RQYXJhbXMiLCJfb2JqZWN0U3ByZWFkIiwidGhlbiIsImNvZGUiLCJfdGhpcyRzZWFyY2hSZWYiLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWMiLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWMyIiwic3VjY2VzcyIsImdldFNlYXJjaFZhbHVlcyIsIm9uQ2FsbEJhY2tzIiwib25EZWxldGVDYWxsQmFjayIsInRhYmxlTG9hZCIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuMiIsInJlcXVlc3RDb25maWciLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaENhbGxCYWNrIiwiY2FsbGJhY2siLCJ0YWJsZVJlbG9hZCIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjMiLCJhdXRvTG9hZCIsInJlbG9hZCIsIl9yZXMkZGF0YSIsInJlY29yZHMiLCJjdXJyZW50UGFnZSIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjQiLCJfdGhpcyR0YWJsZVJlZiRjdXJyZW41IiwiZ2V0U2VsZWN0ZWRSb3dEYXRhcyIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjYiLCJyZXNldFNlbGVjdGVkUm93S2V5cyIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjciLCJfdGhpcyRzZWFyY2hSZWYyIiwiZnJvbVZhbHVlIiwiZ2V0Q2hpbGRyZW5EYXRhIiwidGFibGVQcm9wcyIsInJvd0tleSIsInJlc0tleSIsImNoaWxkTm9kZXMiLCJjaGlsZHJlbiIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInJlbmRlclRvb2xCdXR0b25zIiwidG9vbGJ1dHRvbnMiLCJtYXJnaW5mbGFnIiwiZmxhZyIsInNob3dTZWFyY2giLCJfaXRlbSRwcm9wcyIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm1hcmdpbkxlZnQiLCJ0aXRsZSIsInBsYWNlbWVudCIsInRyaWdnZXIiLCJyZW5kZXJDbG91bW5CdXR0b24iLCJjb2x1bW5CdXR0b25zIiwicmVjb3JkIiwiYWN0aW9uUHJvcHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwiX2l0ZW0kcHJvcHMyIiwicmVjb3JkU2hvdyIsIl9leGNsdWRlZDIiLCJldmFsIiwicHVzaCIsIl9pdGVtJHByb3BzMyIsIl9leGNsdWRlZDMiLCJzZXRTdGF0ZSIsIl9pdGVtJHByb3BzNCIsIl9leGNsdWRlZDQiLCJ2aXNpYmxlIiwib25WaXNpYmxlQ2hhbmdlIiwidmlzaWJhbGUiLCJ0cmVlU2VsZWN0Iiwic2VsZWN0ZWRLZXlzIiwib2JqIiwiX3RoaXMkc2VhcmNoUmVmMyIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzMiLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWM0Iiwia2V5d29yZCIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwicGFyYW50U2VsZWN0IiwidHJlZVByb3BzIiwic2VsZWN0ZWROb2RlcyIsImRhdGFyZWYiLCJhdHRyaWJ1dGUiLCJpc0xlYWYiLCJvblRyZWVTZWxlY3QiLCJ0cmVlU2VsZWN0Q2FsbEJhY2siLCJyZXNldFNlYXJjaCIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTIiLCJyZXNldEZpZWxkcyIsImdldFRleHQiLCJ0ZXh0IiwiX3Byb3BzJGRhdGEiLCJuZXdUZXh0IiwiaSIsImxhYmVsIiwic2V0VGFibGVEYXRhIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuOCIsInNldERhdGEiLCJzZXRUcmVlRGF0YSIsIl90aGlzJHRyZWVSZWYkY3VycmVudCIsInRyZWVSZWYiLCJyZW5kZXIiLCJfdGFibGVQcm9wcyR0b29sYmFyIiwiX3RhYmxlUHJvcHMkdG9vbGJhcjIiLCJjb2x1bW5zIiwic3VibWl0VXJsIiwiZm9ybVByb3BzIiwic2hvd0xlZnQiLCJzdWJtaXRQYXJhbXMiLCJzaG93VG9vbEJ1dHRvbiIsImJ1dHRvbnMiLCJlZGl0b3JGb3JtIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwiX2V4Y2x1ZGVkNSIsInRyZWVTdG9yZSIsInRyZWVTZWFyY2giLCJ0aXRsZUFsaWFzIiwib3RoZXJ0cmVlUGFyYW1zIiwiX2V4Y2x1ZGVkNiIsInRhYmxlUGFyYW1zIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwiX3RlbXAkc2VhcmNoIiwiX3RlbXAkcHJvcHMiLCJfdGVtcCRwcm9wczIiLCJfdGVtcCIsInRlbXAiLCJzZWFyY2giLCJfdGVtcCRzZWFyY2gyIiwiX3RlbXAkc2VhcmNoMyIsIl90ZW1wJHNlYXJjaDQiLCJmaWVsZCIsImRhdGFJbmRleCIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInJ1bGVzIiwic2VhcmNoUnVsZXMiLCJlZGl0b3IiLCJzcGFuIiwiZGljdE5hbWUiLCJfdGVtcCRwcm9wczMiLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsInRlbXBQcm9wIiwiRnJhZ21lbnQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsImluZGV4T2YiLCJiaW5kIiwiZGFuZ2VyIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJfY2hpbGQkcHJvcHMyIiwiX2l0ZW0kcHJvcHM1IiwiX2l0ZW0kcHJvcHM2IiwiYWxpZ24iLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsImZpeGVkIiwicmVhY29yZCIsInNlYXJjaEZsYWciLCJ0YWJsZVRvb2wiLCJ0b29sRmxhZyIsInRvb2xiYXJGbGFnIiwidG9vbGJhciIsInRvb2xzIiwicGFnaW5hdGlvbiIsInNjcm9sbCIsIngiLCJwYWdlVGl0bGUiLCJkaXNwbGF5IiwiY2hlY2thYmxlIiwic2VhcmNoYWJsZSIsIm9uU2VsZWN0Iiwib25SZXNldCIsInJlZiIsInNlYXJjaEZvcm1Qcm9wcyIsImV4cGFuZEljb24iLCJfcmVmIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJvbkNoYW5nZSIsIm9uVG9vbENsaWNrIiwib25SZWZyZXNoIiwiX3RoaXMkcHJvcHMkb25DYWxsQmFjNSIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzYiLCJvblN1bWJpdENhbGxCYWNrIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJvdGhlclByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9CYXNlUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4uLy4uL2Jhc2UvdGFibGVcIjtcclxuaW1wb3J0IFRyZWUgZnJvbSBcIi4uLy4uL2Jhc2UvdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vYmFzZS9tb2RhbFwiO1xyXG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwiLi4vLi4vYmFzZS9wb3BvdmVyXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2Jhc2UvY29tbW9uL0ljb25Gb250XCI7XHJcbmltcG9ydCB7IGljb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgRWRpdG9yRm9ybSBmcm9tIFwiLi9Gb3JtXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG4gIEVkaXRPdXRsaW5lZCxcclxuICBSaWdodE91dGxpbmVkLFxyXG4gIFBsdXNPdXRsaW5lZCxcclxuICBFbGxpcHNpc091dGxpbmVkLFxyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJRm9ybVByb3BzIH0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybS9Gb3JtXCI7XHJcbmltcG9ydCBIZWFkZXJTZWFyY2ggZnJvbSBcIi4uL0hlYWRlclNlYXJjaFwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZmlsdGVyQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrov4fmu6TmjInpkq5cclxuICBzaG93Um93U2VsZWN0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbooajmoLzli77pgInliJdcclxuICBwYWdpbmF0aW9uPzogYm9vbGVhbiB8IFBhZ2luYXRpb25Qcm9wczsgLy/mmK/lkKbmmL7npLrliIbpobVcclxuICBjb2x1bW5PcmRlcj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66KGo5qC85bqP5YiXXHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmkJzntKLmoYZcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7IC8v5pCc57SidmFsdWXlr7nlupTnmoRrZXlcclxuICBzZWFyY2hGaWVsZD86IHN0cmluZzsgLy/mn6Xor6Llr7nlupTnmoRrZXlcclxuICB0aXRsZUFsaWFzPzogc3RyaW5nOyAvL+agkXRpdGxl5a+55bqU55qEa2V5LOm7mOiupHRpdGxlXHJcbiAgbm9kZVBvcnBzPzogb2JqZWN0O1xyXG4gIHBhcmFudFNlbGVjdD86IGJvb2xlYW47XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBGb3JtUHJvcHMgZXh0ZW5kcyBJRm9ybVByb3BzIHt9XHJcbmludGVyZmFjZSBOU0NCYXNlQmFnZVByb3BzIHtcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlpLTpg6jmkJzntKLmoI9cclxuICB0YWJsZVByb3BzPzogVGFibGVQcm9wczsgLy/ooajmoLzlj4LmlbBcclxuICB0cmVlUHJvcHM/OiBUcmVlUHJvcHM7IC8v5bem5L6n5qCR5Y+C5pWwXHJcbiAgc3VibWl0UGFyYW1zPzogT2JqZWN0OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og70gLCDkuLpmYWxzZSDnvJbovpHvvIzmn6XnnIvvvIzmlrDlop7lip/og73lnYfkuI3lj6/nlKhcclxuICBkZWxldGVVcmw/OiBzdHJpbmc7IC8v5Yig6ZmkdXJsXHJcbiAgb25EZWxldGU/OiAoc2VsZWN0ZWRLZXlzPzogQXJyYXk8c3RyaW5nPikgPT4gdm9pZDsgLy/liKDpmaTlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dpZHPmi7zmjqXkvKDpgJLnu5nlkI7lj7BcclxuICBkZWxldGVQb3NpdGlvbj86IFwidG9vbGJhclwiIHwgXCJyb3dcIjtcclxuICBkZWxldGVQYXJhbXM/OiBPYmplY3Q7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25TZWFyY2g/OiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgb25SZXNldD86ICgpID0+IHZvaWQ7XHJcbiAgaW5pdERhdGE/OiBhbnk7IC8v5Yid5aeL5YyW5Zue6LCD5Ye95pWw77yM5ZyoY29tcG9uZW50RGlkTW91bnTkuK3osIPnlKhcclxuICBidXR0b25zPzogQXJyYXk8c3RyaW5nPjsgLy/mjInpkq7pm4blkIggIFsnYWRkJywnZGVsZXRlJywnc2VhcmNoJywnZWRpdG9yJ11cclxuICBvblNob3dGb3JtPzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uSGlkZUZvcm0/OiAoKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uRm9ybUNoYW5nZT86IChjaGFuZ2VkVmFsdWVzPzogYW55LCBhbGxWYWx1ZXM/OiBhbnkpID0+IHZvaWQ7IC8v6KGo5Y2Vb25DaGFuZ2Xlm57osINcclxuICBmb3JtVHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCI7XHJcbiAgZm9ybUNoYW5nZVZhbGlkPzogYm9vbGVhbjsgLy/ooajljZXmoKHpqoxcclxuICBjbGFzc05hbWU/OiBhbnk7XHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogXCJyaWdodFwiIHwgXCJidXR0b21cIjtcclxuICBwYWdlVGl0bGU/OiBzdHJpbmcgfCBSZWFjdE5vZGU7XHJcbiAgZm9ybVByb3BzPzogRm9ybVByb3BzO1xyXG4gIGFjdGlvblByb3BzPzogeyB0ZXh0QWxpZ24/OiBzdHJpbmc7IHNob3dJY29uPzogYm9vbGVhbjsgd2lkdGg/OiBudW1iZXIgfTtcclxuICBzZWFyY2hGb3JtUHJvcHM/OiB7IHdyYXBwZXJDb2w/OiBhbnk7IGxhYmVsQ29sPzogYW55IH07XHJcbiAgb25UcmVlU2VsZWN0PzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uQ2FsbEJhY2tzPzoge1xyXG4gICAgdHJlZVNlbGVjdENhbGxCYWNrPzogYW55O1xyXG4gICAgb25TZWFyY2hDYWxsQmFjaz86IGFueTtcclxuICAgIG9uU3VtYml0Q2FsbEJhY2s/OiBhbnk7XHJcbiAgICBvbkRlbGV0ZUNhbGxCYWNrPzogYW55O1xyXG4gIH07XHJcbn1cclxuXHJcbmNsYXNzIEJhc2VQYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOU0NCYXNlQmFnZVByb3BzLCBhbnk+IHtcclxuICB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgdHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IHsgc3RvcmVQcmVmaXggfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHR5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcImZvcm1UeXBlXCIgOiBcImZvcm1UeXBlXCJcclxuICAgICk7XHJcbiAgICB0eXBlID0gdHlwZT8uY29udGVudDtcclxuICAgIGxldCBzaXplID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBzaXplID0gc2l6ZT8uY29udGVudDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFtdLFxyXG4gICAgICB0cmVlU2VsZWN0ZWRLZXk6IFwiXCIsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGZvcm1UeXBlOiB0eXBlIHx8IFwibW9kYWxcIixcclxuICAgICAgdGFibGVTaXplOiBzaXplIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICB0cmVlU2VhcmNoUHJhbXM6IHt9LFxyXG4gICAgICBwb3BvcGVuczoge30sXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25TZWFyY2gpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICBzZXRFZGl0Rm9ybVZhbHVlcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5lZGl0b3JSZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdEZvcm1WYWx1ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8v5om56YeP5Yig6ZmkXHJcbiAgb25EZWxldGUoZGF0YT86IGFueSkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkZWxldGVVcmwsXHJcbiAgICAgIG9uRGVsZXRlLFxyXG4gICAgICBkZWxldGVQYXJhbXMsXHJcbiAgICAgIGRlbGV0ZVBvc2l0aW9uID0gXCJ0b29sYmFyXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBjb25zdCBzZWxlY3RlZFJvd0tleXMgPSB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICBtZXNzYWdlLndhcm5pbmcoXCLor7fpgInmi6nopoHliKDpmaTnmoTmlbDmja7vvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBNb2RhbC5jb25maXJtKHtcclxuICAgICAgY29udGVudDogXCLmmK/lkKbnoa7orqTliKDpmaTmiYDpgInpobnvvJ9cIixcclxuICAgICAgLy8gY2VudGVyZWQ6dHJ1ZSxcclxuICAgICAgb25PazogKCkgPT4ge1xyXG4gICAgICAgIGlmIChvbkRlbGV0ZSkge1xyXG4gICAgICAgICAgb25EZWxldGUgJiZcclxuICAgICAgICAgICAgb25EZWxldGUoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMgOiBkYXRhKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGlkczogZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMuam9pbigpIDogZGF0YS5pZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IF90aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25DYWxsQmFja3M/Lm9uRGVsZXRlQ2FsbEJhY2sgJiZcclxuICAgICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vbkRlbGV0ZUNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgX3RoaXMudGFibGVMb2FkKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5Yig6Zmk5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdGFibGVMb2FkKHBhcmFtczogYW55LCByZXF1ZXN0Q29uZmlnID0ge30pIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIC4uLnJlcXVlc3RDb25maWcsXHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2gocGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoLCBvbkNhbGxCYWNrcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaCh7IC4uLnBhcmFtcywgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVMb2FkKHsgLi4ucGFyYW1zLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9KTtcclxuICAgIG9uQ2FsbEJhY2tzPy5vblNlYXJjaENhbGxCYWNrICYmXHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uQ2FsbEJhY2tzPy5vblNlYXJjaENhbGxCYWNrLCB0aGlzLCBbcGFyYW1zXSk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQocGFyYW1zID0ge30sIGF1dG9Mb2FkID0gdHJ1ZSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8ucmVsb2FkKHtcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBhdXRvTG9hZCAmJlxyXG4gICAgICAgICAgcmVzPy5kYXRhPy5yZWNvcmRzPy5sZW5ndGggPT0gMCAmJlxyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50UGFnZSAhPT0gMVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8ucmVsb2FkKHtcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGN1cnJlbnQ6IDEsIC4uLnBhcmFtcyB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dEYXRhcygpO1xyXG4gIH1cclxuICByZXNldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnJlc2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICByZXR1cm4geyAuLi5mcm9tVmFsdWUsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH07XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZHJlbkRhdGEoZGF0YSwga2V5cyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCByZXNLZXkgPSBbXTtcclxuICAgIGlmIChkYXRhLmNoaWxkTm9kZXMpIHtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmNoaWxkTm9kZXM7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoaWxkcmVuRGF0YShpdGVtLmNoaWxkTm9kZXMsIGtleXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNLZXkgPSBbLi4ua2V5cywgaXRlbVtyb3dLZXldXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGRhdGFbcm93S2V5XV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzS2V5O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVG9vbEJ1dHRvbnModG9vbGJ1dHRvbnM6IGFueSwgbWFyZ2luZmxhZyA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBmbGFnID0gdG9vbGJ1dHRvbnMubGVuZ3RoID4gNTtcclxuICAgIGNvbnN0IHsgc2hvd1NlYXJjaCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljaygpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zLW1hcmdpblwiKV06ICFzaG93U2VhcmNoIHx8IG1hcmdpbmZsYWcsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3Rvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AtYm94J119XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICDmm7TlpJogPERvd25PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgYWN0aW9uUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgbmV3QnV0dG9ucyA9IFtdO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qcm9wcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCByZWNvcmRTaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKHJlY29yZFNob3cpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgaWYgKGV2YWwocmVjb3JkU2hvdykpIHtcclxuICAgICAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICBjb25zdCBzaG93ID0gcmVjb3JkU2hvdyhyZWNvcmQpO1xyXG4gICAgICAgICAgc2hvdyAmJiBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBmbGFnID0gbmV3QnV0dG9ucy5sZW5ndGggPiAzO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMikge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBkYXRhID0ge30gYXMgYW55O1xyXG4gICAgICAgICAgICAgIGRhdGFbcmVjb3JkLmlkXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgcG9wb3BlbnM6IGRhdGEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHR5cGU9XCJsaW5rXCJcclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTE8L3NwYW4+XHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJhYWFcIik7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJsaW5rXCJcclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICB2aXNpYmxlPXt0aGlzLnN0YXRlLnBvcG9wZW5zW3JlY29yZC5pZF0gfHwgZmFsc2V9XHJcbiAgICAgICAgICAgICAgb25WaXNpYmxlQ2hhbmdlPXsodmlzaWJhbGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2aXNpYmFsZSkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHt9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgICAgZGF0YVtyZWNvcmQuaWRdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wb3BlbnM6IGRhdGEsXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wb3BlbnM6IHt9LFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX0+XHJcbiAgICAgICAgICAgICAgICA8RWxsaXBzaXNPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgdHlwZT1cImxpbmtcIlxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgb2JqOiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VhcmNoS2V5ID0gXCJrZXlcIixcclxuICAgICAgc2VhcmNoRmllbGQgPSBcIlwiLFxyXG4gICAgICBwYXJhbnRTZWxlY3QgPSB0cnVlLFxyXG4gICAgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH0gPSBvYmo7XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgIGlmIChwYXJhbnRTZWxlY3QpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7IFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWROb2Rlc1swXS5pc0xlYWYgfHwgIXNlbGVjdGVkTm9kZXNbMF0uY2hpbGRyZW4pIHtcclxuICAgICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHsgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHt9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnByb3BzLm9uVHJlZVNlbGVjdCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uVHJlZVNlbGVjdChzZWxlY3RlZEtleXMsIG9iaik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKSB8fCB7fTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMudGFibGVMb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8udHJlZVNlbGVjdENhbGxCYWNrICYmXHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKHRoaXMucHJvcHMub25DYWxsQmFja3M/LnRyZWVTZWxlY3RDYWxsQmFjaywgdGhpcywgW1xyXG4gICAgICAgIHNlbGVjdGVkS2V5cyxcclxuICAgICAgICBvYmosXHJcbiAgICAgIF0pO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIGdldFRleHQocHJvcHMsIHRleHQpIHtcclxuICAgIGxldCBuZXdUZXh0ID0gdGV4dDtcclxuICAgIGlmIChwcm9wcz8uZGF0YSAmJiBwcm9wcz8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZGF0YSA9IHByb3BzLmRhdGE7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YT8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGF0YVtpXS52YWx1ZSA9PSB0ZXh0KSB7XHJcbiAgICAgICAgICBuZXdUZXh0ID0gZGF0YVtpXS5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdUZXh0O1xyXG4gIH1cclxuICBzZXRUYWJsZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8uc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgc2V0VHJlZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50cmVlUmVmLmN1cnJlbnQ/LnN0b3JlPy5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZEtleSA9IChzZWxlY3RlZCkgPT4ge1xyXG4gICAgbGV0IHJlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBzZWxlY3RlZFtrZXldO1xyXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmVzID0gWy4uLnJlcywgLi4ua2V5c107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfTtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIGJ1dHRvbnMgPSBbXSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICAgIG9uU2hvd0Zvcm0sXHJcbiAgICAgIGZvcm1DaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID0gXCJidXR0b21cIixcclxuICAgICAgYWN0aW9uUHJvcHMsXHJcbiAgICAgIGRlbGV0ZVBvc2l0aW9uID0gXCJ0b29sYmFyXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIGZpbHRlckNvbHVtbiA9IHRydWUsXHJcbiAgICAgIGFjdGlvbkNvbHVtbiA9IHRydWUsXHJcbiAgICAgIHNob3dSb3dTZWxlY3Rpb24gPSB0cnVlLFxyXG4gICAgICBjb2x1bW5PcmRlciA9IHRydWUsXHJcbiAgICAgIGV4cGFuZGFibGUgPSB7fSxcclxuICAgICAgcGFyYW50U2VsZWN0ID0gdHJ1ZSxcclxuICAgICAgLi4ub3RoZXJ0YWJsZVBhcmFtc1xyXG4gICAgfSA9IHRhYmxlUHJvcHM7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZTogdHJlZVN0b3JlID0ge30sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRyZWVTZWFyY2ggPSB0cnVlLFxyXG4gICAgICB0aXRsZUFsaWFzID0gXCJ0aXRsZVwiLFxyXG4gICAgICAuLi5vdGhlcnRyZWVQYXJhbXNcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlLCAuLi5vdGhlcnRhYmxlUGFyYW1zIH0gYXMgYW55O1xyXG4gICAgbGV0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IGNvbHVtbkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2ggPT09IHRydWUgfHwgdGVtcC5zZWFyY2g/LnNob3cgPT09IHRydWUpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC5zZWFyY2g/LmxhYmVsIHx8IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICAgIGxhYmVsQ29sOiB0ZW1wLnNlYXJjaD8ubGFiZWxDb2wsXHJcbiAgICAgICAgICB3cmFwcGVyQ29sOiB0ZW1wLnNlYXJjaD8ud3JhcHBlckNvbCxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnNlYXJjaFJ1bGVzID8gdGVtcC5zZWFyY2hSdWxlcyA6IFtdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkZWxldGUgdGVtcC5zZWFyY2g7XHJcbiAgICAgIHRlbXAuZWRpdG9yICE9PSBmYWxzZSAmJlxyXG4gICAgICAgIGVkaXRvckZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAucnVsZXMgPyB0ZW1wLnJ1bGVzIDogW10sXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICAgIHByb3BzOiB7IC4uLnRlbXAucHJvcHMgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleDtcclxuICAgICAgICBkZWZhdWx0VmFsdWVbbmFtZV0gPSB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNwYW47XHJcbiAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnR5cGU7XHJcbiAgICAgIGxldCB0ZW1wUHJvcCA9IHsgLi4udGVtcC5wcm9wcyB9O1xyXG4gICAgICBpZiAodGVtcC5zdHlsZSkge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAge3RleHQgIT09IFwiXCIgJiYgdGV4dCAhPT0gbnVsbCAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLWJhY2tcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLXRleHRcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2UgaWYgKCF0ZW1wLmVsbGlwc2lzKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAgPSB7IC4uLnRlbXAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgaWYgKHRlbXA/LmNvbHVtblNob3cgIT09IGZhbHNlKSB0YWJsZUNvbHVtbi5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzZWxmQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qcm9wcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBpZiAoZWRpdG9yRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJzZWFyY2hcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEV5ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDmn6XnnItcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImVkaXRvclwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RWRpdE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDnvJbovpFcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJhZGRcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uU2hvd0Zvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgb25TaG93Rm9ybSgpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNPdXRsaW5lZCAvPn1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDmt7vliqBcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJkZWxldGVcIikgPiAtMSkge1xyXG4gICAgICBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDliKDpmaRcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJyb3dcIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25EZWxldGUocmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFjdGlvbkNvbHVtbiAmJlxyXG4gICAgICB0YWJsZUNvbHVtbi5wdXNoKHtcclxuICAgICAgICB0aXRsZTogXCLmk43kvZxcIixcclxuICAgICAgICBkYXRhSW5kZXg6IFwiYWN0aW9uXCIsXHJcbiAgICAgICAgYWxpZ246IGFjdGlvblByb3BzPy50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYWN0aW9uUHJvcHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiBhY3Rpb25Qcm9wcz8ud2lkdGhcclxuICAgICAgICAgID8gYWN0aW9uUHJvcHM/LndpZHRoXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgOiAyMDAsXHJcbiAgICAgICAgZml4ZWQ6IFwicmlnaHRcIixcclxuICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnksIHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYWN0aW9uXCIpfT5cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKGNvbHVtbk9yZGVyKVxyXG4gICAgICB0YWJsZUNvbHVtbiA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aXRsZTogXCLluo/lj7dcIixcclxuICAgICAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dCwgcmVhY29yZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e2luZGV4ICsgMX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4udGFibGVDb2x1bW4sXHJcbiAgICAgIF07XHJcbiAgICBsZXQgc2VhcmNoRmxhZyA9IHNob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMDtcclxuICAgIGxldCB7IHRhYmxlVG9vbCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdG9vbEZsYWcgPSBzaG93VG9vbEJ1dHRvbiAmJiBzZWxmQnV0dG9ucy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHRvb2xiYXJGbGFnID0gIShcclxuICAgICAgdGFibGVQcm9wcy50b29sYmFyID09IGZhbHNlIHx8XHJcbiAgICAgIHRhYmxlUHJvcHMudG9vbGJhcj8uc2hvdyA9PSBmYWxzZSB8fFxyXG4gICAgICB0YWJsZVByb3BzLnRvb2xiYXI/LnRvb2xzPy5sZW5ndGggPT0gMCB8fFxyXG4gICAgICB0YWJsZVRvb2w/LnNob3cgPT0gZmFsc2VcclxuICAgICk7XHJcbiAgICBpZiAodGFibGVQcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCBzY3JvbGwgPSB0YWJsZVBhcmFtcy5zY3JvbGw7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHNjcm9sbDogeyB4OiBcIm1heC1jb250ZW50XCIsIC4uLnNjcm9sbCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZVwiKSwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS10aXRsZVwiKSl9PlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtcGFuZVwiKSl9XHJcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJsZWZ0XCIpfT5cclxuICAgICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgICAgICB7Li4ub3RoZXJ0cmVlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicmlnaHRcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibm8tbGVmdC1yaWdodFwiKV06ICFzaG93TGVmdCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgIDxIZWFkZXJTZWFyY2hcclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zPXtzZWFyY2hGb3Jtc31cclxuICAgICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbj17dG9vbEJ1dHRvblBvc2l0aW9ufVxyXG4gICAgICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIG9uUmVzZXQ9e3RoaXMucHJvcHMub25SZXNldH1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3JtUHJvcHM9e3RoaXMucHJvcHMuc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICB7c2hvd1Rvb2xCdXR0b24gJiZcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID09IFwiYnV0dG9tXCIgJiZcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xCdXR0b25zKHNlbGZCdXR0b25zLCBzZWFyY2hGb3Jtcy5sZW5ndGggPT0gMCl9XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcInRhYmxlXCIpLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICAoc2VhcmNoRmxhZyAmJiAhdG9vbEZsYWcpIHx8ICF0b29sYmFyRmxhZyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZS10b3AyXCIpXTogIXNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8VGFibGVcclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50YWJsZVJlZn1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e3RhYmxlQ29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZXhwYW5kYWJsZT17e1xyXG4gICAgICAgICAgICAgICAgICBleHBhbmRJY29uOiAoeyBleHBhbmRlZCwgb25FeHBhbmQsIHJlY29yZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2hpbGROb2RlcyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uZXhwYW5kYWJsZSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcmRlcj17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsocGFnaW5hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhZ2UgIT09IHBhZ2luYXRpb24uY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHRvb2xiYXI9e3tcclxuICAgICAgICAgICAgICAgICAgb25Ub29sQ2xpY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlZnJlc2g6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZChwYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRhYmxlUHJvcHMudG9vbGJhcixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBzaG93Um93U2VsZWN0aW9uPXtzaG93Um93U2VsZWN0aW9ufVxyXG4gICAgICAgICAgICAgICAgey4uLnRhYmxlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgICBjYWxsQmFjaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8ub25TdW1iaXRDYWxsQmFjayAmJlxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vblN1bWJpdENhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBmb3JtUHJvcHM9e2VkaXRvckZvcm1zfVxyXG4gICAgICAgICAgICAgIHN1Ym1pdFVybD17c3VibWl0VXJsfVxyXG4gICAgICAgICAgICAgIHN1Ym1pdFBhcmFtcz17c3VibWl0UGFyYW1zfVxyXG4gICAgICAgICAgICAgIG9uU3VibWl0PXt0aGlzLnByb3BzLm9uU3VibWl0fVxyXG4gICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxyXG4gICAgICAgICAgICAgIG9uSGlkZUZvcm09e3RoaXMucHJvcHMub25IaWRlRm9ybX1cclxuICAgICAgICAgICAgICBvbkZvcm1DaGFuZ2U9e3RoaXMucHJvcHMub25Gb3JtQ2hhbmdlfVxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlPXt0aGlzLnByb3BzLmZvcm1UeXBlIHx8IFwiYXV0b1wifVxyXG4gICAgICAgICAgICAgIGNoYW5nZVZhbGlkPXtmb3JtQ2hhbmdlVmFsaWR9XHJcbiAgICAgICAgICAgICAgb3RoZXJQcm9wcz17eyAuLi5mb3JtUHJvcHMgfX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgQmFzZVBhZ2U7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBQ3BDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFFbEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBQ3BDLE9BQU9DLE9BQU8sTUFBTSxvQkFBb0I7QUFDeEMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUd4QyxPQUFPQyxVQUFVLE1BQU0sUUFBUTtBQUMvQixPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUM1QixPQUFPQyxNQUFNLE1BQU0scUJBQXFCO0FBR3hDLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsU0FDRUMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsYUFBYSxFQUNiQyxZQUFZLEVBQ1pDLGdCQUFnQixFQUNoQkMsY0FBYyxRQUNULG1CQUFtQjtBQUMxQixTQUFTQyxPQUFPLFFBQWlCLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLGFBQWE7QUFFakMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUU5QyxPQUFPQyxZQUFZLE1BQU0saUJBQWlCO0FBOEQx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
881
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJCdXR0b24iLCJNb2RhbCIsIlBvcG92ZXIiLCJtZXNzYWdlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsInV0aWxzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsIkRlbGV0ZU91dGxpbmVkIiwiZ2V0TGVzcyIsInJlcXVlc3QiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX3R5cGUiLCJfc2l6ZSIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJzdGF0ZSIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsInBvcG9wZW5zIiwiY29tcG9uZW50RGlkTW91bnQiLCJpbml0RGF0YSIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiX3RoaXMkZWRpdG9yUmVmJGN1cnJlIiwiZWRpdG9yZmxhZyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTIiLCJzZXRMb2FkaW5nIiwibG9hZGluZyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTMiLCJzZXRFZGl0Rm9ybVZhbHVlcyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTQiLCJzZXRGaWVsZHNWYWx1ZSIsImdldEVkaXRGb3JtVmFsdWVzIiwiX3RoaXMkZWRpdG9yUmVmJGN1cnJlNSIsImdldEZpZWxkc1ZhbHVlIiwib25EZWxldGUiLCJkYXRhIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuIiwiZGVsZXRlVXJsIiwiZGVsZXRlUGFyYW1zIiwiZGVsZXRlUG9zaXRpb24iLCJfdGhpcyIsInRhYmxlUmVmIiwiZ2V0U2VsZWN0ZWRSb3dLZXlzIiwid2FybmluZyIsImNvbmZpcm0iLCJvbk9rIiwiRXJyb3IiLCJkZWZhdWx0UGFyYW1zIiwibWV0aG9kIiwiYXV0b1ByZWZpeCIsImlkcyIsImpvaW4iLCJpZCIsInJlcXVlc3RQYXJhbXMiLCJfb2JqZWN0U3ByZWFkIiwidGhlbiIsImNvZGUiLCJfdGhpcyRzZWFyY2hSZWYiLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWMiLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWMyIiwic3VjY2VzcyIsImdldFNlYXJjaFZhbHVlcyIsIm9uQ2FsbEJhY2tzIiwib25EZWxldGVDYWxsQmFjayIsInRhYmxlTG9hZCIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuMiIsInJlcXVlc3RDb25maWciLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaENhbGxCYWNrIiwiY2FsbGJhY2siLCJ0YWJsZVJlbG9hZCIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjMiLCJhdXRvTG9hZCIsInJlbG9hZCIsIl9yZXMkZGF0YSIsInJlY29yZHMiLCJjdXJyZW50UGFnZSIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjQiLCJfdGhpcyR0YWJsZVJlZiRjdXJyZW41IiwiZ2V0U2VsZWN0ZWRSb3dEYXRhcyIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjYiLCJyZXNldFNlbGVjdGVkUm93S2V5cyIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjciLCJfdGhpcyRzZWFyY2hSZWYyIiwiZnJvbVZhbHVlIiwiZ2V0Q2hpbGRyZW5EYXRhIiwidGFibGVQcm9wcyIsInJvd0tleSIsInJlc0tleSIsImNoaWxkTm9kZXMiLCJjaGlsZHJlbiIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInJlbmRlclRvb2xCdXR0b25zIiwidG9vbGJ1dHRvbnMiLCJtYXJnaW5mbGFnIiwiZmxhZyIsInNob3dTZWFyY2giLCJfaXRlbSRwcm9wcyIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm1hcmdpbkxlZnQiLCJ0aXRsZSIsInBsYWNlbWVudCIsInRyaWdnZXIiLCJyZW5kZXJDbG91bW5CdXR0b24iLCJjb2x1bW5CdXR0b25zIiwicmVjb3JkIiwiYWN0aW9uUHJvcHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwiX2l0ZW0kcHJvcHMyIiwicmVjb3JkU2hvdyIsIl9leGNsdWRlZDIiLCJldmFsIiwicHVzaCIsIl9pdGVtJHByb3BzMyIsIl9leGNsdWRlZDMiLCJzZXRTdGF0ZSIsIl9pdGVtJHByb3BzNCIsIl9leGNsdWRlZDQiLCJ2aXNpYmxlIiwib25WaXNpYmxlQ2hhbmdlIiwidmlzaWJhbGUiLCJ0cmVlU2VsZWN0Iiwic2VsZWN0ZWRLZXlzIiwib2JqIiwiX3RoaXMkc2VhcmNoUmVmMyIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzMiLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWM0Iiwia2V5d29yZCIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwicGFyYW50U2VsZWN0IiwidHJlZVByb3BzIiwic2VsZWN0ZWROb2RlcyIsImRhdGFyZWYiLCJhdHRyaWJ1dGUiLCJpc0xlYWYiLCJvblRyZWVTZWxlY3QiLCJ0cmVlU2VsZWN0Q2FsbEJhY2siLCJyZXNldFNlYXJjaCIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTIiLCJyZXNldEZpZWxkcyIsImdldFRleHQiLCJ0ZXh0IiwiX3Byb3BzJGRhdGEiLCJuZXdUZXh0IiwiaSIsImxhYmVsIiwic2V0VGFibGVEYXRhIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuOCIsInNldERhdGEiLCJzZXRUcmVlRGF0YSIsIl90aGlzJHRyZWVSZWYkY3VycmVudCIsInRyZWVSZWYiLCJyZW5kZXIiLCJfdGFibGVQcm9wcyR0b29sYmFyIiwiX3RhYmxlUHJvcHMkdG9vbGJhcjIiLCJjb2x1bW5zIiwic3VibWl0VXJsIiwiZm9ybVByb3BzIiwic2hvd0xlZnQiLCJzdWJtaXRQYXJhbXMiLCJzaG93VG9vbEJ1dHRvbiIsImJ1dHRvbnMiLCJlZGl0b3JGb3JtIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwiX2V4Y2x1ZGVkNSIsInRyZWVTdG9yZSIsInRyZWVTZWFyY2giLCJ0aXRsZUFsaWFzIiwib3RoZXJ0cmVlUGFyYW1zIiwiX2V4Y2x1ZGVkNiIsInRhYmxlUGFyYW1zIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwiX3RlbXAkc2VhcmNoIiwiX3RlbXAkcHJvcHMiLCJfdGVtcCRwcm9wczIiLCJfdGVtcCIsInRlbXAiLCJzZWFyY2giLCJfdGVtcCRzZWFyY2gyIiwiX3RlbXAkc2VhcmNoMyIsIl90ZW1wJHNlYXJjaDQiLCJmaWVsZCIsImRhdGFJbmRleCIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInJ1bGVzIiwic2VhcmNoUnVsZXMiLCJlZGl0b3IiLCJzcGFuIiwiZGljdE5hbWUiLCJfdGVtcCRwcm9wczMiLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsInRlbXBQcm9wIiwiRnJhZ21lbnQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsImluZGV4T2YiLCJiaW5kIiwiZGFuZ2VyIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJfY2hpbGQkcHJvcHMyIiwiX2l0ZW0kcHJvcHM1IiwiX2l0ZW0kcHJvcHM2IiwiYWxpZ24iLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsImZpeGVkIiwicmVhY29yZCIsInNlYXJjaEZsYWciLCJ0YWJsZVRvb2wiLCJ0b29sRmxhZyIsInRvb2xiYXJGbGFnIiwidG9vbGJhciIsInRvb2xzIiwicGFnaW5hdGlvbiIsInNjcm9sbCIsIngiLCJwYWdlVGl0bGUiLCJkaXNwbGF5IiwiY2hlY2thYmxlIiwic2VhcmNoYWJsZSIsIm9uU2VsZWN0Iiwib25SZXNldCIsInJlZiIsInNlYXJjaEZvcm1Qcm9wcyIsImV4cGFuZEljb24iLCJfcmVmIiwiX3JlY29yZCRjaGlsZE5vZGVzIiwiX3JlY29yZCRjaGlsZE5vZGVzMiIsImV4cGFuZGVkIiwib25FeHBhbmQiLCJlIiwib25DaGFuZ2UiLCJvblRvb2xDbGljayIsIm9uUmVmcmVzaCIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzUiLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWM2Iiwib25TdW1iaXRDYWxsQmFjayIsIm9uU3VibWl0Iiwib25IaWRlRm9ybSIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwib3RoZXJQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi9iYXNlL3RhYmxlXCI7XHJcbmltcG9ydCBUcmVlIGZyb20gXCIuLi8uLi9iYXNlL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL2Jhc2UvcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIERvd25PdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxuICBFZGl0T3V0bGluZWQsXHJcbiAgUmlnaHRPdXRsaW5lZCxcclxuICBQbHVzT3V0bGluZWQsXHJcbiAgRWxsaXBzaXNPdXRsaW5lZCxcclxuICBEZWxldGVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCIuLi8uLi9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgSGVhZGVyU2VhcmNoIGZyb20gXCIuLi9IZWFkZXJTZWFyY2hcIjtcclxuaW1wb3J0IHsgUGFnaW5hdGlvblByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbiAgcGFnaW5hdGlvbj86IGJvb2xlYW4gfCBQYWdpbmF0aW9uUHJvcHM7IC8v5piv5ZCm5pi+56S65YiG6aG1XHJcbiAgY29sdW1uT3JkZXI/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuihqOagvOW6j+WIl1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgVHJlZVByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pCc57Si5qGGXHJcbiAgc2VhcmNoS2V5Pzogc3RyaW5nOyAvL+aQnOe0onZhbHVl5a+55bqU55qEa2V5XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7IC8v5p+l6K+i5a+55bqU55qEa2V5XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZzsgLy/moJF0aXRsZeWvueW6lOeahGtleSzpu5jorqR0aXRsZVxyXG4gIG5vZGVQb3Jwcz86IG9iamVjdDtcclxuICBwYXJhbnRTZWxlY3Q/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgRm9ybVByb3BzIGV4dGVuZHMgSUZvcm1Qcm9wcyB7fVxyXG5pbnRlcmZhY2UgTlNDQmFzZUJhZ2VQcm9wcyB7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65aS06YOo5pCc57Si5qCPXHJcbiAgdGFibGVQcm9wcz86IFRhYmxlUHJvcHM7IC8v6KGo5qC85Y+C5pWwXHJcbiAgdHJlZVByb3BzPzogVHJlZVByb3BzOyAvL+W3puS+p+agkeWPguaVsFxyXG4gIHN1Ym1pdFBhcmFtcz86IE9iamVjdDsgLy/mt7vliqDlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dkYXRh5Lyg6YCSXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogKHNlbGVjdGVkS2V5cz86IEFycmF5PHN0cmluZz4pID0+IHZvaWQ7IC8v5Yig6Zmk5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HaWRz5ou85o6l5Lyg6YCS57uZ5ZCO5Y+wXHJcbiAgZGVsZXRlUG9zaXRpb24/OiBcInRvb2xiYXJcIiB8IFwicm93XCI7XHJcbiAgZGVsZXRlUGFyYW1zPzogT2JqZWN0O1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uU2VhcmNoPzogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xyXG4gIG9uUmVzZXQ/OiAoKSA9PiB2b2lkO1xyXG4gIGluaXREYXRhPzogYW55OyAvL+WIneWni+WMluWbnuiwg+WHveaVsO+8jOWcqGNvbXBvbmVudERpZE1vdW505Lit6LCD55SoXHJcbiAgYnV0dG9ucz86IEFycmF5PHN0cmluZz47IC8v5oyJ6ZKu6ZuG5ZCIICBbJ2FkZCcsJ2RlbGV0ZScsJ3NlYXJjaCcsJ2VkaXRvciddXHJcbiAgb25TaG93Rm9ybT86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkhpZGVGb3JtPzogKCkgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkZvcm1DaGFuZ2U/OiAoY2hhbmdlZFZhbHVlcz86IGFueSwgYWxsVmFsdWVzPzogYW55KSA9PiB2b2lkOyAvL+ihqOWNlW9uQ2hhbmdl5Zue6LCDXHJcbiAgZm9ybVR5cGU/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIGZvcm1DaGFuZ2VWYWxpZD86IGJvb2xlYW47IC8v6KGo5Y2V5qCh6aqMXHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IFwicmlnaHRcIiB8IFwiYnV0dG9tXCI7XHJcbiAgcGFnZVRpdGxlPzogc3RyaW5nIHwgUmVhY3ROb2RlO1xyXG4gIGZvcm1Qcm9wcz86IEZvcm1Qcm9wcztcclxuICBhY3Rpb25Qcm9wcz86IHsgdGV4dEFsaWduPzogc3RyaW5nOyBzaG93SWNvbj86IGJvb2xlYW47IHdpZHRoPzogbnVtYmVyIH07XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogeyB3cmFwcGVyQ29sPzogYW55OyBsYWJlbENvbD86IGFueSB9O1xyXG4gIG9uVHJlZVNlbGVjdD86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIHRyZWVTZWxlY3RDYWxsQmFjaz86IGFueTtcclxuICAgIG9uU2VhcmNoQ2FsbEJhY2s/OiBhbnk7XHJcbiAgICBvblN1bWJpdENhbGxCYWNrPzogYW55O1xyXG4gICAgb25EZWxldGVDYWxsQmFjaz86IGFueTtcclxuICB9O1xyXG59XHJcblxyXG5jbGFzcyBCYXNlUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8TlNDQmFzZUJhZ2VQcm9wcywgYW55PiB7XHJcbiAgdGFibGVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHRyZWVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZWRpdG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0eXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgdHlwZSA9IHR5cGU/LmNvbnRlbnQ7XHJcbiAgICBsZXQgc2l6ZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwidGFibGVTaXplXCIgOiBcInRhYmxlU2l6ZVwiXHJcbiAgICApO1xyXG4gICAgc2l6ZSA9IHNpemU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB0eXBlOiBcImFkZFwiLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFtdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBmb3JtVHlwZTogdHlwZSB8fCBcIm1vZGFsXCIsXHJcbiAgICAgIHRhYmxlU2l6ZTogc2l6ZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgdHJlZVNlYXJjaFByYW1zOiB7fSxcclxuICAgICAgcG9wb3BlbnM6IHt9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGluaXREYXRhIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaW5pdERhdGEgJiYgaW5pdERhdGEoKTtcclxuICB9XHJcblxyXG4gIHNldFNlYXJjaFBhcmFtcyhwYXJhbXMsIGNhbGxCYWNrKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5zZXRTZWFyY2hQYXJhbXMocGFyYW1zKTtcclxuICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdCA9IChjaGVja2VkVHJlZUtleXM6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgeyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHZhbHVlID0geyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCwgZGVwdElkOiBjaGVja2VkVHJlZUtleXNbMF0gfTtcclxuICAgIGlmICh0aGlzLnByb3BzLm9uU2VhcmNoKSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25TZWFyY2godmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBlZGl0b3JmbGFnKTtcclxuICB9XHJcblxyXG4gIC8v5YWz6Zet6KGo5Y2VXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zZXRMb2FkaW5nKGxvYWRpbmcpO1xyXG4gIH1cclxuXHJcbiAgc2V0RWRpdEZvcm1WYWx1ZXModmFsdWUpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRGb3JtVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGVsZXRlVXJsLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgZGVsZXRlUGFyYW1zLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dLZXlzID0gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIGNvbnRlbnQ6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGNlbnRlcmVkOnRydWUsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgICAgIG9uRGVsZXRlICYmXHJcbiAgICAgICAgICAgIG9uRGVsZXRlKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzIDogZGF0YSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7XHJcbiAgICAgICAgICBtZXRob2Q6IFwicG9zdFwiLFxyXG4gICAgICAgICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICBpZHM6IGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzLmpvaW4oKSA6IGRhdGEuaWQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHJlcXVlc3RQYXJhbXMgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbXMpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlbGV0ZVBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWZhdWx0UGFyYW1zIH07XHJcbiAgICAgICAgcmVxdWVzdChkZWxldGVVcmwsIHtcclxuICAgICAgICAgIC4uLnJlcXVlc3RQYXJhbXMsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn++8gVwiKTtcclxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBfdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vbkRlbGV0ZUNhbGxCYWNrICYmXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8ub25EZWxldGVDYWxsQmFjaygpO1xyXG4gICAgICAgICAgICAgIF90aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSwgcmVxdWVzdENvbmZpZyA9IHt9KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoe1xyXG4gICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+afpeivolxyXG4gIG9uU2VhcmNoKHBhcmFtcykge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCwgb25DYWxsQmFja3MgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goeyAuLi5wYXJhbXMsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh7IC4uLnBhcmFtcywgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfSk7XHJcbiAgICBvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjayAmJlxyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjaywgdGhpcywgW3BhcmFtc10pO1xyXG4gIH1cclxuICAvL+ihqOagvOmHjeaWsOWKoOi9vVxyXG4gIHRhYmxlUmVsb2FkKHBhcmFtcyA9IHt9LCBhdXRvTG9hZCA9IHRydWUpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmU/LnJlbG9hZCh7XHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgYXV0b0xvYWQgJiZcclxuICAgICAgICAgIHJlcz8uZGF0YT8ucmVjb3Jkcz8ubGVuZ3RoID09IDAgJiZcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFBhZ2UgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmU/LnJlbG9hZCh7XHJcbiAgICAgICAgICAgIHBhcmFtczogeyBjdXJyZW50OiAxLCAuLi5wYXJhbXMgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dEYXRhcygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93RGF0YXMoKTtcclxuICB9XHJcbiAgcmVzZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5yZXNldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgcmV0dXJuIHsgLi4uZnJvbVZhbHVlLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hpbGRyZW5EYXRhKGRhdGEsIGtleXMgPSBbXSkge1xyXG4gICAgY29uc3QgeyB0YWJsZVByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyByb3dLZXkgPSBcImlkXCIgfSA9IHRhYmxlUHJvcHM7XHJcbiAgICBsZXQgcmVzS2V5ID0gW107XHJcbiAgICBpZiAoZGF0YS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gZGF0YS5jaGlsZE5vZGVzO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgICAgdGhpcy5nZXRDaGlsZHJlbkRhdGEoaXRlbS5jaGlsZE5vZGVzLCBrZXlzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGl0ZW1bcm93S2V5XV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBkYXRhW3Jvd0tleV1dO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc0tleTtcclxuICB9XHJcblxyXG4gIHJlbmRlclRvb2xCdXR0b25zKHRvb2xidXR0b25zOiBhbnksIG1hcmdpbmZsYWcgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgZmxhZyA9IHRvb2xidXR0b25zLmxlbmd0aCA+IDU7XHJcbiAgICBjb25zdCB7IHNob3dTZWFyY2ggPSB0cnVlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgY29udGVudCA9IHRvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDMpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2soKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9uc1wiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9ucy1tYXJnaW5cIildOiAhc2hvd1NlYXJjaCB8fCBtYXJnaW5mbGFnLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHt0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wLWJveCddfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pu05aSaIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zOiBhbnksIHJlY29yZDogYW55KSB7XHJcbiAgICBjb25zdCB7IGFjdGlvblByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IG5ld0J1dHRvbnMgPSBbXTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUHJvcHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgcmVjb3JkU2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChyZWNvcmRTaG93KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgIGlmIChldmFsKHJlY29yZFNob3cpKSB7XHJcbiAgICAgICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgY29uc3Qgc2hvdyA9IHJlY29yZFNob3cocmVjb3JkKTtcclxuICAgICAgICAgIHNob3cgJiYgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgZmxhZyA9IG5ld0J1dHRvbnMubGVuZ3RoID4gMztcclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDIpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBsZXQgZGF0YSA9IHt9IGFzIGFueTtcclxuICAgICAgICAgICAgICBkYXRhW3JlY29yZC5pZF0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHBvcG9wZW5zOiBkYXRhLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB0eXBlPVwibGlua1wiXHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICB0eXBlPVwibGlua1wiXHJcbiAgICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDMpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgdmlzaWJsZT17dGhpcy5zdGF0ZS5wb3BvcGVuc1tyZWNvcmQuaWRdIHx8IGZhbHNlfVxyXG4gICAgICAgICAgICAgIG9uVmlzaWJsZUNoYW5nZT17KHZpc2liYWxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJhbGUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgICAgIGRhdGFbcmVjb3JkLmlkXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHBvcG9wZW5zOiBkYXRhLFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHBvcG9wZW5zOiB7fSxcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIil9PlxyXG4gICAgICAgICAgICAgICAgPEVsbGlwc2lzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHR5cGU9XCJsaW5rXCJcclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICAvL+agkeeCueWHu+S6i+S7tlxyXG4gIHRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzOiBhbnksIG9iajogYW55KSB7XHJcbiAgICBsZXQga2V5d29yZCA9IFwiXCI7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNlYXJjaEtleSA9IFwia2V5XCIsXHJcbiAgICAgIHNlYXJjaEZpZWxkID0gXCJcIixcclxuICAgICAgcGFyYW50U2VsZWN0ID0gdHJ1ZSxcclxuICAgIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9ID0gb2JqO1xyXG5cclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBrZXl3b3JkID0gc2VsZWN0ZWROb2Rlc1swXS5kYXRhcmVmLmF0dHJpYnV0ZVtzZWFyY2hLZXldO1xyXG4gICAgICBpZiAocGFyYW50U2VsZWN0KSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIHRyZWVTZWFyY2hQcmFtczogeyBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRLZXlzWzBdICE9PSB0cmVlU2VsZWN0ZWRLZXkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7IFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IGtleXdvcmQsXHJcbiAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcm9wcy5vblRyZWVTZWxlY3QpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzLCBvYmopO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCkgfHwge307XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLnRhYmxlTG9hZCh7IC4uLmZyb21WYWx1ZSwgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9KTtcclxuICAgIHRoaXMucHJvcHMub25DYWxsQmFja3M/LnRyZWVTZWxlY3RDYWxsQmFjayAmJlxyXG4gICAgICB1dGlscy5jYWxsYmFjayh0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy50cmVlU2VsZWN0Q2FsbEJhY2ssIHRoaXMsIFtcclxuICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgICAgb2JqLFxyXG4gICAgICBdKTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICBnZXRUZXh0KHByb3BzLCB0ZXh0KSB7XHJcbiAgICBsZXQgbmV3VGV4dCA9IHRleHQ7XHJcbiAgICBpZiAocHJvcHM/LmRhdGEgJiYgcHJvcHM/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGRhdGEgPSBwcm9wcy5kYXRhO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGE/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaV0udmFsdWUgPT0gdGV4dCkge1xyXG4gICAgICAgICAgbmV3VGV4dCA9IGRhdGFbaV0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VGV4dDtcclxuICB9XHJcbiAgc2V0VGFibGVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmU/LnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIHNldFRyZWVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZT8uc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRLZXkgPSAoc2VsZWN0ZWQpID0+IHtcclxuICAgIGxldCByZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGtleSBpbiBzZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBrZXlzID0gc2VsZWN0ZWRba2V5XTtcclxuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlcyA9IFsuLi5yZXMsIC4uLmtleXNdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH07XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIGZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBidXR0b25zID0gW10sXHJcbiAgICAgIGVkaXRvckZvcm0gPSB0cnVlLFxyXG4gICAgICBvblNob3dGb3JtLFxyXG4gICAgICBmb3JtQ2hhbmdlVmFsaWQgPSB0cnVlLFxyXG4gICAgICBjbGFzc05hbWUsXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9IFwiYnV0dG9tXCIsXHJcbiAgICAgIGFjdGlvblByb3BzLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBmaWx0ZXJDb2x1bW4gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25Db2x1bW4gPSB0cnVlLFxyXG4gICAgICBzaG93Um93U2VsZWN0aW9uID0gdHJ1ZSxcclxuICAgICAgY29sdW1uT3JkZXIgPSB0cnVlLFxyXG4gICAgICBleHBhbmRhYmxlID0ge30sXHJcbiAgICAgIHBhcmFudFNlbGVjdCA9IHRydWUsXHJcbiAgICAgIC4uLm90aGVydGFibGVQYXJhbXNcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgICAgLi4ub3RoZXJ0cmVlUGFyYW1zXHJcbiAgICB9ID0gdHJlZVByb3BzO1xyXG5cclxuICAgIGxldCB0YWJsZVBhcmFtcyA9IHsgZmlsdGVyQ29sdW1uLCBzdG9yZSwgLi4ub3RoZXJ0YWJsZVBhcmFtcyB9IGFzIGFueTtcclxuICAgIGxldCB0YWJsZUNvbHVtbjogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHNlYXJjaEZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGVkaXRvckZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZTogYW55ID0ge307XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbHVtbnMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKHRlbXAuc2VhcmNoID09PSB0cnVlIHx8IHRlbXAuc2VhcmNoPy5zaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgc2VhcmNoRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAuc2VhcmNoPy5sYWJlbCB8fCB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBsYWJlbENvbDogdGVtcC5zZWFyY2g/LmxhYmVsQ29sLFxyXG4gICAgICAgICAgd3JhcHBlckNvbDogdGVtcC5zZWFyY2g/LndyYXBwZXJDb2wsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5zZWFyY2hSdWxlcyA/IHRlbXAuc2VhcmNoUnVsZXMgOiBbXSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzID8gdGVtcC5ydWxlcyA6IFtdLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgICAgZGljdE5hbWU6IHRlbXAuZGljdE5hbWUsXHJcbiAgICAgICAgICBwcm9wczogeyAuLi50ZW1wLnByb3BzIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXg7XHJcbiAgICAgICAgZGVmYXVsdFZhbHVlW25hbWVdID0gdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnJ1bGVzO1xyXG4gICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICB0ZW1wLmZpbHRlclByb3BzID0ge1xyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC50eXBlO1xyXG4gICAgICBsZXQgdGVtcFByb3AgPSB7IC4uLnRlbXAucHJvcHMgfTtcclxuICAgICAgaWYgKHRlbXAuc3R5bGUpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgIHt0ZXh0ICE9PSBcIlwiICYmIHRleHQgIT09IG51bGwgJiYgdGV4dCAhPT0gdW5kZWZpbmVkICYmIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC1iYWNrXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC10ZXh0XCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIGlmICghdGVtcC5lbGxpcHNpcykge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0ZW1wID0geyAuLi50ZW1wIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIGlmICh0ZW1wPy5jb2x1bW5TaG93ICE9PSBmYWxzZSkgdGFibGVDb2x1bW4ucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc2VsZkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUHJvcHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgaWYgKGVkaXRvckZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwic2VhcmNoXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFeWVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5p+l55yLXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJlZGl0b3JcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEVkaXRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiYWRkXCIpID4gLTEpIHtcclxuICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBvblNob3dGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgIG9uU2hvd0Zvcm0oKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGljb249ezxQbHVzT3V0bGluZWQgLz59XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5re75YqgXHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZGVsZXRlXCIpID4gLTEpIHtcclxuICAgICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25EZWxldGUuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwicm93XCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpb25Db2x1bW4gJiZcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IFwi5pON5L2cXCIsXHJcbiAgICAgICAgZGF0YUluZGV4OiBcImFjdGlvblwiLFxyXG4gICAgICAgIGFsaWduOiBhY3Rpb25Qcm9wcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGFjdGlvblByb3BzPy50ZXh0QWxpZ25cclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgIDogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogYWN0aW9uUHJvcHM/LndpZHRoXHJcbiAgICAgICAgICA/IGFjdGlvblByb3BzPy53aWR0aFxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgIDogMjAwLFxyXG4gICAgICAgIGZpeGVkOiBcInJpZ2h0XCIsXHJcbiAgICAgICAgcmVuZGVyOiAodGV4dDogYW55LCByZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImFjdGlvblwiKX0+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnMsIHJlY29yZCl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIGlmIChjb2x1bW5PcmRlcilcclxuICAgICAgdGFibGVDb2x1bW4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGl0bGU6IFwi5bqP5Y+3XCIsXHJcbiAgICAgICAgICB3aWR0aDogODAsXHJcbiAgICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQsIHJlYWNvcmQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PntpbmRleCArIDF9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRhYmxlQ29sdW1uLFxyXG4gICAgICBdO1xyXG4gICAgbGV0IHNlYXJjaEZsYWcgPSBzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDA7XHJcbiAgICBsZXQgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHRvb2xGbGFnID0gc2hvd1Rvb2xCdXR0b24gJiYgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMDtcclxuICAgIGxldCB0b29sYmFyRmxhZyA9ICEoXHJcbiAgICAgIHRhYmxlUHJvcHMudG9vbGJhciA9PSBmYWxzZSB8fFxyXG4gICAgICB0YWJsZVByb3BzLnRvb2xiYXI/LnNob3cgPT0gZmFsc2UgfHxcclxuICAgICAgdGFibGVQcm9wcy50b29sYmFyPy50b29scz8ubGVuZ3RoID09IDAgfHxcclxuICAgICAgdGFibGVUb29sPy5zaG93ID09IGZhbHNlXHJcbiAgICApO1xyXG4gICAgaWYgKHRhYmxlUHJvcHMucGFnaW5hdGlvbiAhPT0gZmFsc2UpIHtcclxuICAgICAgY29uc3Qgc2Nyb2xsID0gdGFibGVQYXJhbXMuc2Nyb2xsO1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICBzY3JvbGw6IHsgeDogXCJtYXgtY29udGVudFwiLCAuLi5zY3JvbGwgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2VcIiksIGNsYXNzTmFtZSl9PlxyXG4gICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZSAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtdGl0bGVcIikpfT5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXBhbmVcIikpfVxyXG4gICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7c2hvd0xlZnQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibGVmdFwiKX0+XHJcbiAgICAgICAgICAgICAgPFRyZWVcclxuICAgICAgICAgICAgICAgIHN0b3JlPXt7IC4uLnRyZWVTdG9yZSB9fVxyXG4gICAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgY2hlY2thYmxlPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e3RyZWVTZWFyY2h9XHJcbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEtleXM9e1t0aGlzLnN0YXRlLnRyZWVTZWxlY3RlZEtleV19XHJcbiAgICAgICAgICAgICAgICB0aXRsZUFsaWFzPXt0aXRsZUFsaWFzfVxyXG4gICAgICAgICAgICAgICAgey4uLm90aGVydHJlZVBhcmFtc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInJpZ2h0XCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5vLWxlZnQtcmlnaHRcIildOiAhc2hvd0xlZnQsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgICA8SGVhZGVyU2VhcmNoXHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcz17c2VhcmNoRm9ybXN9XHJcbiAgICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb249e3Rvb2xCdXR0b25Qb3NpdGlvbn1cclxuICAgICAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICBvblJlc2V0PXt0aGlzLnByb3BzLm9uUmVzZXR9XHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybVByb3BzPXt0aGlzLnByb3BzLnNlYXJjaEZvcm1Qcm9wc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmXHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcImJ1dHRvbVwiICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUb29sQnV0dG9ucyhzZWxmQnV0dG9ucywgc2VhcmNoRm9ybXMubGVuZ3RoID09IDApfVxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fCAhdG9vbGJhckZsYWcsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wMlwiKV06ICFzZWFyY2hGbGFnICYmICF0b29sRmxhZyxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMudGFibGVSZWZ9XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5zPXt0YWJsZUNvbHVtbn1cclxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGU9e3tcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kSWNvbjogKHsgZXhwYW5kZWQsIG9uRXhwYW5kLCByZWNvcmQgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZXhwYW5kZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXMgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXM/Lmxlbmd0aCA+IDAgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERvd25PdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiByZWNvcmQuY2hpbGROb2RlcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5jaGlsZE5vZGVzPy5sZW5ndGggPiAwID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxSaWdodE91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAuLi5leHBhbmRhYmxlLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNvbHVtbk9yZGVyPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhwYWdpbmF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY3VycmVudFBhZ2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UGFnZSAhPT0gcGFnaW5hdGlvbi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgdG9vbGJhcj17e1xyXG4gICAgICAgICAgICAgICAgICBvblRvb2xDbGljazoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVmcmVzaDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVMb2FkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4udGFibGVQcm9wcy50b29sYmFyLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHNob3dSb3dTZWxlY3Rpb249e3Nob3dSb3dTZWxlY3Rpb259XHJcbiAgICAgICAgICAgICAgICB7Li4udGFibGVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICAgIGNhbGxCYWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vblN1bWJpdENhbGxCYWNrICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DYWxsQmFja3M/Lm9uU3VtYml0Q2FsbEJhY2soKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVSZWxvYWQuYmluZCh0aGlzKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAgICAgb25TdWJtaXQ9e3RoaXMucHJvcHMub25TdWJtaXR9XHJcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XHJcbiAgICAgICAgICAgICAgb25IaWRlRm9ybT17dGhpcy5wcm9wcy5vbkhpZGVGb3JtfVxyXG4gICAgICAgICAgICAgIG9uRm9ybUNoYW5nZT17dGhpcy5wcm9wcy5vbkZvcm1DaGFuZ2V9XHJcbiAgICAgICAgICAgICAgZm9ybVR5cGU9e3RoaXMucHJvcHMuZm9ybVR5cGUgfHwgXCJhdXRvXCJ9XHJcbiAgICAgICAgICAgICAgY2hhbmdlVmFsaWQ9e2Zvcm1DaGFuZ2VWYWxpZH1cclxuICAgICAgICAgICAgICBvdGhlclByb3BzPXt7IC4uLmZvcm1Qcm9wcyB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFtQixPQUFPO0FBQ3ZELE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUVsQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBR3hDLE9BQU9DLFVBQVUsTUFBTSxRQUFRO0FBQy9CLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxxQkFBcUI7QUFHeEMsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUNFQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsZ0JBQWdCLEVBQ2hCQyxjQUFjLFFBQ1QsbUJBQW1CO0FBQzFCLFNBQVNDLE9BQU8sUUFBaUIsYUFBYTtBQUM5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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PureComponent","Table","Tree","Button","Modal","Popover","message","EditorForm","cls","styles","utils","DownOutlined","EyeOutlined","EditOutlined","RightOutlined","PlusOutlined","EllipsisOutlined","DeleteOutlined","getLess","request","config","getStorage","HeaderSearch","BasePage","constructor","props","_type","_size","_defineProperty","createRef","checkedTreeKeys","name","userType","account","state","value","deptId","onSearch","selected","res","key","keys","length","storePrefix","type","content","size","selectedRowKeys","selectedRowDatas","treeSelectedKey","expand","formType","tableSize","treeSearchPrams","popopens","componentDidMount","initData","setSearchParams","params","callBack","_this$searchRef$curre","searchRef","current","showForm","_this$editorRef$curre","editorflag","arguments","undefined","editorRef","show","hideForm","_this$editorRef$curre2","setLoading","loading","_this$editorRef$curre3","setEditFormValues","_this$editorRef$curre4","setFieldsValue","getEditFormValues","_this$editorRef$curre5","getFieldsValue","onDelete","data","_this$tableRef$curren","deleteUrl","deleteParams","deletePosition","_this","tableRef","getSelectedRowKeys","warning","confirm","onOk","Error","defaultParams","method","autoPrefix","ids","join","id","requestParams","_objectSpread","then","code","_this$searchRef","_this$props$onCallBac","_this$props$onCallBac2","success","getSearchValues","onCallBacks","onDeleteCallBack","tableLoad","error","catch","console","log","_this$tableRef$curren2","requestConfig","store","load","onSearchCallBack","callback","tableReload","_this$tableRef$curren3","autoLoad","reload","_res$data","records","currentPage","_this$tableRef$curren4","_this$tableRef$curren5","getSelectedRowDatas","_this$tableRef$curren6","resetSelectedRowKeys","_this$tableRef$curren7","_this$searchRef2","fromValue","getChildrenData","tableProps","rowKey","resKey","childNodes","children","map","item","index","renderToolButtons","toolbuttons","marginflag","flag","showSearch","_item$props","pageType","onClick","icon","_objectWithoutProperties","_excluded","createElement","_extends","className","style","marginLeft","title","placement","trigger","renderCloumnButton","columnButtons","record","actionProps","baseActionColumn","newButtons","showIcon","_item$props2","recordShow","_excluded2","eval","push","_item$props3","_excluded3","setState","_item$props4","_excluded4","visible","onVisibleChange","visibale","treeSelect","selectedKeys","obj","_this$searchRef3","_this$props$onCallBac3","_this$props$onCallBac4","keyword","searchKey","searchField","parantSelect","treeProps","selectedNodes","dataref","attribute","isLeaf","onTreeSelect","treeSelectCallBack","resetSearch","_this$searchRef$curre2","resetFields","getText","text","_props$data","newText","i","label","setTableData","_this$tableRef$curren8","setData","setTreeData","_this$treeRef$current","treeRef","render","_tableProps$toolbar","_tableProps$toolbar2","columns","submitUrl","formProps","showLeft","submitParams","showToolButton","buttons","editorForm","onShowForm","formChangeValid","toolButtonPosition","filterColumn","actionColumn","showRowSelection","columnOrder","expandable","othertableParams","_excluded5","treeStore","treeSearch","titleAlias","othertreeParams","_excluded6","tableParams","tableColumn","searchForms","editorForms","defaultValue","_temp$search","_temp$props","_temp$props2","_temp","temp","search","_temp$search2","_temp$search3","_temp$search4","field","dataIndex","labelCol","wrapperCol","rules","searchRules","editor","span","dictName","_temp$props3","columnSearch","filterProps","tempProp","Fragment","ellipsis","columnShow","selfButtons","indexOf","bind","danger","Array","isArray","child","_child$props","_child$props2","_item$props5","_item$props6","align","textAlign","width","fixed","reacord","searchFlag","tableTool","toolFlag","toolbarFlag","toolbar","tools","pagination","scroll","x","pageTitle","display","checkable","searchable","onSelect","onReset","ref","searchFormProps","expandIcon","_ref","expanded","onExpand","e","onChange","onToolClick","onRefresh","_this$props$onCallBac5","_this$props$onCallBac6","onSumbitCallBack","onSubmit","onHideForm","onFormChange","changeValid","otherProps"],"sources":["../../../src/components/page/BasePage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Table from \"../../base/table\";\r\nimport Tree from \"../../base/tree\";\r\nimport Form from \"../../base/form\";\r\nimport Button from \"../../base/button\";\r\nimport Modal from \"../../base/modal\";\r\nimport Popover from \"../../base/popover\";\r\nimport message from \"../../base/message\";\r\nimport Icon from \"../../base/common/IconFont\";\r\nimport { iconType } from \"../../constants\";\r\nimport EditorForm from \"./Form\";\r\nimport cls from \"classnames\";\r\nimport styles from \"./index.module.less\";\r\nimport Store, { PageStore, StoreProps } from \"@bj-nsc/msn\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport {\r\n DownOutlined,\r\n EyeOutlined,\r\n EditOutlined,\r\n RightOutlined,\r\n PlusOutlined,\r\n EllipsisOutlined,\r\n DeleteOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport request from \"nsc-request\";\r\nimport omit from \"omit.js\";\r\nimport config from \"../../config\";\r\nimport { getStorage } from \"@bj-nsc/functions\";\r\nimport { IFormProps } from \"../../base/form/Form\";\r\nimport HeaderSearch from \"../HeaderSearch\";\r\nimport { PaginationProps } from \"antd\";\r\ninterface TableProps {\r\n actionColumn?: boolean; //是否显示操作列\r\n store?: StoreProps;\r\n filterColumn?: boolean; //是否显示过滤按钮\r\n showRowSelection?: boolean; //是否表格勾选列\r\n pagination?: boolean | PaginationProps; //是否显示分页\r\n columnOrder?: boolean; //是否显示表格序列\r\n [propsName: string]: any;\r\n}\r\ninterface TreeProps {\r\n store?: StoreProps;\r\n showSearch?: boolean; //是否显示搜索框\r\n searchKey?: string; //搜索value对应的key\r\n searchField?: string; //查询对应的key\r\n titleAlias?: string; //树title对应的key,默认title\r\n nodePorps?: object;\r\n parantSelect?: boolean;\r\n [propsName: string]: any;\r\n}\r\ninterface FormProps extends IFormProps {}\r\ninterface NSCBaseBageProps {\r\n showSearch?: boolean; //是否显示头部搜索栏\r\n tableProps?: TableProps; //表格参数\r\n treeProps?: TreeProps; //左侧树参数\r\n submitParams?: Object; //添加参数,默认mothod:post, 参数通过data传递\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n columns: Array<Object>;\r\n showLeft?: boolean; //是否显示左侧目录树\r\n showToolButton?: boolean; //是否显示按钮栏\r\n editorForm?: boolean; //是否需要表单功能 , 为false 编辑,查看,新增功能均不可用\r\n deleteUrl?: string; //删除url\r\n onDelete?: (selectedKeys?: Array<string>) => void; //删除参数,默认mothod:post, 参数通过ids拼接传递给后台\r\n deletePosition?: \"toolbar\" | \"row\";\r\n deleteParams?: Object;\r\n children?: React.ReactNode;\r\n onSearch?: (value?: any) => void;\r\n onReset?: () => void;\r\n initData?: any; //初始化回调函数,在componentDidMount中调用\r\n buttons?: Array<string>; //按钮集合 ['add','delete','search','editor']\r\n onShowForm?: (value?: any, editorFlag?: string) => void; //打开表单回调\r\n onHideForm?: () => void; //打开表单回调\r\n onFormChange?: (changedValues?: any, allValues?: any) => void; //表单onChange回调\r\n formType?: \"modal\" | \"drawer\";\r\n formChangeValid?: boolean; //表单校验\r\n className?: any;\r\n toolButtonPosition?: \"right\" | \"buttom\";\r\n pageTitle?: string | ReactNode;\r\n formProps?: FormProps;\r\n actionProps?: { textAlign?: string; showIcon?: boolean; width?: number };\r\n searchFormProps?: { wrapperCol?: any; labelCol?: any };\r\n onTreeSelect?: (value?: any, editorFlag?: string) => void; //打开表单回调\r\n onCallBacks?: {\r\n treeSelectCallBack?: any;\r\n onSearchCallBack?: any;\r\n onSumbitCallBack?: any;\r\n onDeleteCallBack?: any;\r\n };\r\n}\r\n\r\nclass BasePage extends PureComponent<NSCBaseBageProps, any> {\r\n tableRef = React.createRef<any>();\r\n treeRef = React.createRef<any>();\r\n searchRef = React.createRef<any>();\r\n editorRef = React.createRef<any>();\r\n dateFormat = {} as any;\r\n constructor(props: any) {\r\n super(props);\r\n let { storePrefix } = config();\r\n let type = getStorage(\r\n storePrefix ? storePrefix + \"-\" + \"formType\" : \"formType\"\r\n );\r\n type = type?.content;\r\n let size = getStorage(\r\n storePrefix ? storePrefix + \"-\" + \"tableSize\" : \"tableSize\"\r\n );\r\n size = size?.content;\r\n this.state = {\r\n type: \"add\",\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n treeSelectedKey: \"\",\r\n expand: false,\r\n formType: type || \"modal\",\r\n tableSize: size || \"default\",\r\n treeSearchPrams: {},\r\n popopens: {},\r\n };\r\n }\r\n componentDidMount() {\r\n const { initData } = this.props;\r\n initData && initData();\r\n }\r\n\r\n setSearchParams(params, callBack) {\r\n this.searchRef.current?.setSearchParams(params);\r\n callBack && callBack(params);\r\n }\r\n\r\n onSelect = (checkedTreeKeys: any) => {\r\n const { name, userType, account } = this.state;\r\n const value = { name, userType, account, deptId: checkedTreeKeys[0] };\r\n if (this.props.onSearch) {\r\n this.props.onSearch(value);\r\n }\r\n // this.tableLoad(value);\r\n };\r\n\r\n //显示表单\r\n showForm(value?: any, editorflag = \"add\") {\r\n this.editorRef.current?.show(value, editorflag);\r\n }\r\n\r\n //关闭表单\r\n hideForm() {\r\n this.editorRef.current?.hideForm();\r\n }\r\n\r\n setLoading(loading: boolean) {\r\n this.editorRef.current?.setLoading(loading);\r\n }\r\n\r\n setEditFormValues(value) {\r\n this.editorRef.current?.setFieldsValue(value);\r\n }\r\n\r\n getEditFormValues() {\r\n return this.editorRef.current?.getFieldsValue();\r\n }\r\n\r\n //批量删除\r\n onDelete(data?: any) {\r\n const {\r\n deleteUrl,\r\n onDelete,\r\n deleteParams,\r\n deletePosition = \"toolbar\",\r\n } = this.props;\r\n let _this = this;\r\n const selectedRowKeys = this.tableRef.current?.getSelectedRowKeys();\r\n if (deletePosition == \"toolbar\") {\r\n if (selectedRowKeys.length == 0) {\r\n message.warning(\"请选择要删除的数据!\");\r\n return;\r\n }\r\n }\r\n Modal.confirm({\r\n content: \"是否确认删除所选项?\",\r\n // centered:true,\r\n onOk: () => {\r\n if (onDelete) {\r\n onDelete &&\r\n onDelete(deletePosition == \"toolbar\" ? selectedRowKeys : data);\r\n return;\r\n }\r\n if (!deleteUrl) {\r\n throw new Error(\"url不能为空!\");\r\n }\r\n const defaultParams = {\r\n method: \"post\",\r\n autoPrefix: true,\r\n params: {\r\n ids: deletePosition == \"toolbar\" ? selectedRowKeys.join() : data.id,\r\n },\r\n };\r\n let requestParams = {} as any;\r\n if (defaultParams) {\r\n requestParams = { ...deleteParams };\r\n }\r\n requestParams = { ...defaultParams };\r\n request(deleteUrl, {\r\n ...requestParams,\r\n })\r\n .then(function (res: any) {\r\n const { code } = res;\r\n if (code === 200) {\r\n message.success(\"删除成功!\");\r\n let value = _this.searchRef?.current?.getSearchValues();\r\n _this.props.onCallBacks?.onDeleteCallBack &&\r\n _this.props.onCallBacks?.onDeleteCallBack();\r\n _this.tableLoad(value);\r\n } else {\r\n message.error(\"删除失败!\");\r\n }\r\n })\r\n .catch(function (error: any) {\r\n console.log(\"error\", error);\r\n });\r\n },\r\n });\r\n }\r\n tableLoad(params: any, requestConfig = {}) {\r\n this.tableRef.current?.store.load({\r\n ...requestConfig,\r\n params: params,\r\n });\r\n }\r\n //查询\r\n onSearch(params) {\r\n const { onSearch, onCallBacks } = this.props;\r\n if (onSearch) {\r\n onSearch({ ...params, ...this.state.treeSearchPrams });\r\n return;\r\n }\r\n this.tableLoad({ ...params, ...this.state.treeSearchPrams });\r\n onCallBacks?.onSearchCallBack &&\r\n utils.callback(onCallBacks?.onSearchCallBack, this, [params]);\r\n }\r\n //表格重新加载\r\n tableReload(params = {}, autoLoad = true) {\r\n this.tableRef.current?.store?.reload({\r\n callback: (res) => {\r\n if (\r\n autoLoad &&\r\n res?.data?.records?.length == 0 &&\r\n this.state.currentPage !== 1\r\n ) {\r\n this.tableRef.current?.store?.reload({\r\n params: { current: 1, ...params },\r\n });\r\n }\r\n },\r\n });\r\n }\r\n getSelectedRowKeys() {\r\n return this.tableRef.current?.getSelectedRowKeys();\r\n }\r\n getSelectedRowDatas() {\r\n return this.tableRef.current?.getSelectedRowDatas();\r\n }\r\n resetSelectedRowKeys() {\r\n return this.tableRef.current?.resetSelectedRowKeys();\r\n }\r\n\r\n getSearchValues() {\r\n const fromValue = this.searchRef?.current?.getSearchValues();\r\n return { ...fromValue, ...this.state.treeSearchPrams };\r\n }\r\n\r\n getChildrenData(data, keys = []) {\r\n const { tableProps } = this.props;\r\n const { rowKey = \"id\" } = tableProps;\r\n let resKey = [];\r\n if (data.childNodes) {\r\n const children = data.childNodes;\r\n children.map((item, index) => {\r\n if (item.childNodes) {\r\n this.getChildrenData(item.childNodes, keys);\r\n } else {\r\n resKey = [...keys, item[rowKey]];\r\n }\r\n });\r\n } else {\r\n resKey = [...keys, data[rowKey]];\r\n }\r\n return resKey;\r\n }\r\n\r\n renderToolButtons(toolbuttons: any, marginflag = false) {\r\n const flag = toolbuttons.length > 5;\r\n const { showSearch = true } = this.props;\r\n const content = toolbuttons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, icon, show, ...params } = item.props;\r\n if (index > 3) {\r\n return (\r\n <div\r\n className={cls(\r\n getLess(styles, \"editor\"),\r\n getLess(styles, \"content-item\")\r\n )}\r\n key={index}\r\n onClick={() => {\r\n onClick && onClick();\r\n }}\r\n {...params}\r\n >\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n <span className={getLess(styles, \"text\")}>{children}</span>\r\n </div>\r\n );\r\n }\r\n });\r\n return (\r\n <div\r\n className={cls(getLess(styles, \"tool-buttons\"), {\r\n [getLess(styles, \"tool-buttons-margin\")]: !showSearch || marginflag,\r\n })}\r\n style={{ marginLeft: 0 }}\r\n >\r\n {toolbuttons.map((item: any, index: any) => {\r\n if (flag) {\r\n if (index < 4) {\r\n return <div key={index}>{item}</div>;\r\n } else if (index == 4) {\r\n return (\r\n <Popover\r\n content={content}\r\n title={null}\r\n placement=\"bottom\"\r\n trigger={[\"click\"]}\r\n key={index}\r\n\r\n // overlayClassName={styles['pop-box']}\r\n >\r\n <Button type=\"primary\">\r\n 更多 <DownOutlined />\r\n </Button>\r\n </Popover>\r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return <div key={index}>{item}</div>;\r\n }\r\n })}\r\n </div>\r\n );\r\n }\r\n renderCloumnButton(columnButtons: any, record: any) {\r\n const { actionProps } = this.props;\r\n const { baseActionColumn } = config();\r\n const newButtons = [];\r\n let showIcon = true;\r\n if (actionProps?.showIcon === false) showIcon = false;\r\n else if (baseActionColumn.showIcon === false) showIcon = false;\r\n columnButtons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, icon, recordShow, ...params } =\r\n item.props;\r\n if (recordShow) {\r\n if (typeof recordShow == \"string\") {\r\n if (eval(recordShow)) {\r\n newButtons.push(item);\r\n }\r\n } else if (typeof recordShow == \"function\") {\r\n const show = recordShow(record);\r\n show && newButtons.push(item);\r\n }\r\n } else {\r\n newButtons.push(item);\r\n }\r\n });\r\n const flag = newButtons.length > 3;\r\n\r\n const content = newButtons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, recordShow, icon, show, ...params } =\r\n item.props;\r\n if (index > 2) {\r\n return (\r\n <Button\r\n className={cls(\r\n getLess(styles, \"editor\"),\r\n getLess(styles, \"content-item\")\r\n )}\r\n key={index}\r\n onClick={() => {\r\n let data = {} as any;\r\n data[record.id] = false;\r\n this.setState({\r\n popopens: data,\r\n });\r\n onClick && onClick(record);\r\n }}\r\n type=\"link\"\r\n {...params}\r\n >\r\n {showIcon !== false && (\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n )}\r\n <span className={getLess(styles, \"text\")}>{children}1</span>\r\n </Button>\r\n );\r\n }\r\n });\r\n\r\n return newButtons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, recordShow, icon, ...params } =\r\n item.props;\r\n if (flag) {\r\n if (index < 3) {\r\n console.log(\"aaa\");\r\n return (\r\n <Button\r\n className={cls(getLess(styles, \"editor\"), {\r\n [getLess(styles, \"editor_first\")]: index === 0,\r\n })}\r\n key={index}\r\n onClick={() => {\r\n onClick && onClick(record);\r\n }}\r\n type=\"link\"\r\n {...params}\r\n >\r\n {showIcon !== false && (\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n )}\r\n <span className={getLess(styles, \"text\")}>{children}</span>\r\n </Button>\r\n );\r\n } else if (index == 3) {\r\n return (\r\n <Popover\r\n placement=\"bottom\"\r\n title={null}\r\n content={content}\r\n trigger={[\"click\"]}\r\n key={index}\r\n visible={this.state.popopens[record.id] || false}\r\n onVisibleChange={(visibale) => {\r\n if (visibale) {\r\n let data = {} as any;\r\n data[record.id] = true;\r\n this.setState({\r\n popopens: data,\r\n });\r\n } else {\r\n this.setState({\r\n popopens: {},\r\n });\r\n }\r\n }}\r\n // overlayClassName={styles['pop']}\r\n >\r\n <a className={getLess(styles, \"editor\")}>\r\n <EllipsisOutlined />\r\n </a>\r\n </Popover>\r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return (\r\n <Button\r\n className={cls(getLess(styles, \"editor\"), {\r\n [getLess(styles, \"editor_first\")]: index === 0,\r\n })}\r\n key={index}\r\n onClick={() => {\r\n onClick && onClick(record);\r\n }}\r\n type=\"link\"\r\n {...params}\r\n >\r\n {showIcon !== false && (\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n )}\r\n <span className={getLess(styles, \"text\")}>{children}</span>\r\n </Button>\r\n );\r\n }\r\n });\r\n // }\r\n }\r\n //树点击事件\r\n treeSelect(selectedKeys: any, obj: any) {\r\n let keyword = \"\";\r\n const {\r\n searchKey = \"key\",\r\n searchField = \"\",\r\n parantSelect = true,\r\n } = this.props.treeProps;\r\n const { treeSelectedKey } = this.state;\r\n const { selected, selectedNodes } = obj;\r\n\r\n if (selected) {\r\n keyword = selectedNodes[0].dataref.attribute[searchKey];\r\n if (parantSelect) {\r\n this.setState({\r\n treeSelectedKey: selectedKeys[0],\r\n treeSearchPrams: { [searchField]: keyword },\r\n });\r\n } else {\r\n if (selectedNodes[0].isLeaf || !selectedNodes[0].children) {\r\n if (selectedKeys[0] !== treeSelectedKey) {\r\n this.setState({\r\n treeSelectedKey: selectedKeys[0],\r\n treeSearchPrams: { [searchField]: keyword },\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n this.setState({\r\n treeSelectedKey: keyword,\r\n treeSearchPrams: {},\r\n });\r\n }\r\n if (this.props.onTreeSelect) {\r\n this.props.onTreeSelect(selectedKeys, obj);\r\n return;\r\n }\r\n const fromValue = this.searchRef?.current?.getSearchValues() || {};\r\n searchField && this.tableLoad({ ...fromValue, [searchField]: keyword });\r\n this.props.onCallBacks?.treeSelectCallBack &&\r\n utils.callback(this.props.onCallBacks?.treeSelectCallBack, this, [\r\n selectedKeys,\r\n obj,\r\n ]);\r\n }\r\n resetSearch() {\r\n this.searchRef.current?.resetFields();\r\n }\r\n getText(props, text) {\r\n let newText = text;\r\n if (props?.data && props?.data?.length > 0) {\r\n let data = props.data;\r\n for (let i = 0; i < data?.length; i++) {\r\n if (data[i].value == text) {\r\n newText = data[i].label;\r\n }\r\n }\r\n }\r\n return newText;\r\n }\r\n setTableData(data) {\r\n this.tableRef.current?.store?.setData(data);\r\n }\r\n setTreeData(data) {\r\n this.treeRef.current?.store?.setData(data);\r\n }\r\n getSelectedKey = (selected) => {\r\n let res = [];\r\n for (let key in selected) {\r\n const keys = selected[key];\r\n if (keys.length > 0) {\r\n res = [...res, ...keys];\r\n }\r\n }\r\n return res;\r\n };\r\n\r\n render() {\r\n const {\r\n columns = [],\r\n showSearch = true,\r\n children,\r\n submitUrl = \"\",\r\n tableProps = {},\r\n treeProps = {},\r\n formProps = {},\r\n showLeft = false,\r\n submitParams = {},\r\n showToolButton = true,\r\n buttons = [],\r\n editorForm = true,\r\n onShowForm,\r\n formChangeValid = true,\r\n className,\r\n toolButtonPosition = \"buttom\",\r\n actionProps,\r\n deletePosition = \"toolbar\",\r\n } = this.props;\r\n const {\r\n store,\r\n filterColumn = true,\r\n actionColumn = true,\r\n showRowSelection = true,\r\n columnOrder = true,\r\n expandable = {},\r\n parantSelect = true,\r\n ...othertableParams\r\n } = tableProps;\r\n\r\n const {\r\n store: treeStore = {},\r\n showSearch: treeSearch = true,\r\n titleAlias = \"title\",\r\n ...othertreeParams\r\n } = treeProps;\r\n\r\n let tableParams = { filterColumn, store, ...othertableParams } as any;\r\n let tableColumn: any[] = [];\r\n const searchForms: any = [];\r\n const editorForms: any = [];\r\n const defaultValue: any = {};\r\n const columnButtons: any = [];\r\n columns.map((item: any) => {\r\n let temp = { ...item };\r\n if (temp.search === true || temp.search?.show === true) {\r\n searchForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label: temp.search?.label || temp.title,\r\n type: temp.type,\r\n props: temp.props,\r\n labelCol: temp.search?.labelCol,\r\n wrapperCol: temp.search?.wrapperCol,\r\n rules: temp.searchRules ? temp.searchRules : [],\r\n });\r\n }\r\n\r\n delete temp.search;\r\n temp.editor !== false &&\r\n editorForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label: temp.title,\r\n rules: temp.rules ? temp.rules : [],\r\n type: temp.type,\r\n span: temp.span,\r\n dictName: temp.dictName,\r\n props: { ...temp.props },\r\n });\r\n\r\n if (\r\n temp.props?.defaultValue !== undefined &&\r\n temp.props?.defaultValue !== null\r\n ) {\r\n const name = temp.field || temp.dataIndex;\r\n defaultValue[name] = temp.props?.defaultValue;\r\n }\r\n delete temp.rules;\r\n delete temp.span;\r\n if (temp.columnSearch) {\r\n temp.filterProps = {\r\n type: temp.type,\r\n props: temp.props,\r\n };\r\n }\r\n delete temp.type;\r\n let tempProp = { ...temp.props };\r\n if (temp.style) {\r\n temp = {\r\n render: (text: any) => {\r\n return (\r\n <>\r\n {text !== \"\" && text !== null && text !== undefined && (\r\n <div className={getLess(styles, \"col-back\")}>\r\n <span className={getLess(styles, \"col-text\")}>\r\n {this.getText(tempProp, text)}\r\n </span>\r\n </div>\r\n )}\r\n </>\r\n );\r\n },\r\n ...temp,\r\n };\r\n } else if (!temp.ellipsis) {\r\n temp = {\r\n render: (text: any) => {\r\n return <>{this.getText(tempProp, text)}</>;\r\n },\r\n ...temp,\r\n };\r\n } else {\r\n temp = { ...temp };\r\n }\r\n delete temp.props;\r\n if (temp?.columnShow !== false) tableColumn.push(temp);\r\n });\r\n const selfButtons: any = [];\r\n const { baseActionColumn } = config();\r\n let showIcon = true;\r\n if (actionProps?.showIcon === false) showIcon = false;\r\n else if (baseActionColumn.showIcon === false) showIcon = false;\r\n if (editorForm == true) {\r\n if (buttons.indexOf(\"search\") > -1) {\r\n columnButtons.push(\r\n <Button\r\n onClick={(record: any) => {\r\n if (onShowForm) {\r\n onShowForm(record.attribute || record, \"detail\");\r\n return;\r\n }\r\n this.showForm(record.attribute || record, \"detail\");\r\n }}\r\n icon={<EyeOutlined />}\r\n >\r\n 查看\r\n </Button>\r\n );\r\n }\r\n if (buttons.indexOf(\"editor\") > -1) {\r\n columnButtons.push(\r\n <Button\r\n onClick={(record: any) => {\r\n if (onShowForm) {\r\n onShowForm(record.attribute || record, \"editor\");\r\n return;\r\n }\r\n this.showForm(record.attribute || record, \"editor\");\r\n }}\r\n icon={<EditOutlined />}\r\n >\r\n 编辑\r\n </Button>\r\n );\r\n }\r\n }\r\n if (buttons.indexOf(\"add\") > -1) {\r\n selfButtons.push(\r\n <Button\r\n type={\"primary\"}\r\n onClick={() => {\r\n const { onShowForm } = this.props;\r\n if (onShowForm) {\r\n onShowForm();\r\n return;\r\n }\r\n this.showForm();\r\n }}\r\n icon={<PlusOutlined />}\r\n >\r\n 添加\r\n </Button>\r\n );\r\n }\r\n if (buttons.indexOf(\"delete\") > -1) {\r\n if (deletePosition == \"toolbar\") {\r\n selfButtons.push(\r\n <Button\r\n // type={\"primary\"}\r\n onClick={this.onDelete.bind(this)}\r\n icon={<DeleteOutlined />}\r\n danger\r\n >\r\n 删除\r\n </Button>\r\n );\r\n } else if (deletePosition == \"row\") {\r\n columnButtons.push(\r\n <Button\r\n // type={\"primary\"}\r\n onClick={(record: any) => {\r\n this.onDelete(record);\r\n }}\r\n icon={<DeleteOutlined />}\r\n danger\r\n >\r\n 删除\r\n </Button>\r\n );\r\n }\r\n }\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"toolButton\") {\r\n selfButtons.push(child);\r\n } else if (child?.props?.pageType == \"cloumnButton\") {\r\n columnButtons.push(child);\r\n }\r\n });\r\n } else {\r\n if (item?.props?.pageType == \"toolButton\") {\r\n selfButtons.push(item);\r\n } else if (item?.props?.pageType == \"cloumnButton\") {\r\n columnButtons.push(item);\r\n }\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"toolButton\") {\r\n selfButtons.push(children);\r\n } else if (props?.pageType == \"cloumnButton\") {\r\n columnButtons.push(children);\r\n }\r\n }\r\n actionColumn &&\r\n tableColumn.push({\r\n title: \"操作\",\r\n dataIndex: \"action\",\r\n align: actionProps?.textAlign\r\n ? actionProps?.textAlign\r\n : baseActionColumn.textAlign\r\n ? baseActionColumn.textAlign\r\n : \"center\",\r\n width: actionProps?.width\r\n ? actionProps?.width\r\n : baseActionColumn.width\r\n ? baseActionColumn.width\r\n : 200,\r\n fixed: \"right\",\r\n render: (text: any, record: any) => {\r\n return (\r\n <div className={getLess(styles, \"action\")}>\r\n {this.renderCloumnButton(columnButtons, record)}\r\n </div>\r\n );\r\n },\r\n });\r\n if (columnOrder)\r\n tableColumn = [\r\n {\r\n title: \"序号\",\r\n width: 80,\r\n align: \"center\",\r\n render: (text, reacord, index) => {\r\n return <>{index + 1}</>;\r\n },\r\n },\r\n ...tableColumn,\r\n ];\r\n let searchFlag = showSearch && searchForms.length > 0;\r\n let { tableTool } = config();\r\n let toolFlag = showToolButton && selfButtons.length > 0;\r\n let toolbarFlag = !(\r\n tableProps.toolbar == false ||\r\n tableProps.toolbar?.show == false ||\r\n tableProps.toolbar?.tools?.length == 0 ||\r\n tableTool?.show == false\r\n );\r\n if (tableProps.pagination !== false) {\r\n const scroll = tableParams.scroll;\r\n tableParams = {\r\n ...tableParams,\r\n scroll: { x: \"max-content\", ...scroll },\r\n };\r\n }\r\n\r\n return (\r\n <div className={cls(getLess(styles, \"page\"), className)}>\r\n {this.props.pageTitle && (\r\n <div className={cls(getLess(styles, \"page-title\"))}>\r\n {this.props.pageTitle}\r\n </div>\r\n )}\r\n <div\r\n className={cls(getLess(styles, \"page-pane\"))}\r\n style={{ display: \"flex\" }}\r\n >\r\n {showLeft && (\r\n <div className={getLess(styles, \"left\")}>\r\n <Tree\r\n store={{ ...treeStore }}\r\n showIcon={false}\r\n checkable={false}\r\n searchable={treeSearch}\r\n onSelect={this.treeSelect.bind(this)}\r\n selectedKeys={[this.state.treeSelectedKey]}\r\n titleAlias={titleAlias}\r\n {...othertreeParams}\r\n />\r\n </div>\r\n )}\r\n <div\r\n className={cls(getLess(styles, \"right\"), {\r\n [getLess(styles, \"no-left-right\")]: !showLeft,\r\n })}\r\n >\r\n {showSearch && searchForms.length > 0 && (\r\n <HeaderSearch\r\n searchForms={searchForms}\r\n toolButtonPosition={toolButtonPosition}\r\n onSearch={this.onSearch.bind(this)}\r\n onReset={this.props.onReset}\r\n ref={this.searchRef}\r\n searchFormProps={this.props.searchFormProps}\r\n />\r\n )}\r\n\r\n {showToolButton &&\r\n selfButtons.length > 0 &&\r\n toolButtonPosition == \"buttom\" &&\r\n this.renderToolButtons(selfButtons, searchForms.length == 0)}\r\n <div\r\n className={cls(\r\n getLess(styles, \"table\"),\r\n {\r\n [getLess(styles, \"table-top\")]:\r\n (searchFlag && !toolFlag) || !toolbarFlag,\r\n },\r\n {\r\n [getLess(styles, \"table-top2\")]: !searchFlag && !toolFlag,\r\n }\r\n )}\r\n >\r\n <Table\r\n ref={this.tableRef}\r\n columns={tableColumn}\r\n expandable={{\r\n expandIcon: ({ expanded, onExpand, record }) => {\r\n return (\r\n <>\r\n {expanded ? (\r\n <DownOutlined\r\n onClick={(e) => onExpand(record, e)}\r\n className={getLess(styles, \"expand-icon\")}\r\n />\r\n ) : (\r\n record.childNodes && (\r\n <RightOutlined\r\n onClick={(e) => onExpand(record, e)}\r\n className={getLess(styles, \"expand-icon\")}\r\n />\r\n )\r\n )}\r\n </>\r\n );\r\n },\r\n ...expandable,\r\n }}\r\n columnOrder={true}\r\n onChange={(pagination) => {\r\n const { currentPage } = this.state;\r\n if (currentPage !== pagination.current) {\r\n this.setState({\r\n currentPage: pagination.current,\r\n });\r\n }\r\n }}\r\n toolbar={{\r\n onToolClick: {\r\n onRefresh: () => {\r\n const params = this.getSearchValues();\r\n this.tableLoad(params);\r\n },\r\n },\r\n ...tableProps.toolbar,\r\n }}\r\n showRowSelection={showRowSelection}\r\n {...tableParams}\r\n />\r\n </div>\r\n </div>\r\n {editorForm && (\r\n <EditorForm\r\n ref={this.editorRef}\r\n callBack={() => {\r\n this.props.onCallBacks?.onSumbitCallBack &&\r\n this.props.onCallBacks?.onSumbitCallBack();\r\n this.tableReload.bind(this);\r\n }}\r\n formProps={editorForms}\r\n submitUrl={submitUrl}\r\n submitParams={submitParams}\r\n onSubmit={this.props.onSubmit}\r\n defaultValue={defaultValue}\r\n onHideForm={this.props.onHideForm}\r\n onFormChange={this.props.onFormChange}\r\n formType={this.props.formType || \"auto\"}\r\n changeValid={formChangeValid}\r\n otherProps={{ ...formProps }}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default BasePage;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PureComponent","Table","Tree","Button","Modal","Popover","message","EditorForm","cls","styles","utils","DownOutlined","EyeOutlined","EditOutlined","RightOutlined","PlusOutlined","EllipsisOutlined","DeleteOutlined","getLess","request","config","getStorage","HeaderSearch","BasePage","constructor","props","_type","_size","_defineProperty","createRef","checkedTreeKeys","name","userType","account","state","value","deptId","onSearch","selected","res","key","keys","length","storePrefix","type","content","size","selectedRowKeys","selectedRowDatas","treeSelectedKey","expand","formType","tableSize","treeSearchPrams","popopens","componentDidMount","initData","setSearchParams","params","callBack","_this$searchRef$curre","searchRef","current","showForm","_this$editorRef$curre","editorflag","arguments","undefined","editorRef","show","hideForm","_this$editorRef$curre2","setLoading","loading","_this$editorRef$curre3","setEditFormValues","_this$editorRef$curre4","setFieldsValue","getEditFormValues","_this$editorRef$curre5","getFieldsValue","onDelete","data","_this$tableRef$curren","deleteUrl","deleteParams","deletePosition","_this","tableRef","getSelectedRowKeys","warning","confirm","onOk","Error","defaultParams","method","autoPrefix","ids","join","id","requestParams","_objectSpread","then","code","_this$searchRef","_this$props$onCallBac","_this$props$onCallBac2","success","getSearchValues","onCallBacks","onDeleteCallBack","tableLoad","error","catch","console","log","_this$tableRef$curren2","requestConfig","store","load","onSearchCallBack","callback","tableReload","_this$tableRef$curren3","autoLoad","reload","_res$data","records","currentPage","_this$tableRef$curren4","_this$tableRef$curren5","getSelectedRowDatas","_this$tableRef$curren6","resetSelectedRowKeys","_this$tableRef$curren7","_this$searchRef2","fromValue","getChildrenData","tableProps","rowKey","resKey","childNodes","children","map","item","index","renderToolButtons","toolbuttons","marginflag","flag","showSearch","_item$props","pageType","onClick","icon","_objectWithoutProperties","_excluded","createElement","_extends","className","style","marginLeft","title","placement","trigger","renderCloumnButton","columnButtons","record","actionProps","baseActionColumn","newButtons","showIcon","_item$props2","recordShow","_excluded2","eval","push","_item$props3","_excluded3","setState","_item$props4","_excluded4","visible","onVisibleChange","visibale","treeSelect","selectedKeys","obj","_this$searchRef3","_this$props$onCallBac3","_this$props$onCallBac4","keyword","searchKey","searchField","parantSelect","treeProps","selectedNodes","dataref","attribute","isLeaf","onTreeSelect","treeSelectCallBack","resetSearch","_this$searchRef$curre2","resetFields","getText","text","_props$data","newText","i","label","setTableData","_this$tableRef$curren8","setData","setTreeData","_this$treeRef$current","treeRef","render","_tableProps$toolbar","_tableProps$toolbar2","columns","submitUrl","formProps","showLeft","submitParams","showToolButton","buttons","editorForm","onShowForm","formChangeValid","toolButtonPosition","filterColumn","actionColumn","showRowSelection","columnOrder","expandable","othertableParams","_excluded5","treeStore","treeSearch","titleAlias","othertreeParams","_excluded6","tableParams","tableColumn","searchForms","editorForms","defaultValue","_temp$search","_temp$props","_temp$props2","_temp","temp","search","_temp$search2","_temp$search3","_temp$search4","field","dataIndex","labelCol","wrapperCol","rules","searchRules","editor","span","dictName","_temp$props3","columnSearch","filterProps","tempProp","Fragment","ellipsis","columnShow","selfButtons","indexOf","bind","danger","Array","isArray","child","_child$props","_child$props2","_item$props5","_item$props6","align","textAlign","width","fixed","reacord","searchFlag","tableTool","toolFlag","toolbarFlag","toolbar","tools","pagination","scroll","x","pageTitle","display","checkable","searchable","onSelect","onReset","ref","searchFormProps","expandIcon","_ref","_record$childNodes","_record$childNodes2","expanded","onExpand","e","onChange","onToolClick","onRefresh","_this$props$onCallBac5","_this$props$onCallBac6","onSumbitCallBack","onSubmit","onHideForm","onFormChange","changeValid","otherProps"],"sources":["../../../src/components/page/BasePage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Table from \"../../base/table\";\r\nimport Tree from \"../../base/tree\";\r\nimport Form from \"../../base/form\";\r\nimport Button from \"../../base/button\";\r\nimport Modal from \"../../base/modal\";\r\nimport Popover from \"../../base/popover\";\r\nimport message from \"../../base/message\";\r\nimport Icon from \"../../base/common/IconFont\";\r\nimport { iconType } from \"../../constants\";\r\nimport EditorForm from \"./Form\";\r\nimport cls from \"classnames\";\r\nimport styles from \"./index.module.less\";\r\nimport Store, { PageStore, StoreProps } from \"@bj-nsc/msn\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport {\r\n DownOutlined,\r\n EyeOutlined,\r\n EditOutlined,\r\n RightOutlined,\r\n PlusOutlined,\r\n EllipsisOutlined,\r\n DeleteOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport request from \"nsc-request\";\r\nimport omit from \"omit.js\";\r\nimport config from \"../../config\";\r\nimport { getStorage } from \"@bj-nsc/functions\";\r\nimport { IFormProps } from \"../../base/form/Form\";\r\nimport HeaderSearch from \"../HeaderSearch\";\r\nimport { PaginationProps } from \"antd\";\r\ninterface TableProps {\r\n actionColumn?: boolean; //是否显示操作列\r\n store?: StoreProps;\r\n filterColumn?: boolean; //是否显示过滤按钮\r\n showRowSelection?: boolean; //是否表格勾选列\r\n pagination?: boolean | PaginationProps; //是否显示分页\r\n columnOrder?: boolean; //是否显示表格序列\r\n [propsName: string]: any;\r\n}\r\ninterface TreeProps {\r\n store?: StoreProps;\r\n showSearch?: boolean; //是否显示搜索框\r\n searchKey?: string; //搜索value对应的key\r\n searchField?: string; //查询对应的key\r\n titleAlias?: string; //树title对应的key,默认title\r\n nodePorps?: object;\r\n parantSelect?: boolean;\r\n [propsName: string]: any;\r\n}\r\ninterface FormProps extends IFormProps {}\r\ninterface NSCBaseBageProps {\r\n showSearch?: boolean; //是否显示头部搜索栏\r\n tableProps?: TableProps; //表格参数\r\n treeProps?: TreeProps; //左侧树参数\r\n submitParams?: Object; //添加参数,默认mothod:post, 参数通过data传递\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n columns: Array<Object>;\r\n showLeft?: boolean; //是否显示左侧目录树\r\n showToolButton?: boolean; //是否显示按钮栏\r\n editorForm?: boolean; //是否需要表单功能 , 为false 编辑,查看,新增功能均不可用\r\n deleteUrl?: string; //删除url\r\n onDelete?: (selectedKeys?: Array<string>) => void; //删除参数,默认mothod:post, 参数通过ids拼接传递给后台\r\n deletePosition?: \"toolbar\" | \"row\";\r\n deleteParams?: Object;\r\n children?: React.ReactNode;\r\n onSearch?: (value?: any) => void;\r\n onReset?: () => void;\r\n initData?: any; //初始化回调函数,在componentDidMount中调用\r\n buttons?: Array<string>; //按钮集合 ['add','delete','search','editor']\r\n onShowForm?: (value?: any, editorFlag?: string) => void; //打开表单回调\r\n onHideForm?: () => void; //打开表单回调\r\n onFormChange?: (changedValues?: any, allValues?: any) => void; //表单onChange回调\r\n formType?: \"modal\" | \"drawer\";\r\n formChangeValid?: boolean; //表单校验\r\n className?: any;\r\n toolButtonPosition?: \"right\" | \"buttom\";\r\n pageTitle?: string | ReactNode;\r\n formProps?: FormProps;\r\n actionProps?: { textAlign?: string; showIcon?: boolean; width?: number };\r\n searchFormProps?: { wrapperCol?: any; labelCol?: any };\r\n onTreeSelect?: (value?: any, editorFlag?: string) => void; //打开表单回调\r\n onCallBacks?: {\r\n treeSelectCallBack?: any;\r\n onSearchCallBack?: any;\r\n onSumbitCallBack?: any;\r\n onDeleteCallBack?: any;\r\n };\r\n}\r\n\r\nclass BasePage extends PureComponent<NSCBaseBageProps, any> {\r\n tableRef = React.createRef<any>();\r\n treeRef = React.createRef<any>();\r\n searchRef = React.createRef<any>();\r\n editorRef = React.createRef<any>();\r\n dateFormat = {} as any;\r\n constructor(props: any) {\r\n super(props);\r\n let { storePrefix } = config();\r\n let type = getStorage(\r\n storePrefix ? storePrefix + \"-\" + \"formType\" : \"formType\"\r\n );\r\n type = type?.content;\r\n let size = getStorage(\r\n storePrefix ? storePrefix + \"-\" + \"tableSize\" : \"tableSize\"\r\n );\r\n size = size?.content;\r\n this.state = {\r\n type: \"add\",\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n treeSelectedKey: \"\",\r\n expand: false,\r\n formType: type || \"modal\",\r\n tableSize: size || \"default\",\r\n treeSearchPrams: {},\r\n popopens: {},\r\n };\r\n }\r\n componentDidMount() {\r\n const { initData } = this.props;\r\n initData && initData();\r\n }\r\n\r\n setSearchParams(params, callBack) {\r\n this.searchRef.current?.setSearchParams(params);\r\n callBack && callBack(params);\r\n }\r\n\r\n onSelect = (checkedTreeKeys: any) => {\r\n const { name, userType, account } = this.state;\r\n const value = { name, userType, account, deptId: checkedTreeKeys[0] };\r\n if (this.props.onSearch) {\r\n this.props.onSearch(value);\r\n }\r\n // this.tableLoad(value);\r\n };\r\n\r\n //显示表单\r\n showForm(value?: any, editorflag = \"add\") {\r\n this.editorRef.current?.show(value, editorflag);\r\n }\r\n\r\n //关闭表单\r\n hideForm() {\r\n this.editorRef.current?.hideForm();\r\n }\r\n\r\n setLoading(loading: boolean) {\r\n this.editorRef.current?.setLoading(loading);\r\n }\r\n\r\n setEditFormValues(value) {\r\n this.editorRef.current?.setFieldsValue(value);\r\n }\r\n\r\n getEditFormValues() {\r\n return this.editorRef.current?.getFieldsValue();\r\n }\r\n\r\n //批量删除\r\n onDelete(data?: any) {\r\n const {\r\n deleteUrl,\r\n onDelete,\r\n deleteParams,\r\n deletePosition = \"toolbar\",\r\n } = this.props;\r\n let _this = this;\r\n const selectedRowKeys = this.tableRef.current?.getSelectedRowKeys();\r\n if (deletePosition == \"toolbar\") {\r\n if (selectedRowKeys.length == 0) {\r\n message.warning(\"请选择要删除的数据!\");\r\n return;\r\n }\r\n }\r\n Modal.confirm({\r\n content: \"是否确认删除所选项?\",\r\n // centered:true,\r\n onOk: () => {\r\n if (onDelete) {\r\n onDelete &&\r\n onDelete(deletePosition == \"toolbar\" ? selectedRowKeys : data);\r\n return;\r\n }\r\n if (!deleteUrl) {\r\n throw new Error(\"url不能为空!\");\r\n }\r\n const defaultParams = {\r\n method: \"post\",\r\n autoPrefix: true,\r\n params: {\r\n ids: deletePosition == \"toolbar\" ? selectedRowKeys.join() : data.id,\r\n },\r\n };\r\n let requestParams = {} as any;\r\n if (defaultParams) {\r\n requestParams = { ...deleteParams };\r\n }\r\n requestParams = { ...defaultParams };\r\n request(deleteUrl, {\r\n ...requestParams,\r\n })\r\n .then(function (res: any) {\r\n const { code } = res;\r\n if (code === 200) {\r\n message.success(\"删除成功!\");\r\n let value = _this.searchRef?.current?.getSearchValues();\r\n _this.props.onCallBacks?.onDeleteCallBack &&\r\n _this.props.onCallBacks?.onDeleteCallBack();\r\n _this.tableLoad(value);\r\n } else {\r\n message.error(\"删除失败!\");\r\n }\r\n })\r\n .catch(function (error: any) {\r\n console.log(\"error\", error);\r\n });\r\n },\r\n });\r\n }\r\n tableLoad(params: any, requestConfig = {}) {\r\n this.tableRef.current?.store.load({\r\n ...requestConfig,\r\n params: params,\r\n });\r\n }\r\n //查询\r\n onSearch(params) {\r\n const { onSearch, onCallBacks } = this.props;\r\n if (onSearch) {\r\n onSearch({ ...params, ...this.state.treeSearchPrams });\r\n return;\r\n }\r\n this.tableLoad({ ...params, ...this.state.treeSearchPrams });\r\n onCallBacks?.onSearchCallBack &&\r\n utils.callback(onCallBacks?.onSearchCallBack, this, [params]);\r\n }\r\n //表格重新加载\r\n tableReload(params = {}, autoLoad = true) {\r\n this.tableRef.current?.store?.reload({\r\n callback: (res) => {\r\n if (\r\n autoLoad &&\r\n res?.data?.records?.length == 0 &&\r\n this.state.currentPage !== 1\r\n ) {\r\n this.tableRef.current?.store?.reload({\r\n params: { current: 1, ...params },\r\n });\r\n }\r\n },\r\n });\r\n }\r\n getSelectedRowKeys() {\r\n return this.tableRef.current?.getSelectedRowKeys();\r\n }\r\n getSelectedRowDatas() {\r\n return this.tableRef.current?.getSelectedRowDatas();\r\n }\r\n resetSelectedRowKeys() {\r\n return this.tableRef.current?.resetSelectedRowKeys();\r\n }\r\n\r\n getSearchValues() {\r\n const fromValue = this.searchRef?.current?.getSearchValues();\r\n return { ...fromValue, ...this.state.treeSearchPrams };\r\n }\r\n\r\n getChildrenData(data, keys = []) {\r\n const { tableProps } = this.props;\r\n const { rowKey = \"id\" } = tableProps;\r\n let resKey = [];\r\n if (data.childNodes) {\r\n const children = data.childNodes;\r\n children.map((item, index) => {\r\n if (item.childNodes) {\r\n this.getChildrenData(item.childNodes, keys);\r\n } else {\r\n resKey = [...keys, item[rowKey]];\r\n }\r\n });\r\n } else {\r\n resKey = [...keys, data[rowKey]];\r\n }\r\n return resKey;\r\n }\r\n\r\n renderToolButtons(toolbuttons: any, marginflag = false) {\r\n const flag = toolbuttons.length > 5;\r\n const { showSearch = true } = this.props;\r\n const content = toolbuttons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, icon, show, ...params } = item.props;\r\n if (index > 3) {\r\n return (\r\n <div\r\n className={cls(\r\n getLess(styles, \"editor\"),\r\n getLess(styles, \"content-item\")\r\n )}\r\n key={index}\r\n onClick={() => {\r\n onClick && onClick();\r\n }}\r\n {...params}\r\n >\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n <span className={getLess(styles, \"text\")}>{children}</span>\r\n </div>\r\n );\r\n }\r\n });\r\n return (\r\n <div\r\n className={cls(getLess(styles, \"tool-buttons\"), {\r\n [getLess(styles, \"tool-buttons-margin\")]: !showSearch || marginflag,\r\n })}\r\n style={{ marginLeft: 0 }}\r\n >\r\n {toolbuttons.map((item: any, index: any) => {\r\n if (flag) {\r\n if (index < 4) {\r\n return <div key={index}>{item}</div>;\r\n } else if (index == 4) {\r\n return (\r\n <Popover\r\n content={content}\r\n title={null}\r\n placement=\"bottom\"\r\n trigger={[\"click\"]}\r\n key={index}\r\n\r\n // overlayClassName={styles['pop-box']}\r\n >\r\n <Button type=\"primary\">\r\n 更多 <DownOutlined />\r\n </Button>\r\n </Popover>\r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return <div key={index}>{item}</div>;\r\n }\r\n })}\r\n </div>\r\n );\r\n }\r\n renderCloumnButton(columnButtons: any, record: any) {\r\n const { actionProps } = this.props;\r\n const { baseActionColumn } = config();\r\n const newButtons = [];\r\n let showIcon = true;\r\n if (actionProps?.showIcon === false) showIcon = false;\r\n else if (baseActionColumn.showIcon === false) showIcon = false;\r\n columnButtons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, icon, recordShow, ...params } =\r\n item.props;\r\n if (recordShow) {\r\n if (typeof recordShow == \"string\") {\r\n if (eval(recordShow)) {\r\n newButtons.push(item);\r\n }\r\n } else if (typeof recordShow == \"function\") {\r\n const show = recordShow(record);\r\n show && newButtons.push(item);\r\n }\r\n } else {\r\n newButtons.push(item);\r\n }\r\n });\r\n const flag = newButtons.length > 3;\r\n\r\n const content = newButtons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, recordShow, icon, show, ...params } =\r\n item.props;\r\n if (index > 2) {\r\n return (\r\n <Button\r\n className={cls(\r\n getLess(styles, \"editor\"),\r\n getLess(styles, \"content-item\")\r\n )}\r\n key={index}\r\n onClick={() => {\r\n let data = {} as any;\r\n data[record.id] = false;\r\n this.setState({\r\n popopens: data,\r\n });\r\n onClick && onClick(record);\r\n }}\r\n type=\"link\"\r\n {...params}\r\n >\r\n {showIcon !== false && (\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n )}\r\n <span className={getLess(styles, \"text\")}>{children}</span>\r\n </Button>\r\n );\r\n }\r\n });\r\n\r\n return newButtons.map((item: any, index: any) => {\r\n const { children, pageType, onClick, recordShow, icon, ...params } =\r\n item.props;\r\n if (flag) {\r\n if (index < 3) {\r\n return (\r\n <Button\r\n className={cls(getLess(styles, \"editor\"), {\r\n [getLess(styles, \"editor_first\")]: index === 0,\r\n })}\r\n key={index}\r\n onClick={() => {\r\n onClick && onClick(record);\r\n }}\r\n type=\"link\"\r\n {...params}\r\n >\r\n {showIcon !== false && (\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n )}\r\n <span className={getLess(styles, \"text\")}>{children}</span>\r\n </Button>\r\n );\r\n } else if (index == 3) {\r\n return (\r\n <Popover\r\n placement=\"bottom\"\r\n title={null}\r\n content={content}\r\n trigger={[\"click\"]}\r\n key={index}\r\n visible={this.state.popopens[record.id] || false}\r\n onVisibleChange={(visibale) => {\r\n if (visibale) {\r\n let data = {} as any;\r\n data[record.id] = true;\r\n this.setState({\r\n popopens: data,\r\n });\r\n } else {\r\n this.setState({\r\n popopens: {},\r\n });\r\n }\r\n }}\r\n // overlayClassName={styles['pop']}\r\n >\r\n <a className={getLess(styles, \"editor\")}>\r\n <EllipsisOutlined />\r\n </a>\r\n </Popover>\r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return (\r\n <Button\r\n className={cls(getLess(styles, \"editor\"), {\r\n [getLess(styles, \"editor_first\")]: index === 0,\r\n })}\r\n key={index}\r\n onClick={() => {\r\n onClick && onClick(record);\r\n }}\r\n type=\"link\"\r\n {...params}\r\n >\r\n {showIcon !== false && (\r\n <span className={getLess(styles, \"icon\")}>{icon}</span>\r\n )}\r\n <span className={getLess(styles, \"text\")}>{children}</span>\r\n </Button>\r\n );\r\n }\r\n });\r\n // }\r\n }\r\n //树点击事件\r\n treeSelect(selectedKeys: any, obj: any) {\r\n let keyword = \"\";\r\n const {\r\n searchKey = \"key\",\r\n searchField = \"\",\r\n parantSelect = true,\r\n } = this.props.treeProps;\r\n const { treeSelectedKey } = this.state;\r\n const { selected, selectedNodes } = obj;\r\n\r\n if (selected) {\r\n keyword = selectedNodes[0].dataref.attribute[searchKey];\r\n if (parantSelect) {\r\n this.setState({\r\n treeSelectedKey: selectedKeys[0],\r\n treeSearchPrams: { [searchField]: keyword },\r\n });\r\n } else {\r\n if (selectedNodes[0].isLeaf || !selectedNodes[0].children) {\r\n if (selectedKeys[0] !== treeSelectedKey) {\r\n this.setState({\r\n treeSelectedKey: selectedKeys[0],\r\n treeSearchPrams: { [searchField]: keyword },\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n this.setState({\r\n treeSelectedKey: keyword,\r\n treeSearchPrams: {},\r\n });\r\n }\r\n if (this.props.onTreeSelect) {\r\n this.props.onTreeSelect(selectedKeys, obj);\r\n return;\r\n }\r\n const fromValue = this.searchRef?.current?.getSearchValues() || {};\r\n searchField && this.tableLoad({ ...fromValue, [searchField]: keyword });\r\n this.props.onCallBacks?.treeSelectCallBack &&\r\n utils.callback(this.props.onCallBacks?.treeSelectCallBack, this, [\r\n selectedKeys,\r\n obj,\r\n ]);\r\n }\r\n resetSearch() {\r\n this.searchRef.current?.resetFields();\r\n }\r\n getText(props, text) {\r\n let newText = text;\r\n if (props?.data && props?.data?.length > 0) {\r\n let data = props.data;\r\n for (let i = 0; i < data?.length; i++) {\r\n if (data[i].value == text) {\r\n newText = data[i].label;\r\n }\r\n }\r\n }\r\n return newText;\r\n }\r\n setTableData(data) {\r\n this.tableRef.current?.store?.setData(data);\r\n }\r\n setTreeData(data) {\r\n this.treeRef.current?.store?.setData(data);\r\n }\r\n getSelectedKey = (selected) => {\r\n let res = [];\r\n for (let key in selected) {\r\n const keys = selected[key];\r\n if (keys.length > 0) {\r\n res = [...res, ...keys];\r\n }\r\n }\r\n return res;\r\n };\r\n\r\n render() {\r\n const {\r\n columns = [],\r\n showSearch = true,\r\n children,\r\n submitUrl = \"\",\r\n tableProps = {},\r\n treeProps = {},\r\n formProps = {},\r\n showLeft = false,\r\n submitParams = {},\r\n showToolButton = true,\r\n buttons = [],\r\n editorForm = true,\r\n onShowForm,\r\n formChangeValid = true,\r\n className,\r\n toolButtonPosition = \"buttom\",\r\n actionProps,\r\n deletePosition = \"toolbar\",\r\n } = this.props;\r\n const {\r\n store,\r\n filterColumn = true,\r\n actionColumn = true,\r\n showRowSelection = true,\r\n columnOrder = true,\r\n expandable = {},\r\n parantSelect = true,\r\n ...othertableParams\r\n } = tableProps;\r\n\r\n const {\r\n store: treeStore = {},\r\n showSearch: treeSearch = true,\r\n titleAlias = \"title\",\r\n ...othertreeParams\r\n } = treeProps;\r\n\r\n let tableParams = { filterColumn, store, ...othertableParams } as any;\r\n let tableColumn: any[] = [];\r\n const searchForms: any = [];\r\n const editorForms: any = [];\r\n const defaultValue: any = {};\r\n const columnButtons: any = [];\r\n columns.map((item: any) => {\r\n let temp = { ...item };\r\n if (temp.search === true || temp.search?.show === true) {\r\n searchForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label: temp.search?.label || temp.title,\r\n type: temp.type,\r\n props: temp.props,\r\n labelCol: temp.search?.labelCol,\r\n wrapperCol: temp.search?.wrapperCol,\r\n rules: temp.searchRules ? temp.searchRules : [],\r\n });\r\n }\r\n\r\n delete temp.search;\r\n temp.editor !== false &&\r\n editorForms.push({\r\n name: temp.field || temp.dataIndex,\r\n label: temp.title,\r\n rules: temp.rules ? temp.rules : [],\r\n type: temp.type,\r\n span: temp.span,\r\n dictName: temp.dictName,\r\n props: { ...temp.props },\r\n });\r\n\r\n if (\r\n temp.props?.defaultValue !== undefined &&\r\n temp.props?.defaultValue !== null\r\n ) {\r\n const name = temp.field || temp.dataIndex;\r\n defaultValue[name] = temp.props?.defaultValue;\r\n }\r\n delete temp.rules;\r\n delete temp.span;\r\n if (temp.columnSearch) {\r\n temp.filterProps = {\r\n type: temp.type,\r\n props: temp.props,\r\n };\r\n }\r\n delete temp.type;\r\n let tempProp = { ...temp.props };\r\n if (temp.style) {\r\n temp = {\r\n render: (text: any) => {\r\n return (\r\n <>\r\n {text !== \"\" && text !== null && text !== undefined && (\r\n <div className={getLess(styles, \"col-back\")}>\r\n <span className={getLess(styles, \"col-text\")}>\r\n {this.getText(tempProp, text)}\r\n </span>\r\n </div>\r\n )}\r\n </>\r\n );\r\n },\r\n ...temp,\r\n };\r\n } else if (!temp.ellipsis) {\r\n temp = {\r\n render: (text: any) => {\r\n return <>{this.getText(tempProp, text)}</>;\r\n },\r\n ...temp,\r\n };\r\n } else {\r\n temp = { ...temp };\r\n }\r\n delete temp.props;\r\n if (temp?.columnShow !== false) tableColumn.push(temp);\r\n });\r\n const selfButtons: any = [];\r\n const { baseActionColumn } = config();\r\n let showIcon = true;\r\n if (actionProps?.showIcon === false) showIcon = false;\r\n else if (baseActionColumn.showIcon === false) showIcon = false;\r\n if (editorForm == true) {\r\n if (buttons.indexOf(\"search\") > -1) {\r\n columnButtons.push(\r\n <Button\r\n onClick={(record: any) => {\r\n if (onShowForm) {\r\n onShowForm(record.attribute || record, \"detail\");\r\n return;\r\n }\r\n this.showForm(record.attribute || record, \"detail\");\r\n }}\r\n icon={<EyeOutlined />}\r\n >\r\n 查看\r\n </Button>\r\n );\r\n }\r\n if (buttons.indexOf(\"editor\") > -1) {\r\n columnButtons.push(\r\n <Button\r\n onClick={(record: any) => {\r\n if (onShowForm) {\r\n onShowForm(record.attribute || record, \"editor\");\r\n return;\r\n }\r\n this.showForm(record.attribute || record, \"editor\");\r\n }}\r\n icon={<EditOutlined />}\r\n >\r\n 编辑\r\n </Button>\r\n );\r\n }\r\n }\r\n if (buttons.indexOf(\"add\") > -1) {\r\n selfButtons.push(\r\n <Button\r\n type={\"primary\"}\r\n onClick={() => {\r\n const { onShowForm } = this.props;\r\n if (onShowForm) {\r\n onShowForm();\r\n return;\r\n }\r\n this.showForm();\r\n }}\r\n icon={<PlusOutlined />}\r\n >\r\n 添加\r\n </Button>\r\n );\r\n }\r\n if (buttons.indexOf(\"delete\") > -1) {\r\n if (deletePosition == \"toolbar\") {\r\n selfButtons.push(\r\n <Button\r\n // type={\"primary\"}\r\n onClick={this.onDelete.bind(this)}\r\n icon={<DeleteOutlined />}\r\n danger\r\n >\r\n 删除\r\n </Button>\r\n );\r\n } else if (deletePosition == \"row\") {\r\n columnButtons.push(\r\n <Button\r\n // type={\"primary\"}\r\n onClick={(record: any) => {\r\n this.onDelete(record);\r\n }}\r\n icon={<DeleteOutlined />}\r\n danger\r\n >\r\n 删除\r\n </Button>\r\n );\r\n }\r\n }\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"toolButton\") {\r\n selfButtons.push(child);\r\n } else if (child?.props?.pageType == \"cloumnButton\") {\r\n columnButtons.push(child);\r\n }\r\n });\r\n } else {\r\n if (item?.props?.pageType == \"toolButton\") {\r\n selfButtons.push(item);\r\n } else if (item?.props?.pageType == \"cloumnButton\") {\r\n columnButtons.push(item);\r\n }\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"toolButton\") {\r\n selfButtons.push(children);\r\n } else if (props?.pageType == \"cloumnButton\") {\r\n columnButtons.push(children);\r\n }\r\n }\r\n actionColumn &&\r\n tableColumn.push({\r\n title: \"操作\",\r\n dataIndex: \"action\",\r\n align: actionProps?.textAlign\r\n ? actionProps?.textAlign\r\n : baseActionColumn.textAlign\r\n ? baseActionColumn.textAlign\r\n : \"center\",\r\n width: actionProps?.width\r\n ? actionProps?.width\r\n : baseActionColumn.width\r\n ? baseActionColumn.width\r\n : 200,\r\n fixed: \"right\",\r\n render: (text: any, record: any) => {\r\n return (\r\n <div className={getLess(styles, \"action\")}>\r\n {this.renderCloumnButton(columnButtons, record)}\r\n </div>\r\n );\r\n },\r\n });\r\n if (columnOrder)\r\n tableColumn = [\r\n {\r\n title: \"序号\",\r\n width: 80,\r\n align: \"center\",\r\n render: (text, reacord, index) => {\r\n return <>{index + 1}</>;\r\n },\r\n },\r\n ...tableColumn,\r\n ];\r\n let searchFlag = showSearch && searchForms.length > 0;\r\n let { tableTool } = config();\r\n let toolFlag = showToolButton && selfButtons.length > 0;\r\n let toolbarFlag = !(\r\n tableProps.toolbar == false ||\r\n tableProps.toolbar?.show == false ||\r\n tableProps.toolbar?.tools?.length == 0 ||\r\n tableTool?.show == false\r\n );\r\n if (tableProps.pagination !== false) {\r\n const scroll = tableParams.scroll;\r\n tableParams = {\r\n ...tableParams,\r\n scroll: { x: \"max-content\", ...scroll },\r\n };\r\n }\r\n\r\n return (\r\n <div className={cls(getLess(styles, \"page\"), className)}>\r\n {this.props.pageTitle && (\r\n <div className={cls(getLess(styles, \"page-title\"))}>\r\n {this.props.pageTitle}\r\n </div>\r\n )}\r\n <div\r\n className={cls(getLess(styles, \"page-pane\"))}\r\n style={{ display: \"flex\" }}\r\n >\r\n {showLeft && (\r\n <div className={getLess(styles, \"left\")}>\r\n <Tree\r\n store={{ ...treeStore }}\r\n showIcon={false}\r\n checkable={false}\r\n searchable={treeSearch}\r\n onSelect={this.treeSelect.bind(this)}\r\n selectedKeys={[this.state.treeSelectedKey]}\r\n titleAlias={titleAlias}\r\n {...othertreeParams}\r\n />\r\n </div>\r\n )}\r\n <div\r\n className={cls(getLess(styles, \"right\"), {\r\n [getLess(styles, \"no-left-right\")]: !showLeft,\r\n })}\r\n >\r\n {showSearch && searchForms.length > 0 && (\r\n <HeaderSearch\r\n searchForms={searchForms}\r\n toolButtonPosition={toolButtonPosition}\r\n onSearch={this.onSearch.bind(this)}\r\n onReset={this.props.onReset}\r\n ref={this.searchRef}\r\n searchFormProps={this.props.searchFormProps}\r\n />\r\n )}\r\n\r\n {showToolButton &&\r\n selfButtons.length > 0 &&\r\n toolButtonPosition == \"buttom\" &&\r\n this.renderToolButtons(selfButtons, searchForms.length == 0)}\r\n <div\r\n className={cls(\r\n getLess(styles, \"table\"),\r\n {\r\n [getLess(styles, \"table-top\")]:\r\n (searchFlag && !toolFlag) || !toolbarFlag,\r\n },\r\n {\r\n [getLess(styles, \"table-top2\")]: !searchFlag && !toolFlag,\r\n }\r\n )}\r\n >\r\n <Table\r\n ref={this.tableRef}\r\n columns={tableColumn}\r\n expandable={{\r\n expandIcon: ({ expanded, onExpand, record }) => {\r\n return (\r\n <>\r\n {expanded &&\r\n record.childNodes &&\r\n record.childNodes?.length > 0 ? (\r\n <DownOutlined\r\n onClick={(e) => onExpand(record, e)}\r\n className={getLess(styles, \"expand-icon\")}\r\n />\r\n ) : record.childNodes &&\r\n record.childNodes?.length > 0 ? (\r\n <RightOutlined\r\n onClick={(e) => onExpand(record, e)}\r\n className={getLess(styles, \"expand-icon\")}\r\n />\r\n ) : null}\r\n </>\r\n );\r\n },\r\n ...expandable,\r\n }}\r\n columnOrder={true}\r\n onChange={(pagination) => {\r\n const { currentPage } = this.state;\r\n if (currentPage !== pagination.current) {\r\n this.setState({\r\n currentPage: pagination.current,\r\n });\r\n }\r\n }}\r\n toolbar={{\r\n onToolClick: {\r\n onRefresh: () => {\r\n const params = this.getSearchValues();\r\n this.tableLoad(params);\r\n },\r\n },\r\n ...tableProps.toolbar,\r\n }}\r\n showRowSelection={showRowSelection}\r\n {...tableParams}\r\n />\r\n </div>\r\n </div>\r\n {editorForm && (\r\n <EditorForm\r\n ref={this.editorRef}\r\n callBack={() => {\r\n this.props.onCallBacks?.onSumbitCallBack &&\r\n this.props.onCallBacks?.onSumbitCallBack();\r\n this.tableReload.bind(this);\r\n }}\r\n formProps={editorForms}\r\n submitUrl={submitUrl}\r\n submitParams={submitParams}\r\n onSubmit={this.props.onSubmit}\r\n defaultValue={defaultValue}\r\n onHideForm={this.props.onHideForm}\r\n onFormChange={this.props.onFormChange}\r\n formType={this.props.formType || \"auto\"}\r\n changeValid={formChangeValid}\r\n otherProps={{ ...formProps }}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default BasePage;\r\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "2.14.1",
3
+ "version": "2.14.4",
4
4
  "main": "lib/index.js",
5
5
  "scripts": {
6
6
  "compile": "webpack --config ./webpack.config.js",