@salutejs/plasma-new-hope 0.194.0-canary.1565.11870784206.0 → 0.194.0-canary.1568.11891833298.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Switch/Switch.css +2 -2
- package/cjs/components/Switch/Switch.tokens.js +7 -1
- package/cjs/components/Switch/Switch.tokens.js.map +1 -1
- package/cjs/components/Switch/_toggleSize/base.js +1 -1
- package/cjs/components/Switch/_toggleSize/base.js.map +1 -1
- package/cjs/components/Switch/_toggleSize/base_1d0b3t4.css +1 -0
- package/cjs/components/Switch/_view/base.js +1 -1
- package/cjs/components/Switch/_view/base.js.map +1 -1
- package/cjs/components/Switch/_view/base_15atbyp.css +1 -0
- package/cjs/components/TextField/TextField.js +3 -27
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/index.css +2 -2
- package/cjs/utils/constants.js +0 -4
- package/cjs/utils/constants.js.map +1 -1
- package/emotion/cjs/components/Card/Card.api.mdx +184 -0
- package/emotion/cjs/components/Switch/Switch.tokens.js +7 -1
- package/emotion/cjs/components/Switch/_toggleSize/base.js +1 -1
- package/emotion/cjs/components/Switch/_view/base.js +1 -1
- package/emotion/cjs/components/TextField/TextField.js +4 -27
- package/emotion/cjs/components/TextField/TextField.template-doc.mdx +0 -330
- package/emotion/cjs/components/TextField/hooks/index.js +1 -8
- package/emotion/cjs/examples/plasma_b2c/components/Switch/Switch.config.js +8 -8
- package/emotion/cjs/examples/plasma_b2c/components/Switch/Switch.js +5 -2
- package/emotion/cjs/examples/plasma_b2c/components/Switch/Switch.outline.config.js +37 -0
- package/emotion/cjs/examples/plasma_b2c/components/Switch/Switch.stories.tsx +33 -1
- package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +1 -253
- package/emotion/cjs/examples/plasma_web/components/Switch/Switch.config.js +8 -8
- package/emotion/cjs/examples/plasma_web/components/Switch/Switch.js +5 -2
- package/emotion/cjs/examples/plasma_web/components/Switch/Switch.outline.config.js +37 -0
- package/emotion/cjs/examples/plasma_web/components/Switch/Switch.stories.tsx +33 -1
- package/emotion/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +0 -252
- package/emotion/cjs/utils/constants.js +2 -4
- package/emotion/es/components/Card/Card.api.mdx +184 -0
- package/emotion/es/components/Switch/Switch.tokens.js +7 -1
- package/emotion/es/components/Switch/_toggleSize/base.js +1 -1
- package/emotion/es/components/Switch/_view/base.js +1 -1
- package/emotion/es/components/TextField/TextField.js +5 -28
- package/emotion/es/components/TextField/TextField.template-doc.mdx +0 -330
- package/emotion/es/components/TextField/hooks/index.js +1 -2
- package/emotion/es/examples/plasma_b2c/components/Switch/Switch.config.js +8 -8
- package/emotion/es/examples/plasma_b2c/components/Switch/Switch.js +4 -1
- package/emotion/es/examples/plasma_b2c/components/Switch/Switch.outline.config.js +31 -0
- package/emotion/es/examples/plasma_b2c/components/Switch/Switch.stories.tsx +33 -1
- package/emotion/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +1 -253
- package/emotion/es/examples/plasma_web/components/Switch/Switch.config.js +8 -8
- package/emotion/es/examples/plasma_web/components/Switch/Switch.js +4 -1
- package/emotion/es/examples/plasma_web/components/Switch/Switch.outline.config.js +31 -0
- package/emotion/es/examples/plasma_web/components/Switch/Switch.stories.tsx +33 -1
- package/emotion/es/examples/plasma_web/components/TextField/TextField.stories.tsx +0 -252
- package/emotion/es/utils/constants.js +1 -3
- package/es/components/Switch/Switch.css +2 -2
- package/es/components/Switch/Switch.tokens.js +7 -1
- package/es/components/Switch/Switch.tokens.js.map +1 -1
- package/es/components/Switch/_toggleSize/base.js +1 -1
- package/es/components/Switch/_toggleSize/base.js.map +1 -1
- package/es/components/Switch/_toggleSize/base_1d0b3t4.css +1 -0
- package/es/components/Switch/_view/base.js +1 -1
- package/es/components/Switch/_view/base.js.map +1 -1
- package/es/components/Switch/_view/base_15atbyp.css +1 -0
- package/es/components/TextField/TextField.js +3 -27
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/index.css +2 -2
- package/es/utils/constants.js +1 -3
- package/es/utils/constants.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Card/Card.api.mdx +184 -0
- package/styled-components/cjs/components/Switch/Switch.tokens.js +7 -1
- package/styled-components/cjs/components/Switch/_toggleSize/base.js +1 -1
- package/styled-components/cjs/components/Switch/_view/base.js +1 -1
- package/styled-components/cjs/components/TextField/TextField.js +3 -26
- package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +0 -330
- package/styled-components/cjs/components/TextField/hooks/index.js +1 -8
- package/styled-components/cjs/examples/plasma_b2c/components/Switch/Switch.config.js +1 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Switch/Switch.js +5 -2
- package/styled-components/cjs/examples/plasma_b2c/components/Switch/Switch.outline.config.js +37 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Switch/Switch.stories.tsx +33 -1
- package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +1 -253
- package/styled-components/cjs/examples/plasma_web/components/Switch/Switch.config.js +1 -1
- package/styled-components/cjs/examples/plasma_web/components/Switch/Switch.js +5 -2
- package/styled-components/cjs/examples/plasma_web/components/Switch/Switch.outline.config.js +37 -0
- package/styled-components/cjs/examples/plasma_web/components/Switch/Switch.stories.tsx +33 -1
- package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +0 -252
- package/styled-components/cjs/utils/constants.js +2 -4
- package/styled-components/es/components/Card/Card.api.mdx +184 -0
- package/styled-components/es/components/Switch/Switch.tokens.js +7 -1
- package/styled-components/es/components/Switch/_toggleSize/base.js +1 -1
- package/styled-components/es/components/Switch/_view/base.js +1 -1
- package/styled-components/es/components/TextField/TextField.js +4 -27
- package/styled-components/es/components/TextField/TextField.template-doc.mdx +0 -330
- package/styled-components/es/components/TextField/hooks/index.js +1 -2
- package/styled-components/es/examples/plasma_b2c/components/Switch/Switch.config.js +1 -1
- package/styled-components/es/examples/plasma_b2c/components/Switch/Switch.js +4 -1
- package/styled-components/es/examples/plasma_b2c/components/Switch/Switch.outline.config.js +31 -0
- package/styled-components/es/examples/plasma_b2c/components/Switch/Switch.stories.tsx +33 -1
- package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +1 -253
- package/styled-components/es/examples/plasma_web/components/Switch/Switch.config.js +1 -1
- package/styled-components/es/examples/plasma_web/components/Switch/Switch.js +4 -1
- package/styled-components/es/examples/plasma_web/components/Switch/Switch.outline.config.js +31 -0
- package/styled-components/es/examples/plasma_web/components/Switch/Switch.stories.tsx +33 -1
- package/styled-components/es/examples/plasma_web/components/TextField/TextField.stories.tsx +0 -252
- package/styled-components/es/utils/constants.js +1 -3
- package/types/components/Autocomplete/Autocomplete.types.d.ts +2 -2
- package/types/components/Autocomplete/Autocomplete.types.d.ts.map +1 -1
- package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts +92 -1676
- package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts +92 -1676
- package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts +92 -1676
- package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts.map +1 -1
- package/types/components/Range/Range.styles.d.ts +92 -1676
- package/types/components/Range/Range.styles.d.ts.map +1 -1
- package/types/components/Select/ui/Target/ui/Textfield/Textfield.styles.d.ts +92 -1676
- package/types/components/Select/ui/Target/ui/Textfield/Textfield.styles.d.ts.map +1 -1
- package/types/components/Slider/components/Double/Double.styles.d.ts +92 -1676
- package/types/components/Slider/components/Double/Double.styles.d.ts.map +1 -1
- package/types/components/Switch/Switch.tokens.d.ts +7 -1
- package/types/components/Switch/Switch.tokens.d.ts.map +1 -1
- package/types/components/Switch/_toggleSize/base.d.ts.map +1 -1
- package/types/components/Switch/_view/base.d.ts.map +1 -1
- package/types/components/TextField/TextField.d.ts.map +1 -1
- package/types/components/TextField/TextField.types.d.ts +1 -51
- package/types/components/TextField/TextField.types.d.ts.map +1 -1
- package/types/components/TextField/hooks/index.d.ts +0 -1
- package/types/components/TextField/hooks/index.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Autocomplete/Autocomplete.d.ts +2 -64
- package/types/examples/plasma_b2c/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +92 -2732
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Switch/Switch.config.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Switch/Switch.d.ts +20 -0
- package/types/examples/plasma_b2c/components/Switch/Switch.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Switch/Switch.outline.config.d.ts +30 -0
- package/types/examples/plasma_b2c/components/Switch/Switch.outline.config.d.ts.map +1 -0
- package/types/examples/plasma_b2c/components/TextField/TextField.d.ts +92 -1676
- package/types/examples/plasma_b2c/components/TextField/TextField.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Autocomplete/Autocomplete.d.ts +2 -64
- package/types/examples/plasma_web/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Mask/Mask.d.ts +92 -2732
- package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Switch/Switch.config.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Switch/Switch.d.ts +20 -0
- package/types/examples/plasma_web/components/Switch/Switch.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Switch/Switch.outline.config.d.ts +30 -0
- package/types/examples/plasma_web/components/Switch/Switch.outline.config.d.ts.map +1 -0
- package/types/examples/plasma_web/components/TextField/TextField.d.ts +92 -1676
- package/types/examples/plasma_web/components/TextField/TextField.d.ts.map +1 -1
- package/types/utils/constants.d.ts +0 -2
- package/types/utils/constants.d.ts.map +1 -1
- package/cjs/components/Switch/_toggleSize/base_6i0904.css +0 -1
- package/cjs/components/Switch/_view/base_yxkf3s.css +0 -1
- package/cjs/components/TextField/hooks/useValidation.js +0 -273
- package/cjs/components/TextField/hooks/useValidation.js.map +0 -1
- package/emotion/cjs/components/TextField/hooks/useValidation.js +0 -276
- package/emotion/es/components/TextField/hooks/useValidation.js +0 -270
- package/es/components/Switch/_toggleSize/base_6i0904.css +0 -1
- package/es/components/Switch/_view/base_yxkf3s.css +0 -1
- package/es/components/TextField/hooks/useValidation.js +0 -269
- package/es/components/TextField/hooks/useValidation.js.map +0 -1
- package/styled-components/cjs/components/TextField/hooks/useValidation.js +0 -276
- package/styled-components/es/components/TextField/hooks/useValidation.js +0 -270
- package/types/components/TextField/hooks/useValidation.d.ts +0 -7
- package/types/components/TextField/hooks/useValidation.d.ts.map +0 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["id", "className", "style", "contentLeft", "contentRight", "label", "labelPlacement", "textBefore", "textAfter", "placeholder", "leftHelper", "enumerationType", "requiredPlacement", "titleCaption", "hintTrigger", "hintText", "hintView", "hintSize", "hintTargetIcon", "hintPlacement", "hintHasArrow", "hintOffset", "hintWidth", "hintContentLeft", "view", "size", "readOnly", "disabled", "required", "clear", "optional", "hasDivider", "value", "chips", "
|
1
|
+
var _excluded = ["id", "className", "style", "contentLeft", "contentRight", "label", "labelPlacement", "textBefore", "textAfter", "placeholder", "leftHelper", "enumerationType", "requiredPlacement", "titleCaption", "hintTrigger", "hintText", "hintView", "hintSize", "hintTargetIcon", "hintPlacement", "hintHasArrow", "hintOffset", "hintWidth", "hintContentLeft", "view", "size", "readOnly", "disabled", "required", "clear", "optional", "hasDivider", "value", "chips", "onChange", "onChangeChips", "onSearch", "onKeyDown"];
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
4
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
@@ -25,7 +25,7 @@ import { base as hintSizeCSS } from './variations/_hint-size/base';
|
|
25
25
|
import { Input, InputContainer, LeftHelper, Label, InputWrapper, InputLabelWrapper, StyledContentLeft, StyledContentRight, StyledChips, StyledTextBefore, StyledTextAfter, StyledIndicator, StyledOptionalText, InputPlaceholder, OuterLabelWrapper, TitleCaption, StyledHintWrapper, StyledIndicatorWrapper } from './TextField.styles';
|
26
26
|
import { classes } from './TextField.tokens';
|
27
27
|
import { TextFieldChip } from './ui';
|
28
|
-
import { useKeyNavigation
|
28
|
+
import { useKeyNavigation } from './hooks';
|
29
29
|
import { HintComponent } from './ui/Hint/Hint';
|
30
30
|
var optionalText = 'optional';
|
31
31
|
export var base = process.env.NODE_ENV === "production" ? {
|
@@ -34,7 +34,7 @@ export var base = process.env.NODE_ENV === "production" ? {
|
|
34
34
|
} : {
|
35
35
|
name: "121o0v2-plasma-new-hope__base",
|
36
36
|
styles: "display:block;label:plasma-new-hope__base;",
|
37
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEZpZWxkL1RleHRGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0R1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtcbiAgICBGb3JtRXZlbnRIYW5kbGVyLFxuICAgIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgICBLZXlib2FyZEV2ZW50LFxuICAgIENoYW5nZUV2ZW50LFxuICAgIE1vdXNlRXZlbnRIYW5kbGVyLFxuICAgIEZvY3VzRXZlbnQsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHNhZmVVc2VJZCwgdXNlRm9ya1JlZiB9IGZyb20gJ0BzYWx1dGVqcy9wbGFzbWEtY29yZSc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgUm9vdFByb3BzIH0gZnJvbSAnLi4vLi4vZW5naW5lcyc7XG5pbXBvcnQgeyBjeCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gJy4uLy4uL2hvb2tzJztcblxuaW1wb3J0IHR5cGUgeyBDaGlwVmFsdWVzLCBUZXh0RmllbGRQcmltaXRpdmVWYWx1ZSwgVGV4dEZpZWxkUHJvcHMsIFRleHRGaWVsZFJvb3RQcm9wcyB9IGZyb20gJy4vVGV4dEZpZWxkLnR5cGVzJztcbmltcG9ydCB7IGJhc2UgYXMgc2l6ZUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fc2l6ZS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgdmlld0NTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fdmlldy9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgY2xlYXJDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2NsZWFyL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBkaXNhYmxlZENTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fZGlzYWJsZWQvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIHJlYWRPbmx5Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19yZWFkLW9ubHkvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGxhYmVsUGxhY2VtZW50Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19sYWJlbC1wbGFjZW1lbnQvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGhpbnRWaWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19oaW50LXZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGhpbnRTaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19oaW50LXNpemUvYmFzZSc7XG5pbXBvcnQge1xuICAgIElucHV0LFxuICAgIElucHV0Q29udGFpbmVyLFxuICAgIExlZnRIZWxwZXIsXG4gICAgTGFiZWwsXG4gICAgSW5wdXRXcmFwcGVyLFxuICAgIElucHV0TGFiZWxXcmFwcGVyLFxuICAgIFN0eWxlZENvbnRlbnRMZWZ0LFxuICAgIFN0eWxlZENvbnRlbnRSaWdodCxcbiAgICBTdHlsZWRDaGlwcyxcbiAgICBTdHlsZWRUZXh0QmVmb3JlLFxuICAgIFN0eWxlZFRleHRBZnRlcixcbiAgICBTdHlsZWRJbmRpY2F0b3IsXG4gICAgU3R5bGVkT3B0aW9uYWxUZXh0LFxuICAgIElucHV0UGxhY2Vob2xkZXIsXG4gICAgT3V0ZXJMYWJlbFdyYXBwZXIsXG4gICAgVGl0bGVDYXB0aW9uLFxuICAgIFN0eWxlZEhpbnRXcmFwcGVyLFxuICAgIFN0eWxlZEluZGljYXRvcldyYXBwZXIsXG59IGZyb20gJy4vVGV4dEZpZWxkLnN0eWxlcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAnLi9UZXh0RmllbGQudG9rZW5zJztcbmltcG9ydCB7IFRleHRGaWVsZENoaXAgfSBmcm9tICcuL3VpJztcbmltcG9ydCB7IHVzZUtleU5hdmlnYXRpb24sIHVzZVZhbGlkYXRpb24gfSBmcm9tICcuL2hvb2tzJztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuL3VpL0hpbnQvSGludCc7XG5cbmNvbnN0IG9wdGlvbmFsVGV4dCA9ICdvcHRpb25hbCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIC8qIE5PVEU6IFdlYmtpdCDQvdC1INC/0YDQuNC80LXQvdGP0LXRgiBvcGFjaXR5INC6IGlubGluZSDRgtC10LPQsNC8ICovXG4gICAgZGlzcGxheTogYmxvY2s7XG5gO1xuXG5jb25zdCBISU5UX0RFRkFVTFRfT0ZGU0VUOiBbbnVtYmVyLCBudW1iZXJdID0gWzAsIDBdO1xuXG5leHBvcnQgY29uc3QgdGV4dEZpZWxkUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTERpdkVsZW1lbnQsIFRleHRGaWVsZFJvb3RQcm9wcz4pID0+XG4gICAgZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBUZXh0RmllbGRQcm9wcz4oXG4gICAgICAgIChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgc3R5bGUsXG5cbiAgICAgICAgICAgICAgICAvLyBsYXlvdXRcbiAgICAgICAgICAgICAgICBjb250ZW50TGVmdCxcbiAgICAgICAgICAgICAgICBjb250ZW50UmlnaHQsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgdGV4dEJlZm9yZSxcbiAgICAgICAgICAgICAgICB0ZXh0QWZ0ZXIsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgbGVmdEhlbHBlcixcbiAgICAgICAgICAgICAgICBlbnVtZXJhdGlvblR5cGUgPSAncGxhaW4nLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkUGxhY2VtZW50ID0gJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICB0aXRsZUNhcHRpb24sXG5cbiAgICAgICAgICAgICAgICAvLyBoaW50XG4gICAgICAgICAgICAgICAgaGludFRyaWdnZXIgPSAnaG92ZXInLFxuICAgICAgICAgICAgICAgIGhpbnRUZXh0LFxuICAgICAgICAgICAgICAgIGhpbnRWaWV3ID0gJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIGhpbnRTaXplID0gJ20nLFxuICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uLFxuICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQgPSAnYXV0bycsXG4gICAgICAgICAgICAgICAgaGludEhhc0Fycm93LFxuICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQgPSBISU5UX0RFRkFVTFRfT0ZGU0VULFxuICAgICAgICAgICAgICAgIGhpbnRXaWR0aCxcbiAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQsXG5cbiAgICAgICAgICAgICAgICAvLyB2YXJpYXRpb25zXG4gICAgICAgICAgICAgICAgdmlldyxcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5ID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsZWFyID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgb3B0aW9uYWwsXG4gICAgICAgICAgICAgICAgaGFzRGl2aWRlcixcblxuICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xsZWRcbiAgICAgICAgICAgICAgICB2YWx1ZTogb3V0ZXJWYWx1ZSxcbiAgICAgICAgICAgICAgICBjaGlwczogdmFsdWVzLFxuXG4gICAgICAgICAgICAgICAgLy8gdmFsaWRhdGlvblxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRIaWRkZW4sXG4gICAgICAgICAgICAgICAgb25WYWxpZGF0ZSxcblxuICAgICAgICAgICAgICAgIC8vIGV2ZW50c1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgIG9uQmx1cixcbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNoaXBzLFxuICAgICAgICAgICAgICAgIG9uU2VhcmNoLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bixcblxuICAgICAgICAgICAgICAgIC4uLnJlc3RcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWYsXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0Rm9ya1JlZiA9IHVzZUZvcmtSZWYoaW5wdXRSZWYsIHJlZik7XG4gICAgICAgICAgICBjb25zdCBjaGlwc1JlZnMgPSB1c2VSZWY8QXJyYXk8SFRNTEJ1dHRvbkVsZW1lbnQ+PihbXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xsZWRSZWZzID0geyBjb250ZW50UmVmLCBpbnB1dFJlZiwgY2hpcHNSZWZzIH07XG5cbiAgICAgICAgICAgIGNvbnN0IFtoYXNWYWx1ZSwgc2V0SGFzVmFsdWVdID0gdXNlU3RhdGUoXG4gICAgICAgICAgICAgICAgQm9vbGVhbihvdXRlclZhbHVlKSB8fCBCb29sZWFuKGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZSkgfHwgQm9vbGVhbihyZXN0Py5kZWZhdWx0VmFsdWUpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IFtjaGlwcywgc2V0Q2hpcHNdID0gdXNlU3RhdGU8QXJyYXk8Q2hpcFZhbHVlcz4+KFtdKTtcbiAgICAgICAgICAgIGNvbnN0IFtpc0hpbnRWaXNpYmxlLCBzZXRJc0hpbnRWaXNpYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgICAgICAgICAgY29uc3QgdW5pcUlkID0gc2FmZVVzZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBpbm5lcklkID0gaWQgfHwgdW5pcUlkO1xuICAgICAgICAgICAgY29uc3QgbGFiZWxJZCA9IHNhZmVVc2VJZCgpO1xuICAgICAgICAgICAgY29uc3QgaGVscGVyVGV4dElkID0gc2FmZVVzZUlkKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzRGVmYXVsdFZpZXcgPSB2aWV3ID09PSAnZGVmYXVsdCcgfHwgcmVhZE9ubHkgfHwgZGlzYWJsZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzQ2hpcEVudW1lcmF0aW9uID0gZW51bWVyYXRpb25UeXBlID09PSAnY2hpcCc7XG4gICAgICAgICAgICBjb25zdCBpc0NoaXBzVmlzaWJsZSA9IGlzQ2hpcEVudW1lcmF0aW9uICYmIEJvb2xlYW4oY2hpcHM/Lmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCB3aXRoSGFzQ2hpcHMgPSBpc0NoaXBzVmlzaWJsZSA/IGNsYXNzZXMuaGFzQ2hpcHMgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc0xhYmVsVmFsdWUgPSBCb29sZWFuKGxhYmVsKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc0lubmVyTGFiZWwgPSBzaXplICE9PSAneHMnICYmIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmICFpc0NoaXBzVmlzaWJsZSAmJiBoYXNMYWJlbFZhbHVlO1xuICAgICAgICAgICAgY29uc3QgaGFzT3V0ZXJMYWJlbCA9IGxhYmVsUGxhY2VtZW50ID09PSAnb3V0ZXInICYmIGhhc0xhYmVsVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBoYXNQbGFjZWhvbGRlciA9IEJvb2xlYW4ocGxhY2Vob2xkZXIpICYmICFoYXNJbm5lckxhYmVsO1xuXG4gICAgICAgICAgICBjb25zdCBpbm5lckxhYmVsVmFsdWUgPSBoYXNJbm5lckxhYmVsIHx8IGhhc091dGVyTGFiZWwgPyBsYWJlbCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZSA9IGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmICFoYXNJbm5lckxhYmVsID8gdW5kZWZpbmVkIDogbGFiZWxQbGFjZW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyUGxhY2Vob2xkZXJWYWx1ZSA9IGhhc1BsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlclNob3duID0gQm9vbGVhbihpbm5lclBsYWNlaG9sZGVyVmFsdWUpICYmICFoYXNWYWx1ZTtcblxuICAgICAgICAgICAgY29uc3QgY2xlYXJDbGFzcyA9IGNsZWFyID8gY2xhc3Nlcy5jbGVhciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0RpdmlkZXJDbGFzcyA9IGhhc0RpdmlkZXIgPyBjbGFzc2VzLmhhc0RpdmlkZXIgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNIaW50Q2xhc3MgPSBoaW50VGV4dCA/IGNsYXNzZXMuaGFzSGludCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MgPSByZXF1aXJlZFBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/IGNsYXNzZXMucmVxdWlyZWRBbGlnblJpZ2h0IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgbGFiZWxQbGFjZW1lbnRDbGFzcyA9IGlubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZVxuICAgICAgICAgICAgICAgID8gY2xhc3Nlc1tgJHtpbm5lckxhYmVsUGxhY2VtZW50VmFsdWV9TGFiZWxQbGFjZW1lbnRgIGFzIGtleW9mIHR5cGVvZiBjbGFzc2VzXVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzVmFsdWVDbGFzcyA9IGhhc1ZhbHVlID8gY2xhc3Nlcy5oYXNWYWx1ZSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3Qgd3JhcHBlcldpdGhvdXRMZWZ0Q29udGVudCA9ICFjb250ZW50TGVmdCAmJiBpc0NoaXBzVmlzaWJsZSA/IGNsYXNzZXMuaGFzRW1wdHlDb250ZW50TGVmdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudFJpZ2h0ICYmIGlzQ2hpcHNWaXNpYmxlID8gY2xhc3Nlcy5oYXNFbXB0eUNvbnRlbnRSaWdodCA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaXNQYXNzd29yZEhpZGRlbiA9IHZhbGlkYXRpb25UeXBlID09PSAncGFzc3dvcmQnICYmIHBhc3N3b3JkSGlkZGVuO1xuXG4gICAgICAgICAgICBjb25zdCBoaW50UmVmID0gdXNlT3V0c2lkZUNsaWNrPEhUTUxEaXZFbGVtZW50PigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGhpbnRJbm5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBoaW50Rm9ya1JlZiA9IHVzZUZvcmtSZWYoaGludFJlZiwgaGludElubmVyUmVmKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXQ6IEZvcm1FdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRTaG93ID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRIaWRlID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVIaW50Q2xpY2s6IE1vdXNlRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFoaW50VGV4dCB8fCBoaW50VHJpZ2dlciAhPT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0SXNQb3BvdmVyID0gZXZlbnQudGFyZ2V0ID09PSBoaW50SW5uZXJSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCByb290SGFzVGFyZ2V0ID0gaGludElubmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0SXNQb3BvdmVyICYmICFyb290SGFzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWF4TGVuZ3RoLCB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aCAhPT0gLTEgJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUNoaXBzID0gKG5ld0NoaXBzOiBBcnJheTxDaGlwVmFsdWVzPiwgbmV3VmFsdWVzOiBBcnJheTxUZXh0RmllbGRQcmltaXRpdmVWYWx1ZT4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRDaGlwcyhuZXdDaGlwcyk7XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VDaGlwcz8uKG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB7IGhhbmRsZVZhbGlkYXRpb25CbHVyLCBoYW5kbGVWYWxpZGF0aW9uS2V5RG93biB9ID0gdXNlVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgICAgICBvblZhbGlkYXRlLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgaGFuZGxlSW5wdXRLZXlkb3duLCBoYW5kbGVDaGlwS2V5RG93biwgb25DaGlwQ2xlYXIsIGhhbmRsZUNvbnRlbnRLZXlEb3duIH0gPSB1c2VLZXlOYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVkUmVmcyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICByZWFkT25seSxcbiAgICAgICAgICAgICAgICBjaGlwcyxcbiAgICAgICAgICAgICAgICBlbnVtZXJhdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgdXBkYXRlQ2hpcHMsXG4gICAgICAgICAgICAgICAgb25TZWFyY2gsXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICAgICAgb25FbnRlckRpc2FibGVkOiAocmVzdCBhcyBhbnkpLm9uRW50ZXJEaXNhYmxlZCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBvbkNoaXBDbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVJbnB1dEZvY3VzID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZWFkT25seSB8fCBkaXNhYmxlZCB8fCAhaW5wdXRSZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuc2Nyb2xsVG8oe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGlucHV0UmVmLmN1cnJlbnQub2Zmc2V0TGVmdCxcbiAgICAgICAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXRCbHVyID0gKGV2ZW50OiBGb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9uQmx1cikge1xuICAgICAgICAgICAgICAgICAgICBvbkJsdXIoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGhhbmRsZVZhbGlkYXRpb25CbHVyKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGdldFJlZiA9IChlbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBjaGlwc1JlZnM/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpcHNSZWZzLmN1cnJlbnRbaW5kZXhdID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVPbktleURvd24gPSAoZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUlucHV0S2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlVmFsaWRhdGlvbktleURvd24oZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9uS2V5RG93bikge1xuICAgICAgICAgICAgICAgICAgICBvbktleURvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0NoaXBFbnVtZXJhdGlvbiAmJiAhdmFsdWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NoaXBzID1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPy5tYXAoKHZhbHVlLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHtpbmRleH1fJHt2YWx1ZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIH0pKSB8fCBbXTtcblxuICAgICAgICAgICAgICAgIHNldENoaXBzKG5ld0NoaXBzKTtcbiAgICAgICAgICAgIH0sIFtpc0NoaXBFbnVtZXJhdGlvbiwgdmFsdWVzXSk7XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzVmFsdWUoQm9vbGVhbihyZXN0Py5kZWZhdWx0VmFsdWUpKTtcbiAgICAgICAgICAgIH0sIFtyZXN0LmRlZmF1bHRWYWx1ZV0pO1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc1ZhbHVlKEJvb2xlYW4ob3V0ZXJWYWx1ZSkgfHwgQm9vbGVhbihpbnB1dFJlZj8uY3VycmVudD8udmFsdWUpKTtcbiAgICAgICAgICAgIH0sIFtvdXRlclZhbHVlLCBpbnB1dFJlZj8uY3VycmVudD8udmFsdWVdKTtcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJPcHRpb25hbCA9IEJvb2xlYW4ocmVxdWlyZWQgPyBmYWxzZSA6IG9wdGlvbmFsKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyT3B0aW9uYWwgPSBpbm5lck9wdGlvbmFsICYmICFpbm5lckxhYmVsVmFsdWUgJiYgIWhhc091dGVyTGFiZWw7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25hbFRleHROb2RlID0gaW5uZXJPcHRpb25hbCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkT3B0aW9uYWxUZXh0PlxuICAgICAgICAgICAgICAgICAgICB7Qm9vbGVhbihoYXNQbGFjZWhvbGRlck9wdGlvbmFsID8gaW5uZXJQbGFjZWhvbGRlclZhbHVlIDogaW5uZXJMYWJlbFZhbHVlKSAmJiAnXFx4YTAnfVxuICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkT3B0aW9uYWxUZXh0PlxuICAgICAgICAgICAgKSA6IG51bGw7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFJvb3RcbiAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICByZWFkT25seT17IWRpc2FibGVkICYmIHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICBjbGVhcj17Y2xlYXJ9XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PXtpbm5lckxhYmVsUGxhY2VtZW50VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUlucHV0Rm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0RpdmlkZXJDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMudGV4dEZpZWxkR3JvdXBJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi4oaGludFRleHQgJiYgeyBoaW50VmlldywgaGludFNpemUgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7KGhhc091dGVyTGFiZWwgfHwgdGl0bGVDYXB0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8T3V0ZXJMYWJlbFdyYXBwZXIgaXNJbm5lckxhYmVsPXtsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGludFRleHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5vdXRlckxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEluZGljYXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGl0bGVDYXB0aW9uICYmIDxUaXRsZUNhcHRpb24+e3RpdGxlQ2FwdGlvbn08L1RpdGxlQ2FwdGlvbj59XG4gICAgICAgICAgICAgICAgICAgICAgICA8L091dGVyTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWYg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8uINCd0LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhyZXN0IGFzIGFueSkuaW5wdXRXcmFwcGVyUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDQsINC4INC/0L7RgdC70LUg0YPQsdGA0LDRgtGMIGNsYXNzZXMuaW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIYXNDaGlwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMuaW5wdXRXcmFwcGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaW50VGV4dCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSGludFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc2VzLmlubmVyTGFiZWxQbGFjZW1lbnR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaW50Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUZXh0PXtoaW50VGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRyaWdnZXI9e2hpbnRUcmlnZ2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbj17aGludFRhcmdldEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQ9e2hpbnRQbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50T2Zmc2V0PXtoaW50T2Zmc2V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50V2lkdGg9e2hpbnRXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRTaG93PXtoYW5kbGVIaW50U2hvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludEhpZGU9e2hhbmRsZUhpbnRIaWRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb250ZW50TGVmdCBpc0NsZWFyPXtjbGVhcn0gaXNEZWZhdWx0Vmlldz17aXNEZWZhdWx0Vmlld30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENvbnRlbnRMZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dExhYmVsV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVDb250ZW50S2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3dpdGhIYXNDaGlwc31cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGV4dEJlZm9yZSAmJiA8U3R5bGVkVGV4dEJlZm9yZT57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0NoaXBFbnVtZXJhdGlvbiAmJiBCb29sZWFuKGNoaXBzPy5sZW5ndGgpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoaXBzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaXBzPy5tYXAoKHsgaWQ6IGNoaXBJZCwgdGV4dCB9LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRDaGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17Y2hpcElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXsoZWxlbWVudCkgPT4gZ2V0UmVmKGVsZW1lbnQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7Y2hpcElkfV8ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e3RleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4gaGFuZGxlQ2hpcEtleURvd24oZXZlbnQsIGNoaXBJZCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhcj17KCkgPT4gb25DaGlwQ2xlYXIoY2hpcElkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNoaXBDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86ICMxNTQ3XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZm9yY2VDaGlwTWFuaXB1bGF0aW9uV2l0aFJlYWRvbmx5PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdCBhcyBhbnkpLl9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ2hpcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aW5uZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtvdXRlclZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtsYWJlbElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17aGVscGVyVGV4dElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2lubmVyUGxhY2Vob2xkZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goaGFzVmFsdWVDbGFzcyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17IWRpc2FibGVkICYmIHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVPbktleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUlucHV0Qmx1cn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLihpc1Bhc3N3b3JkSGlkZGVuICYmIHsgdHlwZTogJ3Bhc3N3b3JkJyB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc0lubmVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGlkPXtsYWJlbElkfSBodG1sRm9yPXtpbm5lcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5uZXJMYWJlbFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsYWNlaG9sZGVyU2hvd24gJiYgIWhhc1ZhbHVlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lclBsYWNlaG9sZGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1BsYWNlaG9sZGVyT3B0aW9uYWwgJiYgb3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRQbGFjZWhvbGRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0QWZ0ZXIgJiYgPFN0eWxlZFRleHRBZnRlcj57dGV4dEFmdGVyfTwvU3R5bGVkVGV4dEFmdGVyPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudFJpZ2h0ICYmIDxTdHlsZWRDb250ZW50UmlnaHQ+e2NvbnRlbnRSaWdodH08L1N0eWxlZENvbnRlbnRSaWdodD59XG4gICAgICAgICAgICAgICAgICAgIDwvSW5wdXRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICB7bGVmdEhlbHBlciAmJiA8TGVmdEhlbHBlciBpZD17aGVscGVyVGV4dElkfT57bGVmdEhlbHBlcn08L0xlZnRIZWxwZXI+fVxuICAgICAgICAgICAgICAgIDwvUm9vdD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWVsZENvbmZpZyA9IHtcbiAgICBuYW1lOiAnVGV4dEZpZWxkJyxcbiAgICB0YWc6ICdkaXYnLFxuICAgIGxheW91dDogdGV4dEZpZWxkUm9vdCxcbiAgICBiYXNlLFxuICAgIHZhcmlhdGlvbnM6IHtcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgICAgY3NzOiB2aWV3Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICBjc3M6IHNpemVDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGNsZWFyOiB7XG4gICAgICAgICAgICBjc3M6IGNsZWFyQ1NTLFxuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc2FibGVkOiB7XG4gICAgICAgICAgICBjc3M6IGRpc2FibGVkQ1NTLFxuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHJlYWRPbmx5OiB7XG4gICAgICAgICAgICBjc3M6IHJlYWRPbmx5Q1NTLFxuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsUGxhY2VtZW50OiB7XG4gICAgICAgICAgICBjc3M6IGxhYmVsUGxhY2VtZW50Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBoaW50Vmlldzoge1xuICAgICAgICAgICAgY3NzOiBoaW50Vmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgaGludFNpemU6IHtcbiAgICAgICAgICAgIGNzczogaGludFNpemVDU1MsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0czoge1xuICAgICAgICBzaXplOiAnbScsXG4gICAgICAgIHZpZXc6ICdkZWZhdWx0JyxcbiAgICB9LFxufTtcbiJdfQ== */",
|
37
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEZpZWxkL1RleHRGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkN1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRm9ybUV2ZW50SGFuZGxlciwgQ2hhbmdlRXZlbnRIYW5kbGVyLCBLZXlib2FyZEV2ZW50LCBDaGFuZ2VFdmVudCwgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzYWZlVXNlSWQsIHVzZUZvcmtSZWYgfSBmcm9tICdAc2FsdXRlanMvcGxhc21hLWNvcmUnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFJvb3RQcm9wcyB9IGZyb20gJy4uLy4uL2VuZ2luZXMnO1xuaW1wb3J0IHsgY3ggfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tICcuLi8uLi9ob29rcyc7XG5cbmltcG9ydCB0eXBlIHsgQ2hpcFZhbHVlcywgVGV4dEZpZWxkUHJpbWl0aXZlVmFsdWUsIFRleHRGaWVsZFByb3BzLCBUZXh0RmllbGRSb290UHJvcHMgfSBmcm9tICcuL1RleHRGaWVsZC50eXBlcyc7XG5pbXBvcnQgeyBiYXNlIGFzIHNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3NpemUvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIHZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3ZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGNsZWFyQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19jbGVhci9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgZGlzYWJsZWRDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2Rpc2FibGVkL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyByZWFkT25seUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fcmVhZC1vbmx5L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBsYWJlbFBsYWNlbWVudENTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fbGFiZWwtcGxhY2VtZW50L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBoaW50Vmlld0NTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9faGludC12aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBoaW50U2l6ZUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9faGludC1zaXplL2Jhc2UnO1xuaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBJbnB1dENvbnRhaW5lcixcbiAgICBMZWZ0SGVscGVyLFxuICAgIExhYmVsLFxuICAgIElucHV0V3JhcHBlcixcbiAgICBJbnB1dExhYmVsV3JhcHBlcixcbiAgICBTdHlsZWRDb250ZW50TGVmdCxcbiAgICBTdHlsZWRDb250ZW50UmlnaHQsXG4gICAgU3R5bGVkQ2hpcHMsXG4gICAgU3R5bGVkVGV4dEJlZm9yZSxcbiAgICBTdHlsZWRUZXh0QWZ0ZXIsXG4gICAgU3R5bGVkSW5kaWNhdG9yLFxuICAgIFN0eWxlZE9wdGlvbmFsVGV4dCxcbiAgICBJbnB1dFBsYWNlaG9sZGVyLFxuICAgIE91dGVyTGFiZWxXcmFwcGVyLFxuICAgIFRpdGxlQ2FwdGlvbixcbiAgICBTdHlsZWRIaW50V3JhcHBlcixcbiAgICBTdHlsZWRJbmRpY2F0b3JXcmFwcGVyLFxufSBmcm9tICcuL1RleHRGaWVsZC5zdHlsZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJy4vVGV4dEZpZWxkLnRva2Vucyc7XG5pbXBvcnQgeyBUZXh0RmllbGRDaGlwIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyB1c2VLZXlOYXZpZ2F0aW9uIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgeyBIaW50Q29tcG9uZW50IH0gZnJvbSAnLi91aS9IaW50L0hpbnQnO1xuXG5jb25zdCBvcHRpb25hbFRleHQgPSAnb3B0aW9uYWwnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICAvKiBOT1RFOiBXZWJraXQg0L3QtSDQv9GA0LjQvNC10L3Rj9C10YIgb3BhY2l0eSDQuiBpbmxpbmUg0YLQtdCz0LDQvCAqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuYDtcblxuY29uc3QgSElOVF9ERUZBVUxUX09GRlNFVDogW251bWJlciwgbnVtYmVyXSA9IFswLCAwXTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWVsZFJvb3QgPSAoUm9vdDogUm9vdFByb3BzPEhUTUxEaXZFbGVtZW50LCBUZXh0RmllbGRSb290UHJvcHM+KSA9PlxuICAgIGZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCwgVGV4dEZpZWxkUHJvcHM+KFxuICAgICAgICAoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlLFxuXG4gICAgICAgICAgICAgICAgLy8gbGF5b3V0XG4gICAgICAgICAgICAgICAgY29udGVudExlZnQsXG4gICAgICAgICAgICAgICAgY29udGVudFJpZ2h0LFxuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIHRleHRCZWZvcmUsXG4gICAgICAgICAgICAgICAgdGV4dEFmdGVyLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIGxlZnRIZWxwZXIsXG4gICAgICAgICAgICAgICAgZW51bWVyYXRpb25UeXBlID0gJ3BsYWluJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlZFBsYWNlbWVudCA9ICdyaWdodCcsXG4gICAgICAgICAgICAgICAgdGl0bGVDYXB0aW9uLFxuXG4gICAgICAgICAgICAgICAgLy8gaGludFxuICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyID0gJ2hvdmVyJyxcbiAgICAgICAgICAgICAgICBoaW50VGV4dCxcbiAgICAgICAgICAgICAgICBoaW50VmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBoaW50U2l6ZSA9ICdtJyxcbiAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbixcbiAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdyxcbiAgICAgICAgICAgICAgICBoaW50T2Zmc2V0ID0gSElOVF9ERUZBVUxUX09GRlNFVCxcbiAgICAgICAgICAgICAgICBoaW50V2lkdGgsXG4gICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0LFxuXG4gICAgICAgICAgICAgICAgLy8gdmFyaWF0aW9uc1xuICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICByZWFkT25seSA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICBjbGVhciA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsLFxuICAgICAgICAgICAgICAgIGhhc0RpdmlkZXIsXG5cbiAgICAgICAgICAgICAgICAvLyBjb250cm9sbGVkXG4gICAgICAgICAgICAgICAgdmFsdWU6IG91dGVyVmFsdWUsXG4gICAgICAgICAgICAgICAgY2hpcHM6IHZhbHVlcyxcblxuICAgICAgICAgICAgICAgIC8vIGV2ZW50c1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHMsXG4gICAgICAgICAgICAgICAgb25TZWFyY2gsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duLFxuXG4gICAgICAgICAgICAgICAgLi4ucmVzdFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRGb3JrUmVmID0gdXNlRm9ya1JlZihpbnB1dFJlZiwgcmVmKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaXBzUmVmcyA9IHVzZVJlZjxBcnJheTxIVE1MQnV0dG9uRWxlbWVudD4+KFtdKTtcblxuICAgICAgICAgICAgY29uc3QgY29udHJvbGxlZFJlZnMgPSB7IGNvbnRlbnRSZWYsIGlucHV0UmVmLCBjaGlwc1JlZnMgfTtcblxuICAgICAgICAgICAgY29uc3QgW2hhc1ZhbHVlLCBzZXRIYXNWYWx1ZV0gPSB1c2VTdGF0ZShcbiAgICAgICAgICAgICAgICBCb29sZWFuKG91dGVyVmFsdWUpIHx8IEJvb2xlYW4oaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlKSB8fCBCb29sZWFuKHJlc3Q/LmRlZmF1bHRWYWx1ZSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgW2NoaXBzLCBzZXRDaGlwc10gPSB1c2VTdGF0ZTxBcnJheTxDaGlwVmFsdWVzPj4oW10pO1xuICAgICAgICAgICAgY29uc3QgW2lzSGludFZpc2libGUsIHNldElzSGludFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCB1bmlxSWQgPSBzYWZlVXNlSWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVySWQgPSBpZCB8fCB1bmlxSWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbElkID0gc2FmZVVzZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXJUZXh0SWQgPSBzYWZlVXNlSWQoKTtcblxuICAgICAgICAgICAgY29uc3QgaXNEZWZhdWx0VmlldyA9IHZpZXcgPT09ICdkZWZhdWx0JyB8fCByZWFkT25seSB8fCBkaXNhYmxlZDtcblxuICAgICAgICAgICAgY29uc3QgaXNDaGlwRW51bWVyYXRpb24gPSBlbnVtZXJhdGlvblR5cGUgPT09ICdjaGlwJztcbiAgICAgICAgICAgIGNvbnN0IGlzQ2hpcHNWaXNpYmxlID0gaXNDaGlwRW51bWVyYXRpb24gJiYgQm9vbGVhbihjaGlwcz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IHdpdGhIYXNDaGlwcyA9IGlzQ2hpcHNWaXNpYmxlID8gY2xhc3Nlcy5oYXNDaGlwcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGFzTGFiZWxWYWx1ZSA9IEJvb2xlYW4obGFiZWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzSW5uZXJMYWJlbCA9IHNpemUgIT09ICd4cycgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWlzQ2hpcHNWaXNpYmxlICYmIGhhc0xhYmVsVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBoYXNPdXRlckxhYmVsID0gbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicgJiYgaGFzTGFiZWxWYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyID0gQm9vbGVhbihwbGFjZWhvbGRlcikgJiYgIWhhc0lubmVyTGFiZWw7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyTGFiZWxWYWx1ZSA9IGhhc0lubmVyTGFiZWwgfHwgaGFzT3V0ZXJMYWJlbCA/IGxhYmVsIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlID0gbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWhhc0lubmVyTGFiZWwgPyB1bmRlZmluZWQgOiBsYWJlbFBsYWNlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJQbGFjZWhvbGRlclZhbHVlID0gaGFzUGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyU2hvd24gPSBCb29sZWFuKGlubmVyUGxhY2Vob2xkZXJWYWx1ZSkgJiYgIWhhc1ZhbHVlO1xuXG4gICAgICAgICAgICBjb25zdCBjbGVhckNsYXNzID0gY2xlYXIgPyBjbGFzc2VzLmNsZWFyIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzRGl2aWRlckNsYXNzID0gaGFzRGl2aWRlciA/IGNsYXNzZXMuaGFzRGl2aWRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0hpbnRDbGFzcyA9IGhpbnRUZXh0ID8gY2xhc3Nlcy5oYXNIaW50IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyA9IHJlcXVpcmVkUGxhY2VtZW50ID09PSAncmlnaHQnID8gY2xhc3Nlcy5yZXF1aXJlZEFsaWduUmlnaHQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbFBsYWNlbWVudENsYXNzID0gaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlXG4gICAgICAgICAgICAgICAgPyBjbGFzc2VzW2Ake2lubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZX1MYWJlbFBsYWNlbWVudGAgYXMga2V5b2YgdHlwZW9mIGNsYXNzZXNdXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNWYWx1ZUNsYXNzID0gaGFzVmFsdWUgPyBjbGFzc2VzLmhhc1ZhbHVlIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50ID0gIWNvbnRlbnRMZWZ0ICYmIGlzQ2hpcHNWaXNpYmxlID8gY2xhc3Nlcy5oYXNFbXB0eUNvbnRlbnRMZWZ0IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlcldpdGhvdXRSaWdodENvbnRlbnQgPVxuICAgICAgICAgICAgICAgICFjb250ZW50UmlnaHQgJiYgaXNDaGlwc1Zpc2libGUgPyBjbGFzc2VzLmhhc0VtcHR5Q29udGVudFJpZ2h0IDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBoaW50UmVmID0gdXNlT3V0c2lkZUNsaWNrPEhUTUxEaXZFbGVtZW50PigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGhpbnRJbm5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBoaW50Rm9ya1JlZiA9IHVzZUZvcmtSZWYoaGludFJlZiwgaGludElubmVyUmVmKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXQ6IEZvcm1FdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRTaG93ID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRIaWRlID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVIaW50Q2xpY2s6IE1vdXNlRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFoaW50VGV4dCB8fCBoaW50VHJpZ2dlciAhPT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0SXNQb3BvdmVyID0gZXZlbnQudGFyZ2V0ID09PSBoaW50SW5uZXJSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCByb290SGFzVGFyZ2V0ID0gaGludElubmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0SXNQb3BvdmVyICYmICFyb290SGFzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWF4TGVuZ3RoLCB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aCAhPT0gLTEgJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUNoaXBzID0gKG5ld0NoaXBzOiBBcnJheTxDaGlwVmFsdWVzPiwgbmV3VmFsdWVzOiBBcnJheTxUZXh0RmllbGRQcmltaXRpdmVWYWx1ZT4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRDaGlwcyhuZXdDaGlwcyk7XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VDaGlwcz8uKG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB7IGhhbmRsZUlucHV0S2V5ZG93biwgaGFuZGxlQ2hpcEtleURvd24sIG9uQ2hpcENsZWFyLCBoYW5kbGVDb250ZW50S2V5RG93biB9ID0gdXNlS2V5TmF2aWdhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlZFJlZnMsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgcmVhZE9ubHksXG4gICAgICAgICAgICAgICAgY2hpcHMsXG4gICAgICAgICAgICAgICAgZW51bWVyYXRpb25UeXBlLFxuICAgICAgICAgICAgICAgIHVwZGF0ZUNoaXBzLFxuICAgICAgICAgICAgICAgIG9uU2VhcmNoLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgIG9uRW50ZXJEaXNhYmxlZDogKHJlc3QgYXMgYW55KS5vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3Qgb25DaGlwQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXRGb2N1cyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVhZE9ubHkgfHwgZGlzYWJsZWQgfHwgIWlucHV0UmVmPy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dFJlZi5jdXJyZW50Lm9mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGdldFJlZiA9IChlbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBjaGlwc1JlZnM/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpcHNSZWZzLmN1cnJlbnRbaW5kZXhdID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVPbktleURvd24gPSAoZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUlucHV0S2V5ZG93bihldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob25LZXlEb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQ2hpcEVudW1lcmF0aW9uICYmICF2YWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q2hpcHMgPVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM/Lm1hcCgodmFsdWUsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke2luZGV4fV8ke3ZhbHVlfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSkpIHx8IFtdO1xuXG4gICAgICAgICAgICAgICAgc2V0Q2hpcHMobmV3Q2hpcHMpO1xuICAgICAgICAgICAgfSwgW2lzQ2hpcEVudW1lcmF0aW9uLCB2YWx1ZXNdKTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKHJlc3Q/LmRlZmF1bHRWYWx1ZSkpO1xuICAgICAgICAgICAgfSwgW3Jlc3QuZGVmYXVsdFZhbHVlXSk7XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzVmFsdWUoQm9vbGVhbihvdXRlclZhbHVlKSB8fCBCb29sZWFuKGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZSkpO1xuICAgICAgICAgICAgfSwgW291dGVyVmFsdWUsIGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZV0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbm5lck9wdGlvbmFsID0gQm9vbGVhbihyZXF1aXJlZCA/IGZhbHNlIDogb3B0aW9uYWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA9IGlubmVyT3B0aW9uYWwgJiYgIWlubmVyTGFiZWxWYWx1ZSAmJiAhaGFzT3V0ZXJMYWJlbDtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbmFsVGV4dE5vZGUgPSBpbm5lck9wdGlvbmFsID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICAgICAgICAgICAgIHtCb29sZWFuKGhhc1BsYWNlaG9sZGVyT3B0aW9uYWwgPyBpbm5lclBsYWNlaG9sZGVyVmFsdWUgOiBpbm5lckxhYmVsVmFsdWUpICYmICdcXHhhMCd9XG4gICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICAgICApIDogbnVsbDtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8Um9vdFxuICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshZGlzYWJsZWQgJiYgcmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyPXtjbGVhcn1cbiAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9e2lubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlSW5wdXRGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50Q2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzRGl2aWRlckNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzSGludENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy50ZXh0RmllbGRHcm91cEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLihoaW50VGV4dCAmJiB7IGhpbnRWaWV3LCBoaW50U2l6ZSB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsoaGFzT3V0ZXJMYWJlbCB8fCB0aXRsZUNhcHRpb24pICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxPdXRlckxhYmVsV3JhcHBlciBpc0lubmVyTGFiZWw9e2xhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzT3V0ZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3JXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGlkPXtsYWJlbElkfSBodG1sRm9yPXtpZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyTGFiZWxWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaW50VGV4dCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGludENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUZXh0PXtoaW50VGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyPXtoaW50VHJpZ2dlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbj17aGludFRhcmdldEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50PXtoaW50UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50T2Zmc2V0PXtoaW50T2Zmc2V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFdpZHRoPXtoaW50V2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRTaG93PXtoYW5kbGVIaW50U2hvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRIaWRlPXtoYW5kbGVIaW50SGlkZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGludFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlcXVpcmVkICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLm91dGVyTGFiZWxQbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFBsYWNlbWVudENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzSGludENsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dE5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aXRsZUNhcHRpb24gJiYgPFRpdGxlQ2FwdGlvbj57dGl0bGVDYXB0aW9ufTwvVGl0bGVDYXB0aW9uPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvT3V0ZXJMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxJbnB1dFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZiDQtNC70Y8g0LLQvdGD0YLRgNC10L3QvdC10LPQviDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjy4g0J3QtSDQvtGC0LTQsNC10YLRgdGPINC90LDRgNGD0LbRgy5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17KHJlc3QgYXMgYW55KS5pbnB1dFdyYXBwZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAjMTU0NCwg0Lgg0L/QvtGB0LvQtSDRg9Cx0YDQsNGC0YwgY2xhc3Nlcy5pbnB1dFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhhc0NoaXBzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXJXaXRob3V0TGVmdENvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlcldpdGhvdXRSaWdodENvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5pbnB1dFdyYXBwZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7IWhhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc2VzLmlubmVyTGFiZWxQbGFjZW1lbnQsIHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hpbnRUZXh0ICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzZXMuaW5uZXJMYWJlbFBsYWNlbWVudH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50TGVmdCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENvbnRlbnRMZWZ0IGlzQ2xlYXI9e2NsZWFyfSBpc0RlZmF1bHRWaWV3PXtpc0RlZmF1bHRWaWV3fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRlbnRMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29udGVudExlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0TGFiZWxXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17Y29udGVudFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUNvbnRlbnRLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17d2l0aEhhc0NoaXBzfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0QmVmb3JlICYmIDxTdHlsZWRUZXh0QmVmb3JlPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzQ2hpcEVudW1lcmF0aW9uICYmIEJvb2xlYW4oY2hpcHM/Lmxlbmd0aCkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hpcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpcHM/Lm1hcCgoeyBpZDogY2hpcElkLCB0ZXh0IH0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtjaGlwSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhlbGVtZW50KSA9PiBnZXRSZWYoZWxlbWVudCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtjaGlwSWR9XyR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD17dGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiBoYW5kbGVDaGlwS2V5RG93bihldmVudCwgY2hpcElkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFyPXsoKSA9PiBvbkNoaXBDbGVhcihjaGlwSWQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2hpcENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHk9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN0IGFzIGFueSkuX2ZvcmNlQ2hpcE1hbmlwdWxhdGlvbldpdGhSZWFkb25seVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGlwcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtpbm5lcklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e291dGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e2xhYmVsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtoZWxwZXJUZXh0SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW5uZXJQbGFjZWhvbGRlclZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChoYXNWYWx1ZUNsYXNzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshZGlzYWJsZWQgJiYgcmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbklucHV0PXtoYW5kbGVJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZU9uS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzSW5uZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGFiZWwgaWQ9e2xhYmVsSWR9IGh0bWxGb3I9e2lubmVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dE5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGxhY2Vob2xkZXJTaG93biAmJiAhaGFzVmFsdWUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0UGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyUGxhY2Vob2xkZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzUGxhY2Vob2xkZXJPcHRpb25hbCAmJiBvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dFBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RleHRBZnRlciAmJiA8U3R5bGVkVGV4dEFmdGVyPnt0ZXh0QWZ0ZXJ9PC9TdHlsZWRUZXh0QWZ0ZXI+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50UmlnaHQgJiYgPFN0eWxlZENvbnRlbnRSaWdodD57Y29udGVudFJpZ2h0fTwvU3R5bGVkQ29udGVudFJpZ2h0Pn1cbiAgICAgICAgICAgICAgICAgICAgPC9JbnB1dFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIHtsZWZ0SGVscGVyICYmIDxMZWZ0SGVscGVyIGlkPXtoZWxwZXJUZXh0SWR9PntsZWZ0SGVscGVyfTwvTGVmdEhlbHBlcj59XG4gICAgICAgICAgICAgICAgPC9Sb290PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICApO1xuXG5leHBvcnQgY29uc3QgdGV4dEZpZWxkQ29uZmlnID0ge1xuICAgIG5hbWU6ICdUZXh0RmllbGQnLFxuICAgIHRhZzogJ2RpdicsXG4gICAgbGF5b3V0OiB0ZXh0RmllbGRSb290LFxuICAgIGJhc2UsXG4gICAgdmFyaWF0aW9uczoge1xuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgICBjc3M6IHZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIHNpemU6IHtcbiAgICAgICAgICAgIGNzczogc2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXI6IHtcbiAgICAgICAgICAgIGNzczogY2xlYXJDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6IHtcbiAgICAgICAgICAgIGNzczogZGlzYWJsZWRDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVhZE9ubHk6IHtcbiAgICAgICAgICAgIGNzczogcmVhZE9ubHlDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxQbGFjZW1lbnQ6IHtcbiAgICAgICAgICAgIGNzczogbGFiZWxQbGFjZW1lbnRDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGhpbnRWaWV3OiB7XG4gICAgICAgICAgICBjc3M6IGhpbnRWaWV3Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBoaW50U2l6ZToge1xuICAgICAgICAgICAgY3NzOiBoaW50U2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIHNpemU6ICdtJyxcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgIH0sXG59O1xuIl19 */",
|
38
38
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
39
39
|
};
|
40
40
|
var HINT_DEFAULT_OFFSET = [0, 0];
|
@@ -86,12 +86,7 @@ export var textFieldRoot = function textFieldRoot(Root) {
|
|
86
86
|
hasDivider = _ref.hasDivider,
|
87
87
|
outerValue = _ref.value,
|
88
88
|
values = _ref.chips,
|
89
|
-
validationType = _ref.validationType,
|
90
|
-
options = _ref.options,
|
91
|
-
passwordHidden = _ref.passwordHidden,
|
92
|
-
onValidate = _ref.onValidate,
|
93
89
|
onChange = _ref.onChange,
|
94
|
-
onBlur = _ref.onBlur,
|
95
90
|
onChangeChips = _ref.onChangeChips,
|
96
91
|
onSearch = _ref.onSearch,
|
97
92
|
onKeyDown = _ref.onKeyDown,
|
@@ -141,7 +136,6 @@ export var textFieldRoot = function textFieldRoot(Root) {
|
|
141
136
|
var hasValueClass = hasValue ? classes.hasValue : undefined;
|
142
137
|
var wrapperWithoutLeftContent = !contentLeft && isChipsVisible ? classes.hasEmptyContentLeft : undefined;
|
143
138
|
var wrapperWithoutRightContent = !contentRight && isChipsVisible ? classes.hasEmptyContentRight : undefined;
|
144
|
-
var isPasswordHidden = validationType === 'password' && passwordHidden;
|
145
139
|
var hintRef = useOutsideClick(function () {
|
146
140
|
setIsHintVisible(false);
|
147
141
|
});
|
@@ -184,13 +178,6 @@ export var textFieldRoot = function textFieldRoot(Root) {
|
|
184
178
|
setChips(newChips);
|
185
179
|
onChangeChips === null || onChangeChips === void 0 || onChangeChips(newValues);
|
186
180
|
};
|
187
|
-
var _useValidation = useValidation({
|
188
|
-
validationType: validationType,
|
189
|
-
options: options,
|
190
|
-
onValidate: onValidate
|
191
|
-
}),
|
192
|
-
handleValidationBlur = _useValidation.handleValidationBlur,
|
193
|
-
handleValidationKeyDown = _useValidation.handleValidationKeyDown;
|
194
181
|
var _useKeyNavigation = useKeyNavigation({
|
195
182
|
controlledRefs: controlledRefs,
|
196
183
|
disabled: disabled,
|
@@ -220,12 +207,6 @@ export var textFieldRoot = function textFieldRoot(Root) {
|
|
220
207
|
});
|
221
208
|
inputRef.current.focus();
|
222
209
|
};
|
223
|
-
var handleInputBlur = function handleInputBlur(event) {
|
224
|
-
if (onBlur) {
|
225
|
-
onBlur(event);
|
226
|
-
}
|
227
|
-
handleValidationBlur(event);
|
228
|
-
};
|
229
210
|
var getRef = function getRef(element, index) {
|
230
211
|
if (element && chipsRefs !== null && chipsRefs !== void 0 && chipsRefs.current) {
|
231
212
|
chipsRefs.current[index] = element;
|
@@ -233,7 +214,6 @@ export var textFieldRoot = function textFieldRoot(Root) {
|
|
233
214
|
};
|
234
215
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
235
216
|
handleInputKeydown(event);
|
236
|
-
handleValidationKeyDown(event);
|
237
217
|
if (onKeyDown) {
|
238
218
|
onKeyDown(event);
|
239
219
|
}
|
@@ -367,11 +347,8 @@ export var textFieldRoot = function textFieldRoot(Root) {
|
|
367
347
|
readOnly: !disabled && readOnly,
|
368
348
|
onInput: handleInput,
|
369
349
|
onChange: handleChange,
|
370
|
-
onKeyDown: handleOnKeyDown
|
371
|
-
|
372
|
-
}, rest, isPasswordHidden && {
|
373
|
-
type: 'password'
|
374
|
-
})), hasInnerLabel && /*#__PURE__*/React.createElement(Label, {
|
350
|
+
onKeyDown: handleOnKeyDown
|
351
|
+
}, rest)), hasInnerLabel && /*#__PURE__*/React.createElement(Label, {
|
375
352
|
id: labelId,
|
376
353
|
htmlFor: innerId
|
377
354
|
}, innerLabelValue, optionalTextNode), placeholderShown && !hasValue && /*#__PURE__*/React.createElement(InputPlaceholder, null, innerPlaceholderValue, hasPlaceholderOptional && optionalTextNode)), textAfter && /*#__PURE__*/React.createElement(StyledTextAfter, null, textAfter)), contentRight && /*#__PURE__*/React.createElement(StyledContentRight, null, contentRight)), leftHelper && /*#__PURE__*/React.createElement(LeftHelper, {
|
@@ -5,9 +5,6 @@ title: TextField
|
|
5
5
|
|
6
6
|
import { PropsTable, Description } from '@site/src/components';
|
7
7
|
|
8
|
-
import Tabs from '@theme/Tabs';
|
9
|
-
import TabItem from '@theme/TabItem';
|
10
|
-
|
11
8
|
# TextField
|
12
9
|
<Description name="TextField" />
|
13
10
|
<PropsTable name="TextField" exclude={['$isFocused']} />
|
@@ -201,330 +198,3 @@ export function App() {
|
|
201
198
|
);
|
202
199
|
}
|
203
200
|
```
|
204
|
-
|
205
|
-
### Валидация
|
206
|
-
Поддерживается валидация почты и пароля:
|
207
|
-
|
208
|
-
<Tabs>
|
209
|
-
<TabItem value="email" label="Email" default>
|
210
|
-
Свойства доступные при валидации почты:
|
211
|
-
```tsx
|
212
|
-
type ValidationProps = {
|
213
|
-
/*
|
214
|
-
* Тип валидации
|
215
|
-
*/
|
216
|
-
validationType: 'email';
|
217
|
-
/*
|
218
|
-
* Опции валидации
|
219
|
-
*/
|
220
|
-
options?: EmailValidationOptions;
|
221
|
-
/*
|
222
|
-
* Функция, вызываемая при валидации значения.
|
223
|
-
* Вызывается при событии onBlur и по нажатию Enter, когда фокус на поле ввода
|
224
|
-
*/
|
225
|
-
onValidate?: (args: OnValidateArgs) => void;
|
226
|
-
}
|
227
|
-
```
|
228
|
-
Свойство `options` имеет следующий вид:
|
229
|
-
```tsx
|
230
|
-
type EmailValidationOptions = {
|
231
|
-
/*
|
232
|
-
* Пользовательское регулярное выражение, для проверки почты на валидность
|
233
|
-
*/
|
234
|
-
customEmailRegex?: {
|
235
|
-
value?: RegExp;
|
236
|
-
errorMessage?: string;
|
237
|
-
};
|
238
|
-
/*
|
239
|
-
* Минимальная длина почты
|
240
|
-
*/
|
241
|
-
minLength?: {
|
242
|
-
value?: number;
|
243
|
-
errorMessage?: string;
|
244
|
-
};
|
245
|
-
/*
|
246
|
-
* Максимальная длина почты
|
247
|
-
*/
|
248
|
-
maxLength?: {
|
249
|
-
value?: number;
|
250
|
-
errorMessage?: string;
|
251
|
-
};
|
252
|
-
/*
|
253
|
-
* Минимальная длина хоста (часть почты до `@`)
|
254
|
-
*/
|
255
|
-
minHostLength?: {
|
256
|
-
value?: number;
|
257
|
-
errorMessage?: string;
|
258
|
-
};
|
259
|
-
/*
|
260
|
-
* Максимальная длина хоста (часть почты до `@`)
|
261
|
-
*/
|
262
|
-
maxHostLength?: {
|
263
|
-
value?: number;
|
264
|
-
errorMessage?: string;
|
265
|
-
};
|
266
|
-
/*
|
267
|
-
* Минимальная длина домена (часть почты от `@` до `.` перед доменной зоной)
|
268
|
-
*/
|
269
|
-
minDomainLength?: {
|
270
|
-
value?: number;
|
271
|
-
errorMessage?: string;
|
272
|
-
};
|
273
|
-
/*
|
274
|
-
* Максимальная длина домена (часть почты от `@` до `.` перед доменной зоной)
|
275
|
-
*/
|
276
|
-
maxDomainLength?: {
|
277
|
-
value?: number;
|
278
|
-
errorMessage?: string;
|
279
|
-
};
|
280
|
-
/*
|
281
|
-
* Минимальная длина доменной зоны (часть почты от `.`; например `ru`, `com`...)
|
282
|
-
*/
|
283
|
-
minZoneLength?: {
|
284
|
-
value?: number;
|
285
|
-
errorMessage?: string;
|
286
|
-
};
|
287
|
-
/*
|
288
|
-
* Максимальная длина доменной зоны (часть почты от `.`; например `ru`, `com`...)
|
289
|
-
*/
|
290
|
-
maxZoneLength?: {
|
291
|
-
value?: number;
|
292
|
-
errorMessage?: string;
|
293
|
-
};
|
294
|
-
/*
|
295
|
-
* Список разрешенных доменов (например `['mail.ru', 'yahoo.ru', 'gmail.com']`)
|
296
|
-
*/
|
297
|
-
whitelistDomains?: {
|
298
|
-
value?: string[];
|
299
|
-
errorMessage?: string;
|
300
|
-
};
|
301
|
-
/*
|
302
|
-
* Список запрещенных доменов (например `['org.biz', 'expressmail.com']`)
|
303
|
-
*/
|
304
|
-
blacklistDomains?: {
|
305
|
-
value?: string[];
|
306
|
-
errorMessage?: string;
|
307
|
-
};
|
308
|
-
};
|
309
|
-
```
|
310
|
-
|
311
|
-
```tsx live
|
312
|
-
import React, { useState } from 'react';
|
313
|
-
import { TextField } from '@salutejs/{{ package }}';
|
314
|
-
|
315
|
-
export function App() {
|
316
|
-
const options = {
|
317
|
-
minLength: {
|
318
|
-
value: 7,
|
319
|
-
errorMessage: 'Почта слишком короткая',
|
320
|
-
},
|
321
|
-
maxLength: {
|
322
|
-
value: 30,
|
323
|
-
errorMessage: 'Почта слишком длинная',
|
324
|
-
},
|
325
|
-
minHostLength: {
|
326
|
-
value: 2,
|
327
|
-
errorMessage: 'Хост слишком короткий',
|
328
|
-
},
|
329
|
-
maxHostLength: {
|
330
|
-
value: 12,
|
331
|
-
errorMessage: 'Хост слишком длинный',
|
332
|
-
},
|
333
|
-
minDomainLength: {
|
334
|
-
value: 3,
|
335
|
-
errorMessage: 'Домен слишком короткий',
|
336
|
-
},
|
337
|
-
maxDomainLength: {
|
338
|
-
value: 6,
|
339
|
-
errorMessage: 'Домен слишком длинный',
|
340
|
-
},
|
341
|
-
minZoneLength: {
|
342
|
-
value: 2,
|
343
|
-
errorMessage: 'Доменная зона слишком короткая',
|
344
|
-
},
|
345
|
-
maxZoneLength: {
|
346
|
-
value: 5,
|
347
|
-
errorMessage: 'Доменная зона слишком длинная',
|
348
|
-
},
|
349
|
-
whitelistDomains: {
|
350
|
-
value: ['plasma.ru', 'gmail.com', 'mail.ru'],
|
351
|
-
errorMessage: 'Домен не разрешен',
|
352
|
-
},
|
353
|
-
blacklistDomains: {
|
354
|
-
value: ['hah.ah', 'heh.eh'],
|
355
|
-
errorMessage: 'Домен запрещен',
|
356
|
-
},
|
357
|
-
};
|
358
|
-
|
359
|
-
const [error, setError] = useState('');
|
360
|
-
|
361
|
-
const handleOnChange = () => {
|
362
|
-
setError('');
|
363
|
-
};
|
364
|
-
|
365
|
-
const handleOnValidate = ({ errorMessage }: { errorMessage?: string }) => {
|
366
|
-
setError(errorMessage || '');
|
367
|
-
};
|
368
|
-
|
369
|
-
return (
|
370
|
-
<div>
|
371
|
-
<TextField
|
372
|
-
label="Валидация почты"
|
373
|
-
placeholder="Заполните поле"
|
374
|
-
validationType="email"
|
375
|
-
options={options}
|
376
|
-
view={error ? 'negative' : 'default}
|
377
|
-
helperText={error || 'Валидация почты'}
|
378
|
-
onChange={handleOnChange}
|
379
|
-
onValidate={handleOnValidate}
|
380
|
-
/>
|
381
|
-
</div>
|
382
|
-
);
|
383
|
-
}
|
384
|
-
```
|
385
|
-
</TabItem>
|
386
|
-
|
387
|
-
<TabItem value="password" label="Password" default>
|
388
|
-
Свойства доступные при валидации пароля:
|
389
|
-
```tsx
|
390
|
-
type ValidationProps = {
|
391
|
-
/*
|
392
|
-
* Тип валидации
|
393
|
-
*/
|
394
|
-
validationType: 'password';
|
395
|
-
/*
|
396
|
-
* Опции валидации
|
397
|
-
*/
|
398
|
-
options?: PasswordValidationOptions;
|
399
|
-
/*
|
400
|
-
* Состояние сокрытия оригинального пароля
|
401
|
-
*/
|
402
|
-
passwordHidden?: boolean;
|
403
|
-
/*
|
404
|
-
* Функция, вызываемая при валидации значения.
|
405
|
-
* Вызывается при событии onBlur и по нажатию Enter, когда фокус на поле ввода
|
406
|
-
*/
|
407
|
-
onValidate?: (args: OnValidateArgs) => void;
|
408
|
-
}
|
409
|
-
```
|
410
|
-
Свойство `options` имеет следующий вид:
|
411
|
-
```tsx
|
412
|
-
type PasswordValidationOptions = {
|
413
|
-
/*
|
414
|
-
* Минимальная длина пароля
|
415
|
-
*/
|
416
|
-
minLength?: {
|
417
|
-
value?: number;
|
418
|
-
errorMessage?: string;
|
419
|
-
};
|
420
|
-
/*
|
421
|
-
* Максимальная длина пароля
|
422
|
-
*/
|
423
|
-
maxLength?: {
|
424
|
-
value?: number;
|
425
|
-
errorMessage?: string;
|
426
|
-
};
|
427
|
-
/*
|
428
|
-
* Должны ли быть буквы верхнего регистра в пароле
|
429
|
-
*/
|
430
|
-
includeUppercase?: {
|
431
|
-
value?: boolean;
|
432
|
-
errorMessage?: string;
|
433
|
-
};
|
434
|
-
/*
|
435
|
-
* Должны ли быть буквы нижнего регистра в пароле
|
436
|
-
*/
|
437
|
-
includeLowercase?: {
|
438
|
-
value?: boolean;
|
439
|
-
errorMessage?: string;
|
440
|
-
};
|
441
|
-
/*
|
442
|
-
* Должны ли быть цифры в пароле
|
443
|
-
*/
|
444
|
-
includeDigits?: {
|
445
|
-
value?: boolean;
|
446
|
-
errorMessage?: string;
|
447
|
-
};
|
448
|
-
/*
|
449
|
-
* Должны ли быть специальные символы в пароле
|
450
|
-
*/
|
451
|
-
includeSpecialSymbols?: {
|
452
|
-
value?: boolean;
|
453
|
-
errorMessage?: string;
|
454
|
-
};
|
455
|
-
};
|
456
|
-
```
|
457
|
-
|
458
|
-
```tsx live
|
459
|
-
import React, { useState } from 'react';
|
460
|
-
import { TextField, IconButton } from '@salutejs/{{ package }}';
|
461
|
-
import { IconEyeFill, IconEyeClosedFill } from '@salutejs/plasma-icons';
|
462
|
-
|
463
|
-
export function App() {
|
464
|
-
const options = {
|
465
|
-
minLength: {
|
466
|
-
value: 5,
|
467
|
-
errorMessage: 'Пароль слишком короткий',
|
468
|
-
},
|
469
|
-
maxLength: {
|
470
|
-
value: 20,
|
471
|
-
errorMessage: 'Пароль слишком длинный',
|
472
|
-
},
|
473
|
-
includeUppercase: {
|
474
|
-
value: true,
|
475
|
-
errorMessage: 'Пароль должен содержать хотя бы одну заглавную букву',
|
476
|
-
},
|
477
|
-
includeLowercase: {
|
478
|
-
value: true,
|
479
|
-
errorMessage: 'Пароль должен содержать хотя бы одну строчную букву',
|
480
|
-
},
|
481
|
-
includeDigits: {
|
482
|
-
value: true,
|
483
|
-
errorMessage: 'Пароль должен содержать хотя бы одну цифру',
|
484
|
-
},
|
485
|
-
includeSpecialSymbols: {
|
486
|
-
value: true,
|
487
|
-
errorMessage: 'Пароль должен содержать хотя бы один специальный символ',
|
488
|
-
},
|
489
|
-
};
|
490
|
-
|
491
|
-
const [error, setError] = useState('');
|
492
|
-
const [hidden, setHidden] = useState(false);
|
493
|
-
|
494
|
-
const handleOnChange = () => {
|
495
|
-
setError('');
|
496
|
-
};
|
497
|
-
|
498
|
-
const handleOnValidate = ({ errorMessage }: { errorMessage?: string }) => {
|
499
|
-
setError(errorMessage || '');
|
500
|
-
};
|
501
|
-
|
502
|
-
const toggleShowPassword = () => setHidden(!hidden);
|
503
|
-
|
504
|
-
const HideButton = () => (
|
505
|
-
<IconButton size="s" view="clear" onClick={toggleShowPassword}>
|
506
|
-
{hidden ? <IconEyeClosedFill size="xs" color="inherit" /> : <IconEyeFill size="xs" color="inherit" />}
|
507
|
-
</IconButton>
|
508
|
-
)
|
509
|
-
|
510
|
-
return (
|
511
|
-
<div>
|
512
|
-
<TextField
|
513
|
-
label="Валидация пароля"
|
514
|
-
placeholder="Заполните поле"
|
515
|
-
validationType="password"
|
516
|
-
options={options}
|
517
|
-
view={error ? 'negative' : 'default'}
|
518
|
-
leftHelper={error || 'Валидация пароля'}
|
519
|
-
onChange={handleOnChange}
|
520
|
-
onValidate={handleOnValidate}
|
521
|
-
passwordHidden={hidden}
|
522
|
-
contentLeft={<HideButton />}
|
523
|
-
/>
|
524
|
-
</div>
|
525
|
-
);
|
526
|
-
}
|
527
|
-
```
|
528
|
-
</TabItem>
|
529
|
-
</Tabs>
|
530
|
-
|
@@ -1,2 +1 @@
|
|
1
|
-
export { useKeyNavigation } from './useKeyNavigation';
|
2
|
-
export { useValidation } from './useValidation';
|
1
|
+
export { useKeyNavigation } from './useKeyNavigation';
|