nsc-react-component 1.3.11 → 1.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/form/Form.d.ts +3 -6
- package/lib/form/Form.js +83 -21
- package/lib/select/index.d.ts +3 -0
- package/lib/select/index.js +39 -12
- package/package.json +5 -3
package/lib/form/Form.d.ts
CHANGED
|
@@ -16,10 +16,7 @@ declare class NscForm extends PureComponent<IFormProps> {
|
|
|
16
16
|
formDrawerProps: {};
|
|
17
17
|
};
|
|
18
18
|
constructor(props: any);
|
|
19
|
-
static getDerivedStateFromProps(nextProps: any, prevState: any):
|
|
20
|
-
formVisible: any;
|
|
21
|
-
formDrawerProps: any;
|
|
22
|
-
};
|
|
19
|
+
static getDerivedStateFromProps(nextProps: any, prevState: any): any;
|
|
23
20
|
getFieldError(name: any): string[];
|
|
24
21
|
getFieldInstance(name: any): any;
|
|
25
22
|
getFieldsError(): import("rc-field-form/es/interface").FieldError[];
|
|
@@ -35,8 +32,8 @@ declare class NscForm extends PureComponent<IFormProps> {
|
|
|
35
32
|
submit(): void;
|
|
36
33
|
onSubmit(url?: string, options?: any, callback?: (res?: any) => void, msg?: boolean): void;
|
|
37
34
|
validateFields(name: any): Promise<any>;
|
|
38
|
-
hideForm(): void;
|
|
39
|
-
showForm(): void;
|
|
35
|
+
hideForm(resetValue?: boolean): void;
|
|
36
|
+
showForm(value?: any, resetValue?: boolean): void;
|
|
40
37
|
cloneElement(item: any, index?: number): string | React.DetailedReactHTMLElement<{
|
|
41
38
|
key: number;
|
|
42
39
|
children: any;
|
package/lib/form/Form.js
CHANGED
|
@@ -81,75 +81,101 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
81
81
|
key: "getFieldError",
|
|
82
82
|
value: //获取对应字段名的错误信息
|
|
83
83
|
function getFieldError(name) {
|
|
84
|
-
|
|
84
|
+
var _this$formRef$current;
|
|
85
|
+
|
|
86
|
+
return (_this$formRef$current = this.formRef.current) === null || _this$formRef$current === void 0 ? void 0 : _this$formRef$current.getFieldError(name);
|
|
85
87
|
} //获取对应字段实例
|
|
86
88
|
|
|
87
89
|
}, {
|
|
88
90
|
key: "getFieldInstance",
|
|
89
91
|
value: function getFieldInstance(name) {
|
|
90
|
-
|
|
92
|
+
var _this$formRef$current2;
|
|
93
|
+
|
|
94
|
+
return (_this$formRef$current2 = this.formRef.current) === null || _this$formRef$current2 === void 0 ? void 0 : _this$formRef$current2.getFieldInstance(name);
|
|
91
95
|
} //获取一组字段名对应的错误信息,返回为数组形式
|
|
92
96
|
|
|
93
97
|
}, {
|
|
94
98
|
key: "getFieldsError",
|
|
95
99
|
value: function getFieldsError() {
|
|
96
|
-
|
|
100
|
+
var _this$formRef$current3;
|
|
101
|
+
|
|
102
|
+
return (_this$formRef$current3 = this.formRef.current) === null || _this$formRef$current3 === void 0 ? void 0 : _this$formRef$current3.getFieldsError();
|
|
97
103
|
} //获取一组字段名对应的值,会按照对应结构返回
|
|
98
104
|
|
|
99
105
|
}, {
|
|
100
106
|
key: "getFieldsValue",
|
|
101
107
|
value: function getFieldsValue() {
|
|
102
|
-
|
|
108
|
+
var _this$formRef$current4;
|
|
109
|
+
|
|
110
|
+
return (_this$formRef$current4 = this.formRef.current) === null || _this$formRef$current4 === void 0 ? void 0 : _this$formRef$current4.getFieldsValue();
|
|
103
111
|
} //获取对应字段名的值
|
|
104
112
|
|
|
105
113
|
}, {
|
|
106
114
|
key: "getFieldValue",
|
|
107
115
|
value: function getFieldValue(name) {
|
|
108
|
-
|
|
116
|
+
var _this$formRef$current5;
|
|
117
|
+
|
|
118
|
+
return (_this$formRef$current5 = this.formRef.current) === null || _this$formRef$current5 === void 0 ? void 0 : _this$formRef$current5.getFieldValue(name);
|
|
109
119
|
} //检查一组字段是否被用户操作过
|
|
110
120
|
|
|
111
121
|
}, {
|
|
112
122
|
key: "isFieldsTouched",
|
|
113
123
|
value: function isFieldsTouched() {
|
|
114
|
-
|
|
124
|
+
var _this$formRef$current6;
|
|
125
|
+
|
|
126
|
+
return (_this$formRef$current6 = this.formRef.current) === null || _this$formRef$current6 === void 0 ? void 0 : _this$formRef$current6.isFieldsTouched();
|
|
115
127
|
} //检查对应字段是否被用户操作过
|
|
116
128
|
|
|
117
129
|
}, {
|
|
118
130
|
key: "isFieldTouched",
|
|
119
131
|
value: function isFieldTouched(name) {
|
|
120
|
-
|
|
132
|
+
var _this$formRef$current7;
|
|
133
|
+
|
|
134
|
+
return (_this$formRef$current7 = this.formRef.current) === null || _this$formRef$current7 === void 0 ? void 0 : _this$formRef$current7.isFieldTouched(name);
|
|
121
135
|
} //检查一组字段是否正在校验
|
|
122
136
|
|
|
123
137
|
}, {
|
|
124
138
|
key: "isFieldValidating",
|
|
125
139
|
value: function isFieldValidating(name) {
|
|
126
|
-
|
|
140
|
+
var _this$formRef$current8;
|
|
141
|
+
|
|
142
|
+
return (_this$formRef$current8 = this.formRef.current) === null || _this$formRef$current8 === void 0 ? void 0 : _this$formRef$current8.isFieldValidating(name);
|
|
127
143
|
} //重置一组字段到
|
|
128
144
|
|
|
129
145
|
}, {
|
|
130
146
|
key: "resetFields",
|
|
131
147
|
value: function resetFields() {
|
|
132
|
-
|
|
148
|
+
var _this$formRef$current9;
|
|
149
|
+
|
|
150
|
+
(_this$formRef$current9 = this.formRef.current) === null || _this$formRef$current9 === void 0 ? void 0 : _this$formRef$current9.resetFields();
|
|
133
151
|
}
|
|
134
152
|
}, {
|
|
135
153
|
key: "scrollToField",
|
|
136
154
|
value: function scrollToField(name, options) {
|
|
137
|
-
|
|
155
|
+
var _this$formRef$current10;
|
|
156
|
+
|
|
157
|
+
(_this$formRef$current10 = this.formRef.current) === null || _this$formRef$current10 === void 0 ? void 0 : _this$formRef$current10.scrollToField(name, options);
|
|
138
158
|
}
|
|
139
159
|
}, {
|
|
140
160
|
key: "setFields",
|
|
141
161
|
value: function setFields(filds) {
|
|
142
|
-
|
|
162
|
+
var _this$formRef$current11;
|
|
163
|
+
|
|
164
|
+
(_this$formRef$current11 = this.formRef.current) === null || _this$formRef$current11 === void 0 ? void 0 : _this$formRef$current11.setFields(filds);
|
|
143
165
|
}
|
|
144
166
|
}, {
|
|
145
167
|
key: "setFieldsValue",
|
|
146
168
|
value: function setFieldsValue(values) {
|
|
147
|
-
|
|
169
|
+
var _this$formRef$current12;
|
|
170
|
+
|
|
171
|
+
(_this$formRef$current12 = this.formRef.current) === null || _this$formRef$current12 === void 0 ? void 0 : _this$formRef$current12.setFieldsValue(values);
|
|
148
172
|
}
|
|
149
173
|
}, {
|
|
150
174
|
key: "submit",
|
|
151
175
|
value: function submit() {
|
|
152
|
-
|
|
176
|
+
var _this$formRef$current13;
|
|
177
|
+
|
|
178
|
+
(_this$formRef$current13 = this.formRef.current) === null || _this$formRef$current13 === void 0 ? void 0 : _this$formRef$current13.submit();
|
|
153
179
|
}
|
|
154
180
|
}, {
|
|
155
181
|
key: "onSubmit",
|
|
@@ -225,15 +251,37 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
225
251
|
}, {
|
|
226
252
|
key: "hideForm",
|
|
227
253
|
value: function hideForm() {
|
|
254
|
+
var _this3 = this;
|
|
255
|
+
|
|
256
|
+
var resetValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
228
257
|
this.setState({
|
|
229
258
|
formVisible: false
|
|
259
|
+
}, function () {
|
|
260
|
+
if (resetValue) {
|
|
261
|
+
var _this3$formRef$curren;
|
|
262
|
+
|
|
263
|
+
(_this3$formRef$curren = _this3.formRef.current) === null || _this3$formRef$curren === void 0 ? void 0 : _this3$formRef$curren.resetFields();
|
|
264
|
+
}
|
|
230
265
|
});
|
|
231
266
|
}
|
|
232
267
|
}, {
|
|
233
268
|
key: "showForm",
|
|
234
|
-
value: function showForm() {
|
|
269
|
+
value: function showForm(value) {
|
|
270
|
+
var _this4 = this;
|
|
271
|
+
|
|
272
|
+
var resetValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
235
273
|
this.setState({
|
|
236
274
|
formVisible: true
|
|
275
|
+
}, function () {
|
|
276
|
+
if (value) {
|
|
277
|
+
var _this4$formRef$curren;
|
|
278
|
+
|
|
279
|
+
(_this4$formRef$curren = _this4.formRef.current) === null || _this4$formRef$curren === void 0 ? void 0 : _this4$formRef$curren.setFieldsValue(value);
|
|
280
|
+
} else {
|
|
281
|
+
var _this4$formRef$curren2;
|
|
282
|
+
|
|
283
|
+
if (resetValue) (_this4$formRef$curren2 = _this4.formRef.current) === null || _this4$formRef$curren2 === void 0 ? void 0 : _this4$formRef$curren2.resetFields();
|
|
284
|
+
}
|
|
237
285
|
});
|
|
238
286
|
}
|
|
239
287
|
}, {
|
|
@@ -285,18 +333,24 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
285
333
|
newModalProps = _objectSpread({
|
|
286
334
|
centered: true
|
|
287
335
|
}, newModalProps);
|
|
288
|
-
return /*#__PURE__*/React.createElement(_Modal, _extends({
|
|
336
|
+
return /*#__PURE__*/React.createElement(_Modal, _extends({
|
|
337
|
+
onCancel: this.hideForm.bind(this)
|
|
338
|
+
}, newModalProps, {
|
|
289
339
|
visible: formVisible
|
|
290
340
|
}), /*#__PURE__*/React.createElement(_Form, _extends({
|
|
291
341
|
ref: this.formRef
|
|
292
|
-
}, layout, props
|
|
342
|
+
}, layout, props, {
|
|
343
|
+
preserve: false
|
|
344
|
+
}), newChildren));
|
|
293
345
|
} else if (showModel && showModel == "drawer") {
|
|
294
346
|
var newDrawerProps = omit(drawerProps, ["visible"]);
|
|
295
|
-
return /*#__PURE__*/React.createElement(_Drawer, _extends({
|
|
347
|
+
return /*#__PURE__*/React.createElement(_Drawer, _extends({
|
|
348
|
+
onClose: this.hideForm.bind(this)
|
|
349
|
+
}, newDrawerProps, {
|
|
296
350
|
visible: formVisible
|
|
297
351
|
}), /*#__PURE__*/React.createElement(_Form, _extends({
|
|
298
352
|
ref: this.formRef
|
|
299
|
-
}, props), newChildren));
|
|
353
|
+
}, layout, props), newChildren));
|
|
300
354
|
} else {
|
|
301
355
|
return /*#__PURE__*/React.createElement(_Form, _extends({
|
|
302
356
|
ref: this.formRef
|
|
@@ -329,17 +383,25 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
329
383
|
if (showModel == "modal") {
|
|
330
384
|
if (JSON.stringify(formModalProps) !== JSON.stringify(modalProps)) {
|
|
331
385
|
var newState = {
|
|
332
|
-
formVisible: modalProps.visible,
|
|
333
386
|
formDrawerProps: modalProps
|
|
334
387
|
};
|
|
388
|
+
|
|
389
|
+
if ((modalProps === null || modalProps === void 0 ? void 0 : modalProps.visible) !== null || (modalProps === null || modalProps === void 0 ? void 0 : modalProps.visible) !== undefined) {
|
|
390
|
+
newState.formVisibale = modalProps === null || modalProps === void 0 ? void 0 : modalProps.visible;
|
|
391
|
+
}
|
|
392
|
+
|
|
335
393
|
return newState;
|
|
336
394
|
}
|
|
337
395
|
} else if (showModel == "drawer") {
|
|
338
396
|
if (JSON.stringify(formDrawerProps) !== JSON.stringify(drawerProps)) {
|
|
339
397
|
var _newState = {
|
|
340
|
-
formVisible: drawerProps.visible,
|
|
341
398
|
formDrawerProps: drawerProps
|
|
342
399
|
};
|
|
400
|
+
|
|
401
|
+
if ((drawerProps === null || drawerProps === void 0 ? void 0 : drawerProps.visible) !== null || (drawerProps === null || drawerProps === void 0 ? void 0 : drawerProps.visible) !== undefined) {
|
|
402
|
+
_newState.formVisibale = drawerProps === null || drawerProps === void 0 ? void 0 : drawerProps.visible;
|
|
403
|
+
}
|
|
404
|
+
|
|
343
405
|
return _newState;
|
|
344
406
|
}
|
|
345
407
|
}
|
|
@@ -352,4 +414,4 @@ var NscForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
352
414
|
}(PureComponent);
|
|
353
415
|
|
|
354
416
|
export default NscForm;
|
|
355
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwicmVxdWVzdCIsIm9taXQiLCJOc2NGb3JtIiwicHJvcHMiLCJjcmVhdGVSZWYiLCJmb3JtVmlzaWJsZSIsImZvcm1Nb2RhbFByb3BzIiwiZm9ybURyYXdlclByb3BzIiwibmFtZSIsImZvcm1SZWYiLCJjdXJyZW50IiwiZ2V0RmllbGRFcnJvciIsImdldEZpZWxkSW5zdGFuY2UiLCJnZXRGaWVsZHNFcnJvciIsImdldEZpZWxkc1ZhbHVlIiwiZ2V0RmllbGRWYWx1ZSIsImlzRmllbGRzVG91Y2hlZCIsImlzRmllbGRUb3VjaGVkIiwiaXNGaWVsZFZhbGlkYXRpbmciLCJyZXNldEZpZWxkcyIsIm9wdGlvbnMiLCJzY3JvbGxUb0ZpZWxkIiwiZmlsZHMiLCJzZXRGaWVsZHMiLCJ2YWx1ZXMiLCJzZXRGaWVsZHNWYWx1ZSIsInN1Ym1pdCIsInVybCIsImNhbGxiYWNrIiwibXNnIiwicHJvcHNVcmwiLCJlbmNyeXB0RmllbGRzIiwiZW5jcnlwdFByb3BwcyIsIkVycm9yIiwibWV0aG9kIiwicmVxdWVzdFVybCIsInJlcXVlc3REYXRhIiwicmVxdWVzdEVuY3J5cHQiLCJyZXF1ZXN0UGFyYW0iLCJkYXRhIiwicGFyYW1zIiwidG9Mb3dlckNhc2UiLCJ0aGVuIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInZhbGlkYXRlRmllbGRzIiwic2V0U3RhdGUiLCJpdGVtIiwiaW5kZXgiLCJfdGhpcyIsImtleSIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsImNsb25lRWxlbWVudCIsImUiLCJuZXdDaGlsZHJlbiIsInNob3dNb2RlbCIsImRyYXdlclByb3BzIiwibW9kYWxQcm9wcyIsInN0YXRlIiwibGF5b3V0IiwibGFiZWxDb2wiLCJzcGFuIiwid3JhcHBlckNvbCIsIm5ld01vZGFsUHJvcHMiLCJjZW50ZXJlZCIsIm5ld0RyYXdlclByb3BzIiwicmVuZGVyUGFuZWwiLCJuZXh0UHJvcHMiLCJwcmV2U3RhdGUiLCJKU09OIiwic3RyaW5naWZ5IiwibmV3U3RhdGUiLCJ2aXNpYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQVdBLFNBQVNDLE9BQVQsUUFBd0IsdUJBQXhCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjs7SUFVTUMsTzs7Ozs7QUFRSixtQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiwrQkFBTUEsS0FBTjs7QUFEaUIsNEVBUFRMLEtBQUssQ0FBQ00sU0FBTixFQU9TOztBQUFBLDZEQU5YO0FBQ05DLE1BQUFBLFdBQVcsRUFBRSxLQURQO0FBRU5DLE1BQUFBLGNBQWMsRUFBRSxFQUZWO0FBR05DLE1BQUFBLGVBQWUsRUFBRTtBQUhYLEtBTVc7O0FBQUE7QUFFbEI7Ozs7V0F5QkQ7QUFDQSwyQkFBY0MsSUFBZCxFQUFvQjtBQUNsQixhQUFPLEtBQUtDLE9BQUwsQ0FBYUMsT0FBYixDQUFxQkMsYUFBckIsQ0FBbUNILElBQW5DLENBQVA7QUFDRCxLLENBRUQ7Ozs7V0FDQSwwQkFBaUJBLElBQWpCLEVBQXVCO0FBQ3JCLGFBQU8sS0FBS0MsT0FBTCxDQUFhQyxPQUFiLENBQXFCRSxnQkFBckIsQ0FBc0NKLElBQXRDLENBQVA7QUFDRCxLLENBRUQ7Ozs7V0FDQSwwQkFBaUI7QUFDZixhQUFPLEtBQUtDLE9BQUwsQ0FBYUMsT0FBYixDQUFxQkcsY0FBckIsRUFBUDtBQUNELEssQ0FFRDs7OztXQUNBLDBCQUFpQjtBQUNmLGFBQU8sS0FBS0osT0FBTCxDQUFhQyxPQUFiLENBQXFCSSxjQUFyQixFQUFQ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QUFTLElBQUksUUFBakIsRUFBMkI7QUFDaEMsWUFBSWMsSUFBSSxDQUFDQyxTQUFMLENBQWV6RSxlQUFmLE1BQW9Dd0UsSUFBSSxDQUFDQyxTQUFMLENBQWVkLFdBQWYsQ0FBeEMsRUFBcUU7QUFDbkUsY0FBSWUsU0FBUSxHQUFHO0FBQ2I1RSxZQUFBQSxXQUFXLEVBQUU2RCxXQUFXLENBQUNnQixPQURaO0FBRWIzRSxZQUFBQSxlQUFlLEVBQUUyRDtBQUZKLFdBQWY7QUFJQSxpQkFBT2UsU0FBUDtBQUNEO0FBQ0Y7O0FBQ0QsYUFBTyxJQUFQO0FBQ0Q7Ozs7RUFqQ21CbEYsYTs7QUE4T3RCLGVBQWVHLE9BQWYiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOuihqOWNlee7hOS7tlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDQtMDkgMDk6MTg6MzRcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTIzIDE1OjIzOjU0XHJcbiAqL1xyXG5pbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQge1xyXG4gIEZvcm0sXHJcbiAgRm9ybVByb3BzLFxyXG4gIE1vZGFsLFxyXG4gIERyYXdlcixcclxuICBNb2RhbFByb3BzLFxyXG4gIERyYXdlclByb3BzLFxyXG4gIG1lc3NhZ2UsXHJcbn0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgRm9ybUluc3RhbmNlIH0gZnJvbSBcImFudGQvbGliL2Zvcm1cIjtcclxuaW1wb3J0IHsgcmVxdWVzdCB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuXHJcbmludGVyZmFjZSBJRm9ybVByb3BzIGV4dGVuZHMgRm9ybVByb3BzIHtcclxuICBzaG93TW9kZWw/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIG1vZGFsUHJvcHM/OiBNb2RhbFByb3BzO1xyXG4gIGRyYXdlclByb3BzPzogRHJhd2VyUHJvcHM7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIGVuY3J5cHRGaWVsZHM/OiBBcnJheTxTdHJpbmc+O1xyXG59XHJcblxyXG5jbGFzcyBOc2NGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJRm9ybVByb3BzPiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxGb3JtSW5zdGFuY2U+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBmb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICBmb3JtTW9kYWxQcm9wczoge30sXHJcbiAgICBmb3JtRHJhd2VyUHJvcHM6IHt9LFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKSB7XHJcbiAgICBjb25zdCB7IG1vZGFsUHJvcHMsIGRyYXdlclByb3BzLCBzaG93TW9kZWwgfSA9IG5leHRQcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybU1vZGFsUHJvcHMsIGZvcm1EcmF3ZXJQcm9wcyB9ID0gcHJldlN0YXRlO1xyXG4gICAgaWYgKHNob3dNb2RlbCA9PSBcIm1vZGFsXCIpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGZvcm1Nb2RhbFByb3BzKSAhPT0gSlNPTi5zdHJpbmdpZnkobW9kYWxQcm9wcykpIHtcclxuICAgICAgICBsZXQgbmV3U3RhdGUgPSB7XHJcbiAgICAgICAgICBmb3JtVmlzaWJsZTogbW9kYWxQcm9wcy52aXNpYmxlLFxyXG4gICAgICAgICAgZm9ybURyYXdlclByb3BzOiBtb2RhbFByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHNob3dNb2RlbCA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShmb3JtRHJhd2VyUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShkcmF3ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgbmV3U3RhdGUgPSB7XHJcbiAgICAgICAgICBmb3JtVmlzaWJsZTogZHJhd2VyUHJvcHMudmlzaWJsZSxcclxuICAgICAgICAgIGZvcm1EcmF3ZXJQcm9wczogZHJhd2VyUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5blr7nlupTlrZfmrrXlkI3nmoTplJnor6/kv6Hmga9cclxuICBnZXRGaWVsZEVycm9yKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZEVycm9yKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5blr7nlupTlrZfmrrXlrp7kvotcclxuICBnZXRGaWVsZEluc3RhbmNlKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZEluc3RhbmNlKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bkuIDnu4TlrZfmrrXlkI3lr7nlupTnmoTplJnor6/kv6Hmga/vvIzov5Tlm57kuLrmlbDnu4TlvaLlvI9cclxuICBnZXRGaWVsZHNFcnJvcigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZHNFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bkuIDnu4TlrZfmrrXlkI3lr7nlupTnmoTlgLzvvIzkvJrmjInnhaflr7nlupTnu5PmnoTov5Tlm55cclxuICBnZXRGaWVsZHNWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5blr7nlupTlrZfmrrXlkI3nmoTlgLxcclxuICBnZXRGaWVsZFZhbHVlKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5nZXRGaWVsZFZhbHVlKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/mo4Dmn6XkuIDnu4TlrZfmrrXmmK/lkKbooqvnlKjmiLfmk43kvZzov4dcclxuICBpc0ZpZWxkc1RvdWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQuaXNGaWVsZHNUb3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICAvL+ajgOafpeWvueW6lOWtl+auteaYr+WQpuiiq+eUqOaIt+aTjeS9nOi/h1xyXG4gIGlzRmllbGRUb3VjaGVkKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC5pc0ZpZWxkVG91Y2hlZChuYW1lKTtcclxuICB9XHJcblxyXG4gIC8v5qOA5p+l5LiA57uE5a2X5q615piv5ZCm5q2j5Zyo5qCh6aqMXHJcbiAgaXNGaWVsZFZhbGlkYXRpbmcobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50LmlzRmllbGRWYWxpZGF0aW5nKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/ph43nva7kuIDnu4TlrZfmrrXliLBcclxuICByZXNldEZpZWxkcygpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0ZpZWxkKG5hbWUsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50LnNjcm9sbFRvRmllbGQobmFtZSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWVsZHMoZmlsZHMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50LnNldEZpZWxkcyhmaWxkcyk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50LnNldEZpZWxkc1ZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudC5zdWJtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KFxyXG4gICAgdXJsPzogc3RyaW5nLFxyXG4gICAgb3B0aW9ucz86IGFueSxcclxuICAgIGNhbGxiYWNrPzogKHJlcz86IGFueSkgPT4gdm9pZCxcclxuICAgIG1zZz86IGJvb2xlYW5cclxuICApIHtcclxuICAgIGNvbnN0IHsgdXJsOiBwcm9wc1VybCwgZW5jcnlwdEZpZWxkczogZW5jcnlwdFByb3BwcyA9IFtdIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCF1cmwgJiYgIXByb3BzVXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIuayoeacieS4iuS8oOeahHVybCFcIik7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IG1ldGhvZCA9IFwicG9zdFwiIH0gPSBvcHRpb25zO1xyXG4gICAgbGV0IHJlcXVlc3RVcmwgPSB1cmwgPyB1cmwgOiBwcm9wc1VybDtcclxuICAgIGxldCByZXF1ZXN0RGF0YSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgcmVxdWVzdEVuY3J5cHQgPSBlbmNyeXB0UHJvcHBzO1xyXG4gICAgbGV0IHJlcXVlc3RQYXJhbSA9IHsgbWV0aG9kOiBtZXRob2QsIGRhdGE6IHJlcXVlc3REYXRhIH0gYXMgeyBkYXRhOiBhbnkgfTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgZGF0YSwgZW5jcnlwdEZpZWxkcywgLi4ucGFyYW1zIH0gPSBvcHRpb25zO1xyXG4gICAgICByZXF1ZXN0UGFyYW0gPSB7IC4uLnJlcXVlc3RQYXJhbSwgLi4ucGFyYW1zIH07XHJcbiAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgZGVsZXRlIHJlcXVlc3RQYXJhbS5kYXRhO1xyXG4gICAgICAgIGlmIChtZXRob2QudG9Mb3dlckNhc2UoKSA9PSBcImdldFwiKSB7XHJcbiAgICAgICAgICByZXF1ZXN0UGFyYW0gPSB7IC4uLnJlcXVlc3RQYXJhbSwgLi4ucGFyYW1zLCBwYXJhbXM6IGRhdGEgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtID0geyAuLi5yZXF1ZXN0UGFyYW0sIC4uLnBhcmFtcywgZGF0YTogZGF0YSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZW5jcnlwdEZpZWxkcykge1xyXG4gICAgICAgIHJlcXVlc3RFbmNyeXB0ID0gZW5jcnlwdEZpZWxkcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3QocmVxdWVzdFVybCwge1xyXG4gICAgICAuLi5yZXF1ZXN0UGFyYW0sXHJcbiAgICAgIGVuY3J5cHRGaWVsZHM6IHJlcXVlc3RFbmNyeXB0LFxyXG4gICAgfSlcclxuICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgaWYgKG1zZykge1xyXG4gICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLmj5DkuqTmiJDlip9cIik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5o+Q5Lqk5aSx6LSlXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyZXMpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUZpZWxkcyhuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQudmFsaWRhdGVGaWVsZHMobmFtZSk7XHJcbiAgfVxyXG5cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZvcm1WaXNpYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbG9uZUVsZW1lbnQoaXRlbSwgaW5kZXggPSAwKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIpIHJldHVybiBpdGVtO1xyXG4gICAgbGV0IHByb3BzID0ge30gYXMgeyBrZXk6IG51bWJlcjsgY2hpbGRyZW46IGFueSB9O1xyXG4gICAgcHJvcHMua2V5ID0gaW5kZXg7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoaXRlbS5wcm9wcyAmJiBpdGVtLnByb3BzLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5wcm9wcy5jaGlsZHJlbikpIHtcclxuICAgICAgICAgIHByb3BzLmNoaWxkcmVuID0gUmVhY3QuQ2hpbGRyZW4ubWFwKFxyXG4gICAgICAgICAgICBpdGVtLnByb3BzLmNoaWxkcmVuLFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLmNsb25lRWxlbWVudChjaGlsZCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IHRoaXMuY2xvbmVFbGVtZW50KGl0ZW0ucHJvcHMuY2hpbGRyZW4sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGl0ZW0sIHByb3BzKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlclBhbmVsKG5ld0NoaWxkcmVuLCBwcm9wcykge1xyXG4gICAgY29uc3QgeyBzaG93TW9kZWwsIGRyYXdlclByb3BzLCBtb2RhbFByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBmb3JtVmlzaWJsZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGxheW91dCA9IHtcclxuICAgICAgbGFiZWxDb2w6IHsgc3BhbjogNCB9LFxyXG4gICAgICB3cmFwcGVyQ29sOiB7IHNwYW46IDIwIH0sXHJcbiAgICB9O1xyXG4gICAgaWYgKHNob3dNb2RlbCAmJiBzaG93TW9kZWwgPT0gXCJtb2RhbFwiKSB7XHJcbiAgICAgIGxldCBuZXdNb2RhbFByb3BzID0gb21pdChtb2RhbFByb3BzLCBbXCJ2aXNpYmxlXCJdKTtcclxuICAgICAgbmV3TW9kYWxQcm9wcyA9IHsgY2VudGVyZWQ6IHRydWUsIC4uLm5ld01vZGFsUHJvcHMgfTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWwgey4uLm5ld01vZGFsUHJvcHN9IHZpc2libGU9e2Zvcm1WaXNpYmxlfT5cclxuICAgICAgICAgIDxGb3JtIHJlZj17dGhpcy5mb3JtUmVmfSB7Li4ubGF5b3V0fSB7Li4ucHJvcHN9PlxyXG4gICAgICAgICAgICB7bmV3Q2hpbGRyZW59XHJcbiAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgPC9Nb2RhbD5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoc2hvd01vZGVsICYmIHNob3dNb2RlbCA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQoZHJhd2VyUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEcmF3ZXIgey4uLm5ld0RyYXdlclByb3BzfSB2aXNpYmxlPXtmb3JtVmlzaWJsZX0+XHJcbiAgICAgICAgICA8Rm9ybSByZWY9e3RoaXMuZm9ybVJlZn0gey4uLnByb3BzfT5cclxuICAgICAgICAgICAge25ld0NoaWxkcmVufVxyXG4gICAgICAgICAgPC9Gb3JtPlxyXG4gICAgICAgIDwvRHJhd2VyPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8Rm9ybSByZWY9e3RoaXMuZm9ybVJlZn0gey4uLmxheW91dH0gey4uLnByb3BzfT5cclxuICAgICAgICAgIHtuZXdDaGlsZHJlbn1cclxuICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcyxcclxuICAgICAgeyBjaGlsZHJlbiwgc2hvd01vZGVsIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3Q2hpbGRyZW4gPSBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCwgaW5kZXgpIHtcclxuICAgICAgcmV0dXJuIF90aGlzLmNsb25lRWxlbWVudChjaGlsZCwgaW5kZXgpO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcImZvcm1cIixcclxuICAgICAgXCJzaG93TW9kZWxcIixcclxuICAgICAgXCJtb2RhbFByb3BzXCIsXHJcbiAgICAgIFwiZHJhd2VyUHJvcHNcIixcclxuICAgICAgXCJ1cmxcIixcclxuICAgICAgXCJlbmNyeXB0RmllbGRzXCIsXHJcbiAgICBdKTtcclxuXHJcbiAgICByZXR1cm4gPD57dGhpcy5yZW5kZXJQYW5lbChuZXdDaGlsZHJlbiwgcHJvcHMpfTwvPjtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgTnNjRm9ybTtcclxuIl19
|
|
417
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2Zvcm0vRm9ybS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwicmVxdWVzdCIsIm9taXQiLCJOc2NGb3JtIiwicHJvcHMiLCJjcmVhdGVSZWYiLCJmb3JtVmlzaWJsZSIsImZvcm1Nb2RhbFByb3BzIiwiZm9ybURyYXdlclByb3BzIiwibmFtZSIsImZvcm1SZWYiLCJjdXJyZW50IiwiZ2V0RmllbGRFcnJvciIsImdldEZpZWxkSW5zdGFuY2UiLCJnZXRGaWVsZHNFcnJvciIsImdldEZpZWxkc1ZhbHVlIiwiZ2V0RmllbGRWYWx1ZSIsImlzRmllbGRzVG91Y2hlZCIsImlzRmllbGRUb3VjaGVkIiwiaXNGaWVsZFZhbGlkYXRpbmciLCJyZXNldEZpZWxkcyIsIm9wdGlvbnMiLCJzY3JvbGxUb0ZpZWxkIiwiZmlsZHMiLCJzZXRGaWVsZHMiLCJ2YWx1ZXMiLCJzZXRGaWVsZHNWYWx1ZSIsInN1Ym1pdCIsInVybCIsImNhbGxiYWNrIiwibXNnIiwicHJvcHNVcmwiLCJlbmNyeXB0RmllbGRzIiwiZW5jcnlwdFByb3BwcyIsIkVycm9yIiwibWV0aG9kIiwicmVxdWVzdFVybCIsInJlcXVlc3REYXRhIiwicmVxdWVzdEVuY3J5cHQiLCJyZXF1ZXN0UGFyYW0iLCJkYXRhIiwicGFyYW1zIiwidG9Mb3dlckNhc2UiLCJ0aGVuIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInZhbGlkYXRlRmllbGRzIiwicmVzZXRWYWx1ZSIsInNldFN0YXRlIiwidmFsdWUiLCJpdGVtIiwiaW5kZXgiLCJfdGhpcyIsImtleSIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsImNsb25lRWxlbWVudCIsImUiLCJuZXdDaGlsZHJlbiIsInNob3dNb2RlbCIsImRyYXdlclByb3BzIiwibW9kYWxQcm9wcyIsInN0YXRlIiwibGF5b3V0IiwibGFiZWxDb2wiLCJzcGFuIiwid3JhcHBlckNvbCIsIm5ld01vZGFsUHJvcHMiLCJjZW50ZXJlZCIsImhpZGVGb3JtIiwiYmluZCIsIm5ld0RyYXdlclByb3BzIiwicmVuZGVyUGFuZWwiLCJuZXh0UHJvcHMiLCJwcmV2U3RhdGUiLCJKU09OIiwic3RyaW5naWZ5IiwibmV3U3RhdGUiLCJ2aXNpYmxlIiwidW5kZWZpbmVkIiwiZm9ybVZpc2liYWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQVdBLFNBQVNDLE9BQVQsUUFBd0IsdUJBQXhCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjs7SUFVTUMsTzs7Ozs7QUFRSixtQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiwrQkFBTUEsS0FBTjs7QUFEaUIsNEVBUFRMLEtBQUssQ0FBQ00sU0FBTixFQU9TOztBQUFBLDZEQU5YO0FBQ05DLE1BQUFBLFdBQVcsRUFBRSxLQURQO0FBRU5DLE1BQUFBLGNBQWMsRUFBRSxFQUZWO0FBR05DLE1BQUFBLGVBQWUsRUFBRTtBQUhYLEtBTVc7O0FBQUE7QUFFbEI7Ozs7V0FpQ0Q7QUFDQSwyQkFBY0MsSUFBZCxFQUFvQjtBQUFBOztBQUNsQixzQ0FBTyxLQUFLQyxPQUFMLENBQWFDLE9BQXBCLDBEQUFPLHNCQUFzQkMsYUFBdEIsQ0FBb0NILElBQXBDLENBQVA7QUFDRCxLLENBRUQ7Ozs7V0FDQSwwQkFBaUJBLElBQWpCLEVBQXVCO0FBQUE7O0FBQ3JCLHVDQUFPLEtBQUtDLE9BQUwsQ0FBYUMsT0FBcEIsMkRBQU8sdUJBQXNCRSxnQkFBdEIsQ0FBdUNKLElBQXZDLENBQVA7QUFDRCxLLENBRUQ7Ozs7V0FDQSwwQkFBaUI7QUFBQTs7QUFDZix1Q0FBTyxLQUFLQyxPQUFMLENB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QixhQUF3QkEsVUFBeEIsdUJBQXdCQSxVQUFVLENBQUVpQixPQUFwQztBQUNEOztBQUNELGlCQUFPRCxRQUFQO0FBQ0Q7QUFDRixPQVZELE1BVU8sSUFBSWxCLFNBQVMsSUFBSSxRQUFqQixFQUEyQjtBQUNoQyxZQUFJZ0IsSUFBSSxDQUFDQyxTQUFMLENBQWU3RSxlQUFmLE1BQW9DNEUsSUFBSSxDQUFDQyxTQUFMLENBQWVoQixXQUFmLENBQXhDLEVBQXFFO0FBQ25FLGNBQUlpQixTQUFRLEdBQUc7QUFDYjlFLFlBQUFBLGVBQWUsRUFBRTZEO0FBREosV0FBZjs7QUFHQSxjQUNFLENBQUFBLFdBQVcsU0FBWCxJQUFBQSxXQUFXLFdBQVgsWUFBQUEsV0FBVyxDQUFFa0IsT0FBYixNQUF5QixJQUF6QixJQUNBLENBQUFsQixXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLFlBQUFBLFdBQVcsQ0FBRWtCLE9BQWIsTUFBeUJDLFNBRjNCLEVBR0U7QUFDQUYsWUFBQUEsU0FBUSxDQUFDRyxZQUFULEdBQXdCcEIsV0FBeEIsYUFBd0JBLFdBQXhCLHVCQUF3QkEsV0FBVyxDQUFFa0IsT0FBckM7QUFDRDs7QUFFRCxpQkFBT0QsU0FBUDtBQUNEO0FBQ0Y7O0FBQ0QsYUFBTyxJQUFQO0FBQ0Q7Ozs7RUF6Q21CdEYsYTs7QUE4UXRCLGVBQWVHLE9BQWYiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOuihqOWNlee7hOS7tlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDQtMDkgMDk6MTg6MzRcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTIzIDE1OjIzOjU0XHJcbiAqL1xyXG5pbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQge1xyXG4gIEZvcm0sXHJcbiAgRm9ybVByb3BzLFxyXG4gIE1vZGFsLFxyXG4gIERyYXdlcixcclxuICBNb2RhbFByb3BzLFxyXG4gIERyYXdlclByb3BzLFxyXG4gIG1lc3NhZ2UsXHJcbn0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgRm9ybUluc3RhbmNlIH0gZnJvbSBcImFudGQvbGliL2Zvcm1cIjtcclxuaW1wb3J0IHsgcmVxdWVzdCB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuXHJcbmludGVyZmFjZSBJRm9ybVByb3BzIGV4dGVuZHMgRm9ybVByb3BzIHtcclxuICBzaG93TW9kZWw/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIG1vZGFsUHJvcHM/OiBNb2RhbFByb3BzO1xyXG4gIGRyYXdlclByb3BzPzogRHJhd2VyUHJvcHM7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIGVuY3J5cHRGaWVsZHM/OiBBcnJheTxTdHJpbmc+O1xyXG59XHJcblxyXG5jbGFzcyBOc2NGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJRm9ybVByb3BzPiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxGb3JtSW5zdGFuY2U+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBmb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICBmb3JtTW9kYWxQcm9wczoge30sXHJcbiAgICBmb3JtRHJhd2VyUHJvcHM6IHt9LFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKSB7XHJcbiAgICBjb25zdCB7IG1vZGFsUHJvcHMsIGRyYXdlclByb3BzLCBzaG93TW9kZWwgfSA9IG5leHRQcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybU1vZGFsUHJvcHMsIGZvcm1EcmF3ZXJQcm9wcyB9ID0gcHJldlN0YXRlO1xyXG4gICAgaWYgKHNob3dNb2RlbCA9PSBcIm1vZGFsXCIpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGZvcm1Nb2RhbFByb3BzKSAhPT0gSlNPTi5zdHJpbmdpZnkobW9kYWxQcm9wcykpIHtcclxuICAgICAgICBsZXQgbmV3U3RhdGUgPSB7XHJcbiAgICAgICAgICBmb3JtRHJhd2VyUHJvcHM6IG1vZGFsUHJvcHMsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKG1vZGFsUHJvcHM/LnZpc2libGUgIT09IG51bGwgfHwgbW9kYWxQcm9wcz8udmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBuZXdTdGF0ZS5mb3JtVmlzaWJhbGUgPSBtb2RhbFByb3BzPy52aXNpYmxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoc2hvd01vZGVsID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGZvcm1EcmF3ZXJQcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGRyYXdlclByb3BzKSkge1xyXG4gICAgICAgIGxldCBuZXdTdGF0ZSA9IHtcclxuICAgICAgICAgIGZvcm1EcmF3ZXJQcm9wczogZHJhd2VyUHJvcHMsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZHJhd2VyUHJvcHM/LnZpc2libGUgIT09IG51bGwgfHxcclxuICAgICAgICAgIGRyYXdlclByb3BzPy52aXNpYmxlICE9PSB1bmRlZmluZWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG5ld1N0YXRlLmZvcm1WaXNpYmFsZSA9IGRyYXdlclByb3BzPy52aXNpYmxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5a+55bqU5a2X5q615ZCN55qE6ZSZ6K+v5L+h5oGvXHJcbiAgZ2V0RmllbGRFcnJvcihuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkRXJyb3IobmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluWvueW6lOWtl+auteWunuS+i1xyXG4gIGdldEZpZWxkSW5zdGFuY2UobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZEluc3RhbmNlKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bkuIDnu4TlrZfmrrXlkI3lr7nlupTnmoTplJnor6/kv6Hmga/vvIzov5Tlm57kuLrmlbDnu4TlvaLlvI9cclxuICBnZXRGaWVsZHNFcnJvcigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W5LiA57uE5a2X5q615ZCN5a+55bqU55qE5YC877yM5Lya5oyJ54Wn5a+55bqU57uT5p6E6L+U5ZueXHJcbiAgZ2V0RmllbGRzVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPluWvueW6lOWtl+auteWQjeeahOWAvFxyXG4gIGdldEZpZWxkVmFsdWUobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZFZhbHVlKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/mo4Dmn6XkuIDnu4TlrZfmrrXmmK/lkKbooqvnlKjmiLfmk43kvZzov4dcclxuICBpc0ZpZWxkc1RvdWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmlzRmllbGRzVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgLy/mo4Dmn6Xlr7nlupTlrZfmrrXmmK/lkKbooqvnlKjmiLfmk43kvZzov4dcclxuICBpc0ZpZWxkVG91Y2hlZChuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmlzRmllbGRUb3VjaGVkKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/mo4Dmn6XkuIDnu4TlrZfmrrXmmK/lkKbmraPlnKjmoKHpqoxcclxuICBpc0ZpZWxkVmFsaWRhdGluZyhuYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmlzRmllbGRWYWxpZGF0aW5nKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy/ph43nva7kuIDnu4TlrZfmrrXliLBcclxuICByZXNldEZpZWxkcygpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9GaWVsZChuYW1lLCBvcHRpb25zKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2Nyb2xsVG9GaWVsZChuYW1lLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHNldEZpZWxkcyhmaWxkcykge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkcyhmaWxkcyk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KCkge1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnN1Ym1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoXHJcbiAgICB1cmw/OiBzdHJpbmcsXHJcbiAgICBvcHRpb25zPzogYW55LFxyXG4gICAgY2FsbGJhY2s/OiAocmVzPzogYW55KSA9PiB2b2lkLFxyXG4gICAgbXNnPzogYm9vbGVhblxyXG4gICkge1xyXG4gICAgY29uc3QgeyB1cmw6IHByb3BzVXJsLCBlbmNyeXB0RmllbGRzOiBlbmNyeXB0UHJvcHBzID0gW10gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXVybCAmJiAhcHJvcHNVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwi5rKh5pyJ5LiK5Lyg55qEdXJsIVwiKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgbWV0aG9kID0gXCJwb3N0XCIgfSA9IG9wdGlvbnM7XHJcbiAgICBsZXQgcmVxdWVzdFVybCA9IHVybCA/IHVybCA6IHByb3BzVXJsO1xyXG4gICAgbGV0IHJlcXVlc3REYXRhID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQuZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCByZXF1ZXN0RW5jcnlwdCA9IGVuY3J5cHRQcm9wcHM7XHJcbiAgICBsZXQgcmVxdWVzdFBhcmFtID0geyBtZXRob2Q6IG1ldGhvZCwgZGF0YTogcmVxdWVzdERhdGEgfSBhcyB7IGRhdGE6IGFueSB9O1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBkYXRhLCBlbmNyeXB0RmllbGRzLCAuLi5wYXJhbXMgfSA9IG9wdGlvbnM7XHJcbiAgICAgIHJlcXVlc3RQYXJhbSA9IHsgLi4ucmVxdWVzdFBhcmFtLCAuLi5wYXJhbXMgfTtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICBkZWxldGUgcmVxdWVzdFBhcmFtLmRhdGE7XHJcbiAgICAgICAgaWYgKG1ldGhvZC50b0xvd2VyQ2FzZSgpID09IFwiZ2V0XCIpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbSA9IHsgLi4ucmVxdWVzdFBhcmFtLCAuLi5wYXJhbXMsIHBhcmFtczogZGF0YSB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXF1ZXN0UGFyYW0gPSB7IC4uLnJlcXVlc3RQYXJhbSwgLi4ucGFyYW1zLCBkYXRhOiBkYXRhIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChlbmNyeXB0RmllbGRzKSB7XHJcbiAgICAgICAgcmVxdWVzdEVuY3J5cHQgPSBlbmNyeXB0RmllbGRzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdChyZXF1ZXN0VXJsLCB7XHJcbiAgICAgIC4uLnJlcXVlc3RQYXJhbSxcclxuICAgICAgZW5jcnlwdEZpZWxkczogcmVxdWVzdEVuY3J5cHQsXHJcbiAgICB9KVxyXG4gICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICBpZiAobXNnKSB7XHJcbiAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuaPkOS6pOaIkOWKn1wiKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmj5DkuqTlpLHotKVcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRmllbGRzKG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudC52YWxpZGF0ZUZpZWxkcyhuYW1lKTtcclxuICB9XHJcblxyXG4gIGhpZGVGb3JtKHJlc2V0VmFsdWUgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICB7XHJcbiAgICAgICAgZm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc2V0VmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNob3dGb3JtKHZhbHVlPzogYW55LCByZXNldFZhbHVlID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAge1xyXG4gICAgICAgIGZvcm1WaXNpYmxlOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAocmVzZXRWYWx1ZSkgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2xvbmVFbGVtZW50KGl0ZW0sIGluZGV4ID0gMCkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PSBcInN0cmluZ1wiKSByZXR1cm4gaXRlbTtcclxuICAgIGxldCBwcm9wcyA9IHt9IGFzIHsga2V5OiBudW1iZXI7IGNoaWxkcmVuOiBhbnkgfTtcclxuICAgIHByb3BzLmtleSA9IGluZGV4O1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGl0ZW0ucHJvcHMgJiYgaXRlbS5wcm9wcy5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0ucHJvcHMuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICBwcm9wcy5jaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLm1hcChcclxuICAgICAgICAgICAgaXRlbS5wcm9wcy5jaGlsZHJlbixcclxuICAgICAgICAgICAgZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBfdGhpcy5jbG9uZUVsZW1lbnQoY2hpbGQsIGluZGV4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcHJvcHMuY2hpbGRyZW4gPSB0aGlzLmNsb25lRWxlbWVudChpdGVtLnByb3BzLmNoaWxkcmVuLCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChpdGVtLCBwcm9wcyk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXJQYW5lbChuZXdDaGlsZHJlbiwgcHJvcHMpIHtcclxuICAgIGNvbnN0IHsgc2hvd01vZGVsLCBkcmF3ZXJQcm9wcywgbW9kYWxQcm9wcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZm9ybVZpc2libGUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBsYXlvdXQgPSB7XHJcbiAgICAgIGxhYmVsQ29sOiB7IHNwYW46IDQgfSxcclxuICAgICAgd3JhcHBlckNvbDogeyBzcGFuOiAyMCB9LFxyXG4gICAgfTtcclxuICAgIGlmIChzaG93TW9kZWwgJiYgc2hvd01vZGVsID09IFwibW9kYWxcIikge1xyXG4gICAgICBsZXQgbmV3TW9kYWxQcm9wcyA9IG9taXQobW9kYWxQcm9wcywgW1widmlzaWJsZVwiXSk7XHJcbiAgICAgIG5ld01vZGFsUHJvcHMgPSB7IGNlbnRlcmVkOiB0cnVlLCAuLi5uZXdNb2RhbFByb3BzIH07XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1vZGFsXHJcbiAgICAgICAgICBvbkNhbmNlbD17dGhpcy5oaWRlRm9ybS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgey4uLm5ld01vZGFsUHJvcHN9XHJcbiAgICAgICAgICB2aXNpYmxlPXtmb3JtVmlzaWJsZX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8Rm9ybSByZWY9e3RoaXMuZm9ybVJlZn0gey4uLmxheW91dH0gey4uLnByb3BzfSBwcmVzZXJ2ZT17ZmFsc2V9PlxyXG4gICAgICAgICAgICB7bmV3Q2hpbGRyZW59XHJcbiAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgPC9Nb2RhbD5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoc2hvd01vZGVsICYmIHNob3dNb2RlbCA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQoZHJhd2VyUHJvcHMsIFtcInZpc2libGVcIl0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEcmF3ZXJcclxuICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuaGlkZUZvcm0uYmluZCh0aGlzKX1cclxuICAgICAgICAgIHsuLi5uZXdEcmF3ZXJQcm9wc31cclxuICAgICAgICAgIHZpc2libGU9e2Zvcm1WaXNpYmxlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxGb3JtIHJlZj17dGhpcy5mb3JtUmVmfSB7Li4ubGF5b3V0fSB7Li4ucHJvcHN9PlxyXG4gICAgICAgICAgICB7bmV3Q2hpbGRyZW59XHJcbiAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgPC9EcmF3ZXI+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxGb3JtIHJlZj17dGhpcy5mb3JtUmVmfSB7Li4ubGF5b3V0fSB7Li4ucHJvcHN9PlxyXG4gICAgICAgICAge25ld0NoaWxkcmVufVxyXG4gICAgICAgIDwvRm9ybT5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzLFxyXG4gICAgICB7IGNoaWxkcmVuLCBzaG93TW9kZWwgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdDaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xyXG4gICAgICByZXR1cm4gX3RoaXMuY2xvbmVFbGVtZW50KGNoaWxkLCBpbmRleCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHByb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgIFwiZm9ybVwiLFxyXG4gICAgICBcInNob3dNb2RlbFwiLFxyXG4gICAgICBcIm1vZGFsUHJvcHNcIixcclxuICAgICAgXCJkcmF3ZXJQcm9wc1wiLFxyXG4gICAgICBcInVybFwiLFxyXG4gICAgICBcImVuY3J5cHRGaWVsZHNcIixcclxuICAgIF0pO1xyXG5cclxuICAgIHJldHVybiA8Pnt0aGlzLnJlbmRlclBhbmVsKG5ld0NoaWxkcmVuLCBwcm9wcyl9PC8+O1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBOc2NGb3JtO1xyXG4iXX0=
|
package/lib/select/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ interface ISelectProps extends SelectProps<any> {
|
|
|
10
10
|
showGroup?: boolean;
|
|
11
11
|
addData?: Array<Object>;
|
|
12
12
|
deleteData?: Array<String>;
|
|
13
|
+
valueBreak?: string;
|
|
13
14
|
[proName: string]: any;
|
|
14
15
|
}
|
|
15
16
|
export default class NSCSelect extends PureComponent<ISelectProps> {
|
|
@@ -24,6 +25,7 @@ export default class NSCSelect extends PureComponent<ISelectProps> {
|
|
|
24
25
|
};
|
|
25
26
|
store: any;
|
|
26
27
|
constructor(props: any);
|
|
28
|
+
resetData(): void;
|
|
27
29
|
getData(): any[];
|
|
28
30
|
getValue(): any;
|
|
29
31
|
setValue(value: any): void;
|
|
@@ -33,6 +35,7 @@ export default class NSCSelect extends PureComponent<ISelectProps> {
|
|
|
33
35
|
renderOption(optionData: any): any;
|
|
34
36
|
renderChildren(): JSX.Element;
|
|
35
37
|
onChange(value: any, options: any): void;
|
|
38
|
+
onDropdownVisibleChange(open: any): void;
|
|
36
39
|
render(): JSX.Element;
|
|
37
40
|
}
|
|
38
41
|
export {};
|
package/lib/select/index.js
CHANGED
|
@@ -192,6 +192,24 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
_createClass(NSCSelect, [{
|
|
195
|
+
key: "resetData",
|
|
196
|
+
value: function resetData() {
|
|
197
|
+
var children = this.props.children;
|
|
198
|
+
var _this$state = this.state,
|
|
199
|
+
allDataSource = _this$state.allDataSource,
|
|
200
|
+
allChildren = _this$state.allChildren;
|
|
201
|
+
|
|
202
|
+
if (children) {
|
|
203
|
+
this.setState({
|
|
204
|
+
children: allChildren
|
|
205
|
+
});
|
|
206
|
+
} else {
|
|
207
|
+
this.setState({
|
|
208
|
+
dataSource: allDataSource
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}, {
|
|
195
213
|
key: "getData",
|
|
196
214
|
value: function getData() {
|
|
197
215
|
return this.state.allDataSource;
|
|
@@ -235,9 +253,9 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
235
253
|
data = _this$props2.data,
|
|
236
254
|
options = _this$props2.options,
|
|
237
255
|
children = _this$props2.children;
|
|
238
|
-
var _this$
|
|
239
|
-
allDataSource = _this$
|
|
240
|
-
allChildren = _this$
|
|
256
|
+
var _this$state2 = this.state,
|
|
257
|
+
allDataSource = _this$state2.allDataSource,
|
|
258
|
+
allChildren = _this$state2.allChildren;
|
|
241
259
|
|
|
242
260
|
if (!children && (data || options)) {
|
|
243
261
|
var newData = data ? data : options;
|
|
@@ -269,9 +287,9 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
269
287
|
}, {
|
|
270
288
|
key: "onSearch",
|
|
271
289
|
value: function onSearch(value) {
|
|
272
|
-
var _this$
|
|
273
|
-
allDataSource = _this$
|
|
274
|
-
allChildren = _this$
|
|
290
|
+
var _this$state3 = this.state,
|
|
291
|
+
allDataSource = _this$state3.allDataSource,
|
|
292
|
+
allChildren = _this$state3.allChildren;
|
|
275
293
|
var _this$props3 = this.props,
|
|
276
294
|
_this$props3$labelFie = _this$props3.labelField,
|
|
277
295
|
labelField = _this$props3$labelFie === void 0 ? "label" : _this$props3$labelFie,
|
|
@@ -388,9 +406,9 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
388
406
|
|
|
389
407
|
var _this$props$showGroup = this.props.showGroup,
|
|
390
408
|
showGroup = _this$props$showGroup === void 0 ? true : _this$props$showGroup;
|
|
391
|
-
var _this$
|
|
392
|
-
dataSource = _this$
|
|
393
|
-
children = _this$
|
|
409
|
+
var _this$state4 = this.state,
|
|
410
|
+
dataSource = _this$state4.dataSource,
|
|
411
|
+
children = _this$state4.children;
|
|
394
412
|
|
|
395
413
|
if (children) {
|
|
396
414
|
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
@@ -429,6 +447,13 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
429
447
|
onChange(value, options);
|
|
430
448
|
}
|
|
431
449
|
}
|
|
450
|
+
}, {
|
|
451
|
+
key: "onDropdownVisibleChange",
|
|
452
|
+
value: function onDropdownVisibleChange(open) {
|
|
453
|
+
if (!open) {
|
|
454
|
+
this.resetData();
|
|
455
|
+
}
|
|
456
|
+
}
|
|
432
457
|
}, {
|
|
433
458
|
key: "render",
|
|
434
459
|
value: function render() {
|
|
@@ -462,13 +487,15 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
462
487
|
}, /*#__PURE__*/React.createElement(_Select, _extends({
|
|
463
488
|
value: this.state.selectValue,
|
|
464
489
|
onChange: this.onChange.bind(this),
|
|
465
|
-
onSearch: this.onSearch.bind(this)
|
|
490
|
+
onSearch: this.onSearch.bind(this),
|
|
491
|
+
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
466
492
|
}, props, params), this.renderChildren()));
|
|
467
493
|
} else {
|
|
468
494
|
return /*#__PURE__*/React.createElement(_Select, _extends({
|
|
469
495
|
value: this.state.selectValue,
|
|
470
496
|
onSearch: this.onSearch.bind(this),
|
|
471
|
-
onChange: this.onChange.bind(this)
|
|
497
|
+
onChange: this.onChange.bind(this),
|
|
498
|
+
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
472
499
|
}, props, params), this.renderChildren());
|
|
473
500
|
}
|
|
474
501
|
}
|
|
@@ -482,4 +509,4 @@ _defineProperty(NSCSelect, "Option", Option);
|
|
|
482
509
|
_defineProperty(NSCSelect, "OptGroup", OptGroup);
|
|
483
510
|
|
|
484
511
|
export { NSCSelect as default };
|
|
485
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsImNscyIsIlBpbnlpbk1hdGNoIiwiT3B0aW9uIiwiT3B0R3JvdXAiLCJOU0NTZWxlY3QiLCJwcm9wcyIsImRhdGFTb3VyY2UiLCJzZWxlY3RWYWx1ZSIsImFsbERhdGFTb3VyY2UiLCJjaGlsZHJlbiIsImFsbENoaWxkcmVuIiwiZGF0YSIsInN0b3JlIiwib3B0aW9ucyIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmFsdWVGaWVsZCIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwic3RvcmVzIiwidmlld1VybCIsImdldEFsbERhdGEiLCJuZXdEYXRhIiwibGVuZ3RoIiwidmFsdWVGaWVsZHMiLCJzcGxpdCIsIm1hcCIsIml0ZW0iLCJpIiwidmFsdWUiLCJ2IiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwiRXJyb3IiLCJfdGhpcyIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInN0YXRlIiwibmV3UHJvcHMiLCJuZXdTdGF0ZSIsIlNuYXBzaG90IiwiSlNPTiIsInN0cmluZ2lmeSIsIkFycmF5IiwiaXNBcnJheSIsInN0YXRlQ2hpbGRyZW5Qcm9wcyIsInMiLCJwdXNoIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJsYWJlbEZpZWxkIiwiZmlsdGVyT3B0aW9uIiwib25TZWFyY2giLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJkZWZhdWx0U3R5bGUiLCJwYXJhbXMiLCJzaG93U2VhcmNoIiwib3B0aW9uRmlsdGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImNsYXNzTmFtZSIsImJpbmQiLCJyZW5kZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFFQSxPQUFPQyxLQUFQLE1BQWtDLGFBQWxDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLE9BQU9DLEdBQVAsTUFBZ0IsWUFBaEI7QUFFQSxPQUFPQyxXQUFQLE1BQXdCLGNBQXhCO0FBQ0EsSUFBUUMsTUFBUixXQUFRQSxNQUFSO0FBQUEsSUFBZ0JDLFFBQWhCLFdBQWdCQSxRQUFoQjs7SUFhcUJDLFM7Ozs7O0FBV25CLHFCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLCtCQUFNQSxLQUFOOztBQURpQiw2REFSWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxNQUFBQSxXQUFXLEVBQUUsSUFGUDtBQUdOQyxNQUFBQSxhQUFhLEVBQUUsRUFIVDtBQUlOQyxNQUFBQSxRQUFRLEVBQUUsSUFKSjtBQUtOQyxNQUFBQSxXQUFXLEVBQUU7QUFMUCxLQVFXOztBQUFBLDZEQURYLEVBQ1c7O0FBRWpCLFFBQ0VDLElBREYsR0FRSU4sS0FSSixDQUNFTSxJQURGO0FBQUEsdUJBUUlOLEtBUkosQ0FFRU8sS0FGRjtB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LEVBQUUsS0FBS2lGLFFBQUwsQ0FBY1EsSUFBZCxDQUFtQixJQUFuQixDQUZaO0FBR0UsVUFBQSxRQUFRLEVBQUUsS0FBSzdCLFFBQUwsQ0FBYzZCLElBQWQsQ0FBbUIsSUFBbkI7QUFIWixXQUlNM0YsS0FKTixFQUtNcUYsTUFMTixHQU9HLEtBQUtPLGNBQUwsRUFQSCxDQURGLENBREY7QUFhRCxPQWRELE1BY087QUFDTCw0QkFDRTtBQUNFLFVBQUEsS0FBSyxFQUFFLEtBQUs3QyxLQUFMLENBQVc3QyxXQURwQjtBQUVFLFVBQUEsUUFBUSxFQUFFLEtBQUs0RCxRQUFMLENBQWM2QixJQUFkLENBQW1CLElBQW5CLENBRlo7QUFHRSxVQUFBLFFBQVEsRUFBRSxLQUFLUixRQUFMLENBQWNRLElBQWQsQ0FBbUIsSUFBbkI7QUFIWixXQUlNM0YsS0FKTixFQUtNcUYsTUFMTixHQU9HLEtBQUtPLGNBQUwsRUFQSCxDQURGO0FBV0Q7QUFDRjs7OztFQXRWb0N0RyxhOztnQkFBbEJTLFMsWUFDSEYsTTs7Z0JBREdFLFMsY0FFREQsUTs7U0FGQ0MsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcclxuICBzaG93R3JvdXA/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhue7hFxyXG4gIGFkZERhdGE/OiBBcnJheTxPYmplY3Q+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5LuO5aKe5Yqg6aKd5aSW55qE5pWw5o2uXHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PFN0cmluZz47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzliKDpmaTku47mlbDmja7lupPkuK3ojrflj5bliLDnmoTmjIflrprmlbDmja5cclxuICBbcHJvTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5TQ1NlbGVjdCBleHRlbmRzIFB1cmVDb21wb25lbnQ8SVNlbGVjdFByb3BzPiB7XHJcbiAgc3RhdGljIE9wdGlvbiA9IE9wdGlvbjtcclxuICBzdGF0aWMgT3B0R3JvdXAgPSBPcHRHcm91cDtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgc2VsZWN0VmFsdWU6IG51bGwsXHJcbiAgICBhbGxEYXRhU291cmNlOiBbXSxcclxuICAgIGNoaWxkcmVuOiBudWxsLFxyXG4gICAgYWxsQ2hpbGRyZW46IG51bGwsXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGFkZERhdGEgPSBbXSxcclxuICAgICAgZGVsZXRlRGF0YSA9IFtdLFxyXG4gICAgICB2YWx1ZUZpZWxkID0gXCJ2YWx1ZVwiLFxyXG4gICAgfSA9IHByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB1cmwsXHJcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXJzUG9wcyA9IHt9LFxyXG4gICAgICB2aWV3bmFtZSxcclxuICAgICAgY2FjaGVkLFxyXG4gICAgICBjYWNoZUtleSxcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcbiAgICBsZXQgeyB2aWV3VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGdldEFsbERhdGEgPSAoZGF0YSkgPT4ge1xyXG4gICAgICBsZXQgbmV3RGF0YSA9IFsuLi5kYXRhXTtcclxuICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0RhdGEgPSBbLi4uYWRkRGF0YSwgLi4ubmV3RGF0YV07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICBuZXdEYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChkZWxldGVEYXRhLmluZGV4T2YodmFsdWUpID4gLTEpIHtcclxuICAgICAgICAgICAgbmV3RGF0YS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgICB9O1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKCh2aWV3bmFtZSB8fCB1cmwpICYmIGRhdGEgPT0gbnVsbCAmJiBvcHRpb25zID09IG51bGwpIHtcclxuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVLZXkgPSBjYWNoZUtleTtcclxuICAgICAgICBpZiAodmlld25hbWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICBpc0NhY2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVLZXkgPSBpc0NhY2hlS2V5ID8gaXNDYWNoZUtleSA6IHZpZXduYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBhdXRvTG9hZDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiB1cmwgfHwgdmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmFsbERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIFNuYXBzaG90KSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGFsbERhdGFTb3VyY2UpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY29uc3Qgc3RhdGVDaGlsZHJlblByb3BzOiBhbnkgPSBbXTtcclxuICAgICAgYWxsQ2hpbGRyZW4ubWFwKChzOiBhbnkpID0+IHtcclxuICAgICAgICBzdGF0ZUNoaWxkcmVuUHJvcHMucHVzaChzLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNoaWxkcmVuUHJvcHMucHVzaChjLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzdGF0ZUNoaWxkcmVuUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShjaGlsZHJlblByb3BzKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvblNlYXJjaCh2YWx1ZSkge1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgbGFiZWxGaWVsZCA9IFwibGFiZWxcIixcclxuICAgICAgZmlsdGVyT3B0aW9uID0gdHJ1ZSxcclxuICAgICAgb25TZWFyY2gsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZmlsdGVyT3B0aW9uKSB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkYXRhU291cmNlOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbGxDaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgYWxsQ2hpbGRyZW4ubWFwKChjaGlsZDogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBsYWJlbCA9IGNoaWxkPy5wcm9wcz8uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogcmVzdWx0LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uU2VhcmNoICYmIG9uU2VhcmNoKHZhbHVlKTtcclxuICB9XHJcbiAgcmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpIHtcclxuICAgIGxldCB7IGxhYmVsRmllbGQgPSBcImxhYmVsXCIsIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICByZXR1cm4gb3B0aW9uRGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgaWYgKHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgdmFsdWUgPSBpdGVtW3ZhbHVlRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQga2V5ID0gaXRlbS5pZCA/IChpdGVtLmlkICE9PSBcInVuZGVmaW5lZFwiID8gaXRlbS5pZCA6IHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBsYWJlbCA9IGl0ZW1bbGFiZWxGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgaXRlbVtsXSA6IGxhYmVsICsgXCItXCIgKyBpdGVtW2xdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE9wdGlvblxyXG4gICAgICAgICAga2V5PXtrZXl9XHJcbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XHJcbiAgICAgICAgICBsYWJlbD17bGFiZWx9XHJcbiAgICAgICAgICBkaXNhYmxlZD17aXRlbS5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7bGFiZWx9XHJcbiAgICAgICAgPC9PcHRpb24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyQ2hpbGRyZW4oKSB7XHJcbiAgICBjb25zdCB7IHNob3dHcm91cCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UsIGNoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIHJldHVybiA8PntjaGlsZHJlbn08Lz47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgb3B0R3JvdXBEYXRhID0ge30sXHJcbiAgICAgICAgb3B0aW9uRGF0YSA9IFtdO1xyXG4gICAgICBkYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbGFiZWwgPSBpdGVtLmdyb3VwTmFtZTtcclxuICAgICAgICBpZiAobGFiZWwgJiYgc2hvd0dyb3VwKSB7XHJcbiAgICAgICAgICBpZiAoIW9wdEdyb3VwRGF0YVtsYWJlbF0pIG9wdEdyb3VwRGF0YVtsYWJlbF0gPSBbXTtcclxuICAgICAgICAgIG9wdEdyb3VwRGF0YVtsYWJlbF0ucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9uRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBvcHRpb24gPSB0aGlzLnJlbmRlck9wdGlvbihvcHRpb25EYXRhKTtcclxuICAgICAgbGV0IG9wdEdyb3VwID0gT2JqZWN0LmtleXMob3B0R3JvdXBEYXRhKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8T3B0R3JvdXAga2V5PXtrZXl9IGxhYmVsPXtrZXl9PlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJPcHRpb24ob3B0R3JvdXBEYXRhW2tleV0pfVxyXG4gICAgICAgICAgPC9PcHRHcm91cD5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAge29wdGlvbn1cclxuICAgICAgICAgIHtvcHRHcm91cH1cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBzdG9yZSxcclxuICAgICAgZGF0YSxcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSA9IHRydWUsXHJcbiAgICAgIHNob3dHcm91cCA9IHRydWUsXHJcbiAgICAgIGFkZERhdGEsXHJcbiAgICAgIGRlbGV0ZURhdGEsXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBwcm9wcyA9IHtcclxuICAgICAgZmlsdGVyT3B0aW9uOiBmYWxzZSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJ1ZSxcclxuICAgICAgb3B0aW9uRmlsdGVyUHJvcDogXCJsYWJlbFwiLFxyXG4gICAgICBwbGFjZWhvbGRlcjogXCLor7fpgInmi6lcIixcclxuICAgICAgYWxsb3dDbGVhcjogdHJ1ZSxcclxuICAgIH07XHJcbiAgICBpZiAoZGVmYXVsdFN0eWxlKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhzdHlsZXNbXCJuc2Nfc2VsZWN0XCJdLCB0aGlzLnByb3BzLmNsYXNzTmFtZSl9PlxyXG4gICAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZX1cclxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
512
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsImNscyIsIlBpbnlpbk1hdGNoIiwiT3B0aW9uIiwiT3B0R3JvdXAiLCJOU0NTZWxlY3QiLCJwcm9wcyIsImRhdGFTb3VyY2UiLCJzZWxlY3RWYWx1ZSIsImFsbERhdGFTb3VyY2UiLCJjaGlsZHJlbiIsImFsbENoaWxkcmVuIiwiZGF0YSIsInN0b3JlIiwib3B0aW9ucyIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmFsdWVGaWVsZCIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwic3RvcmVzIiwidmlld1VybCIsImdldEFsbERhdGEiLCJuZXdEYXRhIiwibGVuZ3RoIiwidmFsdWVGaWVsZHMiLCJzcGxpdCIsIm1hcCIsIml0ZW0iLCJpIiwidmFsdWUiLCJ2IiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwiRXJyb3IiLCJfdGhpcyIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInN0YXRlIiwibmV3UHJvcHMiLCJuZXdTdGF0ZSIsIlNuYXBzaG90IiwiSlNPTiIsInN0cmluZ2lmeSIsIkFycmF5IiwiaXNBcnJheSIsInN0YXRlQ2hpbGRyZW5Qcm9wcyIsInMiLCJwdXNoIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJsYWJlbEZpZWxkIiwiZmlsdGVyT3B0aW9uIiwib25TZWFyY2giLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJvcGVuIiwicmVzZXREYXRhIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJjbGFzc05hbWUiLCJiaW5kIiwib25Ecm9wZG93blZpc2libGVDaGFuZ2UiLCJyZW5kZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFFQSxPQUFPQyxLQUFQLE1BQWtDLGFBQWxDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLE9BQU9DLEdBQVAsTUFBZ0IsWUFBaEI7QUFFQSxPQUFPQyxXQUFQLE1BQXdCLGNBQXhCO0FBQ0EsSUFBUUMsTUFBUixXQUFRQSxNQUFSO0FBQUEsSUFBZ0JDLFFBQWhCLFdBQWdCQSxRQUFoQjs7SUFjcUJDLFM7Ozs7O0FBV25CLHFCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLCtCQUFNQSxLQUFOOztBQURpQiw2REFSWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxNQUFBQSxXQUFXLEVBQUUsSUFGUDtBQUdOQyxNQUFBQSxhQUFhLEVBQUUsRUFIVDtBQUlOQyxNQUFBQSxRQUFRLEVBQUUsSUFKSjtBQUtOQyxNQUFBQSxXQUFXLEVBQUU7QUFMUCxLQVFXOztBQUFBLDZEQURYLEVBQ1c7O0FBRWpCLFFBQ0VDLElBREYsR0FRSU4sS0FSSixDQUNFTSxJQURGO0FBQUEsdUJBUUlOLEtBUkosQ0FFRU8sS0FGRjtBQUFBLFFBRUVBLEtBRkYsNkJBRVUsRUFGVjtBQUFBLFFBR0VILFFBSEYsR0FRSUosS0FSSixDQUdFSSxRQUhGO0FBQUEsUUFJRUksT0FKRixHQVFJUixLQVJKLENBSUVRLE9BSkY7QUFBQSx5QkFRSVIsS0FSSixDQUtFUyxPQUxGO0FBQUEsUUFLRUEsT0FMRiwrQkFLWSxFQUxaO0FBQUEsNEJBUUlULEtBUkosQ0FNRVUsVUFORjtBQUFBLFFBTUVBLFVBTkYsa0NBTWUsRUFOZjtBQUFBLDRCQVFJVixLQVJKLENBT0VXLFVBUEY7QUFBQSxRQU9FQSxVQVBGLGtDQU9lLE9BUGY7O0FBU0EsUUFDRUMsR0FERixHQU9JTCxLQVBKLENBQ0VLLEdBREY7QUFBQSwyQkFPSUwsS0FQSixDQUVFTSxTQUZGO0FBQUEsUUFFYUMsYUFGYixpQ0FFNkIsRUFGN0I7QUFBQSxRQUdFQyxRQUhGLEdBT0lSLEtBUEosQ0FHRVEsUUFIRjtBQUFBLFFBSUVDLE1BSkYsR0FPSVQsS0FQSixDQUlFUyxNQUpGO0FBQUEsUUFLRUMsUUFMRixHQU9JVixLQVBKLENBS0VVLFFBTEY7QUFBQSxRQU1LQyxNQU5MLDRCQU9JWCxLQVBKOztBQVFBLGtCQUFrQmQsTUFBTSxFQUF4QjtBQUFBLFFBQU0wQixPQUFOLFdBQU1BLE9BQU47O0FBQ0EsUUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ2QsSUFBRCxFQUFVO0FBQzNCLFVBQUllLE9BQU8sc0JBQU9mLElBQVAsQ0FBWDs7QUFDQSxVQUFJRyxPQUFPLENBQUNhLE1BQVIsR0FBaUIsQ0FBckIsRUFBd0I7QUFDdEJELFFBQUFBLE9BQU8sZ0NBQU9aLE9BQVAsc0JBQW1CWSxPQUFuQixFQUFQO0FBQ0Q7O0FBQ0QsVUFBSVgsVUFBVSxDQUFDWSxNQUFYLEdBQW9CLENBQXhCLEVBQTJCO0FBQ3pCLFlBQU1DLFdBQWdCLEdBQUdaLFVBQVUsQ0FBQ2EsS0FBWCxDQUFpQixHQUFqQixDQUF6QjtBQUNBSCxRQUFBQSxPQUFPLENBQUNJLEdBQVIsQ0FBWSxVQUFDQyxJQUFELEVBQU9DLENBQVAsRUFBYTtBQUN2QixjQUFJQyxLQUFLLEdBQUcsRUFBWjtBQUNBTCxVQUFBQSxXQUFXLENBQUNFLEdBQVosQ0FBZ0IsVUFBQ0ksQ0FBRCxFQUFJQyxLQUFKLEVBQWM7QUFDNUJGLFlBQUFBLEtBQUssR0FBR0UsS0FBSyxJQUFJLENBQVQsR0FBYUYsS0FBSyxHQUFHRixJQUFJLENBQUNHLENBQUQsQ0FBekIsR0FBK0JELEtBQUssR0FBRyxHQUFSLEdBQWNGLElBQUksQ0FBQ0csQ0FBRCxDQUF6RDtBQUNELFdBRkQ7O0FBR0EsY0FBSW5CLFVBQVUsQ0FBQ3FCLE9BQVgsQ0FBbUJILEtBQW5CLElBQTRCLENBQUMsQ0FBakMsRUFBb0M7QUFDbENQLFlBQUFBLE9BQU8sQ0FBQ1csTUFBUixDQUFlTCxDQUFmLEVBQWtCLENBQWxCO0FBQ0Q7QUFDRixTQVJEO0FBU0Q7O0FBQ0QsYUFBT04sT0FBUDtBQUNELEtBbEJEOztBQW1CQSxRQUFJLENBQUNqQixRQUFMLEVBQWU7QUFDYixVQUFJLEVBQUVFLElBQUksSUFBSVMsUUFBUixJQUFvQkgsR0FBcEIsSUFBMkJKLE9BQTdCLENBQUosRUFBMkM7QUFDekMsY0FBTSxJQUFJeUIsS0FBSixDQUFVLGlDQUFWLENBQU47QUFDRDs7QUFDRCxVQUFJQyxLQUFLLGlDQUFUOztBQUNBLFVBQUlDLFVBQVU7QUFDWkMsUUFBQUEsS0FBSyxFQUFFLE9BREs7QUFFWkMsUUFBQUEsU0FBUyxnQ0FGRztBQUdaeEIsUUFBQUEsU0FBUyxFQUFFO0FBQ1R5QixVQUFBQSxZQUFZLEVBQUUsc0JBQVUvQixLQUFWLEVBQWlCQyxPQUFqQixFQUEwQjtBQUN0Q2hCLFlBQUFBLEtBQUssQ0FBQytDLFFBQU4sQ0FBZXpCLGFBQWEsQ0FBQ3dCLFlBQTdCLEVBQTJDSixLQUEzQyxFQUFrRCxDQUFDM0IsS0FBRCxFQUFRQyxPQUFSLENBQWxEO0FBQ0QsV0FIUTtBQUlUZ0MsVUFBQUEsSUFBSSxFQUFFLGNBQVVsQyxJQUFWLEVBQWdCbUMsU0FBaEIsRUFBMkJsQyxLQUEzQixFQUFrQztBQUN0QyxnQkFBTWMsT0FBTyxHQUFHRCxVQUFVLENBQUNkLElBQUQsQ0FBMUI7O0FBQ0E0QixZQUFBQSxLQUFLLENBQUNRLFFBQU4sQ0FBZTtBQUFFekMsY0FBQUEsVUFBVSxFQUFFb0IsT0FBZDtBQUF1QmxCLGNBQUFBLGFBQWEsRUFBRWtCO0FBQXRDLGFBQWY7O0FBQ0E3QixZQUFBQSxLQUFLLENBQUMrQyxRQUFOLENBQWV6QixhQUFhLENBQUMwQixJQUE3QixFQUFtQ04sS0FBbkMsRUFBMEMsQ0FBQzVCLElBQUQsRUFBT21DLFNBQVAsRUFBa0JsQyxLQUFsQixDQUExQztBQUNELFdBUlE7QUFTVG9DLFVBQUFBLFdBQVcsRUFBRSxxQkFBVXJDLElBQVYsRUFBZ0JtQyxTQUFoQixFQUEyQmxDLEtBQTNCLEVBQWtDO0FBQzdDLGdCQUFNYyxPQUFPLEdBQUdELFVBQVUsQ0FBQ2QsSUFBRCxDQUExQjs7QUFDQTRCLFlBQUFBLEtBQUssQ0FBQ1EsUUFBTixDQUFlO0FBQUV6QyxjQUFBQSxVQUFVLEVBQUVvQixPQUFkO0FBQXVCbEIsY0FBQUEsYUFBYSxFQUFFa0I7QUFBdEMsYUFBZjs7QUFDQTdCLFlBQUFBLEtBQUssQ0FBQytDLFFBQU4sQ0FBZXpCLGFBQWEsQ0FBQzZCLFdBQTdCLEVBQTBDVCxLQUExQyxFQUFpRCxDQUMvQzVCLElBRCtDLEVBRS9DbUMsU0FGK0MsRUFHL0NsQyxLQUgrQyxDQUFqRDtBQUtEO0FBakJRO0FBSEMsU0FzQlRXLE1BdEJTLENBQWQ7O0FBd0JBLFVBQUksQ0FBQ0gsUUFBUSxJQUFJSCxHQUFiLEtBQXFCTixJQUFJLElBQUksSUFBN0IsSUFBcUNFLE9BQU8sSUFBSSxJQUFwRCxFQUEwRDtBQUN4RCxZQUFJb0MsUUFBUSxHQUFHNUIsTUFBZjtBQUNBLFlBQUk2QixVQUFVLEdBQUc1QixRQUFqQjs7QUFDQSxZQUFJRixRQUFKLEVBQWM7QUFDWixjQUFJLE9BQU9DLE1BQVAsS0FBa0IsU0FBdEIsRUFBaUM7QUFDL0I0QixZQUFBQSxRQUFRLEdBQUcsSUFBWDtBQUNBQyxZQUFBQSxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBSCxHQUFnQjlCLFFBQXZDO0FBQ0Q7QUFDRjs7QUFDRG9CLFFBQUFBLFVBQVUsbUNBQ0w7QUFDRFcsVUFBQUEsUUFBUSxFQUFFLElBRFQ7QUFFRGxDLFVBQUFBLEdBQUcsRUFBRUEsR0FBRyxJQUFJTyxPQUFPLEdBQUdKLFFBRnJCO0FBRStCO0FBQ2hDQyxVQUFBQSxNQUFNLEVBQUU0QixRQUhQO0FBSUQzQixVQUFBQSxRQUFRLEVBQUU0QjtBQUpULFNBREssR0FPTFYsVUFQSyxDQUFWO0FBU0Q7O0FBQ0QsYUFBSzVCLEtBQUwsR0FBYSxJQUFJaEIsS0FBSixDQUFVNEMsVUFBVixDQUFiO0FBQ0Q7O0FBeEZnQjtBQXlGbEI7Ozs7V0FFRCxxQkFBWTtBQUNWLFVBQVEvQixRQUFSLEdBQXFCLEtBQUtKLEtBQTFCLENBQVFJLFFBQVI7QUFDQSx3QkFBdUMsS0FBSzJDLEtBQTVDO0FBQUEsVUFBUTVDLGFBQVIsZUFBUUEsYUFBUjtBQUFBLFVBQXVCRSxXQUF2QixlQUF1QkEsV0FBdkI7O0FBQ0EsVUFBSUQsUUFBSixFQUFjO0FBQ1osYUFBS3NDLFFBQUwsQ0FBYztBQUFFdEMsVUFBQUEsUUFBUSxFQUFFQztBQUFaLFNBQWQ7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLcUMsUUFBTCxDQUFjO0FBQ1p6QyxVQUFBQSxVQUFVLEVBQUVFO0FBREEsU0FBZDtBQUdEO0FBQ0Y7OztXQUVELG1CQUFVO0FBQ1IsYUFBTyxLQUFLNEMsS0FBTCxDQUFXNUMsYUFBbEI7QUFDRDs7O1dBRUQsb0JBQVc7QUFDVCxhQUFPLEtBQUs0QyxLQUFMLENBQVc3QyxXQUFsQjtBQUNEOzs7V0FDRCxrQkFBUzBCLEtBQVQsRUFBZ0I7QUFDZCxXQUFLYyxRQUFMLENBQWM7QUFDWnhDLFFBQUFBLFdBQVcsRUFBRTBCO0FBREQsT0FBZDtBQUdEOzs7V0FFRCw2QkFBb0I7QUFDbEIsd0JBQW9DLEtBQUs1QixLQUF6QztBQUFBLFVBQVFNLElBQVIsZUFBUUEsSUFBUjtBQUFBLFVBQWNFLE9BQWQsZUFBY0EsT0FBZDtBQUFBLFVBQXVCSixRQUF2QixlQUF1QkEsUUFBdkI7O0FBQ0EsVUFBSSxDQUFDQSxRQUFELEtBQWNFLElBQUksSUFBSUUsT0FBdEIsQ0FBSixFQUFvQztBQUNsQyxhQUFLa0MsUUFBTCxDQUFjO0FBQ1p6QyxVQUFBQSxVQUFVLEVBQUVLLElBQUksR0FBR0EsSUFBSCxHQUFVRSxPQURkO0FBRVpMLFVBQUFBLGFBQWEsRUFBRUcsSUFBSSxHQUFHQSxJQUFILEdBQVVFO0FBRmpCLFNBQWQ7QUFJRCxPQUxELE1BS08sSUFBSUosUUFBSixFQUFjO0FBQ25CLGFBQUtzQyxRQUFMLENBQWM7QUFDWnRDLFVBQUFBLFFBQVEsRUFBRUEsUUFERTtBQUVaQyxVQUFBQSxXQUFXLEVBQUVEO0FBRkQsU0FBZDtBQUlEO0FBQ0Y7OztXQUNELDRCQUFtQjRDLFFBQW5CLEVBQTZCQyxRQUE3QixFQUF1Q0MsUUFBdkMsRUFBaUQ7QUFDL0MseUJBQW9DLEtBQUtsRCxLQUF6QztBQUFBLFVBQVFNLElBQVIsZ0JBQVFBLElBQVI7QUFBQSxVQUFjRSxPQUFkLGdCQUFjQSxPQUFkO0FBQUEsVUFBdUJKLFFBQXZCLGdCQUF1QkEsUUFBdkI7QUFDQSx5QkFBdUMsS0FBSzJDLEtBQTVDO0FBQUEsVUFBUTVDLGFBQVIsZ0JBQVFBLGFBQVI7QUFBQSxVQUF1QkUsV0FBdkIsZ0JBQXVCQSxXQUF2Qjs7QUFDQSxVQUFJLENBQUNELFFBQUQsS0FBY0UsSUFBSSxJQUFJRSxPQUF0QixDQUFKLEVBQW9DO0FBQ2xDLFlBQU1hLE9BQU8sR0FBR2YsSUFBSSxHQUFHQSxJQUFILEdBQVVFLE9BQTlCOztBQUNBLFlBQUkyQyxJQUFJLENBQUNDLFNBQUwsQ0FBZWpELGFBQWYsTUFBa0NnRCxJQUFJLENBQUNDLFNBQUwsQ0FBZS9CLE9BQWYsQ0FBdEMsRUFBK0Q7QUFDN0QsZUFBS3FCLFFBQUwsQ0FBYztBQUNaekMsWUFBQUEsVUFBVSxFQUFFb0IsT0FEQTtBQUVabEIsWUFBQUEsYUFBYSxFQUFFa0I7QUFGSCxXQUFkO0FBSUQ7QUFDRixPQVJELE1BUU8sSUFBSWpCLFFBQVEsSUFBSWlELEtBQUssQ0FBQ0MsT0FBTixDQUFjbEQsUUFBZCxDQUFoQixFQUF5QztBQUM5QyxZQUFNbUQsa0JBQXVCLEdBQUcsRUFBaEM7QUFDQWxELFFBQUFBLFdBQVcsQ0FBQ29CLEdBQVosQ0FBZ0IsVUFBQytCLENBQUQsRUFBWTtBQUMxQkQsVUFBQUEsa0JBQWtCLENBQUNFLElBQW5CLENBQXdCRCxDQUFDLENBQUN4RCxLQUExQjtBQUNELFNBRkQ7QUFHQSxZQUFNMEQsYUFBa0IsR0FBRyxFQUEzQjtBQUNBdEQsUUFBQUEsUUFBUSxDQUFDcUIsR0FBVCxDQUFhLFVBQUNrQyxDQUFELEVBQVk7QUFDdkJELFVBQUFBLGFBQWEsQ0FBQ0QsSUFBZCxDQUFtQkUsQ0FBQyxDQUFDM0QsS0FBckI7QUFDRCxTQUZEOztBQUdBLFlBQ0VtRCxJQUFJLENBQUNDLFNBQUwsQ0FBZUcsa0JBQWYsTUFBdUNKLElBQUksQ0FBQ0MsU0FBTCxDQUFlTSxhQUFmLENBRHpDLEVBRUU7QUFDQSxlQUFLaEIsUUFBTCxDQUFjO0FBQ1p0QyxZQUFBQSxRQUFRLEVBQUVBLFFBREU7QUFFWkMsWUFBQUEsV0FBVyxFQUFFRDtBQUZELFdBQWQ7QUFJRDtBQUNGO0FBQ0Y7OztXQUNELGtCQUFTd0IsS0FBVCxFQUFnQjtBQUNkLHlCQUF1QyxLQUFLbUIsS0FBNUM7QUFBQSxVQUFRNUMsYUFBUixnQkFBUUEsYUFBUjtBQUFBLFVBQXVCRSxXQUF2QixnQkFBdUJBLFdBQXZCO0FBQ0EseUJBS0ksS0FBS0wsS0FMVDtBQUFBLCtDQUNFNEQsVUFERjtBQUFBLFVBQ0VBLFVBREYsc0NBQ2UsT0FEZjtBQUFBLCtDQUVFQyxZQUZGO0FBQUEsVUFFRUEsWUFGRixzQ0FFaUIsSUFGakI7QUFBQSxVQUdFQyxRQUhGLGdCQUdFQSxRQUhGO0FBQUEsVUFJRTFELFFBSkYsZ0JBSUVBLFFBSkY7O0FBTUEsVUFBSXlELFlBQUosRUFBa0I7QUFDaEIsWUFBSUUsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsWUFBSSxDQUFDM0QsUUFBTCxFQUFlO0FBQ2IsY0FBSXdCLEtBQUosRUFBVztBQUNUekIsWUFBQUEsYUFBYSxDQUFDNkQsT0FBZCxDQUFzQixVQUFDdEMsSUFBRCxFQUFVO0FBQzlCLGtCQUFJdUMsS0FBSyxHQUFHLEVBQVo7O0FBQ0Esa0JBQUlMLFVBQVUsQ0FBQ3BDLEtBQVgsQ0FBaUIsR0FBakIsRUFBc0JGLE1BQXRCLElBQWdDLENBQXBDLEVBQXVDO0FBQ3JDMkMsZ0JBQUFBLEtBQUssR0FBR3ZDLElBQUksQ0FBQ2tDLFVBQUQsQ0FBWjtBQUNELGVBRkQsTUFFTztBQUNMLG9CQUFNTSxXQUFnQixHQUFHTixVQUFVLENBQUNwQyxLQUFYLENBQWlCLEdBQWpCLENBQXpCO0FBQ0EwQyxnQkFBQUEsV0FBVyxDQUFDekMsR0FBWixDQUFnQixVQUFDMEMsQ0FBRCxFQUFJckMsS0FBSixFQUFjO0FBQzVCbUMsa0JBQUFBLEtBQUssR0FBR25DLEtBQUssSUFBSSxDQUFULEdBQWFtQyxLQUFLLEdBQUd2QyxJQUFJLENBQUN5QyxDQUFELENBQXpCLEdBQStCRixLQUFLLEdBQUcsR0FBUixHQUFjdkMsSUFBSSxDQUFDeUMsQ0FBRCxDQUF6RDtBQUNELGlCQUZEO0FBR0Q7O0FBQ0Qsa0JBQUlDLElBQUksR0FBR3hFLFdBQVcsQ0FBQ3lFLEtBQVosQ0FBa0JKLEtBQWxCLEVBQXlCckMsS0FBekIsQ0FBWDs7QUFDQSxrQkFBSXdDLElBQUosRUFBVTtBQUNSTCxnQkFBQUEsTUFBTSxDQUFDTixJQUFQLENBQVkvQixJQUFaO0FBQ0Q7QUFDRixhQWREO0FBZUEsaUJBQUtnQixRQUFMLENBQWM7QUFDWnpDLGNBQUFBLFVBQVUsRUFBRThEO0FBREEsYUFBZDtBQUdELFdBbkJELE1BbUJPO0FBQ0wsaUJBQUtyQixRQUFMLENBQWM7QUFDWnpDLGNBQUFBLFVBQVUsRUFBRUU7QUFEQSxhQUFkO0FBR0Q7QUFDRixTQXpCRCxNQXlCTztBQUNMLGNBQUl5QixLQUFKLEVBQVc7QUFDVCxnQkFBSXlCLEtBQUssQ0FBQ0MsT0FBTixDQUFjakQsV0FBZCxDQUFKLEVBQWdDO0FBQzlCQSxjQUFBQSxXQUFXLENBQUNvQixHQUFaLENBQWdCLFVBQUM2QyxLQUFELEVBQWF4QyxLQUFiLEVBQXVCO0FBQUE7O0FBQ3JDLG9CQUFJbUMsS0FBSyxHQUFHSyxLQUFILGFBQUdBLEtBQUgsdUNBQUdBLEtBQUssQ0FBRXRFLEtBQVYsaURBQUcsYUFBY0ksUUFBMUI7QUFDQSxvQkFBSWdFLElBQUksR0FBR3hFLFdBQVcsQ0FBQ3lFLEtBQVosQ0FBa0JKLEtBQWxCLEVBQXlCckMsS0FBekIsQ0FBWDs7QUFDQSxvQkFBSXdDLElBQUosRUFBVTtBQUNSTCxrQkFBQUEsTUFBTSxDQUFDTixJQUFQLENBQVlhLEtBQVo7QUFDRDtBQUNGLGVBTkQ7QUFPRDs7QUFDRCxpQkFBSzVCLFFBQUwsQ0FBYztBQUNadEMsY0FBQUEsUUFBUSxFQUFFMkQ7QUFERSxhQUFkO0FBR0QsV0FiRCxNQWFPO0FBQ0wsaUJBQUtyQixRQUFMLENBQWM7QUFDWnRDLGNBQUFBLFFBQVEsRUFBRUE7QUFERSxhQUFkO0FBR0Q7QUFDRjtBQUNGOztBQUNEMEQsTUFBQUEsUUFBUSxJQUFJQSxRQUFRLENBQUNsQyxLQUFELENBQXBCO0FBQ0Q7OztXQUNELHNCQUFhMkMsVUFBYixFQUF5QjtBQUN2Qix5QkFBaUUsS0FBS3ZFLEtBQXRFO0FBQUEsK0NBQU00RCxVQUFOO0FBQUEsVUFBTUEsVUFBTixzQ0FBbUIsT0FBbkI7QUFBQSwrQ0FBNEJqRCxVQUE1QjtBQUFBLFVBQTRCQSxVQUE1QixzQ0FBeUMsT0FBekM7QUFBQSw0Q0FBa0RKLEtBQWxEO0FBQUEsVUFBa0RBLEtBQWxELG1DQUEwRCxFQUExRDtBQUNBLGFBQU9nRSxVQUFVLENBQUM5QyxHQUFYLENBQWUsVUFBQ0MsSUFBRCxFQUFVO0FBQzlCLFlBQUlFLEtBQUssR0FBRyxFQUFaOztBQUNBLFlBQUlqQixVQUFVLENBQUNhLEtBQVgsQ0FBaUIsR0FBakIsRUFBc0JGLE1BQXRCLElBQWdDLENBQXBDLEVBQXVDO0FBQ3JDTSxVQUFBQSxLQUFLLEdBQUdGLElBQUksQ0FBQ2YsVUFBRCxDQUFaO0FBQ0QsU0FGRCxNQUVPO0FBQ0wsY0FBTVksV0FBZ0IsR0FBR1osVUFBVSxDQUFDYSxLQUFYLENBQWlCLEdBQWpCLENBQXpCO0FBQ0FELFVBQUFBLFdBQVcsQ0FBQ0UsR0FBWixDQUFnQixVQUFDSSxDQUFELEVBQUlDLEtBQUosRUFBYztBQUM1QkYsWUFBQUEsS0FBSyxHQUFHRSxLQUFLLElBQUksQ0FBVCxHQUFhRixLQUFLLEdBQUdGLElBQUksQ0FBQ0csQ0FBRCxDQUF6QixHQUErQkQsS0FBSyxHQUFHLEdBQVIsR0FBY0YsSUFBSSxDQUFDRyxDQUFELENBQXpEO0FBQ0QsV0FGRDtBQUdEOztBQUNELFlBQUkyQyxHQUFHLEdBQUc5QyxJQUFJLENBQUMrQyxFQUFMLEdBQVcvQyxJQUFJLENBQUMrQyxFQUFMLEtBQVksV0FBWixHQUEwQi9DLElBQUksQ0FBQytDLEVBQS9CLEdBQW9DN0MsS0FBL0MsR0FBd0RBLEtBQWxFO0FBQ0EsWUFBSXFDLEtBQUssR0FBRyxFQUFaOztBQUNBLFlBQUlMLFVBQVUsQ0FBQ3BDLEtBQVgsQ0FBaUIsR0FBakIsRUFBc0JGLE1BQXRCLElBQWdDLENBQXBDLEVBQXVDO0FBQ3JDMkMsVUFBQUEsS0FBSyxHQUFHdkMsSUFBSSxDQUFDa0MsVUFBRCxDQUFaO0FBQ0QsU0FGRCxNQUVPO0FBQ0wsY0FBTU0sV0FBZ0IsR0FBR04sVUFBVSxDQUFDcEMsS0FBWCxDQUFpQixHQUFqQixDQUF6QjtBQUNBMEMsVUFBQUEsV0FBVyxDQUFDekMsR0FBWixDQUFnQixVQUFDMEMsQ0FBRCxFQUFJckMsS0FBSixFQUFjO0FBQzVCbUMsWUFBQUEsS0FBSyxHQUFHbkMsS0FBSyxJQUFJLENBQVQsR0FBYW1DLEtBQUssR0FBR3ZDLElBQUksQ0FBQ3lDLENBQUQsQ0FBekIsR0FBK0JGLEtBQUssR0FBRyxHQUFSLEdBQWN2QyxJQUFJLENBQUN5QyxDQUFELENBQXpEO0FBQ0QsV0FGRDtBQUdEOztBQUNELDRCQUNFLG9CQUFDLE1BQUQ7QUFDRSxVQUFBLEdBQUcsRUFBRUssR0FEUDtBQUVFLFVBQUEsS0FBSyxFQUFFNUMsS0FGVDtBQUdFLFVBQUEsS0FBSyxFQUFFcUMsS0FIVDtBQUlFLFVBQUEsUUFBUSxFQUFFdkMsSUFBSSxDQUFDZ0QsUUFBTCxHQUFnQixJQUFoQixHQUF1QjtBQUpuQyxXQU1HVCxLQU5ILENBREY7QUFVRCxPQTlCTSxDQUFQO0FBK0JEOzs7V0FDRCwwQkFBaUI7QUFBQTs7QUFDZixrQ0FBNkIsS0FBS2pFLEtBQWxDLENBQVEyRSxTQUFSO0FBQUEsVUFBUUEsU0FBUixzQ0FBb0IsSUFBcEI7QUFDQSx5QkFBaUMsS0FBSzVCLEtBQXRDO0FBQUEsVUFBUTlDLFVBQVIsZ0JBQVFBLFVBQVI7QUFBQSxVQUFvQkcsUUFBcEIsZ0JBQW9CQSxRQUFwQjs7QUFDQSxVQUFJQSxRQUFKLEVBQWM7QUFDWiw0QkFBTywwQ0FBR0EsUUFBSCxDQUFQO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBSXdFLFlBQVksR0FBRyxFQUFuQjtBQUFBLFlBQ0VMLFVBQVUsR0FBRyxFQURmO0FBRUF0RSxRQUFBQSxVQUFVLENBQUMrRCxPQUFYLENBQW1CLFVBQUN0QyxJQUFELEVBQVU7QUFDM0IsY0FBSXVDLEtBQUssR0FBR3ZDLElBQUksQ0FBQ21ELFNBQWpCOztBQUNBLGNBQUlaLEtBQUssSUFBSVUsU0FBYixFQUF3QjtBQUN0QixnQkFBSSxDQUFDQyxZQUFZLENBQUNYLEtBQUQsQ0FBakIsRUFBMEJXLFlBQVksQ0FBQ1gsS0FBRCxDQUFaLEdBQXNCLEVBQXRCO0FBQzFCVyxZQUFBQSxZQUFZLENBQUNYLEtBQUQsQ0FBWixDQUFvQlIsSUFBcEIsQ0FBeUIvQixJQUF6QjtBQUNELFdBSEQsTUFHTztBQUNMNkMsWUFBQUEsVUFBVSxDQUFDZCxJQUFYLENBQWdCL0IsSUFBaEI7QUFDRDtBQUNGLFNBUkQ7QUFTQSxZQUFJb0QsTUFBTSxHQUFHLEtBQUtDLFlBQUwsQ0FBa0JSLFVBQWxCLENBQWI7QUFDQSxZQUFJUyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTixZQUFaLEVBQTBCbkQsR0FBMUIsQ0FBOEIsVUFBQytDLEdBQUQsRUFBUztBQUNwRCw4QkFDRSxvQkFBQyxRQUFEO0FBQVUsWUFBQSxHQUFHLEVBQUVBLEdBQWY7QUFBb0IsWUFBQSxLQUFLLEVBQUVBO0FBQTNCLGFBQ0csTUFBSSxDQUFDTyxZQUFMLENBQWtCSCxZQUFZLENBQUNKLEdBQUQsQ0FBOUIsQ0FESCxDQURGO0FBS0QsU0FOYyxDQUFmO0FBT0EsNEJBQ0UsMENBQ0dNLE1BREgsRUFFR0UsUUFGSCxDQURGO0FBTUQ7QUFDRjs7O1dBQ0Qsa0JBQVNwRCxLQUFULEVBQWdCcEIsT0FBaEIsRUFBeUI7QUFDdkIsVUFBUTJFLFFBQVIsR0FBcUIsS0FBS25GLEtBQTFCLENBQVFtRixRQUFSO0FBQ0EsV0FBS3pDLFFBQUwsQ0FBYztBQUNaeEMsUUFBQUEsV0FBVyxFQUFFMEI7QUFERCxPQUFkOztBQUdBLFVBQUl1RCxRQUFKLEVBQWM7QUFDWkEsUUFBQUEsUUFBUSxDQUFDdkQsS0FBRCxFQUFRcEIsT0FBUixDQUFSO0FBQ0Q7QUFDRjs7O1dBQ0QsaUNBQXdCNEUsSUFBeEIsRUFBOEI7QUFDNUIsVUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxhQUFLQyxTQUFMO0FBQ0Q7QUFDRjs7O1dBQ0Qsa0JBQVM7QUFDUCx5QkFhSSxLQUFLckYsS0FiVDtBQUFBLFVBQ0VJLFFBREYsZ0JBQ0VBLFFBREY7QUFBQSxVQUVFRyxLQUZGLGdCQUVFQSxLQUZGO0FBQUEsVUFHRUQsSUFIRixnQkFHRUEsSUFIRjtBQUFBLFVBSUU2RSxRQUpGLGdCQUlFQSxRQUpGO0FBQUEsVUFLRTNFLE9BTEYsZ0JBS0VBLE9BTEY7QUFBQSxVQU1Fb0QsVUFORixnQkFNRUEsVUFORjtBQUFBLFVBT0VqRCxVQVBGLGdCQU9FQSxVQVBGO0FBQUEsK0NBUUUyRSxZQVJGO0FBQUEsVUFRRUEsWUFSRixzQ0FRaUIsSUFSakI7QUFBQSwrQ0FTRVgsU0FURjtBQUFBLFVBU0VBLFNBVEYsc0NBU2MsSUFUZDtBQUFBLFVBVUVsRSxPQVZGLGdCQVVFQSxPQVZGO0FBQUEsVUFXRUMsVUFYRixnQkFXRUEsVUFYRjtBQUFBLFVBWUs2RSxNQVpMOztBQWNBLFVBQU12RixLQUFLLEdBQUc7QUFDWjZELFFBQUFBLFlBQVksRUFBRSxLQURGO0FBRVoyQixRQUFBQSxVQUFVLEVBQUUsSUFGQTtBQUdaQyxRQUFBQSxnQkFBZ0IsRUFBRSxPQUhOO0FBSVpDLFFBQUFBLFdBQVcsRUFBRSxLQUpEO0FBS1pDLFFBQUFBLFVBQVUsRUFBRTtBQUxBLE9BQWQ7O0FBT0EsVUFBSUwsWUFBSixFQUFrQjtBQUNoQiw0QkFDRTtBQUFLLFVBQUEsU0FBUyxFQUFFM0YsR0FBRyxDQUFDRCxNQUFNLENBQUMsWUFBRCxDQUFQLEVBQXVCLEtBQUtNLEtBQUwsQ0FBVzRGLFNBQWxDO0FBQW5CLHdCQUNFO0FBQ0UsVUFBQSxLQUFLLEVBQUUsS0FBSzdDLEtBQUwsQ0FBVzdDLFdBRHBCO0FBRUUsVUFBQSxRQUFRLEVBQUUsS0FBS2lGLFFBQUwsQ0FBY1UsSUFBZCxDQUFtQixJQUFuQixDQUZaO0FBR0UsVUFBQSxRQUFRLEVBQUUsS0FBSy9CLFFBQUwsQ0FBYytCLElBQWQsQ0FBbUIsSUFBbkIsQ0FIWjtBQUlFLFVBQUEsdUJBQXVCLEVBQUUsS0FBS0MsdUJBQUwsQ0FBNkJELElBQTdCLENBQWtDLElBQWxDO0FBSjNCLFdBS003RixLQUxOLEVBTU11RixNQU5OLEdBUUcsS0FBS1EsY0FBTCxFQVJILENBREYsQ0FERjtBQWNELE9BZkQsTUFlTztBQUNMLDRCQUNFO0FBQ0UsVUFBQSxLQUFLLEVBQUUsS0FBS2hELEtBQUwsQ0FBVzdDLFdBRHBCO0FBRUUsVUFBQSxRQUFRLEVBQUUsS0FBSzRELFFBQUwsQ0FBYytCLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWjtBQUdFLFVBQUEsUUFBUSxFQUFFLEtBQUtWLFFBQUwsQ0FBY1UsSUFBZCxDQUFtQixJQUFuQixDQUhaO0FBSUUsVUFBQSx1QkFBdUIsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkQsSUFBN0IsQ0FBa0MsSUFBbEM7QUFKM0IsV0FLTTdGLEtBTE4sRUFNTXVGLE1BTk4sR0FRRyxLQUFLUSxjQUFMLEVBUkgsQ0FERjtBQVlEO0FBQ0Y7Ozs7RUF6V29DekcsYTs7Z0JBQWxCUyxTLFlBQ0hGLE07O2dCQURHRSxTLGNBRURELFE7O1NBRkNDLFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBTZWxlY3QsIFNlbGVjdFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgUGlueWluTWF0Y2ggZnJvbSBcInBpbnlpbi1tYXRjaFwiO1xyXG5jb25zdCB7IE9wdGlvbiwgT3B0R3JvdXAgfSA9IFNlbGVjdDtcclxuXHJcbmludGVyZmFjZSBJU2VsZWN0UHJvcHMgZXh0ZW5kcyBTZWxlY3RQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZGF0YT86IEFycmF5PE9iamVjdD47IC8v6buY6K6k5pWw5o2uXHJcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcclxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRTdHlsZT86IGJvb2xlYW47XHJcbiAgc2hvd0dyb3VwPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliIbnu4RcclxuICBhZGREYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/phY3lkIhzdG9yZeS9v+eUqO+8jOS7juWinuWKoOmineWklueahOaVsOaNrlxyXG4gIGRlbGV0ZURhdGE/OiBBcnJheTxTdHJpbmc+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5Yig6Zmk5LuO5pWw5o2u5bqT5Lit6I635Y+W5Yiw55qE5oyH5a6a5pWw5o2uXHJcbiAgdmFsdWVCcmVhaz86IHN0cmluZzsgLy/lpJrkuKp2YWx1ZeS9v+eUqOeahOWIhumalOesplxyXG4gIFtwcm9OYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTlNDU2VsZWN0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJU2VsZWN0UHJvcHM+IHtcclxuICBzdGF0aWMgT3B0aW9uID0gT3B0aW9uO1xyXG4gIHN0YXRpYyBPcHRHcm91cCA9IE9wdEdyb3VwO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBzZWxlY3RWYWx1ZTogbnVsbCxcclxuICAgIGFsbERhdGFTb3VyY2U6IFtdLFxyXG4gICAgY2hpbGRyZW46IG51bGwsXHJcbiAgICBhbGxDaGlsZHJlbjogbnVsbCxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICAgIHZhbHVlRmllbGQgPSBcInZhbHVlXCIsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIHZpZXduYW1lLFxyXG4gICAgICBjYWNoZWQsXHJcbiAgICAgIGNhY2hlS2V5LFxyXG4gICAgICAuLi5zdG9yZXNcclxuICAgIH0gPSBzdG9yZTtcclxuICAgIGxldCB7IHZpZXdVcmwgfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICAgIGxldCBuZXdEYXRhID0gWy4uLmRhdGFdO1xyXG4gICAgICBpZiAoYWRkRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbmV3RGF0YSA9IFsuLi5hZGREYXRhLCAuLi5uZXdEYXRhXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZGVsZXRlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPiAtMSkge1xyXG4gICAgICAgICAgICBuZXdEYXRhLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgIH07XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdmlld25hbWUgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBdmlld25hbWXjgIFkYXRh44CBb3B0aW9uc+S4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGdldEFsbERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbmV3RGF0YSwgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGdldEFsbERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogbmV3RGF0YSwgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5kYXRhQ2hhbmdlZCwgX3RoaXMsIFtcclxuICAgICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICAgIG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBzdG9yZSxcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uc3RvcmVzLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoKHZpZXduYW1lIHx8IHVybCkgJiYgZGF0YSA9PSBudWxsICYmIG9wdGlvbnMgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIGlmICh2aWV3bmFtZSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWQgIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaXNDYWNoZUtleSA9IGlzQ2FjaGVLZXkgPyBpc0NhY2hlS2V5IDogdmlld25hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCB2aWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldERhdGEoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY2hpbGRyZW46IGFsbENoaWxkcmVuIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYWxsRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjb25zdCBzdGF0ZUNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBhbGxDaGlsZHJlbi5tYXAoKHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHN0YXRlQ2hpbGRyZW5Qcm9wcy5wdXNoKHMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY2hpbGRyZW5Qcm9wczogYW55ID0gW107XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoYzogYW55KSA9PiB7XHJcbiAgICAgICAgY2hpbGRyZW5Qcm9wcy5wdXNoKGMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlQ2hpbGRyZW5Qcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGNoaWxkcmVuUHJvcHMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBsYWJlbEZpZWxkID0gXCJsYWJlbFwiLFxyXG4gICAgICBmaWx0ZXJPcHRpb24gPSB0cnVlLFxyXG4gICAgICBvblNlYXJjaCxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChmaWx0ZXJPcHRpb24pIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgbGFiZWwgPSBpdGVtW2xhYmVsRmllbGRdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGl0ZW1bbF0gOiBsYWJlbCArIFwiLVwiICsgaXRlbVtsXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbENoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGxhYmVsID0gY2hpbGQ/LnByb3BzPy5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TZWFyY2ggJiYgb25TZWFyY2godmFsdWUpO1xyXG4gIH1cclxuICByZW5kZXJPcHRpb24ob3B0aW9uRGF0YSkge1xyXG4gICAgbGV0IHsgbGFiZWxGaWVsZCA9IFwibGFiZWxcIiwgdmFsdWVGaWVsZCA9IFwidmFsdWVcIiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBvcHRpb25EYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB2YWx1ZSA9IGl0ZW1bdmFsdWVGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSwgY2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlKG9wZW4pIHtcclxuICAgIGlmICghb3Blbikge1xyXG4gICAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBzdG9yZSxcclxuICAgICAgZGF0YSxcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSA9IHRydWUsXHJcbiAgICAgIHNob3dHcm91cCA9IHRydWUsXHJcbiAgICAgIGFkZERhdGEsXHJcbiAgICAgIGRlbGV0ZURhdGEsXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBwcm9wcyA9IHtcclxuICAgICAgZmlsdGVyT3B0aW9uOiBmYWxzZSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJ1ZSxcclxuICAgICAgb3B0aW9uRmlsdGVyUHJvcDogXCJsYWJlbFwiLFxyXG4gICAgICBwbGFjZWhvbGRlcjogXCLor7fpgInmi6lcIixcclxuICAgICAgYWxsb3dDbGVhcjogdHJ1ZSxcclxuICAgIH07XHJcbiAgICBpZiAoZGVmYXVsdFN0eWxlKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhzdHlsZXNbXCJuc2Nfc2VsZWN0XCJdLCB0aGlzLnByb3BzLmNsYXNzTmFtZSl9PlxyXG4gICAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZX1cclxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgb25Ecm9wZG93blZpc2libGVDaGFuZ2U9e3RoaXMub25Ecm9wZG93blZpc2libGVDaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nsc-react-component",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.14",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"less-loader": "^8.1.1",
|
|
43
43
|
"lodash": "^4.17.21",
|
|
44
44
|
"mini-css-extract-plugin": "^1.5.0",
|
|
45
|
-
"nsc-request": "^2.
|
|
45
|
+
"nsc-request": "^2.3.5",
|
|
46
46
|
"react": "^17.0.1",
|
|
47
47
|
"react-dom": "^17.0.1",
|
|
48
48
|
"rimraf": "^3.0.2",
|
|
@@ -54,7 +54,9 @@
|
|
|
54
54
|
"antd": ">=4.0.0",
|
|
55
55
|
"nsc-request": "^2.2.0",
|
|
56
56
|
"react": ">=16.9.0",
|
|
57
|
-
"react-dom": ">=16.9.0"
|
|
57
|
+
"react-dom": ">=16.9.0",
|
|
58
|
+
"@bj-nsc/functions": ">=1.2.25",
|
|
59
|
+
"@bj-nsc/msn": ">=1.0.15"
|
|
58
60
|
},
|
|
59
61
|
"dependencies": {
|
|
60
62
|
"@ant-design/icons": "^4.6.2",
|