w-component-vue 2.5.18 → 2.5.20
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/README.md +1 -1
- package/dist/w-component-vue.umd.js +4 -4
- package/dist/w-component-vue.umd.js.map +1 -1
- package/docs/binarySearch.mjs.html +2 -2
- package/docs/convertColor.mjs.html +2 -2
- package/docs/examples/app.html +1 -1
- package/docs/examples/app.umd.js +4 -4
- package/docs/examples/app.umd.js.map +1 -1
- package/docs/examples/w-aggrid-vue-dyn_defCellEditable.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_kpCellEditable_kpRowStyle.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_kpCellFormat.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_large data (1,000,000 items).html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_simple data.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_slot cell-render.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_slot cell-tooltip.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_slot head-render.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_slot head-tooltip.html +1 -1
- package/docs/examples/w-alert_backgroundColor.html +1 -1
- package/docs/examples/w-alert_borderColor.html +1 -1
- package/docs/examples/w-alert_borderRadius.html +1 -1
- package/docs/examples/w-alert_borderWidth.html +1 -1
- package/docs/examples/w-alert_default.html +1 -1
- package/docs/examples/w-alert_icon.html +1 -1
- package/docs/examples/w-alert_position.html +1 -1
- package/docs/examples/w-alert_recive closed event by promise.html +1 -1
- package/docs/examples/w-alert_shadowStyle.html +1 -1
- package/docs/examples/w-alert_textColor.html +1 -1
- package/docs/examples/w-alert_time (6s).html +1 -1
- package/docs/examples/w-alert_type error.html +1 -1
- package/docs/examples/w-alert_type infor.html +1 -1
- package/docs/examples/w-alert_type warning.html +1 -1
- package/docs/examples/w-badge_backgroundColor.html +1 -1
- package/docs/examples/w-badge_badgeAlign.html +1 -1
- package/docs/examples/w-badge_borderColor_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-badge_borderRadius.html +1 -1
- package/docs/examples/w-badge_default.html +1 -1
- package/docs/examples/w-badge_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-badge_textFontSize.html +1 -1
- package/docs/examples/w-button-chip_active_backgroundColorActive.html +1 -1
- package/docs/examples/w-button-chip_active_borderColorActive.html +1 -1
- package/docs/examples/w-button-chip_active_iconColorActive.html +1 -1
- package/docs/examples/w-button-chip_active_no shadow_no shadowActive.html +1 -1
- package/docs/examples/w-button-chip_active_shadowActiveStyle.html +1 -1
- package/docs/examples/w-button-chip_active_textColorActive.html +1 -1
- package/docs/examples/w-button-chip_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-button-chip_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-button-chip_borderRadius.html +1 -1
- package/docs/examples/w-button-chip_borderRadiusStyle.html +1 -1
- package/docs/examples/w-button-chip_borderRadiusStyle_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-button-chip_borderWidth.html +1 -1
- package/docs/examples/w-button-chip_close.html +1 -1
- package/docs/examples/w-button-chip_close_shiftRight.html +1 -1
- package/docs/examples/w-button-chip_default.html +1 -1
- package/docs/examples/w-button-chip_displayType.html +1 -1
- package/docs/examples/w-button-chip_icon (fontawesome).html +1 -1
- package/docs/examples/w-button-chip_icon (material).html +1 -1
- package/docs/examples/w-button-chip_icon_iconColor_iconColorHover_close.html +1 -1
- package/docs/examples/w-button-chip_icon_no text.html +1 -1
- package/docs/examples/w-button-chip_loading.html +1 -1
- package/docs/examples/w-button-chip_loading_loadingColor.html +1 -1
- package/docs/examples/w-button-chip_loading_textColor_textColorHover.html +1 -1
- package/docs/examples/w-button-chip_modify loading by callback in click.html +1 -1
- package/docs/examples/w-button-chip_modify prog by callback in click.html +1 -1
- package/docs/examples/w-button-chip_no shadow.html +1 -1
- package/docs/examples/w-button-chip_not editable.html +1 -1
- package/docs/examples/w-button-chip_not editable_disabledColor.html +1 -1
- package/docs/examples/w-button-chip_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-button-chip_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-button-chip_paddingStyle_icon_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-button-chip_prog.html +1 -1
- package/docs/examples/w-button-chip_prog_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-button-chip_promiseUnlock.html +1 -1
- package/docs/examples/w-button-chip_rippleColor.html +1 -1
- package/docs/examples/w-button-chip_shadowStyle.html +1 -1
- package/docs/examples/w-button-chip_shiftLeft.html +1 -1
- package/docs/examples/w-button-chip_slot_close.html +1 -1
- package/docs/examples/w-button-chip_textColor.html +1 -1
- package/docs/examples/w-button-chip_textColor_textColorHover.html +1 -1
- package/docs/examples/w-button-chip_tooltip.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-button-circle_active_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-button-circle_active_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-button-circle_active_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-button-circle_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-button-circle_borderRadius.html +1 -1
- package/docs/examples/w-button-circle_borderRadiusStyle(horizontal btns).html +1 -1
- package/docs/examples/w-button-circle_borderRadiusStyle(vertical btns).html +1 -1
- package/docs/examples/w-button-circle_borderWidth_borderColor_borderColorHover_borderColorFocus.html +1 -1
- package/docs/examples/w-button-circle_icon (fontawesome).html +1 -1
- package/docs/examples/w-button-circle_icon (material).html +1 -1
- package/docs/examples/w-button-circle_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-button-circle_loading.html +1 -1
- package/docs/examples/w-button-circle_loading_loadingColor.html +1 -1
- package/docs/examples/w-button-circle_no shadow.html +1 -1
- package/docs/examples/w-button-circle_not editable.html +1 -1
- package/docs/examples/w-button-circle_not editable_disabledColor.html +1 -1
- package/docs/examples/w-button-circle_paddingStyle.html +1 -1
- package/docs/examples/w-button-circle_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-button-circle_promiseUnlock.html +1 -1
- package/docs/examples/w-button-circle_rippleColor.html +1 -1
- package/docs/examples/w-button-circle_shadowStyle.html +1 -1
- package/docs/examples/w-button-circle_tooltip.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-checkbox_checkedIconColor_checkedIconColorHover_uncheckedIconColor_uncheckedIconColorHover.html +1 -1
- package/docs/examples/w-checkbox_checkedIcon_uncheckedIcon.html +1 -1
- package/docs/examples/w-checkbox_default.html +1 -1
- package/docs/examples/w-checkbox_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-checkbox_not editable.html +1 -1
- package/docs/examples/w-checkbox_not editable_checkedIconColorDisabled_uncheckedIconColorDisabled.html +1 -1
- package/docs/examples/w-checkbox_slot.html +1 -1
- package/docs/examples/w-checkbox_text.html +1 -1
- package/docs/examples/w-checkbox_text_textColor_textColorHover.html +1 -1
- package/docs/examples/w-checkbox_use string (y or n).html +1 -1
- package/docs/examples/w-checkbox_verticalAlign.html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_default.html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_height.html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_not editable.html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_settings.html +1 -1
- package/docs/examples/w-color-pick-alpha_color.html +1 -1
- package/docs/examples/w-color-pick-alpha_cursorSize.html +1 -1
- package/docs/examples/w-color-pick-alpha_default.html +1 -1
- package/docs/examples/w-color-pick-alpha_width_height.html +1 -1
- package/docs/examples/w-color-pick-hexagon-gray_default.html +1 -1
- package/docs/examples/w-color-pick-hexagon-gray_size.html +1 -1
- package/docs/examples/w-color-pick-hexagon-gray_space.html +1 -1
- package/docs/examples/w-color-pick-hexagon_default.html +1 -1
- package/docs/examples/w-color-pick-hexagon_size.html +1 -1
- package/docs/examples/w-color-pick-hsv_color.html +1 -1
- package/docs/examples/w-color-pick-hsv_cursorSize.html +1 -1
- package/docs/examples/w-color-pick-hsv_default.html +1 -1
- package/docs/examples/w-color-pick-hsv_width_height.html +1 -1
- package/docs/examples/w-color-pick-hue_cursorSize.html +1 -1
- package/docs/examples/w-color-pick-hue_default.html +1 -1
- package/docs/examples/w-color-pick-hue_width_height.html +1 -1
- package/docs/examples/w-color-pick-stripe_colorLeft_colorRight.html +1 -1
- package/docs/examples/w-color-pick-stripe_colorNum.html +1 -1
- package/docs/examples/w-color-pick-stripe_default.html +1 -1
- package/docs/examples/w-color-pick-stripe_width_height.html +1 -1
- package/docs/examples/w-color-select-input_barProgColor_barProgBackgroundColor_barSliderBackgroundColor_barSliderBackgroundColorHover.html +1 -1
- package/docs/examples/w-color-select-input_barProgHeight.html +1 -1
- package/docs/examples/w-color-select-input_barSliderSize.html +1 -1
- package/docs/examples/w-color-select-input_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-color-select-input_default.html +1 -1
- package/docs/examples/w-color-select-input_inputBackgroundColor_inputBackgroundColorHover_inputBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select-input_inputBorderColor_inputBorderColorHover_inputBorderColorActive.html +1 -1
- package/docs/examples/w-color-select-input_inputBorderRadius.html +1 -1
- package/docs/examples/w-color-select-input_inputLabelColor.html +1 -1
- package/docs/examples/w-color-select-input_inputLabelWidth_inputLabelFontSize.html +1 -1
- package/docs/examples/w-color-select-input_inputTextColor.html +1 -1
- package/docs/examples/w-color-select-input_inputTextFontSize_inputTextWidth_inputTextHeight.html +1 -1
- package/docs/examples/w-color-select-input_menuBackgroundColor_menuBackgroundColorHover_menuBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select-input_menuBorderRadius.html +1 -1
- package/docs/examples/w-color-select-input_menuBorderRadius_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-color-select-input_menuTextColor_menuTextColorHover_menuTextColorActive.html +1 -1
- package/docs/examples/w-color-select-input_menuTextFontSize.html +1 -1
- package/docs/examples/w-color-select-input_size.html +1 -1
- package/docs/examples/w-color-select-panel-block_default.html +1 -1
- package/docs/examples/w-color-select-panel-block_size.html +1 -1
- package/docs/examples/w-color-select-panel-block_spaceGray_spaceAlpha.html +1 -1
- package/docs/examples/w-color-select-panel-hsva_default.html +1 -1
- package/docs/examples/w-color-select-panel-hsva_size.html +1 -1
- package/docs/examples/w-color-select-panel-hsva_space.html +1 -1
- package/docs/examples/w-color-select-panel_backgroundColor.html +1 -1
- package/docs/examples/w-color-select-panel_default.html +1 -1
- package/docs/examples/w-color-select-panel_size.html +1 -1
- package/docs/examples/w-color-select-panel_space.html +1 -1
- package/docs/examples/w-color-select-panel_type.html +1 -1
- package/docs/examples/w-color-select_barProgColor_barProgBackgroundColor_barSliderBackgroundColor_barSliderBackgroundColorHover.html +1 -1
- package/docs/examples/w-color-select_barProgHeight.html +1 -1
- package/docs/examples/w-color-select_barSliderSize.html +1 -1
- package/docs/examples/w-color-select_btnBackgroundColor_btnBackgroundColorHover_btnBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select_btnBorderRadius.html +1 -1
- package/docs/examples/w-color-select_btnPaddingStyle.html +1 -1
- package/docs/examples/w-color-select_btnText.html +1 -1
- package/docs/examples/w-color-select_btnTextColor_btnTextColorHover_btnTextColorActive.html +1 -1
- package/docs/examples/w-color-select_btnTextFontSize.html +1 -1
- package/docs/examples/w-color-select_colorBlockBorderColor.html +1 -1
- package/docs/examples/w-color-select_colorBlockBorderColor_colorTextColor_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-color-select_colorBlockBorderWidth.html +1 -1
- package/docs/examples/w-color-select_colorBlockSize.html +1 -1
- package/docs/examples/w-color-select_colorTextColor.html +1 -1
- package/docs/examples/w-color-select_colorTextFontSize.html +1 -1
- package/docs/examples/w-color-select_default.html +1 -1
- package/docs/examples/w-color-select_inputBackgroundColor_inputBackgroundColorHover_inputBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select_inputBorderColor_inputBorderColorHover_inputBorderColorActive.html +1 -1
- package/docs/examples/w-color-select_inputBorderRadius.html +1 -1
- package/docs/examples/w-color-select_inputLabelColor.html +1 -1
- package/docs/examples/w-color-select_inputLabelWidth_inputLabelFontSize.html +1 -1
- package/docs/examples/w-color-select_inputTextColor.html +1 -1
- package/docs/examples/w-color-select_inputTextFontSize_inputTextWidth_inputTextHeight.html +1 -1
- package/docs/examples/w-color-select_menuBackgroundColor_menuBackgroundColorHover_menuBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select_menuBorderRadius.html +1 -1
- package/docs/examples/w-color-select_menuIconColor_menuIconColorHover_menuIconColorActive.html +1 -1
- package/docs/examples/w-color-select_menuIconLump_menuIconHsva_menuIconEyeDropper.html +1 -1
- package/docs/examples/w-color-select_menuIconSize.html +1 -1
- package/docs/examples/w-color-select_menuTextColor_menuTextColorHover_menuTextColorActive.html +1 -1
- package/docs/examples/w-color-select_menuTextFontSize.html +1 -1
- package/docs/examples/w-color-select_not editable.html +1 -1
- package/docs/examples/w-color-select_panelBackgroundColor.html +1 -1
- package/docs/examples/w-color-select_showColorText.html +1 -1
- package/docs/examples/w-color-select_size.html +1 -1
- package/docs/examples/w-color-select_toolBackgroundColor.html +1 -1
- package/docs/examples/w-confirm_contentColor_contentIconColor_contentBackgroundColor.html +1 -1
- package/docs/examples/w-confirm_contentIcon (fontawesome).html +1 -1
- package/docs/examples/w-confirm_contentIconColor.html +1 -1
- package/docs/examples/w-confirm_contentIconSize.html +1 -1
- package/docs/examples/w-confirm_hasNoBtn_yesBtnText.html +1 -1
- package/docs/examples/w-confirm_maxWidth.html +1 -1
- package/docs/examples/w-confirm_noBtnTextColor_noBtnTextColorHover_noBtnBackgroundColor_noBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-confirm_noBtnText_yesBtnText.html +1 -1
- package/docs/examples/w-confirm_scrollable (slot content).html +1 -1
- package/docs/examples/w-confirm_scrollable.html +1 -1
- package/docs/examples/w-confirm_slot content.html +1 -1
- package/docs/examples/w-confirm_slot footer.html +1 -1
- package/docs/examples/w-confirm_slot header.html +1 -1
- package/docs/examples/w-confirm_titleColor_headerBackgroundColor_footerBackgroundColor.html +1 -1
- package/docs/examples/w-confirm_title_content.html +1 -1
- package/docs/examples/w-dialog_closeWithInterceptor.html +1 -1
- package/docs/examples/w-dialog_contentTextColor_contentBackgroundColor.html +1 -1
- package/docs/examples/w-dialog_dialogZIndex.html +1 -1
- package/docs/examples/w-dialog_fullscreen.html +1 -1
- package/docs/examples/w-dialog_hasSaveBtn (no save button).html +1 -1
- package/docs/examples/w-dialog_hasSaveBtn_hasCloseBtn_isModal (no save and close button).html +1 -1
- package/docs/examples/w-dialog_headerBackgroundColor.html +1 -1
- package/docs/examples/w-dialog_headerBtns.html +1 -1
- package/docs/examples/w-dialog_headerShadow (no shadow).html +1 -1
- package/docs/examples/w-dialog_headerShadowStyle.html +1 -1
- package/docs/examples/w-dialog_icon (fontawesome).html +1 -1
- package/docs/examples/w-dialog_isModal (not persistent).html +1 -1
- package/docs/examples/w-dialog_long title.html +1 -1
- package/docs/examples/w-dialog_maxWidth (narrow width).html +1 -1
- package/docs/examples/w-dialog_multi dialogs.html +1 -1
- package/docs/examples/w-dialog_panelBorderRadius.html +1 -1
- package/docs/examples/w-dialog_panelShadow (no shadow).html +1 -1
- package/docs/examples/w-dialog_panelShadowStyle.html +1 -1
- package/docs/examples/w-dialog_saveBtnTooltip_closeBtnTooltip.html +1 -1
- package/docs/examples/w-dialog_scrollable.html +1 -1
- package/docs/examples/w-dialog_slot content (separate line).html +1 -1
- package/docs/examples/w-dialog_slot content (table).html +1 -1
- package/docs/examples/w-dialog_slot content.html +1 -1
- package/docs/examples/w-dialog_slot header-left_header-right.html +1 -1
- package/docs/examples/w-dialog_slot panel.html +1 -1
- package/docs/examples/w-dialog_title.html +1 -1
- package/docs/examples/w-dialog_titleColor_headerIconColor_headerBackgroundColor.html +1 -1
- package/docs/examples/w-drawer_afloat.html +5 -2
- package/docs/examples/w-drawer_afloat_afloatByFix.html +5 -2
- package/docs/examples/w-drawer_afloat_afloatByFix_dragDrawerWidth.html +5 -2
- package/docs/examples/w-drawer_afloat_afloatByFix_mode.html +5 -2
- package/docs/examples/w-drawer_afloat_afloatByFix_mode_dragDrawerWidth.html +5 -2
- package/docs/examples/w-drawer_afloat_dragDrawerWidth.html +5 -2
- package/docs/examples/w-drawer_afloat_dragDrawerWidth_drawerWidthMin_drawerWidthMax.html +5 -2
- package/docs/examples/w-drawer_afloat_mode.html +5 -2
- package/docs/examples/w-drawer_afloat_mode_dragDrawerWidth.html +5 -2
- package/docs/examples/w-drawer_afloat_mode_dragDrawerWidth_drawerWidthMin.html +5 -2
- package/docs/examples/w-drawer_afloat_overlayOpacity.html +5 -2
- package/docs/examples/w-drawer_autoSwitchToFloat_autoSwitchToFix_switchWidth_afloat.html +344 -0
- package/docs/examples/w-drawer_autoSwitchToFloat_switchWidth_afloat.html +5 -2
- package/docs/examples/w-drawer_autoSwitchToHide_switchWidth.html +5 -2
- package/docs/examples/w-drawer_autoSwitchToShow_switchWidth.html +5 -2
- package/docs/examples/w-drawer_default.html +5 -2
- package/docs/examples/w-drawer_dragDrawerWidth_drawerBarBorderColor_drawerBarBorderSize.html +5 -2
- package/docs/examples/w-drawer_dragDrawerWidth_drawerBarColor_drawerBarSize.html +5 -2
- package/docs/examples/w-drawer_dragDrawerWidth_drawerWidth(sync).html +5 -2
- package/docs/examples/w-drawer_dragDrawerWidth_drawerWidthMin_drawerWidthMax.html +5 -2
- package/docs/examples/w-drawer_drawerWidth.html +5 -2
- package/docs/examples/w-drawer_mode.html +5 -2
- package/docs/examples/w-drawer_mode_dragDrawerWidth.html +5 -2
- package/docs/examples/w-drawer_multiple_dragDrawerWidth_drawerWidthMin_drawerWidthMax.html +5 -2
- package/docs/examples/w-dropfiles_backgroundColor_backgroundColorDropIn_backgroundColorHover.html +1 -1
- package/docs/examples/w-dropfiles_borderColor_borderColorDropIn_borderColorHover_backgroundColorDropIn.html +1 -1
- package/docs/examples/w-dropfiles_borderRadius.html +1 -1
- package/docs/examples/w-dropfiles_borderWidth.html +1 -1
- package/docs/examples/w-dropfiles_default.html +1 -1
- package/docs/examples/w-dropfiles_timeTransition.html +1 -1
- package/docs/examples/w-dynamic-list_change rows.html +1 -1
- package/docs/examples/w-dynamic-list_change slot.html +1 -1
- package/docs/examples/w-dynamic-list_default.html +1 -1
- package/docs/examples/w-dynamic-list_filterKeywords_statePaddingStyle_noResultsText.html +1 -1
- package/docs/examples/w-dynamic-list_large data (1,000,000 items).html +1 -1
- package/docs/examples/w-dynamic-list_processItems.html +1 -1
- package/docs/examples/w-dynamic-list_render.html +1 -1
- package/docs/examples/w-dynamic-list_slot item with image.html +1 -1
- package/docs/examples/w-dynamic-list_viewHeightMax.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_area.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_bar3D.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_continuous.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_heatmap.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_line.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_line3D.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_parallel.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_polar heatmap.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_polar.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_radar.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_resize.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_scatter.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_stack.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_surface.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_tree.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_treemap.html +1 -1
- package/docs/examples/w-explorer_bindRoot.html +1 -1
- package/docs/examples/w-explorer_btnDisplayTreeBackgroundColor_btnDisplayTreeBackgroundColorHover_btnDisplayTreeBackgroundColorFocus.html +1 -1
- package/docs/examples/w-explorer_btnDisplayTreeIconColor_btnDisplayTreeIconColorHover_btnDisplayTreeIconColorFocus.html +1 -1
- package/docs/examples/w-explorer_btnDisplayTreeIconShow_btnDisplayTreeIconHide_btnDisplayTreeIconSize.html +1 -1
- package/docs/examples/w-explorer_dark mode.html +1 -1
- package/docs/examples/w-explorer_default.html +1 -1
- package/docs/examples/w-explorer_defaultShowTreeFirst.html +1 -1
- package/docs/examples/w-explorer_defaultShowTreeFirst_noSelectedText.html +1 -1
- package/docs/examples/w-explorer_draggable.html +1 -1
- package/docs/examples/w-explorer_draggable_dgInsertLineColor_dgInsertBackgroundColor_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_draggable_dgPreviewOpacity_dgPreviewBorderWidth_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_draggable_dgTextDisabled_dgTextDisabledColor_dgTextDisabledPaddingLeft.html +1 -1
- package/docs/examples/w-explorer_events.html +1 -1
- package/docs/examples/w-explorer_funSortTree.html +1 -1
- package/docs/examples/w-explorer_lineBetweenPathAndListWidth_lineBetweenPathAndListColor.html +1 -1
- package/docs/examples/w-explorer_listBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_listFolderIcon_listFileIcon_listIconSize.html +1 -1
- package/docs/examples/w-explorer_listItemBackgroundColor_listItemBackgroundColorHover_listItemBackgroundColorActive.html +1 -1
- package/docs/examples/w-explorer_listItemIconColor_listItemIconColorHover_listItemIconColorActive.html +1 -1
- package/docs/examples/w-explorer_listItemRippleColor.html +1 -1
- package/docs/examples/w-explorer_listItemTextColor_listItemTextColorHover_listItemTextColorActive.html +1 -1
- package/docs/examples/w-explorer_listItemTextFontSize.html +1 -1
- package/docs/examples/w-explorer_listPaddingStyle.html +1 -1
- package/docs/examples/w-explorer_operatable.html +1 -1
- package/docs/examples/w-explorer_operatable_draggable.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameCancelBtnBackgroundColor_editorRenameCancelBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameCancelBtnIcon_editorRenameCancelBtnIconSize_editorRenameCancelBtnIconColor.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameCancelBtnText_editorRenameCancelBtnTextColor_editorRenameCancelBtnTextColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameContentBackgroundColor_editorRenameFooterBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameInputTextColor_editorRenameInputTextBottomLineBorderColor_editorRenameInputTextBottomLineBorderColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameSaveBtnBackgroundColor_editorRenameSaveBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameSaveBtnIcon_editorRenameSaveBtnIconSize_editorRenameSaveBtnIconColor.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameSaveBtnText_editorRenameSaveBtnTextColor_editorRenameSaveBtnTextColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_operateBtnBackgroundColor_operateBtnBackgroundColorHover_operateBtnBackgroundColorFocus.html +1 -1
- package/docs/examples/w-explorer_operatable_operateBtnTooltip_operateItemTextForRename_perateItemTextForInsertChild.html +1 -1
- package/docs/examples/w-explorer_operatable_operateItemBackgroundColor_operateItemBackgroundColorHover_operateItemTextColor.html +1 -1
- package/docs/examples/w-explorer_operatable_operateItemHeight_operateItemIconSize_operateItemPaddingStyle.html +1 -1
- package/docs/examples/w-explorer_operatable_operateItemIconForRename_operateItemIconForInsertChild_operateItemIconForDelete.html +1 -1
- package/docs/examples/w-explorer_operatable_operatePanelWidth_operatePanelHeight_operateItemIconSize.html +1 -1
- package/docs/examples/w-explorer_pathBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_pathBtnBackgroundColor_pathBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_pathBtnTextColor_pathBtnTextColorHover.html +1 -1
- package/docs/examples/w-explorer_pathBtnTextFontSize.html +1 -1
- package/docs/examples/w-explorer_pathSepIcon_pathSepIconColor_pathSepIconSize.html +1 -1
- package/docs/examples/w-explorer_showTree.html +1 -1
- package/docs/examples/w-explorer_slot folder-item.html +1 -1
- package/docs/examples/w-explorer_slot list-item-cover.html +1 -1
- package/docs/examples/w-explorer_slot list-item-sub.html +1 -1
- package/docs/examples/w-explorer_slot list-item-text-left.html +1 -1
- package/docs/examples/w-explorer_slot list-item-text-right.html +1 -1
- package/docs/examples/w-explorer_slot list-item_list-item-cover_list-head_list-foot.html +1 -1
- package/docs/examples/w-explorer_small text.html +1 -1
- package/docs/examples/w-explorer_toggleTreeFoldersAll.html +1 -1
- package/docs/examples/w-explorer_toggleTreeFoldersByFun.html +1 -1
- package/docs/examples/w-explorer_treeAfloat.html +1 -1
- package/docs/examples/w-explorer_treeBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_treeDefItemHeight_listDefItemHeight.html +1 -1
- package/docs/examples/w-explorer_treeDefaultDisplayLevel.html +1 -1
- package/docs/examples/w-explorer_treeDrawerBarSize_treeDrawerBarColor.html +1 -1
- package/docs/examples/w-explorer_treeFolderIconColor_treeFolderIconColorHover_treeFolderIconColorActive.html +1 -1
- package/docs/examples/w-explorer_treeFolderIcon_treeFolderIconSize.html +1 -1
- package/docs/examples/w-explorer_treeIndent.html +1 -1
- package/docs/examples/w-explorer_treeItemBackgroundColor_treeItemBackgroundColorHover_treeItemBackgroundColorActive.html +1 -1
- package/docs/examples/w-explorer_treeItemRippleColor.html +1 -1
- package/docs/examples/w-explorer_treeItemTextColor_treeItemTextColorHover_treeItemTextColorActive.html +1 -1
- package/docs/examples/w-explorer_treeItemTextFontSize.html +1 -1
- package/docs/examples/w-explorer_treePaddingStyle.html +1 -1
- package/docs/examples/w-explorer_treeToggleIconColor_treeToggleIconBackgroundColor_treeToggleIconBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_treeToggleIconSize.html +1 -1
- package/docs/examples/w-explorer_treeWidth.html +1 -1
- package/docs/examples/w-explorer_treeWidthMin_treeWidthMax.html +1 -1
- package/docs/examples/w-explorer_triggerClickTreeFolderByFun.html +1 -1
- package/docs/examples/w-explorer_triggerClickTreeFolderById.html +1 -1
- package/docs/examples/w-group-baggage_connLineColor.html +1 -1
- package/docs/examples/w-group-baggage_connLineWidth.html +1 -1
- package/docs/examples/w-group-baggage_connLineZoneWidth.html +1 -1
- package/docs/examples/w-group-baggage_contentBackgroundColor_contentBackgroundColorHover.html +1 -1
- package/docs/examples/w-group-baggage_contentBorderColor_contentBorderColorHover.html +1 -1
- package/docs/examples/w-group-baggage_contentBorderRadius.html +1 -1
- package/docs/examples/w-group-baggage_contentBorderWidth.html +1 -1
- package/docs/examples/w-group-baggage_contentPaddingStyle.html +1 -1
- package/docs/examples/w-group-baggage_contentTextColor_contentTextColorHover.html +1 -1
- package/docs/examples/w-group-baggage_contentTextFontSize.html +1 -1
- package/docs/examples/w-group-baggage_default.html +1 -1
- package/docs/examples/w-group-baggage_keyTag_keyText.html +1 -1
- package/docs/examples/w-group-baggage_slot tag.html +1 -1
- package/docs/examples/w-group-baggage_slot text-sub.html +1 -1
- package/docs/examples/w-group-baggage_slot text_contentPaddingStyle.html +1 -1
- package/docs/examples/w-group-baggage_tagBackgroundColor_tagBackgroundColorHover.html +1 -1
- package/docs/examples/w-group-baggage_tagBorderColor_tagBorderColorHover.html +1 -1
- package/docs/examples/w-group-baggage_tagBorderRadius.html +1 -1
- package/docs/examples/w-group-baggage_tagBorderWidth.html +1 -1
- package/docs/examples/w-group-baggage_tagClickable_contentClickable_events.html +1 -1
- package/docs/examples/w-group-baggage_tagDistBetweenTopAndBaseline.html +1 -1
- package/docs/examples/w-group-baggage_tagPaddingStyle_contentShiftTopFromBaseline.html +1 -1
- package/docs/examples/w-group-baggage_tagTextColor_tagTextColorHover.html +1 -1
- package/docs/examples/w-group-baggage_tagTextFontSize_contentShiftTopFromBaseline.html +1 -1
- package/docs/examples/w-group-chip-check_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-group-chip-check_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-check_borderRadius_borderRadiusStyle_paddingStyle.html +1 -1
- package/docs/examples/w-group-chip-check_borderWidth_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_click (console.log).html +1 -1
- package/docs/examples/w-group-chip-check_default.html +1 -1
- package/docs/examples/w-group-chip-check_group (only one).html +1 -1
- package/docs/examples/w-group-chip-check_group_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_group_groupBorderRadiusStyle_groupShift_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-check_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-chip-check_icon (material).html +1 -1
- package/docs/examples/w-group-chip-check_iconColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_iconColor_iconColorHover.html +1 -1
- package/docs/examples/w-group-chip-check_loading.html +1 -1
- package/docs/examples/w-group-chip-check_loading_loadingColor.html +1 -1
- package/docs/examples/w-group-chip-check_marginStyle.html +1 -1
- package/docs/examples/w-group-chip-check_no shadowActive.html +1 -1
- package/docs/examples/w-group-chip-check_not editable.html +1 -1
- package/docs/examples/w-group-chip-check_paddingStyle_borderRadius_textColor_iconColor.html +1 -1
- package/docs/examples/w-group-chip-check_paddingStyle_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-group-chip-check_shadow.html +1 -1
- package/docs/examples/w-group-chip-check_shadowActiveStyle.html +1 -1
- package/docs/examples/w-group-chip-check_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-chip-check_shiftLeft.html +1 -1
- package/docs/examples/w-group-chip-check_shiftLeft_shiftRight.html +1 -1
- package/docs/examples/w-group-chip-check_slot_shadow.html +1 -1
- package/docs/examples/w-group-chip-check_textColor.html +1 -1
- package/docs/examples/w-group-chip-check_textColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_textColor_textColorHover.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-chip-radio_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-group-chip-radio_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-radio_borderRadius_borderRadiusStyle_paddingStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_borderWidth_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_click (console.log).html +1 -1
- package/docs/examples/w-group-chip-radio_default.html +1 -1
- package/docs/examples/w-group-chip-radio_group (only one).html +1 -1
- package/docs/examples/w-group-chip-radio_group_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_group_groupBorderRadiusStyle_groupShift_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-radio_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-chip-radio_icon (material).html +1 -1
- package/docs/examples/w-group-chip-radio_iconColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_iconColor_iconColorHover.html +1 -1
- package/docs/examples/w-group-chip-radio_loading.html +1 -1
- package/docs/examples/w-group-chip-radio_loading_loadingColor.html +1 -1
- package/docs/examples/w-group-chip-radio_marginStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_no shadowActive.html +1 -1
- package/docs/examples/w-group-chip-radio_not editable.html +1 -1
- package/docs/examples/w-group-chip-radio_paddingStyle_borderRadius_textColor_iconColor.html +1 -1
- package/docs/examples/w-group-chip-radio_paddingStyle_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-group-chip-radio_shadow.html +1 -1
- package/docs/examples/w-group-chip-radio_shadowActiveStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_shiftLeft.html +1 -1
- package/docs/examples/w-group-chip-radio_shiftLeft_shiftRight.html +1 -1
- package/docs/examples/w-group-chip-radio_slot_shadow.html +1 -1
- package/docs/examples/w-group-chip-radio_textColor.html +1 -1
- package/docs/examples/w-group-chip-radio_textColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_textColor_textColorHover.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-dragdrop_default.html +1 -1
- package/docs/examples/w-group-dragdrop_event (dragdrop).html +1 -1
- package/docs/examples/w-group-dragdrop_items(string array).html +1 -1
- package/docs/examples/w-group-dragdrop_keyBinder.html +1 -1
- package/docs/examples/w-group-dragdrop_not draggable.html +1 -1
- package/docs/examples/w-group-dragdrop_not itemStyleInline (block).html +1 -1
- package/docs/examples/w-group-icon-check_backgroundColor_backgroundColorHover_backgroundColorFocus_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_borderWidth_borderColor_borderColorHover_borderColorFocus.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_icon (material).html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_not editable.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_one.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_shadow.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-icon-check_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-check_icon (material).html +1 -1
- package/docs/examples/w-group-icon-check_iconColor_iconColorHover_iconColorFocus_iconColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_not editable.html +1 -1
- package/docs/examples/w-group-icon-check_one.html +1 -1
- package/docs/examples/w-group-icon-check_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-check_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-check_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-check_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-check_shadow.html +1 -1
- package/docs/examples/w-group-icon-check_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-icon-radio_backgroundColor_backgroundColorHover_backgroundColorFocus_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_borderWidth_borderColor_borderColorHover_borderColorFocus.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_icon (material).html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_not editable.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_one.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_shadow.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-icon-radio_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-radio_icon (material).html +1 -1
- package/docs/examples/w-group-icon-radio_iconColor_iconColorHover_iconColorFocus_iconColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_not editable.html +1 -1
- package/docs/examples/w-group-icon-radio_one.html +1 -1
- package/docs/examples/w-group-icon-radio_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-radio_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-radio_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-radio_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-radio_shadow.html +1 -1
- package/docs/examples/w-group-icon-radio_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-tags_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-group-tags_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-tags_borderRadius.html +1 -1
- package/docs/examples/w-group-tags_closeWithInterceptor.html +1 -1
- package/docs/examples/w-group-tags_default.html +1 -1
- package/docs/examples/w-group-tags_editableClose(no close button).html +1 -1
- package/docs/examples/w-group-tags_editableClose(no close button)_editableInput(no input text).html +1 -1
- package/docs/examples/w-group-tags_editableInput(no input text).html +1 -1
- package/docs/examples/w-group-tags_enableActive_valueActive.html +1 -1
- package/docs/examples/w-group-tags_enableCloseEventOnly.html +1 -1
- package/docs/examples/w-group-tags_enableNodata.html +1 -1
- package/docs/examples/w-group-tags_enableNodata_nodata_editableClose(no close button)_editableInput(no input text).html +1 -1
- package/docs/examples/w-group-tags_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-tags_icon (material).html +1 -1
- package/docs/examples/w-group-tags_iconColor_iconColorHover_textColor_textColorHover.html +1 -1
- package/docs/examples/w-group-tags_icon_iconColor_iconColorHover.html +1 -1
- package/docs/examples/w-group-tags_inputTextButtonTooltip.html +1 -1
- package/docs/examples/w-group-tags_inputTextFontSize_inputTextColor_inputTextBorderColor_inputTextBorderColorHover.html +1 -1
- package/docs/examples/w-group-tags_inputTextWidth.html +1 -1
- package/docs/examples/w-group-tags_marginStyle.html +1 -1
- package/docs/examples/w-group-tags_modify loading by callback in click.html +1 -1
- package/docs/examples/w-group-tags_modify prog by callback in click.html +1 -1
- package/docs/examples/w-group-tags_no enableNodata.html +1 -1
- package/docs/examples/w-group-tags_no shadow_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-tags_not draggable.html +1 -1
- package/docs/examples/w-group-tags_not editable.html +1 -1
- package/docs/examples/w-group-tags_object items.html +1 -1
- package/docs/examples/w-group-tags_object items_addButtonIcon_addButtonTextColor_addButtonTextColorHover.html +1 -1
- package/docs/examples/w-group-tags_object items_addButtonText_addButtonTooltip.html +1 -1
- package/docs/examples/w-group-tags_object items_keyIcon.html +1 -1
- package/docs/examples/w-group-tags_object items_keyText.html +1 -1
- package/docs/examples/w-group-tags_object items_keyTooltip.html +1 -1
- package/docs/examples/w-group-tags_object items_slot item.html +1 -1
- package/docs/examples/w-group-tags_object items_slot item_editableInput(no input button)_enableActive.html +1 -1
- package/docs/examples/w-group-tags_object items_slot item_enableColorsFromItem_editableInput(no input button).html +1 -1
- package/docs/examples/w-group-tags_paddingStyle_icon_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-group-tags_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-group-tags_shadowStyle.html +1 -1
- package/docs/examples/w-group-tags_shiftLeft.html +1 -1
- package/docs/examples/w-group-tags_slot input.html +1 -1
- package/docs/examples/w-group-tags_slot item.html +1 -1
- package/docs/examples/w-group-tags_slot item_enableActive_valueActive_paddingStyle.html +1 -1
- package/docs/examples/w-group-tags_suggests.html +1 -1
- package/docs/examples/w-group-tags_suggests_inputTextColor_inputExpansionIconColor.html +1 -1
- package/docs/examples/w-group-tags_suggests_placeholder_noResultsText.html +1 -1
- package/docs/examples/w-group-tags_suggests_slot suggest_addMode.html +1 -1
- package/docs/examples/w-group-tags_suggests_slot suggest_addMode_addWhenInputByOutside.html +1 -1
- package/docs/examples/w-group-tags_suggests_slot suggest_addMode_inputKeyText.html +1 -1
- package/docs/examples/w-group-tags_suggests_suggectItemFontSize_suggectItemTextColor_suggectItemTextColorHover.html +1 -1
- package/docs/examples/w-group-tags_textColor.html +1 -1
- package/docs/examples/w-group-tags_textColor_textColorHover.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_area.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_bar.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_heatmap.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_large heatmap.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_line.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_pie.html +1 -1
- package/docs/examples/w-highstock-vue-dyn_area.html +1 -1
- package/docs/examples/w-highstock-vue-dyn_line.html +1 -1
- package/docs/examples/w-icon_icon (fontawesome).html +1 -1
- package/docs/examples/w-icon_icon (fontawesome)_color_colorHover.html +1 -1
- package/docs/examples/w-icon_icon (fontawesome)_size.html +1 -1
- package/docs/examples/w-icon_icon (fontawesome)_timeTransition.html +1 -1
- package/docs/examples/w-icon_icon (material).html +1 -1
- package/docs/examples/w-icon_icon (material)_color_colorHover.html +1 -1
- package/docs/examples/w-icon_icon (material)_size.html +1 -1
- package/docs/examples/w-icon_icon (material)_timeTransition.html +1 -1
- package/docs/examples/w-image-cascading_arrangeWhenFinish.html +1 -1
- package/docs/examples/w-image-cascading_colNum.html +1 -1
- package/docs/examples/w-image-cascading_default(imageWidth=300).html +1 -1
- package/docs/examples/w-image-cascading_imageWidth.html +1 -1
- package/docs/examples/w-image-cascading_imageWidthSoft.html +1 -1
- package/docs/examples/w-image-lazy_width_height.html +1 -1
- package/docs/examples/w-image-lazy_width_height_delay.html +1 -1
- package/docs/examples/w-image-viewer_multiple image with navbar.html +1 -1
- package/docs/examples/w-image-viewer_one image.html +1 -1
- package/docs/examples/w-input-checkbox_arrange_paddingStyle.html +1 -1
- package/docs/examples/w-input-checkbox_click (console.log).html +1 -1
- package/docs/examples/w-input-checkbox_default.html +1 -1
- package/docs/examples/w-input-checkbox_not editable.html +1 -1
- package/docs/examples/w-input-checkbox_not editable_textColorDisabled.html +1 -1
- package/docs/examples/w-input-checkbox_object items_keyText.html +1 -1
- package/docs/examples/w-input-checkbox_paddingStyle.html +1 -1
- package/docs/examples/w-input-checkbox_slot_paddingStyle_verticalAlign_inputSize.html +1 -1
- package/docs/examples/w-input-checkbox_textColor_textColorHover_textColorActive.html +1 -1
- package/docs/examples/w-input-checkbox_textFontSize_paddingStyle.html +1 -1
- package/docs/examples/w-input-radio_arrange_paddingStyle.html +1 -1
- package/docs/examples/w-input-radio_click (console.log).html +1 -1
- package/docs/examples/w-input-radio_default.html +1 -1
- package/docs/examples/w-input-radio_not editable.html +1 -1
- package/docs/examples/w-input-radio_not editable_textColorDisabled.html +1 -1
- package/docs/examples/w-input-radio_object items_keyText.html +1 -1
- package/docs/examples/w-input-radio_paddingStyle.html +1 -1
- package/docs/examples/w-input-radio_slot_paddingStyle_verticalAlign_inputSize.html +1 -1
- package/docs/examples/w-input-radio_textColor_textColorHover_textColorActive.html +1 -1
- package/docs/examples/w-input-radio_textFontSize_paddingStyle.html +1 -1
- package/docs/examples/w-json-view_default.html +1 -1
- package/docs/examples/w-json-view_events.html +1 -1
- package/docs/examples/w-json-view_filterKeywords_funFilter.html +1 -1
- package/docs/examples/w-json-view_filterKeywords_noResultsText.html +1 -1
- package/docs/examples/w-json-view_iconColor_keyColor_keyNumbersColor_numColor.html +1 -1
- package/docs/examples/w-json-view_iconSize(24)_defItemHeight(32).html +1 -1
- package/docs/examples/w-json-view_large data (15,500 lines).html +1 -1
- package/docs/examples/w-json-view_no viewHeightMax.html +1 -1
- package/docs/examples/w-json-view_rippleColor.html +1 -1
- package/docs/examples/w-json-view_toggleItemsAll.html +1 -1
- package/docs/examples/w-json-view_toggleItemsByFun.html +1 -1
- package/docs/examples/w-json-view_viewHeightMax.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_contourSet for rain data.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_contourSets.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_pointSets.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_polygonSets.html +1 -1
- package/docs/examples/w-level-grade_arrowColor.html +1 -1
- package/docs/examples/w-level-grade_arrowSize.html +1 -1
- package/docs/examples/w-level-grade_default.html +1 -1
- package/docs/examples/w-level-grade_gradeSize.html +1 -1
- package/docs/examples/w-level-grade_gradeTextFontSize_gradeTextColor.html +1 -1
- package/docs/examples/w-level-grade_keyColor_keyLow_keyUp_keyDelimiter.html +1 -1
- package/docs/examples/w-level-grade_slot low_up_delimiter_text.html +1 -1
- package/docs/examples/w-level-grade_spaceForGrade.html +1 -1
- package/docs/examples/w-level-grade_tickDig.html +1 -1
- package/docs/examples/w-level-grade_tickDig_text.html +1 -1
- package/docs/examples/w-level-grade_tickDig_text_spaceForText.html +1 -1
- package/docs/examples/w-list-check_auto scroll.html +1 -1
- package/docs/examples/w-list-check_default.html +1 -1
- package/docs/examples/w-list-check_enableQuery.html +1 -1
- package/docs/examples/w-list-check_enableQuery_border.html +1 -1
- package/docs/examples/w-list-check_enableQuery_queryKeysPickForObjItem.html +1 -1
- package/docs/examples/w-list-check_enableQuery_querySepLineColor_querySepLineWidth.html +1 -1
- package/docs/examples/w-list-check_enableQuery_queryTextFontSize_queryTextColor_queryPlaceholder.html +1 -1
- package/docs/examples/w-list-check_enableQuery_slot item-content_itemBackgroundColorActive_itemCheckIconCheckedIconColorActive.html +1 -1
- package/docs/examples/w-list-check_item with no editable.html +1 -1
- package/docs/examples/w-list-check_item with no editable__itemCheckIconCheckedIconColorDisabled_itemCheckIconUncheckedIconColorDisabled.html +1 -1
- package/docs/examples/w-list-check_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-check_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-check_itemCheckIconCheckedIconColor_itemCheckIconCheckedIconColorHover_itemCheckIconCheckedIconColorActive_itemCheckIconUncheckedIconColor.html +1 -1
- package/docs/examples/w-list-check_itemCheckIconCheckedIcon_itemCheckIconUncheckedIcon.html +1 -1
- package/docs/examples/w-list-check_itemCheckIconIconSize_itemIconSize_itemTextFontSize.html +1 -1
- package/docs/examples/w-list-check_itemRippleColor.html +1 -1
- package/docs/examples/w-list-check_itemTextColor_itemTextColorHover_itemTextColorActive_itemIconColor.html +1 -1
- package/docs/examples/w-list-check_keyPickForObjItem.html +1 -1
- package/docs/examples/w-list-check_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-check_paddingStyle_spaceBetweenCheckboxAndContent.html +1 -1
- package/docs/examples/w-list-check_slot footer.html +1 -1
- package/docs/examples/w-list-check_slot header.html +1 -1
- package/docs/examples/w-list-check_string items.html +1 -1
- package/docs/examples/w-list-expand_activeMode(multi).html +1 -1
- package/docs/examples/w-list-expand_auto scroll.html +1 -1
- package/docs/examples/w-list-expand_default.html +1 -1
- package/docs/examples/w-list-expand_itemBackgroundColor_itemBackgroundColorHover_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-expand_keyText_keyIcon_keyDsp.html +1 -1
- package/docs/examples/w-list-expand_paddingStyle.html +1 -1
- package/docs/examples/w-list-expand_slot footer.html +1 -1
- package/docs/examples/w-list-expand_slot header.html +1 -1
- package/docs/examples/w-list-expand_slot item-content_itemTextColor_itemTextColorHover_itemTextColorActive.html +1 -1
- package/docs/examples/w-list-expand_slot item-header_item-content.html +1 -1
- package/docs/examples/w-list-expand_string items_slot item-content.html +1 -1
- package/docs/examples/w-list-horizontal_borderBottomSize.html +1 -1
- package/docs/examples/w-list-horizontal_default.html +1 -1
- package/docs/examples/w-list-horizontal_item with no editable.html +1 -1
- package/docs/examples/w-list-horizontal_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-horizontal_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-horizontal_itemBackgroundColor_itemBackgroundColorHover_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-horizontal_itemBorderRadius.html +1 -1
- package/docs/examples/w-list-horizontal_itemBorderRadius_space.html +1 -1
- package/docs/examples/w-list-horizontal_itemRippleColor.html +1 -1
- package/docs/examples/w-list-horizontal_itemRippleColor_borderBottomColor_itemTextColorActive_itemIconColorActive.html +1 -1
- package/docs/examples/w-list-horizontal_itemTextFontSize_itemIconSize.html +1 -1
- package/docs/examples/w-list-horizontal_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-horizontal_no borderBottom.html +1 -1
- package/docs/examples/w-list-horizontal_paddingStyle.html +1 -1
- package/docs/examples/w-list-horizontal_paddingStyle_borderBottomColor_itemRippleColor_itemTextColor.html +1 -1
- package/docs/examples/w-list-horizontal_slot item.html +1 -1
- package/docs/examples/w-list-horizontal_space.html +1 -1
- package/docs/examples/w-list-horizontal_string items.html +1 -1
- package/docs/examples/w-list-horizontal_string items_itemActive.html +1 -1
- package/docs/examples/w-list-radio_auto scroll.html +1 -1
- package/docs/examples/w-list-radio_default.html +1 -1
- package/docs/examples/w-list-radio_enableQuery.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_border.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_queryKeysPickForObjItem.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_querySepLineColor_querySepLineWidth.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_queryTextFontSize_queryTextColor_queryPlaceholder.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_slot item-content_itemBackgroundColorActive_itemCheckIconCheckedIconColorActive.html +1 -1
- package/docs/examples/w-list-radio_item with no editable.html +1 -1
- package/docs/examples/w-list-radio_item with no editable__itemCheckIconCheckedIconColorDisabled_itemCheckIconUncheckedIconColorDisabled.html +1 -1
- package/docs/examples/w-list-radio_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-radio_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-radio_itemCheckIconCheckedIconColor_itemCheckIconCheckedIconColorHover_itemCheckIconCheckedIconColorActive_itemCheckIconUncheckedIconColor.html +1 -1
- package/docs/examples/w-list-radio_itemCheckIconCheckedIcon_itemCheckIconUncheckedIcon.html +1 -1
- package/docs/examples/w-list-radio_itemCheckIconIconSize_itemIconSize_itemTextFontSize.html +1 -1
- package/docs/examples/w-list-radio_itemRippleColor.html +1 -1
- package/docs/examples/w-list-radio_itemTextColor_itemTextColorHover_itemTextColorActive_itemIconColor.html +1 -1
- package/docs/examples/w-list-radio_keyPickForObjItem.html +1 -1
- package/docs/examples/w-list-radio_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-radio_paddingStyle_spaceBetweenCheckboxAndContent.html +1 -1
- package/docs/examples/w-list-radio_slot footer.html +1 -1
- package/docs/examples/w-list-radio_slot header.html +1 -1
- package/docs/examples/w-list-radio_string items.html +1 -1
- package/docs/examples/w-list-vertical_auto scroll.html +1 -1
- package/docs/examples/w-list-vertical_default.html +1 -1
- package/docs/examples/w-list-vertical_enableActive (no active).html +1 -1
- package/docs/examples/w-list-vertical_enableActive (no active)_itemRippleColor.html +1 -1
- package/docs/examples/w-list-vertical_item with no editable.html +1 -1
- package/docs/examples/w-list-vertical_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-vertical_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-vertical_itemActive.html +1 -1
- package/docs/examples/w-list-vertical_itemActive_itemBackgroundColor_itemBackgroundColorHover_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-vertical_itemActive_itemTextColor_itemTextColorHover_itemTextColorActive.html +1 -1
- package/docs/examples/w-list-vertical_itemIconSize_itemTextFontSize.html +1 -1
- package/docs/examples/w-list-vertical_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-vertical_paddingStyle.html +1 -1
- package/docs/examples/w-list-vertical_slot footer.html +1 -1
- package/docs/examples/w-list-vertical_slot header.html +1 -1
- package/docs/examples/w-list-vertical_slot item_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-vertical_string items.html +1 -1
- package/docs/examples/w-list-vertical_string items_itemActive.html +1 -1
- package/docs/examples/w-maplibregl-vue-dyn_clusterPoints.html +1 -1
- package/docs/examples/w-maplibregl-vue-dyn_contourSet for rain data.html +1 -1
- package/docs/examples/w-maplibregl-vue-dyn_contourSets.html +1 -1
- package/docs/examples/w-maplibregl-vue-dyn_pointSets.html +1 -1
- package/docs/examples/w-maplibregl-vue-dyn_polygonSets.html +1 -1
- package/docs/examples/w-maplibregl-vue-dyn_polylineSets.html +1 -1
- package/docs/examples/w-panel-avatar_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_avatarBorderRadius.html +1 -1
- package/docs/examples/w-panel-avatar_avatarBorderWidth_avatarBorderColor_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_avatarIcon (fontawesome).html +1 -1
- package/docs/examples/w-panel-avatar_avatarIcon (material).html +1 -1
- package/docs/examples/w-panel-avatar_avatarIcon_avatarIconSize_avatarIconColor_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_avatarOuterPadding_avatarInnerPadding.html +1 -1
- package/docs/examples/w-panel-avatar_contentBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_contentBorderRadius.html +1 -1
- package/docs/examples/w-panel-avatar_contentShadow.html +1 -1
- package/docs/examples/w-panel-avatar_default.html +1 -1
- package/docs/examples/w-panel-avatar_headerPadding_headerTextColor_headerTextSize_subHeaderTextColor.html +1 -1
- package/docs/examples/w-panel-avatar_headerVerticalAlign_spaceVBetweenHeaderAndContent.html +1 -1
- package/docs/examples/w-panel-avatar_no avatarShadow.html +1 -1
- package/docs/examples/w-panel-avatar_sepLineWidth_sepLineColor.html +1 -1
- package/docs/examples/w-panel-avatar_shiftVFromAvaterCenter.html +1 -1
- package/docs/examples/w-panel-avatar_slot avatar_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_spaceHBetweenAvatarAndHeader_spaceVBetweenHeaderAndContent.html +1 -1
- package/docs/examples/w-panel-bulge_contentBackgroundColor.html +1 -1
- package/docs/examples/w-panel-bulge_contentBorderRadius.html +1 -1
- package/docs/examples/w-panel-bulge_default.html +1 -1
- package/docs/examples/w-panel-bulge_headerBorderRadius.html +1 -1
- package/docs/examples/w-panel-bulge_headerTextColor_headerBackgroundColor.html +1 -1
- package/docs/examples/w-panel-bulge_no headerShadow_no contentShadow, with green outer.html +1 -1
- package/docs/examples/w-panel-bulge_paddingStyle.html +1 -1
- package/docs/examples/w-panel-bulge_slot for header_headerBorderRadius_headerBackgroundColor(linear-gradient).html +1 -1
- package/docs/examples/w-panel-bulge_with grey outer.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_barBorderSize_barBorderColor.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_barColor.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_barSize.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_centerWidthMin_centerWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_default.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_leftWidthMin_leftWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_ratio1Min_ratio1Max.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_ratio1_ratio2.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_ratio2Min_ratio2Max.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_rightWidthMin_rightWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal-triple_sectionWidthMin_sectionWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_barBorderSize_barBorderColor.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_barColor.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_barSize.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_default.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_leftWidthMin_leftWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_ratio.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_ratioMin_ratioMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_rightWidthMin_rightWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-multi_barBorderSize_barBorderColor.html +1 -1
- package/docs/examples/w-panel-divide-multi_barColor.html +1 -1
- package/docs/examples/w-panel-divide-multi_barSize.html +1 -1
- package/docs/examples/w-panel-divide-multi_default.html +1 -1
- package/docs/examples/w-panel-divide-multi_layouts.html +1 -1
- package/docs/examples/w-panel-divide-multi_ratiosX_ratiosY.html +1 -1
- package/docs/examples/w-panel-divide-multi_rows_cols.html +1 -1
- package/docs/examples/w-panel-divide-multi_sectionWidthMax_sectionHeightMax.html +1 -1
- package/docs/examples/w-panel-divide-multi_sectionWidthMin_sectionHeightMin.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_barBorderSize_barBorderColor.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_barColor.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_barSize.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_bottomHeightMin_bottomHeightMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_centerHeightMin_centerHeightMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_default.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_ratio1Min_ratio1Max.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_ratio1_ratio2.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_ratio2Min_ratio2Max.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_sectionHeightMin_sectionHeightMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical-triple_topHeightMin_topHeightMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical_barBorderSize_barBorderColor.html +1 -1
- package/docs/examples/w-panel-divide-vertical_barColor.html +1 -1
- package/docs/examples/w-panel-divide-vertical_barSize.html +1 -1
- package/docs/examples/w-panel-divide-vertical_bottomHeightMin_bottomHeightMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical_default.html +1 -1
- package/docs/examples/w-panel-divide-vertical_ratio.html +1 -1
- package/docs/examples/w-panel-divide-vertical_ratioMin_ratioMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical_topHeightMin_topHeightMax.html +1 -1
- package/docs/examples/w-panel-label-item_labelColor.html +1 -1
- package/docs/examples/w-panel-label-item_labelFontSize.html +1 -1
- package/docs/examples/w-panel-label-item_labelVerticalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_labelWidth.html +1 -1
- package/docs/examples/w-panel-label-item_labelWidth_labelHorizontalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelColor.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelFontSize.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelWidth.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelWidth_labelHorizontalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_slot item-sub.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_slot item-sub_floatForItemSub.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_slot label.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_space.html +1 -1
- package/docs/examples/w-panel-label-item_slot item-sub.html +1 -1
- package/docs/examples/w-panel-label-item_slot item-sub_floatForItemSub.html +1 -1
- package/docs/examples/w-panel-label-item_slot label.html +1 -1
- package/docs/examples/w-panel-label-item_space.html +1 -1
- package/docs/examples/w-panel-label-item_with group-tags_labelVerticalAlign_labelShiftTop.html +1 -1
- package/docs/examples/w-panel-label-item_with select.html +1 -1
- package/docs/examples/w-panel-label-item_with select_seplines.html +1 -1
- package/docs/examples/w-panel-label-item_with text.html +1 -1
- package/docs/examples/w-panel-label-item_with text_seplines.html +1 -1
- package/docs/examples/w-panel-label-item_with textarea_labelVerticalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_with textarea_seplines.html +1 -1
- package/docs/examples/w-panel-scale_for select.html +1 -1
- package/docs/examples/w-panel-scale_for v-btn.html +1 -1
- package/docs/examples/w-panel-scale_for w-panel-bulge.html +1 -1
- package/docs/examples/w-panel-scale_for w-panel-scrolly.html +1 -1
- package/docs/examples/w-panel-scale_for w-text-suggest.html +1 -1
- package/docs/examples/w-panel-scrolly_barOpacity_barOpacityHover.html +1 -1
- package/docs/examples/w-panel-scrolly_default.html +1 -1
- package/docs/examples/w-panel-scrolly_events.html +1 -1
- package/docs/examples/w-panel-scrolly_scrollTop.html +1 -1
- package/docs/examples/w-panel-stripe_borderRadius.html +1 -1
- package/docs/examples/w-panel-stripe_buttons in slot footer.html +1 -1
- package/docs/examples/w-panel-stripe_headerBackgroundColor_footerBackgroundColor.html +1 -1
- package/docs/examples/w-panel-stripe_no footer.html +1 -1
- package/docs/examples/w-panel-stripe_no header.html +1 -1
- package/docs/examples/w-panel-stripe_no shadow, with crimson outer.html +1 -1
- package/docs/examples/w-panel-stripe_only slot icon and slot title in header.html +1 -1
- package/docs/examples/w-panel-stripe_only slot title in header.html +1 -1
- package/docs/examples/w-panel-stripe_padding.html +1 -1
- package/docs/examples/w-panel-stripe_separate for slot content.html +1 -1
- package/docs/examples/w-panel-stripe_slot icon (fontawesome).html +1 -1
- package/docs/examples/w-panel-stripe_slot icon, slot title, slot description, slot content and slot footer.html +1 -1
- package/docs/examples/w-panel-stripe_table in slot content.html +1 -1
- package/docs/examples/w-panel-stripe_with grey outer.html +1 -1
- package/docs/examples/w-pick-surface_axis.html +234 -0
- package/docs/examples/w-pick-surface_cursorSize_cursorColor_cursorBorderColor.html +226 -0
- package/docs/examples/w-pick-surface_default.html +230 -0
- package/docs/examples/w-pick-surface_events.html +233 -0
- package/docs/examples/w-pick-surface_locLeft(sync)_locTop(sync).html +233 -0
- package/docs/examples/w-pick-surface_not editable.html +221 -0
- package/docs/examples/w-pick-surface_slot.html +222 -0
- package/docs/examples/w-pick-surface_width_height.html +222 -0
- package/docs/examples/w-popup-edit-text_default.html +1 -1
- package/docs/examples/w-popup-edit-text_in table.html +1 -1
- package/docs/examples/w-popup-edit-text_minWidthForPopup.html +1 -1
- package/docs/examples/w-popup-edit-text_minWidthForValue.html +1 -1
- package/docs/examples/w-popup-edit-text_no title.html +1 -1
- package/docs/examples/w-popup-edit-text_title_contentIcon_contentIconColor_contentIconSize.html +1 -1
- package/docs/examples/w-popup-edit-text_title_footerBackgroundColor.html +1 -1
- package/docs/examples/w-popup-edit-text_title_inputTextColor_contentIconColor_contentBackgroundColor.html +1 -1
- package/docs/examples/w-popup-edit-text_title_saveBtnText_saveBtnTextColor_saveBtnTextColorHover.html +1 -1
- package/docs/examples/w-popup-edit-text_title_titleColor_titleFontSize_headerBackgroundColor.html +1 -1
- package/docs/examples/w-popup_auto flipping in dialog.html +1 -1
- package/docs/examples/w-popup_auto flipping in scroll panel.html +1 -1
- package/docs/examples/w-popup_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-popup_autoFitMinWidth.html +1 -1
- package/docs/examples/w-popup_backgroundColor.html +1 -1
- package/docs/examples/w-popup_borderRadius.html +1 -1
- package/docs/examples/w-popup_click item by latency hiding.html +1 -1
- package/docs/examples/w-popup_default.html +1 -1
- package/docs/examples/w-popup_in popup.html +1 -1
- package/docs/examples/w-popup_in scroll panel.html +1 -1
- package/docs/examples/w-popup_isolated.html +1 -1
- package/docs/examples/w-popup_maxWidth.html +1 -1
- package/docs/examples/w-popup_minWidth.html +1 -1
- package/docs/examples/w-popup_modeHide.html +1 -1
- package/docs/examples/w-popup_no shadow_backgroundColor.html +1 -1
- package/docs/examples/w-popup_not editable.html +1 -1
- package/docs/examples/w-popup_paddingStyle.html +1 -1
- package/docs/examples/w-popup_placement.html +1 -1
- package/docs/examples/w-popup_placementDistY.html +1 -1
- package/docs/examples/w-popup_shadowStyle.html +1 -1
- package/docs/examples/w-popup_slot for table_maxWidth.html +1 -1
- package/docs/examples/w-popup_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-popup_textFontSize.html +1 -1
- package/docs/examples/w-popup_transitionTime.html +1 -1
- package/docs/examples/w-progress-bar_decimal.html +1 -1
- package/docs/examples/w-progress-bar_default.html +1 -1
- package/docs/examples/w-progress-bar_enableContinuous.html +1 -1
- package/docs/examples/w-progress-bar_enableContinuous_continuousIncrease_continuousPeriod.html +1 -1
- package/docs/examples/w-progress-bar_enableContinuous_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-progress-bar_enableIconFinish (no iconFinish).html +1 -1
- package/docs/examples/w-progress-bar_enableIconWaiting (no iconWaiting).html +1 -1
- package/docs/examples/w-progress-bar_height.html +1 -1
- package/docs/examples/w-progress-bar_height_borderRadius.html +1 -1
- package/docs/examples/w-progress-bar_iconFinish (fontawesome).html +1 -1
- package/docs/examples/w-progress-bar_iconFinishColor.html +1 -1
- package/docs/examples/w-progress-bar_iconSize.html +1 -1
- package/docs/examples/w-progress-bar_iconWaiting (fontawesome).html +1 -1
- package/docs/examples/w-progress-bar_iconWaitingColor.html +1 -1
- package/docs/examples/w-progress-bar_progColor.html +1 -1
- package/docs/examples/w-progress-bar_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-progress-bar_title.html +1 -1
- package/docs/examples/w-progress-bar_title_titleTextColor.html +1 -1
- package/docs/examples/w-progress-bar_title_titleTextFontSize.html +1 -1
- package/docs/examples/w-progress-bar_value=0 (waiting).html +1 -1
- package/docs/examples/w-progress-bar_value=100 (finish).html +1 -1
- package/docs/examples/w-progress-bar_valueTextColor.html +1 -1
- package/docs/examples/w-progress-bar_valueTextFontSize.html +1 -1
- package/docs/examples/w-progress-circle_color.html +1 -1
- package/docs/examples/w-progress-circle_color_trackColor.html +1 -1
- package/docs/examples/w-progress-circle_color_trackColor_textColor.html +1 -1
- package/docs/examples/w-progress-circle_default.html +1 -1
- package/docs/examples/w-progress-circle_small size.html +1 -1
- package/docs/examples/w-progress-circle_tooltip.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-progress-circle_very small size.html +1 -1
- package/docs/examples/w-progress-circle_width.html +1 -1
- package/docs/examples/w-progress-circle_/344/270/255/346/226/207text.html +1 -1
- package/docs/examples/w-quill-vue-dyn_default.html +1 -1
- package/docs/examples/w-quill-vue-dyn_height.html +1 -1
- package/docs/examples/w-quill-vue-dyn_not editable.html +1 -1
- package/docs/examples/w-quill-vue-dyn_settings.html +1 -1
- package/docs/examples/w-segments-vertical_alignStart_alignEnd.html +1 -1
- package/docs/examples/w-segments-vertical_axisColor_tickColor_tickSize_tickLabelColor.html +1 -1
- package/docs/examples/w-segments-vertical_default.html +1 -1
- package/docs/examples/w-segments-vertical_events_textCanClick_segmentCanClick.html +1 -1
- package/docs/examples/w-segments-vertical_funFormatTickValue.html +1 -1
- package/docs/examples/w-segments-vertical_funSegmentBackgroundColor_funSegmentBorderColor.html +1 -1
- package/docs/examples/w-segments-vertical_items(continuous)_alignStart_alignEnd_textShift.html +1 -1
- package/docs/examples/w-segments-vertical_keyValueStart_keyValueEnd_keyText.html +1 -1
- package/docs/examples/w-segments-vertical_paddingStyle_textShift_width_height.html +1 -1
- package/docs/examples/w-segments-vertical_segmentBackgroundColor_segmentBorderColor_segmentSize.html +1 -1
- package/docs/examples/w-segments-vertical_segmentWithPopup_slot segment-popup.html +1 -1
- package/docs/examples/w-segments-vertical_slot support-left_width_paddingStyle_segmentBackgroundType.html +1 -1
- package/docs/examples/w-segments-vertical_slot support-right_width_paddingStyle_segmentBackgroundType.html +1 -1
- package/docs/examples/w-segments-vertical_slot text.html +1 -1
- package/docs/examples/w-segments-vertical_textFontSize_textColor_textBackgroundColor.html +1 -1
- package/docs/examples/w-segments-vertical_textTriangularSize_textTriangularRatio.html +1 -1
- package/docs/examples/w-segments-vertical_textWithPopup_slot text-popup.html +1 -1
- package/docs/examples/w-segments-vertical_title_titleColor_titleFontSize_titleShift.html +1 -1
- package/docs/examples/w-segments-vertical_valueMin_valueMax.html +1 -1
- package/docs/examples/w-segments-vertical_width_height.html +1 -1
- package/docs/examples/w-slider_default.html +1 -1
- package/docs/examples/w-slider_not editable.html +1 -1
- package/docs/examples/w-slider_not editable_progColorDisabled_progBackgroundColorDisabled_sliderBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-slider_progBorderRadius.html +1 -1
- package/docs/examples/w-slider_progColor_progBackgroundColor_sliderBackgroundColor_sliderBackgroundColorHover.html +1 -1
- package/docs/examples/w-slider_progHeight.html +1 -1
- package/docs/examples/w-slider_sliderSize.html +1 -1
- package/docs/examples/w-slider_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-slider_tooltipPlacementDist.html +1 -1
- package/docs/examples/w-slider_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-slider_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-slider_valueDecimal_valueMin_valueMax_valueStep.html +1 -1
- package/docs/examples/w-slider_valueMin_valueMax.html +1 -1
- package/docs/examples/w-slider_valueStep.html +1 -1
- package/docs/examples/w-switch_checkedSwitchCircleColor_checkedSwitchCircleColorHover_checkedSwitchBarColor_checkedSwitchBarColorHover.html +1 -1
- package/docs/examples/w-switch_default.html +1 -1
- package/docs/examples/w-switch_not editable.html +1 -1
- package/docs/examples/w-switch_not editable_checkedSwitchCircleColorDisabled_checkedSwitchBarColorDisabled_uncheckedSwitchCircleColorDisabled.html +1 -1
- package/docs/examples/w-switch_slot.html +1 -1
- package/docs/examples/w-switch_switchSize_textFontSize.html +1 -1
- package/docs/examples/w-switch_text.html +1 -1
- package/docs/examples/w-switch_text_textColor_textColorHover.html +1 -1
- package/docs/examples/w-switch_uncheckedSwitchCircleColor_uncheckedSwitchCircleColorHover_uncheckedSwitchBarColor_uncheckedSwitchBarColorHover.html +1 -1
- package/docs/examples/w-switch_use string (y or n).html +1 -1
- package/docs/examples/w-table-dyn_default.html +1 -1
- package/docs/examples/w-table-dyn_editable.html +1 -1
- package/docs/examples/w-table-dyn_editable_checkId.html +1 -1
- package/docs/examples/w-table-dyn_editable_checkId_opt.modifyDataWhenSave_save(call cmp. method).html +1 -1
- package/docs/examples/w-table-dyn_editable_checkId_successMsgFromAddRow_errorMsgFromAddRow.html +1 -1
- package/docs/examples/w-table-dyn_editable_inforPaddingStyle_menuBackgroundColor.html +1 -1
- package/docs/examples/w-table-dyn_editable_language_checkId_tooltipAddRow.html +1 -1
- package/docs/examples/w-table-dyn_editable_language_textLabelDataName_textPlaceholderDataName.html +1 -1
- package/docs/examples/w-table-dyn_editable_no enableInfor.html +1 -1
- package/docs/examples/w-table-dyn_editable_no enableMenu.html +1 -1
- package/docs/examples/w-table-dyn_editable_opt.beforeAddRow.html +1 -1
- package/docs/examples/w-table-dyn_editable_opt.kpConvertKeysWhenUploadData.html +1 -1
- package/docs/examples/w-table-dyn_editable_opt.optForUploadData.html +1 -1
- package/docs/examples/w-table-dyn_editable_slot btns-right.html +1 -1
- package/docs/examples/w-table-dyn_fixIds (fix id).html +1 -1
- package/docs/examples/w-table-dyn_hideIds (hide mappingId).html +1 -1
- package/docs/examples/w-table-dyn_name_description.html +1 -1
- package/docs/examples/w-table-dyn_no enableInfor.html +1 -1
- package/docs/examples/w-table-dyn_no enableMenu.html +1 -1
- package/docs/examples/w-table-dyn_opt.kpCellFormat.html +1 -1
- package/docs/examples/w-table-dyn_opt.kpHead.html +1 -1
- package/docs/examples/w-table-dyn_removeIdsWhenDownload (remove id, mappingId, order, isActive).html +1 -1
- package/docs/examples/w-table-dyn_slot btns-left.html +1 -1
- package/docs/examples/w-table-dyn_slot btns-right.html +1 -1
- package/docs/examples/w-table-dyn_slot cell-render.html +1 -1
- package/docs/examples/w-table-dyn_slot cell-tooltip.html +1 -1
- package/docs/examples/w-table-dyn_slot head-render.html +1 -1
- package/docs/examples/w-table-dyn_slot head-tooltip.html +1 -1
- package/docs/examples/w-table-dyn_slot infor (name_description).html +1 -1
- package/docs/examples/w-table-dyn_sortColIds (sort by order).html +1 -1
- package/docs/examples/w-text-int_borderRadius.html +1 -1
- package/docs/examples/w-text-int_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text-int_border_borderRadius.html +1 -1
- package/docs/examples/w-text-int_border_buttonColor_buttonColorHover_buttonColorFocus.html +1 -1
- package/docs/examples/w-text-int_border_default.html +1 -1
- package/docs/examples/w-text-int_border_not editable.html +1 -1
- package/docs/examples/w-text-int_border_width.html +1 -1
- package/docs/examples/w-text-int_buttonColor_buttonColorHover_buttonColorFocus.html +1 -1
- package/docs/examples/w-text-int_buttonIconSize.html +1 -1
- package/docs/examples/w-text-int_default.html +1 -1
- package/docs/examples/w-text-int_not editable.html +1 -1
- package/docs/examples/w-text-int_textColor.html +1 -1
- package/docs/examples/w-text-int_textFontSize.html +1 -1
- package/docs/examples/w-text-int_width.html +1 -1
- package/docs/examples/w-text-select_a lot of items.html +1 -1
- package/docs/examples/w-text-select_borderRadius.html +1 -1
- package/docs/examples/w-text-select_border_a lot of items.html +1 -1
- package/docs/examples/w-text-select_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text-select_border_borderRadius.html +1 -1
- package/docs/examples/w-text-select_border_default.html +1 -1
- package/docs/examples/w-text-select_border_events.html +1 -1
- package/docs/examples/w-text-select_border_expansionIconSize.html +1 -1
- package/docs/examples/w-text-select_border_fullwidth.html +1 -1
- package/docs/examples/w-text-select_border_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-select_border_itemTextColor_itemTextColorHover_itemBackgroundColor.html +1 -1
- package/docs/examples/w-text-select_border_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-select_border_items(string array).html +1 -1
- package/docs/examples/w-text-select_border_keyText.html +1 -1
- package/docs/examples/w-text-select_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-select_border_leftIcon (material).html +1 -1
- package/docs/examples/w-text-select_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-text-select_border_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-select_border_maxHeight.html +1 -1
- package/docs/examples/w-text-select_border_maxWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_border_minWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_border_not editable.html +1 -1
- package/docs/examples/w-text-select_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-select_border_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-select_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-text-select_border_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-select_border_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-select_border_slot item.html +1 -1
- package/docs/examples/w-text-select_border_slot select.html +1 -1
- package/docs/examples/w-text-select_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-select_border_textFontSize.html +1 -1
- package/docs/examples/w-text-select_border_with popup.html +1 -1
- package/docs/examples/w-text-select_default.html +1 -1
- package/docs/examples/w-text-select_events.html +1 -1
- package/docs/examples/w-text-select_expansionIconSize.html +1 -1
- package/docs/examples/w-text-select_fullwidth.html +1 -1
- package/docs/examples/w-text-select_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-select_itemTextColor_itemTextColorHover_itemBackgroundColor_itemBackgroundColorHover.html +1 -1
- package/docs/examples/w-text-select_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-select_items(string array).html +1 -1
- package/docs/examples/w-text-select_keyText.html +1 -1
- package/docs/examples/w-text-select_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-select_leftIcon (material).html +1 -1
- package/docs/examples/w-text-select_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-text-select_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-select_maxHeight.html +1 -1
- package/docs/examples/w-text-select_maxWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_minWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_not editable.html +1 -1
- package/docs/examples/w-text-select_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-select_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-select_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-text-select_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-select_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-select_slot item.html +1 -1
- package/docs/examples/w-text-select_slot select.html +1 -1
- package/docs/examples/w-text-select_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-select_textFontSize.html +1 -1
- package/docs/examples/w-text-select_with popup.html +1 -1
- package/docs/examples/w-text-suggest_a lot of items.html +1 -1
- package/docs/examples/w-text-suggest_borderRadius.html +1 -1
- package/docs/examples/w-text-suggest_border_a lot of items.html +1 -1
- package/docs/examples/w-text-suggest_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text-suggest_border_borderRadius.html +1 -1
- package/docs/examples/w-text-suggest_border_default.html +1 -1
- package/docs/examples/w-text-suggest_border_events.html +1 -1
- package/docs/examples/w-text-suggest_border_expansionIconSize.html +1 -1
- package/docs/examples/w-text-suggest_border_fullwidth.html +1 -1
- package/docs/examples/w-text-suggest_border_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-suggest_border_itemTextColor_itemTextColorHover_itemBackgroundColor.html +1 -1
- package/docs/examples/w-text-suggest_border_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-suggest_border_items(string array).html +1 -1
- package/docs/examples/w-text-suggest_border_keyText.html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon (material).html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-suggest_border_noResultsText.html +1 -1
- package/docs/examples/w-text-suggest_border_not editable.html +1 -1
- package/docs/examples/w-text-suggest_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-suggest_border_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-suggest_border_placeholder.html +1 -1
- package/docs/examples/w-text-suggest_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-text-suggest_border_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-suggest_border_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-suggest_border_showPanel(press enter to hide panel)_focused.html +1 -1
- package/docs/examples/w-text-suggest_border_slot item.html +1 -1
- package/docs/examples/w-text-suggest_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-suggest_border_textFontSize.html +1 -1
- package/docs/examples/w-text-suggest_border_with popup.html +1 -1
- package/docs/examples/w-text-suggest_default.html +1 -1
- package/docs/examples/w-text-suggest_events.html +1 -1
- package/docs/examples/w-text-suggest_expansionIconSize.html +1 -1
- package/docs/examples/w-text-suggest_fullwidth.html +1 -1
- package/docs/examples/w-text-suggest_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-suggest_itemTextColor_itemTextColorHover_itemBackgroundColor_itemBackgroundColorHover.html +1 -1
- package/docs/examples/w-text-suggest_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-suggest_items(string array).html +1 -1
- package/docs/examples/w-text-suggest_keyText.html +1 -1
- package/docs/examples/w-text-suggest_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-suggest_leftIcon (material).html +1 -1
- package/docs/examples/w-text-suggest_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-text-suggest_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-suggest_maxHeight.html +1 -1
- package/docs/examples/w-text-suggest_maxWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-suggest_minWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-suggest_noResultsText.html +1 -1
- package/docs/examples/w-text-suggest_not editable.html +1 -1
- package/docs/examples/w-text-suggest_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-suggest_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-suggest_placeholder.html +1 -1
- package/docs/examples/w-text-suggest_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-text-suggest_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-suggest_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-suggest_showPanel(press enter to hide panel)_focused.html +1 -1
- package/docs/examples/w-text-suggest_slot item.html +1 -1
- package/docs/examples/w-text-suggest_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-suggest_textFontSize.html +1 -1
- package/docs/examples/w-text-suggest_with popup.html +1 -1
- package/docs/examples/w-text_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text_border_borderRadius_paddingStyle.html +1 -1
- package/docs/examples/w-text_border_default.html +1 -1
- package/docs/examples/w-text_border_events.html +1 -1
- package/docs/examples/w-text_border_fullwidth.html +1 -1
- package/docs/examples/w-text_border_height_textFontSize_paddingStyle.html +1 -1
- package/docs/examples/w-text_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text_border_leftIcon (material).html +1 -1
- package/docs/examples/w-text_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-text_border_not editable.html +1 -1
- package/docs/examples/w-text_border_password.html +1 -1
- package/docs/examples/w-text_border_placeholder.html +1 -1
- package/docs/examples/w-text_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-text_border_textAlign.html +1 -1
- package/docs/examples/w-text_border_textColor.html +1 -1
- package/docs/examples/w-text_border_textFontSize.html +1 -1
- package/docs/examples/w-text_border_type (custom,0/342/211/244v/342/211/2445).html" +1 -1
- package/docs/examples/w-text_border_type (isint).html +1 -1
- package/docs/examples/w-text_border_type (isnum).html +1 -1
- package/docs/examples/w-text_bottomLineBorderColor_bottomLineBorderColorHover_bottomLineBorderColorFocus.html +1 -1
- package/docs/examples/w-text_default.html +1 -1
- package/docs/examples/w-text_events.html +1 -1
- package/docs/examples/w-text_fullwidth.html +1 -1
- package/docs/examples/w-text_height_textFontSize.html +1 -1
- package/docs/examples/w-text_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text_leftIcon (material).html +1 -1
- package/docs/examples/w-text_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-text_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text_leftIcon_leftIconTooltip.html +1 -1
- package/docs/examples/w-text_not editable.html +1 -1
- package/docs/examples/w-text_password.html +1 -1
- package/docs/examples/w-text_placeholder.html +1 -1
- package/docs/examples/w-text_rightIcon.html +1 -1
- package/docs/examples/w-text_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-text_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text_rightIcon_rightIconTooltip.html +1 -1
- package/docs/examples/w-text_textAlign.html +1 -1
- package/docs/examples/w-text_textColor.html +1 -1
- package/docs/examples/w-text_textFontSize.html +1 -1
- package/docs/examples/w-text_type (custom,0/342/211/244v/342/211/2445).html" +1 -1
- package/docs/examples/w-text_type (isint).html +1 -1
- package/docs/examples/w-text_type (isnum).html +1 -1
- package/docs/examples/w-textarea_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-textarea_border_borderRadius_paddingStyle.html +1 -1
- package/docs/examples/w-textarea_border_default.html +1 -1
- package/docs/examples/w-textarea_border_events.html +1 -1
- package/docs/examples/w-textarea_border_fullwidth.html +1 -1
- package/docs/examples/w-textarea_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-textarea_border_leftIcon (material).html +1 -1
- package/docs/examples/w-textarea_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-textarea_border_not editable.html +1 -1
- package/docs/examples/w-textarea_border_placeholder.html +1 -1
- package/docs/examples/w-textarea_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-textarea_border_textAlign.html +1 -1
- package/docs/examples/w-textarea_border_textColor.html +1 -1
- package/docs/examples/w-textarea_border_textFontSize.html +1 -1
- package/docs/examples/w-textarea_bottomLineBorderColor_bottomLineBorderColorHover_bottomLineBorderColorFocus.html +1 -1
- package/docs/examples/w-textarea_default.html +1 -1
- package/docs/examples/w-textarea_events.html +1 -1
- package/docs/examples/w-textarea_fullwidth.html +1 -1
- package/docs/examples/w-textarea_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-textarea_leftIcon (material).html +1 -1
- package/docs/examples/w-textarea_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-textarea_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-textarea_leftIcon_leftIconTooltip.html +1 -1
- package/docs/examples/w-textarea_not editable.html +1 -1
- package/docs/examples/w-textarea_placeholder.html +1 -1
- package/docs/examples/w-textarea_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-textarea_rightIcon_rightIconSize_verticalAlign.html +1 -1
- package/docs/examples/w-textarea_rightIcon_rightIconTooltip_verticalAlign.html +1 -1
- package/docs/examples/w-textarea_rightIcon_verticalAlign.html +1 -1
- package/docs/examples/w-textarea_textAlign.html +1 -1
- package/docs/examples/w-textarea_textColor.html +1 -1
- package/docs/examples/w-textarea_textFontSize.html +1 -1
- package/docs/examples/w-threejs-vue-dyn_autoRotateDeg.html +1 -1
- package/docs/examples/w-threejs-vue-dyn_basicSize.html +1 -1
- package/docs/examples/w-timeday-range_between.html +1 -1
- package/docs/examples/w-timeday-range_borderRadius.html +1 -1
- package/docs/examples/w-timeday-range_border_between.html +1 -1
- package/docs/examples/w-timeday-range_border_borderRadius.html +1 -1
- package/docs/examples/w-timeday-range_border_default.html +1 -1
- package/docs/examples/w-timeday-range_border_empty.html +1 -1
- package/docs/examples/w-timeday-range_border_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday-range_border_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeday-range_border_hoverColor.html +1 -1
- package/docs/examples/w-timeday-range_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday-range_border_icon (material).html +1 -1
- package/docs/examples/w-timeday-range_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday-range_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeday-range_border_not editable.html +1 -1
- package/docs/examples/w-timeday-range_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday-range_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_border_pickColor.html +1 -1
- package/docs/examples/w-timeday-range_border_textColor.html +1 -1
- package/docs/examples/w-timeday-range_default.html +1 -1
- package/docs/examples/w-timeday-range_empty.html +1 -1
- package/docs/examples/w-timeday-range_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday-range_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeday-range_hoverColor.html +1 -1
- package/docs/examples/w-timeday-range_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday-range_icon (material).html +1 -1
- package/docs/examples/w-timeday-range_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday-range_iconTooltip.html +1 -1
- package/docs/examples/w-timeday-range_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_not editable.html +1 -1
- package/docs/examples/w-timeday-range_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday-range_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_pickColor.html +1 -1
- package/docs/examples/w-timeday-range_textColor.html +1 -1
- package/docs/examples/w-timeday_borderRadius.html +1 -1
- package/docs/examples/w-timeday_border_borderRadius.html +1 -1
- package/docs/examples/w-timeday_border_default.html +1 -1
- package/docs/examples/w-timeday_border_empty.html +1 -1
- package/docs/examples/w-timeday_border_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday_border_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeday_border_hoverColor.html +1 -1
- package/docs/examples/w-timeday_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday_border_icon (material).html +1 -1
- package/docs/examples/w-timeday_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeday_border_not editable.html +1 -1
- package/docs/examples/w-timeday_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday_border_pickColor.html +1 -1
- package/docs/examples/w-timeday_border_textColor.html +1 -1
- package/docs/examples/w-timeday_default.html +1 -1
- package/docs/examples/w-timeday_empty.html +1 -1
- package/docs/examples/w-timeday_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeday_hoverColor.html +1 -1
- package/docs/examples/w-timeday_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday_icon (material).html +1 -1
- package/docs/examples/w-timeday_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday_iconTooltip.html +1 -1
- package/docs/examples/w-timeday_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday_not editable.html +1 -1
- package/docs/examples/w-timeday_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday_pickColor.html +1 -1
- package/docs/examples/w-timeday_textColor.html +1 -1
- package/docs/examples/w-timeminute-range_between.html +1 -1
- package/docs/examples/w-timeminute-range_borderRadius.html +1 -1
- package/docs/examples/w-timeminute-range_border_between.html +1 -1
- package/docs/examples/w-timeminute-range_border_borderRadius.html +1 -1
- package/docs/examples/w-timeminute-range_border_default.html +1 -1
- package/docs/examples/w-timeminute-range_border_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeminute-range_border_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute-range_border_hoverColor.html +1 -1
- package/docs/examples/w-timeminute-range_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute-range_border_icon (material).html +1 -1
- package/docs/examples/w-timeminute-range_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute-range_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute-range_border_minuteInter.html +1 -1
- package/docs/examples/w-timeminute-range_border_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute-range_border_not editable.html +1 -1
- package/docs/examples/w-timeminute-range_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute-range_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_border_pickColor.html +1 -1
- package/docs/examples/w-timeminute-range_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-timeminute-range_default.html +1 -1
- package/docs/examples/w-timeminute-range_empty.html +1 -1
- package/docs/examples/w-timeminute-range_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeminute-range_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeminute-range_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute-range_hoverColor.html +1 -1
- package/docs/examples/w-timeminute-range_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute-range_icon (material).html +1 -1
- package/docs/examples/w-timeminute-range_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute-range_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute-range_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_minuteInter.html +1 -1
- package/docs/examples/w-timeminute-range_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute-range_not editable.html +1 -1
- package/docs/examples/w-timeminute-range_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute-range_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_pickColor.html +1 -1
- package/docs/examples/w-timeminute-range_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-timeminute_borderRadius.html +1 -1
- package/docs/examples/w-timeminute_border_borderRadius.html +1 -1
- package/docs/examples/w-timeminute_border_default.html +1 -1
- package/docs/examples/w-timeminute_border_empty.html +1 -1
- package/docs/examples/w-timeminute_border_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeminute_border_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeminute_border_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute_border_hoverColor.html +1 -1
- package/docs/examples/w-timeminute_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute_border_icon (material).html +1 -1
- package/docs/examples/w-timeminute_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute_border_minuteInter.html +1 -1
- package/docs/examples/w-timeminute_border_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute_border_not editable.html +1 -1
- package/docs/examples/w-timeminute_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_border_pickColor.html +1 -1
- package/docs/examples/w-timeminute_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-timeminute_default.html +1 -1
- package/docs/examples/w-timeminute_empty.html +1 -1
- package/docs/examples/w-timeminute_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeminute_funRenderYear_funRenderMonth_funRenderDayOfWeek.html +1 -1
- package/docs/examples/w-timeminute_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute_hoverColor.html +1 -1
- package/docs/examples/w-timeminute_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute_icon (material).html +1 -1
- package/docs/examples/w-timeminute_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_minuteInter.html +1 -1
- package/docs/examples/w-timeminute_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute_not editable.html +1 -1
- package/docs/examples/w-timeminute_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_pickColor.html +1 -1
- package/docs/examples/w-timeminute_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_default.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_height.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_not editable.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_settings.html +1 -1
- package/docs/examples/w-tooltip_auto flipping in dialog.html +1 -1
- package/docs/examples/w-tooltip_auto flipping in popup.html +1 -1
- package/docs/examples/w-tooltip_auto flipping in scroll panel.html +1 -1
- package/docs/examples/w-tooltip_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-tooltip_autoFitMinWidth.html +1 -1
- package/docs/examples/w-tooltip_backgroundColor.html +1 -1
- package/docs/examples/w-tooltip_borderRadius.html +1 -1
- package/docs/examples/w-tooltip_default.html +1 -1
- package/docs/examples/w-tooltip_in scroll panel.html +1 -1
- package/docs/examples/w-tooltip_maxWidth.html +1 -1
- package/docs/examples/w-tooltip_minWidth.html +1 -1
- package/docs/examples/w-tooltip_no shadow_backgroundColor.html +1 -1
- package/docs/examples/w-tooltip_not editable.html +1 -1
- package/docs/examples/w-tooltip_paddingStyle.html +1 -1
- package/docs/examples/w-tooltip_placement.html +1 -1
- package/docs/examples/w-tooltip_placementDistY.html +1 -1
- package/docs/examples/w-tooltip_scroll in large zone.html +1 -1
- package/docs/examples/w-tooltip_shadowStyle.html +1 -1
- package/docs/examples/w-tooltip_slot for table_maxWidth.html +1 -1
- package/docs/examples/w-tooltip_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-tooltip_textFontSize.html +1 -1
- package/docs/examples/w-tooltip_transitionTime.html +1 -1
- package/docs/examples/w-tree_activable_itemActive.html +1 -1
- package/docs/examples/w-tree_activable_itemActive_funActive.html +1 -1
- package/docs/examples/w-tree_activable_itemActive_itemTextColor_itemTextColorHover.html +1 -1
- package/docs/examples/w-tree_default.html +1 -1
- package/docs/examples/w-tree_defaultDisplayLevel.html +1 -1
- package/docs/examples/w-tree_draggable.html +1 -1
- package/docs/examples/w-tree_draggable_dgInsertLineColor_dgInsertBackgroundColor_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-tree_draggable_dgPreviewOpacity_dgPreviewBorderWidth_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-tree_draggable_dgTextDisabled_dgTextDisabledColor_dgTextDisabledPaddingLeft.html +1 -1
- package/docs/examples/w-tree_events.html +1 -1
- package/docs/examples/w-tree_filterByFun.html +1 -1
- package/docs/examples/w-tree_filterKeywords_funFilter.html +1 -1
- package/docs/examples/w-tree_filterKeywords_noResultsText_selectable.html +1 -1
- package/docs/examples/w-tree_filterKeywords_statePaddingStyle_noResultsText.html +1 -1
- package/docs/examples/w-tree_iconSize(20).html +1 -1
- package/docs/examples/w-tree_iconSize(20)_defItemHeight(24).html +1 -1
- package/docs/examples/w-tree_iconSize(30)_defItemHeight(36).html +1 -1
- package/docs/examples/w-tree_iconToggleColor_iconToggleBackgroundColor_iconToggleBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_indent.html +1 -1
- package/docs/examples/w-tree_itemRippleColor.html +1 -1
- package/docs/examples/w-tree_itemTextColor_itemTextColorHover_itemBackgroundColor_itemBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_keyPrimary_keyText_keyChildren.html +1 -1
- package/docs/examples/w-tree_no viewHeightMax.html +1 -1
- package/docs/examples/w-tree_operatable.html +1 -1
- package/docs/examples/w-tree_operatable_draggable.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameCancelBtnBackgroundColor_editorRenameCancelBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameCancelBtnIcon_editorRenameCancelBtnIconSize_editorRenameCancelBtnIconColor.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameCancelBtnText_editorRenameCancelBtnTextColor_editorRenameCancelBtnTextColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameContentBackgroundColor_editorRenameFooterBackgroundColor.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameInputTextColor_editorRenameInputTextBottomLineBorderColor_editorRenameInputTextBottomLineBorderColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameSaveBtnBackgroundColor_editorRenameSaveBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameSaveBtnIcon_editorRenameSaveBtnIconSize_editorRenameSaveBtnIconColor.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameSaveBtnText_editorRenameSaveBtnTextColor_editorRenameSaveBtnTextColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_funOperateItem.html +1 -1
- package/docs/examples/w-tree_operatable_operateBtnIconSize_operateBtnBackgroundColor_operateBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_operateBtnTooltip_operateItemTextForRename_operateItemTextForInsertBefore.html +1 -1
- package/docs/examples/w-tree_operatable_operateItemBackgroundColor_operateItemBackgroundColorHover_operateItemTextColor.html +1 -1
- package/docs/examples/w-tree_operatable_operateItemHeight_operateItemIconSize_operateItemPaddingStyle.html +1 -1
- package/docs/examples/w-tree_operatable_operateItemIconForRename_operateItemIconForInsertBefore_operateItemIconForInsertChild.html +1 -1
- package/docs/examples/w-tree_operatable_operatePanelWidth_operatePanelHeight_operateItemIconSize.html +1 -1
- package/docs/examples/w-tree_paddingStyle.html +1 -1
- package/docs/examples/w-tree_selectable.html +1 -1
- package/docs/examples/w-tree_selectable_draggable.html +1 -1
- package/docs/examples/w-tree_slot.html +1 -1
- package/docs/examples/w-tree_slot_edit-text.html +1 -1
- package/docs/examples/w-tree_slot_iconUncheckedColor_iconUncheckedDisabledColor_iconCheckedColor.html +1 -1
- package/docs/examples/w-tree_slot_locked_selectable.html +1 -1
- package/docs/examples/w-tree_slot_operatable.html +1 -1
- package/docs/examples/w-tree_slot_selectable.html +1 -1
- package/docs/examples/w-tree_slot_selectable_draggable.html +1 -1
- package/docs/examples/w-tree_slot_selectable_iconSize(20)_defItemHeight(24).html +1 -1
- package/docs/examples/w-tree_slot_selectable_large data (100,000 items).html +1 -1
- package/docs/examples/w-tree_toggleItemsAll.html +1 -1
- package/docs/examples/w-tree_toggleItemsByFun.html +1 -1
- package/docs/examples/w-tree_viewHeightMax.html +1 -1
- package/docs/examples/w-vditor-dyn_default.html +1 -1
- package/docs/examples/w-vditor-dyn_fontSize.html +1 -1
- package/docs/examples/w-vditor-dyn_fullwidth.html +1 -1
- package/docs/examples/w-vditor-dyn_height.html +1 -1
- package/docs/examples/w-vditor-dyn_not editable.html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(array).html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(string).html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(string)_hintBackgroundColor.html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(string)_hintBorderRadius.html +1 -1
- package/docs/global.html +2 -2
- package/docs/index.html +2 -2
- package/docs/module-Teleport.html +2 -2
- package/docs/module-WAggridVueDyn.html +2 -2
- package/docs/module-WBadge.html +2 -2
- package/docs/module-WButtonChip.html +2 -2
- package/docs/module-WButtonCircle.html +2 -2
- package/docs/module-WCheckbox.html +2 -2
- package/docs/module-WCkeditorVueDyn.html +2 -2
- package/docs/module-WColorPickAlpha.html +2 -2
- package/docs/module-WColorPickHexagon.html +2 -2
- package/docs/module-WColorPickHexagonGray.html +2 -2
- package/docs/module-WColorPickHsv.html +2 -2
- package/docs/module-WColorPickHue.html +2 -2
- package/docs/module-WColorPickStripe.html +2 -2
- package/docs/module-WColorSelect.html +2 -2
- package/docs/module-WColorSelectInput.html +2 -2
- package/docs/module-WColorSelectPanel.html +2 -2
- package/docs/module-WColorSelectPanelBlock.html +2 -2
- package/docs/module-WColorSelectPanelHsva.html +2 -2
- package/docs/module-WConfirm.html +2 -2
- package/docs/module-WDialog.html +2 -2
- package/docs/module-WDrawer.html +22 -10
- package/docs/module-WDropfiles.html +2 -2
- package/docs/module-WDynamicList.html +2 -2
- package/docs/module-WEchartsVueDyn.html +2 -2
- package/docs/module-WExplorer.html +2 -2
- package/docs/module-WGroupBaggage.html +2 -2
- package/docs/module-WGroupChipCheck.html +2 -2
- package/docs/module-WGroupChipRadio.html +2 -2
- package/docs/module-WGroupDragdrop.html +2 -2
- package/docs/module-WGroupIconCheck.html +2 -2
- package/docs/module-WGroupIconRadio.html +2 -2
- package/docs/module-WGroupTags.html +2 -2
- package/docs/module-WHighchartsVueDyn.html +2 -2
- package/docs/module-WHighstockVueDyn.html +2 -2
- package/docs/module-WIcon.html +2 -2
- package/docs/module-WIconLoading.html +2 -2
- package/docs/module-WImageCascading.html +2 -2
- package/docs/module-WImageCascadingDyn.html +2 -2
- package/docs/module-WImageLazy.html +2 -2
- package/docs/module-WImageViewer.html +2 -2
- package/docs/module-WImageViewerDyn.html +2 -2
- package/docs/module-WInputCheckbox.html +2 -2
- package/docs/module-WInputRadio.html +2 -2
- package/docs/module-WJsonView.html +2 -2
- package/docs/module-WLeafletVueDyn.html +2 -2
- package/docs/module-WLevelGrade.html +2 -2
- package/docs/module-WListCheck.html +2 -2
- package/docs/module-WListExpand.html +2 -2
- package/docs/module-WListExpandItem.html +2 -2
- package/docs/module-WListHorizontal.html +2 -2
- package/docs/module-WListItem.html +2 -2
- package/docs/module-WListRadio.html +2 -2
- package/docs/module-WListVertical.html +2 -2
- package/docs/module-WMaplibreglVueDyn.html +2 -2
- package/docs/module-WPanelAvatar.html +2 -2
- package/docs/module-WPanelBulge.html +2 -2
- package/docs/module-WPanelDivideHorizontal.html +2 -2
- package/docs/module-WPanelDivideHorizontalTriple.html +2 -2
- package/docs/module-WPanelDivideMulti.html +2 -2
- package/docs/module-WPanelDivideVertical.html +2 -2
- package/docs/module-WPanelDivideVerticalTriple.html +2 -2
- package/docs/module-WPanelLabelItem.html +2 -2
- package/docs/module-WPanelScale.html +2 -2
- package/docs/module-WPanelScrolly.html +2 -2
- package/docs/module-WPanelScrollyCore.html +2 -2
- package/docs/module-WPanelStripe.html +2 -2
- package/docs/module-WPickSurface.html +416 -0
- package/docs/module-WPopup.html +2 -2
- package/docs/module-WPopupEditText.html +2 -2
- package/docs/module-WProgressBar.html +2 -2
- package/docs/module-WProgressCircle.html +2 -2
- package/docs/module-WQuillVueDyn.html +2 -2
- package/docs/module-WSegmentsVertical.html +2 -2
- package/docs/module-WShellBottomLine.html +2 -2
- package/docs/module-WShellEllipse.html +2 -2
- package/docs/module-WSlider.html +2 -2
- package/docs/module-WSwitch.html +2 -2
- package/docs/module-WTableDyn.html +2 -2
- package/docs/module-WText.html +2 -2
- package/docs/module-WTextCore.html +2 -2
- package/docs/module-WTextInt.html +2 -2
- package/docs/module-WTextIntCore.html +2 -2
- package/docs/module-WTextSelect.html +2 -2
- package/docs/module-WTextSuggest.html +2 -2
- package/docs/module-WTextSuggestCore.html +2 -2
- package/docs/module-WTextarea.html +2 -2
- package/docs/module-WTextareaCore.html +2 -2
- package/docs/module-WThreejsVueDyn.html +2 -2
- package/docs/module-WTimeday.html +2 -2
- package/docs/module-WTimedayCore.html +2 -2
- package/docs/module-WTimedayRange.html +2 -2
- package/docs/module-WTimedayRangeCore.html +2 -2
- package/docs/module-WTimeminute.html +2 -2
- package/docs/module-WTimeminuteCore.html +2 -2
- package/docs/module-WTimeminuteRange.html +2 -2
- package/docs/module-WTimeminuteRangeCore.html +2 -2
- package/docs/module-WTinymceVueDyn.html +2 -2
- package/docs/module-WTooltip.html +2 -2
- package/docs/module-WTree.html +2 -2
- package/docs/module-WTreeIconCheckbox.html +2 -2
- package/docs/module-WTreeIconToggle.html +2 -2
- package/docs/module-WVditorDyn.html +2 -2
- package/package.json +2 -2
- package/src/App.vue +5 -0
- package/src/AppZoneWDrawer.vue +57 -0
- package/src/AppZoneWPickSurface.vue +282 -0
- package/src/components/WColorPickAlpha.vue +18 -93
- package/src/components/WColorPickHsv.vue +24 -95
- package/src/components/WColorPickHue.vue +19 -87
- package/src/components/WComponentVue.vue +2 -0
- package/src/components/WDrawer.vue +36 -6
- package/src/components/WPanelDivideHorizontal.vue +1 -1
- package/src/components/WPanelDivideHorizontalTriple.vue +2 -2
- package/src/components/WPanelDivideVertical.vue +1 -1
- package/src/components/WPanelDivideVerticalTriple.vue +2 -2
- package/src/components/WPickSurface.vue +263 -0
- package/src/components/WSlider.vue +53 -17
- package/src/js/filepathToTreeWk.wk.umd.js +1 -1
|
@@ -6,8 +6,12 @@
|
|
|
6
6
|
@domresize="resizePanel"
|
|
7
7
|
>
|
|
8
8
|
|
|
9
|
+
<!-- 按下此列即定值: 手勢通道(domDragPointer)掛於本列容器(高度為sliderSize), 不可掛於根層, 因提示窗divContent為根層子節點, 掛根會導致點提示窗也改值 -->
|
|
10
|
+
<!-- touch-action:none為觸控可拖曳之必要條件, 否則瀏覽器於手指移動數px後接手捲動並以pointercancel中斷事件流 -->
|
|
11
|
+
<!-- 代價: 本列(高度sliderSize)上起手之垂直捲動手勢會失效 -->
|
|
9
12
|
<div
|
|
10
|
-
|
|
13
|
+
ref="divRow"
|
|
14
|
+
:style="`position:relative; width:100%; height:${sliderSize}px; touch-action:none; ${editable?'cursor:pointer;':''}`"
|
|
11
15
|
>
|
|
12
16
|
|
|
13
17
|
<div :style="`position:absolute; top:${sliderSize/2-progHeight/2}px; left:${sliderSize/2}px; width:${progWidth}px;`">
|
|
@@ -15,16 +19,25 @@
|
|
|
15
19
|
<div
|
|
16
20
|
ref="divPanel"
|
|
17
21
|
:style="`position:relative; width:${progWidth}px;`"
|
|
18
|
-
_click="clickProg"
|
|
19
22
|
>
|
|
20
23
|
|
|
21
|
-
<div
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
<div
|
|
25
|
+
:style="`${useProgBorderRadius} overflow:hidden; width:${progWidth}px; height:${progHeight}px;`"
|
|
26
|
+
>
|
|
27
|
+
<div
|
|
28
|
+
ref="divBarTrack"
|
|
29
|
+
:style="`background:${useProgBackgroundColor}; height:${progHeight}px;`"
|
|
30
|
+
|
|
31
|
+
>
|
|
32
|
+
<div
|
|
33
|
+
ref="divBarProgress"
|
|
34
|
+
:style="`background:${useProgColor}; width:${(rt)*progWidth}px; height:${progHeight}px;`"
|
|
35
|
+
></div>
|
|
24
36
|
</div>
|
|
25
37
|
</div>
|
|
26
38
|
|
|
27
39
|
<div
|
|
40
|
+
ref="divTriggerOuter"
|
|
28
41
|
:style="`position:absolute; left:${(rt)*progWidth-widthCir/2}px; top:${progHeight/2-heightCir/2}px; z-index:1; ${editable?'cursor:pointer;':''}`"
|
|
29
42
|
>
|
|
30
43
|
|
|
@@ -84,7 +97,7 @@ import dig from 'wsemi/src/dig.mjs'
|
|
|
84
97
|
import round from 'wsemi/src/round.mjs'
|
|
85
98
|
import cdbl from 'wsemi/src/cdbl.mjs'
|
|
86
99
|
import replace from 'wsemi/src/replace.mjs'
|
|
87
|
-
import
|
|
100
|
+
import domDragPointer from 'wsemi/src/domDragPointer.mjs'
|
|
88
101
|
import domResize from '../js/domResize.mjs'
|
|
89
102
|
import convertColor from '../js/convertColor.mjs'
|
|
90
103
|
import { createPopper } from '@popperjs/core/lib/popper-lite.js' //不用安裝@popperjs/core, 因wsemi安裝tippy.js內有依賴@popperjs/core
|
|
@@ -222,7 +235,7 @@ export default {
|
|
|
222
235
|
panelWidth: 0,
|
|
223
236
|
panelHeight: 0,
|
|
224
237
|
|
|
225
|
-
|
|
238
|
+
dragPointer: null,
|
|
226
239
|
|
|
227
240
|
hoverTrans: false,
|
|
228
241
|
dragTrans: false,
|
|
@@ -240,14 +253,17 @@ export default {
|
|
|
240
253
|
|
|
241
254
|
let vo = this
|
|
242
255
|
|
|
243
|
-
//
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
256
|
+
//dragPointer, 整列(divRow)單一指標通道, 滑鼠/觸控/觸控筆同一套規則, 把手與軌道共用同一把鎖:
|
|
257
|
+
// 按於軌道: 按下即定值並接續拖曳, 與原生input[type=range]及各家滑桿一致
|
|
258
|
+
// 按於把手: 只起手不定值(見pressRow), 否則「按住鈕不動即放開」會跳值; 其後拖曳以絕對座標定值
|
|
259
|
+
// canPress於每次按下讀取即時之editable, 唯讀時不上鎖; dragBar內另保留editable重檢, 因拖曳中editable轉false時只有它擋得住
|
|
260
|
+
let dragPointer = domDragPointer(vo.$refs.divRow, { canPress: () => vo.editable })
|
|
261
|
+
dragPointer.on('press', vo.pressRow)
|
|
262
|
+
dragPointer.on('drag', vo.dragBar)
|
|
263
|
+
dragPointer.on('free', vo.freeBar)
|
|
248
264
|
|
|
249
265
|
//save
|
|
250
|
-
vo.
|
|
266
|
+
vo.dragPointer = dragPointer
|
|
251
267
|
|
|
252
268
|
},
|
|
253
269
|
beforeDestroy: function() {
|
|
@@ -255,9 +271,9 @@ export default {
|
|
|
255
271
|
|
|
256
272
|
let vo = this
|
|
257
273
|
|
|
258
|
-
//clear
|
|
259
|
-
if (vo.
|
|
260
|
-
vo.
|
|
274
|
+
//clear, 宿主WColorSelectPanel與WPopup皆以v-if切換, 可能於拖曳中被銷毀; clear內含解鎖與移除window監聽, 不補發free
|
|
275
|
+
if (vo.dragPointer) {
|
|
276
|
+
vo.dragPointer.clear()
|
|
261
277
|
}
|
|
262
278
|
|
|
263
279
|
},
|
|
@@ -546,9 +562,29 @@ export default {
|
|
|
546
562
|
|
|
547
563
|
},
|
|
548
564
|
|
|
549
|
-
|
|
565
|
+
pressRow: function(msg) {
|
|
550
566
|
let vo = this
|
|
567
|
+
|
|
568
|
+
//dragTrans, 使提示窗顯示, 並讓放開時effecting之else分支把r收斂回rt
|
|
551
569
|
vo.dragTrans = true
|
|
570
|
+
|
|
571
|
+
//check, 按於把手上只起手不定值, 否則「按住鈕不動即放開」會跳值(Radix Slider同法: thumbs.has(target)時不onSlideStart)
|
|
572
|
+
//須用contains不可用===, 因按於鈕中心時target為divBar內之透明圓子節點, 按於20x20方框四角時target才為divBar自身
|
|
573
|
+
let target = msg.event.target
|
|
574
|
+
let divBar = vo.$refs.divBar
|
|
575
|
+
if (divBar && divBar.contains(target)) {
|
|
576
|
+
return
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
//check, 可視圓divTriggerOuter以rt定位而感應方塊divBar以r定位, 兩者於rt與r不一致時會錯開而露出, 故一併視為把手
|
|
580
|
+
let divTriggerOuter = vo.$refs.divTriggerOuter
|
|
581
|
+
if (divTriggerOuter && divTriggerOuter.contains(target)) {
|
|
582
|
+
return
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
//按下即定值, 與原生input[type=range]及各家滑桿一致
|
|
586
|
+
vo.dragBar(msg)
|
|
587
|
+
|
|
552
588
|
},
|
|
553
589
|
|
|
554
590
|
freeBar: function() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const d="function"==typeof atob,Z="function"==typeof Buffer,m="function"==typeof TextDecoder?new TextDecoder:void 0,l=("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),b=(d=>{let Z={};return l.forEach(((d,m)=>Z[d]=m)),Z})(),I=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,i=String.fromCharCode.bind(String),X="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):d=>new Uint8Array(Array.prototype.slice.call(d,0)),c=d=>d.replace(/[^A-Za-z0-9\+\/]/g,""),W=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,y=d=>{switch(d.length){case 4:var Z=((7&d.charCodeAt(0))<<18|(63&d.charCodeAt(1))<<12|(63&d.charCodeAt(2))<<6|63&d.charCodeAt(3))-65536;return i(55296+(Z>>>10))+i(56320+(1023&Z));case 3:return i((15&d.charCodeAt(0))<<12|(63&d.charCodeAt(1))<<6|63&d.charCodeAt(2));default:return i((31&d.charCodeAt(0))<<6|63&d.charCodeAt(1))}},p=d=>d.replace(W,y),K=d=>{if(d=d.replace(/\s+/g,""),!I.test(d))throw new TypeError("malformed base64.");d+="==".slice(2-(3&d.length));let Z,m,l,X="";for(let I=0;I<d.length;)Z=b[d.charAt(I++)]<<18|b[d.charAt(I++)]<<12|(m=b[d.charAt(I++)])<<6|(l=b[d.charAt(I++)]),X+=64===m?i(Z>>16&255):64===l?i(Z>>16&255,Z>>8&255):i(Z>>16&255,Z>>8&255,255&Z);return X},Y=d?d=>atob(c(d)):Z?d=>Buffer.from(d,"base64").toString("binary"):K,H=Z?d=>X(Buffer.from(d,"base64")):d=>X(Y(d).split("").map((d=>d.charCodeAt(0)))),G=Z?d=>Buffer.from(d,"base64").toString("utf8"):m?d=>m.decode(H(d)):d=>p(Y(d)),h=d=>c(d.replace(/[-_]/g,(d=>"-"==d?"+":"/"))),C=d=>G(h(d)),V=C;var u={};!function(d){var Z=Object.prototype.hasOwnProperty,m="~";function l(){}function b(d,Z,m){this.fn=d,this.context=Z,this.once=m||!1}function I(d,Z,l,I,i){if("function"!=typeof l)throw new TypeError("The listener must be a function");var X=new b(l,I||d,i),c=m?m+Z:Z;return d._events[c]?d._events[c].fn?d._events[c]=[d._events[c],X]:d._events[c].push(X):(d._events[c]=X,d._eventsCount++),d}function i(d,Z){0==--d._eventsCount?d._events=new l:delete d._events[Z]}function X(){this._events=new l,this._eventsCount=0}Object.create&&(l.prototype=Object.create(null),(new l).__proto__||(m=!1)),X.prototype.eventNames=function(){var d,l,b=[];if(0===this._eventsCount)return b;for(l in d=this._events)Z.call(d,l)&&b.push(m?l.slice(1):l);return Object.getOwnPropertySymbols?b.concat(Object.getOwnPropertySymbols(d)):b},X.prototype.listeners=function(d){var Z=m?m+d:d,l=this._events[Z];if(!l)return[];if(l.fn)return[l.fn];for(var b=0,I=l.length,i=new Array(I);b<I;b++)i[b]=l[b].fn;return i},X.prototype.listenerCount=function(d){var Z=m?m+d:d,l=this._events[Z];return l?l.fn?1:l.length:0},X.prototype.emit=function(d,Z,l,b,I,i){var X=m?m+d:d;if(!this._events[X])return!1;var c,W,y=this._events[X],p=arguments.length;if(y.fn){switch(y.once&&this.removeListener(d,y.fn,void 0,!0),p){case 1:return y.fn.call(y.context),!0;case 2:return y.fn.call(y.context,Z),!0;case 3:return y.fn.call(y.context,Z,l),!0;case 4:return y.fn.call(y.context,Z,l,b),!0;case 5:return y.fn.call(y.context,Z,l,b,I),!0;case 6:return y.fn.call(y.context,Z,l,b,I,i),!0}for(W=1,c=new Array(p-1);W<p;W++)c[W-1]=arguments[W];y.fn.apply(y.context,c)}else{var K,Y=y.length;for(W=0;W<Y;W++)switch(y[W].once&&this.removeListener(d,y[W].fn,void 0,!0),p){case 1:y[W].fn.call(y[W].context);break;case 2:y[W].fn.call(y[W].context,Z);break;case 3:y[W].fn.call(y[W].context,Z,l);break;case 4:y[W].fn.call(y[W].context,Z,l,b);break;default:if(!c)for(K=1,c=new Array(p-1);K<p;K++)c[K-1]=arguments[K];y[W].fn.apply(y[W].context,c)}}return!0},X.prototype.on=function(d,Z,m){return I(this,d,Z,m,!1)},X.prototype.once=function(d,Z,m){return I(this,d,Z,m,!0)},X.prototype.removeListener=function(d,Z,l,b){var I=m?m+d:d;if(!this._events[I])return this;if(!Z)return i(this,I),this;var X=this._events[I];if(X.fn)X.fn!==Z||b&&!X.once||l&&X.context!==l||i(this,I);else{for(var c=0,W=[],y=X.length;c<y;c++)(X[c].fn!==Z||b&&!X[c].once||l&&X[c].context!==l)&&W.push(X[c]);W.length?this._events[I]=1===W.length?W[0]:W:i(this,I)}return this},X.prototype.removeAllListeners=function(d){var Z;return d?(Z=m?m+d:d,this._events[Z]&&i(this,Z)):(this._events=new l,this._eventsCount=0),this},X.prototype.off=X.prototype.removeListener,X.prototype.addListener=X.prototype.on,X.prefixed=m,X.EventEmitter=X,d.exports=X}({get exports(){return u},set exports(d){u=d}});var t=u;let s;!function(){if("browser"!==("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=V("CgoKZnVuY3Rpb24gdChyKXtyZXR1cm4gdD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sdChyKX1mdW5jdGlvbiByKHIpe3ZhciBlPWZ1bmN0aW9uKHIsZSl7aWYoIm9iamVjdCIhPT10KHIpfHxudWxsPT09cilyZXR1cm4gcjt2YXIgbj1yW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIG89bi5jYWxsKHIsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PXQobykpcmV0dXJuIG87dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHIpfShyLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PXQoZSk/ZTpTdHJpbmcoZSl9ZnVuY3Rpb24gZSh0LGUsbil7cmV0dXJuKGU9cihlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH12YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9O2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsImRlZmF1bHQiKT90LmRlZmF1bHQ6dH12YXIgdT1BcnJheS5pc0FycmF5LGE9Im9iamVjdCI9PXR5cGVvZiBuJiZuJiZuLk9iamVjdD09PU9iamVjdCYmbixpPWEsYz0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGY9aXx8Y3x8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxsPWYuU3ltYm9sLHY9bCxzPU9iamVjdC5wcm90b3R5cGUscD1zLmhhc093blByb3BlcnR5LGI9cy50b1N0cmluZyx5PXY/di50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIGQ9ZnVuY3Rpb24odCl7dmFyIHI9cC5jYWxsKHQseSksZT10W3ldO3RyeXt0W3ldPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89Yi5jYWxsKHQpO3JldHVybiBuJiYocj90W3ldPWU6ZGVsZXRlIHRbeV0pLG99LGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgaj1kLGc9ZnVuY3Rpb24odCl7cmV0dXJuIGguY2FsbCh0KX0sXz1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBPPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3QgTnVsbF0iOl8mJl8gaW4gT2JqZWN0KHQpP2oodCk6Zyh0KX07dmFyIHc9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH0sbT1PLEE9dzt2YXIgUz1mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fEEodCkmJiJbb2JqZWN0IFN5bWJvbF0iPT1tKHQpfSx4PXUsST1TLFA9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8sej0vXlx3KiQvO3ZhciBFPWZ1bmN0aW9uKHQscil7aWYoeCh0KSlyZXR1cm4hMTt2YXIgZT10eXBlb2YgdDtyZXR1cm4hKCJudW1iZXIiIT1lJiYic3ltYm9sIiE9ZSYmImJvb2xlYW4iIT1lJiZudWxsIT10JiYhSSh0KSl8fCh6LnRlc3QodCl8fCFQLnRlc3QodCl8fG51bGwhPXImJnQgaW4gT2JqZWN0KHIpKX07dmFyICQ9ZnVuY3Rpb24odCl7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09cnx8ImZ1bmN0aW9uIj09cil9LEY9TyxrPSQ7dmFyIE0sVT1mdW5jdGlvbih0KXtpZighayh0KSlyZXR1cm4hMTt2YXIgcj1GKHQpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PXJ8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXJ8fCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIj09cnx8IltvYmplY3QgUHJveHldIj09cn0sRD1mWyJfX2NvcmUtanNfc2hhcmVkX18iXSxOPShNPS9bXi5dKyQvLmV4ZWMoRCYmRC5rZXlzJiZELmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIitNOiIiO3ZhciBUPWZ1bmN0aW9uKHQpe3JldHVybiEhTiYmTiBpbiB0fSxCPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgQz1mdW5jdGlvbih0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIEIuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9LFI9VSxMPVQsVj0kLFc9QyxxPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEc9RnVuY3Rpb24ucHJvdG90eXBlLEg9T2JqZWN0LnByb3RvdHlwZSxKPUcudG9TdHJpbmcsSz1ILmhhc093blByb3BlcnR5LFE9UmVnRXhwKCJeIitKLmNhbGwoSykucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7dmFyIFg9ZnVuY3Rpb24odCl7cmV0dXJuISghVih0KXx8TCh0KSkmJihSKHQpP1E6cSkudGVzdChXKHQpKX0sWT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfTt2YXIgWj1mdW5jdGlvbih0LHIpe3ZhciBlPVkodCxyKTtyZXR1cm4gWChlKT9lOnZvaWQgMH0sdHQ9WihPYmplY3QsImNyZWF0ZSIpLHJ0PXR0O3ZhciBldD1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189cnQ/cnQobnVsbCk6e30sdGhpcy5zaXplPTB9O3ZhciBudD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sb3Q9dHQsdXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgYXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihvdCl7dmFyIGU9clt0XTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI9PT1lP3ZvaWQgMDplfXJldHVybiB1dC5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LGl0PXR0LGN0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGZ0PXR0O3ZhciBsdD1ldCx2dD1udCxzdD1hdCxwdD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBpdD92b2lkIDAhPT1yW3RdOmN0LmNhbGwocix0KX0sYnQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPWZ0JiZ2b2lkIDA9PT1yPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjpyLHRoaXN9O2Z1bmN0aW9uIHl0KHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fXl0LnByb3RvdHlwZS5jbGVhcj1sdCx5dC5wcm90b3R5cGUuZGVsZXRlPXZ0LHl0LnByb3RvdHlwZS5nZXQ9c3QseXQucHJvdG90eXBlLmhhcz1wdCx5dC5wcm90b3R5cGUuc2V0PWJ0O3ZhciBkdD15dDt2YXIgaHQ9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfTt2YXIganQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdD09PXJ8fHQhPXQmJnIhPXJ9LGd0PWp0O3ZhciBfdD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS07KWlmKGd0KHRbZV1bMF0scikpcmV0dXJuIGU7cmV0dXJuLTF9LE90PV90LHd0PUFycmF5LnByb3RvdHlwZS5zcGxpY2U7dmFyIG10PV90O3ZhciBBdD1fdDt2YXIgU3Q9X3Q7dmFyIHh0PWh0LEl0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1PdChyLHQpO3JldHVybiEoZTwwKSYmKGU9PXIubGVuZ3RoLTE/ci5wb3AoKTp3dC5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LFB0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1tdChyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LHp0PWZ1bmN0aW9uKHQpe3JldHVybiBBdCh0aGlzLl9fZGF0YV9fLHQpPi0xfSxFdD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1TdChlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTtmdW5jdGlvbiAkdCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX0kdC5wcm90b3R5cGUuY2xlYXI9eHQsJHQucHJvdG90eXBlLmRlbGV0ZT1JdCwkdC5wcm90b3R5cGUuZ2V0PVB0LCR0LnByb3RvdHlwZS5oYXM9enQsJHQucHJvdG90eXBlLnNldD1FdDt2YXIgRnQ9JHQsa3Q9WihmLCJNYXAiKSxNdD1kdCxVdD1GdCxEdD1rdDt2YXIgTnQ9ZnVuY3Rpb24odCl7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuInN0cmluZyI9PXJ8fCJudW1iZXIiPT1yfHwic3ltYm9sIj09cnx8ImJvb2xlYW4iPT1yPyJfX3Byb3RvX18iIT09dDpudWxsPT09dH07dmFyIFR0PWZ1bmN0aW9uKHQscil7dmFyIGU9dC5fX2RhdGFfXztyZXR1cm4gTnQocik/ZVsic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTplLm1hcH0sQnQ9VHQ7dmFyIEN0PVR0O3ZhciBSdD1UdDt2YXIgTHQ9VHQ7dmFyIFZ0PWZ1bmN0aW9uKHQscil7dmFyIGU9THQodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc30sV3Q9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBNdCxtYXA6bmV3KER0fHxVdCksc3RyaW5nOm5ldyBNdH19LHF0PWZ1bmN0aW9uKHQpe3ZhciByPUJ0KHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEd0PWZ1bmN0aW9uKHQpe3JldHVybiBDdCh0aGlzLHQpLmdldCh0KX0sSHQ9ZnVuY3Rpb24odCl7cmV0dXJuIFJ0KHRoaXMsdCkuaGFzKHQpfSxKdD1WdDtmdW5jdGlvbiBLdCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1LdC5wcm90b3R5cGUuY2xlYXI9V3QsS3QucHJvdG90eXBlLmRlbGV0ZT1xdCxLdC5wcm90b3R5cGUuZ2V0PUd0LEt0LnByb3RvdHlwZS5oYXM9SHQsS3QucHJvdG90eXBlLnNldD1KdDt2YXIgUXQ9S3QsWHQ9UXQ7ZnVuY3Rpb24gWXQodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3ZhciBlPWZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLG89cj9yLmFwcGx5KHRoaXMsbik6blswXSx1PWUuY2FjaGU7aWYodS5oYXMobykpcmV0dXJuIHUuZ2V0KG8pO3ZhciBhPXQuYXBwbHkodGhpcyxuKTtyZXR1cm4gZS5jYWNoZT11LnNldChvLGEpfHx1LGF9O3JldHVybiBlLmNhY2hlPW5ldyhZdC5DYWNoZXx8WHQpLGV9WXQuQ2FjaGU9WHQ7dmFyIFp0PVl0O3ZhciB0cj0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxycj0vXFwoXFwpPy9nLGVyPWZ1bmN0aW9uKHQpe3ZhciByPVp0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1lLnNpemUmJmUuY2xlYXIoKSx0fSkpLGU9ci5jYWNoZTtyZXR1cm4gcn0oKGZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UodHIsKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShyciwiJDEiKTplfHx0KX0pKSxyfSkpO3ZhciBucj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPUFycmF5KG4pOysrZTxuOylvW2VdPXIodFtlXSxlLHQpO3JldHVybiBvfSxvcj1ucix1cj11LGFyPVMsaXI9bD9sLnByb3RvdHlwZTp2b2lkIDAsY3I9aXI/aXIudG9TdHJpbmc6dm9pZCAwO3ZhciBmcj1mdW5jdGlvbiB0KHIpe2lmKCJzdHJpbmciPT10eXBlb2YgcilyZXR1cm4gcjtpZih1cihyKSlyZXR1cm4gb3Iocix0KSsiIjtpZihhcihyKSlyZXR1cm4gY3I/Y3IuY2FsbChyKToiIjt2YXIgZT1yKyIiO3JldHVybiIwIj09ZSYmMS9yPT0tSW5maW5pdHk/Ii0wIjplfSxscj1mcjt2YXIgdnI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/IiI6bHIodCl9LHNyPXUscHI9RSxicj1lcix5cj12cjt2YXIgZHI9ZnVuY3Rpb24odCxyKXtyZXR1cm4gc3IodCk/dDpwcih0LHIpP1t0XTpicih5cih0KSl9LGhyPVM7dmFyIGpyPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHx8aHIodCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LUluZmluaXR5PyItMCI6cn0sZ3I9ZHIsX3I9anI7dmFyIE9yPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1ncihyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbX3IocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9LHdyPU9yO3ZhciBtcj1mdW5jdGlvbih0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6d3IodCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59LEFyPVosU3I9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9QXIoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KCkseHI9U3I7dmFyIElyPWZ1bmN0aW9uKHQscixlKXsiX19wcm90b19fIj09ciYmeHI/eHIodCxyLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTplLHdyaXRhYmxlOiEwfSk6dFtyXT1lfSxQcj1Jcix6cj1qdCxFcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciAkcj1mdW5jdGlvbih0LHIsZSl7dmFyIG49dFtyXTtFci5jYWxsKHQscikmJnpyKG4sZSkmJih2b2lkIDAhPT1lfHxyIGluIHQpfHxQcih0LHIsZSl9LEZyPS9eKD86MHxbMS05XVxkKikkLzt2YXIga3I9ZnVuY3Rpb24odCxyKXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIShyPW51bGw9PXI/OTAwNzE5OTI1NDc0MDk5MTpyKSYmKCJudW1iZXIiPT1lfHwic3ltYm9sIiE9ZSYmRnIudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxyfSxNcj0kcixVcj1kcixEcj1rcixOcj0kLFRyPWpyO3ZhciBCcj1mdW5jdGlvbih0LHIsZSxuKXtpZighTnIodCkpcmV0dXJuIHQ7Zm9yKHZhciBvPS0xLHU9KHI9VXIocix0KSkubGVuZ3RoLGE9dS0xLGk9dDtudWxsIT1pJiYrK288dTspe3ZhciBjPVRyKHJbb10pLGY9ZTtpZigiX19wcm90b19fIj09PWN8fCJjb25zdHJ1Y3RvciI9PT1jfHwicHJvdG90eXBlIj09PWMpcmV0dXJuIHQ7aWYobyE9YSl7dmFyIGw9aVtjXTt2b2lkIDA9PT0oZj1uP24obCxjLGkpOnZvaWQgMCkmJihmPU5yKGwpP2w6RHIocltvKzFdKT9bXTp7fSl9TXIoaSxjLGYpLGk9aVtjXX1yZXR1cm4gdH07dmFyIENyPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gbnVsbD09dD90OkJyKHQscixlKX0sUnI9e30sTHI9e2dldCBleHBvcnRzKCl7cmV0dXJuIFJyfSxzZXQgZXhwb3J0cyh0KXtScj10fX07dmFyIFZyPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoOysrZTxuJiYhMSE9PXIodFtlXSxlLHQpOyk7cmV0dXJuIHR9O3ZhciBXcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocixlLG4pe2Zvcih2YXIgbz0tMSx1PU9iamVjdChyKSxhPW4ociksaT1hLmxlbmd0aDtpLS07KXt2YXIgYz1hW3Q/aTorK29dO2lmKCExPT09ZSh1W2NdLGMsdSkpYnJlYWt9cmV0dXJuIHJ9fSgpO3ZhciBxcj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPUFycmF5KHQpOysrZTx0OyluW2VdPXIoZSk7cmV0dXJuIG59LEdyPU8sSHI9dzt2YXIgSnI9ZnVuY3Rpb24odCl7cmV0dXJuIEhyKHQpJiYiW29iamVjdCBBcmd1bWVudHNdIj09R3IodCl9LEtyPXcsUXI9T2JqZWN0LnByb3RvdHlwZSxYcj1Rci5oYXNPd25Qcm9wZXJ0eSxZcj1Rci5wcm9wZXJ0eUlzRW51bWVyYWJsZSxacj1KcihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP0pyOmZ1bmN0aW9uKHQpe3JldHVybiBLcih0KSYmWHIuY2FsbCh0LCJjYWxsZWUiKSYmIVlyLmNhbGwodCwiY2FsbGVlIil9LHRlPXt9O3ZhciByZT1mdW5jdGlvbigpe3JldHVybiExfTshZnVuY3Rpb24odCxyKXt2YXIgZT1mLG49cmUsbz1yJiYhci5ub2RlVHlwZSYmcix1PW8mJnQmJiF0Lm5vZGVUeXBlJiZ0LGE9dSYmdS5leHBvcnRzPT09bz9lLkJ1ZmZlcjp2b2lkIDAsaT0oYT9hLmlzQnVmZmVyOnZvaWQgMCl8fG47dC5leHBvcnRzPWl9KHtnZXQgZXhwb3J0cygpe3JldHVybiB0ZX0sc2V0IGV4cG9ydHModCl7dGU9dH19LHRlKTt2YXIgZWU9ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PTkwMDcxOTkyNTQ3NDA5OTF9LG5lPU8sb2U9ZWUsdWU9dyxhZT17fTthZVsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09YWVbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPWFlWyJbb2JqZWN0IEludDhBcnJheV0iXT1hZVsiW29iamVjdCBJbnQxNkFycmF5XSJdPWFlWyJbb2JqZWN0IEludDMyQXJyYXldIl09YWVbIltvYmplY3QgVWludDhBcnJheV0iXT1hZVsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1hZVsiW29iamVjdCBVaW50MTZBcnJheV0iXT1hZVsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxhZVsiW29iamVjdCBBcmd1bWVudHNdIl09YWVbIltvYmplY3QgQXJyYXldIl09YWVbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09YWVbIltvYmplY3QgQm9vbGVhbl0iXT1hZVsiW29iamVjdCBEYXRhVmlld10iXT1hZVsiW29iamVjdCBEYXRlXSJdPWFlWyJbb2JqZWN0IEVycm9yXSJdPWFlWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPWFlWyJbb2JqZWN0IE1hcF0iXT1hZVsiW29iamVjdCBOdW1iZXJdIl09YWVbIltvYmplY3QgT2JqZWN0XSJdPWFlWyJbb2JqZWN0IFJlZ0V4cF0iXT1hZVsiW29iamVjdCBTZXRdIl09YWVbIltvYmplY3QgU3RyaW5nXSJdPWFlWyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIGllPWZ1bmN0aW9uKHQpe3JldHVybiB1ZSh0KSYmb2UodC5sZW5ndGgpJiYhIWFlW25lKHQpXX07dmFyIGNlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdChyKX19LGZlPXt9OyFmdW5jdGlvbih0LHIpe3ZhciBlPWEsbj1yJiYhci5ub2RlVHlwZSYmcixvPW4mJnQmJiF0Lm5vZGVUeXBlJiZ0LHU9byYmby5leHBvcnRzPT09biYmZS5wcm9jZXNzLGk9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9byYmby5yZXF1aXJlJiZvLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gdHx8dSYmdS5iaW5kaW5nJiZ1LmJpbmRpbmcoInV0aWwiKX1jYXRjaCh0KXt9fSgpO3QuZXhwb3J0cz1pfSh7Z2V0IGV4cG9ydHMoKXtyZXR1cm4gZmV9LHNldCBleHBvcnRzKHQpe2ZlPXR9fSxmZSk7dmFyIGxlPWllLHZlPWNlLHNlPWZlJiZmZS5pc1R5cGVkQXJyYXkscGU9c2U/dmUoc2UpOmxlLGJlPXFyLHllPVpyLGRlPXUsaGU9dGUsamU9a3IsZ2U9cGUsX2U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgT2U9ZnVuY3Rpb24odCxyKXt2YXIgZT1kZSh0KSxuPSFlJiZ5ZSh0KSxvPSFlJiYhbiYmaGUodCksdT0hZSYmIW4mJiFvJiZnZSh0KSxhPWV8fG58fG98fHUsaT1hP2JlKHQubGVuZ3RoLFN0cmluZyk6W10sYz1pLmxlbmd0aDtmb3IodmFyIGYgaW4gdCkhciYmIV9lLmNhbGwodCxmKXx8YSYmKCJsZW5ndGgiPT1mfHxvJiYoIm9mZnNldCI9PWZ8fCJwYXJlbnQiPT1mKXx8dSYmKCJidWZmZXIiPT1mfHwiYnl0ZUxlbmd0aCI9PWZ8fCJieXRlT2Zmc2V0Ij09Zil8fGplKGYsYykpfHxpLnB1c2goZik7cmV0dXJuIGl9LHdlPU9iamVjdC5wcm90b3R5cGU7dmFyIG1lPWZ1bmN0aW9uKHQpe3ZhciByPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIHImJnIucHJvdG90eXBlfHx3ZSl9O3ZhciBBZT1mdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChyKGUpKX19LFNlPUFlKE9iamVjdC5rZXlzLE9iamVjdCkseGU9bWUsSWU9U2UsUGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgemU9ZnVuY3Rpb24odCl7aWYoIXhlKHQpKXJldHVybiBJZSh0KTt2YXIgcj1bXTtmb3IodmFyIGUgaW4gT2JqZWN0KHQpKVBlLmNhbGwodCxlKSYmImNvbnN0cnVjdG9yIiE9ZSYmci5wdXNoKGUpO3JldHVybiByfSxFZT1VLCRlPWVlO3ZhciBGZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmJGUodC5sZW5ndGgpJiYhRWUodCl9LGtlPU9lLE1lPXplLFVlPUZlO3ZhciBEZT1mdW5jdGlvbih0KXtyZXR1cm4gVWUodCk/a2UodCk6TWUodCl9LE5lPVdyLFRlPURlO3ZhciBCZT1GZTt2YXIgQ2U9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybiBlO2lmKCFCZShlKSlyZXR1cm4gdChlLG4pO2Zvcih2YXIgbz1lLmxlbmd0aCx1PXI/bzotMSxhPU9iamVjdChlKTsocj91LS06Kyt1PG8pJiYhMSE9PW4oYVt1XSx1LGEpOyk7cmV0dXJuIGV9fSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmTmUodCxyLFRlKX0pKTt2YXIgUmU9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LExlPVJlO3ZhciBWZT1WcixXZT1DZSxxZT1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OkxlfSxHZT11O3ZhciBIZT1mdW5jdGlvbih0LHIpe3JldHVybihHZSh0KT9WZTpXZSkodCxxZShyKSl9O0xyLmV4cG9ydHM9SGU7dmFyIEplPW8oUnIpLEtlPUZ0O3ZhciBRZT1GdCxYZT1rdCxZZT1RdDt2YXIgWmU9RnQsdG49ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBLZSx0aGlzLnNpemU9MH0scm49ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPXIuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9ci5zaXplLGV9LGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX0sbm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxvbj1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoZSBpbnN0YW5jZW9mIFFlKXt2YXIgbj1lLl9fZGF0YV9fO2lmKCFYZXx8bi5sZW5ndGg8MTk5KXJldHVybiBuLnB1c2goW3Qscl0pLHRoaXMuc2l6ZT0rK2Uuc2l6ZSx0aGlzO2U9dGhpcy5fX2RhdGFfXz1uZXcgWWUobil9cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplPWUuc2l6ZSx0aGlzfTtmdW5jdGlvbiB1bih0KXt2YXIgcj10aGlzLl9fZGF0YV9fPW5ldyBaZSh0KTt0aGlzLnNpemU9ci5zaXplfXVuLnByb3RvdHlwZS5jbGVhcj10bix1bi5wcm90b3R5cGUuZGVsZXRlPXJuLHVuLnByb3RvdHlwZS5nZXQ9ZW4sdW4ucHJvdG90eXBlLmhhcz1ubix1bi5wcm90b3R5cGUuc2V0PW9uO3ZhciBhbj11bjt2YXIgY249UXQsZm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iKSx0aGlzfSxsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9O2Z1bmN0aW9uIHZuKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBjbjsrK3I8ZTspdGhpcy5hZGQodFtyXSl9dm4ucHJvdG90eXBlLmFkZD12bi5wcm90b3R5cGUucHVzaD1mbix2bi5wcm90b3R5cGUuaGFzPWxuO3ZhciBzbj12bixwbj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK2U8bjspaWYocih0W2VdLGUsdCkpcmV0dXJuITA7cmV0dXJuITF9LGJuPWZ1bmN0aW9uKHQscil7cmV0dXJuIHQuaGFzKHIpfTt2YXIgeW49ZnVuY3Rpb24odCxyLGUsbixvLHUpe3ZhciBhPTEmZSxpPXQubGVuZ3RoLGM9ci5sZW5ndGg7aWYoaSE9YyYmIShhJiZjPmkpKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpLGw9dS5nZXQocik7aWYoZiYmbClyZXR1cm4gZj09ciYmbD09dDt2YXIgdj0tMSxzPSEwLHA9MiZlP25ldyBzbjp2b2lkIDA7Zm9yKHUuc2V0KHQsciksdS5zZXQocix0KTsrK3Y8aTspe3ZhciBiPXRbdl0seT1yW3ZdO2lmKG4pdmFyIGQ9YT9uKHksYix2LHIsdCx1KTpuKGIseSx2LHQscix1KTtpZih2b2lkIDAhPT1kKXtpZihkKWNvbnRpbnVlO3M9ITE7YnJlYWt9aWYocCl7aWYoIXBuKHIsKGZ1bmN0aW9uKHQscil7aWYoIWJuKHAscikmJihiPT09dHx8byhiLHQsZSxuLHUpKSlyZXR1cm4gcC5wdXNoKHIpfSkpKXtzPSExO2JyZWFrfX1lbHNlIGlmKGIhPT15JiYhbyhiLHksZSxuLHUpKXtzPSExO2JyZWFrfX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUociksc30sZG49Zi5VaW50OEFycmF5O3ZhciBobj1mdW5jdGlvbih0KXt2YXIgcj0tMSxlPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtlWysrcl09W24sdF19KSksZX07dmFyIGpuPWZ1bmN0aW9uKHQpe3ZhciByPS0xLGU9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlWysrcl09dH0pKSxlfSxnbj1kbixfbj1qdCxPbj15bix3bj1obixtbj1qbixBbj1sP2wucHJvdG90eXBlOnZvaWQgMCxTbj1Bbj9Bbi52YWx1ZU9mOnZvaWQgMDt2YXIgeG49ZnVuY3Rpb24odCxyLGUsbixvLHUsYSl7c3dpdGNoKGUpe2Nhc2UiW29iamVjdCBEYXRhVmlld10iOmlmKHQuYnl0ZUxlbmd0aCE9ci5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPXIuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLHI9ci5idWZmZXI7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuISh0LmJ5dGVMZW5ndGghPXIuYnl0ZUxlbmd0aHx8IXUobmV3IGduKHQpLG5ldyBnbihyKSkpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuIF9uKCt0LCtyKTtjYXNlIltvYmplY3QgRXJyb3JdIjpyZXR1cm4gdC5uYW1lPT1yLm5hbWUmJnQubWVzc2FnZT09ci5tZXNzYWdlO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIHQ9PXIrIiI7Y2FzZSJbb2JqZWN0IE1hcF0iOnZhciBpPXduO2Nhc2UiW29iamVjdCBTZXRdIjp2YXIgYz0xJm47aWYoaXx8KGk9bW4pLHQuc2l6ZSE9ci5zaXplJiYhYylyZXR1cm4hMTt2YXIgZj1hLmdldCh0KTtpZihmKXJldHVybiBmPT1yO258PTIsYS5zZXQodCxyKTt2YXIgbD1PbihpKHQpLGkociksbixvLHUsYSk7cmV0dXJuIGEuZGVsZXRlKHQpLGw7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOmlmKFNuKXJldHVybiBTbi5jYWxsKHQpPT1Tbi5jYWxsKHIpfXJldHVybiExfTt2YXIgSW49ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1yLmxlbmd0aCxvPXQubGVuZ3RoOysrZTxuOyl0W28rZV09cltlXTtyZXR1cm4gdH0sUG49SW4sem49dTt2YXIgRW49ZnVuY3Rpb24odCxyLGUpe3ZhciBuPXIodCk7cmV0dXJuIHpuKHQpP246UG4obixlKHQpKX07dmFyICRuPWZ1bmN0aW9uKCl7cmV0dXJuW119LEZuPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89MCx1PVtdOysrZTxuOyl7dmFyIGE9dFtlXTtyKGEsZSx0KSYmKHVbbysrXT1hKX1yZXR1cm4gdX0sa249JG4sTW49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxVbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLERuPVVuP2Z1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P1tdOih0PU9iamVjdCh0KSxGbihVbih0KSwoZnVuY3Rpb24ocil7cmV0dXJuIE1uLmNhbGwodCxyKX0pKSl9OmtuLE5uPUVuLFRuPURuLEJuPURlO3ZhciBDbj1mdW5jdGlvbih0KXtyZXR1cm4gTm4odCxCbixUbil9LFJuPUNuLExuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFZuPWZ1bmN0aW9uKHQscixlLG4sbyx1KXt2YXIgYT0xJmUsaT1Sbih0KSxjPWkubGVuZ3RoO2lmKGMhPVJuKHIpLmxlbmd0aCYmIWEpcmV0dXJuITE7Zm9yKHZhciBmPWM7Zi0tOyl7dmFyIGw9aVtmXTtpZighKGE/bCBpbiByOkxuLmNhbGwocixsKSkpcmV0dXJuITF9dmFyIHY9dS5nZXQodCkscz11LmdldChyKTtpZih2JiZzKXJldHVybiB2PT1yJiZzPT10O3ZhciBwPSEwO3Uuc2V0KHQsciksdS5zZXQocix0KTtmb3IodmFyIGI9YTsrK2Y8Yzspe3ZhciB5PXRbbD1pW2ZdXSxkPXJbbF07aWYobil2YXIgaD1hP24oZCx5LGwscix0LHUpOm4oeSxkLGwsdCxyLHUpO2lmKCEodm9pZCAwPT09aD95PT09ZHx8byh5LGQsZSxuLHUpOmgpKXtwPSExO2JyZWFrfWJ8fChiPSJjb25zdHJ1Y3RvciI9PWwpfWlmKHAmJiFiKXt2YXIgaj10LmNvbnN0cnVjdG9yLGc9ci5jb25zdHJ1Y3RvcjtqPT1nfHwhKCJjb25zdHJ1Y3RvciJpbiB0KXx8ISgiY29uc3RydWN0b3IiaW4gcil8fCJmdW5jdGlvbiI9PXR5cGVvZiBqJiZqIGluc3RhbmNlb2YgaiYmImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcgaW5zdGFuY2VvZiBnfHwocD0hMSl9cmV0dXJuIHUuZGVsZXRlKHQpLHUuZGVsZXRlKHIpLHB9LFduPVooZiwiRGF0YVZpZXciKSxxbj1rdCxHbj1aKGYsIlByb21pc2UiKSxIbj1aKGYsIlNldCIpLEpuPVooZiwiV2Vha01hcCIpLEtuPU8sUW49QyxYbj0iW29iamVjdCBNYXBdIixZbj0iW29iamVjdCBQcm9taXNlXSIsWm49IltvYmplY3QgU2V0XSIsdG89IltvYmplY3QgV2Vha01hcF0iLHJvPSJbb2JqZWN0IERhdGFWaWV3XSIsZW89UW4oV24pLG5vPVFuKHFuKSxvbz1RbihHbiksdW89UW4oSG4pLGFvPVFuKEpuKSxpbz1LbjsoV24mJmlvKG5ldyBXbihuZXcgQXJyYXlCdWZmZXIoMSkpKSE9cm98fHFuJiZpbyhuZXcgcW4pIT1Ybnx8R24mJmlvKEduLnJlc29sdmUoKSkhPVlufHxIbiYmaW8obmV3IEhuKSE9Wm58fEpuJiZpbyhuZXcgSm4pIT10bykmJihpbz1mdW5jdGlvbih0KXt2YXIgcj1Lbih0KSxlPSJbb2JqZWN0IE9iamVjdF0iPT1yP3QuY29uc3RydWN0b3I6dm9pZCAwLG49ZT9RbihlKToiIjtpZihuKXN3aXRjaChuKXtjYXNlIGVvOnJldHVybiBybztjYXNlIG5vOnJldHVybiBYbjtjYXNlIG9vOnJldHVybiBZbjtjYXNlIHVvOnJldHVybiBabjtjYXNlIGFvOnJldHVybiB0b31yZXR1cm4gcn0pO3ZhciBjbz1pbyxmbz1hbixsbz15bix2bz14bixzbz1Wbixwbz1jbyxibz11LHlvPXRlLGhvPXBlLGpvPSJbb2JqZWN0IEFyZ3VtZW50c10iLGdvPSJbb2JqZWN0IEFycmF5XSIsX289IltvYmplY3QgT2JqZWN0XSIsT289T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgd289ZnVuY3Rpb24odCxyLGUsbixvLHUpe3ZhciBhPWJvKHQpLGk9Ym8ociksYz1hP2dvOnBvKHQpLGY9aT9nbzpwbyhyKSxsPShjPWM9PWpvP19vOmMpPT1fbyx2PShmPWY9PWpvP19vOmYpPT1fbyxzPWM9PWY7aWYocyYmeW8odCkpe2lmKCF5byhyKSlyZXR1cm4hMTthPSEwLGw9ITF9aWYocyYmIWwpcmV0dXJuIHV8fCh1PW5ldyBmbyksYXx8aG8odCk/bG8odCxyLGUsbixvLHUpOnZvKHQscixjLGUsbixvLHUpO2lmKCEoMSZlKSl7dmFyIHA9bCYmT28uY2FsbCh0LCJfX3dyYXBwZWRfXyIpLGI9diYmT28uY2FsbChyLCJfX3dyYXBwZWRfXyIpO2lmKHB8fGIpe3ZhciB5PXA/dC52YWx1ZSgpOnQsZD1iP3IudmFsdWUoKTpyO3JldHVybiB1fHwodT1uZXcgZm8pLG8oeSxkLGUsbix1KX19cmV0dXJuISFzJiYodXx8KHU9bmV3IGZvKSxzbyh0LHIsZSxuLG8sdSkpfSxtbz13O3ZhciBBbz1mdW5jdGlvbiB0KHIsZSxuLG8sdSl7cmV0dXJuIHI9PT1lfHwobnVsbD09cnx8bnVsbD09ZXx8IW1vKHIpJiYhbW8oZSk/ciE9ciYmZSE9ZTp3byhyLGUsbixvLHQsdSkpfSxTbz1hbix4bz1Bbzt2YXIgSW89JDt2YXIgUG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PXQmJiFJbyh0KX0sem89UG8sRW89RGU7dmFyICRvPWZ1bmN0aW9uKHQscil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiYoZVt0XT09PXImJih2b2lkIDAhPT1yfHx0IGluIE9iamVjdChlKSkpfX0sRm89ZnVuY3Rpb24odCxyLGUsbil7dmFyIG89ZS5sZW5ndGgsdT1vLGE9IW47aWYobnVsbD09dClyZXR1cm4hdTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGk9ZVtvXTtpZihhJiZpWzJdP2lbMV0hPT10W2lbMF1dOiEoaVswXWluIHQpKXJldHVybiExfWZvcig7KytvPHU7KXt2YXIgYz0oaT1lW29dKVswXSxmPXRbY10sbD1pWzFdO2lmKGEmJmlbMl0pe2lmKHZvaWQgMD09PWYmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciB2PW5ldyBTbztpZihuKXZhciBzPW4oZixsLGMsdCxyLHYpO2lmKCEodm9pZCAwPT09cz94byhsLGYsMyxuLHYpOnMpKXJldHVybiExfX1yZXR1cm4hMH0sa289ZnVuY3Rpb24odCl7Zm9yKHZhciByPUVvKHQpLGU9ci5sZW5ndGg7ZS0tOyl7dmFyIG49cltlXSxvPXRbbl07cltlXT1bbixvLHpvKG8pXX1yZXR1cm4gcn0sTW89JG87dmFyIFVvPWRyLERvPVpyLE5vPXUsVG89a3IsQm89ZWUsQ289anI7dmFyIFJvPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGwhPXQmJnIgaW4gT2JqZWN0KHQpfSxMbz1mdW5jdGlvbih0LHIsZSl7Zm9yKHZhciBuPS0xLG89KHI9VW8ocix0KSkubGVuZ3RoLHU9ITE7KytuPG87KXt2YXIgYT1DbyhyW25dKTtpZighKHU9bnVsbCE9dCYmZSh0LGEpKSlicmVhazt0PXRbYV19cmV0dXJuIHV8fCsrbiE9bz91OiEhKG89bnVsbD09dD8wOnQubGVuZ3RoKSYmQm8obykmJlRvKGEsbykmJihObyh0KXx8RG8odCkpfTt2YXIgVm89QW8sV289bXIscW89ZnVuY3Rpb24odCxyKXtyZXR1cm4gbnVsbCE9dCYmTG8odCxyLFJvKX0sR289RSxIbz1QbyxKbz0kbyxLbz1qcjt2YXIgUW89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBudWxsPT1yP3ZvaWQgMDpyW3RdfX0sWG89T3I7dmFyIFlvPVFvLFpvPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gWG8ocix0KX19LHR1PUUscnU9anI7dmFyIGV1PWZ1bmN0aW9uKHQpe3ZhciByPWtvKHQpO3JldHVybiAxPT1yLmxlbmd0aCYmclswXVsyXT9NbyhyWzBdWzBdLHJbMF1bMV0pOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09dHx8Rm8oZSx0LHIpfX0sbnU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gR28odCkmJkhvKHIpP0pvKEtvKHQpLHIpOmZ1bmN0aW9uKGUpe3ZhciBuPVdvKGUsdCk7cmV0dXJuIHZvaWQgMD09PW4mJm49PT1yP3FvKGUsdCk6Vm8ocixuLDMpfX0sb3U9UmUsdXU9dSxhdT1mdW5jdGlvbih0KXtyZXR1cm4gdHUodCk/WW8ocnUodCkpOlpvKHQpfTt2YXIgaXU9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpudWxsPT10P291OiJvYmplY3QiPT10eXBlb2YgdD91dSh0KT9udSh0WzBdLHRbMV0pOmV1KHQpOmF1KHQpfSxjdT1DZSxmdT1GZTt2YXIgbHU9ZnVuY3Rpb24odCxyKXt2YXIgZT0tMSxuPWZ1KHQpP0FycmF5KHQubGVuZ3RoKTpbXTtyZXR1cm4gY3UodCwoZnVuY3Rpb24odCxvLHUpe25bKytlXT1yKHQsbyx1KX0pKSxufSx2dT1ucixzdT1pdSxwdT1sdSxidT11O3ZhciB5dT1mdW5jdGlvbih0LHIpe3JldHVybihidSh0KT92dTpwdSkodCxzdShyKSl9LGR1PU8saHU9dSxqdT13O3ZhciBndT1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fCFodSh0KSYmanUodCkmJiJbb2JqZWN0IFN0cmluZ10iPT1kdSh0KX0sX3U9UW8oImxlbmd0aCIpLE91PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTt2YXIgd3U9ZnVuY3Rpb24odCl7cmV0dXJuIE91LnRlc3QodCl9LG11PSJcXHVkODAwLVxcdWRmZmYiLEF1PSJbIittdSsiXSIsU3U9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIix4dT0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixJdT0iW14iK211KyJdIixQdT0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsenU9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLEV1PSIoPzoiK1N1KyJ8Iit4dSsiKSIrIj8iLCR1PSJbXFx1ZmUwZVxcdWZlMGZdPyIsRnU9JHUrRXUrKCIoPzpcXHUyMDBkKD86IitbSXUsUHUsenVdLmpvaW4oInwiKSsiKSIrJHUrRXUrIikqIiksa3U9Iig/OiIrW0l1K1N1KyI/IixTdSxQdSx6dSxBdV0uam9pbigifCIpKyIpIixNdT1SZWdFeHAoeHUrIig/PSIreHUrIil8IitrdStGdSwiZyIpO3ZhciBVdT1fdSxEdT13dSxOdT1mdW5jdGlvbih0KXtmb3IodmFyIHI9TXUubGFzdEluZGV4PTA7TXUudGVzdCh0KTspKytyO3JldHVybiByfTt2YXIgVHU9emUsQnU9Y28sQ3U9RmUsUnU9Z3UsTHU9ZnVuY3Rpb24odCl7cmV0dXJuIER1KHQpP051KHQpOlV1KHQpfTt2YXIgVnU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gMDtpZihDdSh0KSlyZXR1cm4gUnUodCk/THUodCk6dC5sZW5ndGg7dmFyIHI9QnUodCk7cmV0dXJuIltvYmplY3QgTWFwXSI9PXJ8fCJbb2JqZWN0IFNldF0iPT1yP3Quc2l6ZTpUdSh0KS5sZW5ndGh9LFd1PVM7dmFyIHF1PWZ1bmN0aW9uKHQscixlKXtmb3IodmFyIG49LTEsbz10Lmxlbmd0aDsrK248bzspe3ZhciB1PXRbbl0sYT1yKHUpO2lmKG51bGwhPWEmJih2b2lkIDA9PT1pP2E9PWEmJiFXdShhKTplKGEsaSkpKXZhciBpPWEsYz11fXJldHVybiBjfSxHdT1mdW5jdGlvbih0LHIpe3JldHVybiB0PnJ9LEh1PVJlO3ZhciBKdT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5sZW5ndGg/cXUodCxIdSxHdSk6dm9pZCAwfTt2YXIgS3U9ZnVuY3Rpb24odCl7dmFyIHI9bnVsbD09dD8wOnQubGVuZ3RoO3JldHVybiByP3Rbci0xXTp2b2lkIDB9LFF1PW5yO3ZhciBYdT1mdW5jdGlvbih0LHIpe3JldHVybiBRdShyLChmdW5jdGlvbihyKXtyZXR1cm4gdFtyXX0pKX0sWXU9RGU7dmFyIFp1PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P1tdOlh1KHQsWXUodCkpfTt2YXIgdGE9Q2U7dmFyIHJhPWZ1bmN0aW9uKHQscixlLG4pe2Zvcih2YXIgbz0tMSx1PW51bGw9PXQ/MDp0Lmxlbmd0aDsrK288dTspe3ZhciBhPXRbb107cihuLGEsZShhKSx0KX1yZXR1cm4gbn0sZWE9ZnVuY3Rpb24odCxyLGUsbil7cmV0dXJuIHRhKHQsKGZ1bmN0aW9uKHQsbyx1KXtyKG4sdCxlKHQpLHUpfSkpLG59LG5hPWl1LG9hPXU7dmFyIHVhPUlyLGFhPWZ1bmN0aW9uKHQscil7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIG89b2EoZSk/cmE6ZWEsdT1yP3IoKTp7fTtyZXR1cm4gbyhlLHQsbmEobiksdSl9fSxpYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGNhPWFhKChmdW5jdGlvbih0LHIsZSl7aWEuY2FsbCh0LGUpP3RbZV0ucHVzaChyKTp1YSh0LGUsW3JdKX0pKTt2YXIgZmE9ZnVuY3Rpb24odCxyLGUpe3ZhciBuPS0xLG89dC5sZW5ndGg7cjwwJiYocj0tcj5vPzA6bytyKSwoZT1lPm8/bzplKTwwJiYoZSs9byksbz1yPmU/MDplLXI+Pj4wLHI+Pj49MDtmb3IodmFyIHU9QXJyYXkobyk7KytuPG87KXVbbl09dFtuK3JdO3JldHVybiB1fSxsYT0vXHMvO3ZhciB2YT1mdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZsYS50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSxzYT0vXlxzKy87dmFyIHBhPWZ1bmN0aW9uKHQpe3JldHVybiB0P3Quc2xpY2UoMCx2YSh0KSsxKS5yZXBsYWNlKHNhLCIiKTp0fSxiYT1wYSx5YT0kLGRhPVMsaGE9L15bLStdMHhbMC05YS1mXSskL2ksamE9L14wYlswMV0rJC9pLGdhPS9eMG9bMC03XSskL2ksX2E9cGFyc2VJbnQ7dmFyIE9hPWZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDtpZihkYSh0KSlyZXR1cm4gTmFOO2lmKHlhKHQpKXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgdC52YWx1ZU9mP3QudmFsdWVPZigpOnQ7dD15YShyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9YmEodCk7dmFyIGU9amEudGVzdCh0KTtyZXR1cm4gZXx8Z2EudGVzdCh0KT9fYSh0LnNsaWNlKDIpLGU/Mjo4KTpoYS50ZXN0KHQpP05hTjordH0sd2E9MS8wO3ZhciBtYT1mdW5jdGlvbih0KXtyZXR1cm4gdD8odD1PYSh0KSk9PT13YXx8dD09PS0xLzA/MTc5NzY5MzEzNDg2MjMxNTdlMjkyKih0PDA/LTE6MSk6dD09dD90OjA6MD09PXQ/dDowfTt2YXIgQWE9ZnVuY3Rpb24odCl7dmFyIHI9bWEodCksZT1yJTE7cmV0dXJuIHI9PXI/ZT9yLWU6cjowfSxTYT1mYSx4YT1BYTt2YXIgSWE9ZnVuY3Rpb24odCxyLGUpe3JldHVybiB0JiZ0Lmxlbmd0aD8ocj1lfHx2b2lkIDA9PT1yPzE6eGEociksU2EodCwwLHI8MD8wOnIpKTpbXX0sUGE9QXJyYXkucHJvdG90eXBlLmpvaW47dmFyIHphPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/IiI6UGEuY2FsbCh0LHIpfSxFYT1pdSwkYT1GZSxGYT1EZTt2YXIga2E9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1PYmplY3Qocik7aWYoISRhKHIpKXt2YXIgdT1FYShlKTtyPUZhKHIpLGU9ZnVuY3Rpb24odCl7cmV0dXJuIHUob1t0XSx0LG8pfX12YXIgYT10KHIsZSxuKTtyZXR1cm4gYT4tMT9vW3U/clthXTphXTp2b2lkIDB9fTt2YXIgTWE9ZnVuY3Rpb24odCxyLGUsbil7Zm9yKHZhciBvPXQubGVuZ3RoLHU9ZSsobj8xOi0xKTtuP3UtLTorK3U8bzspaWYocih0W3VdLHUsdCkpcmV0dXJuIHU7cmV0dXJuLTF9LFVhPU1hLERhPWl1LE5hPUFhLFRhPU1hdGgubWF4O3ZhciBCYT1rYSgoZnVuY3Rpb24odCxyLGUpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighbilyZXR1cm4tMTt2YXIgbz1udWxsPT1lPzA6TmEoZSk7cmV0dXJuIG88MCYmKG89VGEobitvLDApKSxVYSh0LERhKHIpLG8pfSkpLENhPVpyLFJhPXUsTGE9bD9sLmlzQ29uY2F0U3ByZWFkYWJsZTp2b2lkIDA7dmFyIFZhPUluLFdhPWZ1bmN0aW9uKHQpe3JldHVybiBSYSh0KXx8Q2EodCl8fCEhKExhJiZ0JiZ0W0xhXSl9O3ZhciBxYT1mdW5jdGlvbiB0KHIsZSxuLG8sdSl7dmFyIGE9LTEsaT1yLmxlbmd0aDtmb3Iobnx8KG49V2EpLHV8fCh1PVtdKTsrK2E8aTspe3ZhciBjPXJbYV07ZT4wJiZuKGMpP2U+MT90KGMsZS0xLG4sbyx1KTpWYSh1LGMpOm98fCh1W3UubGVuZ3RoXT1jKX1yZXR1cm4gdX07dmFyIEdhPVM7dmFyIEhhPWZ1bmN0aW9uKHQscil7aWYodCE9PXIpe3ZhciBlPXZvaWQgMCE9PXQsbj1udWxsPT09dCxvPXQ9PXQsdT1HYSh0KSxhPXZvaWQgMCE9PXIsaT1udWxsPT09cixjPXI9PXIsZj1HYShyKTtpZighaSYmIWYmJiF1JiZ0PnJ8fHUmJmEmJmMmJiFpJiYhZnx8biYmYSYmY3x8IWUmJmN8fCFvKXJldHVybiAxO2lmKCFuJiYhdSYmIWYmJnQ8cnx8ZiYmZSYmbyYmIW4mJiF1fHxpJiZlJiZvfHwhYSYmb3x8IWMpcmV0dXJuLTF9cmV0dXJuIDB9O3ZhciBKYT1ucixLYT1PcixRYT1pdSxYYT1sdSxZYT1mdW5jdGlvbih0LHIpe3ZhciBlPXQubGVuZ3RoO2Zvcih0LnNvcnQocik7ZS0tOyl0W2VdPXRbZV0udmFsdWU7cmV0dXJuIHR9LFphPWNlLHRpPWZ1bmN0aW9uKHQscixlKXtmb3IodmFyIG49LTEsbz10LmNyaXRlcmlhLHU9ci5jcml0ZXJpYSxhPW8ubGVuZ3RoLGk9ZS5sZW5ndGg7KytuPGE7KXt2YXIgYz1IYShvW25dLHVbbl0pO2lmKGMpcmV0dXJuIG4+PWk/YzpjKigiZGVzYyI9PWVbbl0/LTE6MSl9cmV0dXJuIHQuaW5kZXgtci5pbmRleH0scmk9UmUsZWk9dTt2YXIgbmk9ZnVuY3Rpb24odCxyLGUpe3I9ci5sZW5ndGg/SmEociwoZnVuY3Rpb24odCl7cmV0dXJuIGVpKHQpP2Z1bmN0aW9uKHIpe3JldHVybiBLYShyLDE9PT10Lmxlbmd0aD90WzBdOnQpfTp0fSkpOltyaV07dmFyIG49LTE7cj1KYShyLFphKFFhKSk7dmFyIG89WGEodCwoZnVuY3Rpb24odCxlLG8pe3JldHVybntjcml0ZXJpYTpKYShyLChmdW5jdGlvbihyKXtyZXR1cm4gcih0KX0pKSxpbmRleDorK24sdmFsdWU6dH19KSk7cmV0dXJuIFlhKG8sKGZ1bmN0aW9uKHQscil7cmV0dXJuIHRpKHQscixlKX0pKX07dmFyIG9pPWZ1bmN0aW9uKHQscixlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gdC5jYWxsKHIpO2Nhc2UgMTpyZXR1cm4gdC5jYWxsKHIsZVswXSk7Y2FzZSAyOnJldHVybiB0LmNhbGwocixlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4gdC5jYWxsKHIsZVswXSxlWzFdLGVbMl0pfXJldHVybiB0LmFwcGx5KHIsZSl9LHVpPU1hdGgubWF4O3ZhciBhaT1mdW5jdGlvbih0LHIsZSl7cmV0dXJuIHI9dWkodm9pZCAwPT09cj90Lmxlbmd0aC0xOnIsMCksZnVuY3Rpb24oKXtmb3IodmFyIG49YXJndW1lbnRzLG89LTEsdT11aShuLmxlbmd0aC1yLDApLGE9QXJyYXkodSk7KytvPHU7KWFbb109bltyK29dO289LTE7Zm9yKHZhciBpPUFycmF5KHIrMSk7KytvPHI7KWlbb109bltvXTtyZXR1cm4gaVtyXT1lKGEpLG9pKHQsdGhpcyxpKX19O3ZhciBpaT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19LGNpPVNyLGZpPWNpP2Z1bmN0aW9uKHQscil7cmV0dXJuIGNpKHQsInRvU3RyaW5nIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6aWkociksd3JpdGFibGU6ITB9KX06UmUsbGk9RGF0ZS5ub3c7dmFyIHZpPWZ1bmN0aW9uKHQpe3ZhciByPTAsZT0wO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWxpKCksbz0xNi0obi1lKTtpZihlPW4sbz4wKXtpZigrK3I+PTgwMClyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2Ugcj0wO3JldHVybiB0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0oZmkpLHNpPVJlLHBpPWFpLGJpPXZpO3ZhciB5aT1qdCxkaT1GZSxoaT1rcixqaT0kO3ZhciBnaT1xYSxfaT1uaSxPaT1mdW5jdGlvbih0LHIsZSl7aWYoIWppKGUpKXJldHVybiExO3ZhciBuPXR5cGVvZiByO3JldHVybiEhKCJudW1iZXIiPT1uP2RpKGUpJiZoaShyLGUubGVuZ3RoKToic3RyaW5nIj09biYmciBpbiBlKSYmeWkoZVtyXSx0KX0sd2k9ZnVuY3Rpb24odCxyKXtyZXR1cm4gYmkocGkodCxyLHNpKSx0KyIiKX0oKGZ1bmN0aW9uKHQscil7aWYobnVsbD09dClyZXR1cm5bXTt2YXIgZT1yLmxlbmd0aDtyZXR1cm4gZT4xJiZPaSh0LHJbMF0sclsxXSk/cj1bXTplPjImJk9pKHJbMF0sclsxXSxyWzJdKSYmKHI9W3JbMF1dKSxfaSh0LGdpKHIsMSksW10pfSkpLG1pPSRyLEFpPUlyO3ZhciBTaT1mdW5jdGlvbih0LHIsZSxuKXt2YXIgbz0hZTtlfHwoZT17fSk7Zm9yKHZhciB1PS0xLGE9ci5sZW5ndGg7Kyt1PGE7KXt2YXIgaT1yW3VdLGM9bj9uKGVbaV0sdFtpXSxpLGUsdCk6dm9pZCAwO3ZvaWQgMD09PWMmJihjPXRbaV0pLG8/QWkoZSxpLGMpOm1pKGUsaSxjKX1yZXR1cm4gZX0seGk9U2ksSWk9RGU7dmFyIFBpPWZ1bmN0aW9uKHQscil7cmV0dXJuIHQmJnhpKHIsSWkociksdCl9O3ZhciB6aT0kLEVpPW1lLCRpPWZ1bmN0aW9uKHQpe3ZhciByPVtdO2lmKG51bGwhPXQpZm9yKHZhciBlIGluIE9iamVjdCh0KSlyLnB1c2goZSk7cmV0dXJuIHJ9LEZpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGtpPU9lLE1pPWZ1bmN0aW9uKHQpe2lmKCF6aSh0KSlyZXR1cm4gJGkodCk7dmFyIHI9RWkodCksZT1bXTtmb3IodmFyIG4gaW4gdCkoImNvbnN0cnVjdG9yIiE9bnx8IXImJkZpLmNhbGwodCxuKSkmJmUucHVzaChuKTtyZXR1cm4gZX0sVWk9RmU7dmFyIERpPWZ1bmN0aW9uKHQpe3JldHVybiBVaSh0KT9raSh0LCEwKTpNaSh0KX0sTmk9U2ksVGk9RGk7dmFyIEJpPWZ1bmN0aW9uKHQscil7cmV0dXJuIHQmJk5pKHIsVGkociksdCl9LENpPXt9OyFmdW5jdGlvbih0LHIpe3ZhciBlPWYsbj1yJiYhci5ub2RlVHlwZSYmcixvPW4mJnQmJiF0Lm5vZGVUeXBlJiZ0LHU9byYmby5leHBvcnRzPT09bj9lLkJ1ZmZlcjp2b2lkIDAsYT11P3UuYWxsb2NVbnNhZmU6dm9pZCAwO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2lmKHIpcmV0dXJuIHQuc2xpY2UoKTt2YXIgZT10Lmxlbmd0aCxuPWE/YShlKTpuZXcgdC5jb25zdHJ1Y3RvcihlKTtyZXR1cm4gdC5jb3B5KG4pLG59fSh7Z2V0IGV4cG9ydHMoKXtyZXR1cm4gQ2l9LHNldCBleHBvcnRzKHQpe0NpPXR9fSxDaSk7dmFyIFJpPWZ1bmN0aW9uKHQscil7dmFyIGU9LTEsbj10Lmxlbmd0aDtmb3Iocnx8KHI9QXJyYXkobikpOysrZTxuOylyW2VdPXRbZV07cmV0dXJuIHJ9LExpPVNpLFZpPURuO3ZhciBXaT1mdW5jdGlvbih0LHIpe3JldHVybiBMaSh0LFZpKHQpLHIpfSxxaT1BZShPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KSxHaT1JbixIaT1xaSxKaT1EbixLaT0kbixRaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKHQpe2Zvcih2YXIgcj1bXTt0OylHaShyLEppKHQpKSx0PUhpKHQpO3JldHVybiByfTpLaSxYaT1TaSxZaT1RaTt2YXIgWmk9ZnVuY3Rpb24odCxyKXtyZXR1cm4gWGkodCxZaSh0KSxyKX0sdGM9RW4scmM9UWksZWM9RGk7dmFyIG5jPWZ1bmN0aW9uKHQpe3JldHVybiB0Yyh0LGVjLHJjKX0sb2M9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgdWM9ZnVuY3Rpb24odCl7dmFyIHI9dC5sZW5ndGgsZT1uZXcgdC5jb25zdHJ1Y3RvcihyKTtyZXR1cm4gciYmInN0cmluZyI9PXR5cGVvZiB0WzBdJiZvYy5jYWxsKHQsImluZGV4IikmJihlLmluZGV4PXQuaW5kZXgsZS5pbnB1dD10LmlucHV0KSxlfSxhYz1kbjt2YXIgaWM9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IGFjKHIpLnNldChuZXcgYWModCkpLHJ9LGNjPWljO3ZhciBmYz1mdW5jdGlvbih0LHIpe3ZhciBlPXI/Y2ModC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihlLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfSxsYz0vXHcqJC87dmFyIHZjPWZ1bmN0aW9uKHQpe3ZhciByPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLGxjLmV4ZWModCkpO3JldHVybiByLmxhc3RJbmRleD10Lmxhc3RJbmRleCxyfSxzYz1sP2wucHJvdG90eXBlOnZvaWQgMCxwYz1zYz9zYy52YWx1ZU9mOnZvaWQgMDt2YXIgYmM9aWM7dmFyIHljPWljLGRjPWZjLGhjPXZjLGpjPWZ1bmN0aW9uKHQpe3JldHVybiBwYz9PYmplY3QocGMuY2FsbCh0KSk6e319LGdjPWZ1bmN0aW9uKHQscil7dmFyIGU9cj9iYyh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKGUsdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKX07dmFyIF9jPWZ1bmN0aW9uKHQscixlKXt2YXIgbj10LmNvbnN0cnVjdG9yO3N3aXRjaChyKXtjYXNlIltvYmplY3QgQXJyYXlCdWZmZXJdIjpyZXR1cm4geWModCk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiBuZXcgbigrdCk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuIGRjKHQsZSk7Y2FzZSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOmNhc2UiW29iamVjdCBGbG9hdDY0QXJyYXldIjpjYXNlIltvYmplY3QgSW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDE2QXJyYXldIjpjYXNlIltvYmplY3QgSW50MzJBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQzMkFycmF5XSI6cmV0dXJuIGdjKHQsZSk7Y2FzZSJbb2JqZWN0IE1hcF0iOmNhc2UiW29iamVjdCBTZXRdIjpyZXR1cm4gbmV3IG47Y2FzZSJbb2JqZWN0IE51bWJlcl0iOmNhc2UiW29iamVjdCBTdHJpbmddIjpyZXR1cm4gbmV3IG4odCk7Y2FzZSJbb2JqZWN0IFJlZ0V4cF0iOnJldHVybiBoYyh0KTtjYXNlIltvYmplY3QgU3ltYm9sXSI6cmV0dXJuIGpjKHQpfX0sT2M9JCx3Yz1PYmplY3QuY3JlYXRlLG1jPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7aWYoIU9jKHIpKXJldHVybnt9O2lmKHdjKXJldHVybiB3YyhyKTt0LnByb3RvdHlwZT1yO3ZhciBlPW5ldyB0O3JldHVybiB0LnByb3RvdHlwZT12b2lkIDAsZX19KCksQWM9cWksU2M9bWU7dmFyIHhjPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0LmNvbnN0cnVjdG9yfHxTYyh0KT97fTptYyhBYyh0KSl9LEljPWNvLFBjPXc7dmFyIHpjPWZ1bmN0aW9uKHQpe3JldHVybiBQYyh0KSYmIltvYmplY3QgTWFwXSI9PUljKHQpfSxFYz1jZSwkYz1mZSYmZmUuaXNNYXAsRmM9JGM/RWMoJGMpOnpjLGtjPWNvLE1jPXc7dmFyIFVjPWZ1bmN0aW9uKHQpe3JldHVybiBNYyh0KSYmIltvYmplY3QgU2V0XSI9PWtjKHQpfSxEYz1jZSxOYz1mZSYmZmUuaXNTZXQsVGM9TmM/RGMoTmMpOlVjLEJjPWFuLENjPVZyLFJjPSRyLExjPVBpLFZjPUJpLFdjPUNpLHFjPVJpLEdjPVdpLEhjPVppLEpjPUNuLEtjPW5jLFFjPWNvLFhjPXVjLFljPV9jLFpjPXhjLHRmPXUscmY9dGUsZWY9RmMsbmY9JCxvZj1UYyx1Zj1EZSxhZj1EaSxjZj0iW29iamVjdCBBcmd1bWVudHNdIixmZj0iW29iamVjdCBGdW5jdGlvbl0iLGxmPSJbb2JqZWN0IE9iamVjdF0iLHZmPXt9O3ZmW2NmXT12ZlsiW29iamVjdCBBcnJheV0iXT12ZlsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT12ZlsiW29iamVjdCBEYXRhVmlld10iXT12ZlsiW29iamVjdCBCb29sZWFuXSJdPXZmWyJbb2JqZWN0IERhdGVdIl09dmZbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPXZmWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT12ZlsiW29iamVjdCBJbnQ4QXJyYXldIl09dmZbIltvYmplY3QgSW50MTZBcnJheV0iXT12ZlsiW29iamVjdCBJbnQzMkFycmF5XSJdPXZmWyJbb2JqZWN0IE1hcF0iXT12ZlsiW29iamVjdCBOdW1iZXJdIl09dmZbbGZdPXZmWyJbb2JqZWN0IFJlZ0V4cF0iXT12ZlsiW29iamVjdCBTZXRdIl09dmZbIltvYmplY3QgU3RyaW5nXSJdPXZmWyJbb2JqZWN0IFN5bWJvbF0iXT12ZlsiW29iamVjdCBVaW50OEFycmF5XSJdPXZmWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPXZmWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPXZmWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLHZmWyJbb2JqZWN0IEVycm9yXSJdPXZmW2ZmXT12ZlsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBzZj1mdW5jdGlvbiB0KHIsZSxuLG8sdSxhKXt2YXIgaSxjPTEmZSxmPTImZSxsPTQmZTtpZihuJiYoaT11P24ocixvLHUsYSk6bihyKSksdm9pZCAwIT09aSlyZXR1cm4gaTtpZighbmYocikpcmV0dXJuIHI7dmFyIHY9dGYocik7aWYodil7aWYoaT1YYyhyKSwhYylyZXR1cm4gcWMocixpKX1lbHNle3ZhciBzPVFjKHIpLHA9cz09ZmZ8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXM7aWYocmYocikpcmV0dXJuIFdjKHIsYyk7aWYocz09bGZ8fHM9PWNmfHxwJiYhdSl7aWYoaT1mfHxwP3t9OlpjKHIpLCFjKXJldHVybiBmP0hjKHIsVmMoaSxyKSk6R2MocixMYyhpLHIpKX1lbHNle2lmKCF2ZltzXSlyZXR1cm4gdT9yOnt9O2k9WWMocixzLGMpfX1hfHwoYT1uZXcgQmMpO3ZhciBiPWEuZ2V0KHIpO2lmKGIpcmV0dXJuIGI7YS5zZXQocixpKSxvZihyKT9yLmZvckVhY2goKGZ1bmN0aW9uKG8pe2kuYWRkKHQobyxlLG4sbyxyLGEpKX0pKTplZihyKSYmci5mb3JFYWNoKChmdW5jdGlvbihvLHUpe2kuc2V0KHUsdChvLGUsbix1LHIsYSkpfSkpO3ZhciB5PXY/dm9pZCAwOihsP2Y/S2M6SmM6Zj9hZjp1Zikocik7cmV0dXJuIENjKHl8fHIsKGZ1bmN0aW9uKG8sdSl7eSYmKG89clt1PW9dKSxSYyhpLHUsdChvLGUsbix1LHIsYSkpfSkpLGl9LHBmPXNmO3ZhciBiZj1mdW5jdGlvbih0KXtyZXR1cm4gcGYodCw1KX0seWY9ZmE7dmFyIGRmPWZ1bmN0aW9uKHQscixlKXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gZT12b2lkIDA9PT1lP246ZSwhciYmZT49bj90OnlmKHQscixlKX07dmFyIGhmPU1hLGpmPWZ1bmN0aW9uKHQpe3JldHVybiB0IT10fSxnZj1mdW5jdGlvbih0LHIsZSl7Zm9yKHZhciBuPWUtMSxvPXQubGVuZ3RoOysrbjxvOylpZih0W25dPT09cilyZXR1cm4gbjtyZXR1cm4tMX07dmFyIF9mPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gcj09cj9nZih0LHIsZSk6aGYodCxqZixlKX0sT2Y9X2Y7dmFyIHdmPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXQubGVuZ3RoO2UtLSYmT2Yocix0W2VdLDApPi0xOyk7cmV0dXJuIGV9LG1mPV9mO3ZhciBBZj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPXQubGVuZ3RoOysrZTxuJiZtZihyLHRbZV0sMCk+LTE7KTtyZXR1cm4gZX07dmFyIFNmPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNwbGl0KCIiKX0seGY9IlxcdWQ4MDAtXFx1ZGZmZiIsSWY9IlsiK3hmKyJdIixQZj0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLHpmPSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEVmPSJbXiIreGYrIl0iLCRmPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixGZj0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsa2Y9Iig/OiIrUGYrInwiK3pmKyIpIisiPyIsTWY9IltcXHVmZTBlXFx1ZmUwZl0/IixVZj1NZitrZisoIig/OlxcdTIwMGQoPzoiK1tFZiwkZixGZl0uam9pbigifCIpKyIpIitNZitrZisiKSoiKSxEZj0iKD86IitbRWYrUGYrIj8iLFBmLCRmLEZmLElmXS5qb2luKCJ8IikrIikiLE5mPVJlZ0V4cCh6ZisiKD89Iit6ZisiKXwiK0RmK1VmLCJnIik7dmFyIFRmPVNmLEJmPXd1LENmPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hdGNoKE5mKXx8W119O3ZhciBSZj1mcixMZj1wYSxWZj1kZixXZj13ZixxZj1BZixHZj1mdW5jdGlvbih0KXtyZXR1cm4gQmYodCk/Q2YodCk6VGYodCl9LEhmPXZyO3ZhciBKZj1mdW5jdGlvbih0LHIsZSl7aWYoKHQ9SGYodCkpJiYoZXx8dm9pZCAwPT09cikpcmV0dXJuIExmKHQpO2lmKCF0fHwhKHI9UmYocikpKXJldHVybiB0O3ZhciBuPUdmKHQpLG89R2YociksdT1xZihuLG8pLGE9V2YobixvKSsxO3JldHVybiBWZihuLHUsYSkuam9pbigiIil9O2Z1bmN0aW9uIEtmKHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIFFmKHQpe3JldHVybiEoIUtmKHQpfHwiIj09PXQpfWZ1bmN0aW9uIFhmKHQscil7aWYoIVFmKHQpKXJldHVybltdO2lmKCFRZihyKSlyZXR1cm5bXTtsZXQgZT1mdW5jdGlvbih0LHIpe3JldHVybiBRZih0KSYmUWYocik/dC5zcGxpdChyKTpbXX0odCxyKTtlPXl1KGUsSmYpO2xldCBuPVtdO3JldHVybiBKZShlLChmdW5jdGlvbih0KXtRZih0KSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gWWYodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBaZih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiB0bCh0KXtyZXR1cm4hIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IFVuZGVmaW5lZF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgTnVsbF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KXx8KCEhZnVuY3Rpb24odCl7aWYoWmYodCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISghS2YodCl8fCIiIT09dCl9KHQpfHwhIWZ1bmN0aW9uKHQpe3JldHVybiEhWWYodCkmJjA9PT10Lmxlbmd0aH0odCkpKSl9ZnVuY3Rpb24gcmwodCl7aWYoWmYodCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiEwO3JldHVybiExfXJldHVybiExfWZ1bmN0aW9uIGVsKHQpe2xldCByPSExO3JldHVybiBRZih0KT9yPSFpc05hTihOdW1iZXIodCkpOmZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSYmKHI9ITApLHJ9ZnVuY3Rpb24gbmwodCxyKXt2YXIgZT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3ImJihuPW4uZmlsdGVyKChmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpLmVudW1lcmFibGV9KSkpLGUucHVzaC5hcHBseShlLG4pfXJldHVybiBlfWZ1bmN0aW9uIG9sKHQpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP25sKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24ocil7ZSh0LHIsbltyXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6bmwoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KSl9cmV0dXJuIHR9ZnVuY3Rpb24gdWwodCxyPXt9KXtpZighWWYoZT10KXx8MD09PWUubGVuZ3RofHwxPT09ZS5sZW5ndGgmJnRsKGVbMF0pKXJldHVybnt9O3ZhciBlO2xldCBuPW1yKHIsImRlbGltaXRlciIpO1FmKG4pfHwobj0i4p2vIik7bGV0IG89bXIociwiYmluZFJvb3QiKTtRZihvKXx8KG89InJvb3QiKTtsZXQgdT1tcihyLCJzb3J5SXRlbXMiKSxhPXl1KHQsKHQ9PnsiZm9sZGVyIiE9PXQudHlwZSYmImZpbGUiIT09dC50eXBlJiYodC50eXBlPSJmaWxlIik7bGV0IHI9KHQ9PntsZXQgcj1YZih0PSh0PXQucmVwbGFjZSgvXFxcXC9nLCJcXCIpKS5yZXBsYWNlKC9cXC9nLCIvIiksIi8iKTtyZXR1cm57c3M6cixjZnA6emEocixuKSxuYW1lOkt1KHIpfX0pKHQucGF0aCksZT1WdShyLnNzKSxvPVtdO2UtMT4wJiYobz1JYShyLnMsZS0xKSk7bGV0IHU9IiI7cmV0dXJuIFZ1KG8pPjAmJih1PXphKG8sbikpLHt0eXBlOnQudHlwZSxuYW1lOnIubmFtZSxuczplLHNzOnIuc3MsaWQ6ci5jZnAscGFzOm8scGFyZW50SWQ6dSxkYXRhOmJmKHQpfX0pKSxpPXQ9PntsZXQgcj1WdSh0KSxlPVtdO2ZvcihsZXQgbz0wO288cjtvKyspe2xldCByPVtdO2ZvcihsZXQgZT0wO2U8PW87ZSsrKXIucHVzaCh0W2VdKTtsZXQgdT16YShyLG4pO2UucHVzaCh7aWQ6dSxuYW1lOnRbb119KX1yZXR1cm4gZX0sYz17fTtKZShhLCh0PT57bGV0IHI9W29dLGU9bztKZSh0LnNzLCgobyx1KT0+e2xldCBhPXU8dC5ucy0xfHwiZm9sZGVyIj09PXQudHlwZTtyLnB1c2gobyk7bGV0IGY9bnVsbDt1PT09dC5ucy0xJiYoZj10LmRhdGEpO2xldCBsPXphKHIsbiksdj1pKHIpO3ZhciBzLHA7cD1sLFpmKHM9YykmJihRZihwKXx8ZWwocCkpJiZwIGluIHN8fChjW2xdPWE/e25zOlZ1KHIpLHRzOmJmKHIpLHBhcmVudEluZm9yczp2LF90eXBlOiJmb2xkZXIiLHR5cGU6ImFycmF5IixudW1PZkNoaWxyZW46LTEsaWQ6bCxwYXJlbnRJZDplLHRleHQ6byxjaGlsZHJlbjpbXSxkYXRhOmZ9OntuczpWdShyKSx0czpiZihyKSxwYXJlbnRJbmZvcnM6dixfdHlwZToiZmlsZSIsdHlwZToibm9kZSIsbnVtT2ZDaGlscmVuOi0xLGlkOmwscGFyZW50SWQ6ZSx0ZXh0Om8sZGF0YTpmfSksZT1sfSkpfSkpO2xldCBmPVp1KGMpO2lmKGY9d2koZiwiaWQiKSxmPXdpKGYsIm5zIiksZnVuY3Rpb24odCl7bGV0IHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1yfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PT1yfSh1KSl7bGV0IHQ9W10scj1jYShmLCJucyIpO0plKHIsKChyLGUpPT57bGV0IG49Y2EociwicGFyZW50SWQiKTtKZShuLCgocixuKT0+e2xldCBvPXUocixuLGUpO3Q9Wy4uLnQsLi4ub119KSl9KSksZj10fWxldCBsPVtdLHY9W107SmUoZiwodD0+eyJmb2xkZXIiPT09dC5fdHlwZT9sLnB1c2godCk6di5wdXNoKHQpfSkpO2xldCBzPWNhKGwsIm5zIikscD1jYSh2LCJucyIpLGI9SnUoeXUobCwibnMiKSkseT1KdSh5dSh2LCJucyIpKSxkPW51bGw7e2xldCB0PVtvXTtkPVt7bnM6VnUodCksdHM6YmYodCkscGFyZW50SW5mb3JzOmkodCksX3R5cGU6ImZvbGRlciIsdHlwZToiYXJyYXkiLG51bU9mQ2hpbHJlbjotMSxpZDpvLHBhcmVudElkOiIiLHRleHQ6byxjaGlsZHJlbjpbXSxkYXRhOm51bGx9XX1sZXQgaD17fTtoW29dPSIwLmNoaWxkcmVuIjtsZXQgaj17fTtqW29dPSIwIjtmb3IobGV0IHQ9Mjt0PD1iO3QrKyl7bGV0IHI9c1t0XTtKZShyLCh0PT57bGV0IHI9bXIoaCx0LnBhcmVudElkLCIiKTtpZighUWYocikpdGhyb3cgY29uc29sZS5sb2coImtwUGF0aEZkIixoKSxjb25zb2xlLmxvZygidiIsdCx0LnBhcmVudElkKSxuZXcgRXJyb3IoYGludmFsaWQgcGFyZW50SWRbJHt0LnBhcmVudElkfV0gaW4gZm9sZGVyYCk7bGV0IGU9bXIoZCxyKTtpZihZZihlKXx8Q3IoZCxyLFtdKSxlPW1yKGQsciksIXJsKEJhKGUse2lkOnQuaWR9KSkpe2UucHVzaChvbChvbCh7fSx0KSx7fSx7Y2hpbGRyZW46W119KSk7bGV0IG49YCR7cn0uJHtWdShlKS0xfWA7aFt0LmlkXT1gJHtufS5jaGlsZHJlbmAsalt0LmlkXT1ufX0pKX1sZXQgZz1iZihkKSxfPXt9O2ZvcihsZXQgdD0yO3Q8PXk7dCsrKXtsZXQgcj1wW3RdO0plKHIsKHQ9PntsZXQgcj1tcihoLHQucGFyZW50SWQsIiIpO2lmKCFRZihyKSl0aHJvdyBjb25zb2xlLmxvZygia3BQYXRoRmQiLGgpLGNvbnNvbGUubG9nKCJ2Iix0LHQucGFyZW50SWQpLG5ldyBFcnJvcihgaW52YWxpZCBwYXJlbnRJZFske3QucGFyZW50SWR9XSBpbiBmaWxlYCk7bGV0IGU9bXIoZCxyKTtpZighWWYoZSkpdGhyb3cgY29uc29sZS5sb2coInRyZWVJdGVtcyIsZCksY29uc29sZS5sb2coImsiLHIpLGNvbnNvbGUubG9nKCJ2Iix0KSxuZXcgRXJyb3IoIueEoemgkOWFiOW7uue9ruizh+aWmeWkviIpO2lmKCFybChCYShlLHtpZDp0LmlkfSkpKXtlLnB1c2godCk7bGV0IG49YCR7cn0uJHtWdShlKS0xfWA7X1t0LmlkXT1uLGpbdC5pZF09bn19KSl9cmV0dXJue3RyZWVJdGVtczpkLHRyZWVJdGVtc0ZvbGRlcjpnLGtwUGF0aDpqfX1hc3luYyBmdW5jdGlvbiBmaWxlcGF0aFRvVHJlZVdrKHQscj17fSl7cmV0dXJuIHVsKHQscil9CgpsZXQgaW5zdGFuY2UgPSBudWxsCmZ1bmN0aW9uIGluaXQoaW5wdXQpewoKICAgIC8vaW5pdAogICAgbGV0IHIKICAgIAogICAgICAgIHIgPSB7CiAgICAgICAgICAgIG1haW46IGZpbGVwYXRoVG9UcmVlV2sKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gZmlsZXBhdGhUb1RyZWVXawogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZWN2TWVzc2FnZShlLmRhdGEpCiAgICAgICAgfQogICAgICAgIAoK");function Z(){let Z=new t;let m=function(d){try{let Z=new Blob([d]),m=window.URL||window.webkitURL;return new Worker(m.createObjectURL(Z))}catch(d){b(d)}}(d);if(!m)return b("invalid worker"),null;function l(){let d=function(){let d,Z,m=new Promise((function(){d=arguments[0],Z=arguments[1]}));return m.resolve=d,m.reject=Z,m}(),l=function(){let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,Z=[],m="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),l=m.length;for(let b=0;b<d;b++)Z[b]=m[0|Math.random()*l];return Z.join("")}(),b={mode:"call",id:l,fun:"main",input:[...arguments]};return m.postMessage(b),Z.once(l,(Z=>{"success"===Z.state?d.resolve(Z.msg):d.reject(Z.msg)})),d}function b(d){Z.emit("error",d)}return m.onmessage=function(d){!function(d){let m=d,l=m.mode;"emit"!==l&&"return"!==l||("emit"===l&&Z.emit(m.evName,m.msg),"return"===l&&Z.emit(m.id,m))}(d.data)},m.onerror=b,function(){let d={mode:"init",type:"function",input:[...arguments]};m.postMessage(d)}([...arguments]),Z.main=l,Z.main=l,Z.terminate=function(){m?(m.terminate(),m=void 0):b("worker has been terminated")},Z}s=async function(){let d=[...arguments],m=Z();return await m.main(...d).finally((()=>{m.terminate()}))}}();var J=s;export{J as default};
|
|
1
|
+
const d="function"==typeof atob,Z="function"==typeof Buffer,m="function"==typeof TextDecoder?new TextDecoder:void 0,l=("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),b=(d=>{let Z={};return l.forEach(((d,m)=>Z[d]=m)),Z})(),I=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,i=String.fromCharCode.bind(String),X="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):d=>new Uint8Array(Array.prototype.slice.call(d,0)),c=d=>d.replace(/[^A-Za-z0-9\+\/]/g,""),W=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,y=d=>{switch(d.length){case 4:var Z=((7&d.charCodeAt(0))<<18|(63&d.charCodeAt(1))<<12|(63&d.charCodeAt(2))<<6|63&d.charCodeAt(3))-65536;return i(55296+(Z>>>10))+i(56320+(1023&Z));case 3:return i((15&d.charCodeAt(0))<<12|(63&d.charCodeAt(1))<<6|63&d.charCodeAt(2));default:return i((31&d.charCodeAt(0))<<6|63&d.charCodeAt(1))}},p=d=>d.replace(W,y),K=d=>{if(d=d.replace(/\s+/g,""),!I.test(d))throw new TypeError("malformed base64.");d+="==".slice(2-(3&d.length));let Z,m,l,X="";for(let I=0;I<d.length;)Z=b[d.charAt(I++)]<<18|b[d.charAt(I++)]<<12|(m=b[d.charAt(I++)])<<6|(l=b[d.charAt(I++)]),X+=64===m?i(Z>>16&255):64===l?i(Z>>16&255,Z>>8&255):i(Z>>16&255,Z>>8&255,255&Z);return X},Y=d?d=>atob(c(d)):Z?d=>Buffer.from(d,"base64").toString("binary"):K,H=Z?d=>X(Buffer.from(d,"base64")):d=>X(Y(d).split("").map((d=>d.charCodeAt(0)))),G=Z?d=>Buffer.from(d,"base64").toString("utf8"):m?d=>m.decode(H(d)):d=>p(Y(d)),h=d=>c(d.replace(/[-_]/g,(d=>"-"==d?"+":"/"))),C=d=>G(h(d)),V=C;var u={};!function(d){var Z=Object.prototype.hasOwnProperty,m="~";function l(){}function b(d,Z,m){this.fn=d,this.context=Z,this.once=m||!1}function I(d,Z,l,I,i){if("function"!=typeof l)throw new TypeError("The listener must be a function");var X=new b(l,I||d,i),c=m?m+Z:Z;return d._events[c]?d._events[c].fn?d._events[c]=[d._events[c],X]:d._events[c].push(X):(d._events[c]=X,d._eventsCount++),d}function i(d,Z){0==--d._eventsCount?d._events=new l:delete d._events[Z]}function X(){this._events=new l,this._eventsCount=0}Object.create&&(l.prototype=Object.create(null),(new l).__proto__||(m=!1)),X.prototype.eventNames=function(){var d,l,b=[];if(0===this._eventsCount)return b;for(l in d=this._events)Z.call(d,l)&&b.push(m?l.slice(1):l);return Object.getOwnPropertySymbols?b.concat(Object.getOwnPropertySymbols(d)):b},X.prototype.listeners=function(d){var Z=m?m+d:d,l=this._events[Z];if(!l)return[];if(l.fn)return[l.fn];for(var b=0,I=l.length,i=new Array(I);b<I;b++)i[b]=l[b].fn;return i},X.prototype.listenerCount=function(d){var Z=m?m+d:d,l=this._events[Z];return l?l.fn?1:l.length:0},X.prototype.emit=function(d,Z,l,b,I,i){var X=m?m+d:d;if(!this._events[X])return!1;var c,W,y=this._events[X],p=arguments.length;if(y.fn){switch(y.once&&this.removeListener(d,y.fn,void 0,!0),p){case 1:return y.fn.call(y.context),!0;case 2:return y.fn.call(y.context,Z),!0;case 3:return y.fn.call(y.context,Z,l),!0;case 4:return y.fn.call(y.context,Z,l,b),!0;case 5:return y.fn.call(y.context,Z,l,b,I),!0;case 6:return y.fn.call(y.context,Z,l,b,I,i),!0}for(W=1,c=new Array(p-1);W<p;W++)c[W-1]=arguments[W];y.fn.apply(y.context,c)}else{var K,Y=y.length;for(W=0;W<Y;W++)switch(y[W].once&&this.removeListener(d,y[W].fn,void 0,!0),p){case 1:y[W].fn.call(y[W].context);break;case 2:y[W].fn.call(y[W].context,Z);break;case 3:y[W].fn.call(y[W].context,Z,l);break;case 4:y[W].fn.call(y[W].context,Z,l,b);break;default:if(!c)for(K=1,c=new Array(p-1);K<p;K++)c[K-1]=arguments[K];y[W].fn.apply(y[W].context,c)}}return!0},X.prototype.on=function(d,Z,m){return I(this,d,Z,m,!1)},X.prototype.once=function(d,Z,m){return I(this,d,Z,m,!0)},X.prototype.removeListener=function(d,Z,l,b){var I=m?m+d:d;if(!this._events[I])return this;if(!Z)return i(this,I),this;var X=this._events[I];if(X.fn)X.fn!==Z||b&&!X.once||l&&X.context!==l||i(this,I);else{for(var c=0,W=[],y=X.length;c<y;c++)(X[c].fn!==Z||b&&!X[c].once||l&&X[c].context!==l)&&W.push(X[c]);W.length?this._events[I]=1===W.length?W[0]:W:i(this,I)}return this},X.prototype.removeAllListeners=function(d){var Z;return d?(Z=m?m+d:d,this._events[Z]&&i(this,Z)):(this._events=new l,this._eventsCount=0),this},X.prototype.off=X.prototype.removeListener,X.prototype.addListener=X.prototype.on,X.prefixed=m,X.EventEmitter=X,d.exports=X}({get exports(){return u},set exports(d){u=d}});var t=u;let s;!function(){if("browser"!==("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=V("CgoKZnVuY3Rpb24gdChyKXtyZXR1cm4gdD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sdChyKX1mdW5jdGlvbiByKHIpe3ZhciBlPWZ1bmN0aW9uKHIsZSl7aWYoIm9iamVjdCIhPT10KHIpfHxudWxsPT09cilyZXR1cm4gcjt2YXIgbj1yW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIG89bi5jYWxsKHIsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PXQobykpcmV0dXJuIG87dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHIpfShyLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PXQoZSk/ZTpTdHJpbmcoZSl9ZnVuY3Rpb24gZSh0LGUsbil7cmV0dXJuKGU9cihlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH12YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9O2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsImRlZmF1bHQiKT90LmRlZmF1bHQ6dH12YXIgdT1BcnJheS5pc0FycmF5LGE9Im9iamVjdCI9PXR5cGVvZiBuJiZuJiZuLk9iamVjdD09PU9iamVjdCYmbixpPWEsYz0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGY9aXx8Y3x8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxsPWYuU3ltYm9sLHY9bCxzPU9iamVjdC5wcm90b3R5cGUscD1zLmhhc093blByb3BlcnR5LGI9cy50b1N0cmluZyx5PXY/di50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIGQ9ZnVuY3Rpb24odCl7dmFyIHI9cC5jYWxsKHQseSksZT10W3ldO3RyeXt0W3ldPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89Yi5jYWxsKHQpO3JldHVybiBuJiYocj90W3ldPWU6ZGVsZXRlIHRbeV0pLG99LGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgaj1kLGc9ZnVuY3Rpb24odCl7cmV0dXJuIGguY2FsbCh0KX0sXz1sP2wudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBPPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3QgTnVsbF0iOl8mJl8gaW4gT2JqZWN0KHQpP2oodCk6Zyh0KX07dmFyIHc9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH0sbT1PLEE9dzt2YXIgUz1mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fEEodCkmJiJbb2JqZWN0IFN5bWJvbF0iPT1tKHQpfSx4PXUsST1TLFA9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8sej0vXlx3KiQvO3ZhciBFPWZ1bmN0aW9uKHQscil7aWYoeCh0KSlyZXR1cm4hMTt2YXIgZT10eXBlb2YgdDtyZXR1cm4hKCJudW1iZXIiIT1lJiYic3ltYm9sIiE9ZSYmImJvb2xlYW4iIT1lJiZudWxsIT10JiYhSSh0KSl8fCh6LnRlc3QodCl8fCFQLnRlc3QodCl8fG51bGwhPXImJnQgaW4gT2JqZWN0KHIpKX07dmFyICQ9ZnVuY3Rpb24odCl7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09cnx8ImZ1bmN0aW9uIj09cil9LEY9TyxrPSQ7dmFyIE0sVT1mdW5jdGlvbih0KXtpZighayh0KSlyZXR1cm4hMTt2YXIgcj1GKHQpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PXJ8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXJ8fCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIj09cnx8IltvYmplY3QgUHJveHldIj09cn0sRD1mWyJfX2NvcmUtanNfc2hhcmVkX18iXSxOPShNPS9bXi5dKyQvLmV4ZWMoRCYmRC5rZXlzJiZELmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIitNOiIiO3ZhciBUPWZ1bmN0aW9uKHQpe3JldHVybiEhTiYmTiBpbiB0fSxCPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgQz1mdW5jdGlvbih0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIEIuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9LFI9VSxMPVQsVj0kLFc9QyxxPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEc9RnVuY3Rpb24ucHJvdG90eXBlLEg9T2JqZWN0LnByb3RvdHlwZSxKPUcudG9TdHJpbmcsSz1ILmhhc093blByb3BlcnR5LFE9UmVnRXhwKCJeIitKLmNhbGwoSykucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7dmFyIFg9ZnVuY3Rpb24odCl7cmV0dXJuISghVih0KXx8TCh0KSkmJihSKHQpP1E6cSkudGVzdChXKHQpKX0sWT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfTt2YXIgWj1mdW5jdGlvbih0LHIpe3ZhciBlPVkodCxyKTtyZXR1cm4gWChlKT9lOnZvaWQgMH0sdHQ9WihPYmplY3QsImNyZWF0ZSIpLHJ0PXR0O3ZhciBldD1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189cnQ/cnQobnVsbCk6e30sdGhpcy5zaXplPTB9O3ZhciBudD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sb3Q9dHQsdXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgYXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihvdCl7dmFyIGU9clt0XTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI9PT1lP3ZvaWQgMDplfXJldHVybiB1dC5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LGl0PXR0LGN0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGZ0PXR0O3ZhciBsdD1ldCx2dD1udCxzdD1hdCxwdD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBpdD92b2lkIDAhPT1yW3RdOmN0LmNhbGwocix0KX0sYnQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPWZ0JiZ2b2lkIDA9PT1yPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjpyLHRoaXN9O2Z1bmN0aW9uIHl0KHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fXl0LnByb3RvdHlwZS5jbGVhcj1sdCx5dC5wcm90b3R5cGUuZGVsZXRlPXZ0LHl0LnByb3RvdHlwZS5nZXQ9c3QseXQucHJvdG90eXBlLmhhcz1wdCx5dC5wcm90b3R5cGUuc2V0PWJ0O3ZhciBkdD15dDt2YXIgaHQ9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfTt2YXIganQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdD09PXJ8fHQhPXQmJnIhPXJ9LGd0PWp0O3ZhciBfdD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS07KWlmKGd0KHRbZV1bMF0scikpcmV0dXJuIGU7cmV0dXJuLTF9LE90PV90LHd0PUFycmF5LnByb3RvdHlwZS5zcGxpY2U7dmFyIG10PV90O3ZhciBBdD1fdDt2YXIgU3Q9X3Q7dmFyIHh0PWh0LEl0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1PdChyLHQpO3JldHVybiEoZTwwKSYmKGU9PXIubGVuZ3RoLTE/ci5wb3AoKTp3dC5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LFB0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1tdChyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LHp0PWZ1bmN0aW9uKHQpe3JldHVybiBBdCh0aGlzLl9fZGF0YV9fLHQpPi0xfSxFdD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1TdChlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTtmdW5jdGlvbiAkdCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX0kdC5wcm90b3R5cGUuY2xlYXI9eHQsJHQucHJvdG90eXBlLmRlbGV0ZT1JdCwkdC5wcm90b3R5cGUuZ2V0PVB0LCR0LnByb3RvdHlwZS5oYXM9enQsJHQucHJvdG90eXBlLnNldD1FdDt2YXIgRnQ9JHQsa3Q9WihmLCJNYXAiKSxNdD1kdCxVdD1GdCxEdD1rdDt2YXIgTnQ9ZnVuY3Rpb24odCl7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuInN0cmluZyI9PXJ8fCJudW1iZXIiPT1yfHwic3ltYm9sIj09cnx8ImJvb2xlYW4iPT1yPyJfX3Byb3RvX18iIT09dDpudWxsPT09dH07dmFyIFR0PWZ1bmN0aW9uKHQscil7dmFyIGU9dC5fX2RhdGFfXztyZXR1cm4gTnQocik/ZVsic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTplLm1hcH0sQnQ9VHQ7dmFyIEN0PVR0O3ZhciBSdD1UdDt2YXIgTHQ9VHQ7dmFyIFZ0PWZ1bmN0aW9uKHQscil7dmFyIGU9THQodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc30sV3Q9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBNdCxtYXA6bmV3KER0fHxVdCksc3RyaW5nOm5ldyBNdH19LHF0PWZ1bmN0aW9uKHQpe3ZhciByPUJ0KHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEd0PWZ1bmN0aW9uKHQpe3JldHVybiBDdCh0aGlzLHQpLmdldCh0KX0sSHQ9ZnVuY3Rpb24odCl7cmV0dXJuIFJ0KHRoaXMsdCkuaGFzKHQpfSxKdD1WdDtmdW5jdGlvbiBLdCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1LdC5wcm90b3R5cGUuY2xlYXI9V3QsS3QucHJvdG90eXBlLmRlbGV0ZT1xdCxLdC5wcm90b3R5cGUuZ2V0PUd0LEt0LnByb3RvdHlwZS5oYXM9SHQsS3QucHJvdG90eXBlLnNldD1KdDt2YXIgUXQ9S3QsWHQ9UXQ7ZnVuY3Rpb24gWXQodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3ZhciBlPWZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLG89cj9yLmFwcGx5KHRoaXMsbik6blswXSx1PWUuY2FjaGU7aWYodS5oYXMobykpcmV0dXJuIHUuZ2V0KG8pO3ZhciBhPXQuYXBwbHkodGhpcyxuKTtyZXR1cm4gZS5jYWNoZT11LnNldChvLGEpfHx1LGF9O3JldHVybiBlLmNhY2hlPW5ldyhZdC5DYWNoZXx8WHQpLGV9WXQuQ2FjaGU9WHQ7dmFyIFp0PVl0O3ZhciB0cj0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxycj0vXFwoXFwpPy9nLGVyPWZ1bmN0aW9uKHQpe3ZhciByPVp0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1lLnNpemUmJmUuY2xlYXIoKSx0fSkpLGU9ci5jYWNoZTtyZXR1cm4gcn0oKGZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UodHIsKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShyciwiJDEiKTplfHx0KX0pKSxyfSkpO3ZhciBucj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPUFycmF5KG4pOysrZTxuOylvW2VdPXIodFtlXSxlLHQpO3JldHVybiBvfSxvcj1ucix1cj11LGFyPVMsaXI9bD9sLnByb3RvdHlwZTp2b2lkIDAsY3I9aXI/aXIudG9TdHJpbmc6dm9pZCAwO3ZhciBmcj1mdW5jdGlvbiB0KHIpe2lmKCJzdHJpbmciPT10eXBlb2YgcilyZXR1cm4gcjtpZih1cihyKSlyZXR1cm4gb3Iocix0KSsiIjtpZihhcihyKSlyZXR1cm4gY3I/Y3IuY2FsbChyKToiIjt2YXIgZT1yKyIiO3JldHVybiIwIj09ZSYmMS9yPT0tSW5maW5pdHk/Ii0wIjplfSxscj1mcjt2YXIgdnI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/IiI6bHIodCl9LHNyPXUscHI9RSxicj1lcix5cj12cjt2YXIgZHI9ZnVuY3Rpb24odCxyKXtyZXR1cm4gc3IodCk/dDpwcih0LHIpP1t0XTpicih5cih0KSl9LGhyPVM7dmFyIGpyPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHx8aHIodCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LUluZmluaXR5PyItMCI6cn0sZ3I9ZHIsX3I9anI7dmFyIE9yPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1ncihyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbX3IocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9LHdyPU9yO3ZhciBtcj1mdW5jdGlvbih0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6d3IodCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59LEFyPVosU3I9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9QXIoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KCkseHI9U3I7dmFyIElyPWZ1bmN0aW9uKHQscixlKXsiX19wcm90b19fIj09ciYmeHI/eHIodCxyLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTplLHdyaXRhYmxlOiEwfSk6dFtyXT1lfSxQcj1Jcix6cj1qdCxFcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciAkcj1mdW5jdGlvbih0LHIsZSl7dmFyIG49dFtyXTtFci5jYWxsKHQscikmJnpyKG4sZSkmJih2b2lkIDAhPT1lfHxyIGluIHQpfHxQcih0LHIsZSl9LEZyPS9eKD86MHxbMS05XVxkKikkLzt2YXIga3I9ZnVuY3Rpb24odCxyKXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIShyPW51bGw9PXI/OTAwNzE5OTI1NDc0MDk5MTpyKSYmKCJudW1iZXIiPT1lfHwic3ltYm9sIiE9ZSYmRnIudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxyfSxNcj0kcixVcj1kcixEcj1rcixOcj0kLFRyPWpyO3ZhciBCcj1mdW5jdGlvbih0LHIsZSxuKXtpZighTnIodCkpcmV0dXJuIHQ7Zm9yKHZhciBvPS0xLHU9KHI9VXIocix0KSkubGVuZ3RoLGE9dS0xLGk9dDtudWxsIT1pJiYrK288dTspe3ZhciBjPVRyKHJbb10pLGY9ZTtpZigiX19wcm90b19fIj09PWN8fCJjb25zdHJ1Y3RvciI9PT1jfHwicHJvdG90eXBlIj09PWMpcmV0dXJuIHQ7aWYobyE9YSl7dmFyIGw9aVtjXTt2b2lkIDA9PT0oZj1uP24obCxjLGkpOnZvaWQgMCkmJihmPU5yKGwpP2w6RHIocltvKzFdKT9bXTp7fSl9TXIoaSxjLGYpLGk9aVtjXX1yZXR1cm4gdH07dmFyIENyPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gbnVsbD09dD90OkJyKHQscixlKX0sUnI9e30sTHI9e2dldCBleHBvcnRzKCl7cmV0dXJuIFJyfSxzZXQgZXhwb3J0cyh0KXtScj10fX07dmFyIFZyPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoOysrZTxuJiYhMSE9PXIodFtlXSxlLHQpOyk7cmV0dXJuIHR9O3ZhciBXcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocixlLG4pe2Zvcih2YXIgbz0tMSx1PU9iamVjdChyKSxhPW4ociksaT1hLmxlbmd0aDtpLS07KXt2YXIgYz1hW3Q/aTorK29dO2lmKCExPT09ZSh1W2NdLGMsdSkpYnJlYWt9cmV0dXJuIHJ9fSgpO3ZhciBxcj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPUFycmF5KHQpOysrZTx0OyluW2VdPXIoZSk7cmV0dXJuIG59LEdyPU8sSHI9dzt2YXIgSnI9ZnVuY3Rpb24odCl7cmV0dXJuIEhyKHQpJiYiW29iamVjdCBBcmd1bWVudHNdIj09R3IodCl9LEtyPXcsUXI9T2JqZWN0LnByb3RvdHlwZSxYcj1Rci5oYXNPd25Qcm9wZXJ0eSxZcj1Rci5wcm9wZXJ0eUlzRW51bWVyYWJsZSxacj1KcihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP0pyOmZ1bmN0aW9uKHQpe3JldHVybiBLcih0KSYmWHIuY2FsbCh0LCJjYWxsZWUiKSYmIVlyLmNhbGwodCwiY2FsbGVlIil9LHRlPXt9O3ZhciByZT1mdW5jdGlvbigpe3JldHVybiExfTshZnVuY3Rpb24odCxyKXt2YXIgZT1mLG49cmUsbz1yJiYhci5ub2RlVHlwZSYmcix1PW8mJnQmJiF0Lm5vZGVUeXBlJiZ0LGE9dSYmdS5leHBvcnRzPT09bz9lLkJ1ZmZlcjp2b2lkIDAsaT0oYT9hLmlzQnVmZmVyOnZvaWQgMCl8fG47dC5leHBvcnRzPWl9KHtnZXQgZXhwb3J0cygpe3JldHVybiB0ZX0sc2V0IGV4cG9ydHModCl7dGU9dH19LHRlKTt2YXIgZWU9ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PTkwMDcxOTkyNTQ3NDA5OTF9LG5lPU8sb2U9ZWUsdWU9dyxhZT17fTthZVsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09YWVbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPWFlWyJbb2JqZWN0IEludDhBcnJheV0iXT1hZVsiW29iamVjdCBJbnQxNkFycmF5XSJdPWFlWyJbb2JqZWN0IEludDMyQXJyYXldIl09YWVbIltvYmplY3QgVWludDhBcnJheV0iXT1hZVsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1hZVsiW29iamVjdCBVaW50MTZBcnJheV0iXT1hZVsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxhZVsiW29iamVjdCBBcmd1bWVudHNdIl09YWVbIltvYmplY3QgQXJyYXldIl09YWVbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09YWVbIltvYmplY3QgQm9vbGVhbl0iXT1hZVsiW29iamVjdCBEYXRhVmlld10iXT1hZVsiW29iamVjdCBEYXRlXSJdPWFlWyJbb2JqZWN0IEVycm9yXSJdPWFlWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPWFlWyJbb2JqZWN0IE1hcF0iXT1hZVsiW29iamVjdCBOdW1iZXJdIl09YWVbIltvYmplY3QgT2JqZWN0XSJdPWFlWyJbb2JqZWN0IFJlZ0V4cF0iXT1hZVsiW29iamVjdCBTZXRdIl09YWVbIltvYmplY3QgU3RyaW5nXSJdPWFlWyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIGllPWZ1bmN0aW9uKHQpe3JldHVybiB1ZSh0KSYmb2UodC5sZW5ndGgpJiYhIWFlW25lKHQpXX07dmFyIGNlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdChyKX19LGZlPXt9OyFmdW5jdGlvbih0LHIpe3ZhciBlPWEsbj1yJiYhci5ub2RlVHlwZSYmcixvPW4mJnQmJiF0Lm5vZGVUeXBlJiZ0LHU9byYmby5leHBvcnRzPT09biYmZS5wcm9jZXNzLGk9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9byYmby5yZXF1aXJlJiZvLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gdHx8dSYmdS5iaW5kaW5nJiZ1LmJpbmRpbmcoInV0aWwiKX1jYXRjaCh0KXt9fSgpO3QuZXhwb3J0cz1pfSh7Z2V0IGV4cG9ydHMoKXtyZXR1cm4gZmV9LHNldCBleHBvcnRzKHQpe2ZlPXR9fSxmZSk7dmFyIGxlPWllLHZlPWNlLHNlPWZlJiZmZS5pc1R5cGVkQXJyYXkscGU9c2U/dmUoc2UpOmxlLGJlPXFyLHllPVpyLGRlPXUsaGU9dGUsamU9a3IsZ2U9cGUsX2U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgT2U9ZnVuY3Rpb24odCxyKXt2YXIgZT1kZSh0KSxuPSFlJiZ5ZSh0KSxvPSFlJiYhbiYmaGUodCksdT0hZSYmIW4mJiFvJiZnZSh0KSxhPWV8fG58fG98fHUsaT1hP2JlKHQubGVuZ3RoLFN0cmluZyk6W10sYz1pLmxlbmd0aDtmb3IodmFyIGYgaW4gdCkhciYmIV9lLmNhbGwodCxmKXx8YSYmKCJsZW5ndGgiPT1mfHxvJiYoIm9mZnNldCI9PWZ8fCJwYXJlbnQiPT1mKXx8dSYmKCJidWZmZXIiPT1mfHwiYnl0ZUxlbmd0aCI9PWZ8fCJieXRlT2Zmc2V0Ij09Zil8fGplKGYsYykpfHxpLnB1c2goZik7cmV0dXJuIGl9LHdlPU9iamVjdC5wcm90b3R5cGU7dmFyIG1lPWZ1bmN0aW9uKHQpe3ZhciByPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIHImJnIucHJvdG90eXBlfHx3ZSl9O3ZhciBBZT1mdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChyKGUpKX19LFNlPUFlKE9iamVjdC5rZXlzLE9iamVjdCkseGU9bWUsSWU9U2UsUGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgemU9ZnVuY3Rpb24odCl7aWYoIXhlKHQpKXJldHVybiBJZSh0KTt2YXIgcj1bXTtmb3IodmFyIGUgaW4gT2JqZWN0KHQpKVBlLmNhbGwodCxlKSYmImNvbnN0cnVjdG9yIiE9ZSYmci5wdXNoKGUpO3JldHVybiByfSxFZT1VLCRlPWVlO3ZhciBGZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmJGUodC5sZW5ndGgpJiYhRWUodCl9LGtlPU9lLE1lPXplLFVlPUZlO3ZhciBEZT1mdW5jdGlvbih0KXtyZXR1cm4gVWUodCk/a2UodCk6TWUodCl9LE5lPVdyLFRlPURlO3ZhciBCZT1GZTt2YXIgQ2U9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybiBlO2lmKCFCZShlKSlyZXR1cm4gdChlLG4pO2Zvcih2YXIgbz1lLmxlbmd0aCx1PXI/bzotMSxhPU9iamVjdChlKTsocj91LS06Kyt1PG8pJiYhMSE9PW4oYVt1XSx1LGEpOyk7cmV0dXJuIGV9fSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmTmUodCxyLFRlKX0pKTt2YXIgUmU9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LExlPVJlO3ZhciBWZT1WcixXZT1DZSxxZT1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OkxlfSxHZT11O3ZhciBIZT1mdW5jdGlvbih0LHIpe3JldHVybihHZSh0KT9WZTpXZSkodCxxZShyKSl9O0xyLmV4cG9ydHM9SGU7dmFyIEplPW8oUnIpLEtlPUZ0O3ZhciBRZT1GdCxYZT1rdCxZZT1RdDt2YXIgWmU9RnQsdG49ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBLZSx0aGlzLnNpemU9MH0scm49ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPXIuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9ci5zaXplLGV9LGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX0sbm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfSxvbj1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoZSBpbnN0YW5jZW9mIFFlKXt2YXIgbj1lLl9fZGF0YV9fO2lmKCFYZXx8bi5sZW5ndGg8MTk5KXJldHVybiBuLnB1c2goW3Qscl0pLHRoaXMuc2l6ZT0rK2Uuc2l6ZSx0aGlzO2U9dGhpcy5fX2RhdGFfXz1uZXcgWWUobil9cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplPWUuc2l6ZSx0aGlzfTtmdW5jdGlvbiB1bih0KXt2YXIgcj10aGlzLl9fZGF0YV9fPW5ldyBaZSh0KTt0aGlzLnNpemU9ci5zaXplfXVuLnByb3RvdHlwZS5jbGVhcj10bix1bi5wcm90b3R5cGUuZGVsZXRlPXJuLHVuLnByb3RvdHlwZS5nZXQ9ZW4sdW4ucHJvdG90eXBlLmhhcz1ubix1bi5wcm90b3R5cGUuc2V0PW9uO3ZhciBhbj11bjt2YXIgY249UXQsZm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iKSx0aGlzfSxsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9O2Z1bmN0aW9uIHZuKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBjbjsrK3I8ZTspdGhpcy5hZGQodFtyXSl9dm4ucHJvdG90eXBlLmFkZD12bi5wcm90b3R5cGUucHVzaD1mbix2bi5wcm90b3R5cGUuaGFzPWxuO3ZhciBzbj12bixwbj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK2U8bjspaWYocih0W2VdLGUsdCkpcmV0dXJuITA7cmV0dXJuITF9LGJuPWZ1bmN0aW9uKHQscil7cmV0dXJuIHQuaGFzKHIpfTt2YXIgeW49ZnVuY3Rpb24odCxyLGUsbixvLHUpe3ZhciBhPTEmZSxpPXQubGVuZ3RoLGM9ci5sZW5ndGg7aWYoaSE9YyYmIShhJiZjPmkpKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpLGw9dS5nZXQocik7aWYoZiYmbClyZXR1cm4gZj09ciYmbD09dDt2YXIgdj0tMSxzPSEwLHA9MiZlP25ldyBzbjp2b2lkIDA7Zm9yKHUuc2V0KHQsciksdS5zZXQocix0KTsrK3Y8aTspe3ZhciBiPXRbdl0seT1yW3ZdO2lmKG4pdmFyIGQ9YT9uKHksYix2LHIsdCx1KTpuKGIseSx2LHQscix1KTtpZih2b2lkIDAhPT1kKXtpZihkKWNvbnRpbnVlO3M9ITE7YnJlYWt9aWYocCl7aWYoIXBuKHIsKGZ1bmN0aW9uKHQscil7aWYoIWJuKHAscikmJihiPT09dHx8byhiLHQsZSxuLHUpKSlyZXR1cm4gcC5wdXNoKHIpfSkpKXtzPSExO2JyZWFrfX1lbHNlIGlmKGIhPT15JiYhbyhiLHksZSxuLHUpKXtzPSExO2JyZWFrfX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUociksc30sZG49Zi5VaW50OEFycmF5O3ZhciBobj1mdW5jdGlvbih0KXt2YXIgcj0tMSxlPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtlWysrcl09W24sdF19KSksZX07dmFyIGpuPWZ1bmN0aW9uKHQpe3ZhciByPS0xLGU9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlWysrcl09dH0pKSxlfSxnbj1kbixfbj1qdCxPbj15bix3bj1obixtbj1qbixBbj1sP2wucHJvdG90eXBlOnZvaWQgMCxTbj1Bbj9Bbi52YWx1ZU9mOnZvaWQgMDt2YXIgeG49ZnVuY3Rpb24odCxyLGUsbixvLHUsYSl7c3dpdGNoKGUpe2Nhc2UiW29iamVjdCBEYXRhVmlld10iOmlmKHQuYnl0ZUxlbmd0aCE9ci5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPXIuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLHI9ci5idWZmZXI7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuISh0LmJ5dGVMZW5ndGghPXIuYnl0ZUxlbmd0aHx8IXUobmV3IGduKHQpLG5ldyBnbihyKSkpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuIF9uKCt0LCtyKTtjYXNlIltvYmplY3QgRXJyb3JdIjpyZXR1cm4gdC5uYW1lPT1yLm5hbWUmJnQubWVzc2FnZT09ci5tZXNzYWdlO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIHQ9PXIrIiI7Y2FzZSJbb2JqZWN0IE1hcF0iOnZhciBpPXduO2Nhc2UiW29iamVjdCBTZXRdIjp2YXIgYz0xJm47aWYoaXx8KGk9bW4pLHQuc2l6ZSE9ci5zaXplJiYhYylyZXR1cm4hMTt2YXIgZj1hLmdldCh0KTtpZihmKXJldHVybiBmPT1yO258PTIsYS5zZXQodCxyKTt2YXIgbD1PbihpKHQpLGkociksbixvLHUsYSk7cmV0dXJuIGEuZGVsZXRlKHQpLGw7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOmlmKFNuKXJldHVybiBTbi5jYWxsKHQpPT1Tbi5jYWxsKHIpfXJldHVybiExfTt2YXIgSW49ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1yLmxlbmd0aCxvPXQubGVuZ3RoOysrZTxuOyl0W28rZV09cltlXTtyZXR1cm4gdH0sUG49SW4sem49dTt2YXIgRW49ZnVuY3Rpb24odCxyLGUpe3ZhciBuPXIodCk7cmV0dXJuIHpuKHQpP246UG4obixlKHQpKX07dmFyICRuPWZ1bmN0aW9uKCl7cmV0dXJuW119LEZuPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89MCx1PVtdOysrZTxuOyl7dmFyIGE9dFtlXTtyKGEsZSx0KSYmKHVbbysrXT1hKX1yZXR1cm4gdX0sa249JG4sTW49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxVbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLERuPVVuP2Z1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P1tdOih0PU9iamVjdCh0KSxGbihVbih0KSwoZnVuY3Rpb24ocil7cmV0dXJuIE1uLmNhbGwodCxyKX0pKSl9OmtuLE5uPUVuLFRuPURuLEJuPURlO3ZhciBDbj1mdW5jdGlvbih0KXtyZXR1cm4gTm4odCxCbixUbil9LFJuPUNuLExuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFZuPWZ1bmN0aW9uKHQscixlLG4sbyx1KXt2YXIgYT0xJmUsaT1Sbih0KSxjPWkubGVuZ3RoO2lmKGMhPVJuKHIpLmxlbmd0aCYmIWEpcmV0dXJuITE7Zm9yKHZhciBmPWM7Zi0tOyl7dmFyIGw9aVtmXTtpZighKGE/bCBpbiByOkxuLmNhbGwocixsKSkpcmV0dXJuITF9dmFyIHY9dS5nZXQodCkscz11LmdldChyKTtpZih2JiZzKXJldHVybiB2PT1yJiZzPT10O3ZhciBwPSEwO3Uuc2V0KHQsciksdS5zZXQocix0KTtmb3IodmFyIGI9YTsrK2Y8Yzspe3ZhciB5PXRbbD1pW2ZdXSxkPXJbbF07aWYobil2YXIgaD1hP24oZCx5LGwscix0LHUpOm4oeSxkLGwsdCxyLHUpO2lmKCEodm9pZCAwPT09aD95PT09ZHx8byh5LGQsZSxuLHUpOmgpKXtwPSExO2JyZWFrfWJ8fChiPSJjb25zdHJ1Y3RvciI9PWwpfWlmKHAmJiFiKXt2YXIgaj10LmNvbnN0cnVjdG9yLGc9ci5jb25zdHJ1Y3RvcjtqPT1nfHwhKCJjb25zdHJ1Y3RvciJpbiB0KXx8ISgiY29uc3RydWN0b3IiaW4gcil8fCJmdW5jdGlvbiI9PXR5cGVvZiBqJiZqIGluc3RhbmNlb2YgaiYmImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcgaW5zdGFuY2VvZiBnfHwocD0hMSl9cmV0dXJuIHUuZGVsZXRlKHQpLHUuZGVsZXRlKHIpLHB9LFduPVooZiwiRGF0YVZpZXciKSxxbj1rdCxHbj1aKGYsIlByb21pc2UiKSxIbj1aKGYsIlNldCIpLEpuPVooZiwiV2Vha01hcCIpLEtuPU8sUW49QyxYbj0iW29iamVjdCBNYXBdIixZbj0iW29iamVjdCBQcm9taXNlXSIsWm49IltvYmplY3QgU2V0XSIsdG89IltvYmplY3QgV2Vha01hcF0iLHJvPSJbb2JqZWN0IERhdGFWaWV3XSIsZW89UW4oV24pLG5vPVFuKHFuKSxvbz1RbihHbiksdW89UW4oSG4pLGFvPVFuKEpuKSxpbz1LbjsoV24mJmlvKG5ldyBXbihuZXcgQXJyYXlCdWZmZXIoMSkpKSE9cm98fHFuJiZpbyhuZXcgcW4pIT1Ybnx8R24mJmlvKEduLnJlc29sdmUoKSkhPVlufHxIbiYmaW8obmV3IEhuKSE9Wm58fEpuJiZpbyhuZXcgSm4pIT10bykmJihpbz1mdW5jdGlvbih0KXt2YXIgcj1Lbih0KSxlPSJbb2JqZWN0IE9iamVjdF0iPT1yP3QuY29uc3RydWN0b3I6dm9pZCAwLG49ZT9RbihlKToiIjtpZihuKXN3aXRjaChuKXtjYXNlIGVvOnJldHVybiBybztjYXNlIG5vOnJldHVybiBYbjtjYXNlIG9vOnJldHVybiBZbjtjYXNlIHVvOnJldHVybiBabjtjYXNlIGFvOnJldHVybiB0b31yZXR1cm4gcn0pO3ZhciBjbz1pbyxmbz1hbixsbz15bix2bz14bixzbz1Wbixwbz1jbyxibz11LHlvPXRlLGhvPXBlLGpvPSJbb2JqZWN0IEFyZ3VtZW50c10iLGdvPSJbb2JqZWN0IEFycmF5XSIsX289IltvYmplY3QgT2JqZWN0XSIsT289T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgd289ZnVuY3Rpb24odCxyLGUsbixvLHUpe3ZhciBhPWJvKHQpLGk9Ym8ociksYz1hP2dvOnBvKHQpLGY9aT9nbzpwbyhyKSxsPShjPWM9PWpvP19vOmMpPT1fbyx2PShmPWY9PWpvP19vOmYpPT1fbyxzPWM9PWY7aWYocyYmeW8odCkpe2lmKCF5byhyKSlyZXR1cm4hMTthPSEwLGw9ITF9aWYocyYmIWwpcmV0dXJuIHV8fCh1PW5ldyBmbyksYXx8aG8odCk/bG8odCxyLGUsbixvLHUpOnZvKHQscixjLGUsbixvLHUpO2lmKCEoMSZlKSl7dmFyIHA9bCYmT28uY2FsbCh0LCJfX3dyYXBwZWRfXyIpLGI9diYmT28uY2FsbChyLCJfX3dyYXBwZWRfXyIpO2lmKHB8fGIpe3ZhciB5PXA/dC52YWx1ZSgpOnQsZD1iP3IudmFsdWUoKTpyO3JldHVybiB1fHwodT1uZXcgZm8pLG8oeSxkLGUsbix1KX19cmV0dXJuISFzJiYodXx8KHU9bmV3IGZvKSxzbyh0LHIsZSxuLG8sdSkpfSxtbz13O3ZhciBBbz1mdW5jdGlvbiB0KHIsZSxuLG8sdSl7cmV0dXJuIHI9PT1lfHwobnVsbD09cnx8bnVsbD09ZXx8IW1vKHIpJiYhbW8oZSk/ciE9ciYmZSE9ZTp3byhyLGUsbixvLHQsdSkpfSxTbz1hbix4bz1Bbzt2YXIgSW89JDt2YXIgUG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PXQmJiFJbyh0KX0sem89UG8sRW89RGU7dmFyICRvPWZ1bmN0aW9uKHQscil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiYoZVt0XT09PXImJih2b2lkIDAhPT1yfHx0IGluIE9iamVjdChlKSkpfX0sRm89ZnVuY3Rpb24odCxyLGUsbil7dmFyIG89ZS5sZW5ndGgsdT1vLGE9IW47aWYobnVsbD09dClyZXR1cm4hdTtmb3IodD1PYmplY3QodCk7by0tOyl7dmFyIGk9ZVtvXTtpZihhJiZpWzJdP2lbMV0hPT10W2lbMF1dOiEoaVswXWluIHQpKXJldHVybiExfWZvcig7KytvPHU7KXt2YXIgYz0oaT1lW29dKVswXSxmPXRbY10sbD1pWzFdO2lmKGEmJmlbMl0pe2lmKHZvaWQgMD09PWYmJiEoYyBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciB2PW5ldyBTbztpZihuKXZhciBzPW4oZixsLGMsdCxyLHYpO2lmKCEodm9pZCAwPT09cz94byhsLGYsMyxuLHYpOnMpKXJldHVybiExfX1yZXR1cm4hMH0sa289ZnVuY3Rpb24odCl7Zm9yKHZhciByPUVvKHQpLGU9ci5sZW5ndGg7ZS0tOyl7dmFyIG49cltlXSxvPXRbbl07cltlXT1bbixvLHpvKG8pXX1yZXR1cm4gcn0sTW89JG87dmFyIFVvPWRyLERvPVpyLE5vPXUsVG89a3IsQm89ZWUsQ289anI7dmFyIFJvPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGwhPXQmJnIgaW4gT2JqZWN0KHQpfSxMbz1mdW5jdGlvbih0LHIsZSl7Zm9yKHZhciBuPS0xLG89KHI9VW8ocix0KSkubGVuZ3RoLHU9ITE7KytuPG87KXt2YXIgYT1DbyhyW25dKTtpZighKHU9bnVsbCE9dCYmZSh0LGEpKSlicmVhazt0PXRbYV19cmV0dXJuIHV8fCsrbiE9bz91OiEhKG89bnVsbD09dD8wOnQubGVuZ3RoKSYmQm8obykmJlRvKGEsbykmJihObyh0KXx8RG8odCkpfTt2YXIgVm89QW8sV289bXIscW89ZnVuY3Rpb24odCxyKXtyZXR1cm4gbnVsbCE9dCYmTG8odCxyLFJvKX0sR289RSxIbz1QbyxKbz0kbyxLbz1qcjt2YXIgUW89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBudWxsPT1yP3ZvaWQgMDpyW3RdfX0sWG89T3I7dmFyIFlvPVFvLFpvPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gWG8ocix0KX19LHR1PUUscnU9anI7dmFyIGV1PWZ1bmN0aW9uKHQpe3ZhciByPWtvKHQpO3JldHVybiAxPT1yLmxlbmd0aCYmclswXVsyXT9NbyhyWzBdWzBdLHJbMF1bMV0pOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09dHx8Rm8oZSx0LHIpfX0sbnU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gR28odCkmJkhvKHIpP0pvKEtvKHQpLHIpOmZ1bmN0aW9uKGUpe3ZhciBuPVdvKGUsdCk7cmV0dXJuIHZvaWQgMD09PW4mJm49PT1yP3FvKGUsdCk6Vm8ocixuLDMpfX0sb3U9UmUsdXU9dSxhdT1mdW5jdGlvbih0KXtyZXR1cm4gdHUodCk/WW8ocnUodCkpOlpvKHQpfTt2YXIgaXU9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpudWxsPT10P291OiJvYmplY3QiPT10eXBlb2YgdD91dSh0KT9udSh0WzBdLHRbMV0pOmV1KHQpOmF1KHQpfSxjdT1DZSxmdT1GZTt2YXIgbHU9ZnVuY3Rpb24odCxyKXt2YXIgZT0tMSxuPWZ1KHQpP0FycmF5KHQubGVuZ3RoKTpbXTtyZXR1cm4gY3UodCwoZnVuY3Rpb24odCxvLHUpe25bKytlXT1yKHQsbyx1KX0pKSxufSx2dT1ucixzdT1pdSxwdT1sdSxidT11O3ZhciB5dT1mdW5jdGlvbih0LHIpe3JldHVybihidSh0KT92dTpwdSkodCxzdShyKSl9LGR1PU8saHU9dSxqdT13O3ZhciBndT1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fCFodSh0KSYmanUodCkmJiJbb2JqZWN0IFN0cmluZ10iPT1kdSh0KX0sX3U9UW8oImxlbmd0aCIpLE91PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTt2YXIgd3U9ZnVuY3Rpb24odCl7cmV0dXJuIE91LnRlc3QodCl9LG11PSJcXHVkODAwLVxcdWRmZmYiLEF1PSJbIittdSsiXSIsU3U9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIix4dT0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixJdT0iW14iK211KyJdIixQdT0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsenU9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLEV1PSIoPzoiK1N1KyJ8Iit4dSsiKSIrIj8iLCR1PSJbXFx1ZmUwZVxcdWZlMGZdPyIsRnU9JHUrRXUrKCIoPzpcXHUyMDBkKD86IitbSXUsUHUsenVdLmpvaW4oInwiKSsiKSIrJHUrRXUrIikqIiksa3U9Iig/OiIrW0l1K1N1KyI/IixTdSxQdSx6dSxBdV0uam9pbigifCIpKyIpIixNdT1SZWdFeHAoeHUrIig/PSIreHUrIil8IitrdStGdSwiZyIpO3ZhciBVdT1fdSxEdT13dSxOdT1mdW5jdGlvbih0KXtmb3IodmFyIHI9TXUubGFzdEluZGV4PTA7TXUudGVzdCh0KTspKytyO3JldHVybiByfTt2YXIgVHU9emUsQnU9Y28sQ3U9RmUsUnU9Z3UsTHU9ZnVuY3Rpb24odCl7cmV0dXJuIER1KHQpP051KHQpOlV1KHQpfTt2YXIgVnU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gMDtpZihDdSh0KSlyZXR1cm4gUnUodCk/THUodCk6dC5sZW5ndGg7dmFyIHI9QnUodCk7cmV0dXJuIltvYmplY3QgTWFwXSI9PXJ8fCJbb2JqZWN0IFNldF0iPT1yP3Quc2l6ZTpUdSh0KS5sZW5ndGh9LFd1PVM7dmFyIHF1PWZ1bmN0aW9uKHQscixlKXtmb3IodmFyIG49LTEsbz10Lmxlbmd0aDsrK248bzspe3ZhciB1PXRbbl0sYT1yKHUpO2lmKG51bGwhPWEmJih2b2lkIDA9PT1pP2E9PWEmJiFXdShhKTplKGEsaSkpKXZhciBpPWEsYz11fXJldHVybiBjfSxHdT1mdW5jdGlvbih0LHIpe3JldHVybiB0PnJ9LEh1PVJlO3ZhciBKdT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5sZW5ndGg/cXUodCxIdSxHdSk6dm9pZCAwfTt2YXIgS3U9ZnVuY3Rpb24odCl7dmFyIHI9bnVsbD09dD8wOnQubGVuZ3RoO3JldHVybiByP3Rbci0xXTp2b2lkIDB9LFF1PW5yO3ZhciBYdT1mdW5jdGlvbih0LHIpe3JldHVybiBRdShyLChmdW5jdGlvbihyKXtyZXR1cm4gdFtyXX0pKX0sWXU9RGU7dmFyIFp1PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P1tdOlh1KHQsWXUodCkpfTt2YXIgdGE9Q2U7dmFyIHJhPWZ1bmN0aW9uKHQscixlLG4pe2Zvcih2YXIgbz0tMSx1PW51bGw9PXQ/MDp0Lmxlbmd0aDsrK288dTspe3ZhciBhPXRbb107cihuLGEsZShhKSx0KX1yZXR1cm4gbn0sZWE9ZnVuY3Rpb24odCxyLGUsbil7cmV0dXJuIHRhKHQsKGZ1bmN0aW9uKHQsbyx1KXtyKG4sdCxlKHQpLHUpfSkpLG59LG5hPWl1LG9hPXU7dmFyIHVhPUlyLGFhPWZ1bmN0aW9uKHQscil7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIG89b2EoZSk/cmE6ZWEsdT1yP3IoKTp7fTtyZXR1cm4gbyhlLHQsbmEobiksdSl9fSxpYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGNhPWFhKChmdW5jdGlvbih0LHIsZSl7aWEuY2FsbCh0LGUpP3RbZV0ucHVzaChyKTp1YSh0LGUsW3JdKX0pKTt2YXIgZmE9ZnVuY3Rpb24odCxyLGUpe3ZhciBuPS0xLG89dC5sZW5ndGg7cjwwJiYocj0tcj5vPzA6bytyKSwoZT1lPm8/bzplKTwwJiYoZSs9byksbz1yPmU/MDplLXI+Pj4wLHI+Pj49MDtmb3IodmFyIHU9QXJyYXkobyk7KytuPG87KXVbbl09dFtuK3JdO3JldHVybiB1fSxsYT0vXHMvO3ZhciB2YT1mdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZsYS50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSxzYT0vXlxzKy87dmFyIHBhPWZ1bmN0aW9uKHQpe3JldHVybiB0P3Quc2xpY2UoMCx2YSh0KSsxKS5yZXBsYWNlKHNhLCIiKTp0fSxiYT1wYSx5YT0kLGRhPVMsaGE9L15bLStdMHhbMC05YS1mXSskL2ksamE9L14wYlswMV0rJC9pLGdhPS9eMG9bMC03XSskL2ksX2E9cGFyc2VJbnQ7dmFyIE9hPWZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDtpZihkYSh0KSlyZXR1cm4gTmFOO2lmKHlhKHQpKXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgdC52YWx1ZU9mP3QudmFsdWVPZigpOnQ7dD15YShyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9YmEodCk7dmFyIGU9amEudGVzdCh0KTtyZXR1cm4gZXx8Z2EudGVzdCh0KT9fYSh0LnNsaWNlKDIpLGU/Mjo4KTpoYS50ZXN0KHQpP05hTjordH0sd2E9MS8wO3ZhciBtYT1mdW5jdGlvbih0KXtyZXR1cm4gdD8odD1PYSh0KSk9PT13YXx8dD09PS0xLzA/MTc5NzY5MzEzNDg2MjMxNTdlMjkyKih0PDA/LTE6MSk6dD09dD90OjA6MD09PXQ/dDowfTt2YXIgQWE9ZnVuY3Rpb24odCl7dmFyIHI9bWEodCksZT1yJTE7cmV0dXJuIHI9PXI/ZT9yLWU6cjowfSxTYT1mYSx4YT1BYTt2YXIgSWE9ZnVuY3Rpb24odCxyLGUpe3JldHVybiB0JiZ0Lmxlbmd0aD8ocj1lfHx2b2lkIDA9PT1yPzE6eGEociksU2EodCwwLHI8MD8wOnIpKTpbXX0sUGE9QXJyYXkucHJvdG90eXBlLmpvaW47dmFyIHphPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/IiI6UGEuY2FsbCh0LHIpfSxFYT1pdSwkYT1GZSxGYT1EZTt2YXIga2E9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1PYmplY3Qocik7aWYoISRhKHIpKXt2YXIgdT1FYShlKTtyPUZhKHIpLGU9ZnVuY3Rpb24odCl7cmV0dXJuIHUob1t0XSx0LG8pfX12YXIgYT10KHIsZSxuKTtyZXR1cm4gYT4tMT9vW3U/clthXTphXTp2b2lkIDB9fTt2YXIgTWE9ZnVuY3Rpb24odCxyLGUsbil7Zm9yKHZhciBvPXQubGVuZ3RoLHU9ZSsobj8xOi0xKTtuP3UtLTorK3U8bzspaWYocih0W3VdLHUsdCkpcmV0dXJuIHU7cmV0dXJuLTF9LFVhPU1hLERhPWl1LE5hPUFhLFRhPU1hdGgubWF4O3ZhciBCYT1rYSgoZnVuY3Rpb24odCxyLGUpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighbilyZXR1cm4tMTt2YXIgbz1udWxsPT1lPzA6TmEoZSk7cmV0dXJuIG88MCYmKG89VGEobitvLDApKSxVYSh0LERhKHIpLG8pfSkpLENhPVpyLFJhPXUsTGE9bD9sLmlzQ29uY2F0U3ByZWFkYWJsZTp2b2lkIDA7dmFyIFZhPUluLFdhPWZ1bmN0aW9uKHQpe3JldHVybiBSYSh0KXx8Q2EodCl8fCEhKExhJiZ0JiZ0W0xhXSl9O3ZhciBxYT1mdW5jdGlvbiB0KHIsZSxuLG8sdSl7dmFyIGE9LTEsaT1yLmxlbmd0aDtmb3Iobnx8KG49V2EpLHV8fCh1PVtdKTsrK2E8aTspe3ZhciBjPXJbYV07ZT4wJiZuKGMpP2U+MT90KGMsZS0xLG4sbyx1KTpWYSh1LGMpOm98fCh1W3UubGVuZ3RoXT1jKX1yZXR1cm4gdX07dmFyIEdhPVM7dmFyIEhhPWZ1bmN0aW9uKHQscil7aWYodCE9PXIpe3ZhciBlPXZvaWQgMCE9PXQsbj1udWxsPT09dCxvPXQ9PXQsdT1HYSh0KSxhPXZvaWQgMCE9PXIsaT1udWxsPT09cixjPXI9PXIsZj1HYShyKTtpZighaSYmIWYmJiF1JiZ0PnJ8fHUmJmEmJmMmJiFpJiYhZnx8biYmYSYmY3x8IWUmJmN8fCFvKXJldHVybiAxO2lmKCFuJiYhdSYmIWYmJnQ8cnx8ZiYmZSYmbyYmIW4mJiF1fHxpJiZlJiZvfHwhYSYmb3x8IWMpcmV0dXJuLTF9cmV0dXJuIDB9O3ZhciBKYT1ucixLYT1PcixRYT1pdSxYYT1sdSxZYT1mdW5jdGlvbih0LHIpe3ZhciBlPXQubGVuZ3RoO2Zvcih0LnNvcnQocik7ZS0tOyl0W2VdPXRbZV0udmFsdWU7cmV0dXJuIHR9LFphPWNlLHRpPWZ1bmN0aW9uKHQscixlKXtmb3IodmFyIG49LTEsbz10LmNyaXRlcmlhLHU9ci5jcml0ZXJpYSxhPW8ubGVuZ3RoLGk9ZS5sZW5ndGg7KytuPGE7KXt2YXIgYz1IYShvW25dLHVbbl0pO2lmKGMpcmV0dXJuIG4+PWk/YzpjKigiZGVzYyI9PWVbbl0/LTE6MSl9cmV0dXJuIHQuaW5kZXgtci5pbmRleH0scmk9UmUsZWk9dTt2YXIgbmk9ZnVuY3Rpb24odCxyLGUpe3I9ci5sZW5ndGg/SmEociwoZnVuY3Rpb24odCl7cmV0dXJuIGVpKHQpP2Z1bmN0aW9uKHIpe3JldHVybiBLYShyLDE9PT10Lmxlbmd0aD90WzBdOnQpfTp0fSkpOltyaV07dmFyIG49LTE7cj1KYShyLFphKFFhKSk7dmFyIG89WGEodCwoZnVuY3Rpb24odCxlLG8pe3JldHVybntjcml0ZXJpYTpKYShyLChmdW5jdGlvbihyKXtyZXR1cm4gcih0KX0pKSxpbmRleDorK24sdmFsdWU6dH19KSk7cmV0dXJuIFlhKG8sKGZ1bmN0aW9uKHQscil7cmV0dXJuIHRpKHQscixlKX0pKX07dmFyIG9pPWZ1bmN0aW9uKHQscixlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gdC5jYWxsKHIpO2Nhc2UgMTpyZXR1cm4gdC5jYWxsKHIsZVswXSk7Y2FzZSAyOnJldHVybiB0LmNhbGwocixlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4gdC5jYWxsKHIsZVswXSxlWzFdLGVbMl0pfXJldHVybiB0LmFwcGx5KHIsZSl9LHVpPU1hdGgubWF4O3ZhciBhaT1mdW5jdGlvbih0LHIsZSl7cmV0dXJuIHI9dWkodm9pZCAwPT09cj90Lmxlbmd0aC0xOnIsMCksZnVuY3Rpb24oKXtmb3IodmFyIG49YXJndW1lbnRzLG89LTEsdT11aShuLmxlbmd0aC1yLDApLGE9QXJyYXkodSk7KytvPHU7KWFbb109bltyK29dO289LTE7Zm9yKHZhciBpPUFycmF5KHIrMSk7KytvPHI7KWlbb109bltvXTtyZXR1cm4gaVtyXT1lKGEpLG9pKHQsdGhpcyxpKX19O3ZhciBpaT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19LGNpPVNyLGZpPWNpP2Z1bmN0aW9uKHQscil7cmV0dXJuIGNpKHQsInRvU3RyaW5nIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6aWkociksd3JpdGFibGU6ITB9KX06UmUsbGk9RGF0ZS5ub3c7dmFyIHZpPWZ1bmN0aW9uKHQpe3ZhciByPTAsZT0wO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWxpKCksbz0xNi0obi1lKTtpZihlPW4sbz4wKXtpZigrK3I+PTgwMClyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2Ugcj0wO3JldHVybiB0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0oZmkpLHNpPVJlLHBpPWFpLGJpPXZpO3ZhciB5aT1qdCxkaT1GZSxoaT1rcixqaT0kO3ZhciBnaT1xYSxfaT1uaSxPaT1mdW5jdGlvbih0LHIsZSl7aWYoIWppKGUpKXJldHVybiExO3ZhciBuPXR5cGVvZiByO3JldHVybiEhKCJudW1iZXIiPT1uP2RpKGUpJiZoaShyLGUubGVuZ3RoKToic3RyaW5nIj09biYmciBpbiBlKSYmeWkoZVtyXSx0KX0sd2k9ZnVuY3Rpb24odCxyKXtyZXR1cm4gYmkocGkodCxyLHNpKSx0KyIiKX0oKGZ1bmN0aW9uKHQscil7aWYobnVsbD09dClyZXR1cm5bXTt2YXIgZT1yLmxlbmd0aDtyZXR1cm4gZT4xJiZPaSh0LHJbMF0sclsxXSk/cj1bXTplPjImJk9pKHJbMF0sclsxXSxyWzJdKSYmKHI9W3JbMF1dKSxfaSh0LGdpKHIsMSksW10pfSkpLG1pPSRyLEFpPUlyO3ZhciBTaT1mdW5jdGlvbih0LHIsZSxuKXt2YXIgbz0hZTtlfHwoZT17fSk7Zm9yKHZhciB1PS0xLGE9ci5sZW5ndGg7Kyt1PGE7KXt2YXIgaT1yW3VdLGM9bj9uKGVbaV0sdFtpXSxpLGUsdCk6dm9pZCAwO3ZvaWQgMD09PWMmJihjPXRbaV0pLG8/QWkoZSxpLGMpOm1pKGUsaSxjKX1yZXR1cm4gZX0seGk9U2ksSWk9RGU7dmFyIFBpPWZ1bmN0aW9uKHQscil7cmV0dXJuIHQmJnhpKHIsSWkociksdCl9O3ZhciB6aT0kLEVpPW1lLCRpPWZ1bmN0aW9uKHQpe3ZhciByPVtdO2lmKG51bGwhPXQpZm9yKHZhciBlIGluIE9iamVjdCh0KSlyLnB1c2goZSk7cmV0dXJuIHJ9LEZpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGtpPU9lLE1pPWZ1bmN0aW9uKHQpe2lmKCF6aSh0KSlyZXR1cm4gJGkodCk7dmFyIHI9RWkodCksZT1bXTtmb3IodmFyIG4gaW4gdCkoImNvbnN0cnVjdG9yIiE9bnx8IXImJkZpLmNhbGwodCxuKSkmJmUucHVzaChuKTtyZXR1cm4gZX0sVWk9RmU7dmFyIERpPWZ1bmN0aW9uKHQpe3JldHVybiBVaSh0KT9raSh0LCEwKTpNaSh0KX0sTmk9U2ksVGk9RGk7dmFyIEJpPWZ1bmN0aW9uKHQscil7cmV0dXJuIHQmJk5pKHIsVGkociksdCl9LENpPXt9OyFmdW5jdGlvbih0LHIpe3ZhciBlPWYsbj1yJiYhci5ub2RlVHlwZSYmcixvPW4mJnQmJiF0Lm5vZGVUeXBlJiZ0LHU9byYmby5leHBvcnRzPT09bj9lLkJ1ZmZlcjp2b2lkIDAsYT11P3UuYWxsb2NVbnNhZmU6dm9pZCAwO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2lmKHIpcmV0dXJuIHQuc2xpY2UoKTt2YXIgZT10Lmxlbmd0aCxuPWE/YShlKTpuZXcgdC5jb25zdHJ1Y3RvcihlKTtyZXR1cm4gdC5jb3B5KG4pLG59fSh7Z2V0IGV4cG9ydHMoKXtyZXR1cm4gQ2l9LHNldCBleHBvcnRzKHQpe0NpPXR9fSxDaSk7dmFyIFJpPWZ1bmN0aW9uKHQscil7dmFyIGU9LTEsbj10Lmxlbmd0aDtmb3Iocnx8KHI9QXJyYXkobikpOysrZTxuOylyW2VdPXRbZV07cmV0dXJuIHJ9LExpPVNpLFZpPURuO3ZhciBXaT1mdW5jdGlvbih0LHIpe3JldHVybiBMaSh0LFZpKHQpLHIpfSxxaT1BZShPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KSxHaT1JbixIaT1xaSxKaT1EbixLaT0kbixRaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKHQpe2Zvcih2YXIgcj1bXTt0OylHaShyLEppKHQpKSx0PUhpKHQpO3JldHVybiByfTpLaSxYaT1TaSxZaT1RaTt2YXIgWmk9ZnVuY3Rpb24odCxyKXtyZXR1cm4gWGkodCxZaSh0KSxyKX0sdGM9RW4scmM9UWksZWM9RGk7dmFyIG5jPWZ1bmN0aW9uKHQpe3JldHVybiB0Yyh0LGVjLHJjKX0sb2M9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgdWM9ZnVuY3Rpb24odCl7dmFyIHI9dC5sZW5ndGgsZT1uZXcgdC5jb25zdHJ1Y3RvcihyKTtyZXR1cm4gciYmInN0cmluZyI9PXR5cGVvZiB0WzBdJiZvYy5jYWxsKHQsImluZGV4IikmJihlLmluZGV4PXQuaW5kZXgsZS5pbnB1dD10LmlucHV0KSxlfSxhYz1kbjt2YXIgaWM9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IGFjKHIpLnNldChuZXcgYWModCkpLHJ9LGNjPWljO3ZhciBmYz1mdW5jdGlvbih0LHIpe3ZhciBlPXI/Y2ModC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihlLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfSxsYz0vXHcqJC87dmFyIHZjPWZ1bmN0aW9uKHQpe3ZhciByPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLGxjLmV4ZWModCkpO3JldHVybiByLmxhc3RJbmRleD10Lmxhc3RJbmRleCxyfSxzYz1sP2wucHJvdG90eXBlOnZvaWQgMCxwYz1zYz9zYy52YWx1ZU9mOnZvaWQgMDt2YXIgYmM9aWM7dmFyIHljPWljLGRjPWZjLGhjPXZjLGpjPWZ1bmN0aW9uKHQpe3JldHVybiBwYz9PYmplY3QocGMuY2FsbCh0KSk6e319LGdjPWZ1bmN0aW9uKHQscil7dmFyIGU9cj9iYyh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKGUsdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKX07dmFyIF9jPWZ1bmN0aW9uKHQscixlKXt2YXIgbj10LmNvbnN0cnVjdG9yO3N3aXRjaChyKXtjYXNlIltvYmplY3QgQXJyYXlCdWZmZXJdIjpyZXR1cm4geWModCk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiBuZXcgbigrdCk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuIGRjKHQsZSk7Y2FzZSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOmNhc2UiW29iamVjdCBGbG9hdDY0QXJyYXldIjpjYXNlIltvYmplY3QgSW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDE2QXJyYXldIjpjYXNlIltvYmplY3QgSW50MzJBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQzMkFycmF5XSI6cmV0dXJuIGdjKHQsZSk7Y2FzZSJbb2JqZWN0IE1hcF0iOmNhc2UiW29iamVjdCBTZXRdIjpyZXR1cm4gbmV3IG47Y2FzZSJbb2JqZWN0IE51bWJlcl0iOmNhc2UiW29iamVjdCBTdHJpbmddIjpyZXR1cm4gbmV3IG4odCk7Y2FzZSJbb2JqZWN0IFJlZ0V4cF0iOnJldHVybiBoYyh0KTtjYXNlIltvYmplY3QgU3ltYm9sXSI6cmV0dXJuIGpjKHQpfX0sT2M9JCx3Yz1PYmplY3QuY3JlYXRlLG1jPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7aWYoIU9jKHIpKXJldHVybnt9O2lmKHdjKXJldHVybiB3YyhyKTt0LnByb3RvdHlwZT1yO3ZhciBlPW5ldyB0O3JldHVybiB0LnByb3RvdHlwZT12b2lkIDAsZX19KCksQWM9cWksU2M9bWU7dmFyIHhjPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0LmNvbnN0cnVjdG9yfHxTYyh0KT97fTptYyhBYyh0KSl9LEljPWNvLFBjPXc7dmFyIHpjPWZ1bmN0aW9uKHQpe3JldHVybiBQYyh0KSYmIltvYmplY3QgTWFwXSI9PUljKHQpfSxFYz1jZSwkYz1mZSYmZmUuaXNNYXAsRmM9JGM/RWMoJGMpOnpjLGtjPWNvLE1jPXc7dmFyIFVjPWZ1bmN0aW9uKHQpe3JldHVybiBNYyh0KSYmIltvYmplY3QgU2V0XSI9PWtjKHQpfSxEYz1jZSxOYz1mZSYmZmUuaXNTZXQsVGM9TmM/RGMoTmMpOlVjLEJjPWFuLENjPVZyLFJjPSRyLExjPVBpLFZjPUJpLFdjPUNpLHFjPVJpLEdjPVdpLEhjPVppLEpjPUNuLEtjPW5jLFFjPWNvLFhjPXVjLFljPV9jLFpjPXhjLHRmPXUscmY9dGUsZWY9RmMsbmY9JCxvZj1UYyx1Zj1EZSxhZj1EaSxjZj0iW29iamVjdCBBcmd1bWVudHNdIixmZj0iW29iamVjdCBGdW5jdGlvbl0iLGxmPSJbb2JqZWN0IE9iamVjdF0iLHZmPXt9O3ZmW2NmXT12ZlsiW29iamVjdCBBcnJheV0iXT12ZlsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT12ZlsiW29iamVjdCBEYXRhVmlld10iXT12ZlsiW29iamVjdCBCb29sZWFuXSJdPXZmWyJbb2JqZWN0IERhdGVdIl09dmZbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPXZmWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT12ZlsiW29iamVjdCBJbnQ4QXJyYXldIl09dmZbIltvYmplY3QgSW50MTZBcnJheV0iXT12ZlsiW29iamVjdCBJbnQzMkFycmF5XSJdPXZmWyJbb2JqZWN0IE1hcF0iXT12ZlsiW29iamVjdCBOdW1iZXJdIl09dmZbbGZdPXZmWyJbb2JqZWN0IFJlZ0V4cF0iXT12ZlsiW29iamVjdCBTZXRdIl09dmZbIltvYmplY3QgU3RyaW5nXSJdPXZmWyJbb2JqZWN0IFN5bWJvbF0iXT12ZlsiW29iamVjdCBVaW50OEFycmF5XSJdPXZmWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPXZmWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPXZmWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLHZmWyJbb2JqZWN0IEVycm9yXSJdPXZmW2ZmXT12ZlsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBzZj1mdW5jdGlvbiB0KHIsZSxuLG8sdSxhKXt2YXIgaSxjPTEmZSxmPTImZSxsPTQmZTtpZihuJiYoaT11P24ocixvLHUsYSk6bihyKSksdm9pZCAwIT09aSlyZXR1cm4gaTtpZighbmYocikpcmV0dXJuIHI7dmFyIHY9dGYocik7aWYodil7aWYoaT1YYyhyKSwhYylyZXR1cm4gcWMocixpKX1lbHNle3ZhciBzPVFjKHIpLHA9cz09ZmZ8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXM7aWYocmYocikpcmV0dXJuIFdjKHIsYyk7aWYocz09bGZ8fHM9PWNmfHxwJiYhdSl7aWYoaT1mfHxwP3t9OlpjKHIpLCFjKXJldHVybiBmP0hjKHIsVmMoaSxyKSk6R2MocixMYyhpLHIpKX1lbHNle2lmKCF2ZltzXSlyZXR1cm4gdT9yOnt9O2k9WWMocixzLGMpfX1hfHwoYT1uZXcgQmMpO3ZhciBiPWEuZ2V0KHIpO2lmKGIpcmV0dXJuIGI7YS5zZXQocixpKSxvZihyKT9yLmZvckVhY2goKGZ1bmN0aW9uKG8pe2kuYWRkKHQobyxlLG4sbyxyLGEpKX0pKTplZihyKSYmci5mb3JFYWNoKChmdW5jdGlvbihvLHUpe2kuc2V0KHUsdChvLGUsbix1LHIsYSkpfSkpO3ZhciB5PXY/dm9pZCAwOihsP2Y/S2M6SmM6Zj9hZjp1Zikocik7cmV0dXJuIENjKHl8fHIsKGZ1bmN0aW9uKG8sdSl7eSYmKG89clt1PW9dKSxSYyhpLHUsdChvLGUsbix1LHIsYSkpfSkpLGl9LHBmPXNmO3ZhciBiZj1mdW5jdGlvbih0KXtyZXR1cm4gcGYodCw1KX0seWY9ZmE7dmFyIGRmPWZ1bmN0aW9uKHQscixlKXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gZT12b2lkIDA9PT1lP246ZSwhciYmZT49bj90OnlmKHQscixlKX07dmFyIGhmPU1hLGpmPWZ1bmN0aW9uKHQpe3JldHVybiB0IT10fSxnZj1mdW5jdGlvbih0LHIsZSl7Zm9yKHZhciBuPWUtMSxvPXQubGVuZ3RoOysrbjxvOylpZih0W25dPT09cilyZXR1cm4gbjtyZXR1cm4tMX07dmFyIF9mPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gcj09cj9nZih0LHIsZSk6aGYodCxqZixlKX0sT2Y9X2Y7dmFyIHdmPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXQubGVuZ3RoO2UtLSYmT2Yocix0W2VdLDApPi0xOyk7cmV0dXJuIGV9LG1mPV9mO3ZhciBBZj1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPXQubGVuZ3RoOysrZTxuJiZtZihyLHRbZV0sMCk+LTE7KTtyZXR1cm4gZX07dmFyIFNmPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNwbGl0KCIiKX0seGY9IlxcdWQ4MDAtXFx1ZGZmZiIsSWY9IlsiK3hmKyJdIixQZj0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLHpmPSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEVmPSJbXiIreGYrIl0iLCRmPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixGZj0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsa2Y9Iig/OiIrUGYrInwiK3pmKyIpIisiPyIsTWY9IltcXHVmZTBlXFx1ZmUwZl0/IixVZj1NZitrZisoIig/OlxcdTIwMGQoPzoiK1tFZiwkZixGZl0uam9pbigifCIpKyIpIitNZitrZisiKSoiKSxEZj0iKD86IitbRWYrUGYrIj8iLFBmLCRmLEZmLElmXS5qb2luKCJ8IikrIikiLE5mPVJlZ0V4cCh6ZisiKD89Iit6ZisiKXwiK0RmK1VmLCJnIik7dmFyIFRmPVNmLEJmPXd1LENmPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hdGNoKE5mKXx8W119O3ZhciBSZj1mcixMZj1wYSxWZj1kZixXZj13ZixxZj1BZixHZj1mdW5jdGlvbih0KXtyZXR1cm4gQmYodCk/Q2YodCk6VGYodCl9LEhmPXZyO3ZhciBKZj1mdW5jdGlvbih0LHIsZSl7aWYoKHQ9SGYodCkpJiYoZXx8dm9pZCAwPT09cikpcmV0dXJuIExmKHQpO2lmKCF0fHwhKHI9UmYocikpKXJldHVybiB0O3ZhciBuPUdmKHQpLG89R2YociksdT1xZihuLG8pLGE9V2YobixvKSsxO3JldHVybiBWZihuLHUsYSkuam9pbigiIil9O2Z1bmN0aW9uIEtmKHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIFFmKHQpe3JldHVybiEoIUtmKHQpfHwiIj09PXQpfWZ1bmN0aW9uIFhmKHQscil7aWYoIVFmKHQpKXJldHVybltdO2lmKCFRZihyKSlyZXR1cm5bXTtsZXQgZT1mdW5jdGlvbih0LHIpe3JldHVybiBRZih0KSYmUWYocik/dC5zcGxpdChyKTpbXX0odCxyKTtlPXl1KGUsSmYpO2xldCBuPVtdO3JldHVybiBKZShlLChmdW5jdGlvbih0KXtRZih0KSYmbi5wdXNoKHQpfSkpLG59ZnVuY3Rpb24gWWYodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBaZih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiB0bCh0KXtyZXR1cm4hIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IFVuZGVmaW5lZF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgTnVsbF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KXx8KCEhZnVuY3Rpb24odCl7aWYoWmYodCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISghS2YodCl8fCIiIT09dCl9KHQpfHwhIWZ1bmN0aW9uKHQpe3JldHVybiEhWWYodCkmJjA9PT10Lmxlbmd0aH0odCkpKSl9ZnVuY3Rpb24gcmwodCl7aWYoWmYodCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiEwO3JldHVybiExfXJldHVybiExfWZ1bmN0aW9uIGVsKHQpe2xldCByPSExO3JldHVybiBRZih0KT9yPSFpc05hTihOdW1iZXIodCkpOmZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSYmKHI9ITApLHJ9ZnVuY3Rpb24gbmwodCxyKXt2YXIgZT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3ImJihuPW4uZmlsdGVyKChmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpLmVudW1lcmFibGV9KSkpLGUucHVzaC5hcHBseShlLG4pfXJldHVybiBlfWZ1bmN0aW9uIG9sKHQpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP25sKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24ocil7ZSh0LHIsbltyXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6bmwoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KSl9cmV0dXJuIHR9ZnVuY3Rpb24gdWwodCxyPXt9KXtpZighWWYoZT10KXx8MD09PWUubGVuZ3RofHwxPT09ZS5sZW5ndGgmJnRsKGVbMF0pKXJldHVybnt9O3ZhciBlO2xldCBuPW1yKHIsImRlbGltaXRlciIpO1FmKG4pfHwobj0i4p2vIik7bGV0IG89bXIociwiYmluZFJvb3QiKTtRZihvKXx8KG89InJvb3QiKTtsZXQgdT1tcihyLCJzb3J5SXRlbXMiKSxhPXl1KHQsKHQ9PnsiZm9sZGVyIiE9PXQudHlwZSYmImZpbGUiIT09dC50eXBlJiYodC50eXBlPSJmaWxlIik7bGV0IHI9KHQ9PntsZXQgcj1YZih0PSh0PXQucmVwbGFjZSgvXFxcXC9nLCJcXCIpKS5yZXBsYWNlKC9cXC9nLCIvIiksIi8iKTtyZXR1cm57c3M6cixjZnA6emEocixuKSxuYW1lOkt1KHIpfX0pKHQucGF0aCksZT1WdShyLnNzKSxvPVtdO2UtMT4wJiYobz1JYShyLnMsZS0xKSk7bGV0IHU9IiI7cmV0dXJuIFZ1KG8pPjAmJih1PXphKG8sbikpLHt0eXBlOnQudHlwZSxuYW1lOnIubmFtZSxuczplLHNzOnIuc3MsaWQ6ci5jZnAscGFzOm8scGFyZW50SWQ6dSxkYXRhOmJmKHQpfX0pKSxpPXQ9PntsZXQgcj1WdSh0KSxlPVtdO2ZvcihsZXQgbz0wO288cjtvKyspe2xldCByPVtdO2ZvcihsZXQgZT0wO2U8PW87ZSsrKXIucHVzaCh0W2VdKTtsZXQgdT16YShyLG4pO2UucHVzaCh7aWQ6dSxuYW1lOnRbb119KX1yZXR1cm4gZX0sYz17fTtKZShhLCh0PT57bGV0IHI9W29dLGU9bztKZSh0LnNzLCgobyx1KT0+e2xldCBhPXU8dC5ucy0xfHwiZm9sZGVyIj09PXQudHlwZTtyLnB1c2gobyk7bGV0IGY9bnVsbDt1PT09dC5ucy0xJiYoZj10LmRhdGEpO2xldCBsPXphKHIsbiksdj1pKHIpO3ZhciBzLHA7cD1sLFpmKHM9YykmJihRZihwKXx8ZWwocCkpJiZwIGluIHN8fChjW2xdPWE/e25zOlZ1KHIpLHRzOmJmKHIpLHBhcmVudEluZm9yczp2LF90eXBlOiJmb2xkZXIiLHR5cGU6ImFycmF5IixudW1PZkNoaWxyZW46LTEsaWQ6bCxwYXJlbnRJZDplLHRleHQ6byxjaGlsZHJlbjpbXSxkYXRhOmZ9OntuczpWdShyKSx0czpiZihyKSxwYXJlbnRJbmZvcnM6dixfdHlwZToiZmlsZSIsdHlwZToibm9kZSIsbnVtT2ZDaGlscmVuOi0xLGlkOmwscGFyZW50SWQ6ZSx0ZXh0Om8sZGF0YTpmfSksZT1sfSkpfSkpO2xldCBmPVp1KGMpO2lmKGY9d2koZiwiaWQiKSxmPXdpKGYsIm5zIiksZnVuY3Rpb24odCl7bGV0IHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1yfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PT1yfSh1KSl7bGV0IHQ9W10scj1jYShmLCJucyIpO0plKHIsKChyLGUpPT57bGV0IG49Y2EociwicGFyZW50SWQiKTtKZShuLCgocixuKT0+e2xldCBvPXUocixuLGUpO3Q9Wy4uLnQsLi4ub119KSl9KSksZj10fWxldCBsPVtdLHY9W107SmUoZiwodD0+eyJmb2xkZXIiPT09dC5fdHlwZT9sLnB1c2godCk6di5wdXNoKHQpfSkpO2xldCBzPWNhKGwsIm5zIikscD1jYSh2LCJucyIpLGI9SnUoeXUobCwibnMiKSkseT1KdSh5dSh2LCJucyIpKSxkPW51bGw7e2xldCB0PVtvXTtkPVt7bnM6VnUodCksdHM6YmYodCkscGFyZW50SW5mb3JzOmkodCksX3R5cGU6ImZvbGRlciIsdHlwZToiYXJyYXkiLG51bU9mQ2hpbHJlbjotMSxpZDpvLHBhcmVudElkOiIiLHRleHQ6byxjaGlsZHJlbjpbXSxkYXRhOm51bGx9XX1sZXQgaD17fTtoW29dPSIwLmNoaWxkcmVuIjtsZXQgaj17fTtqW29dPSIwIjtmb3IobGV0IHQ9Mjt0PD1iO3QrKyl7bGV0IHI9c1t0XTtKZShyLCh0PT57bGV0IHI9bXIoaCx0LnBhcmVudElkLCIiKTtpZighUWYocikpdGhyb3cgY29uc29sZS5sb2coImtwUGF0aEZkIixoKSxjb25zb2xlLmxvZygidiIsdCx0LnBhcmVudElkKSxuZXcgRXJyb3IoYGludmFsaWQgcGFyZW50SWRbJHt0LnBhcmVudElkfV0gaW4gZm9sZGVyYCk7bGV0IGU9bXIoZCxyKTtpZihZZihlKXx8Q3IoZCxyLFtdKSxlPW1yKGQsciksIXJsKEJhKGUse2lkOnQuaWR9KSkpe2UucHVzaChvbChvbCh7fSx0KSx7fSx7Y2hpbGRyZW46W119KSk7bGV0IG49YCR7cn0uJHtWdShlKS0xfWA7aFt0LmlkXT1gJHtufS5jaGlsZHJlbmAsalt0LmlkXT1ufX0pKX1sZXQgZz1iZihkKSxfPXt9O2ZvcihsZXQgdD0yO3Q8PXk7dCsrKXtsZXQgcj1wW3RdO0plKHIsKHQ9PntsZXQgcj1tcihoLHQucGFyZW50SWQsIiIpO2lmKCFRZihyKSl0aHJvdyBjb25zb2xlLmxvZygia3BQYXRoRmQiLGgpLGNvbnNvbGUubG9nKCJ2Iix0LHQucGFyZW50SWQpLG5ldyBFcnJvcihgaW52YWxpZCBwYXJlbnRJZFske3QucGFyZW50SWR9XSBpbiBmaWxlYCk7bGV0IGU9bXIoZCxyKTtpZighWWYoZSkpdGhyb3cgY29uc29sZS5sb2coInRyZWVJdGVtcyIsZCksY29uc29sZS5sb2coImsiLHIpLGNvbnNvbGUubG9nKCJ2Iix0KSxuZXcgRXJyb3IoIueEoemgkOWFiOW7uue9ruizh+aWmeWkviIpO2lmKCFybChCYShlLHtpZDp0LmlkfSkpKXtlLnB1c2godCk7bGV0IG49YCR7cn0uJHtWdShlKS0xfWA7X1t0LmlkXT1uLGpbdC5pZF09bn19KSl9cmV0dXJue3RyZWVJdGVtczpkLHRyZWVJdGVtc0ZvbGRlcjpnLGtwUGF0aDpqfX1hc3luYyBmdW5jdGlvbiBmaWxlcGF0aFRvVHJlZVdrKHQscj17fSl7cmV0dXJuIHVsKHQscil9CgpsZXQgaW5zdGFuY2UgPSBudWxsCmZ1bmN0aW9uIGluaXQoaW5wdXQpewoKICAgIC8vaW5pdAogICAgbGV0IHIKICAgIAogICAgICAgIHIgPSB7CiAgICAgICAgICAgIG1haW46IGZpbGVwYXRoVG9UcmVlV2sKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gZmlsZXBhdGhUb1RyZWVXawogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZWN2TWVzc2FnZShlLmRhdGEpCiAgICAgICAgfQogICAgICAgIAoK");function Z(){let Z=new t;let m=function(d){try{let Z=new Blob([d]),m=window.URL||window.webkitURL;return new Worker(m.createObjectURL(Z))}catch(d){b(d)}}(d);if(!m)return b("invalid worker"),null;function l(){let d=function(){let d,Z,m=new Promise((function(){d=arguments[0],Z=arguments[1]}));return m.resolve=d,m.reject=Z,m}(),l=function(){let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,Z=[],m="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),l=m.length;for(let b=0;b<d;b++)Z[b]=m[0|Math.random()*l];return Z.join("")}(),b={mode:"call",id:l,fun:"main",input:[...arguments]};return m.postMessage(b),Z.once(l,(Z=>{"success"===Z.state?d.resolve(Z.msg):d.reject(Z.msg)})),d}function b(d){Z.emit("error",d)}return m.onmessage=function(d){!function(d){let m=d,l=m.mode;"emit"!==l&&"return"!==l||("emit"===l&&Z.emit(m.evName,m.msg),"return"===l&&Z.emit(m.id,m))}(d.data)},m.onerror=b,function(){let d={mode:"init",type:"function",input:[...arguments]};m.postMessage(d)}([...arguments]),Z.main=l,Z.main=l,Z.terminate=function(){m?(m.terminate(),m=void 0):b("worker has been terminated")},Z}s=async function(){let d=[...arguments],m=Z();return await m.main(...d).finally((()=>{m.terminate()}))}}();var J=s;export{J as default};
|