@rjsf/core 3.0.2 → 4.0.0
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/dist/cjs/components/AddButton.js +2 -1
- package/dist/cjs/components/ErrorList.js +2 -1
- package/dist/cjs/components/Form.js +17 -5
- package/dist/cjs/components/IconButton.js +2 -1
- package/dist/cjs/components/fields/ArrayField.js +108 -51
- package/dist/cjs/components/fields/BooleanField.js +3 -1
- package/dist/cjs/components/fields/DescriptionField.js +2 -1
- package/dist/cjs/components/fields/MultiSchemaField.js +4 -1
- package/dist/cjs/components/fields/NullField.js +2 -1
- package/dist/cjs/components/fields/NumberField.js +2 -1
- package/dist/cjs/components/fields/ObjectField.js +5 -2
- package/dist/cjs/components/fields/SchemaField.js +4 -2
- package/dist/cjs/components/fields/StringField.js +2 -1
- package/dist/cjs/components/fields/TitleField.js +2 -1
- package/dist/cjs/components/fields/UnsupportedField.js +2 -1
- package/dist/cjs/components/fields/index.js +2 -1
- package/dist/cjs/components/widgets/AltDateTimeWidget.js +2 -1
- package/dist/cjs/components/widgets/AltDateWidget.js +2 -1
- package/dist/cjs/components/widgets/BaseInput.js +2 -1
- package/dist/cjs/components/widgets/CheckboxWidget.js +2 -1
- package/dist/cjs/components/widgets/CheckboxesWidget.js +2 -1
- package/dist/cjs/components/widgets/ColorWidget.js +2 -1
- package/dist/cjs/components/widgets/DateTimeWidget.js +2 -1
- package/dist/cjs/components/widgets/DateWidget.js +2 -1
- package/dist/cjs/components/widgets/EmailWidget.js +2 -1
- package/dist/cjs/components/widgets/FileWidget.js +2 -1
- package/dist/cjs/components/widgets/HiddenWidget.js +2 -1
- package/dist/cjs/components/widgets/PasswordWidget.js +2 -1
- package/dist/cjs/components/widgets/RadioWidget.js +2 -1
- package/dist/cjs/components/widgets/RangeWidget.js +2 -1
- package/dist/cjs/components/widgets/SelectWidget.js +2 -1
- package/dist/cjs/components/widgets/TextWidget.js +2 -1
- package/dist/cjs/components/widgets/TextareaWidget.js +2 -1
- package/dist/cjs/components/widgets/URLWidget.js +2 -1
- package/dist/cjs/components/widgets/UpDownWidget.js +2 -1
- package/dist/cjs/components/widgets/index.js +2 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/types.js +2 -1
- package/dist/cjs/utils.js +19 -7
- package/dist/cjs/validate.js +2 -1
- package/dist/cjs/withTheme.js +2 -1
- package/dist/es/components/AddButton.js +2 -1
- package/dist/es/components/ErrorList.js +2 -1
- package/dist/es/components/Form.js +17 -5
- package/dist/es/components/IconButton.js +2 -1
- package/dist/es/components/fields/ArrayField.js +109 -52
- package/dist/es/components/fields/BooleanField.js +3 -1
- package/dist/es/components/fields/DescriptionField.js +2 -1
- package/dist/es/components/fields/MultiSchemaField.js +4 -1
- package/dist/es/components/fields/NullField.js +2 -1
- package/dist/es/components/fields/NumberField.js +2 -1
- package/dist/es/components/fields/ObjectField.js +5 -2
- package/dist/es/components/fields/SchemaField.js +4 -2
- package/dist/es/components/fields/StringField.js +2 -1
- package/dist/es/components/fields/TitleField.js +2 -1
- package/dist/es/components/fields/UnsupportedField.js +2 -1
- package/dist/es/components/fields/index.js +2 -1
- package/dist/es/components/widgets/AltDateTimeWidget.js +2 -1
- package/dist/es/components/widgets/AltDateWidget.js +2 -1
- package/dist/es/components/widgets/BaseInput.js +2 -1
- package/dist/es/components/widgets/CheckboxWidget.js +2 -1
- package/dist/es/components/widgets/CheckboxesWidget.js +2 -1
- package/dist/es/components/widgets/ColorWidget.js +2 -1
- package/dist/es/components/widgets/DateTimeWidget.js +2 -1
- package/dist/es/components/widgets/DateWidget.js +2 -1
- package/dist/es/components/widgets/EmailWidget.js +2 -1
- package/dist/es/components/widgets/FileWidget.js +2 -1
- package/dist/es/components/widgets/HiddenWidget.js +2 -1
- package/dist/es/components/widgets/PasswordWidget.js +2 -1
- package/dist/es/components/widgets/RadioWidget.js +2 -1
- package/dist/es/components/widgets/RangeWidget.js +2 -1
- package/dist/es/components/widgets/SelectWidget.js +2 -1
- package/dist/es/components/widgets/TextWidget.js +2 -1
- package/dist/es/components/widgets/TextareaWidget.js +2 -1
- package/dist/es/components/widgets/URLWidget.js +2 -1
- package/dist/es/components/widgets/UpDownWidget.js +2 -1
- package/dist/es/components/widgets/index.js +2 -1
- package/dist/es/index.js +2 -1
- package/dist/es/types.js +2 -1
- package/dist/es/utils.js +17 -7
- package/dist/es/validate.js +2 -1
- package/dist/es/withTheme.js +2 -1
- package/dist/react-jsonschema-form.js +3 -3
- package/dist/react-jsonschema-form.js.map +1 -1
- package/index.d.ts +31 -23
- package/lib/components/AddButton.js +2 -1
- package/lib/components/ErrorList.js +2 -1
- package/lib/components/Form.js +17 -5
- package/lib/components/IconButton.js +2 -1
- package/lib/components/fields/ArrayField.js +109 -52
- package/lib/components/fields/BooleanField.js +3 -1
- package/lib/components/fields/DescriptionField.js +2 -1
- package/lib/components/fields/MultiSchemaField.js +4 -1
- package/lib/components/fields/NullField.js +2 -1
- package/lib/components/fields/NumberField.js +2 -1
- package/lib/components/fields/ObjectField.js +5 -2
- package/lib/components/fields/SchemaField.js +4 -2
- package/lib/components/fields/StringField.js +2 -1
- package/lib/components/fields/TitleField.js +2 -1
- package/lib/components/fields/UnsupportedField.js +2 -1
- package/lib/components/fields/index.js +2 -1
- package/lib/components/widgets/AltDateTimeWidget.js +2 -1
- package/lib/components/widgets/AltDateWidget.js +2 -1
- package/lib/components/widgets/BaseInput.js +2 -1
- package/lib/components/widgets/CheckboxWidget.js +2 -1
- package/lib/components/widgets/CheckboxesWidget.js +2 -1
- package/lib/components/widgets/ColorWidget.js +2 -1
- package/lib/components/widgets/DateTimeWidget.js +2 -1
- package/lib/components/widgets/DateWidget.js +2 -1
- package/lib/components/widgets/EmailWidget.js +2 -1
- package/lib/components/widgets/FileWidget.js +2 -1
- package/lib/components/widgets/HiddenWidget.js +2 -1
- package/lib/components/widgets/PasswordWidget.js +2 -1
- package/lib/components/widgets/RadioWidget.js +2 -1
- package/lib/components/widgets/RangeWidget.js +2 -1
- package/lib/components/widgets/SelectWidget.js +2 -1
- package/lib/components/widgets/TextWidget.js +2 -1
- package/lib/components/widgets/TextareaWidget.js +2 -1
- package/lib/components/widgets/URLWidget.js +2 -1
- package/lib/components/widgets/UpDownWidget.js +2 -1
- package/lib/components/widgets/index.js +2 -1
- package/lib/index.js +2 -1
- package/lib/types.js +2 -1
- package/lib/utils.js +17 -7
- package/lib/validate.js +2 -1
- package/lib/withTheme.js +2 -1
- package/package.json +6 -7
|
@@ -28,4 +28,5 @@ function AddButton(_ref) {
|
|
|
28
28
|
onClick: onClick,
|
|
29
29
|
disabled: disabled
|
|
30
30
|
})));
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0FkZEJ1dHRvbi5qcyJdLCJuYW1lcyI6WyJBZGRCdXR0b24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiZGlzYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUVlLFNBQVNBLFNBQVQsT0FBcUQ7QUFBQSxNQUFoQ0MsU0FBZ0MsUUFBaENBLFNBQWdDO0FBQUEsTUFBckJDLE9BQXFCLFFBQXJCQSxPQUFxQjtBQUFBLE1BQVpDLFFBQVksUUFBWkEsUUFBWTtBQUNsRSxTQUNFO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixLQUNFO0FBQUcsSUFBQSxTQUFTLGdEQUF5Q0YsU0FBekM7QUFBWixLQUNFLGdDQUFDLHNCQUFEO0FBQ0UsSUFBQSxJQUFJLEVBQUMsTUFEUDtBQUVFLElBQUEsSUFBSSxFQUFDLE1BRlA7QUFHRSxJQUFBLFNBQVMsRUFBQyxtQkFIWjtBQUlFLGtCQUFXLEtBSmI7QUFLRSxJQUFBLFFBQVEsRUFBQyxHQUxYO0FBTUUsSUFBQSxPQUFPLEVBQUVDLE9BTlg7QUFPRSxJQUFBLFFBQVEsRUFBRUM7QUFQWixJQURGLENBREYsQ0FERjtBQWVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIi4vSWNvbkJ1dHRvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBZGRCdXR0b24oeyBjbGFzc05hbWUsIG9uQ2xpY2ssIGRpc2FibGVkIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgPHAgY2xhc3NOYW1lPXtgY29sLXhzLTMgY29sLXhzLW9mZnNldC05IHRleHQtcmlnaHQgJHtjbGFzc05hbWV9YH0+XG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgdHlwZT1cImluZm9cIlxuICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJidG4tYWRkIGNvbC14cy0xMlwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkFkZFwiXG4gICAgICAgICAgdGFiSW5kZXg9XCIwXCJcbiAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -25,4 +25,5 @@ function ErrorList(props) {
|
|
|
25
25
|
className: "list-group-item text-danger"
|
|
26
26
|
}, error.stack);
|
|
27
27
|
})));
|
|
28
|
-
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Vycm9yTGlzdC5qcyJdLCJuYW1lcyI6WyJFcnJvckxpc3QiLCJwcm9wcyIsImVycm9ycyIsIm1hcCIsImVycm9yIiwiaSIsInN0YWNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFZSxTQUFTQSxTQUFULENBQW1CQyxLQUFuQixFQUEwQjtBQUFBLE1BQy9CQyxNQUQrQixHQUNwQkQsS0FEb0IsQ0FDL0JDLE1BRCtCO0FBRXZDLFNBQ0U7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLEtBQ0U7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLEtBQ0U7QUFBSSxJQUFBLFNBQVMsRUFBQztBQUFkLGNBREYsQ0FERixFQUlFO0FBQUksSUFBQSxTQUFTLEVBQUM7QUFBZCxLQUNHQSxNQUFNLENBQUNDLEdBQVAsQ0FBVyxVQUFDQyxLQUFELEVBQVFDLENBQVIsRUFBYztBQUN4QixXQUNFO0FBQUksTUFBQSxHQUFHLEVBQUVBLENBQVQ7QUFBWSxNQUFBLFNBQVMsRUFBQztBQUF0QixPQUNHRCxLQUFLLENBQUNFLEtBRFQsQ0FERjtBQUtELEdBTkEsQ0FESCxDQUpGLENBREY7QUFnQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVycm9yTGlzdChwcm9wcykge1xuICBjb25zdCB7IGVycm9ycyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwYW5lbCBwYW5lbC1kYW5nZXIgZXJyb3JzXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhbmVsLWhlYWRpbmdcIj5cbiAgICAgICAgPGgzIGNsYXNzTmFtZT1cInBhbmVsLXRpdGxlXCI+RXJyb3JzPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPHVsIGNsYXNzTmFtZT1cImxpc3QtZ3JvdXBcIj5cbiAgICAgICAge2Vycm9ycy5tYXAoKGVycm9yLCBpKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxsaSBrZXk9e2l9IGNsYXNzTmFtZT1cImxpc3QtZ3JvdXAtaXRlbSB0ZXh0LWRhbmdlclwiPlxuICAgICAgICAgICAgICB7ZXJyb3Iuc3RhY2t9XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -233,7 +233,9 @@ function (_Component) {
|
|
|
233
233
|
|
|
234
234
|
return;
|
|
235
235
|
}
|
|
236
|
-
}
|
|
236
|
+
} // There are no errors generated through schema validation.
|
|
237
|
+
// Check for user provided errors and update state accordingly.
|
|
238
|
+
|
|
237
239
|
|
|
238
240
|
var errorSchema;
|
|
239
241
|
var errors;
|
|
@@ -249,7 +251,9 @@ function (_Component) {
|
|
|
249
251
|
_this.setState({
|
|
250
252
|
formData: newFormData,
|
|
251
253
|
errors: errors,
|
|
252
|
-
errorSchema: errorSchema
|
|
254
|
+
errorSchema: errorSchema,
|
|
255
|
+
schemaValidationErrors: [],
|
|
256
|
+
schemaValidationErrorSchema: {}
|
|
253
257
|
}, function () {
|
|
254
258
|
if (_this.props.onSubmit) {
|
|
255
259
|
_this.props.onSubmit(_objectSpread({}, _this.state, {
|
|
@@ -336,7 +340,7 @@ function (_Component) {
|
|
|
336
340
|
errors = (0, _validate.toErrorList)(errorSchema);
|
|
337
341
|
}
|
|
338
342
|
|
|
339
|
-
var idSchema = (0, _utils.toIdSchema)(retrievedSchema, uiSchema["ui:rootFieldId"], rootSchema, formData, props.idPrefix);
|
|
343
|
+
var idSchema = (0, _utils.toIdSchema)(retrievedSchema, uiSchema["ui:rootFieldId"], rootSchema, formData, props.idPrefix, props.idSeparator);
|
|
340
344
|
var nextState = {
|
|
341
345
|
schema: schema,
|
|
342
346
|
uiSchema: uiSchema,
|
|
@@ -439,6 +443,7 @@ function (_Component) {
|
|
|
439
443
|
children = _this$props5.children,
|
|
440
444
|
id = _this$props5.id,
|
|
441
445
|
idPrefix = _this$props5.idPrefix,
|
|
446
|
+
idSeparator = _this$props5.idSeparator,
|
|
442
447
|
className = _this$props5.className,
|
|
443
448
|
tagName = _this$props5.tagName,
|
|
444
449
|
name = _this$props5.name,
|
|
@@ -451,6 +456,7 @@ function (_Component) {
|
|
|
451
456
|
acceptcharset = _this$props5.acceptcharset,
|
|
452
457
|
noHtml5Validate = _this$props5.noHtml5Validate,
|
|
453
458
|
disabled = _this$props5.disabled,
|
|
459
|
+
readonly = _this$props5.readonly,
|
|
454
460
|
formContext = _this$props5.formContext;
|
|
455
461
|
var _this$state2 = this.state,
|
|
456
462
|
schema = _this$state2.schema,
|
|
@@ -488,13 +494,15 @@ function (_Component) {
|
|
|
488
494
|
errorSchema: errorSchema,
|
|
489
495
|
idSchema: idSchema,
|
|
490
496
|
idPrefix: idPrefix,
|
|
497
|
+
idSeparator: idSeparator,
|
|
491
498
|
formContext: formContext,
|
|
492
499
|
formData: formData,
|
|
493
500
|
onChange: this.onChange,
|
|
494
501
|
onBlur: this.onBlur,
|
|
495
502
|
onFocus: this.onFocus,
|
|
496
503
|
registry: registry,
|
|
497
|
-
disabled: disabled
|
|
504
|
+
disabled: disabled,
|
|
505
|
+
readonly: readonly
|
|
498
506
|
}), children ? children : _react["default"].createElement("div", null, _react["default"].createElement("button", {
|
|
499
507
|
type: "submit",
|
|
500
508
|
className: "btn btn-info"
|
|
@@ -512,6 +520,7 @@ _defineProperty(Form, "defaultProps", {
|
|
|
512
520
|
noValidate: false,
|
|
513
521
|
liveValidate: false,
|
|
514
522
|
disabled: false,
|
|
523
|
+
readonly: false,
|
|
515
524
|
noHtml5Validate: false,
|
|
516
525
|
ErrorList: _ErrorList["default"],
|
|
517
526
|
omitExtraData: false
|
|
@@ -522,6 +531,8 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
522
531
|
schema: _propTypes["default"].object.isRequired,
|
|
523
532
|
uiSchema: _propTypes["default"].object,
|
|
524
533
|
formData: _propTypes["default"].any,
|
|
534
|
+
disabled: _propTypes["default"].bool,
|
|
535
|
+
readonly: _propTypes["default"].bool,
|
|
525
536
|
widgets: _propTypes["default"].objectOf(_propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].object])),
|
|
526
537
|
fields: _propTypes["default"].objectOf(_propTypes["default"].elementType),
|
|
527
538
|
ArrayFieldTemplate: _propTypes["default"].elementType,
|
|
@@ -554,4 +565,5 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
554
565
|
omitExtraData: _propTypes["default"].bool,
|
|
555
566
|
extraErrors: _propTypes["default"].object
|
|
556
567
|
};
|
|
557
|
-
}
|
|
568
|
+
}
|
|
569
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm0uanMiXSwibmFtZXMiOlsiRm9ybSIsInByb3BzIiwiZm9ybURhdGEiLCJmaWVsZHMiLCJsZW5ndGgiLCJkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsInBhdGhTY2hlbWEiLCJnZXRBbGxQYXRocyIsIl9vYmoiLCJhY2MiLCJwYXRocyIsImZvckVhY2giLCJuZXdQYXRocyIsInBhdGgiLCJfX3Jqc2ZfYWRkaXRpb25hbFByb3BlcnRpZXMiLCIkbmFtZSIsInB1c2giLCJyZXBsYWNlIiwiZm9ybVZhbHVlIiwibmV3RXJyb3JTY2hlbWEiLCJuZXdTdGF0ZSIsImdldFN0YXRlRnJvbVByb3BzIiwibXVzdFZhbGlkYXRlIiwibm9WYWxpZGF0ZSIsImxpdmVWYWxpZGF0ZSIsInN0YXRlIiwibmV3Rm9ybURhdGEiLCJvbWl0RXh0cmFEYXRhIiwibGl2ZU9taXQiLCJyZXRyaWV2ZWRTY2hlbWEiLCJzY2hlbWEiLCJmaWVsZE5hbWVzIiwiZ2V0RmllbGROYW1lcyIsImdldFVzZWRGb3JtRGF0YSIsInNjaGVtYVZhbGlkYXRpb24iLCJ2YWxpZGF0ZSIsImVycm9ycyIsImVycm9yU2NoZW1hIiwic2NoZW1hVmFsaWRhdGlvbkVycm9ycyIsInNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYSIsImV4dHJhRXJyb3JzIiwic2V0U3RhdGUiLCJvbkNoYW5nZSIsIm9uQmx1ciIsIm9uRm9jdXMiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsInBlcnNpc3QiLCJvbkVycm9yIiwiY29uc29sZSIsImVycm9yIiwib25TdWJtaXQiLCJzdGF0dXMiLCJmb3JtRWxlbWVudCIsIm5leHRQcm9wcyIsIm5leHRTdGF0ZSIsImlucHV0Rm9ybURhdGEiLCJ1aVNjaGVtYSIsImVkaXQiLCJyb290U2NoZW1hIiwiY3VzdG9tRm9ybWF0cyIsImFkZGl0aW9uYWxNZXRhU2NoZW1hcyIsImdldEN1cnJlbnRFcnJvcnMiLCJjdXJyZW50RXJyb3JzIiwiaWRTY2hlbWEiLCJpZFByZWZpeCIsImlkU2VwYXJhdG9yIiwidHJhbnNmb3JtRXJyb3JzIiwiZ2V0UmVnaXN0cnkiLCJyZXNvbHZlZFNjaGVtYSIsIkVycm9yTGlzdCIsInNob3dFcnJvckxpc3QiLCJmb3JtQ29udGV4dCIsIndpZGdldHMiLCJBcnJheUZpZWxkVGVtcGxhdGUiLCJPYmplY3RGaWVsZFRlbXBsYXRlIiwiRmllbGRUZW1wbGF0ZSIsImRlZmluaXRpb25zIiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiY2FuY2VsYWJsZSIsImNoaWxkcmVuIiwiaWQiLCJjbGFzc05hbWUiLCJ0YWdOYW1lIiwibmFtZSIsIm1ldGhvZCIsImFjdGlvbiIsImRlcHJlY2F0ZWRBdXRvY29tcGxldGUiLCJhdXRvY29tcGxldGUiLCJjdXJyZW50QXV0b0NvbXBsZXRlIiwiYXV0b0NvbXBsZXRlIiwiZW5jdHlwZSIsImFjY2VwdGNoYXJzZXQiLCJub0h0bWw1VmFsaWRhdGUiLCJkaXNhYmxlZCIsInJlYWRvbmx5IiwicmVnaXN0cnkiLCJfU2NoZW1hRmllbGQiLCJTY2hlbWFGaWVsZCIsIkZvcm1UYWciLCJ3YXJuIiwiZm9ybSIsInJlbmRlckVycm9ycyIsIkNvbXBvbmVudCIsIkRlZmF1bHRFcnJvckxpc3QiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiYW55IiwiYm9vbCIsIm9iamVjdE9mIiwib25lT2ZUeXBlIiwiZnVuYyIsImVsZW1lbnRUeXBlIiwic3RyaW5nIiwiYXJyYXlPZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQVVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBR3FCQSxJOzs7OztBQVluQixnQkFBWUMsS0FBWixFQUFt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bkNWO0FBb0NmbEQsSUFBQUEscUJBQXFCLEVBQUVpRCxzQkFBVVUsT0FBVixDQUFrQlYsc0JBQVVDLE1BQTVCLENBcENSO0FBcUNmdEYsSUFBQUEsYUFBYSxFQUFFcUYsc0JBQVVJLElBckNWO0FBc0NmNUUsSUFBQUEsV0FBVyxFQUFFd0Usc0JBQVVDO0FBdENSLEdBQWpCO0FBd0NEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IF9waWNrIGZyb20gXCJsb2Rhc2gvcGlja1wiO1xuaW1wb3J0IF9nZXQgZnJvbSBcImxvZGFzaC9nZXRcIjtcbmltcG9ydCBfaXNFbXB0eSBmcm9tIFwibG9kYXNoL2lzRW1wdHlcIjtcblxuaW1wb3J0IHsgZGVmYXVsdCBhcyBEZWZhdWx0RXJyb3JMaXN0IH0gZnJvbSBcIi4vRXJyb3JMaXN0XCI7XG5pbXBvcnQge1xuICBnZXREZWZhdWx0Rm9ybVN0YXRlLFxuICByZXRyaWV2ZVNjaGVtYSxcbiAgc2hvdWxkUmVuZGVyLFxuICB0b0lkU2NoZW1hLFxuICBnZXREZWZhdWx0UmVnaXN0cnksXG4gIGRlZXBFcXVhbHMsXG4gIHRvUGF0aFNjaGVtYSxcbiAgaXNPYmplY3QsXG59IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHZhbGlkYXRlRm9ybURhdGEsIHsgdG9FcnJvckxpc3QgfSBmcm9tIFwiLi4vdmFsaWRhdGVcIjtcbmltcG9ydCB7IG1lcmdlT2JqZWN0cyB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb3JtIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICB1aVNjaGVtYToge30sXG4gICAgbm9WYWxpZGF0ZTogZmFsc2UsXG4gICAgbGl2ZVZhbGlkYXRlOiBmYWxzZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgcmVhZG9ubHk6IGZhbHNlLFxuICAgIG5vSHRtbDVWYWxpZGF0ZTogZmFsc2UsXG4gICAgRXJyb3JMaXN0OiBEZWZhdWx0RXJyb3JMaXN0LFxuICAgIG9taXRFeHRyYURhdGE6IGZhbHNlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLmdldFN0YXRlRnJvbVByb3BzKHByb3BzLCBwcm9wcy5mb3JtRGF0YSk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJlxuICAgICAgIWRlZXBFcXVhbHModGhpcy5zdGF0ZS5mb3JtRGF0YSwgdGhpcy5wcm9wcy5mb3JtRGF0YSlcbiAgICApIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5zdGF0ZSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBudWxsO1xuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgY29uc3QgbmV4dFN0YXRlID0gdGhpcy5nZXRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIG5leHRQcm9wcy5mb3JtRGF0YSk7XG4gICAgaWYgKFxuICAgICAgIWRlZXBFcXVhbHMobmV4dFN0YXRlLmZvcm1EYXRhLCBuZXh0UHJvcHMuZm9ybURhdGEpICYmXG4gICAgICAhZGVlcEVxdWFscyhuZXh0U3RhdGUuZm9ybURhdGEsIHRoaXMuc3RhdGUuZm9ybURhdGEpICYmXG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlXG4gICAgKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKG5leHRTdGF0ZSk7XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdGUobmV4dFN0YXRlKTtcbiAgfVxuXG4gIGdldFN0YXRlRnJvbVByb3BzKHByb3BzLCBpbnB1dEZvcm1EYXRhKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlIHx8IHt9O1xuICAgIGNvbnN0IHNjaGVtYSA9IFwic2NoZW1hXCIgaW4gcHJvcHMgPyBwcm9wcy5zY2hlbWEgOiB0aGlzLnByb3BzLnNjaGVtYTtcbiAgICBjb25zdCB1aVNjaGVtYSA9IFwidWlTY2hlbWFcIiBpbiBwcm9wcyA/IHByb3BzLnVpU2NoZW1hIDogdGhpcy5wcm9wcy51aVNjaGVtYTtcbiAgICBjb25zdCBlZGl0ID0gdHlwZW9mIGlucHV0Rm9ybURhdGEgIT09IFwidW5kZWZpbmVkXCI7XG4gICAgY29uc3QgbGl2ZVZhbGlkYXRlID1cbiAgICAgIFwibGl2ZVZhbGlkYXRlXCIgaW4gcHJvcHMgPyBwcm9wcy5saXZlVmFsaWRhdGUgOiB0aGlzLnByb3BzLmxpdmVWYWxpZGF0ZTtcbiAgICBjb25zdCBtdXN0VmFsaWRhdGUgPSBlZGl0ICYmICFwcm9wcy5ub1ZhbGlkYXRlICYmIGxpdmVWYWxpZGF0ZTtcbiAgICBjb25zdCByb290U2NoZW1hID0gc2NoZW1hO1xuICAgIGNvbnN0IGZvcm1EYXRhID0gZ2V0RGVmYXVsdEZvcm1TdGF0ZShzY2hlbWEsIGlucHV0Rm9ybURhdGEsIHJvb3RTY2hlbWEpO1xuICAgIGNvbnN0IHJldHJpZXZlZFNjaGVtYSA9IHJldHJpZXZlU2NoZW1hKHNjaGVtYSwgcm9vdFNjaGVtYSwgZm9ybURhdGEpO1xuICAgIGNvbnN0IGN1c3RvbUZvcm1hdHMgPSBwcm9wcy5jdXN0b21Gb3JtYXRzO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXRhU2NoZW1hcyA9IHByb3BzLmFkZGl0aW9uYWxNZXRhU2NoZW1hcztcblxuICAgIGNvbnN0IGdldEN1cnJlbnRFcnJvcnMgPSAoKSA9PiB7XG4gICAgICBpZiAocHJvcHMubm9WYWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4geyBlcnJvcnM6IFtdLCBlcnJvclNjaGVtYToge30gfTtcbiAgICAgIH0gZWxzZSBpZiAoIXByb3BzLmxpdmVWYWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVycm9yczogc3RhdGUuc2NoZW1hVmFsaWRhdGlvbkVycm9ycyB8fCBbXSxcbiAgICAgICAgICBlcnJvclNjaGVtYTogc3RhdGUuc2NoZW1hVmFsaWRhdGlvbkVycm9yU2NoZW1hIHx8IHt9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3JzOiBzdGF0ZS5lcnJvcnMgfHwgW10sXG4gICAgICAgIGVycm9yU2NoZW1hOiBzdGF0ZS5lcnJvclNjaGVtYSB8fCB7fSxcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGxldCBlcnJvcnMsXG4gICAgICBlcnJvclNjaGVtYSxcbiAgICAgIHNjaGVtYVZhbGlkYXRpb25FcnJvcnMsXG4gICAgICBzY2hlbWFWYWxpZGF0aW9uRXJyb3JTY2hlbWE7XG4gICAgaWYgKG11c3RWYWxpZGF0ZSkge1xuICAgICAgY29uc3Qgc2NoZW1hVmFsaWRhdGlvbiA9IHRoaXMudmFsaWRhdGUoXG4gICAgICAgIGZvcm1EYXRhLFxuICAgICAgICBzY2hlbWEsXG4gICAgICAgIGFkZGl0aW9uYWxNZXRhU2NoZW1hcyxcbiAgICAgICAgY3VzdG9tRm9ybWF0c1xuICAgICAgKTtcbiAgICAgIGVycm9ycyA9IHNjaGVtYVZhbGlkYXRpb24uZXJyb3JzO1xuICAgICAgZXJyb3JTY2hlbWEgPSBzY2hlbWFWYWxpZGF0aW9uLmVycm9yU2NoZW1hO1xuICAgICAgc2NoZW1hVmFsaWRhdGlvbkVycm9ycyA9IGVycm9ycztcbiAgICAgIHNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYSA9IGVycm9yU2NoZW1hO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjdXJyZW50RXJyb3JzID0gZ2V0Q3VycmVudEVycm9ycygpO1xuICAgICAgZXJyb3JzID0gY3VycmVudEVycm9ycy5lcnJvcnM7XG4gICAgICBlcnJvclNjaGVtYSA9IGN1cnJlbnRFcnJvcnMuZXJyb3JTY2hlbWE7XG4gICAgICBzY2hlbWFWYWxpZGF0aW9uRXJyb3JzID0gc3RhdGUuc2NoZW1hVmFsaWRhdGlvbkVycm9ycztcbiAgICAgIHNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYSA9IHN0YXRlLnNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmV4dHJhRXJyb3JzKSB7XG4gICAgICBlcnJvclNjaGVtYSA9IG1lcmdlT2JqZWN0cyhcbiAgICAgICAgZXJyb3JTY2hlbWEsXG4gICAgICAgIHByb3BzLmV4dHJhRXJyb3JzLFxuICAgICAgICAhIVwiY29uY2F0IGFycmF5c1wiXG4gICAgICApO1xuICAgICAgZXJyb3JzID0gdG9FcnJvckxpc3QoZXJyb3JTY2hlbWEpO1xuICAgIH1cbiAgICBjb25zdCBpZFNjaGVtYSA9IHRvSWRTY2hlbWEoXG4gICAgICByZXRyaWV2ZWRTY2hlbWEsXG4gICAgICB1aVNjaGVtYVtcInVpOnJvb3RGaWVsZElkXCJdLFxuICAgICAgcm9vdFNjaGVtYSxcbiAgICAgIGZvcm1EYXRhLFxuICAgICAgcHJvcHMuaWRQcmVmaXgsXG4gICAgICBwcm9wcy5pZFNlcGFyYXRvclxuICAgICk7XG4gICAgY29uc3QgbmV4dFN0YXRlID0ge1xuICAgICAgc2NoZW1hLFxuICAgICAgdWlTY2hlbWEsXG4gICAgICBpZFNjaGVtYSxcbiAgICAgIGZvcm1EYXRhLFxuICAgICAgZWRpdCxcbiAgICAgIGVycm9ycyxcbiAgICAgIGVycm9yU2NoZW1hLFxuICAgICAgYWRkaXRpb25hbE1ldGFTY2hlbWFzLFxuICAgIH07XG4gICAgaWYgKHNjaGVtYVZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICAgIG5leHRTdGF0ZS5zY2hlbWFWYWxpZGF0aW9uRXJyb3JzID0gc2NoZW1hVmFsaWRhdGlvbkVycm9ycztcbiAgICAgIG5leHRTdGF0ZS5zY2hlbWFWYWxpZGF0aW9uRXJyb3JTY2hlbWEgPSBzY2hlbWFWYWxpZGF0aW9uRXJyb3JTY2hlbWE7XG4gICAgfVxuICAgIHJldHVybiBuZXh0U3RhdGU7XG4gIH1cblxuICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUpIHtcbiAgICByZXR1cm4gc2hvdWxkUmVuZGVyKHRoaXMsIG5leHRQcm9wcywgbmV4dFN0YXRlKTtcbiAgfVxuXG4gIHZhbGlkYXRlKFxuICAgIGZvcm1EYXRhLFxuICAgIHNjaGVtYSA9IHRoaXMucHJvcHMuc2NoZW1hLFxuICAgIGFkZGl0aW9uYWxNZXRhU2NoZW1hcyA9IHRoaXMucHJvcHMuYWRkaXRpb25hbE1ldGFTY2hlbWFzLFxuICAgIGN1c3RvbUZvcm1hdHMgPSB0aGlzLnByb3BzLmN1c3RvbUZvcm1hdHNcbiAgKSB7XG4gICAgY29uc3QgeyB2YWxpZGF0ZSwgdHJhbnNmb3JtRXJyb3JzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgcm9vdFNjaGVtYSB9ID0gdGhpcy5nZXRSZWdpc3RyeSgpO1xuICAgIGNvbnN0IHJlc29sdmVkU2NoZW1hID0gcmV0cmlldmVTY2hlbWEoc2NoZW1hLCByb290U2NoZW1hLCBmb3JtRGF0YSk7XG4gICAgcmV0dXJuIHZhbGlkYXRlRm9ybURhdGEoXG4gICAgICBmb3JtRGF0YSxcbiAgICAgIHJlc29sdmVkU2NoZW1hLFxuICAgICAgdmFsaWRhdGUsXG4gICAgICB0cmFuc2Zvcm1FcnJvcnMsXG4gICAgICBhZGRpdGlvbmFsTWV0YVNjaGVtYXMsXG4gICAgICBjdXN0b21Gb3JtYXRzXG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlckVycm9ycygpIHtcbiAgICBjb25zdCB7IGVycm9ycywgZXJyb3JTY2hlbWEsIHNjaGVtYSwgdWlTY2hlbWEgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyBFcnJvckxpc3QsIHNob3dFcnJvckxpc3QsIGZvcm1Db250ZXh0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggJiYgc2hvd0Vycm9yTGlzdCAhPSBmYWxzZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEVycm9yTGlzdFxuICAgICAgICAgIGVycm9ycz17ZXJyb3JzfVxuICAgICAgICAgIGVycm9yU2NoZW1hPXtlcnJvclNjaGVtYX1cbiAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICB1aVNjaGVtYT17dWlTY2hlbWF9XG4gICAgICAgICAgZm9ybUNvbnRleHQ9e2Zvcm1Db250ZXh0fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRVc2VkRm9ybURhdGEgPSAoZm9ybURhdGEsIGZpZWxkcykgPT4ge1xuICAgIC8vZm9yIHRoZSBjYXNlIG9mIGEgc2luZ2xlIGlucHV0IGZvcm1cbiAgICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMCAmJiB0eXBlb2YgZm9ybURhdGEgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBmb3JtRGF0YTtcbiAgICB9XG5cbiAgICBsZXQgZGF0YSA9IF9waWNrKGZvcm1EYXRhLCBmaWVsZHMpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1EYXRhKSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpLm1hcChrZXkgPT4gZGF0YVtrZXldKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfTtcblxuICBnZXRGaWVsZE5hbWVzID0gKHBhdGhTY2hlbWEsIGZvcm1EYXRhKSA9PiB7XG4gICAgY29uc3QgZ2V0QWxsUGF0aHMgPSAoX29iaiwgYWNjID0gW10sIHBhdGhzID0gW1wiXCJdKSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhfb2JqKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgX29ialtrZXldID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgbGV0IG5ld1BhdGhzID0gcGF0aHMubWFwKHBhdGggPT4gYCR7cGF0aH0uJHtrZXl9YCk7XG4gICAgICAgICAgLy8gSWYgYW4gb2JqZWN0IGlzIG1hcmtlZCB3aXRoIGFkZGl0aW9uYWxQcm9wZXJ0aWVzLCBhbGwgaXRzIGtleXMgYXJlIHZhbGlkXG4gICAgICAgICAgaWYgKF9vYmpba2V5XS5fX3Jqc2ZfYWRkaXRpb25hbFByb3BlcnRpZXMgJiYgX29ialtrZXldLiRuYW1lICE9PSBcIlwiKSB7XG4gICAgICAgICAgICBhY2MucHVzaChfb2JqW2tleV0uJG5hbWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRBbGxQYXRocyhfb2JqW2tleV0sIGFjYywgbmV3UGF0aHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IFwiJG5hbWVcIiAmJiBfb2JqW2tleV0gIT09IFwiXCIpIHtcbiAgICAgICAgICBwYXRocy5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgvXlxcLi8sIFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gX2dldChmb3JtRGF0YSwgcGF0aCk7XG4gICAgICAgICAgICAvLyBhZGRzIHBhdGggdG8gZmllbGROYW1lcyBpZiBpdCBwb2ludHMgdG8gYSB2YWx1ZVxuICAgICAgICAgICAgLy8gb3IgYW4gZW1wdHkgb2JqZWN0L2FycmF5XG4gICAgICAgICAgICBpZiAodHlwZW9mIGZvcm1WYWx1ZSAhPT0gXCJvYmplY3RcIiB8fCBfaXNFbXB0eShmb3JtVmFsdWUpKSB7XG4gICAgICAgICAgICAgIGFjYy5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfTtcblxuICAgIHJldHVybiBnZXRBbGxQYXRocyhwYXRoU2NoZW1hKTtcbiAgfTtcblxuICBvbkNoYW5nZSA9IChmb3JtRGF0YSwgbmV3RXJyb3JTY2hlbWEpID0+IHtcbiAgICBpZiAoaXNPYmplY3QoZm9ybURhdGEpIHx8IEFycmF5LmlzQXJyYXkoZm9ybURhdGEpKSB7XG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHRoaXMuZ2V0U3RhdGVGcm9tUHJvcHModGhpcy5wcm9wcywgZm9ybURhdGEpO1xuICAgICAgZm9ybURhdGEgPSBuZXdTdGF0ZS5mb3JtRGF0YTtcbiAgICB9XG4gICAgY29uc3QgbXVzdFZhbGlkYXRlID0gIXRoaXMucHJvcHMubm9WYWxpZGF0ZSAmJiB0aGlzLnByb3BzLmxpdmVWYWxpZGF0ZTtcbiAgICBsZXQgc3RhdGUgPSB7IGZvcm1EYXRhIH07XG4gICAgbGV0IG5ld0Zvcm1EYXRhID0gZm9ybURhdGE7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5vbWl0RXh0cmFEYXRhID09PSB0cnVlICYmIHRoaXMucHJvcHMubGl2ZU9taXQgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IHJldHJpZXZlZFNjaGVtYSA9IHJldHJpZXZlU2NoZW1hKFxuICAgICAgICB0aGlzLnN0YXRlLnNjaGVtYSxcbiAgICAgICAgdGhpcy5zdGF0ZS5zY2hlbWEsXG4gICAgICAgIGZvcm1EYXRhXG4gICAgICApO1xuICAgICAgY29uc3QgcGF0aFNjaGVtYSA9IHRvUGF0aFNjaGVtYShcbiAgICAgICAgcmV0cmlldmVkU2NoZW1hLFxuICAgICAgICBcIlwiLFxuICAgICAgICB0aGlzLnN0YXRlLnNjaGVtYSxcbiAgICAgICAgZm9ybURhdGFcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGZpZWxkTmFtZXMgPSB0aGlzLmdldEZpZWxkTmFtZXMocGF0aFNjaGVtYSwgZm9ybURhdGEpO1xuXG4gICAgICBuZXdGb3JtRGF0YSA9IHRoaXMuZ2V0VXNlZEZvcm1EYXRhKGZvcm1EYXRhLCBmaWVsZE5hbWVzKTtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICBmb3JtRGF0YTogbmV3Rm9ybURhdGEsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChtdXN0VmFsaWRhdGUpIHtcbiAgICAgIGxldCBzY2hlbWFWYWxpZGF0aW9uID0gdGhpcy52YWxpZGF0ZShuZXdGb3JtRGF0YSk7XG4gICAgICBsZXQgZXJyb3JzID0gc2NoZW1hVmFsaWRhdGlvbi5lcnJvcnM7XG4gICAgICBsZXQgZXJyb3JTY2hlbWEgPSBzY2hlbWFWYWxpZGF0aW9uLmVycm9yU2NoZW1hO1xuICAgICAgY29uc3Qgc2NoZW1hVmFsaWRhdGlvbkVycm9ycyA9IGVycm9ycztcbiAgICAgIGNvbnN0IHNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYSA9IGVycm9yU2NoZW1hO1xuICAgICAgaWYgKHRoaXMucHJvcHMuZXh0cmFFcnJvcnMpIHtcbiAgICAgICAgZXJyb3JTY2hlbWEgPSBtZXJnZU9iamVjdHMoXG4gICAgICAgICAgZXJyb3JTY2hlbWEsXG4gICAgICAgICAgdGhpcy5wcm9wcy5leHRyYUVycm9ycyxcbiAgICAgICAgICAhIVwiY29uY2F0IGFycmF5c1wiXG4gICAgICAgICk7XG4gICAgICAgIGVycm9ycyA9IHRvRXJyb3JMaXN0KGVycm9yU2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIHN0YXRlID0ge1xuICAgICAgICBmb3JtRGF0YTogbmV3Rm9ybURhdGEsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZXJyb3JTY2hlbWEsXG4gICAgICAgIHNjaGVtYVZhbGlkYXRpb25FcnJvcnMsXG4gICAgICAgIHNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICghdGhpcy5wcm9wcy5ub1ZhbGlkYXRlICYmIG5ld0Vycm9yU2NoZW1hKSB7XG4gICAgICBjb25zdCBlcnJvclNjaGVtYSA9IHRoaXMucHJvcHMuZXh0cmFFcnJvcnNcbiAgICAgICAgPyBtZXJnZU9iamVjdHMoXG4gICAgICAgICAgICBuZXdFcnJvclNjaGVtYSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZXh0cmFFcnJvcnMsXG4gICAgICAgICAgICAhIVwiY29uY2F0IGFycmF5c1wiXG4gICAgICAgICAgKVxuICAgICAgICA6IG5ld0Vycm9yU2NoZW1hO1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGZvcm1EYXRhOiBuZXdGb3JtRGF0YSxcbiAgICAgICAgZXJyb3JTY2hlbWE6IGVycm9yU2NoZW1hLFxuICAgICAgICBlcnJvcnM6IHRvRXJyb3JMaXN0KGVycm9yU2NoZW1hKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICBzdGF0ZSxcbiAgICAgICgpID0+IHRoaXMucHJvcHMub25DaGFuZ2UgJiYgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICAgICk7XG4gIH07XG5cbiAgb25CbHVyID0gKC4uLmFyZ3MpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgIHRoaXMucHJvcHMub25CbHVyKC4uLmFyZ3MpO1xuICAgIH1cbiAgfTtcblxuICBvbkZvY3VzID0gKC4uLmFyZ3MpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkZvY3VzKSB7XG4gICAgICB0aGlzLnByb3BzLm9uRm9jdXMoLi4uYXJncyk7XG4gICAgfVxuICB9O1xuXG4gIG9uU3VibWl0ID0gZXZlbnQgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnBlcnNpc3QoKTtcbiAgICBsZXQgbmV3Rm9ybURhdGEgPSB0aGlzLnN0YXRlLmZvcm1EYXRhO1xuXG4gICAgaWYgKHRoaXMucHJvcHMub21pdEV4dHJhRGF0YSA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgcmV0cmlldmVkU2NoZW1hID0gcmV0cmlldmVTY2hlbWEoXG4gICAgICAgIHRoaXMuc3RhdGUuc2NoZW1hLFxuICAgICAgICB0aGlzLnN0YXRlLnNjaGVtYSxcbiAgICAgICAgbmV3Rm9ybURhdGFcbiAgICAgICk7XG4gICAgICBjb25zdCBwYXRoU2NoZW1hID0gdG9QYXRoU2NoZW1hKFxuICAgICAgICByZXRyaWV2ZWRTY2hlbWEsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIHRoaXMuc3RhdGUuc2NoZW1hLFxuICAgICAgICBuZXdGb3JtRGF0YVxuICAgICAgKTtcblxuICAgICAgY29uc3QgZmllbGROYW1lcyA9IHRoaXMuZ2V0RmllbGROYW1lcyhwYXRoU2NoZW1hLCBuZXdGb3JtRGF0YSk7XG5cbiAgICAgIG5ld0Zvcm1EYXRhID0gdGhpcy5nZXRVc2VkRm9ybURhdGEobmV3Rm9ybURhdGEsIGZpZWxkTmFtZXMpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcm9wcy5ub1ZhbGlkYXRlKSB7XG4gICAgICBsZXQgc2NoZW1hVmFsaWRhdGlvbiA9IHRoaXMudmFsaWRhdGUobmV3Rm9ybURhdGEpO1xuICAgICAgbGV0IGVycm9ycyA9IHNjaGVtYVZhbGlkYXRpb24uZXJyb3JzO1xuICAgICAgbGV0IGVycm9yU2NoZW1hID0gc2NoZW1hVmFsaWRhdGlvbi5lcnJvclNjaGVtYTtcbiAgICAgIGNvbnN0IHNjaGVtYVZhbGlkYXRpb25FcnJvcnMgPSBlcnJvcnM7XG4gICAgICBjb25zdCBzY2hlbWFWYWxpZGF0aW9uRXJyb3JTY2hlbWEgPSBlcnJvclNjaGVtYTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZXh0cmFFcnJvcnMpIHtcbiAgICAgICAgICBlcnJvclNjaGVtYSA9IG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIGVycm9yU2NoZW1hLFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5leHRyYUVycm9ycyxcbiAgICAgICAgICAgICEhXCJjb25jYXQgYXJyYXlzXCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGVycm9ycyA9IHRvRXJyb3JMaXN0KGVycm9yU2NoZW1hKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgIGVycm9yU2NoZW1hLFxuICAgICAgICAgICAgc2NoZW1hVmFsaWRhdGlvbkVycm9ycyxcbiAgICAgICAgICAgIHNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYSxcbiAgICAgICAgICB9LFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkVycm9yKGVycm9ycyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRm9ybSB2YWxpZGF0aW9uIGZhaWxlZFwiLCBlcnJvcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZXJlIGFyZSBubyBlcnJvcnMgZ2VuZXJhdGVkIHRocm91Z2ggc2NoZW1hIHZhbGlkYXRpb24uXG4gICAgLy8gQ2hlY2sgZm9yIHVzZXIgcHJvdmlkZWQgZXJyb3JzIGFuZCB1cGRhdGUgc3RhdGUgYWNjb3JkaW5nbHkuXG4gICAgbGV0IGVycm9yU2NoZW1hO1xuICAgIGxldCBlcnJvcnM7XG4gICAgaWYgKHRoaXMucHJvcHMuZXh0cmFFcnJvcnMpIHtcbiAgICAgIGVycm9yU2NoZW1hID0gdGhpcy5wcm9wcy5leHRyYUVycm9ycztcbiAgICAgIGVycm9ycyA9IHRvRXJyb3JMaXN0KGVycm9yU2NoZW1hKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3JTY2hlbWEgPSB7fTtcbiAgICAgIGVycm9ycyA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICB7XG4gICAgICAgIGZvcm1EYXRhOiBuZXdGb3JtRGF0YSxcbiAgICAgICAgZXJyb3JzOiBlcnJvcnMsXG4gICAgICAgIGVycm9yU2NoZW1hOiBlcnJvclNjaGVtYSxcbiAgICAgICAgc2NoZW1hVmFsaWRhdGlvbkVycm9yczogW10sXG4gICAgICAgIHNjaGVtYVZhbGlkYXRpb25FcnJvclNjaGVtYToge30sXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vblN1Ym1pdCkge1xuICAgICAgICAgIHRoaXMucHJvcHMub25TdWJtaXQoXG4gICAgICAgICAgICB7IC4uLnRoaXMuc3RhdGUsIGZvcm1EYXRhOiBuZXdGb3JtRGF0YSwgc3RhdHVzOiBcInN1Ym1pdHRlZFwiIH0sXG4gICAgICAgICAgICBldmVudFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9O1xuXG4gIGdldFJlZ2lzdHJ5KCkge1xuICAgIC8vIEZvciBCQywgYWNjZXB0IHBhc3NlZCBTY2hlbWFGaWVsZCBhbmQgVGl0bGVGaWVsZCBwcm9wcyBhbmQgcGFzcyB0aGVtIHRvXG4gICAgLy8gdGhlIFwiZmllbGRzXCIgcmVnaXN0cnkgb25lLlxuICAgIGNvbnN0IHsgZmllbGRzLCB3aWRnZXRzIH0gPSBnZXREZWZhdWx0UmVnaXN0cnkoKTtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGRzOiB7IC4uLmZpZWxkcywgLi4udGhpcy5wcm9wcy5maWVsZHMgfSxcbiAgICAgIHdpZGdldHM6IHsgLi4ud2lkZ2V0cywgLi4udGhpcy5wcm9wcy53aWRnZXRzIH0sXG4gICAgICBBcnJheUZpZWxkVGVtcGxhdGU6IHRoaXMucHJvcHMuQXJyYXlGaWVsZFRlbXBsYXRlLFxuICAgICAgT2JqZWN0RmllbGRUZW1wbGF0ZTogdGhpcy5wcm9wcy5PYmplY3RGaWVsZFRlbXBsYXRlLFxuICAgICAgRmllbGRUZW1wbGF0ZTogdGhpcy5wcm9wcy5GaWVsZFRlbXBsYXRlLFxuICAgICAgZGVmaW5pdGlvbnM6IHRoaXMucHJvcHMuc2NoZW1hLmRlZmluaXRpb25zIHx8IHt9LFxuICAgICAgcm9vdFNjaGVtYTogdGhpcy5wcm9wcy5zY2hlbWEsXG4gICAgICBmb3JtQ29udGV4dDogdGhpcy5wcm9wcy5mb3JtQ29udGV4dCB8fCB7fSxcbiAgICB9O1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIGlmICh0aGlzLmZvcm1FbGVtZW50KSB7XG4gICAgICB0aGlzLmZvcm1FbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudChcInN1Ym1pdFwiLCB7XG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaWQsXG4gICAgICBpZFByZWZpeCxcbiAgICAgIGlkU2VwYXJhdG9yLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgdGFnTmFtZSxcbiAgICAgIG5hbWUsXG4gICAgICBtZXRob2QsXG4gICAgICB0YXJnZXQsXG4gICAgICBhY3Rpb24sXG4gICAgICBhdXRvY29tcGxldGU6IGRlcHJlY2F0ZWRBdXRvY29tcGxldGUsXG4gICAgICBhdXRvQ29tcGxldGU6IGN1cnJlbnRBdXRvQ29tcGxldGUsXG4gICAgICBlbmN0eXBlLFxuICAgICAgYWNjZXB0Y2hhcnNldCxcbiAgICAgIG5vSHRtbDVWYWxpZGF0ZSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgcmVhZG9ubHksXG4gICAgICBmb3JtQ29udGV4dCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHsgc2NoZW1hLCB1aVNjaGVtYSwgZm9ybURhdGEsIGVycm9yU2NoZW1hLCBpZFNjaGVtYSB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuZ2V0UmVnaXN0cnkoKTtcbiAgICBjb25zdCBfU2NoZW1hRmllbGQgPSByZWdpc3RyeS5maWVsZHMuU2NoZW1hRmllbGQ7XG4gICAgY29uc3QgRm9ybVRhZyA9IHRhZ05hbWUgPyB0YWdOYW1lIDogXCJmb3JtXCI7XG4gICAgaWYgKGRlcHJlY2F0ZWRBdXRvY29tcGxldGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJVc2luZyBhdXRvY29tcGxldGUgcHJvcGVydHkgb2YgRm9ybSBpcyBkZXByZWNhdGVkLCB1c2UgYXV0b0NvbXBsZXRlIGluc3RlYWQuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGF1dG9Db21wbGV0ZSA9IGN1cnJlbnRBdXRvQ29tcGxldGVcbiAgICAgID8gY3VycmVudEF1dG9Db21wbGV0ZVxuICAgICAgOiBkZXByZWNhdGVkQXV0b2NvbXBsZXRlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxGb3JtVGFnXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lID8gY2xhc3NOYW1lIDogXCJyanNmXCJ9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgbWV0aG9kPXttZXRob2R9XG4gICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgYXV0b0NvbXBsZXRlPXthdXRvQ29tcGxldGV9XG4gICAgICAgIGVuY1R5cGU9e2VuY3R5cGV9XG4gICAgICAgIGFjY2VwdENoYXJzZXQ9e2FjY2VwdGNoYXJzZXR9XG4gICAgICAgIG5vVmFsaWRhdGU9e25vSHRtbDVWYWxpZGF0ZX1cbiAgICAgICAgb25TdWJtaXQ9e3RoaXMub25TdWJtaXR9XG4gICAgICAgIHJlZj17Zm9ybSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IGZvcm07XG4gICAgICAgIH19PlxuICAgICAgICB7dGhpcy5yZW5kZXJFcnJvcnMoKX1cbiAgICAgICAgPF9TY2hlbWFGaWVsZFxuICAgICAgICAgIHNjaGVtYT17c2NoZW1hfVxuICAgICAgICAgIHVpU2NoZW1hPXt1aVNjaGVtYX1cbiAgICAgICAgICBlcnJvclNjaGVtYT17ZXJyb3JTY2hlbWF9XG4gICAgICAgICAgaWRTY2hlbWE9e2lkU2NoZW1hfVxuICAgICAgICAgIGlkUHJlZml4PXtpZFByZWZpeH1cbiAgICAgICAgICBpZFNlcGFyYXRvcj17aWRTZXBhcmF0b3J9XG4gICAgICAgICAgZm9ybUNvbnRleHQ9e2Zvcm1Db250ZXh0fVxuICAgICAgICAgIGZvcm1EYXRhPXtmb3JtRGF0YX1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX1cbiAgICAgICAgICBvbkJsdXI9e3RoaXMub25CbHVyfVxuICAgICAgICAgIG9uRm9jdXM9e3RoaXMub25Gb2N1c31cbiAgICAgICAgICByZWdpc3RyeT17cmVnaXN0cnl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlYWRvbmx5PXtyZWFkb25seX1cbiAgICAgICAgLz5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzTmFtZT1cImJ0biBidG4taW5mb1wiPlxuICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9Gb3JtVGFnPlxuICAgICk7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBGb3JtLnByb3BUeXBlcyA9IHtcbiAgICBzY2hlbWE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICB1aVNjaGVtYTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBmb3JtRGF0YTogUHJvcFR5cGVzLmFueSxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgcmVhZG9ubHk6IFByb3BUeXBlcy5ib29sLFxuICAgIHdpZGdldHM6IFByb3BUeXBlcy5vYmplY3RPZihcbiAgICAgIFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMub2JqZWN0XSlcbiAgICApLFxuICAgIGZpZWxkczogUHJvcFR5cGVzLm9iamVjdE9mKFByb3BUeXBlcy5lbGVtZW50VHlwZSksXG4gICAgQXJyYXlGaWVsZFRlbXBsYXRlOiBQcm9wVHlwZXMuZWxlbWVudFR5cGUsXG4gICAgT2JqZWN0RmllbGRUZW1wbGF0ZTogUHJvcFR5cGVzLmVsZW1lbnRUeXBlLFxuICAgIEZpZWxkVGVtcGxhdGU6IFByb3BUeXBlcy5lbGVtZW50VHlwZSxcbiAgICBFcnJvckxpc3Q6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBzaG93RXJyb3JMaXN0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvblN1Ym1pdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHRhZ05hbWU6IFByb3BUeXBlcy5lbGVtZW50VHlwZSxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1ldGhvZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0YXJnZXQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGF1dG9jb21wbGV0ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhdXRvQ29tcGxldGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZW5jdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhY2NlcHRjaGFyc2V0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG5vVmFsaWRhdGU6IFByb3BUeXBlcy5ib29sLFxuICAgIG5vSHRtbDVWYWxpZGF0ZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgbGl2ZVZhbGlkYXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB2YWxpZGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgdHJhbnNmb3JtRXJyb3JzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBmb3JtQ29udGV4dDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjdXN0b21Gb3JtYXRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGFkZGl0aW9uYWxNZXRhU2NoZW1hczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm9iamVjdCksXG4gICAgb21pdEV4dHJhRGF0YTogUHJvcFR5cGVzLmJvb2wsXG4gICAgZXh0cmFFcnJvcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gIH07XG59XG4iXX0=
|
|
@@ -28,4 +28,5 @@ function IconButton(props) {
|
|
|
28
28
|
}, otherProps), _react["default"].createElement("i", {
|
|
29
29
|
className: "glyphicon glyphicon-".concat(icon)
|
|
30
30
|
}));
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24uanMiXSwibmFtZXMiOlsiSWNvbkJ1dHRvbiIsInByb3BzIiwidHlwZSIsImljb24iLCJjbGFzc05hbWUiLCJvdGhlclByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7QUFFZSxTQUFTQSxVQUFULENBQW9CQyxLQUFwQixFQUEyQjtBQUFBLG9CQUNxQkEsS0FEckIsQ0FDaENDLElBRGdDO0FBQUEsTUFDaENBLElBRGdDLDRCQUN6QixTQUR5QjtBQUFBLE1BQ2RDLElBRGMsR0FDcUJGLEtBRHJCLENBQ2RFLElBRGM7QUFBQSxNQUNSQyxTQURRLEdBQ3FCSCxLQURyQixDQUNSRyxTQURRO0FBQUEsTUFDTUMsVUFETiw0QkFDcUJKLEtBRHJCOztBQUV4QyxTQUNFO0FBQ0UsSUFBQSxJQUFJLEVBQUMsUUFEUDtBQUVFLElBQUEsU0FBUyxvQkFBYUMsSUFBYixjQUFxQkUsU0FBckI7QUFGWCxLQUdNQyxVQUhOLEdBSUU7QUFBRyxJQUFBLFNBQVMsZ0NBQXlCRixJQUF6QjtBQUFaLElBSkYsQ0FERjtBQVFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBJY29uQnV0dG9uKHByb3BzKSB7XG4gIGNvbnN0IHsgdHlwZSA9IFwiZGVmYXVsdFwiLCBpY29uLCBjbGFzc05hbWUsIC4uLm90aGVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3NOYW1lPXtgYnRuIGJ0bi0ke3R5cGV9ICR7Y2xhc3NOYW1lfWB9XG4gICAgICB7Li4ub3RoZXJQcm9wc30+XG4gICAgICA8aSBjbGFzc05hbWU9e2BnbHlwaGljb24gZ2x5cGhpY29uLSR7aWNvbn1gfSAvPlxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuIl19
|