nsc-react-component 2.0.15 → 2.0.18

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.
Files changed (235) hide show
  1. package/lib/{affix → base/affix}/index.d.ts +0 -0
  2. package/lib/{affix → base/affix}/index.js +1 -1
  3. package/lib/{alert → base/alert}/index.d.ts +0 -0
  4. package/lib/{alert → base/alert}/index.js +1 -1
  5. package/lib/{anchor → base/anchor}/index.d.ts +0 -0
  6. package/lib/{anchor → base/anchor}/index.js +1 -1
  7. package/lib/{avatar → base/avatar}/index.d.ts +0 -0
  8. package/lib/{avatar → base/avatar}/index.js +1 -1
  9. package/lib/{backTop → base/backTop}/index.d.ts +0 -0
  10. package/lib/{backTop → base/backTop}/index.js +1 -1
  11. package/lib/{badge → base/badge}/index.d.ts +0 -0
  12. package/lib/{badge → base/badge}/index.js +1 -1
  13. package/lib/{breadcrumb → base/breadcrumb}/index.d.ts +0 -0
  14. package/lib/{breadcrumb → base/breadcrumb}/index.js +1 -1
  15. package/lib/{button → base/button}/index.d.ts +0 -0
  16. package/lib/{button → base/button}/index.js +2 -2
  17. package/lib/{button → base/button}/index.less +0 -0
  18. package/lib/{calendar → base/calendar}/index.d.ts +0 -0
  19. package/lib/{calendar → base/calendar}/index.js +1 -1
  20. package/lib/{card → base/card}/index.d.ts +0 -0
  21. package/lib/{card → base/card}/index.js +1 -1
  22. package/lib/{carousel → base/carousel}/index.d.ts +0 -0
  23. package/lib/{carousel → base/carousel}/index.js +1 -1
  24. package/lib/{cascader → base/cascader}/index.d.ts +0 -0
  25. package/lib/base/cascader/index.js +268 -0
  26. package/lib/{chart → base/chart}/index.d.ts +0 -0
  27. package/lib/base/chart/index.js +353 -0
  28. package/lib/{checkbox → base/checkbox}/CheckboxGroup.d.ts +0 -0
  29. package/lib/base/checkbox/CheckboxGroup.js +340 -0
  30. package/lib/{checkbox → base/checkbox}/index.d.ts +0 -0
  31. package/lib/{checkbox → base/checkbox}/index.js +1 -1
  32. package/lib/{collapse → base/collapse}/index.d.ts +0 -0
  33. package/lib/{collapse → base/collapse}/index.js +1 -1
  34. package/lib/{comment → base/comment}/index.d.ts +0 -0
  35. package/lib/{comment → base/comment}/index.js +1 -1
  36. package/lib/{common → base/common}/BodyRow/index.d.ts +0 -0
  37. package/lib/{common → base/common}/BodyRow/index.js +1 -1
  38. package/lib/{common → base/common}/BodyRow/index.less +0 -0
  39. package/lib/{common → base/common}/Icon.d.ts +0 -0
  40. package/lib/{common → base/common}/Icon.js +1 -1
  41. package/lib/{common → base/common}/IconFont.d.ts +0 -0
  42. package/lib/base/common/IconFont.js +17 -0
  43. package/lib/{common → base/common}/NoAuthority.d.ts +0 -0
  44. package/lib/{common → base/common}/NoAuthority.js +1 -1
  45. package/lib/{common → base/common}/NoData.d.ts +0 -0
  46. package/lib/{common → base/common}/NoData.js +1 -1
  47. package/lib/{common → base/common}/NoData.less +0 -0
  48. package/lib/{common → base/common}/NoMessage.d.ts +0 -0
  49. package/lib/{common → base/common}/NoMessage.js +1 -1
  50. package/lib/{common → base/common}/NoNetWork.d.ts +0 -0
  51. package/lib/{common → base/common}/NoNetWork.js +1 -1
  52. package/lib/{common → base/common}/Page404.d.ts +0 -0
  53. package/lib/{common → base/common}/Page404.js +1 -1
  54. package/lib/{common → base/common}/PageRequest.d.ts +0 -0
  55. package/lib/{common → base/common}/PageRequest.js +1 -1
  56. package/lib/{common → base/common}/TreePanel.d.ts +2 -1
  57. package/lib/base/common/TreePanel.js +290 -0
  58. package/lib/{common → base/common}/img/NoAuthority.png +0 -0
  59. package/lib/{common → base/common}/img/NoData.png +0 -0
  60. package/lib/{common → base/common}/img/NoMessage.png +0 -0
  61. package/lib/{common → base/common}/img/NoNetWork.png +0 -0
  62. package/lib/{common → base/common}/img/Page404.png +0 -0
  63. package/lib/{common → base/common}/withZhLocale.d.ts +0 -0
  64. package/lib/base/common/withZhLocale.js +20 -0
  65. package/lib/{configProvider → base/configProvider}/index.d.ts +0 -0
  66. package/lib/{configProvider → base/configProvider}/index.js +1 -1
  67. package/lib/{datepick → base/datepick}/Rangepicker.d.ts +0 -0
  68. package/lib/base/datepick/Rangepicker.js +553 -0
  69. package/lib/{datepick → base/datepick}/index.d.ts +0 -0
  70. package/lib/{datepick → base/datepick}/index.js +1 -1
  71. package/lib/{datepick → base/datepick}/index.less +0 -0
  72. package/lib/{descriptions → base/descriptions}/index.d.ts +0 -0
  73. package/lib/{descriptions → base/descriptions}/index.js +1 -1
  74. package/lib/{divider → base/divider}/index.d.ts +0 -0
  75. package/lib/{divider → base/divider}/index.js +1 -1
  76. package/lib/{drawer → base/drawer}/index.d.ts +0 -0
  77. package/lib/{drawer → base/drawer}/index.js +1 -1
  78. package/lib/{dropdown → base/dropdown}/index.d.ts +0 -0
  79. package/lib/{dropdown → base/dropdown}/index.js +1 -1
  80. package/lib/{form → base/form}/Form.d.ts +0 -0
  81. package/lib/base/form/Form.js +415 -0
  82. package/lib/{form → base/form}/filed/Cascader.d.ts +0 -0
  83. package/lib/{form → base/form}/filed/Cascader.js +1 -1
  84. package/lib/{form → base/form}/filed/Checkbox.d.ts +0 -0
  85. package/lib/{form → base/form}/filed/Checkbox.js +1 -1
  86. package/lib/{form → base/form}/filed/DatePicker.d.ts +0 -0
  87. package/lib/{form → base/form}/filed/DatePicker.js +1 -1
  88. package/lib/{form → base/form}/filed/FormItem.d.ts +0 -0
  89. package/lib/{form → base/form}/filed/FormItem.js +1 -1
  90. package/lib/{form → base/form}/filed/Input.d.ts +0 -0
  91. package/lib/{form → base/form}/filed/Input.js +1 -1
  92. package/lib/{form → base/form}/filed/InputEamil.d.ts +0 -0
  93. package/lib/{form → base/form}/filed/InputEamil.js +1 -1
  94. package/lib/{form → base/form}/filed/InputNumber.d.ts +0 -0
  95. package/lib/{form → base/form}/filed/InputNumber.js +1 -1
  96. package/lib/{form → base/form}/filed/InputPassword.d.ts +0 -0
  97. package/lib/{form → base/form}/filed/InputPassword.js +1 -1
  98. package/lib/{form → base/form}/filed/Item.d.ts +0 -0
  99. package/lib/base/form/filed/Item.js +161 -0
  100. package/lib/{form → base/form}/filed/Radio.d.ts +0 -0
  101. package/lib/{form → base/form}/filed/Radio.js +1 -1
  102. package/lib/{form → base/form}/filed/RangerPicker.d.ts +0 -0
  103. package/lib/{form → base/form}/filed/RangerPicker.js +1 -1
  104. package/lib/{form → base/form}/filed/Rate.d.ts +0 -0
  105. package/lib/{form → base/form}/filed/Rate.js +1 -1
  106. package/lib/{form → base/form}/filed/Select.d.ts +0 -0
  107. package/lib/{form → base/form}/filed/Select.js +1 -1
  108. package/lib/{form → base/form}/filed/Slider.d.ts +0 -0
  109. package/lib/{form → base/form}/filed/Slider.js +1 -1
  110. package/lib/{form → base/form}/filed/Switch.d.ts +0 -0
  111. package/lib/{form → base/form}/filed/Switch.js +1 -1
  112. package/lib/{form → base/form}/filed/TagSelect.d.ts +0 -0
  113. package/lib/{form → base/form}/filed/TagSelect.js +1 -1
  114. package/lib/{form → base/form}/filed/TextArea.d.ts +0 -0
  115. package/lib/{form → base/form}/filed/TextArea.js +1 -1
  116. package/lib/{form → base/form}/filed/Upload.d.ts +0 -0
  117. package/lib/{form → base/form}/filed/Upload.js +1 -1
  118. package/lib/{form → base/form}/index.d.ts +0 -0
  119. package/lib/{form → base/form}/index.js +1 -1
  120. package/lib/{grid → base/grid}/Col.d.ts +0 -0
  121. package/lib/{grid → base/grid}/Col.js +1 -1
  122. package/lib/{grid → base/grid}/Row.d.ts +0 -0
  123. package/lib/{grid → base/grid}/Row.js +1 -1
  124. package/lib/{grid → base/grid}/index.d.ts +0 -0
  125. package/lib/{grid → base/grid}/index.js +0 -0
  126. package/lib/{image → base/image}/index.d.ts +0 -0
  127. package/lib/{image → base/image}/index.js +1 -1
  128. package/lib/{input → base/input}/Email.d.ts +0 -0
  129. package/lib/{input → base/input}/Email.js +1 -1
  130. package/lib/{input → base/input}/Number.d.ts +0 -0
  131. package/lib/{input → base/input}/Number.js +1 -1
  132. package/lib/{input → base/input}/Password.d.ts +0 -3
  133. package/lib/{input → base/input}/Password.js +1 -1
  134. package/lib/{input → base/input}/Search.d.ts +0 -3
  135. package/lib/{input → base/input}/Search.js +1 -1
  136. package/lib/{input → base/input}/TextArea.d.ts +0 -3
  137. package/lib/{input → base/input}/TextArea.js +1 -1
  138. package/lib/{input → base/input}/index.d.ts +0 -0
  139. package/lib/base/input/index.js +242 -0
  140. package/lib/{input → base/input}/index.less +0 -0
  141. package/lib/{layout → base/layout}/index.d.ts +0 -0
  142. package/lib/{layout → base/layout}/index.js +1 -1
  143. package/lib/{list → base/list}/index.d.ts +0 -0
  144. package/lib/{list → base/list}/index.js +1 -1
  145. package/lib/{menu → base/menu}/index.d.ts +0 -0
  146. package/lib/base/menu/index.js +247 -0
  147. package/lib/{message → base/message}/index.d.ts +0 -0
  148. package/lib/{message → base/message}/index.js +1 -1
  149. package/lib/{modal → base/modal}/index.d.ts +0 -0
  150. package/lib/{modal → base/modal}/index.js +1 -1
  151. package/lib/{notification → base/notification}/index.d.ts +0 -0
  152. package/lib/{notification → base/notification}/index.js +1 -1
  153. package/lib/{pageHeader → base/pageHeader}/index.d.ts +0 -0
  154. package/lib/{pageHeader → base/pageHeader}/index.js +1 -1
  155. package/lib/{pagination → base/pagination}/index.d.ts +0 -0
  156. package/lib/{pagination → base/pagination}/index.js +1 -1
  157. package/lib/{popconfirm → base/popconfirm}/index.d.ts +0 -0
  158. package/lib/{popconfirm → base/popconfirm}/index.js +1 -1
  159. package/lib/{popover → base/popover}/index.d.ts +0 -0
  160. package/lib/{popover → base/popover}/index.js +1 -1
  161. package/lib/{progress → base/progress}/index.d.ts +0 -0
  162. package/lib/{progress → base/progress}/index.js +1 -1
  163. package/lib/{radio → base/radio}/RadioGroup.d.ts +0 -0
  164. package/lib/base/radio/RadioGroup.js +378 -0
  165. package/lib/{radio → base/radio}/index.d.ts +0 -0
  166. package/lib/{radio → base/radio}/index.js +1 -1
  167. package/lib/{result → base/result}/index.d.ts +0 -0
  168. package/lib/{result → base/result}/index.js +1 -1
  169. package/lib/{select → base/select}/index.d.ts +0 -0
  170. package/lib/base/select/index.js +529 -0
  171. package/lib/{select → base/select}/index.less +0 -0
  172. package/lib/{skeleton → base/skeleton}/index.d.ts +0 -0
  173. package/lib/{skeleton → base/skeleton}/index.js +1 -1
  174. package/lib/{space → base/space}/index.d.ts +0 -0
  175. package/lib/{space → base/space}/index.js +1 -1
  176. package/lib/{spin → base/spin}/index.d.ts +0 -0
  177. package/lib/{spin → base/spin}/index.js +1 -1
  178. package/lib/{statistic → base/statistic}/index.d.ts +0 -0
  179. package/lib/{statistic → base/statistic}/index.js +1 -1
  180. package/lib/{steps → base/steps}/index.d.ts +0 -0
  181. package/lib/{steps → base/steps}/index.js +1 -1
  182. package/lib/{table → base/table}/index.d.ts +10 -2
  183. package/lib/base/table/index.js +902 -0
  184. package/lib/{table → base/table}/index.module.less +22 -0
  185. package/lib/{table → base/table}/resize.module.less +0 -0
  186. package/lib/{tabs → base/tabs}/Tabpane.d.ts +0 -0
  187. package/lib/{tabs → base/tabs}/Tabpane.js +1 -1
  188. package/lib/{tabs → base/tabs}/index.d.ts +0 -0
  189. package/lib/{tabs → base/tabs}/index.js +1 -1
  190. package/lib/{tagSelect → base/tagSelect}/TagSelect.d.ts +0 -0
  191. package/lib/base/tagSelect/TagSelect.js +268 -0
  192. package/lib/{tagSelect → base/tagSelect}/index.d.ts +0 -0
  193. package/lib/base/tagSelect/index.js +188 -0
  194. package/lib/{tagSelect → base/tagSelect}/index.less +0 -0
  195. package/lib/{timeline → base/timeline}/index.d.ts +0 -0
  196. package/lib/{timeline → base/timeline}/index.js +1 -1
  197. package/lib/{tooltip → base/tooltip}/index.d.ts +0 -0
  198. package/lib/{tooltip → base/tooltip}/index.js +1 -1
  199. package/lib/{tree → base/tree}/TreeSearch.d.ts +0 -0
  200. package/lib/base/tree/TreeSearch.js +273 -0
  201. package/lib/{tree → base/tree}/index.d.ts +0 -0
  202. package/lib/base/tree/index.js +307 -0
  203. package/lib/{tree → base/tree}/index.less +0 -0
  204. package/lib/{typography → base/typography}/index.d.ts +0 -0
  205. package/lib/{typography → base/typography}/index.js +1 -1
  206. package/lib/index.d.ts +63 -63
  207. package/lib/index.js +63 -63
  208. package/lib/{pageComponents → page}/BasePage/Form.d.ts +0 -0
  209. package/lib/page/BasePage/Form.js +244 -0
  210. package/lib/{pageComponents → page}/BasePage/index.d.ts +0 -0
  211. package/lib/page/BasePage/index.js +636 -0
  212. package/lib/{pageComponents → page}/BasePage/index.module.less +0 -0
  213. package/lib/utils.d.ts +1 -0
  214. package/lib/utils.js +16 -9
  215. package/package.json +1 -1
  216. package/lib/cascader/index.js +0 -268
  217. package/lib/chart/index.js +0 -353
  218. package/lib/checkbox/CheckboxGroup.js +0 -340
  219. package/lib/common/IconFont.js +0 -17
  220. package/lib/common/TreePanel.js +0 -303
  221. package/lib/common/withZhLocale.js +0 -20
  222. package/lib/datepick/Rangepicker.js +0 -553
  223. package/lib/form/Form.js +0 -415
  224. package/lib/form/filed/Item.js +0 -161
  225. package/lib/input/index.js +0 -242
  226. package/lib/menu/index.js +0 -247
  227. package/lib/pageComponents/BasePage/Form.js +0 -244
  228. package/lib/pageComponents/BasePage/index.js +0 -658
  229. package/lib/radio/RadioGroup.js +0 -378
  230. package/lib/select/index.js +0 -529
  231. package/lib/table/index.js +0 -756
  232. package/lib/tagSelect/TagSelect.js +0 -268
  233. package/lib/tagSelect/index.js +0 -188
  234. package/lib/tree/TreeSearch.js +0 -274
  235. package/lib/tree/index.js +0 -293
@@ -1,529 +0,0 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
-
3
- import "antd/es/select/style/css";
4
- import _Select from "antd/es/select";
5
- var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey", "viewtype"],
6
- _excluded2 = ["children", "store", "data", "onChange", "options", "labelField", "valueField", "defaultStyle", "showGroup", "addData", "deleteData", "valueType"];
7
-
8
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9
-
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
14
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
-
16
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
-
18
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
-
20
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
-
22
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
-
24
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
-
26
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
-
28
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
-
30
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
-
32
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
33
-
34
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
35
-
36
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
37
-
38
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
39
-
40
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
41
-
42
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
43
-
44
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
45
-
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
-
48
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
49
-
50
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
51
-
52
- import React, { PureComponent } from "react";
53
- import Store from "@bj-nsc/msn";
54
- import { utils } from "@bj-nsc/msn/lib/utils";
55
- import config from "../config";
56
- import styles from "./index.less";
57
- import cls from "classnames";
58
- import PinyinMatch from "pinyin-match";
59
- var Option = _Select.Option,
60
- OptGroup = _Select.OptGroup;
61
-
62
- var NSCSelect = /*#__PURE__*/function (_PureComponent) {
63
- _inherits(NSCSelect, _PureComponent);
64
-
65
- var _super = _createSuper(NSCSelect);
66
-
67
- function NSCSelect(props) {
68
- var _this2;
69
-
70
- _classCallCheck(this, NSCSelect);
71
-
72
- _this2 = _super.call(this, props);
73
-
74
- _defineProperty(_assertThisInitialized(_this2), "state", {
75
- dataSource: [],
76
- selectValue: null,
77
- allDataSource: [],
78
- children: null,
79
- allChildren: null
80
- });
81
-
82
- _defineProperty(_assertThisInitialized(_this2), "store", {});
83
-
84
- var data = props.data,
85
- _props$store = props.store,
86
- store = _props$store === void 0 ? {} : _props$store,
87
- children = props.children,
88
- options = props.options,
89
- _props$addData = props.addData,
90
- addData = _props$addData === void 0 ? [] : _props$addData,
91
- _props$deleteData = props.deleteData,
92
- deleteData = _props$deleteData === void 0 ? [] : _props$deleteData;
93
-
94
- var url = store.url,
95
- _store$listeners = store.listeners,
96
- listenersPops = _store$listeners === void 0 ? {} : _store$listeners,
97
- viewname = store.viewname,
98
- cached = store.cached,
99
- cacheKey = store.cacheKey,
100
- _store$viewtype = store.viewtype,
101
- viewtype = _store$viewtype === void 0 ? "system" : _store$viewtype,
102
- stores = _objectWithoutProperties(store, _excluded);
103
-
104
- var valueField = viewname ? "dictKey" : "value";
105
-
106
- var _config = config(),
107
- viewUrl = _config.viewUrl,
108
- viewBizUrl = _config.viewBizUrl;
109
-
110
- var requestViewUrl = viewtype == "system" ? viewUrl : viewBizUrl;
111
-
112
- var getAllData = function getAllData(data) {
113
- if (!Array.isArray(data)) {
114
- return [];
115
- }
116
-
117
- var newData = _toConsumableArray(data);
118
-
119
- if (addData.length > 0) {
120
- newData = [].concat(_toConsumableArray(addData), _toConsumableArray(newData));
121
- }
122
-
123
- if (deleteData.length > 0) {
124
- var spliceData = [];
125
- var valueFields = valueField.split(",");
126
- newData.map(function (item, i) {
127
- var value = "";
128
- valueFields.map(function (v, index) {
129
- value = index == 0 ? value + item[v] : value + "," + item[v];
130
- });
131
-
132
- if (deleteData.indexOf(value) == -1) {
133
- spliceData.push(item);
134
- }
135
- });
136
- return spliceData;
137
- } else {
138
- return newData;
139
- }
140
- };
141
-
142
- if (!children) {
143
- if (!(data || viewname || url || options)) {
144
- throw new Error("url、viewname、data、options不能都为空!");
145
- }
146
-
147
- var _this = _assertThisInitialized(_this2);
148
-
149
- var storeProps = _objectSpread({
150
- model: "model",
151
- component: _assertThisInitialized(_this2),
152
- listeners: {
153
- onBeforeLoad: function onBeforeLoad(store, options) {
154
- utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
155
- },
156
- load: function load(data, modelData, store) {
157
- var newData = getAllData(data);
158
-
159
- _this.setState({
160
- dataSource: newData,
161
- allDataSource: newData
162
- });
163
-
164
- utils.callback(listenersPops.load, _this, [data, modelData, store]);
165
- },
166
- dataChanged: function dataChanged(data, modelData, store) {
167
- var newData = getAllData(data);
168
-
169
- _this.setState({
170
- dataSource: newData,
171
- allDataSource: newData
172
- });
173
-
174
- utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
175
- }
176
- }
177
- }, stores);
178
-
179
- if ((viewname || url) && data == null && options == null) {
180
- var isCached = cached;
181
- var isCacheKey = cacheKey;
182
-
183
- if (viewname) {
184
- if (typeof cached !== "boolean") {
185
- isCached = true;
186
- isCacheKey = isCacheKey ? isCacheKey : viewname;
187
- }
188
- }
189
-
190
- storeProps = _objectSpread(_objectSpread({}, {
191
- autoLoad: true,
192
- url: url || requestViewUrl + viewname,
193
- //读字典,url固定,viewname
194
- cached: isCached,
195
- cacheKey: isCacheKey
196
- }), storeProps);
197
- }
198
-
199
- _this2.store = new Store(storeProps);
200
- }
201
-
202
- return _this2;
203
- }
204
-
205
- _createClass(NSCSelect, [{
206
- key: "resetData",
207
- value: function resetData() {
208
- var children = this.props.children;
209
- var _this$state = this.state,
210
- allDataSource = _this$state.allDataSource,
211
- allChildren = _this$state.allChildren;
212
-
213
- if (children) {
214
- this.setState({
215
- children: allChildren
216
- });
217
- } else {
218
- this.setState({
219
- dataSource: allDataSource
220
- });
221
- }
222
- }
223
- }, {
224
- key: "getData",
225
- value: function getData() {
226
- return this.state.allDataSource;
227
- }
228
- }, {
229
- key: "getValue",
230
- value: function getValue() {
231
- return this.state.selectValue;
232
- }
233
- }, {
234
- key: "setValue",
235
- value: function setValue(value) {
236
- this.setState({
237
- selectValue: value
238
- });
239
- }
240
- }, {
241
- key: "componentDidMount",
242
- value: function componentDidMount() {
243
- var _this$props = this.props,
244
- data = _this$props.data,
245
- options = _this$props.options,
246
- children = _this$props.children;
247
-
248
- if (!children && (data || options)) {
249
- this.setState({
250
- dataSource: data ? data : options,
251
- allDataSource: data ? data : options
252
- });
253
- } else if (children) {
254
- this.setState({
255
- children: children,
256
- allChildren: children
257
- });
258
- }
259
- }
260
- }, {
261
- key: "componentDidUpdate",
262
- value: function componentDidUpdate(newProps, newState, Snapshot) {
263
- var _this$props2 = this.props,
264
- data = _this$props2.data,
265
- options = _this$props2.options,
266
- children = _this$props2.children;
267
- var _this$state2 = this.state,
268
- allDataSource = _this$state2.allDataSource,
269
- allChildren = _this$state2.allChildren;
270
-
271
- if (!children && (data || options)) {
272
- var newData = data ? data : options;
273
-
274
- if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {
275
- this.setState({
276
- dataSource: newData,
277
- allDataSource: newData
278
- });
279
- }
280
- } else if (children && Array.isArray(children)) {
281
- var stateChildrenProps = [];
282
- allChildren.map(function (s) {
283
- stateChildrenProps.push(s.props);
284
- });
285
- var childrenProps = [];
286
- children.map(function (c) {
287
- childrenProps.push(c.props);
288
- });
289
-
290
- if (JSON.stringify(stateChildrenProps) !== JSON.stringify(childrenProps)) {
291
- this.setState({
292
- children: children,
293
- allChildren: children
294
- });
295
- }
296
- }
297
- }
298
- }, {
299
- key: "onSearch",
300
- value: function onSearch(value) {
301
- var _this$state3 = this.state,
302
- allDataSource = _this$state3.allDataSource,
303
- allChildren = _this$state3.allChildren;
304
- var _this$props3 = this.props,
305
- _this$props3$filterOp = _this$props3.filterOption,
306
- filterOption = _this$props3$filterOp === void 0 ? true : _this$props3$filterOp,
307
- onSearch = _this$props3.onSearch,
308
- children = _this$props3.children,
309
- _this$props3$store = _this$props3.store,
310
- store = _this$props3$store === void 0 ? {} : _this$props3$store;
311
- var viewname = store.viewname;
312
- var labelField = viewname ? "dictValue" : "label";
313
-
314
- if (filterOption) {
315
- var result = [];
316
-
317
- if (!children) {
318
- if (value) {
319
- allDataSource.forEach(function (item) {
320
- var label = "";
321
-
322
- if (labelField.split(",").length == 1) {
323
- label = item[labelField];
324
- } else {
325
- var labelFields = labelField.split(",");
326
- labelFields.map(function (l, index) {
327
- label = index == 0 ? label + item[l] : label + "-" + item[l];
328
- });
329
- }
330
-
331
- var flag = PinyinMatch.match(label, value);
332
-
333
- if (flag) {
334
- result.push(item);
335
- }
336
- });
337
- this.setState({
338
- dataSource: result
339
- });
340
- } else {
341
- this.setState({
342
- dataSource: allDataSource
343
- });
344
- }
345
- } else {
346
- if (value) {
347
- if (Array.isArray(allChildren)) {
348
- allChildren.map(function (child, index) {
349
- var _child$props;
350
-
351
- var label = child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children;
352
- var flag = PinyinMatch.match(label, value);
353
-
354
- if (flag) {
355
- result.push(child);
356
- }
357
- });
358
- }
359
-
360
- this.setState({
361
- children: result
362
- });
363
- } else {
364
- this.setState({
365
- children: children
366
- });
367
- }
368
- }
369
- }
370
-
371
- onSearch && onSearch(value);
372
- }
373
- }, {
374
- key: "renderOption",
375
- value: function renderOption(optionData) {
376
- var _this$props4 = this.props,
377
- _this$props4$store = _this$props4.store,
378
- store = _this$props4$store === void 0 ? {} : _this$props4$store,
379
- _this$props4$valueTyp = _this$props4.valueType,
380
- valueType = _this$props4$valueTyp === void 0 ? "string" : _this$props4$valueTyp;
381
- var viewname = store.viewname;
382
- var valueField = viewname ? "dictKey" : "value";
383
- var labelField = viewname ? "dictValue" : "label";
384
- return optionData.map(function (item) {
385
- var value;
386
-
387
- if (valueField.split(",").length == 1) {
388
- value = valueType === "number" ? Number(item[valueField]) : item[valueField] + "";
389
- } else {
390
- var valueFields = valueField.split(",");
391
- valueFields.map(function (v, index) {
392
- value = index == 0 ? value + item[v] : value + "," + item[v];
393
- });
394
- }
395
-
396
- var key = item.id ? item.id !== "undefined" ? item.id : value : value;
397
- var label = "";
398
-
399
- if (labelField.split(",").length == 1) {
400
- label = item[labelField];
401
- } else {
402
- var labelFields = labelField.split(",");
403
- labelFields.map(function (l, index) {
404
- label = index == 0 ? label + item[l] : label + "-" + item[l];
405
- });
406
- }
407
-
408
- return /*#__PURE__*/React.createElement(Option, {
409
- key: key,
410
- value: value,
411
- label: label,
412
- disabled: item.disabled ? true : false
413
- }, label);
414
- });
415
- }
416
- }, {
417
- key: "renderChildren",
418
- value: function renderChildren() {
419
- var _this3 = this;
420
-
421
- var _this$props$showGroup = this.props.showGroup,
422
- showGroup = _this$props$showGroup === void 0 ? true : _this$props$showGroup;
423
- var _this$state4 = this.state,
424
- dataSource = _this$state4.dataSource,
425
- children = _this$state4.children;
426
-
427
- if (children) {
428
- return /*#__PURE__*/React.createElement(React.Fragment, null, children);
429
- } else {
430
- var optGroupData = {},
431
- optionData = [];
432
- dataSource.forEach(function (item) {
433
- var label = item.groupName;
434
-
435
- if (label && showGroup) {
436
- if (!optGroupData[label]) optGroupData[label] = [];
437
- optGroupData[label].push(item);
438
- } else {
439
- optionData.push(item);
440
- }
441
- });
442
- var option = this.renderOption(optionData);
443
- var optGroup = Object.keys(optGroupData).map(function (key) {
444
- return /*#__PURE__*/React.createElement(OptGroup, {
445
- key: key,
446
- label: key
447
- }, _this3.renderOption(optGroupData[key]));
448
- });
449
- return /*#__PURE__*/React.createElement(React.Fragment, null, option, optGroup);
450
- }
451
- }
452
- }, {
453
- key: "onChange",
454
- value: function onChange(value, options) {
455
- var onChange = this.props.onChange;
456
- this.setState({
457
- selectValue: value
458
- });
459
-
460
- if (onChange) {
461
- onChange(value, options);
462
- }
463
- }
464
- }, {
465
- key: "onDropdownVisibleChange",
466
- value: function onDropdownVisibleChange(open) {
467
- if (!open) {
468
- this.resetData();
469
- }
470
- }
471
- }, {
472
- key: "render",
473
- value: function render() {
474
- var _this$props5 = this.props,
475
- children = _this$props5.children,
476
- store = _this$props5.store,
477
- data = _this$props5.data,
478
- onChange = _this$props5.onChange,
479
- options = _this$props5.options,
480
- labelField = _this$props5.labelField,
481
- valueField = _this$props5.valueField,
482
- defaultStyle = _this$props5.defaultStyle,
483
- _this$props5$showGrou = _this$props5.showGroup,
484
- showGroup = _this$props5$showGrou === void 0 ? true : _this$props5$showGrou,
485
- addData = _this$props5.addData,
486
- deleteData = _this$props5.deleteData,
487
- valueType = _this$props5.valueType,
488
- params = _objectWithoutProperties(_this$props5, _excluded2);
489
-
490
- var props = {
491
- filterOption: false,
492
- showSearch: true,
493
- optionFilterProp: "label",
494
- placeholder: "请选择",
495
- allowClear: true
496
- };
497
-
498
- var _config2 = config(),
499
- antdStyle = _config2.antdStyle;
500
-
501
- if ((defaultStyle || antdStyle) && defaultStyle === true) {
502
- return /*#__PURE__*/React.createElement("div", {
503
- className: cls(styles["nsc_select"], this.props.className)
504
- }, /*#__PURE__*/React.createElement(_Select, _extends({
505
- value: this.state.selectValue,
506
- onChange: this.onChange.bind(this),
507
- onSearch: this.onSearch.bind(this),
508
- onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
509
- }, props, params), this.renderChildren()));
510
- } else {
511
- return /*#__PURE__*/React.createElement(_Select, _extends({
512
- value: this.state.selectValue,
513
- onSearch: this.onSearch.bind(this),
514
- onChange: this.onChange.bind(this),
515
- onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
516
- }, props, params), this.renderChildren());
517
- }
518
- }
519
- }]);
520
-
521
- return NSCSelect;
522
- }(PureComponent);
523
-
524
- _defineProperty(NSCSelect, "Option", Option);
525
-
526
- _defineProperty(NSCSelect, "OptGroup", OptGroup);
527
-
528
- export { NSCSelect as default };
529
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsImNscyIsIlBpbnlpbk1hdGNoIiwiT3B0aW9uIiwiT3B0R3JvdXAiLCJOU0NTZWxlY3QiLCJwcm9wcyIsImRhdGFTb3VyY2UiLCJzZWxlY3RWYWx1ZSIsImFsbERhdGFTb3VyY2UiLCJjaGlsZHJlbiIsImFsbENoaWxkcmVuIiwiZGF0YSIsInN0b3JlIiwib3B0aW9ucyIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInZpZXduYW1lIiwiY2FjaGVkIiwiY2FjaGVLZXkiLCJ2aWV3dHlwZSIsInN0b3JlcyIsInZhbHVlRmllbGQiLCJ2aWV3VXJsIiwidmlld0JpelVybCIsInJlcXVlc3RWaWV3VXJsIiwiZ2V0QWxsRGF0YSIsIkFycmF5IiwiaXNBcnJheSIsIm5ld0RhdGEiLCJsZW5ndGgiLCJzcGxpY2VEYXRhIiwidmFsdWVGaWVsZHMiLCJzcGxpdCIsIm1hcCIsIml0ZW0iLCJpIiwidmFsdWUiLCJ2IiwiaW5kZXgiLCJpbmRleE9mIiwicHVzaCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJtb2RlbERhdGEiLCJzZXRTdGF0ZSIsImRhdGFDaGFuZ2VkIiwiaXNDYWNoZWQiLCJpc0NhY2hlS2V5IiwiYXV0b0xvYWQiLCJzdGF0ZSIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJmaWx0ZXJPcHRpb24iLCJvblNlYXJjaCIsImxhYmVsRmllbGQiLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJ2YWx1ZVR5cGUiLCJOdW1iZXIiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJvcGVuIiwicmVzZXREYXRhIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJhbnRkU3R5bGUiLCJjbGFzc05hbWUiLCJiaW5kIiwib25Ecm9wZG93blZpc2libGVDaGFuZ2UiLCJyZW5kZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFFQSxPQUFPQyxLQUFQLE1BQWtDLGFBQWxDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLE9BQU9DLEdBQVAsTUFBZ0IsWUFBaEI7QUFFQSxPQUFPQyxXQUFQLE1BQXdCLGNBQXhCO0FBQ0EsSUFBUUMsTUFBUixXQUFRQSxNQUFSO0FBQUEsSUFBZ0JDLFFBQWhCLFdBQWdCQSxRQUFoQjs7SUFlcUJDLFM7Ozs7O0FBV25CLHFCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLCtCQUFNQSxLQUFOOztBQURpQiw2REFSWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxNQUFBQSxXQUFXLEVBQUUsSUFGUDtBQUdOQyxNQUFBQSxhQUFhLEVBQUUsRUFIVDtBQUlOQyxNQUFBQSxRQUFRLEVBQUUsSUFKSjtBQUtOQyxNQUFBQSxXQUFXLEVBQUU7QUFMUCxLQVFXOztBQUFBLDZEQURYLEVBQ1c7O0FBRWpCLFFBQ0VDLElBREYsR0FPSU4sS0FQSixDQUNFTSxJQURGO0FBQUEsdUJBT0lOLEtBUEosQ0FFRU8sS0FGRjtBQUFBLFFBRUVBLEtBRkYsNkJBRVUsRUFGVjtBQUFBLFFBR0VILFFBSEYsR0FPSUosS0FQSixDQUdFSSxRQUhGO0FBQUEsUUFJRUksT0FKRixHQU9JUixLQVBKLENBSUVRLE9BSkY7QUFBQSx5QkFPSVIsS0FQSixDQUtFUyxPQUxGO0FBQUEsUUFLRUEsT0FMRiwrQkFLWSxFQUxaO0FBQUEsNEJBT0lULEtBUEosQ0FNRVUsVUFORjtBQUFBLFFBTUVBLFVBTkYsa0NBTWUsRUFOZjs7QUFRQSxRQUNFQyxHQURGLEdBUUlKLEtBUkosQ0FDRUksR0FERjtBQUFBLDJCQVFJSixLQVJKLENBRUVLLFNBRkY7QUFBQSxRQUVhQyxhQUZiLGlDQUU2QixFQUY3QjtBQUFBLFFBR0VDLFFBSEYsR0FRSVAsS0FSSixDQUdFTyxRQUhGO0FBQUEsUUFJRUMsTUFKRixHQVFJUixLQVJKLENBSUVRLE1BSkY7QUFBQSxRQUtFQyxRQUxGLEdBUUlULEtBUkosQ0FLRVMsUUFMRjtBQUFBLDBCQVFJVCxLQVJKLENBTUVVLFFBTkY7QUFBQSxRQU1FQSxRQU5GLGdDQU1hLFFBTmI7QUFBQSxRQU9LQyxNQVBMLDRCQVFJWCxLQVJKOztBQVNBLFFBQU1ZLFVBQVUsR0FBR0wsUUFBUSxHQUFHLFNBQUgsR0FBZSxPQUExQzs7QUFDQSxrQkFBOEJyQixNQUFNLEVBQXBDO0FBQUEsUUFBTTJCLE9BQU4sV0FBTUEsT0FBTjtBQUFBLFFBQWVDLFVBQWYsV0FBZUEsVUFBZjs7QUFDQSxRQUFJQyxjQUFjLEdBQUdMLFFBQVEsSUFBSSxRQUFaLEdBQXVCRyxPQUF2QixHQUFpQ0MsVUFBdEQ7O0FBQ0EsUUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ2pCLElBQUQsRUFBVTtBQUMzQixVQUFJLENBQUNrQixLQUFLLENBQUNDLE9BQU4sQ0FBY25CLElBQWQsQ0FBTCxFQUEwQjtBQUN4QixlQUFPLEVBQVA7QUFDRDs7QUFDRCxVQUFJb0IsT0FBTyxzQkFBT3BCLElBQVAsQ0FBWDs7QUFDQSxVQUFJRyxPQUFPLENBQUNrQixNQUFSLEdBQWlCLENBQXJCLEVBQXdCO0FBQ3RCRCxRQUFBQSxPQUFPLGdDQUFPakIsT0FBUCxzQkFBbUJpQixPQUFuQixFQUFQO0FBQ0Q7O0FBQ0QsVUFBSWhCLFVBQVUsQ0FBQ2lCLE1BQVgsR0FBb0IsQ0FBeEIsRUFBMkI7QUFDekIsWUFBSUMsVUFBVSxHQUFHLEVBQWpCO0FBQ0EsWUFBTUMsV0FBZ0IsR0FBR1YsVUFBVSxDQUFDVyxLQUFYLENBQWlCLEdBQWpCLENBQXpCO0FBQ0FKLFFBQUFBLE9BQU8sQ0FBQ0ssR0FBUixDQUFZLFVBQUNDLElBQUQsRUFBT0MsQ0FBUCxFQUFhO0FBQ3ZCLGNBQUlDLEtBQUssR0FBRyxFQUFaO0FBQ0FMLFVBQUFBLFdBQVcsQ0FBQ0UsR0FBWixDQUFnQixVQUFDSSxDQUFELEVBQUlDLEtBQUosRUFBYztBQUM1QkYsWUFBQUEsS0FBSyxHQUFHRSxLQUFLLElBQUksQ0FBVCxHQUFhRixLQUFLLEdBQUdGLElBQUksQ0FBQ0csQ0FBRCxDQUF6QixHQUErQkQsS0FBSyxHQUFHLEdBQVIsR0FBY0YsSUFBSSxDQUFDRyxDQUFELENBQXpEO0FBQ0QsV0FGRDs7QUFHQSxjQUFJekIsVUFBVSxDQUFDMkIsT0FBWCxDQUFtQkgsS0FBbkIsS0FBNkIsQ0FBQyxDQUFsQyxFQUFxQztBQUNuQ04sWUFBQUEsVUFBVSxDQUFDVSxJQUFYLENBQWdCTixJQUFoQjtBQUNEO0FBQ0YsU0FSRDtBQVNBLGVBQU9KLFVBQVA7QUFDRCxPQWJELE1BYU87QUFDTCxlQUFPRixPQUFQO0FBQ0Q7QUFDRixLQXhCRDs7QUF5QkEsUUFBSSxDQUFDdEIsUUFBTCxFQUFlO0FBQ2IsVUFBSSxFQUFFRSxJQUFJLElBQUlRLFFBQVIsSUFBb0JILEdBQXBCLElBQTJCSCxPQUE3QixDQUFKLEVBQTJDO0FBQ3pDLGNBQU0sSUFBSStCLEtBQUosQ0FBVSxpQ0FBVixDQUFOO0FBQ0Q7O0FBQ0QsVUFBSUMsS0FBSyxpQ0FBVDs7QUFDQSxVQUFJQyxVQUFVO0FBQ1pDLFFBQUFBLEtBQUssRUFBRSxPQURLO0FBRVpDLFFBQUFBLFNBQVMsZ0NBRkc7QUFHWi9CLFFBQUFBLFNBQVMsRUFBRTtBQUNUZ0MsVUFBQUEsWUFBWSxFQUFFLHNCQUFVckMsS0FBVixFQUFpQkMsT0FBakIsRUFBMEI7QUFDdENoQixZQUFBQSxLQUFLLENBQUNxRCxRQUFOLENBQWVoQyxhQUFhLENBQUMrQixZQUE3QixFQUEyQ0osS0FBM0MsRUFBa0QsQ0FBQ2pDLEtBQUQsRUFBUUMsT0FBUixDQUFsRDtBQUNELFdBSFE7QUFJVHNDLFVBQUFBLElBQUksRUFBRSxjQUFVeEMsSUFBVixFQUFnQnlDLFNBQWhCLEVBQTJCeEMsS0FBM0IsRUFBa0M7QUFDdEMsZ0JBQU1tQixPQUFPLEdBQUdILFVBQVUsQ0FBQ2pCLElBQUQsQ0FBMUI7O0FBQ0FrQyxZQUFBQSxLQUFLLENBQUNRLFFBQU4sQ0FBZTtBQUFFL0MsY0FBQUEsVUFBVSxFQUFFeUIsT0FBZDtBQUF1QnZCLGNBQUFBLGFBQWEsRUFBRXVCO0FBQXRDLGFBQWY7O0FBQ0FsQyxZQUFBQSxLQUFLLENBQUNxRCxRQUFOLENBQWVoQyxhQUFhLENBQUNpQyxJQUE3QixFQUFtQ04sS0FBbkMsRUFBMEMsQ0FBQ2xDLElBQUQsRUFBT3lDLFNBQVAsRUFBa0J4QyxLQUFsQixDQUExQztBQUNELFdBUlE7QUFTVDBDLFVBQUFBLFdBQVcsRUFBRSxxQkFBVTNDLElBQVYsRUFBZ0J5QyxTQUFoQixFQUEyQnhDLEtBQTNCLEVBQWtDO0FBQzdDLGdCQUFNbUIsT0FBTyxHQUFHSCxVQUFVLENBQUNqQixJQUFELENBQTFCOztBQUNBa0MsWUFBQUEsS0FBSyxDQUFDUSxRQUFOLENBQWU7QUFBRS9DLGNBQUFBLFVBQVUsRUFBRXlCLE9BQWQ7QUFBdUJ2QixjQUFBQSxhQUFhLEVBQUV1QjtBQUF0QyxhQUFmOztBQUNBbEMsWUFBQUEsS0FBSyxDQUFDcUQsUUFBTixDQUFlaEMsYUFBYSxDQUFDb0MsV0FBN0IsRUFBMENULEtBQTFDLEVBQWlELENBQy9DbEMsSUFEK0MsRUFFL0N5QyxTQUYrQyxFQUcvQ3hDLEtBSCtDLENBQWpEO0FBS0Q7QUFqQlE7QUFIQyxTQXNCVFcsTUF0QlMsQ0FBZDs7QUF3QkEsVUFBSSxDQUFDSixRQUFRLElBQUlILEdBQWIsS0FBcUJMLElBQUksSUFBSSxJQUE3QixJQUFxQ0UsT0FBTyxJQUFJLElBQXBELEVBQTBEO0FBQ3hELFlBQUkwQyxRQUFRLEdBQUduQyxNQUFmO0FBQ0EsWUFBSW9DLFVBQVUsR0FBR25DLFFBQWpCOztBQUNBLFlBQUlGLFFBQUosRUFBYztBQUNaLGNBQUksT0FBT0MsTUFBUCxLQUFrQixTQUF0QixFQUFpQztBQUMvQm1DLFlBQUFBLFFBQVEsR0FBRyxJQUFYO0FBQ0FDLFlBQUFBLFVBQVUsR0FBR0EsVUFBVSxHQUFHQSxVQUFILEdBQWdCckMsUUFBdkM7QUFDRDtBQUNGOztBQUVEMkIsUUFBQUEsVUFBVSxtQ0FDTDtBQUNEVyxVQUFBQSxRQUFRLEVBQUUsSUFEVDtBQUVEekMsVUFBQUEsR0FBRyxFQUFFQSxHQUFHLElBQUlXLGNBQWMsR0FBR1IsUUFGNUI7QUFFc0M7QUFDdkNDLFVBQUFBLE1BQU0sRUFBRW1DLFFBSFA7QUFJRGxDLFVBQUFBLFFBQVEsRUFBRW1DO0FBSlQsU0FESyxHQU9MVixVQVBLLENBQVY7QUFTRDs7QUFDRCxhQUFLbEMsS0FBTCxHQUFhLElBQUloQixLQUFKLENBQVVrRCxVQUFWLENBQWI7QUFDRDs7QUFqR2dCO0FBa0dsQjs7OztXQUVELHFCQUFZO0FBQ1YsVUFBUXJDLFFBQVIsR0FBcUIsS0FBS0osS0FBMUIsQ0FBUUksUUFBUjtBQUNBLHdCQUF1QyxLQUFLaUQsS0FBNUM7QUFBQSxVQUFRbEQsYUFBUixlQUFRQSxhQUFSO0FBQUEsVUFBdUJFLFdBQXZCLGVBQXVCQSxXQUF2Qjs7QUFDQSxVQUFJRCxRQUFKLEVBQWM7QUFDWixhQUFLNEMsUUFBTCxDQUFjO0FBQUU1QyxVQUFBQSxRQUFRLEVBQUVDO0FBQVosU0FBZDtBQUNELE9BRkQsTUFFTztBQUNMLGFBQUsyQyxRQUFMLENBQWM7QUFDWi9DLFVBQUFBLFVBQVUsRUFBRUU7QUFEQSxTQUFkO0FBR0Q7QUFDRjs7O1dBRUQsbUJBQVU7QUFDUixhQUFPLEtBQUtrRCxLQUFMLENBQVdsRCxhQUFsQjtBQUNEOzs7V0FFRCxvQkFBVztBQUNULGFBQU8sS0FBS2tELEtBQUwsQ0FBV25ELFdBQWxCO0FBQ0Q7OztXQUNELGtCQUFTZ0MsS0FBVCxFQUFnQjtBQUNkLFdBQUtjLFFBQUwsQ0FBYztBQUNaOUMsUUFBQUEsV0FBVyxFQUFFZ0M7QUFERCxPQUFkO0FBR0Q7OztXQUVELDZCQUFvQjtBQUNsQix3QkFBb0MsS0FBS2xDLEtBQXpDO0FBQUEsVUFBUU0sSUFBUixlQUFRQSxJQUFSO0FBQUEsVUFBY0UsT0FBZCxlQUFjQSxPQUFkO0FBQUEsVUFBdUJKLFFBQXZCLGVBQXVCQSxRQUF2Qjs7QUFDQSxVQUFJLENBQUNBLFFBQUQsS0FBY0UsSUFBSSxJQUFJRSxPQUF0QixDQUFKLEVBQW9DO0FBQ2xDLGFBQUt3QyxRQUFMLENBQWM7QUFDWi9DLFVBQUFBLFVBQVUsRUFBRUssSUFBSSxHQUFHQSxJQUFILEdBQVVFLE9BRGQ7QUFFWkwsVUFBQUEsYUFBYSxFQUFFRyxJQUFJLEdBQUdBLElBQUgsR0FBVUU7QUFGakIsU0FBZDtBQUlELE9BTEQsTUFLTyxJQUFJSixRQUFKLEVBQWM7QUFDbkIsYUFBSzRDLFFBQUwsQ0FBYztBQUNaNUMsVUFBQUEsUUFBUSxFQUFFQSxRQURFO0FBRVpDLFVBQUFBLFdBQVcsRUFBRUQ7QUFGRCxTQUFkO0FBSUQ7QUFDRjs7O1dBQ0QsNEJBQW1Ca0QsUUFBbkIsRUFBNkJDLFFBQTdCLEVBQXVDQyxRQUF2QyxFQUFpRDtBQUMvQyx5QkFBb0MsS0FBS3hELEtBQXpDO0FBQUEsVUFBUU0sSUFBUixnQkFBUUEsSUFBUjtBQUFBLFVBQWNFLE9BQWQsZ0JBQWNBLE9BQWQ7QUFBQSxVQUF1QkosUUFBdkIsZ0JBQXVCQSxRQUF2QjtBQUNBLHlCQUF1QyxLQUFLaUQsS0FBNUM7QUFBQSxVQUFRbEQsYUFBUixnQkFBUUEsYUFBUjtBQUFBLFVBQXVCRSxXQUF2QixnQkFBdUJBLFdBQXZCOztBQUNBLFVBQUksQ0FBQ0QsUUFBRCxLQUFjRSxJQUFJLElBQUlFLE9BQXRCLENBQUosRUFBb0M7QUFDbEMsWUFBTWtCLE9BQU8sR0FBR3BCLElBQUksR0FBR0EsSUFBSCxHQUFVRSxPQUE5Qjs7QUFDQSxZQUFJaUQsSUFBSSxDQUFDQyxTQUFMLENBQWV2RCxhQUFmLE1BQWtDc0QsSUFBSSxDQUFDQyxTQUFMLENBQWVoQyxPQUFmLENBQXRDLEVBQStEO0FBQzdELGVBQUtzQixRQUFMLENBQWM7QUFDWi9DLFlBQUFBLFVBQVUsRUFBRXlCLE9BREE7QUFFWnZCLFlBQUFBLGFBQWEsRUFBRXVCO0FBRkgsV0FBZDtBQUlEO0FBQ0YsT0FSRCxNQVFPLElBQUl0QixRQUFRLElBQUlvQixLQUFLLENBQUNDLE9BQU4sQ0FBY3JCLFFBQWQsQ0FBaEIsRUFBeUM7QUFDOUMsWUFBTXVELGtCQUF1QixHQUFHLEVBQWhDO0FBQ0F0RCxRQUFBQSxXQUFXLENBQUMwQixHQUFaLENBQWdCLFVBQUM2QixDQUFELEVBQVk7QUFDMUJELFVBQUFBLGtCQUFrQixDQUFDckIsSUFBbkIsQ0FBd0JzQixDQUFDLENBQUM1RCxLQUExQjtBQUNELFNBRkQ7QUFHQSxZQUFNNkQsYUFBa0IsR0FBRyxFQUEzQjtBQUNBekQsUUFBQUEsUUFBUSxDQUFDMkIsR0FBVCxDQUFhLFVBQUMrQixDQUFELEVBQVk7QUFDdkJELFVBQUFBLGFBQWEsQ0FBQ3ZCLElBQWQsQ0FBbUJ3QixDQUFDLENBQUM5RCxLQUFyQjtBQUNELFNBRkQ7O0FBR0EsWUFDRXlELElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxrQkFBZixNQUF1Q0YsSUFBSSxDQUFDQyxTQUFMLENBQWVHLGFBQWYsQ0FEekMsRUFFRTtBQUNBLGVBQUtiLFFBQUwsQ0FBYztBQUNaNUMsWUFBQUEsUUFBUSxFQUFFQSxRQURFO0FBRVpDLFlBQUFBLFdBQVcsRUFBRUQ7QUFGRCxXQUFkO0FBSUQ7QUFDRjtBQUNGOzs7V0FDRCxrQkFBUzhCLEtBQVQsRUFBZ0I7QUFDZCx5QkFBdUMsS0FBS21CLEtBQTVDO0FBQUEsVUFBUWxELGFBQVIsZ0JBQVFBLGFBQVI7QUFBQSxVQUF1QkUsV0FBdkIsZ0JBQXVCQSxXQUF2QjtBQUNBLHlCQUFnRSxLQUFLTCxLQUFyRTtBQUFBLCtDQUFRK0QsWUFBUjtBQUFBLFVBQVFBLFlBQVIsc0NBQXVCLElBQXZCO0FBQUEsVUFBNkJDLFFBQTdCLGdCQUE2QkEsUUFBN0I7QUFBQSxVQUF1QzVELFFBQXZDLGdCQUF1Q0EsUUFBdkM7QUFBQSw0Q0FBaURHLEtBQWpEO0FBQUEsVUFBaURBLEtBQWpELG1DQUF5RCxFQUF6RDtBQUNBLFVBQVFPLFFBQVIsR0FBcUJQLEtBQXJCLENBQVFPLFFBQVI7QUFDQSxVQUFJbUQsVUFBVSxHQUFHbkQsUUFBUSxHQUFHLFdBQUgsR0FBaUIsT0FBMUM7O0FBQ0EsVUFBSWlELFlBQUosRUFBa0I7QUFDaEIsWUFBSUcsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsWUFBSSxDQUFDOUQsUUFBTCxFQUFlO0FBQ2IsY0FBSThCLEtBQUosRUFBVztBQUNUL0IsWUFBQUEsYUFBYSxDQUFDZ0UsT0FBZCxDQUFzQixVQUFDbkMsSUFBRCxFQUFVO0FBQzlCLGtCQUFJb0MsS0FBSyxHQUFHLEVBQVo7O0FBQ0Esa0JBQUlILFVBQVUsQ0FBQ25DLEtBQVgsQ0FBaUIsR0FBakIsRUFBc0JILE1BQXRCLElBQWdDLENBQXBDLEVBQXVDO0FBQ3JDeUMsZ0JBQUFBLEtBQUssR0FBR3BDLElBQUksQ0FBQ2lDLFVBQUQsQ0FBWjtBQUNELGVBRkQsTUFFTztBQUNMLG9CQUFNSSxXQUFnQixHQUFHSixVQUFVLENBQUNuQyxLQUFYLENBQWlCLEdBQWpCLENBQXpCO0FBQ0F1QyxnQkFBQUEsV0FBVyxDQUFDdEMsR0FBWixDQUFnQixVQUFDdUMsQ0FBRCxFQUFJbEMsS0FBSixFQUFjO0FBQzVCZ0Msa0JBQUFBLEtBQUssR0FBR2hDLEtBQUssSUFBSSxDQUFULEdBQWFnQyxLQUFLLEdBQUdwQyxJQUFJLENBQUNzQyxDQUFELENBQXpCLEdBQStCRixLQUFLLEdBQUcsR0FBUixHQUFjcEMsSUFBSSxDQUFDc0MsQ0FBRCxDQUF6RDtBQUNELGlCQUZEO0FBR0Q7O0FBQ0Qsa0JBQUlDLElBQUksR0FBRzNFLFdBQVcsQ0FBQzRFLEtBQVosQ0FBa0JKLEtBQWxCLEVBQXlCbEMsS0FBekIsQ0FBWDs7QUFDQSxrQkFBSXFDLElBQUosRUFBVTtBQUNSTCxnQkFBQUEsTUFBTSxDQUFDNUIsSUFBUCxDQUFZTixJQUFaO0FBQ0Q7QUFDRixhQWREO0FBZUEsaUJBQUtnQixRQUFMLENBQWM7QUFDWi9DLGNBQUFBLFVBQVUsRUFBRWlFO0FBREEsYUFBZDtBQUdELFdBbkJELE1BbUJPO0FBQ0wsaUJBQUtsQixRQUFMLENBQWM7QUFDWi9DLGNBQUFBLFVBQVUsRUFBRUU7QUFEQSxhQUFkO0FBR0Q7QUFDRixTQXpCRCxNQXlCTztBQUNMLGNBQUkrQixLQUFKLEVBQVc7QUFDVCxnQkFBSVYsS0FBSyxDQUFDQyxPQUFOLENBQWNwQixXQUFkLENBQUosRUFBZ0M7QUFDOUJBLGNBQUFBLFdBQVcsQ0FBQzBCLEdBQVosQ0FBZ0IsVUFBQzBDLEtBQUQsRUFBYXJDLEtBQWIsRUFBdUI7QUFBQTs7QUFDckMsb0JBQUlnQyxLQUFLLEdBQUdLLEtBQUgsYUFBR0EsS0FBSCx1Q0FBR0EsS0FBSyxDQUFFekUsS0FBVixpREFBRyxhQUFjSSxRQUExQjtBQUNBLG9CQUFJbUUsSUFBSSxHQUFHM0UsV0FBVyxDQUFDNEUsS0FBWixDQUFrQkosS0FBbEIsRUFBeUJsQyxLQUF6QixDQUFYOztBQUNBLG9CQUFJcUMsSUFBSixFQUFVO0FBQ1JMLGtCQUFBQSxNQUFNLENBQUM1QixJQUFQLENBQVltQyxLQUFaO0FBQ0Q7QUFDRixlQU5EO0FBT0Q7O0FBQ0QsaUJBQUt6QixRQUFMLENBQWM7QUFDWjVDLGNBQUFBLFFBQVEsRUFBRThEO0FBREUsYUFBZDtBQUdELFdBYkQsTUFhTztBQUNMLGlCQUFLbEIsUUFBTCxDQUFjO0FBQ1o1QyxjQUFBQSxRQUFRLEVBQUVBO0FBREUsYUFBZDtBQUdEO0FBQ0Y7QUFDRjs7QUFDRDRELE1BQUFBLFFBQVEsSUFBSUEsUUFBUSxDQUFDOUIsS0FBRCxDQUFwQjtBQUNEOzs7V0FDRCxzQkFBYXdDLFVBQWIsRUFBeUI7QUFDdkIseUJBQTJDLEtBQUsxRSxLQUFoRDtBQUFBLDRDQUFNTyxLQUFOO0FBQUEsVUFBTUEsS0FBTixtQ0FBYyxFQUFkO0FBQUEsK0NBQWtCb0UsU0FBbEI7QUFBQSxVQUFrQkEsU0FBbEIsc0NBQThCLFFBQTlCO0FBQ0EsVUFBUTdELFFBQVIsR0FBcUJQLEtBQXJCLENBQVFPLFFBQVI7QUFDQSxVQUFNSyxVQUFVLEdBQUdMLFFBQVEsR0FBRyxTQUFILEdBQWUsT0FBMUM7QUFDQSxVQUFNbUQsVUFBVSxHQUFHbkQsUUFBUSxHQUFHLFdBQUgsR0FBaUIsT0FBNUM7QUFDQSxhQUFPNEQsVUFBVSxDQUFDM0MsR0FBWCxDQUFlLFVBQUNDLElBQUQsRUFBVTtBQUM5QixZQUFJRSxLQUFKOztBQUNBLFlBQUlmLFVBQVUsQ0FBQ1csS0FBWCxDQUFpQixHQUFqQixFQUFzQkgsTUFBdEIsSUFBZ0MsQ0FBcEMsRUFBdUM7QUFDckNPLFVBQUFBLEtBQUssR0FDSHlDLFNBQVMsS0FBSyxRQUFkLEdBQ0lDLE1BQU0sQ0FBQzVDLElBQUksQ0FBQ2IsVUFBRCxDQUFMLENBRFYsR0FFSWEsSUFBSSxDQUFDYixVQUFELENBQUosR0FBbUIsRUFIekI7QUFJRCxTQUxELE1BS087QUFDTCxjQUFNVSxXQUFnQixHQUFHVixVQUFVLENBQUNXLEtBQVgsQ0FBaUIsR0FBakIsQ0FBekI7QUFDQUQsVUFBQUEsV0FBVyxDQUFDRSxHQUFaLENBQWdCLFVBQUNJLENBQUQsRUFBSUMsS0FBSixFQUFjO0FBQzVCRixZQUFBQSxLQUFLLEdBQUdFLEtBQUssSUFBSSxDQUFULEdBQWFGLEtBQUssR0FBR0YsSUFBSSxDQUFDRyxDQUFELENBQXpCLEdBQStCRCxLQUFLLEdBQUcsR0FBUixHQUFjRixJQUFJLENBQUNHLENBQUQsQ0FBekQ7QUFDRCxXQUZEO0FBR0Q7O0FBQ0QsWUFBSTBDLEdBQUcsR0FBRzdDLElBQUksQ0FBQzhDLEVBQUwsR0FBVzlDLElBQUksQ0FBQzhDLEVBQUwsS0FBWSxXQUFaLEdBQTBCOUMsSUFBSSxDQUFDOEMsRUFBL0IsR0FBb0M1QyxLQUEvQyxHQUF3REEsS0FBbEU7QUFDQSxZQUFJa0MsS0FBSyxHQUFHLEVBQVo7O0FBQ0EsWUFBSUgsVUFBVSxDQUFDbkMsS0FBWCxDQUFpQixHQUFqQixFQUFzQkgsTUFBdEIsSUFBZ0MsQ0FBcEMsRUFBdUM7QUFDckN5QyxVQUFBQSxLQUFLLEdBQUdwQyxJQUFJLENBQUNpQyxVQUFELENBQVo7QUFDRCxTQUZELE1BRU87QUFDTCxjQUFNSSxXQUFnQixHQUFHSixVQUFVLENBQUNuQyxLQUFYLENBQWlCLEdBQWpCLENBQXpCO0FBQ0F1QyxVQUFBQSxXQUFXLENBQUN0QyxHQUFaLENBQWdCLFVBQUN1QyxDQUFELEVBQUlsQyxLQUFKLEVBQWM7QUFDNUJnQyxZQUFBQSxLQUFLLEdBQUdoQyxLQUFLLElBQUksQ0FBVCxHQUFhZ0MsS0FBSyxHQUFHcEMsSUFBSSxDQUFDc0MsQ0FBRCxDQUF6QixHQUErQkYsS0FBSyxHQUFHLEdBQVIsR0FBY3BDLElBQUksQ0FBQ3NDLENBQUQsQ0FBekQ7QUFDRCxXQUZEO0FBR0Q7O0FBQ0QsNEJBQ0Usb0JBQUMsTUFBRDtBQUNFLFVBQUEsR0FBRyxFQUFFTyxHQURQO0FBRUUsVUFBQSxLQUFLLEVBQUUzQyxLQUZUO0FBR0UsVUFBQSxLQUFLLEVBQUVrQyxLQUhUO0FBSUUsVUFBQSxRQUFRLEVBQUVwQyxJQUFJLENBQUMrQyxRQUFMLEdBQWdCLElBQWhCLEdBQXVCO0FBSm5DLFdBTUdYLEtBTkgsQ0FERjtBQVVELE9BakNNLENBQVA7QUFrQ0Q7OztXQUNELDBCQUFpQjtBQUFBOztBQUNmLGtDQUE2QixLQUFLcEUsS0FBbEMsQ0FBUWdGLFNBQVI7QUFBQSxVQUFRQSxTQUFSLHNDQUFvQixJQUFwQjtBQUNBLHlCQUFpQyxLQUFLM0IsS0FBdEM7QUFBQSxVQUFRcEQsVUFBUixnQkFBUUEsVUFBUjtBQUFBLFVBQW9CRyxRQUFwQixnQkFBb0JBLFFBQXBCOztBQUNBLFVBQUlBLFFBQUosRUFBYztBQUNaLDRCQUFPLDBDQUFHQSxRQUFILENBQVA7QUFDRCxPQUZELE1BRU87QUFDTCxZQUFJNkUsWUFBWSxHQUFHLEVBQW5CO0FBQUEsWUFDRVAsVUFBVSxHQUFHLEVBRGY7QUFFQXpFLFFBQUFBLFVBQVUsQ0FBQ2tFLE9BQVgsQ0FBbUIsVUFBQ25DLElBQUQsRUFBVTtBQUMzQixjQUFJb0MsS0FBSyxHQUFHcEMsSUFBSSxDQUFDa0QsU0FBakI7O0FBQ0EsY0FBSWQsS0FBSyxJQUFJWSxTQUFiLEVBQXdCO0FBQ3RCLGdCQUFJLENBQUNDLFlBQVksQ0FBQ2IsS0FBRCxDQUFqQixFQUEwQmEsWUFBWSxDQUFDYixLQUFELENBQVosR0FBc0IsRUFBdEI7QUFDMUJhLFlBQUFBLFlBQVksQ0FBQ2IsS0FBRCxDQUFaLENBQW9COUIsSUFBcEIsQ0FBeUJOLElBQXpCO0FBQ0QsV0FIRCxNQUdPO0FBQ0wwQyxZQUFBQSxVQUFVLENBQUNwQyxJQUFYLENBQWdCTixJQUFoQjtBQUNEO0FBQ0YsU0FSRDtBQVNBLFlBQUltRCxNQUFNLEdBQUcsS0FBS0MsWUFBTCxDQUFrQlYsVUFBbEIsQ0FBYjtBQUNBLFlBQUlXLFFBQVEsR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlOLFlBQVosRUFBMEJsRCxHQUExQixDQUE4QixVQUFDOEMsR0FBRCxFQUFTO0FBQ3BELDhCQUNFLG9CQUFDLFFBQUQ7QUFBVSxZQUFBLEdBQUcsRUFBRUEsR0FBZjtBQUFvQixZQUFBLEtBQUssRUFBRUE7QUFBM0IsYUFDRyxNQUFJLENBQUNPLFlBQUwsQ0FBa0JILFlBQVksQ0FBQ0osR0FBRCxDQUE5QixDQURILENBREY7QUFLRCxTQU5jLENBQWY7QUFPQSw0QkFDRSwwQ0FDR00sTUFESCxFQUVHRSxRQUZILENBREY7QUFNRDtBQUNGOzs7V0FDRCxrQkFBU25ELEtBQVQsRUFBZ0IxQixPQUFoQixFQUF5QjtBQUN2QixVQUFRZ0YsUUFBUixHQUFxQixLQUFLeEYsS0FBMUIsQ0FBUXdGLFFBQVI7QUFDQSxXQUFLeEMsUUFBTCxDQUFjO0FBQ1o5QyxRQUFBQSxXQUFXLEVBQUVnQztBQURELE9BQWQ7O0FBR0EsVUFBSXNELFFBQUosRUFBYztBQUNaQSxRQUFBQSxRQUFRLENBQUN0RCxLQUFELEVBQVExQixPQUFSLENBQVI7QUFDRDtBQUNGOzs7V0FDRCxpQ0FBd0JpRixJQUF4QixFQUE4QjtBQUM1QixVQUFJLENBQUNBLElBQUwsRUFBVztBQUNULGFBQUtDLFNBQUw7QUFDRDtBQUNGOzs7V0FDRCxrQkFBUztBQUNQLHlCQWNJLEtBQUsxRixLQWRUO0FBQUEsVUFDRUksUUFERixnQkFDRUEsUUFERjtBQUFBLFVBRUVHLEtBRkYsZ0JBRUVBLEtBRkY7QUFBQSxVQUdFRCxJQUhGLGdCQUdFQSxJQUhGO0FBQUEsVUFJRWtGLFFBSkYsZ0JBSUVBLFFBSkY7QUFBQSxVQUtFaEYsT0FMRixnQkFLRUEsT0FMRjtBQUFBLFVBTUV5RCxVQU5GLGdCQU1FQSxVQU5GO0FBQUEsVUFPRTlDLFVBUEYsZ0JBT0VBLFVBUEY7QUFBQSxVQVFFd0UsWUFSRixnQkFRRUEsWUFSRjtBQUFBLCtDQVNFWCxTQVRGO0FBQUEsVUFTRUEsU0FURixzQ0FTYyxJQVRkO0FBQUEsVUFVRXZFLE9BVkYsZ0JBVUVBLE9BVkY7QUFBQSxVQVdFQyxVQVhGLGdCQVdFQSxVQVhGO0FBQUEsVUFZRWlFLFNBWkYsZ0JBWUVBLFNBWkY7QUFBQSxVQWFLaUIsTUFiTDs7QUFlQSxVQUFNNUYsS0FBSyxHQUFHO0FBQ1orRCxRQUFBQSxZQUFZLEVBQUUsS0FERjtBQUVaOEIsUUFBQUEsVUFBVSxFQUFFLElBRkE7QUFHWkMsUUFBQUEsZ0JBQWdCLEVBQUUsT0FITjtBQUlaQyxRQUFBQSxXQUFXLEVBQUUsS0FKRDtBQUtaQyxRQUFBQSxVQUFVLEVBQUU7QUFMQSxPQUFkOztBQU9BLHFCQUFvQnZHLE1BQU0sRUFBMUI7QUFBQSxVQUFNd0csU0FBTixZQUFNQSxTQUFOOztBQUNBLFVBQUksQ0FBQ04sWUFBWSxJQUFJTSxTQUFqQixLQUErQk4sWUFBWSxLQUFLLElBQXBELEVBQTBEO0FBQ3hELDRCQUNFO0FBQUssVUFBQSxTQUFTLEVBQUVoRyxHQUFHLENBQUNELE1BQU0sQ0FBQyxZQUFELENBQVAsRUFBdUIsS0FBS00sS0FBTCxDQUFXa0csU0FBbEM7QUFBbkIsd0JBQ0U7QUFDRSxVQUFBLEtBQUssRUFBRSxLQUFLN0MsS0FBTCxDQUFXbkQsV0FEcEI7QUFFRSxVQUFBLFFBQVEsRUFBRSxLQUFLc0YsUUFBTCxDQUFjVyxJQUFkLENBQW1CLElBQW5CLENBRlo7QUFHRSxVQUFBLFFBQVEsRUFBRSxLQUFLbkMsUUFBTCxDQUFjbUMsSUFBZCxDQUFtQixJQUFuQixDQUhaO0FBSUUsVUFBQSx1QkFBdUIsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkQsSUFBN0IsQ0FBa0MsSUFBbEM7QUFKM0IsV0FLTW5HLEtBTE4sRUFNTTRGLE1BTk4sR0FRRyxLQUFLUyxjQUFMLEVBUkgsQ0FERixDQURGO0FBY0QsT0FmRCxNQWVPO0FBQ0wsNEJBQ0U7QUFDRSxVQUFBLEtBQUssRUFBRSxLQUFLaEQsS0FBTCxDQUFXbkQsV0FEcEI7QUFFRSxVQUFBLFFBQVEsRUFBRSxLQUFLOEQsUUFBTCxDQUFjbUMsSUFBZCxDQUFtQixJQUFuQixDQUZaO0FBR0UsVUFBQSxRQUFRLEVBQUUsS0FBS1gsUUFBTCxDQUFjVyxJQUFkLENBQW1CLElBQW5CLENBSFo7QUFJRSxVQUFBLHVCQUF1QixFQUFFLEtBQUtDLHVCQUFMLENBQTZCRCxJQUE3QixDQUFrQyxJQUFsQztBQUozQixXQUtNbkcsS0FMTixFQU1NNEYsTUFOTixHQVFHLEtBQUtTLGNBQUwsRUFSSCxDQURGO0FBWUQ7QUFDRjs7OztFQXZYb0MvRyxhOztnQkFBbEJTLFMsWUFDSEYsTTs7Z0JBREdFLFMsY0FFREQsUTs7U0FGQ0MsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcclxuICBzaG93R3JvdXA/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhue7hFxyXG4gIGFkZERhdGE/OiBBcnJheTxPYmplY3Q+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5LuO5aKe5Yqg6aKd5aSW55qE5pWw5o2uXHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PFN0cmluZz47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzliKDpmaTku47mlbDmja7lupPkuK3ojrflj5bliLDnmoTmjIflrprmlbDmja5cclxuICB2YWx1ZUJyZWFrPzogc3RyaW5nOyAvL+WkmuS4qnZhbHVl5L2/55So55qE5YiG6ZqU56ymXHJcbiAgdmFsdWVUeXBlPzogXCJzdHJpbmdcIiB8IFwibnVtYmVyXCI7XHJcbiAgW3Byb05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOU0NTZWxlY3QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElTZWxlY3RQcm9wcz4ge1xyXG4gIHN0YXRpYyBPcHRpb24gPSBPcHRpb247XHJcbiAgc3RhdGljIE9wdEdyb3VwID0gT3B0R3JvdXA7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIHNlbGVjdFZhbHVlOiBudWxsLFxyXG4gICAgYWxsRGF0YVNvdXJjZTogW10sXHJcbiAgICBjaGlsZHJlbjogbnVsbCxcclxuICAgIGFsbENoaWxkcmVuOiBudWxsLFxyXG4gIH07XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBhZGREYXRhID0gW10sXHJcbiAgICAgIGRlbGV0ZURhdGEgPSBbXSxcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgdmlld25hbWUsXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXN0ZW1cIixcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcbiAgICBjb25zdCB2YWx1ZUZpZWxkID0gdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGxldCB7IHZpZXdVcmwsIHZpZXdCaXpVcmwgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHJlcXVlc3RWaWV3VXJsID0gdmlld3R5cGUgPT0gXCJzeXN0ZW1cIiA/IHZpZXdVcmwgOiB2aWV3Qml6VXJsO1xyXG4gICAgY29uc3QgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IFsuLi5kYXRhXTtcclxuICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0RhdGEgPSBbLi4uYWRkRGF0YSwgLi4ubmV3RGF0YV07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzcGxpY2VEYXRhID0gW107XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgc3BsaWNlRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBzcGxpY2VEYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKCh2aWV3bmFtZSB8fCB1cmwpICYmIGRhdGEgPT0gbnVsbCAmJiBvcHRpb25zID09IG51bGwpIHtcclxuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVLZXkgPSBjYWNoZUtleTtcclxuICAgICAgICBpZiAodmlld25hbWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICBpc0NhY2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVLZXkgPSBpc0NhY2hlS2V5ID8gaXNDYWNoZUtleSA6IHZpZXduYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHJlcXVlc3RWaWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldERhdGEoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY2hpbGRyZW46IGFsbENoaWxkcmVuIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYWxsRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjb25zdCBzdGF0ZUNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBhbGxDaGlsZHJlbi5tYXAoKHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHN0YXRlQ2hpbGRyZW5Qcm9wcy5wdXNoKHMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY2hpbGRyZW5Qcm9wczogYW55ID0gW107XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoYzogYW55KSA9PiB7XHJcbiAgICAgICAgY2hpbGRyZW5Qcm9wcy5wdXNoKGMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlQ2hpbGRyZW5Qcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGNoaWxkcmVuUHJvcHMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBmaWx0ZXJPcHRpb24gPSB0cnVlLCBvblNlYXJjaCwgY2hpbGRyZW4sIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuICAgIGxldCBsYWJlbEZpZWxkID0gdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgaWYgKGZpbHRlck9wdGlvbikge1xyXG4gICAgICBsZXQgcmVzdWx0ID0gW107XHJcbiAgICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICAgICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICBsYWJlbCA9IGl0ZW1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgaXRlbVtsXSA6IGxhYmVsICsgXCItXCIgKyBpdGVtW2xdO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBmbGFnID0gUGlueWluTWF0Y2gubWF0Y2gobGFiZWwsIHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogcmVzdWx0LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkYXRhU291cmNlOiBhbGxEYXRhU291cmNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWxsQ2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgIGFsbENoaWxkcmVuLm1hcCgoY2hpbGQ6IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICBsZXQgbGFiZWwgPSBjaGlsZD8ucHJvcHM/LmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgIGxldCBmbGFnID0gUGlueWluTWF0Y2gubWF0Y2gobGFiZWwsIHZhbHVlKTtcclxuICAgICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hpbGRyZW46IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvblNlYXJjaCAmJiBvblNlYXJjaCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHJlbmRlck9wdGlvbihvcHRpb25EYXRhKSB7XHJcbiAgICBsZXQgeyBzdG9yZSA9IHt9LCB2YWx1ZVR5cGUgPSBcInN0cmluZ1wiIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICBjb25zdCB2YWx1ZUZpZWxkID0gdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGNvbnN0IGxhYmVsRmllbGQgPSB2aWV3bmFtZSA/IFwiZGljdFZhbHVlXCIgOiBcImxhYmVsXCI7XHJcbiAgICByZXR1cm4gb3B0aW9uRGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICAgIGlmICh2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIHZhbHVlID1cclxuICAgICAgICAgIHZhbHVlVHlwZSA9PT0gXCJudW1iZXJcIlxyXG4gICAgICAgICAgICA/IE51bWJlcihpdGVtW3ZhbHVlRmllbGRdKVxyXG4gICAgICAgICAgICA6IGl0ZW1bdmFsdWVGaWVsZF0gKyBcIlwiO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQga2V5ID0gaXRlbS5pZCA/IChpdGVtLmlkICE9PSBcInVuZGVmaW5lZFwiID8gaXRlbS5pZCA6IHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBsYWJlbCA9IGl0ZW1bbGFiZWxGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgaXRlbVtsXSA6IGxhYmVsICsgXCItXCIgKyBpdGVtW2xdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE9wdGlvblxyXG4gICAgICAgICAga2V5PXtrZXl9XHJcbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XHJcbiAgICAgICAgICBsYWJlbD17bGFiZWx9XHJcbiAgICAgICAgICBkaXNhYmxlZD17aXRlbS5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7bGFiZWx9XHJcbiAgICAgICAgPC9PcHRpb24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyQ2hpbGRyZW4oKSB7XHJcbiAgICBjb25zdCB7IHNob3dHcm91cCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UsIGNoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIHJldHVybiA8PntjaGlsZHJlbn08Lz47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgb3B0R3JvdXBEYXRhID0ge30sXHJcbiAgICAgICAgb3B0aW9uRGF0YSA9IFtdO1xyXG4gICAgICBkYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbGFiZWwgPSBpdGVtLmdyb3VwTmFtZTtcclxuICAgICAgICBpZiAobGFiZWwgJiYgc2hvd0dyb3VwKSB7XHJcbiAgICAgICAgICBpZiAoIW9wdEdyb3VwRGF0YVtsYWJlbF0pIG9wdEdyb3VwRGF0YVtsYWJlbF0gPSBbXTtcclxuICAgICAgICAgIG9wdEdyb3VwRGF0YVtsYWJlbF0ucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9uRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBvcHRpb24gPSB0aGlzLnJlbmRlck9wdGlvbihvcHRpb25EYXRhKTtcclxuICAgICAgbGV0IG9wdEdyb3VwID0gT2JqZWN0LmtleXMob3B0R3JvdXBEYXRhKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8T3B0R3JvdXAga2V5PXtrZXl9IGxhYmVsPXtrZXl9PlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJPcHRpb24ob3B0R3JvdXBEYXRhW2tleV0pfVxyXG4gICAgICAgICAgPC9PcHRHcm91cD5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAge29wdGlvbn1cclxuICAgICAgICAgIHtvcHRHcm91cH1cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZShvcGVuKSB7XHJcbiAgICBpZiAoIW9wZW4pIHtcclxuICAgICAgdGhpcy5yZXNldERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIG9uQ2hhbmdlLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBsYWJlbEZpZWxkLFxyXG4gICAgICB2YWx1ZUZpZWxkLFxyXG4gICAgICBkZWZhdWx0U3R5bGUsXHJcbiAgICAgIHNob3dHcm91cCA9IHRydWUsXHJcbiAgICAgIGFkZERhdGEsXHJcbiAgICAgIGRlbGV0ZURhdGEsXHJcbiAgICAgIHZhbHVlVHlwZSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGxldCB7IGFudGRTdHlsZSB9ID0gY29uZmlnKCk7XHJcbiAgICBpZiAoKGRlZmF1bHRTdHlsZSB8fCBhbnRkU3R5bGUpICYmIGRlZmF1bHRTdHlsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoc3R5bGVzW1wibnNjX3NlbGVjdFwiXSwgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cclxuICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPXt0aGlzLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cclxuICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZX1cclxuICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25Ecm9wZG93blZpc2libGVDaGFuZ2U9e3RoaXMub25Ecm9wZG93blZpc2libGVDaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cclxuICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19