@1money/component-ui 0.0.19 → 0.0.21
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/.claude/settings.local.json +2 -1
- package/AGENTS.md +7 -1
- package/es/components/Alert/Alert.js +5 -6
- package/es/components/Alert/style/Alert.css +1 -1
- package/es/components/Button/Button.js +29 -1
- package/es/components/Button/constants.d.ts +14 -1
- package/es/components/Button/constants.js +23 -3
- package/es/components/Button/interface.d.ts +9 -0
- package/es/components/Cell/Cell.d.ts +5 -0
- package/es/components/Cell/Cell.js +57 -0
- package/es/components/Cell/index.d.ts +4 -0
- package/es/components/Cell/index.js +5 -0
- package/es/components/Cell/interface.d.ts +12 -0
- package/es/components/{Form → Cell}/interface.js +1 -1
- package/es/components/Cell/style/Cell.css +1 -0
- package/es/components/Cell/style/css.js +2 -0
- package/es/components/Cell/style/index.d.ts +1 -0
- package/es/components/Cell/style/index.js +2 -0
- package/es/components/Dialog/Dialog.d.ts +4 -0
- package/es/components/Dialog/Dialog.js +383 -0
- package/es/components/Dialog/constants.d.ts +60 -0
- package/es/components/Dialog/constants.js +57 -0
- package/es/components/Dialog/index.d.ts +4 -0
- package/es/components/Dialog/index.js +5 -0
- package/es/components/{Modal → Dialog}/interface.d.ts +7 -7
- package/es/components/Dialog/interface.js +2 -0
- package/es/components/Dialog/style/Dialog.css +1 -0
- package/es/components/Dialog/style/css.js +2 -0
- package/es/components/Dialog/style/index.d.ts +1 -0
- package/es/components/Dialog/style/index.js +2 -0
- package/es/components/Divider/Divider.js +15 -18
- package/es/components/Divider/constants.d.ts +36 -0
- package/es/components/Divider/constants.js +41 -0
- package/es/components/Divider/interface.d.ts +2 -3
- package/es/components/Drawer/Drawer.js +13 -129
- package/es/components/Drawer/constants.d.ts +8 -5
- package/es/components/Drawer/constants.js +9 -6
- package/es/components/Drawer/hooks/index.d.ts +4 -0
- package/es/components/Drawer/hooks/index.js +5 -0
- package/es/components/Drawer/hooks/useBodyScrollLock.d.ts +1 -0
- package/es/components/Drawer/hooks/useBodyScrollLock.js +29 -0
- package/es/components/Drawer/hooks/useDialogFocus.d.ts +2 -0
- package/es/components/Drawer/hooks/useDialogFocus.js +22 -0
- package/es/components/Drawer/hooks/useDrawerTransition.d.ts +4 -0
- package/es/components/Drawer/hooks/useDrawerTransition.js +57 -0
- package/es/components/Drawer/hooks/useEscapeClose.d.ts +1 -0
- package/es/components/Drawer/hooks/useEscapeClose.js +16 -0
- package/es/components/ProForm/ProForm.js +93 -116
- package/es/components/ProForm/ProFormDependency.js +2 -4
- package/es/components/ProForm/ProFormItem.d.ts +4 -0
- package/es/components/ProForm/ProFormItem.js +213 -0
- package/es/components/ProForm/ProFormList.js +5 -6
- package/es/components/ProForm/Submitter.js +2 -2
- package/es/components/ProForm/context.d.ts +10 -2
- package/es/components/ProForm/context.js +17 -14
- package/es/components/{Form → ProForm/core}/constants.d.ts +1 -1
- package/es/components/ProForm/core/constants.js +18 -0
- package/es/components/ProForm/core/hooks/useForm.js +541 -0
- package/es/components/ProForm/core/hooks/useFormCore.js +347 -0
- package/es/components/ProForm/core/index.d.ts +6 -0
- package/es/components/ProForm/core/index.js +6 -0
- package/es/components/{Form → ProForm/core}/interface.d.ts +21 -60
- package/es/components/ProForm/core/interface.js +2 -0
- package/es/components/ProForm/core/useFormItem.d.ts +20 -0
- package/es/components/ProForm/core/useFormItem.js +121 -0
- package/es/components/ProForm/fields/ProFormFieldSet.js +7 -6
- package/es/components/ProForm/fields/createProFormField.js +76 -151
- package/es/components/ProForm/index.d.ts +13 -6
- package/es/components/ProForm/index.js +21 -9
- package/es/components/ProForm/interface.d.ts +79 -44
- package/es/components/ProForm/layouts/DialogForm.d.ts +3 -0
- package/es/components/ProForm/layouts/DialogForm.js +74 -0
- package/es/components/ProForm/layouts/index.d.ts +1 -1
- package/es/components/ProForm/layouts/index.js +2 -2
- package/es/components/ProForm/style/ProForm.css +1 -1
- package/es/components/Select/Select.js +5 -5
- package/es/components/Select/SelectFieldShell.js +7 -7
- package/es/components/Select/SelectOptionContent.js +5 -5
- package/es/components/Select/constants.d.ts +37 -13
- package/es/components/Select/constants.js +36 -20
- package/es/components/Select/style/Select.css +1 -1
- package/es/components/Switch/Switch.js +7 -7
- package/es/components/Switch/constants.d.ts +23 -9
- package/es/components/Switch/constants.js +26 -11
- package/es/components/Switch/interface.d.ts +2 -2
- package/es/index.css +1 -1
- package/es/index.d.ts +7 -6
- package/es/index.js +4 -4
- package/lib/components/Alert/Alert.js +5 -6
- package/lib/components/Alert/style/Alert.css +1 -1
- package/lib/components/Button/Button.js +29 -1
- package/lib/components/Button/constants.d.ts +14 -1
- package/lib/components/Button/constants.js +23 -3
- package/lib/components/Button/interface.d.ts +9 -0
- package/lib/components/Cell/Cell.d.ts +5 -0
- package/lib/components/Cell/Cell.js +66 -0
- package/lib/components/Cell/index.d.ts +4 -0
- package/lib/components/Cell/index.js +33 -0
- package/lib/components/Cell/interface.d.ts +12 -0
- package/lib/components/{Form → Cell}/interface.js +1 -1
- package/lib/components/Cell/style/Cell.css +1 -0
- package/lib/components/Cell/style/css.js +4 -0
- package/lib/components/Cell/style/index.d.ts +1 -0
- package/lib/components/Cell/style/index.js +4 -0
- package/lib/components/Dialog/Dialog.d.ts +4 -0
- package/lib/components/Dialog/Dialog.js +390 -0
- package/lib/components/Dialog/constants.d.ts +60 -0
- package/lib/components/Dialog/constants.js +64 -0
- package/lib/components/Dialog/index.d.ts +4 -0
- package/lib/components/Dialog/index.js +33 -0
- package/lib/components/{Modal → Dialog}/interface.d.ts +7 -7
- package/lib/components/Dialog/interface.js +6 -0
- package/lib/components/Dialog/style/Dialog.css +1 -0
- package/lib/components/Dialog/style/css.js +4 -0
- package/lib/components/Dialog/style/index.d.ts +1 -0
- package/lib/components/Dialog/style/index.js +4 -0
- package/lib/components/Divider/Divider.js +16 -18
- package/lib/components/Divider/constants.d.ts +36 -0
- package/lib/components/Divider/constants.js +48 -0
- package/lib/components/Divider/interface.d.ts +2 -3
- package/lib/components/Drawer/Drawer.js +14 -130
- package/lib/components/Drawer/constants.d.ts +8 -5
- package/lib/components/Drawer/constants.js +10 -7
- package/lib/components/Drawer/hooks/index.d.ts +4 -0
- package/lib/components/Drawer/hooks/index.js +34 -0
- package/lib/components/Drawer/hooks/useBodyScrollLock.d.ts +1 -0
- package/lib/components/Drawer/hooks/useBodyScrollLock.js +35 -0
- package/lib/components/Drawer/hooks/useDialogFocus.d.ts +2 -0
- package/lib/components/Drawer/hooks/useDialogFocus.js +28 -0
- package/lib/components/Drawer/hooks/useDrawerTransition.d.ts +4 -0
- package/lib/components/Drawer/hooks/useDrawerTransition.js +64 -0
- package/lib/components/Drawer/hooks/useEscapeClose.d.ts +1 -0
- package/lib/components/Drawer/hooks/useEscapeClose.js +22 -0
- package/lib/components/ProForm/ProForm.js +94 -117
- package/lib/components/ProForm/ProFormDependency.js +2 -4
- package/lib/components/ProForm/ProFormItem.d.ts +4 -0
- package/lib/components/ProForm/ProFormItem.js +222 -0
- package/lib/components/ProForm/ProFormList.js +4 -5
- package/lib/components/ProForm/Submitter.js +2 -2
- package/lib/components/ProForm/context.d.ts +10 -2
- package/lib/components/ProForm/context.js +18 -15
- package/lib/components/{Form → ProForm/core}/constants.d.ts +1 -1
- package/lib/components/ProForm/core/constants.js +24 -0
- package/lib/components/ProForm/core/hooks/useForm.js +551 -0
- package/lib/components/ProForm/core/hooks/useFormCore.js +354 -0
- package/lib/components/ProForm/core/index.d.ts +6 -0
- package/lib/components/ProForm/core/index.js +56 -0
- package/lib/components/{Form → ProForm/core}/interface.d.ts +21 -60
- package/lib/components/ProForm/core/interface.js +6 -0
- package/lib/components/ProForm/core/useFormItem.d.ts +20 -0
- package/lib/components/ProForm/core/useFormItem.js +131 -0
- package/lib/components/ProForm/fields/ProFormFieldSet.js +7 -6
- package/lib/components/ProForm/fields/createProFormField.js +76 -151
- package/lib/components/ProForm/index.d.ts +13 -6
- package/lib/components/ProForm/index.js +46 -33
- package/lib/components/ProForm/interface.d.ts +79 -44
- package/lib/components/ProForm/layouts/DialogForm.d.ts +3 -0
- package/lib/components/ProForm/layouts/DialogForm.js +81 -0
- package/lib/components/ProForm/layouts/index.d.ts +1 -1
- package/lib/components/ProForm/layouts/index.js +6 -6
- package/lib/components/ProForm/style/ProForm.css +1 -1
- package/lib/components/Select/Select.js +4 -4
- package/lib/components/Select/SelectFieldShell.js +6 -6
- package/lib/components/Select/SelectOptionContent.js +4 -4
- package/lib/components/Select/constants.d.ts +37 -13
- package/lib/components/Select/constants.js +37 -21
- package/lib/components/Select/style/Select.css +1 -1
- package/lib/components/Switch/Switch.js +6 -6
- package/lib/components/Switch/constants.d.ts +23 -9
- package/lib/components/Switch/constants.js +27 -12
- package/lib/components/Switch/interface.d.ts +2 -2
- package/lib/index.css +1 -1
- package/lib/index.d.ts +7 -6
- package/lib/index.js +69 -63
- package/package.json +11 -6
- package/es/components/Form/Form.d.ts +0 -4
- package/es/components/Form/Form.js +0 -73
- package/es/components/Form/FormItem.d.ts +0 -4
- package/es/components/Form/FormItem.js +0 -183
- package/es/components/Form/constants.js +0 -19
- package/es/components/Form/context.d.ts +0 -5
- package/es/components/Form/context.js +0 -19
- package/es/components/Form/hooks/useForm.js +0 -541
- package/es/components/Form/hooks/useFormCore.js +0 -348
- package/es/components/Form/index.d.ts +0 -10
- package/es/components/Form/index.js +0 -17
- package/es/components/Form/style/Form.css +0 -1
- package/es/components/Form/style/css.js +0 -2
- package/es/components/Form/style/index.d.ts +0 -1
- package/es/components/Form/style/index.js +0 -2
- package/es/components/Modal/Modal.d.ts +0 -4
- package/es/components/Modal/Modal.js +0 -383
- package/es/components/Modal/constants.d.ts +0 -58
- package/es/components/Modal/constants.js +0 -55
- package/es/components/Modal/index.d.ts +0 -4
- package/es/components/Modal/index.js +0 -5
- package/es/components/Modal/interface.js +0 -2
- package/es/components/Modal/style/Modal.css +0 -1
- package/es/components/Modal/style/css.js +0 -2
- package/es/components/Modal/style/index.d.ts +0 -1
- package/es/components/Modal/style/index.js +0 -2
- package/es/components/ProForm/layouts/ModalForm.d.ts +0 -3
- package/es/components/ProForm/layouts/ModalForm.js +0 -74
- package/lib/components/Form/Form.d.ts +0 -4
- package/lib/components/Form/Form.js +0 -80
- package/lib/components/Form/FormItem.d.ts +0 -4
- package/lib/components/Form/FormItem.js +0 -193
- package/lib/components/Form/constants.js +0 -25
- package/lib/components/Form/context.d.ts +0 -5
- package/lib/components/Form/context.js +0 -25
- package/lib/components/Form/hooks/useForm.js +0 -551
- package/lib/components/Form/hooks/useFormCore.js +0 -355
- package/lib/components/Form/index.d.ts +0 -10
- package/lib/components/Form/index.js +0 -83
- package/lib/components/Form/style/Form.css +0 -1
- package/lib/components/Form/style/css.js +0 -4
- package/lib/components/Form/style/index.d.ts +0 -1
- package/lib/components/Form/style/index.js +0 -4
- package/lib/components/Modal/Modal.d.ts +0 -4
- package/lib/components/Modal/Modal.js +0 -390
- package/lib/components/Modal/constants.d.ts +0 -58
- package/lib/components/Modal/constants.js +0 -62
- package/lib/components/Modal/index.d.ts +0 -4
- package/lib/components/Modal/index.js +0 -33
- package/lib/components/Modal/interface.js +0 -6
- package/lib/components/Modal/style/Modal.css +0 -1
- package/lib/components/Modal/style/css.js +0 -4
- package/lib/components/Modal/style/index.d.ts +0 -1
- package/lib/components/Modal/style/index.js +0 -4
- package/lib/components/ProForm/layouts/ModalForm.d.ts +0 -3
- package/lib/components/ProForm/layouts/ModalForm.js +0 -81
- /package/es/components/{Form → ProForm/core}/hooks/useForm.d.ts +0 -0
- /package/es/components/{Form → ProForm/core}/hooks/useFormCore.d.ts +0 -0
- /package/lib/components/{Form → ProForm/core}/hooks/useForm.d.ts +0 -0
- /package/lib/components/{Form → ProForm/core}/hooks/useFormCore.d.ts +0 -0
|
@@ -18,7 +18,7 @@ import SelectFieldShell from './SelectFieldShell';
|
|
|
18
18
|
import SelectOptionContent from './SelectOptionContent';
|
|
19
19
|
import SelectSearchControl from './SelectSearchControl';
|
|
20
20
|
import SelectValueContent from './SelectValueContent';
|
|
21
|
-
import {
|
|
21
|
+
import { SELECT_TYPOGRAPHY } from './constants';
|
|
22
22
|
import { extractOptionText, filterOptionGroups, flattenOptionGroups, getMultipleValue, getOptionsByValues, getSelectedOptions, isOptionSelected, normalizeSize, normalizeOptionGroups, removeMultipleValue, toggleMultipleValue } from './utils';
|
|
23
23
|
import './style';
|
|
24
24
|
var DEFAULT_MAX_HEIGHT = 320;
|
|
@@ -461,8 +461,8 @@ export var Select = function Select(props) {
|
|
|
461
461
|
children: visibleFlatOptions.length === 0 ? _jsx("div", {
|
|
462
462
|
className: classes('empty'),
|
|
463
463
|
children: _jsx(TypographyBody, {
|
|
464
|
-
size:
|
|
465
|
-
color:
|
|
464
|
+
size: SELECT_TYPOGRAPHY.empty.size,
|
|
465
|
+
color: SELECT_TYPOGRAPHY.empty.color,
|
|
466
466
|
children: emptyContent
|
|
467
467
|
})
|
|
468
468
|
}) : function () {
|
|
@@ -473,7 +473,7 @@ export var Select = function Select(props) {
|
|
|
473
473
|
children: [group.label && _jsx("div", {
|
|
474
474
|
className: classes('group-label'),
|
|
475
475
|
children: _jsx(TypographyLabel, {
|
|
476
|
-
size:
|
|
476
|
+
size: SELECT_TYPOGRAPHY.groupLabel.size,
|
|
477
477
|
strong: true,
|
|
478
478
|
children: group.label
|
|
479
479
|
})
|
|
@@ -530,4 +530,4 @@ export var Select = function Select(props) {
|
|
|
530
530
|
};
|
|
531
531
|
Select.displayName = 'Select';
|
|
532
532
|
export default /*#__PURE__*/memo(Select);
|
|
533
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiYXV0b1VwZGF0ZSIsImZsaXAiLCJGbG9hdGluZ0ZvY3VzTWFuYWdlciIsIkZsb2F0aW5nUG9ydGFsIiwib2Zmc2V0Iiwic2hpZnQiLCJzaXplIiwiZmxvYXRpbmdTaXplIiwidXNlQ2xpY2siLCJ1c2VEaXNtaXNzIiwidXNlRmxvYXRpbmciLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVJvbGUiLCJ1c2VUeXBlYWhlYWQiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlSWQiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwiSWNvbnMiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJTRUxFQ1RfRU1QVFlfQ09MT1IiLCJTRUxFQ1RfRU1QVFlfU0laRSIsIlNFTEVDVF9HUk9VUF9MQUJFTF9TSVpFIiwiZXh0cmFjdE9wdGlvblRleHQiLCJmaWx0ZXJPcHRpb25Hcm91cHMiLCJmbGF0dGVuT3B0aW9uR3JvdXBzIiwiZ2V0TXVsdGlwbGVWYWx1ZSIsImdldE9wdGlvbnNCeVZhbHVlcyIsImdldFNlbGVjdGVkT3B0aW9ucyIsImlzT3B0aW9uU2VsZWN0ZWQiLCJub3JtYWxpemVTaXplIiwibm9ybWFsaXplT3B0aW9uR3JvdXBzIiwicmVtb3ZlTXVsdGlwbGVWYWx1ZSIsInRvZ2dsZU11bHRpcGxlVmFsdWUiLCJERUZBVUxUX01BWF9IRUlHSFQiLCJTZWxlY3QiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkZW1wdHlDb250ZW50IiwiZW1wdHlDb250ZW50IiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyVmFsdWUiLCJyZWYiLCJyZXN0IiwiY2xhc3NlcyIsImF1dG9JZCIsInRyaWdnZXJJZCIsImxhYmVsSWQiLCJkZXNjcmlwdGlvbklkIiwiZmVlZGJhY2tJZCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl91c2VDb250cm9sbGVkU3RhdGU0IiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTUiLCJfdXNlQ29udHJvbGxlZFN0YXRlNiIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub3JtYWxpemVkU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwidmlzaWJsZU9wdGlvbkdyb3VwcyIsInZpc2libGVGbGF0T3B0aW9ucyIsInNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdGVkSW5kZXgiLCJtYXRjaGVkSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJoYXNTZWxlY3Rpb24iLCJsaXN0UmVmIiwibGlzdENvbnRlbnRSZWYiLCJmbG9hdGluZ1JlZiIsInRyaWdnZXJSZWYiLCJzZWFyY2hJbnB1dFJlZiIsImhhbmRsZVRyaWdnZXJSZWYiLCJub2RlIiwiY3VycmVudCIsImhhbmRsZU9wZW5DaGFuZ2UiLCJuZXh0T3BlbiIsIl91c2VGbG9hdGluZyIsInBsYWNlbWVudCIsIndoaWxlRWxlbWVudHNNb3VudGVkIiwibWlkZGxld2FyZSIsInBhZGRpbmciLCJhcHBseSIsIl9yZWYiLCJyZWN0cyIsImVsZW1lbnRzIiwiYXZhaWxhYmxlSGVpZ2h0IiwibmV4dE1heEhlaWdodCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJhc3NpZ24iLCJmbG9hdGluZyIsIndpZHRoIiwiY29uY2F0IiwicmVmZXJlbmNlIiwibWF4SGVpZ2h0IiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwiY2xpY2siLCJlbmFibGVkIiwiZGlzbWlzcyIsIm91dHNpZGVQcmVzc0V2ZW50Iiwicm9sZSIsImxpc3ROYXZpZ2F0aW9uIiwib25OYXZpZ2F0ZSIsImxvb3AiLCJ0eXBlYWhlYWQiLCJvbk1hdGNoIiwiX3VzZUludGVyYWN0aW9ucyIsImdldFJlZmVyZW5jZVByb3BzIiwiZ2V0RmxvYXRpbmdQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImZpcnN0RW5hYmxlZEluZGV4IiwibGFzdEVuYWJsZWRJbmRleCIsIl9hIiwiaW5kZXgiLCJwcmV2IiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwic2xpY2UiLCJub3RpZnlCbHVySWZPdXRzaWRlIiwicmVsYXRlZFRhcmdldCIsImV2ZW50IiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImhhbmRsZU9wdGlvbkJsdXIiLCJjb21taXRDaGFuZ2UiLCJuZXh0VmFsdWUiLCJuZXh0T3B0aW9uIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwibmV4dE9wdGlvbnMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJpbmNsdWRlcyIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVJdGVtTW91c2VFbnRlciIsImhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhZ1JlbW92ZUNsaWNrIiwiaGFuZGxlU2VhcmNoQmx1ciIsImhhbmRsZVNlYXJjaENoYW5nZSIsIl9ldmVudCIsImhhbmRsZVNlYXJjaEtleURvd24iLCJfYyIsInJlbmRlclZhbHVlTWV0YSIsInZhbHVlTGFiZWxDbGFzcyIsImlzTXVsdGlwbGVWYWx1ZUZpbGxlZCIsInRyaWdnZXJDbGFzc05hbWUiLCJpY29uU2l6ZSIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25LZXlEb3duIiwib25SZW1vdmUiLCJvblJlbW92ZUNsaWNrIiwib25SZW1vdmVNb3VzZURvd24iLCJjb2xvciIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiYWN0aXZlIiwib3B0aW9uTWV0YSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1Qs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UUFBUSxFQUFFQTtzQkFBUSxDQUFBO29CQUVyQixDQUFBLENBQUEsRUFqQ0lsSCxNQUFNLENBQUM1RSxLQUFLLENBa0NWO2tCQUViLENBQUMsQ0FBQztnQkFBQSxDQUFBLEVBN0RNMkwsS0FBSyxDQUFDakMsR0FBRyxDQThEYjtjQUFBLENBQ1AsQ0FBQztZQUNKLENBQUMsQ0FBQztVQUNILENBQUEsQ0FDRyxFQUNMOUgsV0FBVyxJQUFJLElBQUksSUFDbEI5RixJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUtzRCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUFvSSxRQUFBLEVBQUduSjtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBO0lBQ2UsQ0FBQSxDQUUxQjtFQUFBLENBQUEsQ0FDZ0I7QUFFdkIsQ0FBQztBQUVEM0MsTUFBTSxDQUFDa04sV0FBVyxHQUFHLFFBQVE7QUFFN0IsNEJBQWVuUCxJQUFJLENBQUNpQyxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgU0VMRUNUX0VNUFRZX0NPTE9SLCBTRUxFQ1RfRU1QVFlfU0laRSwgU0VMRUNUX0dST1VQX0xBQkVMX1NJWkUsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJWYWx1ZSwgcmVmIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwic3R5bGVcIiwgXCJpZFwiLCBcIm5hbWVcIiwgJ2FyaWEtbGFiZWwnLCAnYXJpYS1sYWJlbGxlZGJ5JywgXCJwbGFjZWhvbGRlclwiLCBcIm9wdGlvbnNcIiwgXCJ2YWx1ZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcInNpemVcIiwgXCJzdGF0dXNcIiwgXCJ2YXJpYW50XCIsIFwiZGlzYWJsZWRcIiwgXCJtdWx0aXBsZVwiLCBcIm1heFZpc2libGVWYWx1ZXNcIiwgXCJzZWFyY2hhYmxlXCIsIFwic2VhcmNoUGxhY2Vob2xkZXJcIiwgXCJzZWFyY2hWYWx1ZVwiLCBcImRlZmF1bHRTZWFyY2hWYWx1ZVwiLCBcImxhYmVsXCIsIFwiaW5mb1wiLCBcImRlc2NyaXB0aW9uXCIsIFwiZmVlZGJhY2tcIiwgXCJyZXF1aXJlZFwiLCBcInByZWZpeFwiLCBcImVtcHR5Q29udGVudFwiLCBcInBhbmVsRm9vdGVyXCIsIFwib3BlblwiLCBcImRlZmF1bHRPcGVuXCIsIFwibGlzdE1heEhlaWdodFwiLCBcIm9uQ2hhbmdlXCIsIFwib25PcGVuQ2hhbmdlXCIsIFwib25TZWFyY2hDaGFuZ2VcIiwgXCJvbkJsdXJcIiwgXCJmaWx0ZXJPcHRpb25cIiwgXCJyZW5kZXJPcHRpb25cIiwgXCJyZW5kZXJWYWx1ZVwiLCBcInJlZlwiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHJvb3RDbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb25JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZmVlZGJhY2tJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lck9wZW4sIHNldElubmVyT3Blbl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcGVuQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2V0SW5uZXJPcGVuKG5leHRPcGVuKTtcbiAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHRPcGVuKTtcbiAgICB9KTtcbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0LCB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZTogaGFuZGxlT3BlbkNoYW5nZSxcbiAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tLXN0YXJ0JyxcbiAgICAgICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICAgIG9mZnNldCgwKSxcbiAgICAgICAgICAgIGZsaXAoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiA4IH0pLFxuICAgICAgICAgICAgZmxvYXRpbmdTaXplKHtcbiAgICAgICAgICAgICAgICBhcHBseSh7IHJlY3RzLCBlbGVtZW50cywgYXZhaWxhYmxlSGVpZ2h0IH0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dE1heEhlaWdodCA9IE1hdGgubWF4KDEyMCwgTWF0aC5taW4obGlzdE1heEhlaWdodCwgYXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBgJHtyZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBgJHtuZXh0TWF4SGVpZ2h0fXB4YCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQgfSk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQsIG91dHNpZGVQcmVzc0V2ZW50OiAnbW91c2Vkb3duJyB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6ICdzZWxlY3QnIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGljayxcbiAgICAgICAgZGlzbWlzcyxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGxhc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbm5lck9wZW4gJiYgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgKF9hID0gc2VhcmNoSW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdG9nZ2xlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIF9ldmVudCkgPT4ge1xuICAgICAgICBzZXRJbm5lclNlYXJjaFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZShuZXh0VmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicgJiYgZmlyc3RFbmFibGVkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGZpcnN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFtmaXJzdEVuYWJsZWRJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnICYmIGxhc3RFbmFibGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChsYXN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYiA9IGxpc3RSZWYuY3VycmVudFtsYXN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICB9O1xuICAgIGNvbnN0IHZhbHVlTGFiZWxDbGFzcyA9IGhhc1NlbGVjdGlvbiA/ICd2YWx1ZScgOiAncGxhY2Vob2xkZXInO1xuICAgIGNvbnN0IGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCA9IChtdWx0aXBsZSAmJlxuICAgICAgICBoYXNTZWxlY3Rpb24gJiZcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyA9PT0gdW5kZWZpbmVkKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaW5uZXJPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1tdWx0aXBsZS1maWxsZWQnKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ3NtYWxsJyA/IDE2IDogMjA7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW1xuICAgICAgICBkZXNjcmlwdGlvbiA/IGRlc2NyaXB0aW9uSWQgOiBudWxsLFxuICAgICAgICBmZWVkYmFjayA/IGZlZWRiYWNrSWQgOiBudWxsLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4cyhTZWxlY3RGaWVsZFNoZWxsLCB7IGNsYXNzZXM6IGNsYXNzZXMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgdmFyaWFudDogdmFyaWFudCwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSksIGlubmVyT3BlbiAmJiAhZGlzYWJsZWQgJiYgKF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIHBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgdmFsdWU6IGlubmVyU2VhcmNoVmFsdWUsIG9uQmx1cjogaGFuZGxlU2VhcmNoQmx1ciwgb25DaGFuZ2U6IGhhbmRsZVNlYXJjaENoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVTZWFyY2hLZXlEb3duIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCA9PT0gMCA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbXB0eScpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfRU1QVFlfU0laRSwgY29sb3I6IFNFTEVDVF9FTVBUWV9DT0xPUiwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX0dST1VQX0xBQkVMX1NJWkUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQgfSkpIH0pLCBvcHRpb24udmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkgfSkpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
533
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiYXV0b1VwZGF0ZSIsImZsaXAiLCJGbG9hdGluZ0ZvY3VzTWFuYWdlciIsIkZsb2F0aW5nUG9ydGFsIiwib2Zmc2V0Iiwic2hpZnQiLCJzaXplIiwiZmxvYXRpbmdTaXplIiwidXNlQ2xpY2siLCJ1c2VEaXNtaXNzIiwidXNlRmxvYXRpbmciLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVJvbGUiLCJ1c2VUeXBlYWhlYWQiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlSWQiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwiSWNvbnMiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJTRUxFQ1RfVFlQT0dSQVBIWSIsImV4dHJhY3RPcHRpb25UZXh0IiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsImdldE11bHRpcGxlVmFsdWUiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJpc09wdGlvblNlbGVjdGVkIiwibm9ybWFsaXplU2l6ZSIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiU2VsZWN0IiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInN0eWxlIiwiaWQiLCJuYW1lIiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9wcm9wcyRvcHRpb25zIiwib3B0aW9ucyIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiX3Byb3BzJHNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlclZhbHVlIiwicmVmIiwicmVzdCIsImNsYXNzZXMiLCJhdXRvSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyT3BlbiIsInNldElubmVyT3BlbiIsIl91c2VDb250cm9sbGVkU3RhdGU1IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTYiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwibm9kZSIsImN1cnJlbnQiLCJoYW5kbGVPcGVuQ2hhbmdlIiwibmV4dE9wZW4iLCJfdXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsIm1pZGRsZXdhcmUiLCJwYWRkaW5nIiwiYXBwbHkiLCJfcmVmIiwicmVjdHMiLCJlbGVtZW50cyIsImF2YWlsYWJsZUhlaWdodCIsIm5leHRNYXhIZWlnaHQiLCJNYXRoIiwibWF4IiwibWluIiwiYXNzaWduIiwiZmxvYXRpbmciLCJ3aWR0aCIsImNvbmNhdCIsInJlZmVyZW5jZSIsIm1heEhlaWdodCIsInJlZnMiLCJmbG9hdGluZ1N0eWxlcyIsImNvbnRleHQiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJvdXRzaWRlUHJlc3NFdmVudCIsInJvbGUiLCJsaXN0TmF2aWdhdGlvbiIsIm9uTmF2aWdhdGUiLCJsb29wIiwidHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJmaXJzdEVuYWJsZWRJbmRleCIsImxhc3RFbmFibGVkSW5kZXgiLCJfYSIsImluZGV4IiwicHJldiIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInNsaWNlIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm5leHRPcHRpb25zIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiaW5jbHVkZXMiLCJoYW5kbGVUcmlnZ2VyS2V5RG93biIsImtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwiX2MiLCJyZW5kZXJWYWx1ZU1ldGEiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiaWNvblNpemUiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImNoaWxkcmVuIiwidHlwZSIsIm9uS2V5RG93biIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiY29sb3IiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiZW1wdHkiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsImdyb3VwTGFiZWwiLCJzdHJvbmciLCJvcHRpb25GbGF0SW5kZXgiLCJzZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ1g5RCxTQUNFQyxVQUFVLEVBQ1ZDLElBQUksRUFDSkMsb0JBQW9CLEVBQ3BCQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsS0FBSyxFQUNMQyxJQUFJLElBQUlDLFlBQVksRUFDcEJDLFFBQVEsRUFDUkMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQyxPQUFPLEVBQ1BDLFlBQVksUUFDUCxvQkFBb0I7QUFDM0IsU0FBU0MsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBUSxlQUFlO0FBQ3BFLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLGNBQWMsRUFBRUMsZUFBZSxRQUFRLGVBQWU7QUFDL0QsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLElBQUlDLGNBQWMsUUFBUSx3QkFBd0I7QUFnQjNFLE9BQU9DLGdCQUFnQixNQUFNLG9CQUFvQjtBQUNqRCxPQUFPQyxtQkFBbUIsTUFBTSx1QkFBdUI7QUFDdkQsT0FBT0MsbUJBQW1CLE1BQU0sdUJBQXVCO0FBQ3ZELE9BQU9DLGtCQUFrQixNQUFNLHNCQUFzQjtBQUNyRCxTQUFTQyxpQkFBaUIsUUFBUSxhQUFhO0FBQy9DLFNBQ0VDLGlCQUFpQixFQUNqQkMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLGdCQUFnQixFQUNoQkMsa0JBQWtCLEVBQ2xCQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMsYUFBYSxFQUNiQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsbUJBQW1CLFFBQ2QsU0FBUztBQUNoQixPQUFPLFNBQVM7QUFFaEIsSUFBTUMsa0JBQWtCLEdBQUcsR0FBRztBQUU5QixPQUFPLElBQU1DLE1BQU0sR0FBb0IsU0FBMUJBLE1BQU1BLENBQXFCQyxLQUFLLEVBQUk7RUFDL0MsSUFBQUMsZ0JBQUEsR0EwQ0lELEtBQUssQ0F6Q1BFLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLEVBQUUsR0FBQUEsZ0JBQUE7SUFBQUUsZ0JBQUEsR0F5Q1pILEtBQUssQ0F4Q1BJLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLFFBQVEsR0FBQUEsZ0JBQUE7SUFDcEJFLEtBQUssR0F1Q0hMLEtBQUssQ0F2Q1BLLEtBQUs7SUFDTEMsRUFBRSxHQXNDQU4sS0FBSyxDQXRDUE0sRUFBRTtJQUNGQyxJQUFJLEdBcUNGUCxLQUFLLENBckNQTyxJQUFJO0lBQ1VDLFNBQVMsR0FvQ3JCUixLQUFLLENBcENQLFlBQVk7SUFDT1MsY0FBYyxHQW1DL0JULEtBQUssQ0FuQ1AsaUJBQWlCO0lBQUFVLGtCQUFBLEdBbUNmVixLQUFLLENBbENQVyxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsa0JBQUEsY0FBRyxPQUFPLEdBQUFBLGtCQUFBO0lBQUFFLGNBQUEsR0FrQ25CWixLQUFLLENBakNQYSxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsY0FBQSxjQUFHLEVBQUUsR0FBQUEsY0FBQTtJQUNaRSxLQUFLLEdBZ0NIZCxLQUFLLENBaENQYyxLQUFLO0lBQ0xDLFlBQVksR0ErQlZmLEtBQUssQ0EvQlBlLFlBQVk7SUFBQUMsV0FBQSxHQStCVmhCLEtBQUssQ0E5QlB6QyxJQUFJO0lBQUpBLElBQUksR0FBQXlELFdBQUEsY0FBRyxPQUFPLEdBQUFBLFdBQUE7SUFBQUMsYUFBQSxHQThCWmpCLEtBQUssQ0E3QlBrQixNQUFNO0lBQU5BLE1BQU0sR0FBQUQsYUFBQSxjQUFHLFNBQVMsR0FBQUEsYUFBQTtJQUFBRSxjQUFBLEdBNkJoQm5CLEtBQUssQ0E1QlBvQixPQUFPO0lBQVBBLE9BQU8sR0FBQUQsY0FBQSxjQUFHLE1BQU0sR0FBQUEsY0FBQTtJQUFBRSxlQUFBLEdBNEJkckIsS0FBSyxDQTNCUHNCLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQUFFLGVBQUEsR0EyQmR2QixLQUFLLENBMUJQd0IsUUFBUTtJQUFSQSxRQUFRLEdBQUFELGVBQUEsY0FBRyxLQUFLLEdBQUFBLGVBQUE7SUFDaEJFLGdCQUFnQixHQXlCZHpCLEtBQUssQ0F6QlB5QixnQkFBZ0I7SUFBQUMsaUJBQUEsR0F5QmQxQixLQUFLLENBeEJQMkIsVUFBVTtJQUFWQSxVQUFVLEdBQUFELGlCQUFBLGNBQUcsS0FBSyxHQUFBQSxpQkFBQTtJQUFBRSxxQkFBQSxHQXdCaEI1QixLQUFLLENBdkJQNkIsaUJBQWlCO0lBQWpCQSxpQkFBaUIsR0FBQUQscUJBQUEsY0FBRyxRQUFRLEdBQUFBLHFCQUFBO0lBQzVCRSxXQUFXLEdBc0JUOUIsS0FBSyxDQXRCUDhCLFdBQVc7SUFBQUMscUJBQUEsR0FzQlQvQixLQUFLLENBckJQZ0Msa0JBQWtCO0lBQWxCQSxrQkFBa0IsR0FBQUQscUJBQUEsY0FBRyxFQUFFLEdBQUFBLHFCQUFBO0lBQ3ZCRSxLQUFLLEdBb0JIakMsS0FBSyxDQXBCUGlDLEtBQUs7SUFDTEMsSUFBSSxHQW1CRmxDLEtBQUssQ0FuQlBrQyxJQUFJO0lBQ0pDLFdBQVcsR0FrQlRuQyxLQUFLLENBbEJQbUMsV0FBVztJQUNYQyxRQUFRLEdBaUJOcEMsS0FBSyxDQWpCUG9DLFFBQVE7SUFBQUMsZUFBQSxHQWlCTnJDLEtBQUssQ0FoQlBzQyxRQUFRO0lBQVJBLFFBQVEsR0FBQUQsZUFBQSxjQUFHLEtBQUssR0FBQUEsZUFBQTtJQUNoQkUsTUFBTSxHQWVKdkMsS0FBSyxDQWZQdUMsTUFBTTtJQUFBQyxtQkFBQSxHQWVKeEMsS0FBSyxDQWRQeUMsWUFBWTtJQUFaQSxZQUFZLEdBQUFELG1CQUFBLGNBQUcsWUFBWSxHQUFBQSxtQkFBQTtJQUMzQkUsV0FBVyxHQWFUMUMsS0FBSyxDQWJQMEMsV0FBVztJQUNYQyxJQUFJLEdBWUYzQyxLQUFLLENBWlAyQyxJQUFJO0lBQUFDLGtCQUFBLEdBWUY1QyxLQUFLLENBWFA2QyxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsa0JBQUEsY0FBRyxLQUFLLEdBQUFBLGtCQUFBO0lBQUFFLG9CQUFBLEdBV2pCOUMsS0FBSyxDQVZQK0MsYUFBYTtJQUFiQSxhQUFhLEdBQUFELG9CQUFBLGNBQUdoRCxrQkFBa0IsR0FBQWdELG9CQUFBO0lBQ2xDRSxRQUFRLEdBU05oRCxLQUFLLENBVFBnRCxRQUFRO0lBQ1JDLFlBQVksR0FRVmpELEtBQUssQ0FSUGlELFlBQVk7SUFDWkMsY0FBYyxHQU9abEQsS0FBSyxDQVBQa0QsY0FBYztJQUNkQyxNQUFNLEdBTUpuRCxLQUFLLENBTlBtRCxNQUFNO0lBQ05DLFlBQVksR0FLVnBELEtBQUssQ0FMUG9ELFlBQVk7SUFDWkMsWUFBWSxHQUlWckQsS0FBSyxDQUpQcUQsWUFBWTtJQUNaQyxXQUFXLEdBR1R0RCxLQUFLLENBSFBzRCxXQUFXO0lBQ1hDLEdBQUcsR0FFRHZELEtBQUssQ0FGUHVELEdBQUc7SUFDQUMsSUFBSSxHQUFBekgsTUFBQSxDQUNMaUUsS0FBSyxFQTFDSCxDQUFBLFdBQUEsRUFBQSxXQUFBLEVBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsWUFBQSxFQUFBLGlCQUFBLEVBQUEsYUFBQSxFQUFBLFNBQUEsRUFBQSxPQUFBLEVBQUEsY0FBQSxFQUFBLE1BQUEsRUFBQSxRQUFBLEVBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsa0JBQUEsRUFBQSxZQUFBLEVBQUEsbUJBQUEsRUFBQSxhQUFBLEVBQUEsb0JBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLGFBQUEsRUFBQSxVQUFBLEVBQUEsVUFBQSxFQUFBLFFBQUEsRUFBQSxjQUFBLEVBQUEsYUFBQSxFQUFBLE1BQUEsRUFBQSxhQUFBLEVBQUEsZUFBQSxFQUFBLFVBQUEsRUFBQSxjQUFBLEVBQUEsZ0JBQUEsRUFBQSxRQUFBLEVBQUEsY0FBQSxFQUFBLGNBQUEsRUFBQSxhQUFBLEVBQUEsS0FBQSxDQTBDTCxDQUFRO0VBRVQsSUFBTXlELE9BQU8sR0FBRzVFLGNBQWMsQ0FBQ3VCLFNBQVMsQ0FBQztFQUN6QyxJQUFNc0QsTUFBTSxHQUFHeEYsS0FBSyxDQUFBLENBQUU7RUFDdEIsSUFBTXlGLFNBQVMsR0FBR3JELEVBQUUsS0FBQSxJQUFBLElBQUZBLEVBQUUsS0FBQSxLQUFBLENBQUEsR0FBRkEsRUFBRSxHQUFJb0QsTUFBTTtFQUM5QixJQUFNRSxPQUFPLEdBQUcxRixLQUFLLENBQUEsQ0FBRTtFQUN2QixJQUFNMkYsYUFBYSxHQUFHM0YsS0FBSyxDQUFBLENBQUU7RUFDN0IsSUFBTTRGLFVBQVUsR0FBRzVGLEtBQUssQ0FBQSxDQUFFO0VBQzFCLElBQUE2RixtQkFBQSxHQUFvQ3pGLGtCQUFrQixDQUNwRHlDLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxHQUFLUyxRQUFRLEdBQUcsRUFBRSxHQUFHd0MsU0FBVSxFQUMzQ2xELEtBQUssQ0FDTjtJQUFBbUQsb0JBQUEsR0FBQUMsY0FBQSxDQUFBSCxtQkFBQTtJQUhNSSxVQUFVLEdBQUFGLG9CQUFBO0lBQUVHLGFBQWEsR0FBQUgsb0JBQUE7RUFJaEMsSUFBQUksb0JBQUEsR0FBa0MvRixrQkFBa0IsQ0FBQ3VFLFdBQVcsRUFBRUYsSUFBSSxDQUFDO0lBQUEyQixvQkFBQSxHQUFBSixjQUFBLENBQUFHLG9CQUFBO0lBQWhFRSxTQUFTLEdBQUFELG9CQUFBO0lBQUVFLFlBQVksR0FBQUYsb0JBQUE7RUFDOUIsSUFBQUcsb0JBQUEsR0FBZ0RuRyxrQkFBa0IsQ0FDaEUwRCxrQkFBa0IsRUFDbEJGLFdBQVcsQ0FDWjtJQUFBNEMsb0JBQUEsR0FBQVIsY0FBQSxDQUFBTyxvQkFBQTtJQUhNRSxnQkFBZ0IsR0FBQUQsb0JBQUE7SUFBRUUsbUJBQW1CLEdBQUFGLG9CQUFBO0VBSTVDLElBQUFHLFNBQUEsR0FBc0N4RyxRQUFRLENBQWdCLElBQUksQ0FBQztJQUFBeUcsVUFBQSxHQUFBWixjQUFBLENBQUFXLFNBQUE7SUFBNURFLFdBQVcsR0FBQUQsVUFBQTtJQUFFRSxjQUFjLEdBQUFGLFVBQUE7RUFFbEMsSUFBTUcsY0FBYyxHQUFHdkYsYUFBYSxDQUFDbkMsSUFBSSxDQUFDO0VBQzFDLElBQU0ySCxlQUFlLEdBQUcvRyxPQUFPLENBQzdCO0lBQUEsT0FBTXdCLHFCQUFxQixDQUFDa0IsT0FBTyxDQUFDO0VBQUEsR0FDcEMsQ0FBQ0EsT0FBTyxDQUFDLENBQ1Y7RUFDRCxJQUFNc0UsY0FBYyxHQUFHaEgsT0FBTyxDQUM1QjtJQUFBLE9BQU1rQixtQkFBbUIsQ0FBQzZGLGVBQWUsQ0FBQztFQUFBLEdBQzFDLENBQUNBLGVBQWUsQ0FBQyxDQUNsQjtFQUNELElBQU1FLG1CQUFtQixHQUFHakgsT0FBTyxDQUNqQztJQUFBLE9BQ0V3RCxVQUFVLEdBQ052QyxrQkFBa0IsQ0FBQzhGLGVBQWUsRUFBRVAsZ0JBQWdCLEVBQUV2QixZQUFZLENBQUMsR0FDbkU4QixlQUFlO0VBQUEsQ0FDcEIsRUFDRCxDQUFDQSxlQUFlLEVBQUU5QixZQUFZLEVBQUV1QixnQkFBZ0IsRUFBRWhELFVBQVUsQ0FBQyxDQUM5RDtFQUNELElBQU0wRCxrQkFBa0IsR0FBR2xILE9BQU8sQ0FDaEM7SUFBQSxPQUFNa0IsbUJBQW1CLENBQUMrRixtQkFBbUIsQ0FBQztFQUFBLEdBQzlDLENBQUNBLG1CQUFtQixDQUFDLENBQ3RCO0VBQ0QsSUFBTUUsZUFBZSxHQUFHbkgsT0FBTyxDQUM3QjtJQUFBLE9BQU1xQixrQkFBa0IsQ0FBQzJGLGNBQWMsRUFBRWhCLFVBQVUsRUFBRTNDLFFBQVEsQ0FBQztFQUFBLEdBQzlELENBQUMyRCxjQUFjLEVBQUVoQixVQUFVLEVBQUUzQyxRQUFRLENBQUMsQ0FDdkM7RUFDRCxJQUFNK0QsYUFBYSxHQUFHcEgsT0FBTyxDQUFDLFlBQUs7SUFDakMsSUFBSW1ILGVBQWUsQ0FBQzNJLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDaEMsT0FBTyxJQUFJO0lBQ2I7SUFFQSxJQUFNNkksWUFBWSxHQUFHSCxrQkFBa0IsQ0FBQ0ksU0FBUyxDQUMvQyxVQUFDQyxNQUFNO01BQUEsT0FBS0EsTUFBTSxDQUFDNUUsS0FBSyxLQUFLd0UsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDeEUsS0FBSztJQUFBLEVBQ3REO0lBRUQsT0FBTzBFLFlBQVksSUFBSSxDQUFDLEdBQUdBLFlBQVksR0FBRyxJQUFJO0VBQ2hELENBQUMsRUFBRSxDQUFDRixlQUFlLEVBQUVELGtCQUFrQixDQUFDLENBQUM7RUFDekMsSUFBTU0sWUFBWSxHQUFHTCxlQUFlLENBQUMzSSxNQUFNLEdBQUcsQ0FBQztFQUMvQyxJQUFNaUosT0FBTyxHQUFHeEgsTUFBTSxDQUFrQyxFQUFFLENBQUM7RUFDM0QsSUFBTXlILGNBQWMsR0FBR3pILE1BQU0sQ0FBdUIsRUFBRSxDQUFDO0VBQ3ZELElBQU0wSCxXQUFXLEdBQUcxSCxNQUFNLENBQXdCLElBQUksQ0FBQztFQUN2RCxJQUFNMkgsVUFBVSxHQUFHM0gsTUFBTSxDQUEyQixJQUFJLENBQUM7RUFDekQsSUFBTTRILGNBQWMsR0FBRzVILE1BQU0sQ0FBMEIsSUFBSSxDQUFDO0VBRTVELElBQU02SCxnQkFBZ0IsR0FBRzFILGdCQUFnQixDQUFDLFVBQUMySCxJQUE4QixFQUFJO0lBQzNFSCxVQUFVLENBQUNJLE9BQU8sR0FBR0QsSUFBSTtJQUN6QixJQUFJM0MsR0FBRyxFQUFFO01BQ05BLEdBQTZDLENBQUM0QyxPQUFPLEdBQUdELElBQUk7SUFDL0Q7RUFDRixDQUFDLENBQUM7RUFFRixJQUFNRSxnQkFBZ0IsR0FBRzdILGdCQUFnQixDQUFDLFVBQUM4SCxRQUFpQixFQUFJO0lBQzlEN0IsWUFBWSxDQUFDNkIsUUFBUSxDQUFDO0lBQ3RCcEQsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUdvRCxRQUFRLENBQUM7RUFDMUIsQ0FBQyxDQUFDO0VBRUYsSUFBQUMsWUFBQSxHQUlJM0ksV0FBVyxDQUFvQjtNQUNqQ2dGLElBQUksRUFBRTRCLFNBQVM7TUFDZnRCLFlBQVksRUFBRW1ELGdCQUFnQjtNQUM5QkcsU0FBUyxFQUFFLGNBQWM7TUFDekJDLG9CQUFvQixFQUFFdkosVUFBVTtNQUNoQ3dKLFVBQVUsRUFBRSxDQUNWcEosTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNUSCxJQUFJLENBQUM7UUFBRXdKLE9BQU8sRUFBRTtNQUFDLENBQUUsQ0FBQyxFQUNwQnBKLEtBQUssQ0FBQztRQUFFb0osT0FBTyxFQUFFO01BQUMsQ0FBRSxDQUFDLEVBQ3JCbEosWUFBWSxDQUFDO1FBQ1htSixLQUFLLFdBQUxBLEtBQUtBLENBQUFDLElBQUEsRUFBcUM7VUFBQSxJQUFsQ0MsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7WUFBRUMsUUFBUSxHQUFBRixJQUFBLENBQVJFLFFBQVE7WUFBRUMsZUFBZSxHQUFBSCxJQUFBLENBQWZHLGVBQWU7VUFDdEMsSUFBTUMsYUFBYSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxHQUFHLEVBQUVELElBQUksQ0FBQ0UsR0FBRyxDQUFDcEUsYUFBYSxFQUFFZ0UsZUFBZSxDQUFDLENBQUM7VUFDN0UzSyxNQUFNLENBQUNnTCxNQUFNLENBQUNOLFFBQVEsQ0FBQ08sUUFBUSxDQUFDaEgsS0FBSyxFQUFFO1lBQ3JDaUgsS0FBSyxLQUFBQyxNQUFBLENBQUtWLEtBQUssQ0FBQ1csU0FBUyxDQUFDRixLQUFLLE9BQUk7WUFDbkNHLFNBQVMsS0FBQUYsTUFBQSxDQUFLUCxhQUFhO1VEN0duQixDQzhHVCxDQUFDO1FBQ0o7TUQ3R0ksQ0M4R0wsQ0FBQztJRDVHSixDQzhHRCxDQUFDO0lBdEJBVSxJQUFJLEdBQUFwQixZQUFBLENBQUpvQixJQUFJO0lBQ0pDLGNBQWMsR0FBQXJCLFlBQUEsQ0FBZHFCLGNBQWM7SUFDZEMsT0FBTyxHQUFBdEIsWUFBQSxDQUFQc0IsT0FBTztFQXNCVCxJQUFNQyxZQUFZLEdBQUd0SixnQkFBZ0IsQ0FBQyxVQUFDMkgsSUFBOEIsRUFBSTtJQUN2RXdCLElBQUksQ0FBQ0csWUFBWSxDQUFDM0IsSUFBSSxDQUFDO0lBQ3ZCRCxnQkFBZ0IsQ0FBQ0MsSUFBSSxDQUFDO0VBQ3hCLENBQUMsQ0FBQztFQUVGLElBQU00QixXQUFXLEdBQUd2SixnQkFBZ0IsQ0FBQyxVQUFDMkgsSUFBMkIsRUFBSTtJQUNuRXdCLElBQUksQ0FBQ0ksV0FBVyxDQUFDNUIsSUFBSSxDQUFDO0lBQ3RCSixXQUFXLENBQUNLLE9BQU8sR0FBR0QsSUFBSTtFQUM1QixDQUFDLENBQUM7RUFFRixJQUFNNkIsS0FBSyxHQUFHdEssUUFBUSxDQUFDbUssT0FBTyxFQUFFO0lBQUVJLE9BQU8sRUFBRSxDQUFDMUc7RUFBUSxDQUFFLENBQUM7RUFDdkQsSUFBTTJHLE9BQU8sR0FBR3ZLLFVBQVUsQ0FBQ2tLLE9BQU8sRUFBRTtJQUFFSSxPQUFPLEVBQUUsQ0FBQzFHLFFBQVE7SUFBRTRHLGlCQUFpQixFQUFFO0VBQVcsQ0FBRSxDQUFDO0VBQzNGLElBQU1DLElBQUksR0FBR3JLLE9BQU8sQ0FBQzhKLE9BQU8sRUFBRTtJQUFFTyxJQUFJLEVBQUU7RUFBUSxDQUFFLENBQUM7RUFDakQsSUFBTUMsY0FBYyxHQUFHdkssaUJBQWlCLENBQUMrSixPQUFPLEVBQUU7SUFDaERoQyxPQUFPLEVBQVBBLE9BQU87SUFDUGIsV0FBVyxFQUFYQSxXQUFXO0lBQ1hRLGFBQWEsRUFBYkEsYUFBYTtJQUNiOEMsVUFBVSxFQUFFckQsY0FBYztJQUMxQmdELE9BQU8sRUFBRXpELFNBQVM7SUFDbEIrRCxJQUFJLEVBQUU7RURoSE4sQ0NpSEQsQ0FBQztFQUNGLElBQU1DLFNBQVMsR0FBR3hLLFlBQVksQ0FBQzZKLE9BQU8sRUFBRTtJQUN0Q2hDLE9BQU8sRUFBRUMsY0FBYztJQUN2QmQsV0FBVyxFQUFYQSxXQUFXO0lBQ1hRLGFBQWEsRUFBYkEsYUFBYTtJQUNieUMsT0FBTyxFQUFFekQsU0FBUyxJQUFJLENBQUM1QyxVQUFVO0lBQ2pDNkcsT0FBTyxFQUFFeEQ7RURoSFQsQ0NpSEQsQ0FBQztFQUNGLElBQUF5RCxnQkFBQSxHQUE4RDdLLGVBQWUsQ0FBQyxDQUM1RW1LLEtBQUssRUFDTEUsT0FBTyxFQUNQRSxJQUFJLEVBQ0pDLGNBQWMsRUFDZEcsU0FBUyxDQUNWLENBQUM7SUFOTUcsaUJBQWlCLEdBQUFELGdCQUFBLENBQWpCQyxpQkFBaUI7SUFBRUMsZ0JBQWdCLEdBQUFGLGdCQUFBLENBQWhCRSxnQkFBZ0I7SUFBRUMsWUFBWSxHQUFBSCxnQkFBQSxDQUFaRyxZQUFZO0VBUXpELElBQU1DLGlCQUFpQixHQUFHMUssT0FBTyxDQUMvQjtJQUFBLE9BQU1rSCxrQkFBa0IsQ0FBQ0ksU0FBUyxDQUFDLFVBQUNDLE1BQU07TUFBQSxPQUFLLENBQUNBLE1BQU0sQ0FBQ3BFLFFBQVE7SUFBQSxFQUFDO0VBQUEsR0FDaEUsQ0FBQytELGtCQUFrQixDQUFDLENBQ3JCO0VBQ0QsSUFBTXlELGdCQUFnQixHQUFHM0ssT0FBTyxDQUM5QixZQUFLO0lEckhELElBQUk0SyxFQUFFO0lDc0hSLEtBQUssSUFBSUMsS0FBSyxHQUFHM0Qsa0JBQWtCLENBQUMxSSxNQUFNLEdBQUcsQ0FBQyxFQUFFcU0sS0FBSyxJQUFJLENBQUMsRUFBRUEsS0FBSyxJQUFJLENBQUMsRUFBRTtNQUN0RSxJQUFJLEVBQUMsQ0FBQUQsRUFBQSxHQUFBMUQsa0JBQWtCLENBQUMyRCxLQUFLLENBQUMsTUFBQSxJQUFBLElBQUFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFekgsUUFBUSxDQUFBLEVBQUU7UUFDeEMsT0FBTzBILEtBQUs7TUFDZDtJQUNGO0lBRUEsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxFQUNELENBQUMzRCxrQkFBa0IsQ0FBQyxDQUNyQjtFQUVEcEgsU0FBUyxDQUFDLFlBQUs7SUFDYixJQUFJLENBQUNzRyxTQUFTLEVBQUU7TUFDZFMsY0FBYyxDQUFDTyxhQUFhLENBQUM7TUFDN0I7SUFDRjtJQUVBUCxjQUFjLENBQUMsVUFBQ2lFLElBQUksRUFBSTtNQUN0QixJQUFJQSxJQUFJLEtBQUssSUFBSSxJQUFJNUQsa0JBQWtCLENBQUM0RCxJQUFJLENBQUMsSUFBSSxDQUFDNUQsa0JBQWtCLENBQUM0RCxJQUFJLENBQUMsQ0FBQzNILFFBQVEsRUFBRTtRQUNuRixPQUFPMkgsSUFBSTtNQUNiO01BRUEsSUFDRTFELGFBQWEsS0FBSyxJQUFJLElBQ3RCRixrQkFBa0IsQ0FBQ0UsYUFBYSxDQUFDLElBQ2pDLENBQUNGLGtCQUFrQixDQUFDRSxhQUFhLENBQUMsQ0FBQ2pFLFFBQVEsRUFDM0M7UUFDQSxPQUFPaUUsYUFBYTtNQUN0QjtNQUVBLE9BQU9zRCxpQkFBaUIsSUFBSSxDQUFDLEdBQUdBLGlCQUFpQixHQUFHLElBQUk7SUFDMUQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLENBQUNBLGlCQUFpQixFQUFFdEUsU0FBUyxFQUFFZ0IsYUFBYSxFQUFFRixrQkFBa0IsQ0FBQyxDQUFDO0VBRXJFcEgsU0FBUyxDQUFDLFlBQUs7SUQ5SFQsSUFBSThLLEVBQUU7SUMrSFYsSUFBSSxDQUFDeEUsU0FBUyxJQUFJUSxXQUFXLEtBQUssSUFBSSxJQUFJcEQsVUFBVSxFQUFFO01BQ3BEO0lBQ0Y7SUFFQSxDQUFBb0gsRUFBQSxHQUFBbkQsT0FBTyxDQUFDTyxPQUFPLENBQUNwQixXQUFXLENBQUMsTUFBQSxJQUFBLElBQUFnRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUcsS0FBSyxDQUFDO01BQUVDLGFBQWEsRUFBRTtJQUFJLENBQUUsQ0FBQztFQUM5RCxDQUFDLEVBQUUsQ0FBQ3BFLFdBQVcsRUFBRVIsU0FBUyxFQUFFNUMsVUFBVSxDQUFDLENBQUM7RUFFeEMxRCxTQUFTLENBQUMsWUFBSztJQUNiMkgsT0FBTyxDQUFDTyxPQUFPLEdBQUdQLE9BQU8sQ0FBQ08sT0FBTyxDQUFDaUQsS0FBSyxDQUFDLENBQUMsRUFBRS9ELGtCQUFrQixDQUFDMUksTUFBTSxDQUFDO0lBQ3JFa0osY0FBYyxDQUFDTSxPQUFPLEdBQUdOLGNBQWMsQ0FBQ00sT0FBTyxDQUFDaUQsS0FBSyxDQUFDLENBQUMsRUFBRS9ELGtCQUFrQixDQUFDMUksTUFBTSxDQUFDO0VBQ3JGLENBQUMsRUFBRSxDQUFDMEksa0JBQWtCLENBQUMxSSxNQUFNLENBQUMsQ0FBQztFQUUvQnNCLFNBQVMsQ0FBQyxZQUFLO0lEaElULElBQUk4SyxFQUFFO0lDaUlWLElBQUl4RSxTQUFTLElBQUk1QyxVQUFVLEVBQUU7TUFDM0IsQ0FBQW9ILEVBQUEsR0FBQS9DLGNBQWMsQ0FBQ0csT0FBTyxNQUFBLElBQUEsSUFBQTRDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRyxLQUFLLENBQUM7UUFBRUMsYUFBYSxFQUFFO01BQUksQ0FBRSxDQUFDO0lBQ3hEO0VBQ0YsQ0FBQyxFQUFFLENBQUM1RSxTQUFTLEVBQUU1QyxVQUFVLENBQUMsQ0FBQztFQUUzQixJQUFNMEgsbUJBQW1CLEdBQUc5SyxnQkFBZ0IsQ0FBQyxVQUFDK0ssYUFBaUMsRUFBRUMsS0FBK0IsRUFBSTtJRGhJOUcsSUFBSVIsRUFBRSxFQUFFUyxFQUFFO0lDaUlkLElBQU1DLFVBQVUsR0FBR0gsYUFBNEI7SUFDL0MsSUFBTUksYUFBYSxHQUFHLENBQUMsRUFBRUQsVUFBVSxLQUFJLENBQUFWLEVBQUEsR0FBQWhELFVBQVUsQ0FBQ0ksT0FBTyxNQUFBLElBQUEsSUFBQTRDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFWSxRQUFRLENBQUNGLFVBQVUsQ0FBQyxDQUFBLENBQUM7SUFDaEYsSUFBTUcsY0FBYyxHQUFHLENBQUMsRUFBRUgsVUFBVSxLQUFJLENBQUFELEVBQUEsR0FBQTFELFdBQVcsQ0FBQ0ssT0FBTyxNQUFBLElBQUEsSUFBQXFELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRyxRQUFRLENBQUNGLFVBQVUsQ0FBQyxDQUFBLENBQUM7SUFFbEYsSUFBSSxDQUFDQyxhQUFhLElBQUksQ0FBQ0UsY0FBYyxFQUFFO01BQ3JDekcsTUFBTSxLQUFBLElBQUEsSUFBTkEsTUFBTSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFOQSxNQUFNLENBQUdvRyxLQUFLLENBQUM7SUFDakI7RUFDRixDQUFDLENBQUM7RUFFRixJQUFNTSxpQkFBaUIsR0FBR3RMLGdCQUFnQixDQUFDLFVBQUNnTCxLQUFvQyxFQUFJO0lBQ2xGRixtQkFBbUIsQ0FBQ0UsS0FBSyxDQUFDRCxhQUFhLEVBQUVDLEtBQWdDLENBQUM7RUFDNUUsQ0FBQyxDQUFDO0VBRUYsSUFBTU8sZ0JBQWdCLEdBQUd2TCxnQkFBZ0IsQ0FBQyxVQUFDZ0wsS0FBb0MsRUFBSTtJQUNqRkYsbUJBQW1CLENBQUNFLEtBQUssQ0FBQ0QsYUFBYSxFQUFFQyxLQUFnQyxDQUFDO0VBQzVFLENBQUMsQ0FBQztFQUVGLElBQU1RLFlBQVksR0FBR3hMLGdCQUFnQixDQUFDLFVBQUN5TCxTQUFzQixFQUFFQyxVQUEwQyxFQUFJO0lBQzNHN0YsYUFBYSxDQUFDNEYsU0FBUyxDQUFDO0lBQ3hCaEgsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUdnSCxTQUFTLEVBQUVDLFVBQVUsQ0FBQztFQUNuQyxDQUFDLENBQUM7RUFFRixJQUFNQyxrQkFBa0IsR0FBRzNMLGdCQUFnQixDQUFDLFVBQUNtSCxNQUFvQixFQUFJO0lEcEkvRCxJQUFJcUQsRUFBRTtJQ3FJVixJQUFJckQsTUFBTSxDQUFDcEUsUUFBUSxFQUFFO01BQ25CO0lBQ0Y7SUFFQSxJQUFJRSxRQUFRLEVBQUU7TUFDWixJQUFNd0ksU0FBUyxHQUFHbkssbUJBQW1CLENBQUNzRSxVQUFVLEVBQUV1QixNQUFNLENBQUM1RSxLQUFLLENBQUM7TUFDL0QsSUFBTXFKLFdBQVcsR0FBRzVLLGtCQUFrQixDQUFDNEYsY0FBYyxFQUFFNkUsU0FBUyxDQUFDO01BQ2pFRCxZQUFZLENBQUNDLFNBQVMsRUFBRUcsV0FBVyxDQUFDO01BQ3BDO0lBQ0Y7SUFFQUosWUFBWSxDQUFDckUsTUFBTSxDQUFDNUUsS0FBSyxFQUFFNEUsTUFBTSxDQUFDO0lBQ2xDVSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDdkJqRCxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBQSxDQUFJO0lBQ1YsQ0FBQTRGLEVBQUEsR0FBQWhELFVBQVUsQ0FBQ0ksT0FBTyxNQUFBLElBQUEsSUFBQTRDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRyxLQUFLLENBQUM7TUFBRUMsYUFBYSxFQUFFO0lBQUksQ0FBRSxDQUFDO0VBQ3BELENBQUMsQ0FBQztFQUVGLElBQU1pQix5QkFBeUIsR0FBRzdMLGdCQUFnQixDQUFDLFVBQUM4TCxXQUE4QixFQUFJO0lBQ3BGLElBQUksQ0FBQzdJLFFBQVEsRUFBRTtNQUNiO0lBQ0Y7SUFFQSxJQUFJLENBQUNsQyxnQkFBZ0IsQ0FBQzZFLFVBQVUsQ0FBQyxDQUFDbUcsUUFBUSxDQUFDRCxXQUFXLENBQUMsRUFBRTtNQUN2RDtJQUNGO0lBRUEsSUFBTUwsU0FBUyxHQUFHcEssbUJBQW1CLENBQUN1RSxVQUFVLEVBQUVrRyxXQUFXLENBQUM7SUFDOUQsSUFBTUYsV0FBVyxHQUFHNUssa0JBQWtCLENBQUM0RixjQUFjLEVBQUU2RSxTQUFTLENBQUM7SUFDakVELFlBQVksQ0FBQ0MsU0FBUyxFQUFFRyxXQUFXLENBQUM7RUFDdEMsQ0FBQyxDQUFDO0VBRUYsSUFBTUksb0JBQW9CLEdBQUdoTSxnQkFBZ0IsQ0FBQyxVQUFDZ0wsS0FBNEMsRUFBSTtJQUM3RixJQUFJakksUUFBUSxFQUFFO01BQ1o7SUFDRjtJQUVBLElBQUlpSSxLQUFLLENBQUNpQixHQUFHLEtBQUssT0FBTyxJQUFJakIsS0FBSyxDQUFDaUIsR0FBRyxLQUFLLEdBQUcsRUFBRTtNQUM5Q2pCLEtBQUssQ0FBQ2tCLGNBQWMsQ0FBQSxDQUFFO01BQ3RCckUsZ0JBQWdCLENBQUMsQ0FBQzdCLFNBQVMsQ0FBQztNQUM1QjtJQUNGO0lBRUEsSUFBSWdGLEtBQUssQ0FBQ2lCLEdBQUcsS0FBSyxXQUFXLElBQUlqQixLQUFLLENBQUNpQixHQUFHLEtBQUssU0FBUyxFQUFFO01BQ3hEakIsS0FBSyxDQUFDa0IsY0FBYyxDQUFBLENBQUU7TUFDdEIsSUFBSSxDQUFDbEcsU0FBUyxFQUFFO1FBQ2Q2QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7TUFDeEI7SUFDRjtFQUNGLENBQUMsQ0FBQztFQUVGLElBQU1zRSxvQkFBb0IsR0FBR25NLGdCQUFnQixDQUFDLFVBQUN5SyxLQUFhLEVBQUk7SUQ1STFELElBQUlELEVBQUU7SUM2SVYsSUFBSSxFQUFDLENBQUFBLEVBQUEsR0FBQTFELGtCQUFrQixDQUFDMkQsS0FBSyxDQUFDLE1BQUEsSUFBQSxJQUFBRCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXpILFFBQVEsQ0FBQSxFQUFFO01BQ3hDMEQsY0FBYyxDQUFDZ0UsS0FBSyxDQUFDO0lBQ3ZCO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsSUFBTTJCLHdCQUF3QixHQUFHcE0sZ0JBQWdCLENBQUMsVUFBQ2dMLEtBQXVDLEVBQUk7SUFDNUZBLEtBQUssQ0FBQ2tCLGNBQWMsQ0FBQSxDQUFFO0lBQ3RCbEIsS0FBSyxDQUFDcUIsZUFBZSxDQUFBLENBQUU7RUFDekIsQ0FBQyxDQUFDO0VBRUYsSUFBTUMsb0JBQW9CLEdBQUd0TSxnQkFBZ0IsQ0FBQyxVQUFDZ0wsS0FBdUMsRUFBSTtJQUN4RkEsS0FBSyxDQUFDa0IsY0FBYyxDQUFBLENBQUU7SUFDdEJsQixLQUFLLENBQUNxQixlQUFlLENBQUEsQ0FBRTtFQUN6QixDQUFDLENBQUM7RUFFRixJQUFNRSxnQkFBZ0IsR0FBR3ZNLGdCQUFnQixDQUFDLFVBQUNnTCxLQUFtQyxFQUFJO0lBQ2hGRixtQkFBbUIsQ0FBQ0UsS0FBSyxDQUFDRCxhQUFhLEVBQUVDLEtBQWdDLENBQUM7RUFDNUUsQ0FBQyxDQUFDO0VBRUYsSUFBTXdCLGtCQUFrQixHQUFHeE0sZ0JBQWdCLENBQUMsVUFBQ3lMLFNBQWlCLEVBQUVnQixNQUFxQyxFQUFJO0lBQ3ZHcEcsbUJBQW1CLENBQUNvRixTQUFTLENBQUM7SUFDOUI5RyxjQUFjLEtBQUEsSUFBQSxJQUFkQSxjQUFjLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQWRBLGNBQWMsQ0FBRzhHLFNBQVMsQ0FBQztFQUM3QixDQUFDLENBQUM7RUFFRixJQUFNaUIsbUJBQW1CLEdBQUcxTSxnQkFBZ0IsQ0FBQyxVQUFDZ0wsS0FBMkMsRUFBSTtJRGhKdkYsSUFBSVIsRUFBRSxFQUFFUyxFQUFFLEVBQUUwQixFQUFFO0lDaUpsQixJQUFJM0IsS0FBSyxDQUFDaUIsR0FBRyxLQUFLLFdBQVcsSUFBSTNCLGlCQUFpQixJQUFJLENBQUMsRUFBRTtNQUN2RFUsS0FBSyxDQUFDa0IsY0FBYyxDQUFBLENBQUU7TUFDdEJ6RixjQUFjLENBQUM2RCxpQkFBaUIsQ0FBQztNQUNqQyxDQUFBRSxFQUFBLEdBQUFuRCxPQUFPLENBQUNPLE9BQU8sQ0FBQzBDLGlCQUFpQixDQUFDLE1BQUEsSUFBQSxJQUFBRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUcsS0FBSyxDQUFDO1FBQUVDLGFBQWEsRUFBRTtNQUFJLENBQUUsQ0FBQztNQUNsRTtJQUNGO0lBRUEsSUFBSUksS0FBSyxDQUFDaUIsR0FBRyxLQUFLLFNBQVMsSUFBSTFCLGdCQUFnQixLQUFLLElBQUksRUFBRTtNQUN4RFMsS0FBSyxDQUFDa0IsY0FBYyxDQUFBLENBQUU7TUFDdEJ6RixjQUFjLENBQUM4RCxnQkFBZ0IsQ0FBQztNQUNoQyxDQUFBVSxFQUFBLEdBQUE1RCxPQUFPLENBQUNPLE9BQU8sQ0FBQzJDLGdCQUFnQixDQUFDLE1BQUEsSUFBQSxJQUFBVSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRU4sS0FBSyxDQUFDO1FBQUVDLGFBQWEsRUFBRTtNQUFJLENBQUUsQ0FBQztNQUNqRTtJQUNGO0lBRUEsSUFBSUksS0FBSyxDQUFDaUIsR0FBRyxLQUFLLFFBQVEsRUFBRTtNQUMxQmpCLEtBQUssQ0FBQ2tCLGNBQWMsQ0FBQSxDQUFFO01BQ3RCckUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO01BQ3ZCLENBQUE4RSxFQUFBLEdBQUFuRixVQUFVLENBQUNJLE9BQU8sTUFBQSxJQUFBLElBQUErRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRWhDLEtBQUssQ0FBQztRQUFFQyxhQUFhLEVBQUU7TUFBSSxDQUFFLENBQUM7SUFDcEQ7RUFDRixDQUFDLENBQUM7RUFFRixJQUFNZ0MsZUFBZSxHQUEwQjtJQUM3QzdKLFFBQVEsRUFBUkEsUUFBUTtJQUNSRSxRQUFRLEVBQVJBLFFBQVE7SUFDUkMsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJrQixJQUFJLEVBQUU0QixTQUFTO0lBQ2Y1RCxXQUFXLEVBQUUsQ0FBQ2dGLFlBQVk7SUFDMUJMLGVBQWUsRUFBZkE7RURsSkEsQ0NtSkQ7RUFDRCxJQUFNOEYsZUFBZSxHQUFHekYsWUFBWSxHQUFHLE9BQU8sR0FBRyxhQUFhO0VBQzlELElBQU0wRixxQkFBcUIsR0FDekI3SixRQUFRLElBQ1JtRSxZQUFZLElBQ1psRSxnQkFBZ0IsS0FBS3VDLFNBQ3RCO0VBQ0QsSUFBTXNILGdCQUFnQixHQUFHN0gsT0FBTyxDQUM5QixTQUFTLEVBQ1Q5RSxPQUFPLENBQ0w4RSxPQUFPLFlBQUE4RCxNQUFBLENBQVl0QyxjQUFjLENBQUUsQ0FBQyxFQUNwQ3hCLE9BQU8sWUFBQThELE1BQUEsQ0FBWW5HLE9BQU8sQ0FBRSxDQUFDLEVBQzdCbUQsU0FBUyxJQUFJZCxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQ3BDNEgscUJBQXFCLElBQUk1SCxPQUFPLENBQUMseUJBQXlCLENBQUMsRUFDM0RrQyxZQUFZLEdBQUdsQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBR0EsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQ3pFdkMsTUFBTSxLQUFLLFNBQVMsSUFBSXVDLE9BQU8sWUFBQThELE1BQUEsQ0FBWXJHLE1BQU0sQ0FBRSxDQUFDLEVBQ3BESSxRQUFRLElBQUltQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FDeEMsQ0FDRjtFQUNELElBQU04SCxRQUFRLEdBQUd0RyxjQUFjLEtBQUssT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFO0VBQ3JELElBQU11RyxzQkFBc0IsR0FBRy9LLGNBQWMsS0FBQSxJQUFBLElBQWRBLGNBQWMsS0FBQSxLQUFBLENBQUEsR0FBZEEsY0FBYyxHQUFLd0IsS0FBSyxHQUFHMkIsT0FBTyxHQUFHSSxTQUFVO0VBQzlFLElBQU15SCxjQUFjLEdBQUcsQ0FDckJ0SixXQUFXLEdBQUcwQixhQUFhLEdBQUcsSUFBSSxFQUNsQ3pCLFFBQVEsR0FBRzBCLFVBQVUsR0FBRyxJQUFJLENBQzdCLENBQUM0SCxNQUFNLENBQUNDLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUk1SCxTQUFTO0VBRXhDLE9BQ0VoSCxLQUFBLENBQUM4QixnQkFBZ0IsRUFBQTtJQUNmMkUsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCdkQsU0FBUyxFQUFFQSxTQUFTO0lBQ3BCM0MsSUFBSSxFQUFFMEgsY0FBYztJQUNwQjdELE9BQU8sRUFBRUEsT0FBTztJQUNoQkYsTUFBTSxFQUFFQSxNQUFNO0lBQ2RJLFFBQVEsRUFBRUEsUUFBUTtJQUNsQlcsS0FBSyxFQUFFQSxLQUFLO0lBQ1pDLElBQUksRUFBRUEsSUFBSTtJQUNWQyxXQUFXLEVBQUVBLFdBQVc7SUFDeEJDLFFBQVEsRUFBRUEsUUFBUTtJQUNsQkUsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCc0IsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCQyxhQUFhLEVBQUVBLGFBQWE7SUFDNUJDLFVBQVUsRUFBRUEsVUFBVTtJQUFBK0gsUUFBQSxFQUFBLENBRXRCN08sS0FBQSxDQUFBLFFBQUEsRUFBQVosTUFBQSxDQUFBZ0wsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNNc0IsaUJBQWlCLENBQUM7TUFDcEJuRixHQUFHLEVBQUVzRSxZQUFZO01BQ2pCdkgsRUFBRSxFQUFFcUQsU0FBUztNQUNibUksSUFBSSxFQUFFLFFBQVE7TUFDZHZMLElBQUksRUFBSkEsSUFBSTtNQUNKZSxRQUFRLEVBQVJBLFFBQVE7TUFDUnBCLFNBQVMsRUFBRW9MLGdCQUFnQjtNQUMzQlMsU0FBUyxFQUFFeEIsb0JBQW9CO01BQy9CcEgsTUFBTSxFQUFFMEcsaUJBQWlCO01BQ3pCLFlBQVksRUFBRXJKLFNBQVM7TUFDdkIsaUJBQWlCLEVBQUVnTCxzQkFBc0I7TUFDekMsa0JBQWtCLEVBQUVDO0lEbExsQixDQ21MSCxDQUFDLEVBQUE7TUFBQUksUUFBQSxFQUFBLENBRUY3TyxLQUFBLENBQUEsTUFBQSxFQUFBO1FBQU1rRCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQUFvSSxRQUFBLEVBQUEsQ0FDaEN0SixNQUFNLElBQUl6RixJQUFBLENBQUEsTUFBQSxFQUFBO1VBQU1vRCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsUUFBUSxDQUFDO1VBQUFvSSxRQUFBLEVBQUd0SjtRQUFNLENBQUEsQ0FBUSxFQUM5RHpGLElBQUEsQ0FBQSxNQUFBLEVBQUE7VUFDRW9ELFNBQVMsRUFBRXVELE9BQU8sQ0FDaEIySCxlQUFlLEVBQ2Z6TSxPQUFPLENBQ0w4RSxPQUFPLElBQUE4RCxNQUFBLENBQUk2RCxlQUFlLE9BQUE3RCxNQUFBLENBQUl0QyxjQUFjLENBQUUsQ0FBQyxFQUMvQ29HLHFCQUFxQixJQUFJNUgsT0FBTyxJQUFBOEQsTUFBQSxDQUFJNkQsZUFBZSxjQUFXLENBQUMsRUFDL0Q5SixRQUFRLElBQUltQyxPQUFPLElBQUE4RCxNQUFBLENBQUk2RCxlQUFlLGNBQVcsQ0FBQyxDQUNuRCxDQUNGO1VBQUFTLFFBQUEsRUFFRC9PLElBQUEsQ0FBQ21DLGtCQUFrQixFQUFBO1lBQ2pCd0UsT0FBTyxFQUFFQSxPQUFPO1lBQ2hCa0MsWUFBWSxFQUFFQSxZQUFZO1lBQzFCbkUsUUFBUSxFQUFFQSxRQUFRO1lBQ2xCYixXQUFXLEVBQUVBLFdBQVc7WUFDeEIyQyxXQUFXLEVBQUVBLFdBQVc7WUFDeEI2SCxlQUFlLEVBQUVBLGVBQWU7WUFDaEM3RixlQUFlLEVBQUVBLGVBQWU7WUFDaEM3RCxnQkFBZ0IsRUFBRUEsZ0JBQWdCO1lBQ2xDdUssUUFBUSxFQUFFNUIseUJBQXlCO1lBQ25DNkIsYUFBYSxFQUFFcEIsb0JBQW9CO1lBQ25DcUIsaUJBQWlCLEVBQUV2QjtVQUF3QixDQUFBO1FBQzNDLENBQUEsQ0FDRztNQUFBLENBQUEsQ0FDRixFQUNQN04sSUFBQSxDQUFBLE1BQUEsRUFBQTtRQUFNb0QsU0FBUyxFQUFFdUQsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUFBb0ksUUFBQSxFQUM5Qi9PLElBQUEsQ0FBQzBCLEtBQUssRUFBQTtVQUNKK0IsSUFBSSxFQUFFZ0UsU0FBUyxHQUFHLFdBQVcsR0FBRyxhQUFhO1VBQzdDaEgsSUFBSSxFQUFFZ08sUUFBUTtVQUNkWSxLQUFLLEVBQUM7UUFBYyxDQUFBO01BQ3BCLENBQUEsQ0FDRztJQUFBLENBQUEsQ0FBQSxDQUNBLEVBRVI1SCxTQUFTLElBQUksQ0FBQ2pELFFBQVEsSUFDckJ4RSxJQUFBLENBQUNNLGNBQWMsRUFBQTtNQUFBeU8sUUFBQSxFQUNiL08sSUFBQSxDQUFDSyxvQkFBb0IsRUFBQTtRQUFDeUssT0FBTyxFQUFFQSxPQUFPO1FBQUV3RSxLQUFLLEVBQUUsS0FBSztRQUFFQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQUVDLFdBQVcsRUFBRSxLQUFLO1FBQUFULFFBQUEsRUFDeEY3TyxLQUFBLENBQUEsS0FBQSxFQUFBWixNQUFBLENBQUFnTCxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ011QixnQkFBZ0IsQ0FBQztVQUNuQnBGLEdBQUcsRUFBRXVFLFdBQVc7VUFDaEI1SCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsT0FBTyxDQUFDO1VBQzNCcEQsS0FBSyxFQUFFc0g7UUQ1TkgsQ0M2TkwsQ0FBQyxFQUFBO1VBQUFrRSxRQUFBLEVBQUEsQ0FFRGxLLFVBQVUsSUFDVDdFLElBQUEsQ0FBQ2tDLG1CQUFtQixFQUFBO1lBQ2xCdUUsR0FBRyxFQUFFeUMsY0FBYztZQUNuQnZDLE9BQU8sRUFBRUEsT0FBTztZQUNoQjlDLFdBQVcsRUFBRWtCLGlCQUFpQjtZQUM5QmYsS0FBSyxFQUFFNkQsZ0JBQWdCO1lBQ3ZCeEIsTUFBTSxFQUFFMkgsZ0JBQWdCO1lBQ3hCOUgsUUFBUSxFQUFFK0gsa0JBQWtCO1lBQzVCZ0IsU0FBUyxFQUFFZDtVQUFtQixDQUFBLENBRWpDLEVBQ0RuTyxJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUtvRCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQUFvSSxRQUFBLEVBQ2xDeEcsa0JBQWtCLENBQUMxSSxNQUFNLEtBQUssQ0FBQyxHQUM5QkcsSUFBQSxDQUFBLEtBQUEsRUFBQTtjQUFLb0QsU0FBUyxFQUFFdUQsT0FBTyxDQUFDLE9BQU8sQ0FBQztjQUFBb0ksUUFBQSxFQUM5Qi9PLElBQUEsQ0FBQzJCLGNBQWMsRUFBQTtnQkFBQ2xCLElBQUksRUFBRTJCLGlCQUFpQixDQUFDcU4sS0FBSyxDQUFDaFAsSUFBSTtnQkFBRTRPLEtBQUssRUFBRWpOLGlCQUFpQixDQUFDcU4sS0FBSyxDQUFDSixLQUFLO2dCQUFBTixRQUFBLEVBQUdwSjtjQUFZLENBQUE7WUFBa0IsQ0FBQSxDQUNySCxHQUVMLFlBQUs7Y0FDSixJQUFJK0osU0FBUyxHQUFHLENBQUM7Y0FFakIsT0FBT3BILG1CQUFtQixDQUFDcUgsR0FBRyxDQUFDLFVBQUNDLEtBQUs7Z0JBQUEsT0FDbkMxUCxLQUFBLENBQUEsS0FBQSxFQUFBO2tCQUFxQmtELFNBQVMsRUFBRXVELE9BQU8sQ0FBQyxPQUFPLENBQUM7a0JBQUFvSSxRQUFBLEVBQUEsQ0FDN0NhLEtBQUssQ0FBQ3pLLEtBQUssSUFDVm5GLElBQUEsQ0FBQSxLQUFBLEVBQUE7b0JBQUtvRCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsYUFBYSxDQUFDO29CQUFBb0ksUUFBQSxFQUNwQy9PLElBQUEsQ0FBQzRCLGVBQWUsRUFBQTtzQkFBQ25CLElBQUksRUFBRTJCLGlCQUFpQixDQUFDeU4sVUFBVSxDQUFDcFAsSUFBSTtzQkFBRXFQLE1BQU0sRUFBQSxJQUFBO3NCQUFBZixRQUFBLEVBQUVhLEtBQUssQ0FBQ3pLO29CQUFLLENBQUE7a0JBQW1CLENBQUEsQ0FFbkcsRUFDQXlLLEtBQUssQ0FBQzdMLE9BQU8sQ0FBQzRMLEdBQUcsQ0FBQyxVQUFDL0csTUFBTSxFQUFJO29CQUM1QixJQUFNbUgsZUFBZSxHQUFHTCxTQUFTO29CQUNqQ0EsU0FBUyxJQUFJLENBQUM7b0JBRWQsSUFBTU0sUUFBUSxHQUFHck4sZ0JBQWdCLENBQUMwRSxVQUFVLEVBQUUzQyxRQUFRLEVBQUVrRSxNQUFNLENBQUM1RSxLQUFLLENBQUM7b0JBQ3JFLElBQU1pTSxNQUFNLEdBQUdoSSxXQUFXLEtBQUs4SCxlQUFlO29CQUM5QyxJQUFNRyxVQUFVLEdBQTJCO3NCQUN6Q0QsTUFBTSxFQUFOQSxNQUFNO3NCQUNOekwsUUFBUSxFQUFFLENBQUMsQ0FBQ29FLE1BQU0sQ0FBQ3BFLFFBQVE7c0JBQzNCMEgsS0FBSyxFQUFFNkQsZUFBZTtzQkFDdEJyTCxRQUFRLEVBQVJBLFFBQVE7c0JBQ1JtQixJQUFJLEVBQUU0QixTQUFTO3NCQUNmdUksUUFBUSxFQUFSQTtvQkR4UG9CLENDeVByQjtvQkFFRGpILGNBQWMsQ0FBQ00sT0FBTyxDQUFDMEcsZUFBZSxDQUFDLEdBQUcxTixpQkFBaUIsQ0FBQ3VHLE1BQU0sQ0FBQztvQkFFbkUsT0FDRTVJLElBQUEsQ0FBQSxRQUFBLEVBQUFWLE1BQUEsQ0FBQWdMLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFFTXdCLFlBQVksQ0FBQztzQkFDZnJGLEdBQUcsV0FBSEEsR0FBR0EsQ0FBQzJDLElBQThCLEVBQUE7d0JBQ2hDTixPQUFPLENBQUNPLE9BQU8sQ0FBQzBHLGVBQWUsQ0FBQyxHQUFHM0csSUFBSTtzQkFDekMsQ0FBQztzQkFDRDRGLElBQUksRUFBRSxRQUFRO3NCQUNkM0QsSUFBSSxFQUFFLFFBQVE7c0JBQ2RqSSxTQUFTLEVBQUV1RCxPQUFPLENBQ2hCLFFBQVEsRUFDUjlFLE9BQU8sQ0FDTG9PLE1BQU0sSUFBSXRKLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDbENxSixRQUFRLElBQUlySixPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDdENpQyxNQUFNLENBQUNwRSxRQUFRLElBQUltQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FDOUMsQ0FDRjtzQkFDRG5DLFFBQVEsRUFBRW9FLE1BQU0sQ0FBQ3BFLFFBQVE7c0JBQ3pCLGVBQWUsRUFBRXdMLFFBQVE7c0JBQ3pCRyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBRzFELEtBQXlDLEVBQUk7d0JBQ3JEQSxLQUFLLENBQUNrQixjQUFjLENBQUEsQ0FBRTt3QkFDdEJQLGtCQUFrQixDQUFDeEUsTUFBTSxDQUFDO3NCQUM1QixDQUFDO3NCQUNEd0gsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7d0JBQUEsT0FBUXhDLG9CQUFvQixDQUFDbUMsZUFBZSxDQUFDO3NCQUFBO3NCQUN6RDFKLE1BQU0sRUFBRTJHO29CRHBRUSxDQ3FRakIsQ0FBQyxFQUFBO3NCQUFBK0IsUUFBQSxFQUVEeEksWUFBWSxHQUNYQSxZQUFZLENBQUNxQyxNQUFNLEVBQUVzSCxVQUFVLENBQUMsR0FFaENsUSxJQUFBLENBQUNpQyxtQkFBbUIsRUFBQTt3QkFDbEIwRSxPQUFPLEVBQUVBLE9BQU87d0JBQ2hCaUMsTUFBTSxFQUFFQSxNQUFNO3dCQUNkb0gsUUFBUSxFQUFFQTtzQkFBUSxDQUFBO29CQUVyQixDQUFBLENBQUEsRUFqQ0lwSCxNQUFNLENBQUM1RSxLQUFLLENBa0NWO2tCQUViLENBQUMsQ0FBQztnQkFBQSxDQUFBLEVBN0RNNEwsS0FBSyxDQUFDbEMsR0FBRyxDQThEYjtjQUFBLENBQ1AsQ0FBQztZQUNKLENBQUMsQ0FBQztVQUNILENBQUEsQ0FDRyxFQUNMOUgsV0FBVyxJQUFJLElBQUksSUFDbEI1RixJQUFBLENBQUEsS0FBQSxFQUFBO1lBQUtvRCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUFvSSxRQUFBLEVBQUduSjtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBO0lBQ2UsQ0FBQSxDQUUxQjtFQUFBLENBQUEsQ0FDZ0I7QUFFdkIsQ0FBQztBQUVEM0MsTUFBTSxDQUFDb04sV0FBVyxHQUFHLFFBQVE7QUFFN0IsNEJBQWVuUCxJQUFJLENBQUMrQixNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9ICdWYWx1ZScsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlclZhbHVlLCByZWYgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJzdHlsZVwiLCBcImlkXCIsIFwibmFtZVwiLCAnYXJpYS1sYWJlbCcsICdhcmlhLWxhYmVsbGVkYnknLCBcInBsYWNlaG9sZGVyXCIsIFwib3B0aW9uc1wiLCBcInZhbHVlXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwic2l6ZVwiLCBcInN0YXR1c1wiLCBcInZhcmlhbnRcIiwgXCJkaXNhYmxlZFwiLCBcIm11bHRpcGxlXCIsIFwibWF4VmlzaWJsZVZhbHVlc1wiLCBcInNlYXJjaGFibGVcIiwgXCJzZWFyY2hQbGFjZWhvbGRlclwiLCBcInNlYXJjaFZhbHVlXCIsIFwiZGVmYXVsdFNlYXJjaFZhbHVlXCIsIFwibGFiZWxcIiwgXCJpbmZvXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJmZWVkYmFja1wiLCBcInJlcXVpcmVkXCIsIFwicHJlZml4XCIsIFwiZW1wdHlDb250ZW50XCIsIFwicGFuZWxGb290ZXJcIiwgXCJvcGVuXCIsIFwiZGVmYXVsdE9wZW5cIiwgXCJsaXN0TWF4SGVpZ2h0XCIsIFwib25DaGFuZ2VcIiwgXCJvbk9wZW5DaGFuZ2VcIiwgXCJvblNlYXJjaENoYW5nZVwiLCBcIm9uQmx1clwiLCBcImZpbHRlck9wdGlvblwiLCBcInJlbmRlck9wdGlvblwiLCBcInJlbmRlclZhbHVlXCIsIFwicmVmXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyT3Blbiwgc2V0SW5uZXJPcGVuXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0T3Blbiwgb3Blbik7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wZW5DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBzZXRJbm5lck9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMsIGNvbnRleHQsIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlOiBoYW5kbGVPcGVuQ2hhbmdlLFxuICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20tc3RhcnQnLFxuICAgICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICAgICAgbWlkZGxld2FyZTogW1xuICAgICAgICAgICAgb2Zmc2V0KDApLFxuICAgICAgICAgICAgZmxpcCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBmbG9hdGluZ1NpemUoe1xuICAgICAgICAgICAgICAgIGFwcGx5KHsgcmVjdHMsIGVsZW1lbnRzLCBhdmFpbGFibGVIZWlnaHQgfSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0TWF4SGVpZ2h0ID0gTWF0aC5tYXgoMTIwLCBNYXRoLm1pbihsaXN0TWF4SGVpZ2h0LCBhdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3JlY3RzLnJlZmVyZW5jZS53aWR0aH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IGAke25leHRNYXhIZWlnaHR9cHhgLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgY2xpY2sgPSB1c2VDbGljayhjb250ZXh0LCB7IGVuYWJsZWQ6ICFkaXNhYmxlZCB9KTtcbiAgICBjb25zdCBkaXNtaXNzID0gdXNlRGlzbWlzcyhjb250ZXh0LCB7IGVuYWJsZWQ6ICFkaXNhYmxlZCwgb3V0c2lkZVByZXNzRXZlbnQ6ICdtb3VzZWRvd24nIH0pO1xuICAgIGNvbnN0IHJvbGUgPSB1c2VSb2xlKGNvbnRleHQsIHsgcm9sZTogJ3NlbGVjdCcgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIGNsaWNrLFxuICAgICAgICBkaXNtaXNzLFxuICAgICAgICByb2xlLFxuICAgICAgICBsaXN0TmF2aWdhdGlvbixcbiAgICAgICAgdHlwZWFoZWFkLFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpLCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgbGFzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4IC09IDEpIHtcbiAgICAgICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRBY3RpdmVJbmRleCgocHJldikgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwgJiYgdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdICYmICF2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0RW5hYmxlZEluZGV4ID49IDAgPyBmaXJzdEVuYWJsZWRJbmRleCA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH0sIFtmaXJzdEVuYWJsZWRJbmRleCwgaW5uZXJPcGVuLCBzZWxlY3RlZEluZGV4LCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghaW5uZXJPcGVuIHx8IGFjdGl2ZUluZGV4ID09PSBudWxsIHx8IHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbYWN0aXZlSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0sIFthY3RpdmVJbmRleCwgaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGlzdFJlZi5jdXJyZW50ID0gbGlzdFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50ID0gbGlzdENvbnRlbnRSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aF0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlubmVyT3BlbiAmJiBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICAoX2EgPSBzZWFyY2hJbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSwgW2lubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IG5vdGlmeUJsdXJJZk91dHNpZGUgPSB1c2VFdmVudENhbGxiYWNrKChyZWxhdGVkVGFyZ2V0LCBldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBuZXh0VGFyZ2V0ID0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgY29uc3Qgd2l0aGluVHJpZ2dlciA9ICEhKG5leHRUYXJnZXQgJiYgKChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGNvbnN0IHdpdGhpbkZsb2F0aW5nID0gISEobmV4dFRhcmdldCAmJiAoKF9iID0gZmxvYXRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGlmICghd2l0aGluVHJpZ2dlciAmJiAhd2l0aGluRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihldmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wdGlvbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21taXRDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIG5leHRPcHRpb24pID0+IHtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9uKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb21taXRDaGFuZ2Uob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyAmJiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoZmlyc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2ZpcnN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgJiYgbGFzdEVuYWJsZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGxhc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9iID0gbGlzdFJlZi5jdXJyZW50W2xhc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSldIH0pKSwgaW5uZXJPcGVuICYmICFkaXNhYmxlZCAmJiAoX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBmbG9hdGluZ1N0eWxlcyxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJykpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiByZW5kZXJPcHRpb24gPyAocmVuZGVyT3B0aW9uKG9wdGlvbiwgb3B0aW9uTWV0YSkpIDogKF9qc3goU2VsZWN0T3B0aW9uQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBvcHRpb246IG9wdGlvbiwgc2VsZWN0ZWQ6IHNlbGVjdGVkIH0pKSB9KSwgb3B0aW9uLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXSB9LCBncm91cC5rZXkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkpIH0pLCBwYW5lbEZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1mb290ZXInKSwgY2hpbGRyZW46IHBhbmVsRm9vdGVyIH0pKV0gfSkpIH0pIH0pKV0gfSkpO1xufTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9ICdTZWxlY3QnO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3QpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -3,7 +3,7 @@ import { memo } from 'react';
|
|
|
3
3
|
import { Icons } from '../Icons';
|
|
4
4
|
import { TypographyBody, TypographyLabel } from '../Typography';
|
|
5
5
|
import { joinCls } from '../../utils/classnames';
|
|
6
|
-
import {
|
|
6
|
+
import { SELECT_TYPOGRAPHY } from './constants';
|
|
7
7
|
var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
|
|
8
8
|
var children = _ref.children,
|
|
9
9
|
classes = _ref.classes,
|
|
@@ -22,8 +22,8 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
|
|
|
22
22
|
labelId = _ref.labelId,
|
|
23
23
|
descriptionId = _ref.descriptionId,
|
|
24
24
|
feedbackId = _ref.feedbackId;
|
|
25
|
-
var labelColor = disabled ?
|
|
26
|
-
var descriptionColor = disabled ?
|
|
25
|
+
var labelColor = disabled ? SELECT_TYPOGRAPHY.label.color.disabled : SELECT_TYPOGRAPHY.label.color["default"];
|
|
26
|
+
var descriptionColor = disabled ? SELECT_TYPOGRAPHY.description.color.disabled : SELECT_TYPOGRAPHY.description.color["default"];
|
|
27
27
|
var feedbackClass = classes('feedback', joinCls(status !== 'default' && classes("feedback-".concat(status)), disabled && classes('feedback-disabled')));
|
|
28
28
|
return _jsxs("div", {
|
|
29
29
|
className: classes(undefined, joinCls(classes(size), classes(variant), status !== 'default' && classes(status), disabled && classes('disabled'), className)),
|
|
@@ -32,7 +32,7 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
|
|
|
32
32
|
children: [label && _jsxs(TypographyLabel, {
|
|
33
33
|
id: labelId,
|
|
34
34
|
className: classes('label-text'),
|
|
35
|
-
size:
|
|
35
|
+
size: SELECT_TYPOGRAPHY.label.size,
|
|
36
36
|
strong: true,
|
|
37
37
|
color: labelColor,
|
|
38
38
|
children: [label, required && _jsx("span", {
|
|
@@ -47,7 +47,7 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
|
|
|
47
47
|
id: descriptionId,
|
|
48
48
|
className: classes('description-text'),
|
|
49
49
|
as: "div",
|
|
50
|
-
size:
|
|
50
|
+
size: SELECT_TYPOGRAPHY.description.size,
|
|
51
51
|
color: descriptionColor,
|
|
52
52
|
children: description
|
|
53
53
|
}), children, feedback && _jsxs("div", {
|
|
@@ -62,7 +62,7 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
|
|
|
62
62
|
color: "currentColor"
|
|
63
63
|
})
|
|
64
64
|
}), _jsx(TypographyBody, {
|
|
65
|
-
size:
|
|
65
|
+
size: SELECT_TYPOGRAPHY.feedback.size,
|
|
66
66
|
children: feedback
|
|
67
67
|
})]
|
|
68
68
|
})]
|
|
@@ -70,4 +70,4 @@ var SelectFieldShellBase = function SelectFieldShellBase(_ref) {
|
|
|
70
70
|
};
|
|
71
71
|
export var SelectFieldShell = /*#__PURE__*/memo(SelectFieldShellBase);
|
|
72
72
|
export default SelectFieldShell;
|
|
73
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEZpZWxkU2hlbGwuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3RGaWVsZFNoZWxsLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsIkljb25zIiwiVHlwb2dyYXBoeUJvZHkiLCJUeXBvZ3JhcGh5TGFiZWwiLCJqb2luQ2xzIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJTZWxlY3RGaWVsZFNoZWxsQmFzZSIsIl9yZWYiLCJjaGlsZHJlbiIsImNsYXNzZXMiLCJfcmVmJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsInNpemUiLCJ2YXJpYW50Iiwic3RhdHVzIiwiZGlzYWJsZWQiLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3JlZiRyZXF1aXJlZCIsInJlcXVpcmVkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwibGFiZWxDb2xvciIsImNvbG9yIiwiZGVzY3JpcHRpb25Db2xvciIsImZlZWRiYWNrQ2xhc3MiLCJjb25jYXQiLCJ1bmRlZmluZWQiLCJpZCIsInN0cm9uZyIsImFzIiwicm9sZSIsIm5hbWUiLCJTZWxlY3RGaWVsZFNoZWxsIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQVNDLElBQUksUUFBUSxPQUFPO0FBQzVCLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLGNBQWMsRUFBRUMsZUFBZSxRQUFRLGVBQWU7QUFDL0QsU0FBU0MsT0FBTyxRQUFRLHdCQUF3QjtBQUloRCxTQUFTQyxpQkFBaUIsUUFBUSxhQUFhO0FBb0IvQyxJQUFNQyxvQkFBb0IsR0FBOEIsU0FBbERBLG9CQUFvQkEsQ0FBQUMsSUFBQSxFQWdCckI7RUFBQSxJQWZIQyxRQUFRLEdBQUFELElBQUEs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IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IFNlbGVjdEZpZWxkU2hlbGxCYXNlID0gKHsgY2hpbGRyZW4sIGNsYXNzZXMsIGNsYXNzTmFtZSA9ICcnLCBzaXplLCB2YXJpYW50LCBzdGF0dXMsIGRpc2FibGVkLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBsYWJlbElkLCBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkLCB9KSA9PiB7XG4gICAgY29uc3QgbGFiZWxDb2xvciA9IGRpc2FibGVkID8gU0VMRUNUX1RZUE9HUkFQSFkubGFiZWwuY29sb3IuZGlzYWJsZWQgOiBTRUxFQ1RfVFlQT0dSQVBIWS5sYWJlbC5jb2xvci5kZWZhdWx0O1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uQ29sb3IgPSBkaXNhYmxlZCA/IFNFTEVDVF9UWVBPR1JBUEhZLmRlc2NyaXB0aW9uLmNvbG9yLmRpc2FibGVkIDogU0VMRUNUX1RZUE9HUkFQSFkuZGVzY3JpcHRpb24uY29sb3IuZGVmYXVsdDtcbiAgICBjb25zdCBmZWVkYmFja0NsYXNzID0gY2xhc3NlcygnZmVlZGJhY2snLCBqb2luQ2xzKHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYGZlZWRiYWNrLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdmZWVkYmFjay1kaXNhYmxlZCcpKSk7XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcyhzaXplKSwgY2xhc3Nlcyh2YXJpYW50KSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhzdGF0dXMpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCBjbGFzc05hbWUpKSwgY2hpbGRyZW46IFsobGFiZWwgfHwgaW5mbykgJiYgKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC1yb3cnKSwgY2hpbGRyZW46IFtsYWJlbCAmJiAoX2pzeHMoVHlwb2dyYXBoeUxhYmVsLCB7IGlkOiBsYWJlbElkLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLXRleHQnKSwgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkubGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjb2xvcjogbGFiZWxDb2xvciwgY2hpbGRyZW46IFtsYWJlbCwgcmVxdWlyZWQgJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3JlcXVpcmVkJyksIGNoaWxkcmVuOiBcIipcIiB9KV0gfSkpLCBpbmZvICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpbmZvJyksIGNoaWxkcmVuOiBpbmZvIH0pXSB9KSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGlkOiBkZXNjcmlwdGlvbklkLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uLXRleHQnKSwgYXM6IFwiZGl2XCIsIHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmRlc2NyaXB0aW9uLnNpemUsIGNvbG9yOiBkZXNjcmlwdGlvbkNvbG9yLCBjaGlsZHJlbjogZGVzY3JpcHRpb24gfSkpLCBjaGlsZHJlbiwgZmVlZGJhY2sgJiYgKF9qc3hzKFwiZGl2XCIsIHsgaWQ6IGZlZWRiYWNrSWQsIGNsYXNzTmFtZTogZmVlZGJhY2tDbGFzcywgcm9sZTogc3RhdHVzID09PSAnZXJyb3InIHx8IHN0YXR1cyA9PT0gJ3dhcm5pbmcnID8gJ2FsZXJ0JyA6ICdzdGF0dXMnLCBjaGlsZHJlbjogW3N0YXR1cyA9PT0gJ2Vycm9yJyAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ZlZWRiYWNrLWljb24nKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogXCJlcnJvclwiLCBzaXplOiAxNiwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSkpLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmZlZWRiYWNrLnNpemUsIGNoaWxkcmVuOiBmZWVkYmFjayB9KV0gfSkpXSB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkU2hlbGwgPSBtZW1vKFNlbGVjdEZpZWxkU2hlbGxCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFNlbGVjdEZpZWxkU2hlbGw7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { memo } from 'react';
|
|
3
3
|
import { Icons } from '../Icons';
|
|
4
4
|
import { TypographyBody } from '../Typography';
|
|
5
|
-
import {
|
|
5
|
+
import { SELECT_TYPOGRAPHY } from './constants';
|
|
6
6
|
var SelectOptionContentBase = function SelectOptionContentBase(_ref) {
|
|
7
7
|
var classes = _ref.classes,
|
|
8
8
|
option = _ref.option,
|
|
@@ -12,13 +12,13 @@ var SelectOptionContentBase = function SelectOptionContentBase(_ref) {
|
|
|
12
12
|
className: classes('option-content'),
|
|
13
13
|
children: [_jsx(TypographyBody, {
|
|
14
14
|
className: classes('option-label'),
|
|
15
|
-
size:
|
|
15
|
+
size: SELECT_TYPOGRAPHY.option.label.size,
|
|
16
16
|
strong: true,
|
|
17
17
|
children: option.label
|
|
18
18
|
}), option.description && _jsx(TypographyBody, {
|
|
19
19
|
className: classes('option-description'),
|
|
20
|
-
size:
|
|
21
|
-
color:
|
|
20
|
+
size: SELECT_TYPOGRAPHY.option.description.size,
|
|
21
|
+
color: SELECT_TYPOGRAPHY.option.description.color,
|
|
22
22
|
children: option.description
|
|
23
23
|
})]
|
|
24
24
|
}), _jsx("span", {
|
|
@@ -33,4 +33,4 @@ var SelectOptionContentBase = function SelectOptionContentBase(_ref) {
|
|
|
33
33
|
};
|
|
34
34
|
export var SelectOptionContent = /*#__PURE__*/memo(SelectOptionContentBase);
|
|
35
35
|
export default SelectOptionContent;
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdE9wdGlvbkNvbnRlbnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3RPcHRpb25Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJtZW1vIiwiSWNvbnMiLCJUeXBvZ3JhcGh5Qm9keSIsIlNFTEVDVF9UWVBPR1JBUEhZIiwiU2VsZWN0T3B0aW9uQ29udGVudEJhc2UiLCJfcmVmIiwiY2xhc3NlcyIsIm9wdGlvbiIsInNlbGVjdGVkIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJzaXplIiwibGFiZWwiLCJzdHJvbmciLCJkZXNjcmlwdGlvbiIsImNvbG9yIiwibmFtZSIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssRUFBRUMsUUFBUSxJQUFJQyxTQUFTLFFBQVEsbUJBQW1CO0FDQXJGLFNBQVNDLElBQUksUUFBUSxPQUFPO0FBQzVCLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBSTlDLFNBQVNDLGlCQUFpQixRQUFRLGFBQWE7QUFRL0MsSUFBTUMsdUJBQXVCLEdBQWlDLFNBQXhEQSx1QkFBdUJBLENBQUFDLElBQUE7RUFBQSxJQUMzQkMsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFDUEMsTUFBTSxHQUFBRixJQUFBLENBQU5FLE1BQU07SUFDTkMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7RUFBQSxPQUVSWCxLQUFBLENBQUFFLFNBQUEsRUFBQTtJQUFBVSxRQUFBLEVBQUEsQ0FDRVosS0FBQSxDQUFBLE1BQUEsRUFBQTtNQUFNYSxTQUFTLEVBQUVKLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztNQUFBRyxRQUFBLEVBQUEsQ0FDeENkLElBQUEsQ0FBQ08sY0FBYyxFQUFBO1FBQUNRLFNBQVMsRUFBRUosT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUFFSyxJQUFJLEVBQUVSLGlCQUFpQixDQUFDSSxNQUFNLENBQUNLLEtBQUssQ0FBQ0QsSUFBSTtRQUFFRSxNQUFNLEVBQUEsSUFBQTtRQUFBSixRQUFBLEVBQUVGLE1BQU0sQ0FBQ0s7TUFBSyxDQUFBLENBQWtCLEVBQ3BJTCxNQUFNLENBQUNPLFdBQVcsSUFDakJuQixJQUFBLENBQUNPLGNBQWMsRUFBQTtRQUFDUSxTQUFTLEVBQUVKLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztRQUFFSyxJQUFJLEVBQUVSLGlCQUFpQixDQUFDSSxNQUFNLENBQUNPLFdBQVcsQ0FBQ0gsSUFBSTtRQUFFSSxLQUFLLEVBQUVaLGlCQUFpQixDQUFDSSxNQUFNLENBQUNPLFdBQVcsQ0FBQ0MsS0FBSztRQUFBTixRQUFBLEVBQUdGLE1BQU0sQ0FBQ087TUFBVyxDQUFBLENBQ2xMO0lBQUEsQ0FBQSxDQUNJLEVBQ1BuQixJQUFBLENBQUEsTUFBQSxFQUFBO01BQU1lLFNBQVMsRUFBRUosT0FBTyxDQUFDLGNBQWMsQ0FBQztNQUFBRyxRQUFBLEVBQ3JDRCxRQUFRLElBQUliLElBQUEsQ0FBQ00sS0FBSyxFQUFBO1FBQUNlLElBQUksRUFBQyxPQUFPO1FBQUNMLElBQUksRUFBRSxFQUFFO1FBQUVJLEtBQUssRUFBQztNQUFjLENBQUE7SUFBRyxDQUFBLENBQzdEO0VBQUEsQ0FBQSxDQUNOO0FBQUEsQ0FDSjtBQUVELE9BQU8sSUFBTUUsbUJBQW1CLGdCQUFHakIsSUFBSSxDQUFDSSx1QkFBdUIsQ0FBQztBQUVoRSxlQUFlYSxtQkFBbUIiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0T3B0aW9uQ29udGVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IFNlbGVjdE9wdGlvbkNvbnRlbnRCYXNlID0gKHsgY2xhc3Nlcywgb3B0aW9uLCBzZWxlY3RlZCwgfSkgPT4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uLWNvbnRlbnQnKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uLWxhYmVsJyksIHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLm9wdGlvbi5sYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBvcHRpb24ubGFiZWwgfSksIG9wdGlvbi5kZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbi1kZXNjcmlwdGlvbicpLCBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5vcHRpb24uZGVzY3JpcHRpb24uc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLm9wdGlvbi5kZXNjcmlwdGlvbi5jb2xvciwgY2hpbGRyZW46IG9wdGlvbi5kZXNjcmlwdGlvbiB9KSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uLWNoZWNrJyksIGNoaWxkcmVuOiBzZWxlY3RlZCAmJiBfanN4KEljb25zLCB7IG5hbWU6IFwiY2hlY2tcIiwgc2l6ZTogMTYsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSk7XG5leHBvcnQgY29uc3QgU2VsZWN0T3B0aW9uQ29udGVudCA9IG1lbW8oU2VsZWN0T3B0aW9uQ29udGVudEJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgU2VsZWN0T3B0aW9uQ29udGVudDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
import type { TypographyBodySize, TypographyColor, TypographyLabelSize } from "../Typography";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
interface SelectTypographyConfig {
|
|
3
|
+
label: {
|
|
4
|
+
size: TypographyLabelSize;
|
|
5
|
+
color: {
|
|
6
|
+
default: TypographyColor;
|
|
7
|
+
disabled: TypographyColor;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
description: {
|
|
11
|
+
size: TypographyBodySize;
|
|
12
|
+
color: {
|
|
13
|
+
default: TypographyColor;
|
|
14
|
+
disabled: TypographyColor;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
feedback: {
|
|
18
|
+
size: TypographyBodySize;
|
|
19
|
+
};
|
|
20
|
+
option: {
|
|
21
|
+
label: {
|
|
22
|
+
size: TypographyBodySize;
|
|
23
|
+
};
|
|
24
|
+
description: {
|
|
25
|
+
size: TypographyBodySize;
|
|
26
|
+
color: TypographyColor;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
groupLabel: {
|
|
30
|
+
size: TypographyLabelSize;
|
|
31
|
+
};
|
|
32
|
+
empty: {
|
|
33
|
+
size: TypographyBodySize;
|
|
34
|
+
color: TypographyColor;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export declare const SELECT_TYPOGRAPHY: SelectTypographyConfig;
|
|
38
|
+
export {};
|
|
@@ -1,20 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
export var SELECT_TYPOGRAPHY = {
|
|
2
|
+
label: {
|
|
3
|
+
size: 'lg',
|
|
4
|
+
color: {
|
|
5
|
+
"default": 'default',
|
|
6
|
+
disabled: 'disabled'
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
description: {
|
|
10
|
+
size: 'md',
|
|
11
|
+
color: {
|
|
12
|
+
"default": 'default-tertiary',
|
|
13
|
+
disabled: 'disabled'
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
feedback: {
|
|
17
|
+
size: 'sm'
|
|
18
|
+
},
|
|
19
|
+
option: {
|
|
20
|
+
label: {
|
|
21
|
+
size: 'md'
|
|
22
|
+
},
|
|
23
|
+
description: {
|
|
24
|
+
size: 'sm',
|
|
25
|
+
color: 'default-tertiary'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
groupLabel: {
|
|
29
|
+
size: 'lg'
|
|
30
|
+
},
|
|
31
|
+
empty: {
|
|
32
|
+
size: 'md',
|
|
33
|
+
color: 'default-tertiary'
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L2NvbnN0YW50cy50cyIsImNvbXBvbmVudHMvU2VsZWN0L2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJTRUxFQ1RfVFlQT0dSQVBIWSIsImxhYmVsIiwic2l6ZSIsImNvbG9yIiwiZGlzYWJsZWQiLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwib3B0aW9uIiwiZ3JvdXBMYWJlbCIsImVtcHR5Il0sIm1hcHBpbmdzIjoiQUFvQ0EsT0FBTyxJQUFNQSxpQkFBaUIsR0FBMkI7RUFDdkRDLEtBQUssRUFBRTtJQUNMQyxJQUFJLEVBQUUsSUFBSTtJQUNWQyxLQUFLLEVBQUU7TUFBRSxXQUFTLFNBQVM7TUFBRUMsUUFBUSxFQUFFO0lBQVU7RUNuQ2pELENEb0NEO0VBQ0RDLFdBQVcsRUFBRTtJQUNYSCxJQUFJLEVBQUUsSUFBSTtJQUNWQyxLQUFLLEVBQUU7TUFBRSxXQUFTLGtCQUFrQjtNQUFFQyxRQUFRLEVBQUU7SUFBVTtFQ25DMUQsQ0RvQ0Q7RUFDREUsUUFBUSxFQUFFO0lBQUVKLElBQUksRUFBRTtFQUFJLENBQUU7RUFDeEJLLE1BQU0sRUFBRTtJQUNOTixLQUFLLEVBQUU7TUFBRUMsSUFBSSxFQUFFO0lBQUksQ0FBRTtJQUNyQkcsV0FBVyxFQUFFO01BQUVILElBQUksRUFBRSxJQUFJO01BQUVDLEtBQUssRUFBRTtJQUFrQjtFQ25DcEQsQ0RvQ0Q7RUFDREssVUFBVSxFQUFFO0lBQUVOLElBQUksRUFBRTtFQUFJLENBQUU7RUFDMUJPLEtBQUssRUFBRTtJQUFFUCxJQUFJLEVBQUUsSUFBSTtJQUFFQyxLQUFLLEVBQUU7RUFBa0I7QUNuQ2hELENEb0NDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiZXhwb3J0IGNvbnN0IFNFTEVDVF9UWVBPR1JBUEhZID0ge1xuICAgIGxhYmVsOiB7XG4gICAgICAgIHNpemU6ICdsZycsXG4gICAgICAgIGNvbG9yOiB7IGRlZmF1bHQ6ICdkZWZhdWx0JywgZGlzYWJsZWQ6ICdkaXNhYmxlZCcgfSxcbiAgICB9LFxuICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgIHNpemU6ICdtZCcsXG4gICAgICAgIGNvbG9yOiB7IGRlZmF1bHQ6ICdkZWZhdWx0LXRlcnRpYXJ5JywgZGlzYWJsZWQ6ICdkaXNhYmxlZCcgfSxcbiAgICB9LFxuICAgIGZlZWRiYWNrOiB7IHNpemU6ICdzbScgfSxcbiAgICBvcHRpb246IHtcbiAgICAgICAgbGFiZWw6IHsgc2l6ZTogJ21kJyB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtdGVydGlhcnknIH0sXG4gICAgfSxcbiAgICBncm91cExhYmVsOiB7IHNpemU6ICdsZycgfSxcbiAgICBlbXB0eTogeyBzaXplOiAnbWQnLCBjb2xvcjogJ2RlZmF1bHQtdGVydGlhcnknIH0sXG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|